1import{d as M,u as O,b as F,I as D,e as a,m as f,i as S,t as b,g as e,X as R,q as c,f as V,w as J,j as P,N as U,R as x,v as z,k as C,r as w,x as k,a5 as T,c as H,z as N,T as $}from"./DRVmXTlH.js";import{u as q,h as G,F as X}from"./BrGeQLhV.js";import{u as K}from"./Dj9NFZSZ.js";import"./BmtM7HUf.js";import"./DlAUqK2U.js";const Q={class:"teaser-newsletter"},W={class:"teaser-newsletter__wrapper"},Y={class:"teaser-newsletter__headline"},Z={class:"teaser-newsletter__content"},ee={key:0,class:"teaser-newsletter__footer__subscribe-form__response-error"},se={key:0,class:"teaser-newsletter__footer__subscribe-form__response-error"},te={key:1,class:"teaser-newsletter__footer__subscribe-form"},re=["innerHTML"],ae=M({__name:"NewsletterTeaser",props:{newsletter:{},headline:{},content:{},button:{},linkToNewsletters:{default:void 0},subscribed:{type:Boolean,default:void 0}},setup(p){const d=p,{t:A}=O(),{d:m}=K("subscribeNewsletterTeaser"),E=F(),g=q(G),h=w({email:""}),v=w({email:""}),o=k(()=>E.isLoggedIn.value),l=w(!1),_=w(!1),I=k(()=>o.value?l.value?m("heading.justSubscribed"):d.headline:_.value?m("heading.justSubscribedAsAnonym"):d.headline),L=k(()=>o.value?l.value?m("slot.justSubscribed"):d.content:_.value?m("slot.justSubscribedAsAnonym"):d.content),r=w("");async function B(){if(E.isLoggedIn.value){const n=await j(),s=Array.from(new Set([...n,d.newsletter.name])),{status:t,error:i}=await T("/api/users/me/update",{method:"POST",body:{data:{nlSelection:s}}});t&&[200,201].includes(t)?(r.value="",l.value=!0,_.value=!1,await H("/api/auth/refresh/access",{method:"POST"})):(r.value=A("forms.general.errorMessages.invalidResponse"),N("newsletter","subscribe (logged-in) failed",{status:t,error:i}))}else{r.value="",g.resetErrors(v.value);const{success:n,data:s,errors:t}=g.validate(h);if(!n){g.setErrors(v.value,t);return}const i=s&&s.email?s.email:"",{status:u,error:y}=await T("/api/users/register/pwless-init",{method:"POST",body:{email:i,data:{nlSelection:[d.newsletter.name]}}});u&&[200,201].includes(u)?(r.value="",l.value=!1,_.value=!0):(r.value=A("forms.general.errorMessages.invalidResponse"),N("newsletter","pwless-init failed",{status:u,error:y,email:i}))}}async function j(){if(!F().isLoggedIn.value)return[];const{data:n,status:s,error:t}=await T("/api/users/me",{method:"GET"});if(s===200){const i=$(n,"nlSelection");if(typeof i=="string")try{const u=JSON.parse(i);if(Array.isArray(u))return u.filter(y=>typeof y=="string")}catch{return i.split(",").map(u=>u.trim()).filter(Boolean)}return[]}else return N("newsletter","failed to fetch user newsletter subscriptions",{status:s,error:t}),[]}return D(()=>d.subscribed,n=>{l.value=n??!1}),(n,s)=>(a(),f("div",Q,[S("div",W,[S("div",Y,b(e(I)),1),S("div",Z,b(e(L)),1),e(_)?c("",!0):(a(),f("div",{key:0,class:R(["teaser-newsletter__footer",{"teaser-newsletter__footer--without-border":!e(l)&&!e(o)}])},[e(r)&&e(o)?(a(),f("div",ee,b(e(r)),1)):c("",!0),e(l)?(a(),V(U,{key:1,link:p.linkToNewsletters??"/newsletter",class:"teaser-newsletter__footer__link"},{default:J(()=>[P(b(e(m)("labelToNewsletters")),1)]),_:1},8,["link"])):c("",!0),e(o)&&!e(l)?(a(),V(x,{key:2,class:"teaser-newsletter__footer__button",label:p.button,onClick:s[0]||(s[0]=t=>B())},null,8,["label"])):c("",!0),!e(o)&&!e(_)?(a(),f(z,{key:3},[e(r)?(a(),f("div",se,b(e(r)),1)):c("",!0),e(o)?c("",!0):(a(),f("div",te,[C(X,{id:"email",modelValue:e(h).email,"onUpdate:modelValue":s[1]||(s[1]=t=>e(h).email=t),class:"teaser-newsletter__footer__subscribe-form__input",type:"email",placeholder:e(m)("form.input.placeholder"),error:e(v).email,state:e(v).email?"error":void 0},null,8,["modelValue","placeholder","error","state"]),C(x,{class:"teaser-newsletter__footer__subscribe-form__button",label:p.button,onClick:s[2]||(s[2]=t=>B())},null,8,["label"])])),e(o)?c("",!0):(a(),f("div",{key:2,class:"teaser-newsletter__footer__legal-information",innerHTML:e(m)("slot.legalInformation")},null,8,re))],64)):c("",!0)],2))])]))}}),ce=Object.assign(ae,{__name:"MoleculesTeasersNewsletterTeaser"});export{ce 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.