@ordergroove/offers 2.27.12-alpha-PR-651-2.0 → 2.27.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/dist/offers.js +1 -1
- package/dist/offers.js.map +2 -2
- package/package.json +2 -2
- package/src/shopify/shopifyMiddleware.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [2.27.12](https://github.com/ordergroove/plush-toys/compare/@ordergroove/offers@2.27.11...@ordergroove/offers@2.27.12) (2022-08-31)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **offers:** SOUR-3479 Shopify app Regression: Offer appearing on ineligible, out of stock variants ([647b5a6](https://github.com/ordergroove/plush-toys/commit/647b5a6d8eb2c3d2ceb1196b2ca16533a9ae158e))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [2.27.11](https://github.com/ordergroove/plush-toys/compare/@ordergroove/offers@2.27.10...@ordergroove/offers@2.27.11) (2022-08-25)
|
|
7
18
|
|
|
8
19
|
|
package/dist/offers.js
CHANGED
|
@@ -876,6 +876,6 @@ var lib=(()=>{var $i=Object.create;var Be=Object.defineProperty;var Hi=Object.ge
|
|
|
876
876
|
<slot name="append"></slot>
|
|
877
877
|
`:p`
|
|
878
878
|
<slot name="fallback"></slot>
|
|
879
|
-
`}};n(Ko,"Price");var ul=n((t,e)=>{var r;return{productPlans:t.productPlans,configDefaultFrequency:(r=t.config)==null?void 0:r.defaultFrequency,frequency:W(e.product)(t)}},"mapStateToProps"),Si=g(ul)(Ko);$();function Zo(t){_i(),ds(t);try{customElements.define("og-when",Js),customElements.define("og-text",si),customElements.define("og-incentive-text",li),customElements.define("og-offer",gi),customElements.define("og-select-frequency",ui),customElements.define("og-optout-button",Xs),customElements.define("og-optin-toggle",ni),customElements.define("og-optin-status",Ks),customElements.define("og-optin-button",Zs),customElements.define("og-optin-select",ti),customElements.define("og-upsell-button",ri),customElements.define("og-frequency-status",ei),customElements.define("og-modal",yr),customElements.define("og-select",br),customElements.define("og-tooltip",_r),customElements.define("og-upsell-modal",oi),customElements.define("og-next-upcoming-order",di),customElements.define("og-price",Si)}catch{console.info("OG WebComponents already registered, skipping.")}let e=!1,r={store:t,isReady:()=>e,setEnvironment(o){return t.dispatch(Fr(o)),this},setMerchantId(o){return t.dispatch(jn(o)),this},setAuthUrl(o){return t.dispatch(Mn(o)),this},getProductsForPurchasePost(o=[]){return Hr(t.getState(),o)},getOptins(o=[]){return Hr(t.getState(),o)},clear(){t.dispatch(Hn())},addOptinChangedCallback(o){typeof o=="function"&&document.addEventListener("optin-changed",s=>o(s.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(zn(o)),this},setLocale(o){return t.dispatch(Bn(o)),this},addTemplate(o,s,i){return t.dispatch(Wn(o,s,i)),this},setTemplates(o){return t.dispatch(Yn(o)),this},setPublicPath(o){return this},resolveSettings(o,s,i,a=t){if(o&&s&&i){let c=[];i.product?c.push(i.product):i.cart&&Array.isArray(i.cart.products)&&(c=c.concat(i.cart.products));let{apiUrl:l}=yt({},Fr(s)),{sessionId:d}=a.getState();d&&c.forEach(h=>{let u=R(h);oe.fetchOffer(l,o,d,`${u}`,he)}),i.product_discounts&&typeof i.product_discounts=="object"&&a.dispatch({type:J,payload:i.product_discounts})}},initialize(o,s,i){var c,l;e||r.resolveSettings(o,s,window.og_settings,t);let a=t.getState();return o&&o!==a.merchantId&&r.setMerchantId(o),s&&s!==((c=a.environment)==null?void 0:c.name)&&r.setEnvironment(s),i&&r.setAuthUrl(i),e?console.warn("og.offers has been initialized already. Skipping."):(window.addEventListener("storage",ts(t)),t.dispatch(Yt())),arguments.length===3&&(((l=t.getState().auth)==null?void 0:l.ts)||t.dispatch(Vn())),e=!0,this}};return window.OG=window.OG||{},Object.assign(window.OG,r),Object.assign(r.initialize,r),$r(window.opener,r),r}n(Zo,"makeApi");V();$();var Ge=n(t=>t===null?"":`$${t.toString().replace(/(\d\d)$/,".$1")}`,"money"),pl=n(t=>`${t}%`,"percentage"),dl=n(t=>{var r,o;let e="";return((r=t.price_adjustments[0])==null?void 0:r.value_type)==="percentage"?e=pl(t.price_adjustments[0].value):((o=t.price_adjustments[0])==null?void 0:o.value)?e=Ge(t.price_adjustments[0].value):t.compare_at_price&&(e=Ge(t.compare_at_price-t.price)),e?[Ge(t.compare_at_price),e,Ge(t.price)]:[Ge(t.price),"",Ge(t.price)]},"mapSellingPlanToDiscount"),Ti=n((t,e,r)=>{let o=Object.keys(t).filter(s=>s.startsWith(e.toString()));return o.length?{...t,...o.reduce((s,i)=>({...s,[i]:r}),{})}:t},"overrideLineKey"),vi=n(t=>t==null?void 0:t.selling_plan_groups.find(r=>r.name==="Subscribe and Save"),"getOGSellingPlanGroup"),fl=n((t,e)=>({...Ti(t,e.id,e.available),[e.id]:e.available}),"productOrVariantInStockReducer"),Oi=n((t,[e])=>({...t,[e]:!0}),"productTrue"),wi=n((t,e)=>{var r;return{...t,[e.selling_plan_id||((r=e.selling_plan)==null?void 0:r.id)]:dl(e)}},"sellingPlanAllocationsReducer"),Ci=n((t,e)=>{let r=R(e.key);return{...t,[e.key]:t[r]||null}},"reduceProductCartLine"),hl=n((t={},e)=>{if(J===e.type)return Object.entries(e.payload).reduce(Oi,t);if(re===e.type){let{payload:r}=e;return r.items.reduce(Ci,t)}if(z===e.type){let{payload:r}=e;return[r,...(r==null?void 0:r.variants)||[]].reduce((o,s)=>{var i,a;return{...Ti(o,s.id,((i=s.selling_plan_allocations)==null?void 0:i.length)>0),[s.id]:((a=s.selling_plan_allocations)==null?void 0:a.length)>0}},t)}return t},"autoshipEligible"),ml=n((t={frequencies:[],offerType:"radio"},e)=>{var r,o,s;if(J===e.type){let i=[...new Set(Object.values(e.payload).map(Object.keys).flat())];return{...t,frequencies:i}}if(z===e.type){let i=e.payload,a=vi(i),c=(r=a==null?void 0:a.selling_plans)==null?void 0:r.map(({id:l})=>`${l}`);if(c==null?void 0:c.length){let l=((s=(o=a.options)==null?void 0:o[0])==null?void 0:s.values)||c;return{...t,defaultFrequency:c[0],frequencies:c,frequenciesText:l}}}return t},"config"),gl=n((t={},e)=>{if(J===e.type)return Object.entries(e.payload).reduce(Oi,t);if(re===e.type)return e.payload.items.reduce(Ci,t);if(z===e.type){let r=e.payload;return[r,...r==null?void 0:r.variants].reduce(fl,t)||t}return t},"inStock"),yl=n((t={},e)=>t,"offer"),bl=n((t="",e)=>"native-shopify-offer","offerId"),_l=n((t=[],e)=>{var r;if(re===e.type){let o=e.payload;return t.filter(s=>!s.id.includes(":")).concat(o.items.reduce((s,i)=>i.selling_plan_allocation?[...s,{id:i.key,frequency:`${i.selling_plan_allocation.selling_plan.id}`}]:s,[]))}if(P===e.type){let{autoship:o,autoship_by_default:s,in_stock:i,offer:a}=e.payload;return Object.keys(o).reduce((c,l)=>c.concat(!c.some(d=>d.id===l)&&o[l]&&s[l]&&i[l]?{id:l,frequency:a.defaultFrequency}:[]),t)}if(z===e.type){let o=e.payload.variants.map(a=>a.id).map(a=>`${a}`),s=vi(e.payload),i=(r=s==null?void 0:s.selling_plans)==null?void 0:r.map(({id:a})=>`${a}`);return t.map(a=>({...a,frequency:o.some(c=>c===a.id)&&!i.some(c=>c===a.frequency)?i[0]:a.frequency}))}return qo(t,e)},"optedin"),El=n((t={},e)=>t,"productOffer"),xl=n((t={},e)=>{if(z===e.type){let r=e.payload;return[r,...r==null?void 0:r.variants].reduce((o,s)=>{var i;return{...o,[s.id]:(i=s.selling_plan_allocations)==null?void 0:i.reduce(wi,{})}},t)||t}return re===e.type?e.payload.items.reduce((o,s)=>s.selling_plan_allocation?{...o,[s.key]:wi({},s.selling_plan_allocation)}:o,t)||t:J===e.type?{...e.payload}:t},"productPlans"),Pi=bt({auth:jo,authUrl:Vo,autoshipByDefault:Yo,autoshipEligible:hl,config:ml,defaultFrequencies:Jo,eligibilityGroups:Fo,environment:yt,firstOrderPlaceDate:Ho,incentives:Lo,inStock:gl,locale:Bo,merchantId:Mo,nextUpcomingOrder:Do,offer:yl,offerId:bl,optedin:_l,optedout:Uo,previewStandardOffer:zo,previewUpsellOffer:Wo,productOffer:El,productPlans:xl,productToSubscribe:Go,sessionId:$o,templates:Qo});var Ri=ee(Ke()),Ai=ee(Et());V();$();var Ui,Di,Ni=((Di=(Ui=window.Shopify)==null?void 0:Ui.routes)==null?void 0:Di.root)||"/",Sl="/cart",Tl=`${Ni}cart.js`,vl=`${Ni}products/`,ki=(0,Ai.debounce)(100,!1,function(t,e){let{id:r}=Object.fromEntries([...new FormData(t).entries()]);r?e.setAttribute("product",r):e.removeAttribute("product")});async function Ol(t,e){let r=wl();if(r)try{t.dispatch({type:z,payload:await qi(r)})}catch(s){console.warn("OG: Unable to fetch product details for PDP",s)}let o=e.closest("form");if(!o){let s=e.parentElement;for(;s&&(o=s.querySelector('form[action="/cart/add"]'),!(o||s.tagName.toLowerCase()==="body"));)s=s.parentElement}o?(o.addEventListener("change",i=>ki(o,e)),new MutationObserver(()=>ki(o,e)).observe(o,{subtree:!0,childList:!0})):console.info("no /cart/add form found for og-offer",e)}n(Ol,"setupPdp");var Ii=n(async()=>await(await fetch(Tl)).json(),"getCart");function wl(){return[()=>{var t,e;return(((e=(t=document.querySelector('[href$=".oembed"]'))==null?void 0:t.getAttribute("href"))==null?void 0:e.match(/\/([^\/]+)\.oembed$/))||[])[1]},()=>{var t,e;return(document.querySelector('meta[property="og:type"][content="product"]')&&((e=(t=document.querySelector('meta[property="og:url"][content]'))==null?void 0:t.getAttribute("content"))==null?void 0:e.match(/\/([^\/]+)$/))||[])[1]},()=>{var t;return(t=[...document.querySelectorAll("[type$=json]")].map(e=>JSON.parse(e.textContent||"{}")).find(e=>e.handle&&e.price))==null?void 0:t.handle}].reduce((t,e)=>t||e(),"")}n(wl,"guessProductHandle");var qi=(0,Ri.default)(async t=>(await fetch(`${vl}${t}.js`)).json());async function Cl(t,e){let r=await Ii(),{items:o}=r;t.dispatch({type:re,payload:r});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:a})=>a))).map(qi))).forEach(a=>t.dispatch({type:z,payload:a}))}n(Cl,"setupCart");async function Pl(t,e){var i,a;let r=t.payload.offer,o=t.payload.frequency||null,s=Rl(t);if(!(r==null?void 0:r.isCart)){r&&Al(r.product.id,s[0],s[1]);return}try{r.style.pointerEvents="none",r.style.opacity=".7";let c=r.closest(".shopify-section"),l=((c==null?void 0:c.id.match(/^shopify-section-(.+)/))||[])[1],d=t.payload.product.id,h=await Ii(),u=(i=h==null?void 0:h.items)==null?void 0:i.findIndex(L=>L.key===d),m=h.items[u],_=m.quantity,b=R(d),f=await fetch("/cart/change.js",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:d,quantity:_,attributes:Object.fromEntries([s]),properties:m.properties,selling_plan:o||null,sections:l?[l]:void 0})});if(f.status!==200)throw new Error("Cart not updated");let x=await f.json(),w=h.items.length===x.items.length?x.items[u].key:(a=x.items.find(L=>L.quantity===_&&L.product_id===b&&(!o&&!L.selling_plan_allocation||(L==null?void 0:L.selling_plan_allocation.selling_plan.id)===o)))==null?void 0:a.key;w&&r.setAttribute("product",w),e.dispatch({type:re,payload:x});let y=new CustomEvent(Sn,{bubbles:!0,cancelable:!0});if(r.dispatchEvent(y),y.defaultPrevented)return;let C=x.sections;if(C&&l in C){let L=C[l],en=new DOMParser().parseFromString(L.toString()||"","text/html").getElementById("shopify-section-"+l);en&&(c.innerHTML=en.innerHTML)}else window.location.pathname.startsWith(Sl)&&window.location.reload()}catch(c){console.log("OG Error updating cart",c)}finally{r.style.pointerEvents="auto",r.style.opacity="1"}}n(Pl,"synchronizeCartOptin");function Rl(t){var i;let e=t.payload.product.id;if(!e)return[];let r=`og__${Math.ceil(new Date().getTime()/1e3)}`,o=((i=t.payload.offer)==null?void 0:i.location)||"",s=[e,t.type.toLowerCase(),o];switch(t.type){case we:case q:s.push("");break;case I:case U:s.push(t.payload.frequency);break;default:return[]}return[r,s.join(",")]}n(Rl,"getTrackingEvent");function Al(t,e,r){let o=`[name="id"][value="${t}"]`,s=`form[action="/cart/add"] option[value="${t}"]`;if(!e)return;let i=document.querySelectorAll(o);i.length||(i=document.querySelectorAll(s)),[...i].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(Al,"updateTrackingInputs");function Nl(t,e,r){let o=t.querySelector(`[name="${e}"]`);if(o&&!r){o.remove();return}!o&&r&&(o=document.createElement("input"),o.type="hidden",o.name=e,t.appendChild(o)),o&&(o.value=r)}n(Nl,"getOrCreateHidden");function kl(t,e){[...document.querySelectorAll("[name=id]")].forEach(r=>{var a;let o=r.value,i=(a=Qt({id:o})(t.getState()))==null?void 0:a.frequency;Nl(r.form,"selling_plan",i)})}n(kl,"synchronizeSellingPlan");function Xo(t){return e=>r=>{var o;switch(r.type){case I:case q:case U:break;case we:((o=r.payload.offer)==null?void 0:o.isCart)?Cl(t,r.payload.offer):Ol(t,r.payload.offer);break;default:}switch(e(r),r.type){case I:case q:case U:Pl(r,t);case we:case P:case z:kl(t,r.payload.offer);break;default:}}}n(Xo,"shopifyMiddleware");Gt();$();N();$();var Il="/apps/subscriptions/auth/",Fi="og_auth_begin",ql="og_auth_end",Ul=n(t=>{let[e,r,o,s]=atob(t).split("|");return{id:e,signature:o,timestamp:r,email:s}},"parseIntegrationTempAuth");async function Li({store:t}){var s;let[e]=qr(),r=ot(),o=(r==null?void 0:r.dataset.customer)?Ul(r.dataset.customer):(s=window.ogShopifyConfig)==null?void 0:s.customer;if(o){let i=await Fl(o);if(i){let[a,c,l]=i.split("|");t.dispatch(nt(e,a,Number(c),l))}}else Un("og_auth")}n(Li,"authorizeShopifyCustomer");async function Dl(t){try{let r=await(await fetch(`${Il}?customer=${t.id}&customer_signature=${t.signature}&customer_timestamp=${t.timestamp}`)).text(),o=r.lastIndexOf(Fi);if(o<0)throw"Invalid response from OG auth endpoint";return JSON.parse(r.substring(o+Fi.length,r.lastIndexOf(ql)))}catch(e){console.error(e)}}n(Dl,"fetchOGSignature");async function Fl(t){let e=Dn("og_auth");if(e)return e;let{customerId:r,timestamp:o,signature:s}=await Dl(t);if(!r)return"";let i=new Date,a=btoa(s);i.setTime(i.getTime()+2*60*60*1e3);let c=`${r}|${o}|${a};expires=${i.toUTCString()}`;return document.cookie=`og_auth=${c};secure;path=/`,c}n(Fl,"getOrCreateAuthCookie");var Mi,ji=cs(...((Mi=Ne)==null?void 0:Mi.shopify_selling_plans)?[Pi,Xo]:[xi]),E=Zo(ji),Ll=E.isReady,jl=E.addOptinChangedCallback,Ml=E.addTemplate,Vl=E.clear,$l=E.config,Hl=E.disableOptinChangedCallbacks,Gl=E.getOptins,Bl=E.getProductsForPurchasePost,zl=E.initialize,Wl=E.previewMode,Yl=E.register,Jl=E.resolveSettings,Ql=E.setAuthUrl,Kl=E.setEnvironment,Zl=E.setLocale,Xl=E.setMerchantId,eu=E.setPublicPath,tu=E.setTemplates,ru=E.setupCart,ou=E.setupProduct,nu=E.setupProducts;var su=E.initialize;rt(()=>qn(E));var Vi;((Vi=Ne)==null?void 0:Vi.shopify_selling_plans)&&rt(()=>Li(E));return iu;})();
|
|
879
|
+
`}};n(Ko,"Price");var ul=n((t,e)=>{var r;return{productPlans:t.productPlans,configDefaultFrequency:(r=t.config)==null?void 0:r.defaultFrequency,frequency:W(e.product)(t)}},"mapStateToProps"),Si=g(ul)(Ko);$();function Zo(t){_i(),ds(t);try{customElements.define("og-when",Js),customElements.define("og-text",si),customElements.define("og-incentive-text",li),customElements.define("og-offer",gi),customElements.define("og-select-frequency",ui),customElements.define("og-optout-button",Xs),customElements.define("og-optin-toggle",ni),customElements.define("og-optin-status",Ks),customElements.define("og-optin-button",Zs),customElements.define("og-optin-select",ti),customElements.define("og-upsell-button",ri),customElements.define("og-frequency-status",ei),customElements.define("og-modal",yr),customElements.define("og-select",br),customElements.define("og-tooltip",_r),customElements.define("og-upsell-modal",oi),customElements.define("og-next-upcoming-order",di),customElements.define("og-price",Si)}catch{console.info("OG WebComponents already registered, skipping.")}let e=!1,r={store:t,isReady:()=>e,setEnvironment(o){return t.dispatch(Fr(o)),this},setMerchantId(o){return t.dispatch(jn(o)),this},setAuthUrl(o){return t.dispatch(Mn(o)),this},getProductsForPurchasePost(o=[]){return Hr(t.getState(),o)},getOptins(o=[]){return Hr(t.getState(),o)},clear(){t.dispatch(Hn())},addOptinChangedCallback(o){typeof o=="function"&&document.addEventListener("optin-changed",s=>o(s.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(zn(o)),this},setLocale(o){return t.dispatch(Bn(o)),this},addTemplate(o,s,i){return t.dispatch(Wn(o,s,i)),this},setTemplates(o){return t.dispatch(Yn(o)),this},setPublicPath(o){return this},resolveSettings(o,s,i,a=t){if(o&&s&&i){let c=[];i.product?c.push(i.product):i.cart&&Array.isArray(i.cart.products)&&(c=c.concat(i.cart.products));let{apiUrl:l}=yt({},Fr(s)),{sessionId:d}=a.getState();d&&c.forEach(h=>{let u=R(h);oe.fetchOffer(l,o,d,`${u}`,he)}),i.product_discounts&&typeof i.product_discounts=="object"&&a.dispatch({type:J,payload:i.product_discounts})}},initialize(o,s,i){var c,l;e||r.resolveSettings(o,s,window.og_settings,t);let a=t.getState();return o&&o!==a.merchantId&&r.setMerchantId(o),s&&s!==((c=a.environment)==null?void 0:c.name)&&r.setEnvironment(s),i&&r.setAuthUrl(i),e?console.warn("og.offers has been initialized already. Skipping."):(window.addEventListener("storage",ts(t)),t.dispatch(Yt())),arguments.length===3&&(((l=t.getState().auth)==null?void 0:l.ts)||t.dispatch(Vn())),e=!0,this}};return window.OG=window.OG||{},Object.assign(window.OG,r),Object.assign(r.initialize,r),$r(window.opener,r),r}n(Zo,"makeApi");V();$();var Ge=n(t=>t===null?"":`$${t.toString().replace(/(\d\d)$/,".$1")}`,"money"),pl=n(t=>`${t}%`,"percentage"),dl=n(t=>{var r,o;let e="";return((r=t.price_adjustments[0])==null?void 0:r.value_type)==="percentage"?e=pl(t.price_adjustments[0].value):((o=t.price_adjustments[0])==null?void 0:o.value)?e=Ge(t.price_adjustments[0].value):t.compare_at_price&&(e=Ge(t.compare_at_price-t.price)),e?[Ge(t.compare_at_price),e,Ge(t.price)]:[Ge(t.price),"",Ge(t.price)]},"mapSellingPlanToDiscount"),Ti=n((t,e,r)=>{let o=Object.keys(t).filter(s=>s.startsWith(e.toString()));return o.length?{...t,...o.reduce((s,i)=>({...s,[i]:r}),{})}:t},"overrideLineKey"),vi=n(t=>t==null?void 0:t.selling_plan_groups.find(r=>r.name==="Subscribe and Save"),"getOGSellingPlanGroup"),fl=n((t,e)=>({...Ti(t,e.id,e.available),[e.id]:e.available}),"productOrVariantInStockReducer"),Oi=n((t,[e])=>({...t,[e]:!0}),"productTrue"),wi=n((t,e)=>{var r;return{...t,[e.selling_plan_id||((r=e.selling_plan)==null?void 0:r.id)]:dl(e)}},"sellingPlanAllocationsReducer"),Ci=n((t,e)=>{let r=R(e.key);return{...t,[e.key]:t[r]||null}},"reduceProductCartLine"),hl=n((t={},e)=>{if(J===e.type)return Object.entries(e.payload).reduce(Oi,t);if(re===e.type){let{payload:r}=e;return r.items.reduce(Ci,t)}if(z===e.type){let{payload:r}=e;return[r,...(r==null?void 0:r.variants)||[]].reduce((o,s)=>{var i,a;return{...Ti(o,s.id,((i=s.selling_plan_allocations)==null?void 0:i.length)>0),[s.id]:((a=s.selling_plan_allocations)==null?void 0:a.length)>0}},t)}return t},"autoshipEligible"),ml=n((t={frequencies:[],offerType:"radio"},e)=>{var r,o,s;if(J===e.type){let i=[...new Set(Object.values(e.payload).map(Object.keys).flat())];return{...t,frequencies:i}}if(z===e.type){let i=e.payload,a=vi(i),c=(r=a==null?void 0:a.selling_plans)==null?void 0:r.map(({id:l})=>`${l}`);if(c==null?void 0:c.length){let l=((s=(o=a.options)==null?void 0:o[0])==null?void 0:s.values)||c;return{...t,defaultFrequency:c[0],frequencies:c,frequenciesText:l}}}return t},"config"),gl=n((t={},e)=>{if(J===e.type)return Object.entries(e.payload).reduce(Oi,t);if(re===e.type)return e.payload.items.reduce(Ci,t);if(z===e.type){let r=e.payload;return[r,...r==null?void 0:r.variants].reduce(fl,t)||t}return t},"inStock"),yl=n((t={},e)=>t,"offer"),bl=n((t="",e)=>"native-shopify-offer","offerId"),_l=n((t=[],e)=>{var r;if(re===e.type){let o=e.payload;return t.filter(s=>!s.id.includes(":")).concat(o.items.reduce((s,i)=>i.selling_plan_allocation?[...s,{id:i.key,frequency:`${i.selling_plan_allocation.selling_plan.id}`}]:s,[]))}if(P===e.type){let{autoship:o,autoship_by_default:s,in_stock:i,offer:a}=e.payload;return Object.keys(o).reduce((c,l)=>c.concat(!c.some(d=>d.id===l)&&o[l]&&s[l]&&i[l]?{id:l,frequency:a.defaultFrequency}:[]),t)}if(z===e.type){let o=e.payload.variants.map(a=>a.id).map(a=>`${a}`),s=vi(e.payload),i=(r=s==null?void 0:s.selling_plans)==null?void 0:r.map(({id:a})=>`${a}`);return t.map(a=>({...a,frequency:o.some(c=>c===a.id)&&!i.some(c=>c===a.frequency)?i[0]:a.frequency}))}return qo(t,e)},"optedin"),El=n((t={},e)=>t,"productOffer"),xl=n((t={},e)=>{if(z===e.type){let r=e.payload;return[r,...r==null?void 0:r.variants].reduce((o,s)=>{var i;return{...o,[s.id]:(i=s.selling_plan_allocations)==null?void 0:i.reduce(wi,{})}},t)||t}return re===e.type?e.payload.items.reduce((o,s)=>s.selling_plan_allocation?{...o,[s.key]:wi({},s.selling_plan_allocation)}:o,t)||t:J===e.type?{...e.payload}:t},"productPlans"),Pi=bt({auth:jo,authUrl:Vo,autoshipByDefault:Yo,autoshipEligible:hl,config:ml,defaultFrequencies:Jo,eligibilityGroups:Fo,environment:yt,firstOrderPlaceDate:Ho,incentives:Lo,inStock:gl,locale:Bo,merchantId:Mo,nextUpcomingOrder:Do,offer:yl,offerId:bl,optedin:_l,optedout:Uo,previewStandardOffer:zo,previewUpsellOffer:Wo,productOffer:El,productPlans:xl,productToSubscribe:Go,sessionId:$o,templates:Qo});var Ri=ee(Ke()),Ai=ee(Et());V();$();var Ui,Di,Ni=((Di=(Ui=window.Shopify)==null?void 0:Ui.routes)==null?void 0:Di.root)||"/",Sl="/cart",Tl=`${Ni}cart.js`,vl=`${Ni}products/`,ki=(0,Ai.debounce)(100,!1,function(t,e){let{id:r}=Object.fromEntries([...new FormData(t).entries()]);r?e.setAttribute("product",r):e.removeAttribute("product")});async function Ol(t,e){let r=wl();if(r)try{t.dispatch({type:z,payload:await qi(r)})}catch(s){console.warn("OG: Unable to fetch product details for PDP",s)}let o=e.closest("form");if(!o){let s=e.parentElement;for(;s&&(o=s.querySelector('form[action$="/cart/add"]'),!(o||s.tagName.toLowerCase()==="body"));)s=s.parentElement}o?(o.addEventListener("change",i=>ki(o,e)),new MutationObserver(()=>ki(o,e)).observe(o,{subtree:!0,childList:!0})):console.info("no /cart/add form found for og-offer",e)}n(Ol,"setupPdp");var Ii=n(async()=>await(await fetch(Tl)).json(),"getCart");function wl(){return[()=>{var t,e;return(((e=(t=document.querySelector('[href$=".oembed"]'))==null?void 0:t.getAttribute("href"))==null?void 0:e.match(/\/([^\/]+)\.oembed$/))||[])[1]},()=>{var t,e;return(document.querySelector('meta[property="og:type"][content="product"]')&&((e=(t=document.querySelector('meta[property="og:url"][content]'))==null?void 0:t.getAttribute("content"))==null?void 0:e.match(/\/([^\/]+)$/))||[])[1]},()=>{var t;return(t=[...document.querySelectorAll("[type$=json]")].map(e=>JSON.parse(e.textContent||"{}")).find(e=>e.handle&&e.price))==null?void 0:t.handle}].reduce((t,e)=>t||e(),"")}n(wl,"guessProductHandle");var qi=(0,Ri.default)(async t=>(await fetch(`${vl}${t}.js`)).json());async function Cl(t,e){let r=await Ii(),{items:o}=r;t.dispatch({type:re,payload:r});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:a})=>a))).map(qi))).forEach(a=>t.dispatch({type:z,payload:a}))}n(Cl,"setupCart");async function Pl(t,e){var i,a;let r=t.payload.offer,o=t.payload.frequency||null,s=Rl(t);if(!(r==null?void 0:r.isCart)){r&&Al(r.product.id,s[0],s[1]);return}try{r.style.pointerEvents="none",r.style.opacity=".7";let c=r.closest(".shopify-section"),l=((c==null?void 0:c.id.match(/^shopify-section-(.+)/))||[])[1],d=t.payload.product.id,h=await Ii(),u=(i=h==null?void 0:h.items)==null?void 0:i.findIndex(L=>L.key===d),m=h.items[u],_=m.quantity,b=R(d),f=await fetch("/cart/change.js",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:d,quantity:_,attributes:Object.fromEntries([s]),properties:m.properties,selling_plan:o||null,sections:l?[l]:void 0})});if(f.status!==200)throw new Error("Cart not updated");let x=await f.json(),w=h.items.length===x.items.length?x.items[u].key:(a=x.items.find(L=>L.quantity===_&&L.product_id===b&&(!o&&!L.selling_plan_allocation||(L==null?void 0:L.selling_plan_allocation.selling_plan.id)===o)))==null?void 0:a.key;w&&r.setAttribute("product",w),e.dispatch({type:re,payload:x});let y=new CustomEvent(Sn,{bubbles:!0,cancelable:!0});if(r.dispatchEvent(y),y.defaultPrevented)return;let C=x.sections;if(C&&l in C){let L=C[l],en=new DOMParser().parseFromString(L.toString()||"","text/html").getElementById("shopify-section-"+l);en&&(c.innerHTML=en.innerHTML)}else window.location.pathname.startsWith(Sl)&&window.location.reload()}catch(c){console.log("OG Error updating cart",c)}finally{r.style.pointerEvents="auto",r.style.opacity="1"}}n(Pl,"synchronizeCartOptin");function Rl(t){var i;let e=t.payload.product.id;if(!e)return[];let r=`og__${Math.ceil(new Date().getTime()/1e3)}`,o=((i=t.payload.offer)==null?void 0:i.location)||"",s=[e,t.type.toLowerCase(),o];switch(t.type){case we:case q:s.push("");break;case I:case U:s.push(t.payload.frequency);break;default:return[]}return[r,s.join(",")]}n(Rl,"getTrackingEvent");function Al(t,e,r){let o=`[name="id"][value="${t}"]`,s=`form[action="/cart/add"] option[value="${t}"]`;if(!e)return;let i=document.querySelectorAll(o);i.length||(i=document.querySelectorAll(s)),[...i].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(Al,"updateTrackingInputs");function Nl(t,e,r){let o=t.querySelector(`[name="${e}"]`);if(o&&!r){o.remove();return}!o&&r&&(o=document.createElement("input"),o.type="hidden",o.name=e,t.appendChild(o)),o&&(o.value=r)}n(Nl,"getOrCreateHidden");function kl(t,e){[...document.querySelectorAll("[name=id]")].forEach(r=>{var a;let o=r.value,i=(a=Qt({id:o})(t.getState()))==null?void 0:a.frequency;Nl(r.form,"selling_plan",i)})}n(kl,"synchronizeSellingPlan");function Xo(t){return e=>r=>{var o;switch(r.type){case I:case q:case U:break;case we:((o=r.payload.offer)==null?void 0:o.isCart)?Cl(t,r.payload.offer):Ol(t,r.payload.offer);break;default:}switch(e(r),r.type){case I:case q:case U:Pl(r,t);case we:case P:case z:kl(t,r.payload.offer);break;default:}}}n(Xo,"shopifyMiddleware");Gt();$();N();$();var Il="/apps/subscriptions/auth/",Fi="og_auth_begin",ql="og_auth_end",Ul=n(t=>{let[e,r,o,s]=atob(t).split("|");return{id:e,signature:o,timestamp:r,email:s}},"parseIntegrationTempAuth");async function Li({store:t}){var s;let[e]=qr(),r=ot(),o=(r==null?void 0:r.dataset.customer)?Ul(r.dataset.customer):(s=window.ogShopifyConfig)==null?void 0:s.customer;if(o){let i=await Fl(o);if(i){let[a,c,l]=i.split("|");t.dispatch(nt(e,a,Number(c),l))}}else Un("og_auth")}n(Li,"authorizeShopifyCustomer");async function Dl(t){try{let r=await(await fetch(`${Il}?customer=${t.id}&customer_signature=${t.signature}&customer_timestamp=${t.timestamp}`)).text(),o=r.lastIndexOf(Fi);if(o<0)throw"Invalid response from OG auth endpoint";return JSON.parse(r.substring(o+Fi.length,r.lastIndexOf(ql)))}catch(e){console.error(e)}}n(Dl,"fetchOGSignature");async function Fl(t){let e=Dn("og_auth");if(e)return e;let{customerId:r,timestamp:o,signature:s}=await Dl(t);if(!r)return"";let i=new Date,a=btoa(s);i.setTime(i.getTime()+2*60*60*1e3);let c=`${r}|${o}|${a};expires=${i.toUTCString()}`;return document.cookie=`og_auth=${c};secure;path=/`,c}n(Fl,"getOrCreateAuthCookie");var Mi,ji=cs(...((Mi=Ne)==null?void 0:Mi.shopify_selling_plans)?[Pi,Xo]:[xi]),E=Zo(ji),Ll=E.isReady,jl=E.addOptinChangedCallback,Ml=E.addTemplate,Vl=E.clear,$l=E.config,Hl=E.disableOptinChangedCallbacks,Gl=E.getOptins,Bl=E.getProductsForPurchasePost,zl=E.initialize,Wl=E.previewMode,Yl=E.register,Jl=E.resolveSettings,Ql=E.setAuthUrl,Kl=E.setEnvironment,Zl=E.setLocale,Xl=E.setMerchantId,eu=E.setPublicPath,tu=E.setTemplates,ru=E.setupCart,ou=E.setupProduct,nu=E.setupProducts;var su=E.initialize;rt(()=>qn(E));var Vi;((Vi=Ne)==null?void 0:Vi.shopify_selling_plans)&&rt(()=>Li(E));return iu;})();
|
|
880
880
|
; return lib; });
|
|
881
881
|
//# sourceMappingURL=offers.js.map
|