1import{y as re,A as i,X as ee,al as te,_ as n,ak as ae,a5 as E,ag as U,a4 as ve,ax as be,F as h,ab as X,a1 as he,D as o,j as $,l as F,k as ue,Y as ce,ai as ye,$ as G,ar as ke,a0 as J,aq as _e,M as xe}from"./D0rPpKiU.js";import{c as oe}from"./wzWXuswT.js";import{H as Pe,c as we}from"#entry";import{u as Se,b as Ce,a as De,c as Fe,d as Ee,r as Ue,e as $e}from"./BlI-FQnq.js";import{u as Be}from"./Bg7opIwV.js";import{u as Ie}from"./D8nlBy8-.js";import{u as Le,r as Ne}from"./C4NJUCqF.js";import{u as Te}from"./CHudUinb.js";import{r as de}from"./DOghimL-.js";import{u as Me}from"./DFDn5qur.js";import{s as O}from"./DDOY1lLW.js";import"./D_gTWDL9.js";import"./BCTa1yj3.js";import"./BHe9BvlE.js";const Re=["aria-label"],Ae=["aria-checked","onClick"],Oe={key:0,class:"absolute -top-2 left-1/2 -translate-x-1/2 whitespace-nowrap rounded-full bg-purple-600 px-2 py-px text-[10.5px] font-bold tracking-wider text-white"},Ve={class:"block text-[15px] font-bold"},je=re({__name:"PlanSegmentToggleBase",props:{modelValue:{},options:{},ariaLabel:{default:"Billing period"}},emits:["update:modelValue"],setup(t){const a=t,u=l=>oe("relative block cursor-pointer rounded-[10px] border-2 border-transparent px-3 pt-[11px] pb-[9px] text-center transition-colors","focus:outline-none focus-visible:ring-2 focus-visible:ring-purple-500",a.modelValue===l&&"bg-white border-purple-600 shadow-[0_4px_14px_-6px_rgba(122,18,212,0.4)]"),f=l=>oe("mt-px block text-xs",a.modelValue===l?"text-[#680fb4]":"text-cool-grey-500");return(l,d)=>(n(),i("div",{role:"radiogroup","aria-label":t.ariaLabel,class:"grid grid-cols-2 gap-1.5 rounded-[14px] bg-cool-grey-100 p-1.5"},[(n(!0),i(ee,null,te(t.options,s=>(n(),i("button",{key:s.value,type:"button",role:"radio","aria-checked":t.modelValue===s.value,class:ae(u(s.value)),onClick:w=>l.$emit("update:modelValue",s.value)},[s.badge?(n(),i("span",Oe,E(s.badge),1)):U("",!0),ve("span",Ve,E(s.price?`${s.label} â ${s.price}`:s.label),1),s.sub?(n(),i("span",{key:1,class:ae(f(s.value))},E(s.sub),3)):U("",!0)],10,Ae))),128))],8,Re))}}),qe=Object.assign(je,{__name:"PlanSegmentToggleBase"}),ze=["aria-label"],He={key:0,class:"inline-checkout-link__header mb-4"},Ke={key:1,class:"inline-checkout-link__toggle mb-4"},Ye={key:2,class:"body-small text-red-600",role:"alert"},Qe={key:3,class:"inline-checkout-link__form min-h-[220px]"},Xe={key:4,class:"inline-checkout-link__footer body-small mt-6 flex flex-wrap items-center justify-center gap-2 text-cool-grey-500"},Ge=re({__name:"InlineCheckoutLinkBase",props:{billingPeriod:{},toggleOptions:{default:()=>[]},showToggle:{type:Boolean,default:!1},toggleAriaLabel:{default:"Billing period"},fetchFailed:{type:Boolean,default:!1},formUnavailable:{type:Boolean,default:!1},errorMessage:{default:"Unable to load checkout. Please refresh the page and try again."},ariaLabel:{default:"Checkout"},className:{default:""}},emits:["update:billingPeriod"],setup(t){const a=be(),u=o(()=>!!a.header),f=o(()=>!!a.footer);return(l,d)=>(n(),i("section",{"aria-label":t.ariaLabel,class:ae(h(oe)("inline-checkout-link relative z-10 isolate bg-white text-left rounded-[20px] border border-[#eed8fe]","shadow-[0_30px_80px_-24px_rgba(79,12,138,0.35),0_8px_20px_-6px_rgba(15,19,26,0.08)]","px-[18px] pt-[22px] pb-[18px] md:px-7 md:pt-7 md:pb-6",t.className))},[u.value?(n(),i("div",He,[X(l.$slots,"header",{},void 0,!0)])):U("",!0),t.showToggle?(n(),i("div",Ke,[he(qe,{"model-value":t.billingPeriod,options:t.toggleOptions,"aria-label":t.toggleAriaLabel,"onUpdate:modelValue":d[0]||(d[0]=s=>l.$emit("update:billingPeriod",s))},null,8,["model-value","options","aria-label"])])):U("",!0),t.fetchFailed||t.formUnavailable?(n(),i("div",Ye,E(t.errorMessage),1)):(n(),i("div",Qe,[X(l.$slots,"form",{},void 0,!0)])),f.value?(n(),i("div",Xe,[X(l.$slots,"footer",{},void 0,!0)])):U("",!0)],10,ze))}}),Je=Object.assign(Pe(Ge,[["__scopeId","data-v-e350048c"]]),{__name:"InlineCheckoutLinkBase"}),V=t=>{if(t==null||t==="")return 0;const a=typeof t=="number"?t:Number.parseFloat(String(t).replace(/[^0-9.]/g,""));return Number.isFinite(a)?a:0},W=t=>{if(!t)return"";const a=t%1!==0;
1return`$${t.toLocaleString("en-US",{minimumFractionDigits:a?2:0,maximumFractionDigits:2})}`},We=(t,a,u,f)=>{const{fetchCheckoutData:l}=Se(),{resolveUrl:d}=Be(),s=Ce(),w=Te(),B=ce(),{trackProductView:j}=Ie(),{getFbCapiData:q}=Le(),y=o(()=>!!(t.value?.url||t.value?.static_url)),k=o(()=>!!(a.value?.url||a.value?.static_url)),z=o(()=>y.value&&k.value),p=$(u.value),I=()=>{p.value==="yearly"&&!k.value&&y.value?p.value="monthly":p.value==="monthly"&&!y.value&&k.value&&(p.value="yearly")};F(u,e=>{p.value=e,I()}),F([y,k],I,{immediate:!0});const H=e=>{p.value=e},_=o(()=>p.value==="yearly"),m=o(()=>_.value?a.value:t.value),S=e=>!!e?.static_url,C=o(()=>S(m.value)),x=$(!0),P=$(!1),L=o(()=>[t.value,a.value].filter(e=>!!e&&!S(e)).map(e=>e.url).filter(e=>!!e)),N=async()=>{const e=L.value;if(e.length===0){x.value=!1,P.value=!1;return}x.value=!0,P.value=!1;try{await Promise.all(e.map(r=>l(r)))}catch(r){P.value=!0,console.error("[useInlineCheckout] Failed to load pricing for:",e,r)}finally{x.value=!1}};ue(N),F(L,(e,r)=>{e.join("|")!==r?.join("|")&&N()});const T=e=>{const r=e?.url;return r?s.checkoutData.find(A=>A.osiris_checkout_end_point===r)??null:null},v=o(()=>T(m.value)),K=o(()=>v.value?.currency||"USD"),M=o(()=>C.value?V(m.value?.static_price):V(v.value?.discounted_price||v.value?.price)),Y=o(()=>M.value>0),D=e=>{if(!e)return 0;if(S(e))return V(e.static_price);const r=T(e);return V(r?.discounted_price||r?.price)},c=o(()=>W(D(t.value))),g=o(()=>W(D(a.value))),R=o(()=>{const e=D(a.value);return e?W(e/12):""}),Q=o(()=>C.value?"1":$e(v.value?.tier)),b=o(()=>{const e=B.query.otag;return Array.isArray(e)?e.filter(r=>typeof r=="string"&&r.trim()!=="").join(","):typeof e=="string"&&e.trim()!==""?e.trim():""}),ne=o(()=>Ue(m.value??{},Q.value)),fe=o(()=>Ee(ne.value,b.value)),se=o(()=>{const e=C.value?m.value?.static_url??"":v.value?.checkout_url??"";if(!e)return"";const r=De(Fe(e,fe.value),w.funnelQuestId),A=m.value?.next_url;if(!A)return d(r);try{const ie=new URL(r);return ie.searchParams.set("next",A),d(ie.toString())}catch{return d(r)}}),pe=async()=>{const e=v.value,r=await q();return{productId:Ne(e?.product_id||w.pageProductId,e?.checkout_url||m.value?.static_url||m.value?.url),productName:de(B.path),price:M.value,currency:K.value,billingCycle:e?.billing_period??m.value?.period??p.value,offerN
1ame:f?.offerName,checkoutUrl:e?.checkout_url??m.value?.static_url??"",checkoutLinkLabel:m.value?.label??m.value?.name??"",tags:ne.value.join(","),otag:b.value,discountApplied:e?.discount_amount??"",...r}},ge=o(()=>Y.value?`${p.value}:${se.value}`:"");return F(ge,async e=>{e&&j(await pe())},{immediate:!0}),{hasMonthly:y,hasYearly:k,hasBothPeriods:z,billingPeriod:p,setBillingPeriod:H,isPricingLoading:x,fetchFailed:P,monthlyPriceDisplay:c,yearlyPriceDisplay:g,perMonthEquivalentDisplay:R,flowUrl:se}},le="osiris-payment-form";let Z=null;const me=()=>typeof window.customElements<"u"&&!!window.customElements.get(le),Ze=t=>me()?Promise.resolve():document.querySelector("script[data-osiris-payment-sdk]")?window.customElements.whenDefined(le).then(()=>{}):new Promise((u,f)=>{const l=document.createElement("script");l.type="module",l.src=t,l.async=!0,l.dataset.osirisPaymentSdk="true",l.onload=()=>{window.customElements.whenDefined(le).then(()=>u()).catch(f)},l.onerror=()=>{l.remove(),f(new Error("Failed to load Osiris payment form SDK"))},document.head.appendChild(l)}),et=()=>{const{public:{osirisPaymentSdkUrl:t}}=we(),a=$(!1),u=$(!1),f=async()=>{if(!a.value){if(!t){u.value=!0,console.error("[useOsirisPaymentSdk] osirisPaymentSdkUrl is not configured");return}try{const{origin:l}=new URL(t);if(!document.querySelector(`link[rel="preconnect"][href="${l}"]`)){const d=document.createElement("link");d.rel="preconnect",d.href=l,document.head.appendChild(d)}}catch{}Z??=Ze(t);try{await Z,a.value=!0,u.value=!1}catch(l){Z=null,u.value=!0,console.error("[useOsirisPaymentSdk] SDK failed to load:",l)}}};return ue(()=>{me()&&(a.value=!0)}),{isReady:a,loadFailed:u,load:f}},tt=["flow-url","source"],at={key:1,class:"body-small text-red-600",role:"alert"},ot={key:2,class:"h-64 bg-cool-grey-100 rounded-md animate-pulse",role:"status","aria-label":"Loading payment form"},lt=re({__name:"InlineCheckoutLink",props:{blok:{}},setup(t){const a=t,u=ce(),f=c=>{if(c.component!=="Editor")return c;const g=c;return{...g,heading_font_size:g.heading_font_size||"title-bold-7",heading_color:g.heading_color||"#0f131a",font_size:g.font_size||"body-small",text_color:g.text_color||"cool-grey-600",margin:g.margin||"0",padding:g.padding||"0"}},l=o(()=>O(a.blok.header).map(f)),d=o(()=>O(a.blok.footer)),s=o(()=>O(a.blok.monthly_checkout_link)[0]??null),w=o(()=>O(a.blok.yearly_checkout_link)[0]??null),B=o(()=>a.blok.default_billing_period==="monthly"?"monthly":"yearly"),{hasBothPeriods:j,billingPeriod:q,setBillingPeriod:y,isPricingLoading:k,fetchFailed:z,monthlyPriceDisplay:p,yearlyPriceDisplay:I,perMonthEquivalentDisplay:H,flowUrl:_}=We(s,w,B,{offerName:a.blok.offer_name}),m=c=>c?c.replace("{perMonth}",H.value):"",S=o(()=>[{value:"monthly",label:a.blok.monthly_toggle_label||"Monthly",price:p.value,sub:a.blok.monthly_sub_label??"Renews monthly"},{value:"yearly",label:a.blok.yearly_toggle_label||"Yearly",price:I.value,sub:m(a.blok.yearly_sub_template??"{perMonth}/month equivalent"),badge:a.blok.yearly_badge||void 0}]),C=o(()=>a.blok.sdk_error_message||"Unable to load the payment form. Disable any ad or script blockers and refresh the page."),{target:x,isVisible:P}=Me({rootMargin:"200px",threshold:0,once:!0}),{isReady:L,loadFailed:N,load:T}=et();F(P,c=>{c&&T()},{immediate:!0});const v=o(()=>L.value&&!!_.value),K=o(()=>!k.value&&!_.value),M=/[^\x20-\x7E]/g,Y=o(()=>(a.blok.source?.trim()||de(u.path)||"pagebuilder-ng").replace(M,"").slice(0,100)),D=c=>{const g=c.detail;console.error("[InlineCheckoutLink] Osiris payment form error:",g??c)};return(c,g)=>{const R=xe("StoryblokComponent"),Q=_e("editable");return n(),i("div",{ref_key:"containerRef",ref:x},[ye((n(),G(Je,{"billing-period":h(q),"toggle-options":S.value,"show-toggle":h(j),"toggle-aria-label":t.blok.toggle_aria_label||"Billing period","fetch-failed":h(z),"form-unavailable":K.value,"aria-label":t.blok.aria_label||"Checkout","class-name":t.blok.classes,"onUpdate:billingPeriod":h(y)},ke({form:J(()=>[v.value?(n(),i("osiris-payment-form",{key:h(_),"flow-url":h(_),source:Y.value,onError:D},null,40,tt)):h(N)?(n(),i("div",at,E(C.value),1)):(n(),i("div",ot))]),_:2},[l.value.length>0?{name:"header",fn:J(()=>[(n(!0),i(ee,null,te(l.value,b=>(n(),G(R,{key:b._uid,blok:b},null,8,["blok"]))),128))]),key:"0"}:void 0,d.value.length>0?{name:"footer",fn:J(()=>[(n(!0),i(ee,null,te(d.value,b=>(n(),G(R,{key:b._uid,blok:b},null,8,["blok"]))),128))]),key:"1"}:void 0]),1032,["billing-period","toggle-options","show-toggle","toggle-aria-label","fetch-failed","form-unavailable","aria-label","class-name","onUpdate:billingPeriod"])),[[Q,t.blok]])],512)}}}),yt=Object.assign(lt,{__name:"InlineCheckoutLink"});export{yt as default};
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.