@ordergroove/offers 2.34.2-alpha-PR-756-1.63 → 2.34.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/dist/bundle-report.html +7 -7
- package/dist/offers.js +8 -7
- package/dist/offers.js.map +2 -2
- package/package.json +2 -2
- package/src/components/OptinButton.js +2 -2
- package/src/components/OptoutButton.js +2 -2
- package/src/components/Select.js +3 -2
- package/src/components/SelectFrequency.js +1 -0
- package/src/shopify/shopifyMiddleware.ts +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [2.34.2](https://github.com/ordergroove/plush-toys/compare/@ordergroove/offers@2.34.1...@ordergroove/offers@2.34.2) (2023-09-25)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **offers:** buttons are not aria-connected to their labels ([0277fe3](https://github.com/ordergroove/plush-toys/commit/0277fe3d008229c1b943759ba8f60620b38a8252))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [2.34.1](https://github.com/ordergroove/plush-toys/compare/@ordergroove/offers@2.34.0...@ordergroove/offers@2.34.1) (2023-06-26)
|
|
7
18
|
|
|
8
19
|
**Note:** Version bump only for package @ordergroove/offers
|
package/dist/bundle-report.html
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
│ └ examples/index.js
|
|
5
5
|
└ examples/index.js ───────────────────────────────────────── 9.7kb ─── 3.4%
|
|
6
6
|
|
|
7
|
-
dist/offers.js ───────────────────────────────────────────── 144.
|
|
7
|
+
dist/offers.js ───────────────────────────────────────────── 144.6kb ─ 100.0%
|
|
8
8
|
├ src/components/Offer.js ─────────────────────────────────── 8.2kb ─── 5.7%
|
|
9
9
|
│ └ src/make-api.js
|
|
10
10
|
│ └ src/index.js
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
├ src/components/Modal.js ─────────────────────────────────── 4.8kb ─── 3.3%
|
|
35
35
|
│ └ src/make-api.js
|
|
36
36
|
│ └ src/index.js
|
|
37
|
-
├ src/shopify/shopifyMiddleware.ts ────────────────────────── 4.
|
|
37
|
+
├ src/shopify/shopifyMiddleware.ts ────────────────────────── 4.8kb ─── 3.3%
|
|
38
38
|
│ └ src/index.js
|
|
39
39
|
├ src/core/actions-preview.js ─────────────────────────────── 4.4kb ─── 3.1%
|
|
40
40
|
│ └ src/components/Offer.js
|
|
@@ -88,6 +88,9 @@
|
|
|
88
88
|
│ └ src/components/Price.js
|
|
89
89
|
│ └ src/make-api.js
|
|
90
90
|
│ └ src/index.js
|
|
91
|
+
├ src/components/Select.js ────────────────────────────────── 1.8kb ─── 1.2%
|
|
92
|
+
│ └ src/make-api.js
|
|
93
|
+
│ └ src/index.js
|
|
91
94
|
├ node_modules/lit-element/lit-element.js ─────────────────── 1.8kb ─── 1.2%
|
|
92
95
|
│ └ src/components/Price.js
|
|
93
96
|
│ └ src/make-api.js
|
|
@@ -98,9 +101,6 @@
|
|
|
98
101
|
├ src/components/PrepaidData.js ───────────────────────────── 1.7kb ─── 1.2%
|
|
99
102
|
│ └ src/make-api.js
|
|
100
103
|
│ └ src/index.js
|
|
101
|
-
├ src/components/Select.js ────────────────────────────────── 1.7kb ─── 1.2%
|
|
102
|
-
│ └ src/make-api.js
|
|
103
|
-
│ └ src/index.js
|
|
104
104
|
├ src/components/FrequencyStatus.js ───────────────────────── 1.6kb ─── 1.1%
|
|
105
105
|
│ └ src/make-api.js
|
|
106
106
|
│ └ src/index.js
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
│ └ src/components/When.js
|
|
109
109
|
│ └ src/make-api.js
|
|
110
110
|
│ └ src/index.js
|
|
111
|
-
├ src/components/OptinToggle.js ───────────────────────────── 1.5kb ─── 1.
|
|
111
|
+
├ src/components/OptinToggle.js ───────────────────────────── 1.5kb ─── 1.0%
|
|
112
112
|
│ └ src/make-api.js
|
|
113
113
|
│ └ src/index.js
|
|
114
114
|
├ src/components/OptinSelect.js ───────────────────────────── 1.4kb ─── 1.0%
|
|
@@ -214,7 +214,7 @@
|
|
|
214
214
|
│ └ src/components/When.js
|
|
215
215
|
│ └ src/make-api.js
|
|
216
216
|
│ └ src/index.js
|
|
217
|
-
├ src/components/OptoutButton.js ────────────────────────────
|
|
217
|
+
├ src/components/OptoutButton.js ──────────────────────────── 565b ──── 0.4%
|
|
218
218
|
│ └ src/make-api.js
|
|
219
219
|
│ └ src/index.js
|
|
220
220
|
├ src/core/dateUtils.js ───────────────────────────────────── 541b ──── 0.4%
|
package/dist/offers.js
CHANGED
|
@@ -185,8 +185,8 @@ var lib=(()=>{var La=Object.create;var ct=Object.defineProperty;var Ma=Object.ge
|
|
|
185
185
|
<slot name="not-subscribed"></slot>
|
|
186
186
|
`}};n(K,"OptinStatus");var Q=n((t,e={})=>({subscribed:te(e.product)(t),frequency:oe(e.product)(t),productDefaultFrequency:Ke((e.product||{}).id)(t),prepaidShipmentsOptedIn:H(e.product)(t),...G(t,e,"defaultFrequency"),...G(t,e,"frequencies"),...Qe(t,e)}),"mapStateToProps"),Li=g(Q)(K);q();St();var qt=class extends K{static get properties(){return{...super.properties,frequency:{type:String,reflect:!0},defaultFrequency:Oe,optinButtonLabel:{type:String}}}updated(e){if(e.has("subscribed")||e.has("frequencies")){if(L.shopify_selling_plans&&this.store){let r=this.getAttribute("default-frequency");r=so(r,this.store.getState().config),this.sellingPlanFreq=r}this.frequencyMatch=this.frequency===this.optinFrequency}}get optinFrequency(){let e;return this.sellingPlanFreq?e=this.sellingPlanFreq:this.hasAttribute("default-frequency")?e=this.getAttribute("default-frequency"):e=this.offer?this.offer.defaultFrequency:this.defaultFrequency,L.shopify_selling_plans&&this.store&&(e=so(e,this.store.getState().config)),e}handleClick(e){this.optinProduct(kt(this),this.optinFrequency,this.offer),e.preventDefault()}render(){return u`
|
|
187
187
|
<slot name="default">
|
|
188
|
-
<button
|
|
189
|
-
<label
|
|
188
|
+
<button aria-labelledby="ogOfferOptInLabel" class="btn radio ${this.subscribed?"active":""}"></button>
|
|
189
|
+
<label id="ogOfferOptInLabel">
|
|
190
190
|
<slot>
|
|
191
191
|
<slot name="label"><og-text key="offerOptInLabel"></og-text></slot>
|
|
192
192
|
</slot>
|
|
@@ -194,8 +194,8 @@ var lib=(()=>{var La=Object.create;var ct=Object.defineProperty;var Ma=Object.ge
|
|
|
194
194
|
</slot>
|
|
195
195
|
`}};n(qt,"OptinButton");var Mi=g(Q,{optinProduct:W})(qt);E();A();var Vo=class extends K{static get properties(){return{...super.properties,label:{type:String}}}handleClick(e){this.optoutProduct(this.product,this.offer),e.preventDefault()}render(){return u`
|
|
196
196
|
<slot name="default">
|
|
197
|
-
<button
|
|
198
|
-
<label
|
|
197
|
+
<button aria-labelledby="ogOfferOptOutLabel" class="btn radio ${this.subscribed?"":"active"}"></button>
|
|
198
|
+
<label id="ogOfferOptOutLabel">
|
|
199
199
|
<slot>
|
|
200
200
|
<og-text key="offerOptOutLabel"></og-text>
|
|
201
201
|
</slot>
|
|
@@ -353,6 +353,7 @@ var lib=(()=>{var La=Object.create;var ct=Object.defineProperty;var Ma=Object.ge
|
|
|
353
353
|
${s} ${this.defaultText||""}
|
|
354
354
|
`:s,value:i})),u`
|
|
355
355
|
<og-select
|
|
356
|
+
ariaLabel="Delivery frequency"
|
|
356
357
|
.options="${e}"
|
|
357
358
|
.selected="${this.currentFrequency}"
|
|
358
359
|
.onChange="${({target:{value:s}})=>{this.productChangeFrequency(this.product,s,this.offer)}}"
|
|
@@ -709,8 +710,8 @@ var lib=(()=>{var La=Object.create;var ct=Object.defineProperty;var Ma=Object.ge
|
|
|
709
710
|
line-height: 0.2em;
|
|
710
711
|
transform: scaleY(0.5);
|
|
711
712
|
}
|
|
712
|
-
`}static get properties(){return{options:{type:Array},selected:{type:String}}}render(){return u`
|
|
713
|
-
<select @change="${n(r=>this.onChange(r),"handleOnChange")}">
|
|
713
|
+
`}static get properties(){return{options:{type:Array},selected:{type:String},ariaLabel:{type:String}}}render(){return u`
|
|
714
|
+
<select @change="${n(r=>this.onChange(r),"handleOnChange")}" aria-label="${this.ariaLabel}">
|
|
714
715
|
${this.options.map(r=>u`
|
|
715
716
|
<option
|
|
716
717
|
value="${r.value}"
|
|
@@ -1019,6 +1020,6 @@ var lib=(()=>{var La=Object.create;var ct=Object.defineProperty;var Ma=Object.ge
|
|
|
1019
1020
|
<slot name="append"></slot>
|
|
1020
1021
|
`:u`
|
|
1021
1022
|
<slot name="fallback"></slot>
|
|
1022
|
-
`}};n(Cn,"Price");var _p=n((t,e)=>{var r;return{productPlans:t.productPlans,configDefaultFrequency:(r=t.config)==null?void 0:r.defaultFrequency,frequency:oe(e.product)(t)}},"mapStateToProps"),fa=g(_p)(Cn);q();function Rn(t){ua(),ei(t);try{customElements.define("og-when",Fi),customElements.define("og-text",zi),customElements.define("og-incentive-text",Ki),customElements.define("og-offer",oa),customElements.define("og-select-frequency",Qi),customElements.define("og-optout-button",ji),customElements.define("og-optin-toggle",Bi),customElements.define("og-optin-status",Li),customElements.define("og-optin-button",Mi),customElements.define("og-optin-select",Vi),customElements.define("og-upsell-button",Hi),customElements.define("og-frequency-status",$i),customElements.define("og-modal",kr),customElements.define("og-select",qr),customElements.define("og-tooltip",Dr),customElements.define("og-upsell-modal",Gi),customElements.define("og-next-upcoming-order",Xi),customElements.define("og-price",fa),customElements.define("og-prepaid-toggle",na),customElements.define("og-prepaid-data",sa),customElements.define("og-prepaid-button",ia),customElements.define("og-prepaid-select",aa),customElements.define("og-subscription-button",ca)}catch{console.info("OG WebComponents already registered, skipping.")}let e=!1,r={store:t,isReady:()=>e,setEnvironment(o){return t.dispatch(lo(o)),this},setMerchantId(o){return t.dispatch(Ts(o)),this},setAuthUrl(o){return t.dispatch(ws(o)),this},getProductsForPurchasePost(o=[]){return mo(t.getState(),o)},getOptins(o=[]){return mo(t.getState(),o)},clear(){t.dispatch(Ns())},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(qs(o)),this},setLocale(o){return t.dispatch(ks(o)),this},addTemplate(o,s,i){return t.dispatch(Ds(o,s,i)),this},setTemplates(o){return t.dispatch(Fs(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}=Lt({},lo(s)),{sessionId:p}=a.getState();p&&c.forEach(f=>{let d=P(f);me.fetchOffer(l,o,p,`${d}`,Ce)}),i.product_discounts&&typeof i.product_discounts=="object"&&a.dispatch({type:z,payload:i.product_discounts})}},initialize(o,s,i){var c;e?console.warn("og.offers has been initialized already. Skipping."):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=!0,this}};return window.OG=window.OG||{},Object.assign(window.OG,r),Object.assign(r.initialize,r),ho(window.opener,r),r}n(Rn,"makeApi");j();q();var ue=n(t=>t===null?"":`$${t.toString().replace(/(\d\d)$/,".$1")}`,"money"),Mr=n(t=>`${t}%`,"percentage");var jr=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"),$r=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"),Sp=n(t=>{var e;return(t.selling_plan_id||((e=t.selling_plan)==null?void 0:e.id)).toString()},"getAllocationFrequency"),Ep=n(t=>ue(t.compare_at_price),"getAllocationRegularPrice"),xp=n(t=>{var e;if(jr(t)){let r=$r((e=t.selling_plan)==null?void 0:e.options),o=Math.round(t.price/r);return ue(o)}return ue(t.price)},"getAllocationSubscriptionPrice"),ha=n((t,e)=>Math.round((t.compare_at_price-e)*100/t.compare_at_price),"getPrepaidPercentage"),vp=n(t=>{var r,o,s;if(jr(t)){let i=$r((r=t.selling_plan)==null?void 0:r.options),a=t.price/i,c=ha(t,a);return Mr(c)}let e="";return((o=t.price_adjustments[0])==null?void 0:o.value_type)==="percentage"?e=Mr(t.price_adjustments[0].value):((s=t.price_adjustments[0])==null?void 0:s.value)?e=ue(t.price_adjustments[0].value):t.compare_at_price&&(e=ue(t.compare_at_price-t.price)),e},"getAllocationDiscountRate"),Op=n(t=>{var e;return jr(t)?$r((e=t.selling_plan)==null?void 0:e.options):null},"getAllocationNumberOfShipments"),Pp=n((t,e,r)=>{var p,f;let o=$r((p=t.selling_plan)==null?void 0:p.options),s=t.price/o,i=t.compare_at_price-s,a=ha(t,s),c=(f=r==null?void 0:r.price_adjustments)==null?void 0:f[0],l=c&&c.value_type==="percentage"?c.value:null;return e.regularPrepaidPrice=ue(t.price),e.prepaidSavingsPerShipment=ue(Math.round(i)),e.prepaidSavingsTotal=ue(Math.round(i*o)),l&&a&&(e.prepaidExtraSavingsPercentage=Mr(a-l)),e},"addPrepaidPriceAndSavings"),An="Subscribe and Save",Tp=n((t,e=[])=>{t.selling_plan||(t.selling_plan=e.find(o=>o.id===t.selling_plan_id));let r={frequency:Sp(t),regularPrice:Ep(t),subscriptionPrice:xp(t),discountRate:vp(t),prepaidShipments:Op(t)};if(jr(t)){let o=e.find(s=>s.group_name===An&&s.options.length===1);return Pp(t,r,o)}return r},"mapSellingPlanToDiscount"),Nn=n((t,e,r=[])=>[...t,Tp(e,r)],"sellingPlanAllocationsReducer"),ma=n(t=>t.selling_plan_groups.reduce((e,r)=>[...e,...r.selling_plans.map(o=>({...o,group_name:r.name}))],[]),"getSellingPlans");var ga=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"),ya=n((t,e,r)=>{if(!r)return null;if(!Ze(r))return r;if(ur(t,e)){let o=se(t,e,r);return o||ye(t)}return r},"getDefaultSellingPlan"),wp=n((t,e)=>t.map(r=>{var o,s,i,a,c,l,p;return Ze(r==null?void 0:r.frequency)?{...r,frequency:ur((o=e==null?void 0:e.config)==null?void 0:o.frequencies,(s=e==null?void 0:e.config)==null?void 0:s.frequenciesEveryPeriod)?se((i=e==null?void 0:e.config)==null?void 0:i.frequencies,(a=e==null?void 0:e.config)==null?void 0:a.frequenciesEveryPeriod,r.frequency)||se((c=e==null?void 0:e.config)==null?void 0:c.frequencies,(l=e==null?void 0:e.config)==null?void 0:l.frequenciesEveryPeriod,e.defaultFrequency)||ye((p=e==null?void 0:e.config)==null?void 0:p.frequencies):r.frequency}:r}),"mapExistingOptinsFromOfferResponse"),Cp=n(({autoship:t={},autoship_by_default:e={},default_frequencies:r={},in_stock:o={}},s,i)=>Object.keys(t).reduce((a,c)=>{if(!s.some(l=>l.id===c)){if(!(t[c]&&e[c]&&o[c]))return a;let{config:{frequencies:l,frequenciesEveryPeriod:p}={},defaultFrequency:f}=i,d=r[c],m;return r[c]&&ur(l,p)?m=se(l,p,`${d.every}_${d.every_period}`)||ya(l,p,f)||ye(l):r[c]?m=`${d.every}_${d.every_period}`:m=ya(l,p,f)||"_",a.concat({id:c,frequency:m})}return a},[]),"reduceNewOptinsFromOfferResponse"),ba=n(t=>t==null?void 0:t.selling_plan_groups.find(r=>r.name===An),"getOGSellingPlanGroup"),Rp=n((t,e)=>({...ga(t,e.id,e.available),[e.id]:e.available}),"productOrVariantInStockReducer"),_a=n((t,[e])=>({...t,[e]:!0}),"productTrue"),Sa=n((t,e)=>{let r=P(e.key);return{...t,[e.key]:t[r]||null}},"reduceProductCartLine"),Ap=n(t=>t.name.toUpperCase().includes("PREPAID"),"isPrepaidSellingPlanGroup"),Np=n((t,e)=>{if(!t||t.length===0)return[];if(!e||e.length===0)return t;let r=e.reduce((o,s)=>(Ap(s)||o.push(...s.selling_plans.map(i=>i.id)),o),[]);return t.filter(o=>r.includes(o.selling_plan_id))},"filterNonPrepaidSellingPlans"),Ip=n((t={},e)=>{if(z===e.type)return Object.entries(e.payload).reduce(_a,t);if(he===e.type){let{payload:r}=e;return r.items.reduce(Sa,t)}if(X===e.type){let{payload:{product:r}}=e;return[r,...(r==null?void 0:r.variants)||[]].reduce((o,s)=>{let i=Np(s==null?void 0:s.selling_plan_allocations,r==null?void 0:r.selling_plan_groups);return{...ga(o,s.id,(i==null?void 0:i.length)>0),[s.id]:(i==null?void 0:i.length)>0}},t)}return t},"autoshipEligible");function kp(t){let e=["day","week","month"].findIndex(o=>t.toLowerCase().includes(o))+1,r=(t.match(/(\d+)/)||["",1])[1];return r&&e?`${r}_${e}`:null}n(kp,"textToFreq");function Ea(t){var e;return(e=t==null?void 0:t.selling_plans)==null?void 0:e.map(({options:r})=>r||[]).flat().map(({value:r})=>kp(r))}n(Ea,"sellingPlansToEveryPeriod");function xa(t){var e;return(e=t==null?void 0:t.selling_plans)==null?void 0:e.map(({id:r})=>`${r}`)}n(xa,"sellingPlansToFrequencies");function va(t){var r;let e=(r=t==null?void 0:t.options.find(({name:o})=>o==="Shipment amount"))==null?void 0:r.value.split(" ")[0];return e?Number(e):void 0}n(va,"getPrepaidShipments");function qp(t){return t.reduce((e,r)=>{let o=r.name.split("-")[1],s=r.selling_plans.map(i=>({numberShipments:va(i),sellingPlan:String(i.id)}));return{...e,[o]:s}},{})}n(qp,"getPrepaidSellingPlans");var Dp=n((t={frequencies:[],offerType:"radio",frequenciesEveryPeriod:[]},e)=>{var r,o,s;if(z===e.type){let i=[...new Set(Object.values(e.payload).map(Object.keys).flat())];return{...t,frequencies:i}}if(X===e.type){let{payload:{offer:i,product:a}}=e,c={},l=ba(a),p=xa(l);if(p==null?void 0:p.length){let d=Ea(l),m=((o=(r=l.options)==null?void 0:r[0])==null?void 0:o.values)||p,y=t.defaultFrequency;y&&Ze(y)&&(y=se(p,d,y)||ye(p)||y),c={frequencies:p,frequenciesEveryPeriod:d,frequenciesText:m,...y?{defaultFrequency:y}:{}}}let f=a==null?void 0:a.selling_plan_groups.filter(d=>/^Prepaid-.*/.test(d.name));return f.length&&(c={...c,prepaidSellingPlans:{...t.prepaidSellingPlans,...qp(f)}}),{...t,...c}}if(R===e.type){let{payload:{offer:i}}=e,{defaultFrequency:a,config:{frequencies:c,frequenciesEveryPeriod:l,prepaidSellingPlans:p={}}={},product:f}=i;return((s=p[f==null?void 0:f.id])==null?void 0:s.some(({sellingPlan:d})=>d===a))?{...t,defaultFrequency:ye(c)||a}:Ze(a)?{...t,defaultFrequency:se(c,l,a)||ye(c)||a}:{...t,defaultFrequency:a}}return t},"config"),Fp=n((t={},e)=>{if(z===e.type)return Object.entries(e.payload).reduce(_a,t);if(he===e.type)return e.payload.items.reduce(Sa,t);if(X===e.type){let{payload:{product:r}}=e;return[r,...r==null?void 0:r.variants].reduce(Rp,t)||t}return Z===e.type&&e.payload.product===null?{...t}:t},"inStock"),Up=n((t={},e)=>t,"offer");function Lp({prepaidShipments:t,offer:e,product:r}){var o;if(t){let s=P(r.id),i=(o=e.config.prepaidSellingPlans[s])==null?void 0:o.find(a=>a.numberShipments===t);return i?i.sellingPlan:null}return e.config.frequencies[0]}n(Lp,"getFrequencyForPrepaidShipments");function Mp(t){let e=va(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(Mp,"getOptedInItem");var jp=n((t=[],e)=>{if(he===e.type){let r=e.payload;return t.filter(o=>!o.id.includes(":")).concat(r.items.reduce((o,s)=>s.selling_plan_allocation?[...o,Mp(s)]:o,[]))}if(R===e.type){let{offer:r={},...o}=e.payload,s=wp(t,r),i=Cp(o,s,r);return[...s,...i]}if(X===e.type){let{product:r}=e.payload,o=ba(r);if(!o)return t;let s=xa(o),i=Ea(o);return t.map(a=>Ze(a.frequency)?{...a,frequency:se(s,i,a.frequency)||ye(s)}:a)}if(ae===e.type){let{payload:r}=e,o=Ur(t,e),[s,i]=Xe(o,r.product);return i.concat({...s,...r.product,frequency:Lp(r)})}return Ur(t,e)},"optedin"),$p=n((t={},e)=>t,"productOffer"),Vp=n((t={},e)=>{if(X===e.type){let{payload:{product:r}}=e,o=ma(r);return[r,...r==null?void 0:r.variants].reduce((s,i)=>{var a;return{...s,[i.id]:(a=i.selling_plan_allocations)==null?void 0:a.reduce((c,l)=>Nn(c,l,o),[])}},t)||t}return he===e.type?e.payload.items.reduce((o,s)=>s.selling_plan_allocation?{...o,[s.key]:Nn([],s.selling_plan_allocation)}:o,t)||t:z===e.type?tt(e.payload):t},"productPlans"),Hp=jt({auth:hn,authUrl:gn,autoshipByDefault:On,autoshipEligible:Ip,config:Dp,defaultFrequencies:Pn,eligibilityGroups:dn,environment:Lt,firstOrderPlaceDate:_n,incentives:fn,inStock:Fp,locale:En,merchantId:mn,nextUpcomingOrder:un,offer:Up,offerId:yn,optedin:jp,optedout:pn,previewStandardOffer:xn,previewUpsellOffer:vn,productOffer:$p,productPlans:Vp,productToSubscribe:Sn,sessionId:bn,templates:Tn,prepaidShipmentsSelected:wn});function In(t,e){return window.og&&window.og.previewMode?Lr(t,e):Hp(t,e)}n(In,"shopifyReducer");var Pa=de(mt()),Ta=de(Vt());j();N();q();j();function Oa(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(Oa,"updateTrackingInputs");function kn(){return`og__${Math.ceil(new Date().getTime()/1e3)}`}n(kn,"getTrackingKey");function Gp(t,e){var f,d,m,y;if(!((f=t.payload.offer)==null?void 0:f.autoshipByDefault))return;let o=(d=t.payload.offer)==null?void 0:d.product.id,s=kn(),i=((m=t.payload.offer)==null?void 0:m.location)||"",a=((y=t.payload.offer)==null?void 0:y.variationId)||"",c=Vr(o,e),p=[o,k.toLowerCase(),i,c,a].join(",");Oa(o,s,p)}n(Gp,"addDefaultToSubTracking");function qn(t){return e=>r=>{switch(e(r),r.type){case k:case F:case U:let o=r.payload.offer,s=Dn(r);o&&!o.isCart&&Oa(o.product.id,s[0],s[1]);break;case R:Gp(r,t);break;default:}}}n(qn,"shopifyTrackingMiddleware");var Aa,Na,wa=((Na=(Aa=window.Shopify)==null?void 0:Aa.routes)==null?void 0:Na.root)||"/",Bp="/cart",zp=`${wa}cart.js`,Yp=`${wa}products/`,Wp='[id^="shopify-section-"][id$=__cart-items], [id^="shopify-section-"][id$="__cart-footer"],#cart-live-region-text,#cart-icon-bubble',Jp=n(t=>(0,Ta.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 Kp(t,e){let r=Qp(e);if(r)try{let s=await Ra(r);t.dispatch({type:X,payload:{product:s,offer:e}})}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}if(o){let s=Jp(e);o.addEventListener("change",a=>s(o)),new MutationObserver(()=>s(o)).observe(o,{subtree:!0,childList:!0})}else console.info("no /cart/add form found for og-offer",e)}n(Kp,"setupPdp");var Ca=n(async()=>await(await fetch(zp)).json(),"getCart");function Qp(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(Qp,"guessProductHandle");var Ra=(0,Pa.default)(async t=>(await fetch(`${Yp}${t}.js`)).json());async function Zp(t,e){let r=await Ca(),{items:o}=r;t.dispatch({type:he,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(Ra))).forEach(a=>t.dispatch({type:X,payload:{product:a,offer:e}}))}n(Zp,"setupCart");async function Xp(t,e){var i,a;let r=t.payload.offer,o=t.payload.frequency||Vr(t.payload.product.id,e),s=Dn(t);if(!!(r==null?void 0:r.isCart))try{r.style.pointerEvents="none",r.style.opacity=".7";let c=Array.from(document.querySelectorAll(Wp)),l=t.payload.product.id,p=await Ca(),f=(i=p==null?void 0:p.items)==null?void 0:i.findIndex(b=>b.key===l),d=p.items[f],m=d.quantity,y=P(l),x=await fetch("/cart/change.js",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:l,quantity:m,attributes:Object.fromEntries([s]),properties:d.properties,selling_plan:o||null,sections:c.map(b=>b.id.replace(/^shopify-section-/,""))})});if(x.status!==200)throw new Error("Cart not updated");let h=await x.json(),v=p.items.length===h.items.length?h.items[f].key:(a=h.items.find(b=>b.quantity===m&&b.product_id===y&&(!o&&!b.selling_plan_allocation||(b==null?void 0:b.selling_plan_allocation.selling_plan.id)===o)))==null?void 0:a.key;v&&(e.dispatch({type:ut,payload:{oldCartProductKey:l,newCartProductKey:v}}),r.setAttribute("product",v)),e.dispatch({type:he,payload:h});let C=new CustomEvent(ns,{bubbles:!0,cancelable:!0});if(r.dispatchEvent(C),C.defaultPrevented)return;let S=h.sections;Object.values(S).length?c.forEach(b=>{let Mt=b.id.replace(/^shopify-section-/,"");if(!(Mt in S))return;let Ua=S[Mt],Un=new DOMParser().parseFromString(Ua.toString()||"","text/html").getElementById(b.id);Un&&(b.innerHTML=Un.innerHTML)}):window.location.pathname.startsWith(Bp)&&window.location.reload()}catch(c){console.log("OG Error updating cart",c)}finally{r.style.pointerEvents="auto",r.style.opacity="1"}}n(Xp,"synchronizeCartOptin");function Dn(t){var a,c;let e=t.payload.product.id;if(!e)return[];let r=kn(),o=((a=t.payload.offer)==null?void 0:a.location)||"",s=((c=t.payload.offer)==null?void 0:c.variationId)||"",i=[e,t.type.toLowerCase(),o];switch(t.type){case Z:case F:i.push(""),i.push(s);break;case k:case U:i.push(t.payload.frequency),i.push(s);break;default:return[]}return[r,i.join(",")]}n(Dn,"getTrackingEvent");function Vr(t,e){var s;return(s=cr({id:t})(e.getState()))==null?void 0:s.frequency}n(Vr,"getSubscribedFrequency");function eu(t,e){[...document.querySelectorAll('form[action$="/cart/add"] [name=id]')].forEach(r=>{let o=r.value,s=Vr(o,t);vs(r.form,"selling_plan",s)})}n(eu,"synchronizeSellingPlan");function Fn(t){return e=>r=>{var o;switch(r.type){case k:case F:case U:break;case Z:((o=r.payload.offer)==null?void 0:o.isCart)?Zp(t,r.payload.offer):Kp(t,r.payload.offer);break;default:}switch(e(r),r.type){case k:case F:case U:case ae:Xp(r,t);case Z:case R:case X:eu(t,r.payload.offer);break;default:}}}n(Fn,"shopifyMiddleware");St();q();A();q();var tu="/apps/subscriptions/auth/",Ia="og_auth_begin",ru="og_auth_end",ou=n(t=>{let[e,r,o,s]=atob(t).split("|");return{id:e,signature:o,timestamp:r,email:s}},"parseIntegrationTempAuth");async function ka({store:t}){var s;let[e]=no(),r=Et(),o=(r==null?void 0:r.dataset.customer)?ou(r.dataset.customer):(s=window.ogShopifyConfig)==null?void 0:s.customer;if(o){let i=await su(o);if(i){let[a,c,l]=i.split("|");t.dispatch(vt(e,a,Number(c),l))}}else Es("og_auth")}n(ka,"authorizeShopifyCustomer");async function nu(t){try{let r=await(await fetch(`${tu}?customer=${t.id}&customer_signature=${t.signature}&customer_timestamp=${t.timestamp}`)).text(),o=r.lastIndexOf(Ia);if(o<0)throw"Invalid response from OG auth endpoint";return JSON.parse(r.substring(o+Ia.length,r.lastIndexOf(ru)))}catch(e){console.error(e)}}n(nu,"fetchOGSignature");async function su(t){let e=xs("og_auth");if(e)return e;let{customerId:r,timestamp:o,signature:s}=await nu(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(su,"getOrCreateAuthCookie");var Da,qa=Ks(...((Da=L)==null?void 0:Da.shopify_selling_plans)?[In,Fn]:[Lr],L.shopify&&qn),w=Rn(qa),iu=w.isReady,au=w.addOptinChangedCallback,cu=w.addTemplate,lu=w.clear,pu=w.config,uu=w.disableOptinChangedCallbacks,du=w.getOptins,fu=w.getProductsForPurchasePost,hu=w.initialize,mu=w.previewMode,gu=w.register,yu=w.resolveSettings,bu=w.setAuthUrl,_u=w.setEnvironment,Su=w.setLocale,Eu=w.setMerchantId,xu=w.setPublicPath,vu=w.setTemplates,Ou=w.setupCart,Pu=w.setupProduct,Tu=w.setupProducts,wu=n(()=>Ss(w),"autoInit");var Cu=w.initialize,Fa;((Fa=L)==null?void 0:Fa.shopify_selling_plans)&&pr(()=>ka(w));return Ru;})();
|
|
1023
|
+
`}};n(Cn,"Price");var _p=n((t,e)=>{var r;return{productPlans:t.productPlans,configDefaultFrequency:(r=t.config)==null?void 0:r.defaultFrequency,frequency:oe(e.product)(t)}},"mapStateToProps"),fa=g(_p)(Cn);q();function Rn(t){ua(),ei(t);try{customElements.define("og-when",Fi),customElements.define("og-text",zi),customElements.define("og-incentive-text",Ki),customElements.define("og-offer",oa),customElements.define("og-select-frequency",Qi),customElements.define("og-optout-button",ji),customElements.define("og-optin-toggle",Bi),customElements.define("og-optin-status",Li),customElements.define("og-optin-button",Mi),customElements.define("og-optin-select",Vi),customElements.define("og-upsell-button",Hi),customElements.define("og-frequency-status",$i),customElements.define("og-modal",kr),customElements.define("og-select",qr),customElements.define("og-tooltip",Dr),customElements.define("og-upsell-modal",Gi),customElements.define("og-next-upcoming-order",Xi),customElements.define("og-price",fa),customElements.define("og-prepaid-toggle",na),customElements.define("og-prepaid-data",sa),customElements.define("og-prepaid-button",ia),customElements.define("og-prepaid-select",aa),customElements.define("og-subscription-button",ca)}catch{console.info("OG WebComponents already registered, skipping.")}let e=!1,r={store:t,isReady:()=>e,setEnvironment(o){return t.dispatch(lo(o)),this},setMerchantId(o){return t.dispatch(Ts(o)),this},setAuthUrl(o){return t.dispatch(ws(o)),this},getProductsForPurchasePost(o=[]){return mo(t.getState(),o)},getOptins(o=[]){return mo(t.getState(),o)},clear(){t.dispatch(Ns())},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(qs(o)),this},setLocale(o){return t.dispatch(ks(o)),this},addTemplate(o,s,i){return t.dispatch(Ds(o,s,i)),this},setTemplates(o){return t.dispatch(Fs(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}=Lt({},lo(s)),{sessionId:p}=a.getState();p&&c.forEach(f=>{let d=P(f);me.fetchOffer(l,o,p,`${d}`,Ce)}),i.product_discounts&&typeof i.product_discounts=="object"&&a.dispatch({type:z,payload:i.product_discounts})}},initialize(o,s,i){var c;e?console.warn("og.offers has been initialized already. Skipping."):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=!0,this}};return window.OG=window.OG||{},Object.assign(window.OG,r),Object.assign(r.initialize,r),ho(window.opener,r),r}n(Rn,"makeApi");j();q();var ue=n(t=>t===null?"":`$${t.toString().replace(/(\d\d)$/,".$1")}`,"money"),Mr=n(t=>`${t}%`,"percentage");var jr=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"),$r=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"),Sp=n(t=>{var e;return(t.selling_plan_id||((e=t.selling_plan)==null?void 0:e.id)).toString()},"getAllocationFrequency"),Ep=n(t=>ue(t.compare_at_price),"getAllocationRegularPrice"),xp=n(t=>{var e;if(jr(t)){let r=$r((e=t.selling_plan)==null?void 0:e.options),o=Math.round(t.price/r);return ue(o)}return ue(t.price)},"getAllocationSubscriptionPrice"),ha=n((t,e)=>Math.round((t.compare_at_price-e)*100/t.compare_at_price),"getPrepaidPercentage"),vp=n(t=>{var r,o,s;if(jr(t)){let i=$r((r=t.selling_plan)==null?void 0:r.options),a=t.price/i,c=ha(t,a);return Mr(c)}let e="";return((o=t.price_adjustments[0])==null?void 0:o.value_type)==="percentage"?e=Mr(t.price_adjustments[0].value):((s=t.price_adjustments[0])==null?void 0:s.value)?e=ue(t.price_adjustments[0].value):t.compare_at_price&&(e=ue(t.compare_at_price-t.price)),e},"getAllocationDiscountRate"),Op=n(t=>{var e;return jr(t)?$r((e=t.selling_plan)==null?void 0:e.options):null},"getAllocationNumberOfShipments"),Pp=n((t,e,r)=>{var p,f;let o=$r((p=t.selling_plan)==null?void 0:p.options),s=t.price/o,i=t.compare_at_price-s,a=ha(t,s),c=(f=r==null?void 0:r.price_adjustments)==null?void 0:f[0],l=c&&c.value_type==="percentage"?c.value:null;return e.regularPrepaidPrice=ue(t.price),e.prepaidSavingsPerShipment=ue(Math.round(i)),e.prepaidSavingsTotal=ue(Math.round(i*o)),l&&a&&(e.prepaidExtraSavingsPercentage=Mr(a-l)),e},"addPrepaidPriceAndSavings"),An="Subscribe and Save",Tp=n((t,e=[])=>{t.selling_plan||(t.selling_plan=e.find(o=>o.id===t.selling_plan_id));let r={frequency:Sp(t),regularPrice:Ep(t),subscriptionPrice:xp(t),discountRate:vp(t),prepaidShipments:Op(t)};if(jr(t)){let o=e.find(s=>s.group_name===An&&s.options.length===1);return Pp(t,r,o)}return r},"mapSellingPlanToDiscount"),Nn=n((t,e,r=[])=>[...t,Tp(e,r)],"sellingPlanAllocationsReducer"),ma=n(t=>t.selling_plan_groups.reduce((e,r)=>[...e,...r.selling_plans.map(o=>({...o,group_name:r.name}))],[]),"getSellingPlans");var ga=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"),ya=n((t,e,r)=>{if(!r)return null;if(!Ze(r))return r;if(ur(t,e)){let o=se(t,e,r);return o||ye(t)}return r},"getDefaultSellingPlan"),wp=n((t,e)=>t.map(r=>{var o,s,i,a,c,l,p;return Ze(r==null?void 0:r.frequency)?{...r,frequency:ur((o=e==null?void 0:e.config)==null?void 0:o.frequencies,(s=e==null?void 0:e.config)==null?void 0:s.frequenciesEveryPeriod)?se((i=e==null?void 0:e.config)==null?void 0:i.frequencies,(a=e==null?void 0:e.config)==null?void 0:a.frequenciesEveryPeriod,r.frequency)||se((c=e==null?void 0:e.config)==null?void 0:c.frequencies,(l=e==null?void 0:e.config)==null?void 0:l.frequenciesEveryPeriod,e.defaultFrequency)||ye((p=e==null?void 0:e.config)==null?void 0:p.frequencies):r.frequency}:r}),"mapExistingOptinsFromOfferResponse"),Cp=n(({autoship:t={},autoship_by_default:e={},default_frequencies:r={},in_stock:o={}},s,i)=>Object.keys(t).reduce((a,c)=>{if(!s.some(l=>l.id===c)){if(!(t[c]&&e[c]&&o[c]))return a;let{config:{frequencies:l,frequenciesEveryPeriod:p}={},defaultFrequency:f}=i,d=r[c],m;return r[c]&&ur(l,p)?m=se(l,p,`${d.every}_${d.every_period}`)||ya(l,p,f)||ye(l):r[c]?m=`${d.every}_${d.every_period}`:m=ya(l,p,f)||"_",a.concat({id:c,frequency:m})}return a},[]),"reduceNewOptinsFromOfferResponse"),ba=n(t=>t==null?void 0:t.selling_plan_groups.find(r=>r.name===An),"getOGSellingPlanGroup"),Rp=n((t,e)=>({...ga(t,e.id,e.available),[e.id]:e.available}),"productOrVariantInStockReducer"),_a=n((t,[e])=>({...t,[e]:!0}),"productTrue"),Sa=n((t,e)=>{let r=P(e.key);return{...t,[e.key]:t[r]||null}},"reduceProductCartLine"),Ap=n(t=>t.name.toUpperCase().includes("PREPAID"),"isPrepaidSellingPlanGroup"),Np=n((t,e)=>{if(!t||t.length===0)return[];if(!e||e.length===0)return t;let r=e.reduce((o,s)=>(Ap(s)||o.push(...s.selling_plans.map(i=>i.id)),o),[]);return t.filter(o=>r.includes(o.selling_plan_id))},"filterNonPrepaidSellingPlans"),Ip=n((t={},e)=>{if(z===e.type)return Object.entries(e.payload).reduce(_a,t);if(he===e.type){let{payload:r}=e;return r.items.reduce(Sa,t)}if(X===e.type){let{payload:{product:r}}=e;return[r,...(r==null?void 0:r.variants)||[]].reduce((o,s)=>{let i=Np(s==null?void 0:s.selling_plan_allocations,r==null?void 0:r.selling_plan_groups);return{...ga(o,s.id,(i==null?void 0:i.length)>0),[s.id]:(i==null?void 0:i.length)>0}},t)}return t},"autoshipEligible");function kp(t){let e=["day","week","month"].findIndex(o=>t.toLowerCase().includes(o))+1,r=(t.match(/(\d+)/)||["",1])[1];return r&&e?`${r}_${e}`:null}n(kp,"textToFreq");function Ea(t){var e;return(e=t==null?void 0:t.selling_plans)==null?void 0:e.map(({options:r})=>r||[]).flat().map(({value:r})=>kp(r))}n(Ea,"sellingPlansToEveryPeriod");function xa(t){var e;return(e=t==null?void 0:t.selling_plans)==null?void 0:e.map(({id:r})=>`${r}`)}n(xa,"sellingPlansToFrequencies");function va(t){var r;let e=(r=t==null?void 0:t.options.find(({name:o})=>o==="Shipment amount"))==null?void 0:r.value.split(" ")[0];return e?Number(e):void 0}n(va,"getPrepaidShipments");function qp(t){return t.reduce((e,r)=>{let o=r.name.split("-")[1],s=r.selling_plans.map(i=>({numberShipments:va(i),sellingPlan:String(i.id)}));return{...e,[o]:s}},{})}n(qp,"getPrepaidSellingPlans");var Dp=n((t={frequencies:[],offerType:"radio",frequenciesEveryPeriod:[]},e)=>{var r,o,s;if(z===e.type){let i=[...new Set(Object.values(e.payload).map(Object.keys).flat())];return{...t,frequencies:i}}if(X===e.type){let{payload:{offer:i,product:a}}=e,c={},l=ba(a),p=xa(l);if(p==null?void 0:p.length){let d=Ea(l),m=((o=(r=l.options)==null?void 0:r[0])==null?void 0:o.values)||p,y=t.defaultFrequency;y&&Ze(y)&&(y=se(p,d,y)||ye(p)||y),c={frequencies:p,frequenciesEveryPeriod:d,frequenciesText:m,...y?{defaultFrequency:y}:{}}}let f=a==null?void 0:a.selling_plan_groups.filter(d=>/^Prepaid-.*/.test(d.name));return f.length&&(c={...c,prepaidSellingPlans:{...t.prepaidSellingPlans,...qp(f)}}),{...t,...c}}if(R===e.type){let{payload:{offer:i}}=e,{defaultFrequency:a,config:{frequencies:c,frequenciesEveryPeriod:l,prepaidSellingPlans:p={}}={},product:f}=i;return((s=p[f==null?void 0:f.id])==null?void 0:s.some(({sellingPlan:d})=>d===a))?{...t,defaultFrequency:ye(c)||a}:Ze(a)?{...t,defaultFrequency:se(c,l,a)||ye(c)||a}:{...t,defaultFrequency:a}}return t},"config"),Fp=n((t={},e)=>{if(z===e.type)return Object.entries(e.payload).reduce(_a,t);if(he===e.type)return e.payload.items.reduce(Sa,t);if(X===e.type){let{payload:{product:r}}=e;return[r,...r==null?void 0:r.variants].reduce(Rp,t)||t}return Z===e.type&&e.payload.product===null?{...t}:t},"inStock"),Up=n((t={},e)=>t,"offer");function Lp({prepaidShipments:t,offer:e,product:r}){var o;if(t){let s=P(r.id),i=(o=e.config.prepaidSellingPlans[s])==null?void 0:o.find(a=>a.numberShipments===t);return i?i.sellingPlan:null}return e.config.frequencies[0]}n(Lp,"getFrequencyForPrepaidShipments");function Mp(t){let e=va(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(Mp,"getOptedInItem");var jp=n((t=[],e)=>{if(he===e.type){let r=e.payload;return t.filter(o=>!o.id.includes(":")).concat(r.items.reduce((o,s)=>s.selling_plan_allocation?[...o,Mp(s)]:o,[]))}if(R===e.type){let{offer:r={},...o}=e.payload,s=wp(t,r),i=Cp(o,s,r);return[...s,...i]}if(X===e.type){let{product:r}=e.payload,o=ba(r);if(!o)return t;let s=xa(o),i=Ea(o);return t.map(a=>Ze(a.frequency)?{...a,frequency:se(s,i,a.frequency)||ye(s)}:a)}if(ae===e.type){let{payload:r}=e,o=Ur(t,e),[s,i]=Xe(o,r.product);return i.concat({...s,...r.product,frequency:Lp(r)})}return Ur(t,e)},"optedin"),$p=n((t={},e)=>t,"productOffer"),Vp=n((t={},e)=>{if(X===e.type){let{payload:{product:r}}=e,o=ma(r);return[r,...r==null?void 0:r.variants].reduce((s,i)=>{var a;return{...s,[i.id]:(a=i.selling_plan_allocations)==null?void 0:a.reduce((c,l)=>Nn(c,l,o),[])}},t)||t}return he===e.type?e.payload.items.reduce((o,s)=>s.selling_plan_allocation?{...o,[s.key]:Nn([],s.selling_plan_allocation)}:o,t)||t:z===e.type?tt(e.payload):t},"productPlans"),Hp=jt({auth:hn,authUrl:gn,autoshipByDefault:On,autoshipEligible:Ip,config:Dp,defaultFrequencies:Pn,eligibilityGroups:dn,environment:Lt,firstOrderPlaceDate:_n,incentives:fn,inStock:Fp,locale:En,merchantId:mn,nextUpcomingOrder:un,offer:Up,offerId:yn,optedin:jp,optedout:pn,previewStandardOffer:xn,previewUpsellOffer:vn,productOffer:$p,productPlans:Vp,productToSubscribe:Sn,sessionId:bn,templates:Tn,prepaidShipmentsSelected:wn});function In(t,e){return window.og&&window.og.previewMode?Lr(t,e):Hp(t,e)}n(In,"shopifyReducer");var Pa=de(mt()),Ta=de(Vt());j();N();q();j();function Oa(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(Oa,"updateTrackingInputs");function kn(){return`og__${Math.ceil(new Date().getTime()/1e3)}`}n(kn,"getTrackingKey");function Gp(t,e){var f,d,m,y;if(!((f=t.payload.offer)==null?void 0:f.autoshipByDefault))return;let o=(d=t.payload.offer)==null?void 0:d.product.id,s=kn(),i=((m=t.payload.offer)==null?void 0:m.location)||"",a=((y=t.payload.offer)==null?void 0:y.variationId)||"",c=Vr(o,e),p=[o,k.toLowerCase(),i,c,a].join(",");Oa(o,s,p)}n(Gp,"addDefaultToSubTracking");function qn(t){return e=>r=>{switch(e(r),r.type){case k:case F:case U:let o=r.payload.offer,s=Dn(r);o&&!o.isCart&&Oa(o.product.id,s[0],s[1]);break;case R:Gp(r,t);break;default:}}}n(qn,"shopifyTrackingMiddleware");var Aa,Na,wa=((Na=(Aa=window.Shopify)==null?void 0:Aa.routes)==null?void 0:Na.root)||"/",Bp="/cart",zp=`${wa}cart.js`,Yp=`${wa}products/`,Wp='[id^="shopify-section-"][id$=__cart-items], [id^="shopify-section-"][id$="__cart-footer"],#cart-live-region-text,#cart-icon-bubble',Jp=n(t=>(0,Ta.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 Kp(t,e){let r=Qp(e);if(r)try{let s=await Ra(r);t.dispatch({type:X,payload:{product:s,offer:e}})}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}if(o){let s=Jp(e);o.addEventListener("change",a=>s(o)),new MutationObserver(()=>s(o)).observe(o,{subtree:!0,childList:!0})}else console.info("no /cart/add form found for og-offer",e)}n(Kp,"setupPdp");var Ca=n(async()=>await(await fetch(zp)).json(),"getCart");function Qp(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(Qp,"guessProductHandle");var Ra=(0,Pa.default)(async t=>(await fetch(`${Yp}${t}.js`)).json());async function Zp(t,e){let r=await Ca(),{items:o}=r;t.dispatch({type:he,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(Ra))).forEach(a=>t.dispatch({type:X,payload:{product:a,offer:e}}))}n(Zp,"setupCart");async function Xp(t,e){var i,a;let r=t.payload.offer,o=t.payload.frequency||Vr(t.payload.product.id,e),s=Dn(t);if(!!(r==null?void 0:r.isCart))try{r.style.pointerEvents="none",r.style.opacity=".7";let c=Array.from(document.querySelectorAll(Wp)),l=t.payload.product.id,p=await Ca(),f=(i=p==null?void 0:p.items)==null?void 0:i.findIndex(b=>b.key===l),d=p.items[f],m=d.quantity,y=P(l),x=await fetch("/cart/change.js",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:l,quantity:m,attributes:Object.fromEntries([s]),properties:d.properties,selling_plan:o||null,sections:c.map(b=>b.id.replace(/^shopify-section-/,""))})});if(x.status!==200)throw new Error("Cart not updated");let h=await x.json(),v=p.items.length===h.items.length?h.items[f].key:(a=h.items.find(b=>b.quantity===m&&b.product_id===y&&(!o&&!b.selling_plan_allocation||(b==null?void 0:b.selling_plan_allocation.selling_plan.id)===o)))==null?void 0:a.key;v&&(e.dispatch({type:ut,payload:{oldCartProductKey:l,newCartProductKey:v}}),r.setAttribute("product",v)),e.dispatch({type:he,payload:h});let C=new CustomEvent(ns,{bubbles:!0,cancelable:!0});if(r.dispatchEvent(C),C.defaultPrevented)return;let S=h.sections;Object.values(S).length?c.forEach(b=>{let Mt=b.id.replace(/^shopify-section-/,"");if(!(Mt in S))return;let Ua=S[Mt],Un=new DOMParser().parseFromString(Ua.toString()||"","text/html").getElementById(b.id);Un&&(b.innerHTML=Un.innerHTML)}):window.location.pathname.startsWith(Bp)&&window.location.reload()}catch(c){console.log("OG Error updating cart",c)}finally{r.style.pointerEvents="auto",r.style.opacity="1"}}n(Xp,"synchronizeCartOptin");function Dn(t){var a,c;let e=t.payload.product.id;if(!e)return[];let r=kn(),o=((a=t.payload.offer)==null?void 0:a.location)||"",s=((c=t.payload.offer)==null?void 0:c.variationId)||"",i=[e,t.type.toLowerCase(),o];switch(t.type){case Z:case F:i.push(""),i.push(s);break;case k:case U:i.push(t.payload.frequency),i.push(s);break;default:return[]}return[r,i.join(",")]}n(Dn,"getTrackingEvent");function Vr(t,e){var s;return(s=cr({id:t})(e.getState()))==null?void 0:s.frequency}n(Vr,"getSubscribedFrequency");function eu(t,e){e.isCart||[...document.querySelectorAll('form[action$="/cart/add"] [name=id]')].forEach(r=>{let o=r.value,s=Vr(o,t);vs(r.form,"selling_plan",s)})}n(eu,"synchronizeSellingPlan");function Fn(t){return e=>r=>{var o;switch(r.type){case k:case F:case U:break;case Z:((o=r.payload.offer)==null?void 0:o.isCart)?Zp(t,r.payload.offer):Kp(t,r.payload.offer);break;default:}switch(e(r),r.type){case k:case F:case U:case ae:Xp(r,t);case Z:case R:case X:eu(t,r.payload.offer);break;default:}}}n(Fn,"shopifyMiddleware");St();q();A();q();var tu="/apps/subscriptions/auth/",Ia="og_auth_begin",ru="og_auth_end",ou=n(t=>{let[e,r,o,s]=atob(t).split("|");return{id:e,signature:o,timestamp:r,email:s}},"parseIntegrationTempAuth");async function ka({store:t}){var s;let[e]=no(),r=Et(),o=(r==null?void 0:r.dataset.customer)?ou(r.dataset.customer):(s=window.ogShopifyConfig)==null?void 0:s.customer;if(o){let i=await su(o);if(i){let[a,c,l]=i.split("|");t.dispatch(vt(e,a,Number(c),l))}}else Es("og_auth")}n(ka,"authorizeShopifyCustomer");async function nu(t){try{let r=await(await fetch(`${tu}?customer=${t.id}&customer_signature=${t.signature}&customer_timestamp=${t.timestamp}`)).text(),o=r.lastIndexOf(Ia);if(o<0)throw"Invalid response from OG auth endpoint";return JSON.parse(r.substring(o+Ia.length,r.lastIndexOf(ru)))}catch(e){console.error(e)}}n(nu,"fetchOGSignature");async function su(t){let e=xs("og_auth");if(e)return e;let{customerId:r,timestamp:o,signature:s}=await nu(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(su,"getOrCreateAuthCookie");var Da,qa=Ks(...((Da=L)==null?void 0:Da.shopify_selling_plans)?[In,Fn]:[Lr],L.shopify&&qn),w=Rn(qa),iu=w.isReady,au=w.addOptinChangedCallback,cu=w.addTemplate,lu=w.clear,pu=w.config,uu=w.disableOptinChangedCallbacks,du=w.getOptins,fu=w.getProductsForPurchasePost,hu=w.initialize,mu=w.previewMode,gu=w.register,yu=w.resolveSettings,bu=w.setAuthUrl,_u=w.setEnvironment,Su=w.setLocale,Eu=w.setMerchantId,xu=w.setPublicPath,vu=w.setTemplates,Ou=w.setupCart,Pu=w.setupProduct,Tu=w.setupProducts,wu=n(()=>Ss(w),"autoInit");var Cu=w.initialize,Fa;((Fa=L)==null?void 0:Fa.shopify_selling_plans)&&pr(()=>ka(w));return Ru;})();
|
|
1023
1024
|
; return lib; });
|
|
1024
1025
|
//# sourceMappingURL=offers.js.map
|