PageSourceSearch

https://www.executeprogram.com/dist/billing-DG3VQWRO.js

js executeprogram.com collected 2026-09-25 14:12:03 UTC 10,575 bytes, 2 lines download raw bytes

1import{a as _}from"./chunk-ZYNPEMJJ.js";import{a as R,b as ee,c as te,d as ie,e as re,f as oe,g as ne,h as se,i as ae,j as le,k as me,l as pe}from"./chunk-Z77Q6OU3.js";import{a as Ne,b as ue}from"./chunk-GAVVX4KU.js";import{a as Z}from"./chunk-XSPQIGHS.js";import{a as X}from"./chunk-6ZLBBEDU.js";import{a as V}from"./chunk-FFLHNCCV.js";import"./chunk-PA36ZHO3.js";import{f as Q}from"./chunk-GQYWBIOK.js";import"./chunk-4ESAGBBC.js";import{a as $}from"./chunk-OUIFRPOJ.js";import{a as F,b as K}from"./chunk-RRLGRFMF.js";import{a as z}from"./chunk-AFGEWFUQ.js";import"./chunk-KBQYYVZP.js";import"./chunk-3JSPARKT.js";import"./chunk-W2YIOCJY.js";import"./chunk-6F2VAQEJ.js";import"./chunk-2AXFIWZ7.js";import"./chunk-4YN4U7BP.js";import"./chunk-DFK2IXN3.js";import"./chunk-AG5IKMG6.js";import{a as U}from"./chunk-7M6YEITV.js";import{e as p,f as u}from"./chunk-L3OC7QJE.js";import{A as C,D as L,n as O,v as W,x as j,y as H,z as G}from"./chunk-M4SOFIYL.js";import"./chunk-UIIRE2SU.js";import{o as Y,q as J}from"./chunk-CA6BWNYM.js";import{a as w}from"./chunk-VTVLOPAV.js";import"./chunk-U5TEN6LL.js";import{b as P}from"./chunk-AZLAKMMQ.js";import{b as A,c as m,d as k,e as I,f as a,g as c,j as E,k as r}from"./chunk-G2VOPOET.js";import"./chunk-3ZZAIADL.js";import"./chunk-JQGSBBTS.js";import{a as o,e as n}from"./chunk-H5BZDSGN.js";import{e as v}from"./chunk-77H2N4WA.js";o();n();var y=v(P());o();n();var q=v(P());function ce(t){return q.default.createElement("div",{className:"copy"},q.default.createElement("p",{className:"type-body text-base"},"You have a free subscription that expires on ",t.expireDate,"."))}o();n();var i=v(P());function be(t){return i.default.createElement("div",{className:"copy"},i.default.createElement("p",{className:"type-body text-base mb-1"},i.default.createElement("strong",null,"You have a paid Execute Program subscription."),i.default.createElement(w,{className:"text-positive",name:"pass"})),i.default.createElement("p",{className:"type-body-sm text-muted"},"Your ",t.frequency," subscription gives"," ",t.quantity===void 0?"you":`${t.quantity} team members`," ","access to our entire ",i.default.createElement("a",{href:O({})},"Course Catalog"),". Your next charge will be for ",K(t.nextChargeAmount)," on ",i.default.createElement("span",{className:"whitespace-nowrap"},F(t.nextBillingTimestamp)),"."),t.quantity!==void 0&&i.default.createElement("p",{className:"type-body-sm text-muted"},"To manage your team, visit the ",i.default.createElement("a",{href:L({})},"team page"),"."),i.default.createElement("div",{className:"text-right"},i.default.createElement("div",null,i.default.createElement("a",{href:H({})},"Change Payment Method\u2026")),i.default.createElement("div",{className:"mb-4"},i.default.createElement("a",{href:j({})},"Change Plan\u2026")),i.default.createElement("div",null,i.default.createElement("a",{href:G({})},"Turn Off Auto-Renew\u2026")),i.default.createElement("div",null,i.default.createElement(Ae,null))))}function Ae(){let[t,s]=i.default.useState(!1);return i.default.createElement(i.default.Fragment,null,i.default.createElement("a",{className:"text-sm",href:"#",onClick:l=>{s(!t),l.preventDefault()}},"Cancelation FAQ..."),t&&i.default.createElement(V,{tone:"accent",className:"text-left text-sm border mt-4"},i.default.createElement("p",{className:"font-bold"},"Will I lose my progress if I cancel?"),i.default.createElement("p",null,"No! Progress is tied to your account, not your billing subscription. Canceling or restarting your subscription won't change your course progress."),i.default.createElement("p",{className:"font-bold"},"Will I lose access immediately when I cancel?"),i.default.createElement("p",null,"No! You'll still have full course access until the end of the period that you already paid for.")))}o();n();var S=v(P());function fe(t){return S.default.createElement("div",{className:"copy"},S.default.createElement("p",{className:"type-body text-base mb-1"},S.default.createElement("strong",null,"You're a member of ",t.owner.email,"'s team."),S.default.createElement(w,{className:"text-positive",name:"pass"})),S.default.createElement("p",{className:"type-body-sm text-muted"},"Your team membership gives you full access to Execute Program, so you don't need to enter any billing details yourself."))}o();n();var ke=v(Ne()),e=v(P());o();n();var ge=p.registerPost(u.path("begin-free-subscription"),r({promotionCode:m}),c([r({kind:a("ok")}),r({kind:a("error"),message:m})]));o();n();var ye=p.registerPost(u.path("clear-incomplete-subscriptions"),r({}),r({kind:a("ok")}));o();n();var he=p.registerPost(u.path("confirm-subscription"),r({}),c([r({kind:a("ok")}),r({kind:a("error"),error:m})]));o();n();var ve=p.registerPost(u.path("subscribe"),r({kind:a("paid"),priceId:m,quantity:k,paymentMethodId:m,promotionCode:c([m,A])}),c([r({kind:a("needs-action"),clientSecret:m}),r({kind:a("ok")}),r({kind:a("error"),error:m})]));function xe(t){let[s,l]=e.default.useReducer(me,{plans:t.plans},le);(0,e.useEffect)(()=>{ae(l,{priceId:t.plans[0].priceId,quantity:t.plans[0].defaultQuantity,promotionCode:void 0})},[t.plans]);let B=Y(),M=(0,ke.useStripe)();async function Be(h,x){l({kind:"loading"});let N=await ve({},{kind:"paid",priceId:h.preview.priceId,quantity:h.preview.quantity,promotionCode:h.preview.promotion?.code,paymentMethodId:x});if(N.kind==="ok")return B.push(C({})),{kind:"ok"};if(N.kind==="needs-action"){if(M===null)throw new Error("BUG: Stripe is null");if((await M.confirmCardPayment(N.clientSecret)).error)return await ye({},{}),l({kind:"error",message:"Additional factor authentication on your card failed. Please try again, try another card or contact your bank."}),{kind:"ok"};let D=await he({},{});return D.kind==="error"?(l({kind:"error",message:D.error}),{kind:"ok"}):(B.push(C({})),{kind:"ok"})}else return l({kind:"error",message:N.error}),{kind:"ok"}}function Te(h){l({kind:"loading"}),ge({},{promotionCode:h.promotionCode}).then(x=>{switch(x.kind){case"ok":B.push(C({}));break;case"error":l({kind:"error",message:x.message})}}).catch(x=>{throw x})}return e.default.createElement(e.default.Fragment,null,e.default.createElement("div",{className:"mb-8 text-accent"},e.default.createElement(Ce,{promotion:t.promotion,forceUserToSubscribe:t.forceUserToSubscribe,subscribedToDas:t.subscribedToDas})),e.default.createElement(ee,{state:s,dispatch:l}),s.kind==="loading"&&e.default.createElement("div",{className:"flex justify-center"},e.default.createElement(U,null)),s.kind==="previewing"&&s.error!==void 0&&e.default.createElement(R,{messages:[s.error]}),s.kind!=="loading"&&e.default.createElement(e.default.Fragment,null,e.default.createElement(te,{plan:s.plan}),e.default.createElement(ie,{state:s,dispatch:l})),s.kind==="previewing"&&e.default.createElement(e.default.Fragment,null,e.default.createElement(re,{balance:s.preview.startingAccountBalance}),e.default.createElement("div",{className:"border-base border-t pt-4 mb-4"},e.default.createElement(oe,{state:s}))),e.default.createElement("div",{className:"text-sm mb-4"},s.kind==="changingPromotion"&&e.default.createElement(ne,{state:s,dispatch:l,beginFreeSubscription:Te}),s.kind==="previewing"&&e.default.createElement(se,{onClick:()=>l({kind:"changePromotion"})})),e.default.createElement("div",null,s.kind==="previewing"&&e.default.createElement("div",{className:"ep-payment-control
1s"},e.default.createElement(_,{buttonTitle:"Subscribe",trackPaymentAnalyticsEvents:!0,handlePaymentMethod:h=>Be(s,h)}))))}function Ce(t){return t.promotion!==void 0?e.default.createElement("p",null,t.promotion.billingBlurb):t.forceUserToSubscribe?e.default.createElement("p",null,e.default.createElement("strong",null,"We hope that you're enjoying Execute Program!")," ","You've used all of your free lessons, so you'll need a paid subscription to continue."," ","After upgrading, you can cancel at any time on this page."):t.subscribedToDas?e.default.createElement(e.default.Fragment,null,e.default.createElement("div",{className:"tone-cautious bg-base text-base p-4 border-base border rounded-md"},"You have an active Destroy All Software subscription, which includes full access to Execute Program. We still allow you to start a separate Execute Program subscription if you want to. For example, you may want to subscribe for your team.")):e.default.createElement("p",null,e.default.createElement("strong",null,"You're currently enjoying free\u2014but limited\u2014access to Execute Program.")," ","This limits you 16 free lessons."," ",e.default.createElement("em",null,"Upgrade now for unlimited access."))}o();n();var g=v(P());o();n();var Pe=p.registerPost(u.path("reactivate-subscription"),r({}),r({}));function we(t){let[s,l]=(0,g.useState)(!1);async function B(){l(!0),await Pe({},{}),location.reload()}return s?g.default.createElement(U,null):g.default.createElement("div",{className:"copy"},g.default.createElement("p",{className:"type-body text-base mb-1"},g.default.createElement("strong",null,"Your Execute Program subscription is canceling."),g.default.createElement(w,{className:"text-positive",name:"pass"})),g.default.createElement("p",{className:"type-body-sm text-muted"},"You still have full access through ",F(t.endOfContentAccessTimestamp),". Your card will not be charged again."),g.default.createElement("div",{className:"flex justify-end"},g.default.createElement(J,{primary:!0,onClick:B},"Reactivate Subscription")))}o();n();var Fe=r({kind:a("free"),expireDate:m}),Ie=r({kind:a("unsubscribed"),forceUserToSubscribe:I,subscribedToDas:I,plans:E($),promotion:z}),qe=r({kind:a("subscribed"),nextChargeAmount:k,nextBillingTimestamp:k,frequency:c([a("monthly"),a("yearly")]),quantity:c([k,A])}),Me=r({kind:a("unsubscribing"),endOfContentAccessTimestamp:k}),De=r({kind:a("teamMember"),owner:r({email:m})}),Ee=r({billing:c([Fe,Ie,qe,Me,De])}),Se=p.registerGet(u.path("pages/billing"),Ee);function Oe(t){let s=W({});return(0,y.useEffect)(()=>{Q({kind:"viewBillingPage",properties:{}})},[]),y.default.createElement(Z,{backPath:s,backText:"Your Account",title:"Billing Settings",contentUnderneath:y.default.createElement(pe,null)},y.default.createElement(ue,null,(()=>{switch(t.billing.kind){case"free":return y.default.createElement(ce,{...t.billing});case"unsubscribed":return y.default.createElement(xe,{...t.billing});case"subscribed":return y.default.createElement(be,{...t.billing});case"unsubscribing":return y.default.createElement(we,{...t.billing});case"teamMember":return y.default.createElement(fe,{...t.billing})}})()))}var Rt=X(Se,Oe);export{Rt as default};
2//# sourceMappingURL=billing-DG3VQWRO.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.