@ordergroove/offers 2.45.5 → 2.45.6
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 +8 -0
- package/dist/bundle-report.html +4 -4
- package/dist/offers.js +1 -1
- package/dist/offers.js.map +2 -2
- package/package.json +2 -2
- package/src/core/__tests__/experiments.spec.js +5 -1
- package/src/make-api.js +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [2.45.6](https://github.com/ordergroove/plush-toys/compare/@ordergroove/offers@2.45.5...@ordergroove/offers@2.45.6) (2025-09-16)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @ordergroove/offers
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [2.45.5](https://github.com/ordergroove/plush-toys/compare/@ordergroove/offers@2.45.4...@ordergroove/offers@2.45.5) (2025-08-26)
|
|
7
15
|
|
|
8
16
|
|
package/dist/bundle-report.html
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
│ └ examples/index.js
|
|
5
5
|
└ examples/index.js ───────────────────────────────────────── 9.7kb ─── 3.5%
|
|
6
6
|
|
|
7
|
-
dist/offers.js ─────────────────────────────────────────────
|
|
7
|
+
dist/offers.js ───────────────────────────────────────────── 151.0kb ─ 100.0%
|
|
8
8
|
├ src/components/Offer.js ─────────────────────────────────── 9.5kb ─── 6.3%
|
|
9
9
|
│ └ src/make-api.js
|
|
10
10
|
│ └ src/index.js
|
|
@@ -52,11 +52,11 @@
|
|
|
52
52
|
├ src/core/selectors.ts ───────────────────────────────────── 2.9kb ─── 1.9%
|
|
53
53
|
│ └ src/core/utils.ts
|
|
54
54
|
│ └ src/index.js
|
|
55
|
+
├ src/make-api.js ─────────────────────────────────────────── 2.8kb ─── 1.9%
|
|
56
|
+
│ └ src/index.js
|
|
55
57
|
├ src/components/OptinStatus.js ───────────────────────────── 2.8kb ─── 1.8%
|
|
56
58
|
│ └ src/make-api.js
|
|
57
59
|
│ └ src/index.js
|
|
58
|
-
├ src/make-api.js ─────────────────────────────────────────── 2.7kb ─── 1.8%
|
|
59
|
-
│ └ src/index.js
|
|
60
60
|
├ src/core/api.js ─────────────────────────────────────────── 2.6kb ─── 1.7%
|
|
61
61
|
│ └ src/core/reducer.ts
|
|
62
62
|
│ └ src/index.js
|
|
@@ -239,7 +239,7 @@
|
|
|
239
239
|
├ src/core/waitUntilOffersReady.js ────────────────────────── 567b ──── 0.4%
|
|
240
240
|
│ └ src/core/store.js
|
|
241
241
|
│ └ src/index.js
|
|
242
|
-
├ src/core/dateUtils.js ───────────────────────────────────── 541b ──── 0.
|
|
242
|
+
├ src/core/dateUtils.js ───────────────────────────────────── 541b ──── 0.3%
|
|
243
243
|
│ └ src/components/NextUpcomingOrder.js
|
|
244
244
|
│ └ src/make-api.js
|
|
245
245
|
│ └ src/index.js
|
package/dist/offers.js
CHANGED
|
@@ -1035,6 +1035,6 @@ var lib=(()=>{var ja=Object.create;var mt=Object.defineProperty;var Ga=Object.ge
|
|
|
1035
1035
|
<slot name="append"></slot>
|
|
1036
1036
|
`:u`
|
|
1037
1037
|
<slot name="fallback"></slot>
|
|
1038
|
-
`}};n(io,"Price");var xp=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"),xa=g(xp)(io);function cn(t){Ea(),hs(t);try{customElements.define("og-when",Ys),customElements.define("og-text",oa),customElements.define("og-incentive-text",aa),customElements.define("og-offer",ma),customElements.define("og-select-frequency",ca),customElements.define("og-optout-button",Qs),customElements.define("og-optin-toggle",ra),customElements.define("og-optin-status",Js),customElements.define("og-optin-button",Ks),customElements.define("og-optin-select",Xs),customElements.define("og-upsell-button",ea),customElements.define("og-frequency-status",Zs),customElements.define("og-modal",$t),customElements.define("og-select",Vt),customElements.define("og-tooltip",jt),customElements.define("og-upsell-modal",ta),customElements.define("og-next-upcoming-order",pa),customElements.define("og-price",xa),customElements.define("og-prepaid-toggle",ga),customElements.define("og-prepaid-data",ya),customElements.define("og-prepaid-button",ba),customElements.define("og-prepaid-select",Sa),customElements.define("og-subscription-button",_a)}catch{console.info("OG WebComponents already registered, skipping.")}let e=!1,r={store:t,isReady:()=>e,setEnvironment(o){return t.dispatch(Ai(o)),this},setMerchantId(o){return t.dispatch(wi(o)),this},setAuthUrl(o){return t.dispatch(Ci(o)),this},receiveMerchantSettings(o){return t.dispatch($i(o)),this},getProductsForPurchasePost(o=[]){return Uo(t.getState(),o)},getOptins(o=[]){return Uo(t.getState(),o)},clear(){t.dispatch(ki())},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(qi(o)),this},setLocale(o){return t.dispatch(Fi(o)),this},addTemplate(o,i,s){return t.dispatch(Di(o,i,s)),this},setTemplates(o){return t.dispatch(Ui(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(Io(d))),s.product_discounts&&typeof s.product_discounts=="object"&&a.dispatch({type:ze,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),Do(window.opener,r),r}n(cn,"makeApi");var so=n((t=[],e)=>{switch(e.type){case he:return[];case Oe:return e.newValue?e.newValue.optedin:t;case R:case F:{let[{prepaidShipments:r,...o},i]=et(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]=et(t,r.product),a={...i,...r.product};return r.prepaidShipments&&(a.prepaidShipments=r.prepaidShipments),s.concat(a)}case k:return t.filter(r=>!N(e.payload.product,r));case yt:return t.map(r=>N(e.payload.product,r)?{...r,...e.payload.newProduct}:r);case er:return t.filter(r=>!N(e.payload.product,r));case He:return[];default:return t}},"optedin"),ln=n((t=[],e)=>{switch(e.type){case he:return[];case Oe:return e.newValue?e.newValue.optedout:t;case R:case F:return t.filter(r=>!N(e.payload.product,r));case k:{let[r,o]=et(t,e.payload.product);return o.concat({...r,...e.payload.product,frequency:e.payload.frequency})}case yt:return t.map(r=>N(e.payload.product,r)?{...r,...e.payload.newProduct}:r);case He:return[];default:return t}},"optedout"),pn=n((t={},{type:e,payload:r})=>{switch(e){case Kt: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 Qt:return{...t,products:(r.results||[]).map(o=>o.product)};case Xt:return{...t,...r,public_id:r.order,...r.product&&{products:(t.products||[]).concat(r.product)}};default:return t}},"nextUpcomingOrder"),Pp=n((t={},e)=>{switch(e.type){case w:return{...t,...e.payload.autoship};default:return t}},"autoshipEligible"),Op=n((t={},e)=>{switch(e.type){case q:return{...t};case w:return{...t,...e.payload.in_stock};default:return t}},"inStock"),un=n((t={},e)=>{switch(e.type){case w:return{...t,...e.payload.eligibility_groups};default:return t}},"eligibilityGroups"),Pa=n((t,e)=>t.map(r=>({...e[r],id:[r][0]})),"mapIncentive"),dn=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||[],...Pa(s,e.payload.incentives_display)],ongoing:[...i.ongoing||[],...Pa(a,e.payload.incentives_display)]}),{})}),{})};default:return t}},"incentives"),vp=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"),fn=n((t=!1,e)=>{switch(e.type){case Jt:return{...e.payload};case Pe:return!1;default:return t}},"auth"),hn=n((t="",e)=>{switch(e.type){case Le:return e.payload;default:return t}},"merchantId"),mn=n((t=null,e)=>{switch(e.type){case Wt:return e.payload;default:return t}},"authUrl"),Tp=n((t={},e)=>{switch(e.type){case w:return{...t,offerId:(e.payload.module_view||{}).regular,...e.payload.modifiers};default:return t}},"offer"),gn=n((t="",e)=>{switch(e.type){case w:return(e.payload.module_view||{}).regular||"";default:return t}},"offerId"),yn=n((t=null,e)=>{switch(e.type){case he:return null;case Me:return e.payload;default:return t}},"sessionId"),wp=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 He:return{};default:return t}},"productOffer"),bn=n((t={},e)=>{switch(e.type){case nr:return{...t,[S(e.payload.product)]:e.payload.firstOrderPlaceDate};default:return t}},"firstOrderPlaceDate"),Sn=n((t={},e)=>{switch(e.type){case ir:return{...t,[S(e.payload.product)]:e.payload.productToSubscribe};default:return t}},"productToSubscribe"),_n=n((t={},e)=>{switch(e.type){case $e:return{...t,name:"local",apiUrl:"http://py3web.ordergroove.localhost",legoUrl:"http://py3lego.ordergroove.localhost"};case Ve:return{...t,name:ve,apiUrl:"https://staging.offers.ordergroove.com",legoUrl:"https://staging.restapi.ordergroove.com"};case je:return{...t,name:sr,apiUrl:"https://dev.offers.ordergroove.com",legoUrl:"https://dev.restapi.ordergroove.com"};case Ge:return{...t,name:Te,apiUrl:"https://offers.ordergroove.com",legoUrl:"https://restapi.ordergroove.com"};default:return t}},"environment"),En=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 tr:return{...t,...e.payload};default:return t}},"locale"),Cp=n((t={offerType:"radio"},e)=>{switch(e.type){case Be:return{...t,...e.payload,defaultFrequency:e.payload.defaultFrequency?vt(e.payload.defaultFrequency):t.defaultFrequency,frequenciesEveryPeriod:[],frequencies:e.payload.frequencies?e.payload.frequencies.map(vt):t.frequencies};case le:return{...t,merchantSettings:{...e.payload}};default:return t}},"config"),xn=n((t=!1,e)=>{switch(e.type){case fe:return e.payload.isPreview;default:return t}},"previewStandardOffer"),Pn=n((t=!1,e)=>{switch(e.type){case St:return e.payload.isPreview;default:return t}},"previewUpsellOffer");var On=n((t={},e)=>{switch(e.type){case w:return{...t,...e.payload.autoship_by_default};default:return t}},"autoshipByDefault"),vn=n((t=[],e)=>{switch(e.type){case w:return{...t,...e.payload.default_frequencies};default:return t}},"defaultFrequencies"),Tn=n((t=[],e)=>{switch(e.type){case or:return[...e.payload||[]];case rr:return[e.payload,...t];default:return t}},"templates"),Rp=n((t={},e)=>{switch(e.type){case ze:return Nr(e.payload);default:return t}},"productPlans"),wn=n((t={},e)=>{switch(e.type){case bt:{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"),ao=Ht({optedin:so,optedout:ln,nextUpcomingOrder:pn,autoshipEligible:Pp,inStock:Op,eligibilityGroups:un,incentives:dn,frequency:vp,auth:fn,merchantId:hn,authUrl:mn,offer:Tp,offerId:gn,experiments:Cr,sessionId:yn,productOffer:wp,firstOrderPlaceDate:bn,productToSubscribe:Sn,environment:_n,locale:En,config:Cp,previewStandardOffer:xn,previewUpsellOffer:Pn,autoshipByDefault:On,defaultFrequencies:vn,templates:Tn,productPlans:Rp,prepaidShipmentsSelected:wn});var co=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"),lo=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"),Ap=n(t=>{var e,r;return(t.selling_plan_id||((r=(e=t.selling_plan)==null?void 0:e.id)!=null?r:"")).toString()},"getAllocationFrequency"),Np=n((t,e)=>ue(t.compare_at_price,e),"getAllocationRegularPrice"),Ip=n((t,e)=>{var r;if(co(t)){let o=lo((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"),Oa=n((t,e)=>Math.round((t.compare_at_price-e)*100/t.compare_at_price),"getPrepaidPercentage"),kp=n((t,e)=>{var o,i,s;if(co(t)){let a=lo((o=t.selling_plan)==null?void 0:o.options),c=t.price/a,l=Oa(t,c);return Pr(l)}let r="";return((i=t.price_adjustments[0])==null?void 0:i.value_type)==="percentage"?r=Pr(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"),Fp=n(t=>{var e;return co(t)?lo((e=t.selling_plan)==null?void 0:e.options):null},"getAllocationNumberOfShipments"),qp=n((t,e,r,o)=>{var d,f;let i=lo((d=t.selling_plan)==null?void 0:d.options),s=t.price/i,a=t.compare_at_price-s,c=Oa(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=Pr(c-p)),e},"addPrepaidPriceAndSavings"),Dp=n((t,e,r)=>{t.selling_plan||(t.selling_plan=e.find(i=>i.id===t.selling_plan_id));let o={frequency:Ap(t),regularPrice:Np(t,r),subscriptionPrice:Ip(t,r),discountRate:kp(t,r),prepaidShipments:Fp(t)};if(co(t)){let i=as(e);return qp(t,o,i,r)}return o},"mapSellingPlanToDiscount"),Cn=n((t,e,r=[],o)=>[...t,Dp(e,r,o)],"sellingPlanAllocationsReducer"),va=n(t=>t.selling_plan_groups.reduce((e,r)=>[...e,...r.selling_plans.map(o=>({...o,group:r}))],[]),"getSellingPlans");var Up=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)=>Mp(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,...Vp(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:$p(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 Lp(t,e){var i,s;let r=kt(t),o=vr(r);if(o!=null&&o.length){let a=Tr(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&&Re(l)&&(l=K(o,a,l)||pe(o)||l),{frequencies:o,frequenciesEveryPeriod:a,frequenciesText:c,...l?{defaultFrequency:l}:{}}}return null}n(Lp,"getFrequencies");function Mp(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=Lp(s,o.productFrequencies[e.id]);return a&&(t[e.id]=a),t}n(Mp,"reduceSellingPlansToFrequencies");function $p(t,e,r,o=[],i=[]){var s;return(s=r[t])!=null&&s.some(({sellingPlan:a})=>a===e)?pe(o)||e:Re(e)&&(K(o,i,e)||pe(o))||e}n($p,"getUpdatedDefaultFrequency");function Vp(t){return t.reduce((e,r)=>{let o=r.name.split("-")[1],i=r.selling_plans.map(s=>({numberShipments:wr(s),sellingPlan:String(s.id)}));return{...e,[o]:i}},{})}n(Vp,"getPrepaidSellingPlans");var Ta=Up;var Ca=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"),wa=n((t,e,r)=>{if(!r)return null;if(!Re(r))return r;if(gr(t,e)){let o=K(t,e,r);return o||pe(t)}return r},"getDefaultSellingPlan"),jp=n((t,e,r)=>t.map(o=>Re(o==null?void 0:o.frequency)?{...o,frequency:gr(r==null?void 0:r.frequencies,r==null?void 0:r.frequenciesEveryPeriod)?K(r==null?void 0:r.frequencies,r==null?void 0:r.frequenciesEveryPeriod,o.frequency)||K(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"),Gp=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]&&gr(p,d)?_=K(p,d,`${h.every}_${h.every_period}`)||wa(p,d,f)||pe(p):r[l]?_=`${h.every}_${h.every_period}`:_=wa(p,d,f)||"_",c.concat({id:l,frequency:_})}return c},[]),"reduceNewOptinsFromOfferResponse"),Hp=n((t,e)=>({...Ca(t,e.id,e.available),[e.id]:e.available}),"productOrVariantInStockReducer"),Ra=n((t,e)=>{let r=S(e.key);return{...t,[e.key]:t[r]||null}},"reduceProductCartLine"),Bp=n((t={},e)=>{var r;if(me===e.type){let{payload:o}=e;return o.items.reduce(Ra,t)}if(D===e.type){let{payload:{product:o}}=e,i=ns(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{...Ca(a,c.id,p),[c.id]:p}},t)}return fe===e.type?e.payload.isPreview!==!0?t:{...t,[e.payload.productId]:!0}:t},"autoshipEligible"),zp=n((t={},e)=>{var r;if(me===e.type)return e.payload.items.reduce(Ra,t);if(D===e.type){let{payload:{product:o}}=e;return[o,...(r=o==null?void 0:o.variants)!=null?r:[]].reduce(Hp,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"),Yp=n((t={},e)=>t,"offer");function Wp(t){let e=wr(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(Wp,"getOptedInItem");var Jp=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,Wp(i)]:o,[]))}if(w===e.type){let r=e.payload,{offer:o={},frequencyConfig:i}=r,s=jp(t,o,i),a=Gp(r,s,o,i);return[...s,...a]}if(D===e.type){let{product:r}=e.payload,o=kt(r==null?void 0:r.selling_plan_groups);if(!o)return t;let i=vr(o),s=Tr(o);return t.map(a=>Re(a.frequency)?{...a,frequency:K(i,s,a.frequency)||pe(i)}:a)}if(ce===e.type){let{payload:r}=e,o=so(t,e),[i,s]=et(o,r.product);return s.concat({...i,...r.product,frequency:r.frequency})}return so(t,e)},"optedin"),Kp=n((t={},e)=>t,"productOffer"),Qp=n((t={},e)=>{if(D===e.type){let{payload:{product:r,currency:o}}=e,i=va(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)=>Cn(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]:Cn([],i.selling_plan_allocation,[],r.currency)}:o,t)||t}return t},"productPlans"),Zp=Ht({auth:fn,authUrl:mn,autoshipByDefault:On,autoshipEligible:Bp,config:Ta,defaultFrequencies:vn,eligibilityGroups:un,environment:_n,firstOrderPlaceDate:bn,incentives:dn,inStock:zp,locale:En,merchantId:hn,nextUpcomingOrder:pn,offer:Yp,offerId:gn,experiments:Cr,optedin:Jp,optedout:ln,previewStandardOffer:xn,previewUpsellOffer:Pn,productOffer:Kp,productPlans:Qp,productToSubscribe:Sn,sessionId:yn,templates:Tn,prepaidShipmentsSelected:wn});function Rn(t,e){return window.og&&window.og.previewMode?ao(t,e):Zp(t,e)}n(Rn,"shopifyReducer");var ka=ae(Et()),Fa=ae(zt());function Aa(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(Aa,"updateTrackingInputs");function An(){return`og__${Math.ceil(new Date().getTime()/1e3)}`}n(An,"getTrackingKey");function Xp(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=An(),s=((h=t.payload.offer)==null?void 0:h.location)||"",a=((_=t.payload.offer)==null?void 0:_.variationId)||"",c=po(o,e),p=[o,R.toLowerCase(),s,c,a].join(",");Aa(o,i,p)}n(Xp,"addDefaultToSubTracking");function Nn(t){return e=>r=>{switch(e(r),r.type){case R:case k:case F:{let o=r.payload.offer,i=In(r);o&&!o.isCart&&Aa(o.product.id,i[0],i[1]);break}case w:Xp(r,t);break;default:}}}n(Nn,"shopifyTrackingMiddleware");var Na,Ia,kn=((Ia=(Na=window.Shopify)==null?void 0:Na.routes)==null?void 0:Ia.root)||"/",eu="/cart",tu=`${kn}cart.js`,ru=`${kn}cart/change.js`,ou=`${kn}products/`,nu='[id^="shopify-section-"][id$=__cart-items], [id^="shopify-section-"][id$="__cart-footer"],#cart-live-region-text,#cart-icon-bubble',iu=n(t=>(0,Fa.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 su(){var r,o;let t=(o=(r=window.Shopify)==null?void 0:r.currency)==null?void 0:o.active;return t||(await Fn()).currency}n(su,"getCurrency");async function au(t,e){let r=cu(e);if(r)try{let[i,s]=await Promise.all([qa(r),su()]),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=iu(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(au,"setupPdp");async function Fn(){return(await fetch(tu)).json()}n(Fn,"getCart");function cu(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(cu,"guessProductHandle");var qa=(0,ka.default)(async function(t){return(await fetch(`${ou}${t}.js`)).json()});async function lu(t,e){let r=await Fn(),{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:D,payload:l})})}n(lu,"setupCart");async function pu(t,e){var s,a;let r=t.payload.offer,o=t.payload.frequency||po(t.payload.product.id,e),i=In(t);if(!!(r!=null&&r.isCart))try{r.style.pointerEvents="none",r.style.opacity=".7";let c=Array.from(document.querySelectorAll(nu)),l=t.payload.product.id,p=await Fn(),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(ru,{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:bt,payload:{oldCartProductKey:l,newCartProductKey:E}}),r.setAttribute("product",E));let T=m;e.dispatch({type:me,payload:T});let y=new CustomEvent(ii,{bubbles:!0,cancelable:!0});if(r.dispatchEvent(y),y.defaultPrevented)return;let v=m.sections;Object.values(v).length?c.forEach(C=>{let Dn=C.id.replace(/^shopify-section-/,"");if(!(Dn in v))return;let Va=v[Dn],Un=new DOMParser().parseFromString(Va.toString()||"","text/html").getElementById(C.id);Un&&(C.innerHTML=Un.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(pu,"synchronizeCartOptin");function In(t){var a,c;let e=t.payload.product.id;if(!e)return[];let r=An(),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(In,"getTrackingEvent");function po(t,e){var i;return(i=fr({id:t})(e.getState()))==null?void 0:i.frequency}n(po,"getSubscribedFrequency");function uu(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=po(o,t);Co(r.form,"selling_plan",i),Co(r.form,"attributes[og__session]",t.getState().sessionId)})}n(uu,"synchronizeSellingPlan");function qn(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?lu(t,r.payload.offer):au(t,r.payload.offer);break;default:}switch(e(r),r.type){case R:case k:case F:case ce:pu(r,t);case q:case w:case D:uu(t,r.payload.offer);break;default:}}}n(qn,"shopifyMiddleware");var du="/apps/subscriptions/auth/",Da="og_auth_begin",fu="og_auth_end",hu=n(t=>{let[e,r,o,i]=atob(t).split("|");return{id:e,signature:o,timestamp:r,email:i}},"parseIntegrationTempAuth");async function Ua({store:t}){var i;let[e]=wo(),r=Tt(),o=r!=null&&r.dataset.customer?hu(r.dataset.customer):(i=window.ogShopifyConfig)==null?void 0:i.customer;if(o){let s=await gu(o);if(s){let[a,c,l]=s.split("|");t.dispatch(Rt(e,a,Number(c),l))}}else Oi("og_auth")}n(Ua,"authorizeShopifyCustomer");async function mu(t){try{let r=await(await fetch(`${du}?customer=${t.id}&customer_signature=${t.signature}&customer_timestamp=${t.timestamp}`)).text(),o=r.lastIndexOf(Da);if(o<0)throw"Invalid response from OG auth endpoint";return JSON.parse(r.substring(o+Da.length,r.lastIndexOf(fu)))}catch(e){console.error(e)}}n(mu,"fetchOGSignature");async function gu(t){let e=vi("og_auth");if(e)return e;let{customerId:r,timestamp:o,signature:i}=await mu(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(gu,"getOrCreateAuthCookie");var La,$a=ps(...(La=A)!=null&&La.shopify_selling_plans?[Rn,qn]:[ao],A.shopify&&Nn),O=cn($a),yu=O.isReady,bu=O.addOptinChangedCallback,Su=O.addTemplate,_u=O.clear,Eu=O.config,xu=O.disableOptinChangedCallbacks,Pu=O.getOptins,Ou=O.getProductsForPurchasePost,vu=O.initialize,Tu=O.previewMode,wu=O.register,Cu=O.resolveSettings,Ru=O.setAuthUrl,Au=O.setEnvironment,Nu=O.setLocale,Iu=O.setMerchantId,ku=O.setPublicPath,Fu=O.setTemplates,qu=O.setupCart,Du=O.setupProduct,Uu=O.setupProducts,Lu=n(()=>Pi(O),"autoInit");var Mu=O.initialize,Ma;(Ma=A)!=null&&Ma.shopify_selling_plans&&mr(()=>Ua(O));return Ya($u);})();
|
|
1038
|
+
`}};n(io,"Price");var xp=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"),xa=g(xp)(io);function cn(t){Ea(),hs(t);try{customElements.define("og-when",Ys),customElements.define("og-text",oa),customElements.define("og-incentive-text",aa),customElements.define("og-offer",ma),customElements.define("og-select-frequency",ca),customElements.define("og-optout-button",Qs),customElements.define("og-optin-toggle",ra),customElements.define("og-optin-status",Js),customElements.define("og-optin-button",Ks),customElements.define("og-optin-select",Xs),customElements.define("og-upsell-button",ea),customElements.define("og-frequency-status",Zs),customElements.define("og-modal",$t),customElements.define("og-select",Vt),customElements.define("og-tooltip",jt),customElements.define("og-upsell-modal",ta),customElements.define("og-next-upcoming-order",pa),customElements.define("og-price",xa),customElements.define("og-prepaid-toggle",ga),customElements.define("og-prepaid-data",ya),customElements.define("og-prepaid-button",ba),customElements.define("og-prepaid-select",Sa),customElements.define("og-subscription-button",_a)}catch{console.info("OG WebComponents already registered, skipping.")}let e=!1,r={store:t,isReady:()=>e,setEnvironment(o){return t.dispatch(Ai(o)),this},setMerchantId(o){return t.dispatch(wi(o)),this},setAuthUrl(o){return t.dispatch(Ci(o)),this},receiveMerchantSettings(o){return t.dispatch($i(o)),this},getProductsForPurchasePost(o=[]){return Uo(t.getState(),o)},getOptins(o=[]){return Uo(t.getState(),o)},clear(){t.dispatch(ki())},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(qi(o)),this},setLocale(o){return t.dispatch(Fi(o)),this},addTemplate(o,i,s){return t.dispatch(Di(o,i,s)),this},setTemplates(o){return t.dispatch(Ui(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(Io(d))),s.product_discounts&&typeof s.product_discounts=="object"&&a.dispatch({type:ze,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),Do(window.opener,r),r}n(cn,"makeApi");var so=n((t=[],e)=>{switch(e.type){case he:return[];case Oe:return e.newValue?e.newValue.optedin:t;case R:case F:{let[{prepaidShipments:r,...o},i]=et(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]=et(t,r.product),a={...i,...r.product};return r.prepaidShipments&&(a.prepaidShipments=r.prepaidShipments),s.concat(a)}case k:return t.filter(r=>!N(e.payload.product,r));case yt:return t.map(r=>N(e.payload.product,r)?{...r,...e.payload.newProduct}:r);case er:return t.filter(r=>!N(e.payload.product,r));case He:return[];default:return t}},"optedin"),ln=n((t=[],e)=>{switch(e.type){case he:return[];case Oe:return e.newValue?e.newValue.optedout:t;case R:case F:return t.filter(r=>!N(e.payload.product,r));case k:{let[r,o]=et(t,e.payload.product);return o.concat({...r,...e.payload.product,frequency:e.payload.frequency})}case yt:return t.map(r=>N(e.payload.product,r)?{...r,...e.payload.newProduct}:r);case He:return[];default:return t}},"optedout"),pn=n((t={},{type:e,payload:r})=>{switch(e){case Kt: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 Qt:return{...t,products:(r.results||[]).map(o=>o.product)};case Xt:return{...t,...r,public_id:r.order,...r.product&&{products:(t.products||[]).concat(r.product)}};default:return t}},"nextUpcomingOrder"),Pp=n((t={},e)=>{switch(e.type){case w:return{...t,...e.payload.autoship};default:return t}},"autoshipEligible"),Op=n((t={},e)=>{switch(e.type){case q:return{...t};case w:return{...t,...e.payload.in_stock};default:return t}},"inStock"),un=n((t={},e)=>{switch(e.type){case w:return{...t,...e.payload.eligibility_groups};default:return t}},"eligibilityGroups"),Pa=n((t,e)=>t.map(r=>({...e[r],id:[r][0]})),"mapIncentive"),dn=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||[],...Pa(s,e.payload.incentives_display)],ongoing:[...i.ongoing||[],...Pa(a,e.payload.incentives_display)]}),{})}),{})};default:return t}},"incentives"),vp=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"),fn=n((t=!1,e)=>{switch(e.type){case Jt:return{...e.payload};case Pe:return!1;default:return t}},"auth"),hn=n((t="",e)=>{switch(e.type){case Le:return e.payload;default:return t}},"merchantId"),mn=n((t=null,e)=>{switch(e.type){case Wt:return e.payload;default:return t}},"authUrl"),Tp=n((t={},e)=>{switch(e.type){case w:return{...t,offerId:(e.payload.module_view||{}).regular,...e.payload.modifiers};default:return t}},"offer"),gn=n((t="",e)=>{switch(e.type){case w:return(e.payload.module_view||{}).regular||"";default:return t}},"offerId"),yn=n((t=null,e)=>{switch(e.type){case he:return null;case Me:return e.payload;default:return t}},"sessionId"),wp=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 He:return{};default:return t}},"productOffer"),bn=n((t={},e)=>{switch(e.type){case nr:return{...t,[S(e.payload.product)]:e.payload.firstOrderPlaceDate};default:return t}},"firstOrderPlaceDate"),Sn=n((t={},e)=>{switch(e.type){case ir:return{...t,[S(e.payload.product)]:e.payload.productToSubscribe};default:return t}},"productToSubscribe"),_n=n((t={},e)=>{switch(e.type){case $e:return{...t,name:"local",apiUrl:"http://py3web.ordergroove.localhost",legoUrl:"http://py3lego.ordergroove.localhost"};case Ve:return{...t,name:ve,apiUrl:"https://staging.offers.ordergroove.com",legoUrl:"https://staging.restapi.ordergroove.com"};case je:return{...t,name:sr,apiUrl:"https://dev.offers.ordergroove.com",legoUrl:"https://dev.restapi.ordergroove.com"};case Ge:return{...t,name:Te,apiUrl:"https://offers.ordergroove.com",legoUrl:"https://restapi.ordergroove.com"};default:return t}},"environment"),En=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 tr:return{...t,...e.payload};default:return t}},"locale"),Cp=n((t={offerType:"radio"},e)=>{switch(e.type){case Be:return{...t,...e.payload,defaultFrequency:e.payload.defaultFrequency?vt(e.payload.defaultFrequency):t.defaultFrequency,frequenciesEveryPeriod:[],frequencies:e.payload.frequencies?e.payload.frequencies.map(vt):t.frequencies};case le:return{...t,merchantSettings:{...e.payload}};default:return t}},"config"),xn=n((t=!1,e)=>{switch(e.type){case fe:return e.payload.isPreview;default:return t}},"previewStandardOffer"),Pn=n((t=!1,e)=>{switch(e.type){case St:return e.payload.isPreview;default:return t}},"previewUpsellOffer");var On=n((t={},e)=>{switch(e.type){case w:return{...t,...e.payload.autoship_by_default};default:return t}},"autoshipByDefault"),vn=n((t=[],e)=>{switch(e.type){case w:return{...t,...e.payload.default_frequencies};default:return t}},"defaultFrequencies"),Tn=n((t=[],e)=>{switch(e.type){case or:return[...e.payload||[]];case rr:return[e.payload,...t];default:return t}},"templates"),Rp=n((t={},e)=>{switch(e.type){case ze:return Nr(e.payload);default:return t}},"productPlans"),wn=n((t={},e)=>{switch(e.type){case bt:{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"),ao=Ht({optedin:so,optedout:ln,nextUpcomingOrder:pn,autoshipEligible:Pp,inStock:Op,eligibilityGroups:un,incentives:dn,frequency:vp,auth:fn,merchantId:hn,authUrl:mn,offer:Tp,offerId:gn,experiments:Cr,sessionId:yn,productOffer:wp,firstOrderPlaceDate:bn,productToSubscribe:Sn,environment:_n,locale:En,config:Cp,previewStandardOffer:xn,previewUpsellOffer:Pn,autoshipByDefault:On,defaultFrequencies:vn,templates:Tn,productPlans:Rp,prepaidShipmentsSelected:wn});var co=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"),lo=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"),Ap=n(t=>{var e,r;return(t.selling_plan_id||((r=(e=t.selling_plan)==null?void 0:e.id)!=null?r:"")).toString()},"getAllocationFrequency"),Np=n((t,e)=>ue(t.compare_at_price,e),"getAllocationRegularPrice"),Ip=n((t,e)=>{var r;if(co(t)){let o=lo((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"),Oa=n((t,e)=>Math.round((t.compare_at_price-e)*100/t.compare_at_price),"getPrepaidPercentage"),kp=n((t,e)=>{var o,i,s;if(co(t)){let a=lo((o=t.selling_plan)==null?void 0:o.options),c=t.price/a,l=Oa(t,c);return Pr(l)}let r="";return((i=t.price_adjustments[0])==null?void 0:i.value_type)==="percentage"?r=Pr(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"),Fp=n(t=>{var e;return co(t)?lo((e=t.selling_plan)==null?void 0:e.options):null},"getAllocationNumberOfShipments"),qp=n((t,e,r,o)=>{var d,f;let i=lo((d=t.selling_plan)==null?void 0:d.options),s=t.price/i,a=t.compare_at_price-s,c=Oa(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=Pr(c-p)),e},"addPrepaidPriceAndSavings"),Dp=n((t,e,r)=>{t.selling_plan||(t.selling_plan=e.find(i=>i.id===t.selling_plan_id));let o={frequency:Ap(t),regularPrice:Np(t,r),subscriptionPrice:Ip(t,r),discountRate:kp(t,r),prepaidShipments:Fp(t)};if(co(t)){let i=as(e);return qp(t,o,i,r)}return o},"mapSellingPlanToDiscount"),Cn=n((t,e,r=[],o)=>[...t,Dp(e,r,o)],"sellingPlanAllocationsReducer"),va=n(t=>t.selling_plan_groups.reduce((e,r)=>[...e,...r.selling_plans.map(o=>({...o,group:r}))],[]),"getSellingPlans");var Up=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)=>Mp(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,...Vp(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:$p(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 Lp(t,e){var i,s;let r=kt(t),o=vr(r);if(o!=null&&o.length){let a=Tr(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&&Re(l)&&(l=K(o,a,l)||pe(o)||l),{frequencies:o,frequenciesEveryPeriod:a,frequenciesText:c,...l?{defaultFrequency:l}:{}}}return null}n(Lp,"getFrequencies");function Mp(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=Lp(s,o.productFrequencies[e.id]);return a&&(t[e.id]=a),t}n(Mp,"reduceSellingPlansToFrequencies");function $p(t,e,r,o=[],i=[]){var s;return(s=r[t])!=null&&s.some(({sellingPlan:a})=>a===e)?pe(o)||e:Re(e)&&(K(o,i,e)||pe(o))||e}n($p,"getUpdatedDefaultFrequency");function Vp(t){return t.reduce((e,r)=>{let o=r.name.split("-")[1],i=r.selling_plans.map(s=>({numberShipments:wr(s),sellingPlan:String(s.id)}));return{...e,[o]:i}},{})}n(Vp,"getPrepaidSellingPlans");var Ta=Up;var Ca=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"),wa=n((t,e,r)=>{if(!r)return null;if(!Re(r))return r;if(gr(t,e)){let o=K(t,e,r);return o||pe(t)}return r},"getDefaultSellingPlan"),jp=n((t,e,r)=>t.map(o=>Re(o==null?void 0:o.frequency)?{...o,frequency:gr(r==null?void 0:r.frequencies,r==null?void 0:r.frequenciesEveryPeriod)?K(r==null?void 0:r.frequencies,r==null?void 0:r.frequenciesEveryPeriod,o.frequency)||K(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"),Gp=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]&&gr(p,d)?_=K(p,d,`${h.every}_${h.every_period}`)||wa(p,d,f)||pe(p):r[l]?_=`${h.every}_${h.every_period}`:_=wa(p,d,f)||"_",c.concat({id:l,frequency:_})}return c},[]),"reduceNewOptinsFromOfferResponse"),Hp=n((t,e)=>({...Ca(t,e.id,e.available),[e.id]:e.available}),"productOrVariantInStockReducer"),Ra=n((t,e)=>{let r=S(e.key);return{...t,[e.key]:t[r]||null}},"reduceProductCartLine"),Bp=n((t={},e)=>{var r;if(me===e.type){let{payload:o}=e;return o.items.reduce(Ra,t)}if(D===e.type){let{payload:{product:o}}=e,i=ns(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{...Ca(a,c.id,p),[c.id]:p}},t)}return fe===e.type?e.payload.isPreview!==!0?t:{...t,[e.payload.productId]:!0}:t},"autoshipEligible"),zp=n((t={},e)=>{var r;if(me===e.type)return e.payload.items.reduce(Ra,t);if(D===e.type){let{payload:{product:o}}=e;return[o,...(r=o==null?void 0:o.variants)!=null?r:[]].reduce(Hp,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"),Yp=n((t={},e)=>t,"offer");function Wp(t){let e=wr(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(Wp,"getOptedInItem");var Jp=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,Wp(i)]:o,[]))}if(w===e.type){let r=e.payload,{offer:o={},frequencyConfig:i}=r,s=jp(t,o,i),a=Gp(r,s,o,i);return[...s,...a]}if(D===e.type){let{product:r}=e.payload,o=kt(r==null?void 0:r.selling_plan_groups);if(!o)return t;let i=vr(o),s=Tr(o);return t.map(a=>Re(a.frequency)?{...a,frequency:K(i,s,a.frequency)||pe(i)}:a)}if(ce===e.type){let{payload:r}=e,o=so(t,e),[i,s]=et(o,r.product);return s.concat({...i,...r.product,frequency:r.frequency})}return so(t,e)},"optedin"),Kp=n((t={},e)=>t,"productOffer"),Qp=n((t={},e)=>{if(D===e.type){let{payload:{product:r,currency:o}}=e,i=va(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)=>Cn(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]:Cn([],i.selling_plan_allocation,[],r.currency)}:o,t)||t}return t},"productPlans"),Zp=Ht({auth:fn,authUrl:mn,autoshipByDefault:On,autoshipEligible:Bp,config:Ta,defaultFrequencies:vn,eligibilityGroups:un,environment:_n,firstOrderPlaceDate:bn,incentives:dn,inStock:zp,locale:En,merchantId:hn,nextUpcomingOrder:pn,offer:Yp,offerId:gn,experiments:Cr,optedin:Jp,optedout:ln,previewStandardOffer:xn,previewUpsellOffer:Pn,productOffer:Kp,productPlans:Qp,productToSubscribe:Sn,sessionId:yn,templates:Tn,prepaidShipmentsSelected:wn});function Rn(t,e){return window.og&&window.og.previewMode?ao(t,e):Zp(t,e)}n(Rn,"shopifyReducer");var ka=ae(Et()),Fa=ae(zt());function Aa(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(Aa,"updateTrackingInputs");function An(){return`og__${Math.ceil(new Date().getTime()/1e3)}`}n(An,"getTrackingKey");function Xp(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=An(),s=((h=t.payload.offer)==null?void 0:h.location)||"",a=((_=t.payload.offer)==null?void 0:_.variationId)||"",c=po(o,e),p=[o,R.toLowerCase(),s,c,a].join(",");Aa(o,i,p)}n(Xp,"addDefaultToSubTracking");function Nn(t){return e=>r=>{switch(e(r),r.type){case R:case k:case F:{let o=r.payload.offer,i=In(r);o&&!o.isCart&&Aa(o.product.id,i[0],i[1]);break}case w:Xp(r,t);break;default:}}}n(Nn,"shopifyTrackingMiddleware");var Na,Ia,kn=((Ia=(Na=window.Shopify)==null?void 0:Na.routes)==null?void 0:Ia.root)||"/",eu="/cart",tu=`${kn}cart.js`,ru=`${kn}cart/change.js`,ou=`${kn}products/`,nu='[id^="shopify-section-"][id$=__cart-items], [id^="shopify-section-"][id$="__cart-footer"],#cart-live-region-text,#cart-icon-bubble',iu=n(t=>(0,Fa.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 su(){var r,o;let t=(o=(r=window.Shopify)==null?void 0:r.currency)==null?void 0:o.active;return t||(await Fn()).currency}n(su,"getCurrency");async function au(t,e){let r=cu(e);if(r)try{let[i,s]=await Promise.all([qa(r),su()]),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=iu(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(au,"setupPdp");async function Fn(){return(await fetch(tu)).json()}n(Fn,"getCart");function cu(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(cu,"guessProductHandle");var qa=(0,ka.default)(async function(t){return(await fetch(`${ou}${t}.js`)).json()});async function lu(t,e){let r=await Fn(),{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:D,payload:l})})}n(lu,"setupCart");async function pu(t,e){var s,a;let r=t.payload.offer,o=t.payload.frequency||po(t.payload.product.id,e),i=In(t);if(!!(r!=null&&r.isCart))try{r.style.pointerEvents="none",r.style.opacity=".7";let c=Array.from(document.querySelectorAll(nu)),l=t.payload.product.id,p=await Fn(),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(ru,{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:bt,payload:{oldCartProductKey:l,newCartProductKey:E}}),r.setAttribute("product",E));let T=m;e.dispatch({type:me,payload:T});let y=new CustomEvent(ii,{bubbles:!0,cancelable:!0});if(r.dispatchEvent(y),y.defaultPrevented)return;let v=m.sections;Object.values(v).length?c.forEach(C=>{let Dn=C.id.replace(/^shopify-section-/,"");if(!(Dn in v))return;let Va=v[Dn],Un=new DOMParser().parseFromString(Va.toString()||"","text/html").getElementById(C.id);Un&&(C.innerHTML=Un.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(pu,"synchronizeCartOptin");function In(t){var a,c;let e=t.payload.product.id;if(!e)return[];let r=An(),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(In,"getTrackingEvent");function po(t,e){var i;return(i=fr({id:t})(e.getState()))==null?void 0:i.frequency}n(po,"getSubscribedFrequency");function uu(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=po(o,t);Co(r.form,"selling_plan",i),Co(r.form,"attributes[og__session]",t.getState().sessionId)})}n(uu,"synchronizeSellingPlan");function qn(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?lu(t,r.payload.offer):au(t,r.payload.offer);break;default:}switch(e(r),r.type){case R:case k:case F:case ce:pu(r,t);case q:case w:case D:uu(t,r.payload.offer);break;default:}}}n(qn,"shopifyMiddleware");var du="/apps/subscriptions/auth/",Da="og_auth_begin",fu="og_auth_end",hu=n(t=>{let[e,r,o,i]=atob(t).split("|");return{id:e,signature:o,timestamp:r,email:i}},"parseIntegrationTempAuth");async function Ua({store:t}){var i;let[e]=wo(),r=Tt(),o=r!=null&&r.dataset.customer?hu(r.dataset.customer):(i=window.ogShopifyConfig)==null?void 0:i.customer;if(o){let s=await gu(o);if(s){let[a,c,l]=s.split("|");t.dispatch(Rt(e,a,Number(c),l))}}else Oi("og_auth")}n(Ua,"authorizeShopifyCustomer");async function mu(t){try{let r=await(await fetch(`${du}?customer=${t.id}&customer_signature=${t.signature}&customer_timestamp=${t.timestamp}`)).text(),o=r.lastIndexOf(Da);if(o<0)throw"Invalid response from OG auth endpoint";return JSON.parse(r.substring(o+Da.length,r.lastIndexOf(fu)))}catch(e){console.error(e)}}n(mu,"fetchOGSignature");async function gu(t){let e=vi("og_auth");if(e)return e;let{customerId:r,timestamp:o,signature:i}=await mu(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(gu,"getOrCreateAuthCookie");var La,$a=ps(...(La=A)!=null&&La.shopify_selling_plans?[Rn,qn]:[ao],A.shopify&&Nn),O=cn($a),yu=O.isReady,bu=O.addOptinChangedCallback,Su=O.addTemplate,_u=O.clear,Eu=O.config,xu=O.disableOptinChangedCallbacks,Pu=O.getOptins,Ou=O.getProductsForPurchasePost,vu=O.initialize,Tu=O.previewMode,wu=O.register,Cu=O.resolveSettings,Ru=O.setAuthUrl,Au=O.setEnvironment,Nu=O.setLocale,Iu=O.setMerchantId,ku=O.setPublicPath,Fu=O.setTemplates,qu=O.setupCart,Du=O.setupProduct,Uu=O.setupProducts,Lu=n(()=>Pi(O),"autoInit");var Mu=O.initialize,Ma;(Ma=A)!=null&&Ma.shopify_selling_plans&&mr(()=>Ua(O));return Ya($u);})();
|
|
1039
1039
|
; return lib; });
|
|
1040
1040
|
//# sourceMappingURL=offers.js.map
|