PageSourceSearch

https://saim.de/_nuxt/C-F4ijRt.js

js saim.de collected 2026-10-06 18:26:27 UTC 17,621 bytes, 1 lines download raw bytes

1import{_ as ge}from"./D7PUYisg.js";import ke from"./D4QRH7ca.js";import xe from"./CHykR7Xd.js";import{v as le,e as fe,g as we,B as ue,i as s,c,a as l,J as V,F as A,l as G,d as ie,x as J,y as $e,z as Ce,k as g,A as Le,m as P,p as $,o as r,t as f,C as he,n as N,b as X,W as me,j as Fe,w as z,X as Te}from"./BP4NY-Zk.js";import{s as qe}from"./hmnZRdD7.js";import{u as Me}from"./DtHG4OFB.js";import{u as De}from"./BskmvxHd.js";const de=new Map;function Se(t){const n=de.get(t);if(n)return n;const i=new Promise(h=>{if(window.grecaptcha)return h(window.grecaptcha);const d=document.createElement("script");d.src=`https://www.google.com/recaptcha/api.js?render=${encodeURIComponent(t)}`,d.async=!0,d.defer=!0,d.onerror=()=>h(null),d.onload=()=>h(window.grecaptcha??null),document.head.appendChild(d)});return de.set(t,i),i}function Ve(){const t=le("storycore:form-settings",()=>null),n=le("storycore:form-settings:asked",()=>!1);async function i(){if(n.value)return t.value;n.value=!0;try{t.value=await $fetch("/api/cms/globals/form_settings")}catch{t.value=null}return t.value}async function h(d="submit"){const y=await i(),m=y?.recaptcha_site_key;if(!y?.recaptcha_enabled||!m)return null;const _=await Se(m);if(!_)return null;try{return await new Promise(T=>_.ready(T)),await _.execute(m,{action:d})}catch{return null}}return{execute:h}}const Q={text:{submits:!0,selfLabelled:!1,columnar:!0},email:{submits:!0,selfLabelled:!1,columnar:!0},textarea:{submits:!0,selfLabelled:!1,columnar:!0},select:{submits:!0,selfLabelled:!1,columnar:!0},number:{submits:!0,selfLabelled:!1,columnar:!0},phone:{submits:!0,selfLabelled:!1,columnar:!0},country:{submits:!0,selfLabelled:!1,columnar:!0},date:{submits:!0,selfLabelled:!1,columnar:!0},file:{submits:!0,selfLabelled:!1,columnar:!0},checkbox:{submits:!0,selfLabelled:!0,columnar:!0},acceptance:{submits:!0,selfLabelled:!0,columnar:!0},hidden:{submits:!0,selfLabelled:!0,columnar:!0},intro:{submits:!1,selfLabelled:!0,columnar:!0},button:{submits:!1,selfLabelled:!0,columnar:!0},recaptcha:{submits:!1,selfLabelled:!0,columnar:!0},spacer:{submits:!1,selfLabelled:!0,columnar:!1}},Ae=t=>Q[t.type]?.submits===!0,Be=t=>Q[t.type]?.selfLabelled!==!1,Oe=t=>Q[t.type]?.columnar!==!1,Y=t=>t.filter(n=>Ae(n)&&typeof n.name=="string"&&n.name.length>0);function Ie(t){switch(t.type){case"checkbox":case"acceptance":return!1;case"file":return[];case"hidden":return t.default??"";default:return""}}function Ue(t){const n={};for(const i of Y(t))n[i.name]=Ie(i);return n}function _e(t){switch(t.type){case"email":return"email";case"phone":return"tel";case"number":return"number";case"date":return t.mode==="datetime"?"datetime-local":t.mode==="time"?"time":"date";default:return"text"}}const pe=t=>Oe(t)?typeof t.column_width=="number"?t.column_width:50:100,Pe=1,Re=10;function He(t,n,i=0){const h=t.max_files??Pe,d=t.max_size_mb??Re;if(i+n.length>h)return{reason:"too_many",limit:h};const y=n.find(m=>m.size>d*1024*1024);return y?{reason:"too_large",limit:d,filename:y.name}:null}function je(t){const n={...t.values,...t.uploads,_hp:t.honeypot};return t.sourceUrl&&(n._source_url=t.sourceUrl),t.record&&(n._record=t.record),t.captchaToken&&(n._captcha_token=t.captchaToken),n}const Ee={text:"input",email:"input",phone:"input",number:"input",date:"input",textarea:"textarea",select:"select",country:"select",checkbox:"checkbox",acceptance:"checkbox",file:"file",button:"button",hidden:"hidden",intro:"intro",spacer:"spacer",recaptcha:"none"},ze=t=>Ee[t.type]??"input",Ne=t=>typeof t?.validate=="function";function Ke(t){let n=!0;for(const i of t)i.validate()||(n=!1);return n}const Xe=t=>t===""||t==null||t===!1||Array.isArray(t)&&t.length===0;function We(t){const n=Ke(t.validators.values()),i=[],h={};for(const d of Y(t.fields)){const y=d.name;if(d.type==="file"){const m=t.attachments[y]??[];m.some(_=>_.status==="uploading")?h[y]="uploading":d.required&&!m.some(_=>_.status==="done")&&(h[y]="required");continue}t.validators.has(d._uid)||d.required&&Xe(t.values[y])&&i.push(y)}return{ok:n&&i.length===0&&Object.keys(h).length===0,missing:i,files:h}}const Ze=(t,n)=>(t.name?n?.[t.name]:void 0)??t.default??"";function Ge(t){const n=t?.data?.data,i=n?.data?.code;if(typeof i=="string")return i;const h=n?.code;return typeof h=="string"?h:null}const Je={key:0,class:"tcl-form tcl-form--missing"},Qe={class:"tcl-form__success"},Ye={class:"tcl-form__grid"},et=["name","value"],tt={key:0,class:"tcl-form__heading"},st=["innerHTML"],at=["disabled"],ot={class:"tcl-form__consent"},nt=["id","checked","name","required","onChange"],rt=["innerHTML"],ct={key:1},lt=["for"],ut={key:0,"aria-hidden":"true"},it=["id","value","name","required","onChange","onFocus","onBlur"],mt=["selected"],dt=["value","selected"],_t=["id","value","name","required","placeholder","onInput","onFocus","onBlur"],pt=["id","name","accept","disabled","multiple","onChange"],ft={key:0,class:"tcl-form__files"},ht={class:"tcl-form__file-name"},yt={key:0,class:"tcl-form__file-state"},vt={key:1,class:"tcl-form__file-state"},bt=["aria-label","onClick"],gt={key:1,class:"tcl-form__field-error",role:"alert"},kt=["id","value","type","name","required","placeholder","min","max","step","onInput","onFocus","onBlur"],xt={class:"tcl-form__hp","aria-hidden":"true"},wt={class:"tcl-form__error",role:"alert"},$t=fe({__name:"AppForm",props:{form:{},record:{default:null},hiddenValues:{default:()=>({})},labels:{type:Boolean,default:!0},captchaAction:{default:"submit"},texts:{default:()=>({})}},emits:["submitted"],setup(t,{emit:n}
1){const i=t,h=n,d={success:"Thank you.",error:"The form could not be sent. Please try again.",tooManyFiles:"Please select at most {limit} file(s).",fileTooLarge:"{name} is larger than the {limit} MB limit.",uploading:"Uploading…",uploadFailed:"The file could not be uploaded.",removeFile:"Remove",fileInFlight:"Please wait until the upload has finished.",fileRequired:"Please attach a file."},y=a=>typeof a=="string"||typeof a=="number"?String(a):"",m=(a,u={})=>Object.entries(u).reduce((e,[o,F])=>e.replace(`{${o}}`,String(F)),i.texts?.[a]??d[a]),_=P(()=>(Array.isArray(i.form)?i.form[0]:i.form)??null),T=P(()=>_.value?.fields??[]),q=$({}),B=$(""),x=$(!1),O=$(!1),C=$(""),R=$(null),I=$(null),K=$(!1);we(()=>{K.value=!0});const M=$(!1),p=$({});function w(a){const u=a.name?q.value[a.name]:"";return!!(a.name&&p.value[a.name]||u!==""&&u!==!1&&!(Array.isArray(u)&&u.length===0))}const k=(a,u)=>{a.name&&(q.value[a.name]=u)},b=a=>a.name?q.value[a.name]:void 0,v=a=>`${a._uid}-control`,D=new Map,H=new Map;function j(a){let u=H.get(a);return u||(u=e=>{Ne(e)?D.set(a,e):D.delete(a)},H.set(a,u)),u}const U=$({}),L=$({}),S=a=>U.value[a]??[];async function ee(a,u){const e=a.name;if(!e)return;const o=u.target,F=Array.from(o.files??[]);if(o.value="",!F.length)return;L.value={...L.value,[e]:""};const E=He(a,F,S(e).length);if(E){L.value[e]=E.reason==="too_many"?m("tooManyFiles",{limit:E.limit}):m("fileTooLarge",{limit:E.limit,name:E.filename??""});return}const oe=_.value?.id;if(oe)for(const ne of F){const W={key:`${Date.now()}-${Math.random().toString(36).slice(2)}`,name:ne.name,id:null,status:"uploading"};U.value[e]=[...S(e),W];const re=new FormData;re.append("file",ne);try{const Z=await $fetch(`/api/cms/forms/${oe}/upload/${encodeURIComponent(e)}`,{method:"POST",body:re});te(e,W.key,{id:Z.id,status:"done"})}catch(Z){const ce=Z?.data;te(e,W.key,{status:"error",error:ce?.message||ce?.statusMessage||m("uploadFailed")})}}}function te(a,u,e){U.value[a]=S(a).map(o=>o.key===u?{...o,...e}:o)}function se(a,u){U.value[a]=S(a).filter(e=>e.key!==u),L.value[a]=""}function ye(){const a={};for(const u of Y(T.value))u.type==="file"&&(a[u.name]=S(u.name).filter(e=>e.status==="done"&&e.id).map(e=>e.id));return a}function ae(){for(const a of T.value)a.type!=="hidden"||!a.name||(q.value[a.name]=Ze(a,i.hiddenValues))}ue(T,a=>{q.value=Ue(a),ae(),L.value={},U.value={},M.value=!1,D.clear(),H.clear()},{immediate:!0}),ue(()=>i.hiddenValues,ae,{deep:!0});const{execute:ve}=Ve();async function be(){const a=_.value;if(!a||x.value)return;M.value=!0;const u=We({fields:T.value,values:q.value,attachments:U.value,validators:D});L.value={...L.value};for(const[e,o]of Object.entries(u.files))L.value[e]=m(o==="uploading"?"fileInFlight":"fileRequired");if(u.ok){x.value=!0,C.value="",R.value=null,I.value=null;try{const e=T.value.some(F=>F.type==="recaptcha")?await ve(i.captchaAction):null,o=await $fetch(`/api/cms/forms/${a.id}/submit`,{method:"POST",body:je({values:q.value,uploads:ye(),honeypot:B.value,sourceUrl:window.location.href,record:i.record,captchaToken:e})});O.value=!0,h("submitted",o?.success_message||a.success_message||m("success"))}catch(e){const o=e,F=o?.data;C.value=F?.message||F?.statusMessage||m("error"),R.value=typeof o?.statusCode=="number"?o.statusCode:null,I.value=Ge(e)}finally{x.value=!1}}}return(a,u)=>s(_)?s(O)?V(a.$slots,"success",{key:1,message:s(_).success_message||m("success")},()=>[l("p",Qe,f(s(_).success_message||m("success")),1)]):(r(),c("form",{key:2,class:"tcl-form",onSubmit:Le(be,["prevent"])},[l("div",Ye,[(r(!0),c(A,null,G(s(T),e=>(r(),c(A,{key:e._uid},[e.type==="hidden"?(r(),c("input",{key:0,type:"hidden",name:e.name,value:s(K)?y(b(e)):""},null,8,et)):e.type==="recaptcha"?(r(),c(A,{key:1},[],64)):(r(),c("div",{key:2,class:N(["tcl-form__field",[`tcl-form__field--${e.type}`,`tcl-form__field--kind-${s(ze)(e)}`,{"tcl-form__field--full":s(pe)(e)>=100,"tcl-form__field--floating":!s(Be)(e)&&w(e)}]]),style:he({"--col":`${s(pe)(e)}%`})},[e.type==="intro"?(r(),c(A,{key:0},[e.label?(r(),c("h3",tt,f(e.label),1)):g("",!0),e.text?(r(),c("div",{key:1,class:"tcl-form__intro",innerHTML:e.text},null,8,st)):g("",!0)],64)):e.type==="spacer"?(r(),c("div",{key:1,class:N(["tcl-form__spacer",`tcl-form__spacer--${e.size??"small"}`])},null,2)):e.type==="button"?V(a.$slots,"button",{key:2,field:e,id:v(e),pending:s(x),attempted:s(M)},()=>[l("button",{type:"submit",class:"tcl-form__submit",disabled:s(x)},f(e.label||"Send"),9,at)]):e.type==="acceptance"||e.type==="checkbox"?V(a.$slots,"checkbox",{key:3,field:e,id:v(e),value:b(e),update:o=>k(e,o),register:j(e._uid),pending:s(x),attempted:s(M)},()=>[l("label",ot,[l("input",{id:v(e),checked:b(e)===!0,type:"checkbox",name:e.name,required:e.required,onChange:o=>k(e,o.target.checked)}
1,null,40,nt),e.type==="acceptance"?(r(),c("span",{key:0,innerHTML:e.text},null,8,rt)):(r(),c("span",ct,f(e.label),1))])]):(r(),c(A,{key:4},[t.labels&&e.label?(r(),c("label",{key:0,class:"tcl-form__label",for:v(e)},[ie(f(e.label),1),e.required?(r(),c("span",ut," *")):g("",!0)],8,lt)):g("",!0),e.type==="select"||e.type==="country"?V(a.$slots,"select",{key:1,field:e,id:v(e),value:b(e),options:e.options??[],update:o=>k(e,o),register:j(e._uid),pending:s(x),attempted:s(M)},()=>[l("select",{id:v(e),value:y(b(e)),class:"tcl-form__control",name:e.name,required:e.required,onChange:o=>k(e,o.target.value),onFocus:o=>s(p)[e.name]=!0,onBlur:o=>s(p)[e.name]=!1},[l("option",{value:"",selected:!b(e)},f(e.placeholder||"—"),9,mt),(r(!0),c(A,null,G(e.options,o=>(r(),c("option",{key:o.value,value:o.value,selected:b(e)===o.value},f(o.label),9,dt))),128))],40,it)]):e.type==="textarea"?V(a.$slots,"textarea",{key:2,field:e,id:v(e),value:b(e),update:o=>k(e,o),register:j(e._uid),pending:s(x),attempted:s(M)},()=>[l("textarea",{id:v(e),value:y(b(e)),class:"tcl-form__control",name:e.name,required:e.required,placeholder:e.placeholder,rows:"5",onInput:o=>k(e,o.target.value),onFocus:o=>s(p)[e.name]=!0,onBlur:o=>s(p)[e.name]=!1},null,40,_t)]):e.type==="file"?V(a.$slots,"file",{key:3,field:e,id:v(e),files:S(e.name),pick:o=>ee(e,o),remove:o=>se(e.name,o),error:s(L)[e.name]??"",register:j(e._uid),pending:s(x),attempted:s(M)},()=>[l("input",{id:v(e),type:"file",class:"tcl-form__control tcl-form__control--file",name:e.name,accept:e.accept,disabled:s(x),multiple:(e.max_files??1)>1,onChange:o=>ee(e,o)},null,40,pt),S(e.name).length?(r(),c("ul",ft,[(r(!0),c(A,null,G(S(e.name),o=>(r(),c("li",{key:o.key,class:N(["tcl-form__file",`tcl-form__file--${o.status}`])},[l("span",ht,f(o.name),1),o.status==="uploading"?(r(),c("span",yt,f(m("uploading")),1)):o.status==="error"?(r(),c("span",vt,f(o.error),1)):g("",!0),l("button",{type:"button",class:"tcl-form__file-remove","aria-label":`${m("removeFile")}: ${o.name}`,onClick:F=>se(e.name,o.key)},f(m("removeFile")),9,bt)],2))),128))])):g("",!0),s(L)[e.name]?(r(),c("p",gt,f(s(L)[e.name]),1)):g("",!0)]):V(a.$slots,"input",{key:4,field:e,id:v(e),type:s(_e)(e),value:b(e),update:o=>k(e,o),register:j(e._uid),pending:s(x),attempted:s(M)},()=>[l("input",{id:v(e),value:y(b(e)),class:"tcl-form__control",type:s(_e)(e),name:e.name,required:e.required,placeholder:e.placeholder,min:e.min,max:e.max,step:e.step,onInput:o=>k(e,o.target.value),onFocus:o=>s(p)[e.name]=!0,onBlur:o=>s(p)[e.name]=!1},null,40,kt)])],64))],6))],64))),128))]),l("div",xt,[l("label",null,[u[2]||(u[2]=ie(" Leave this field empty ",-1)),J(l("input",{"onUpdate:modelValue":u[0]||(u[0]=e=>Ce(B)?B.value=e:null),type:"text",tabindex:"-1",autocomplete:"off"},null,512),[[$e,s(B)]])])]),s(C)?V(a.$slots,"error",{key:0,message:s(C),status:s(R),code:s(I)},()=>[l("p",wt,f(s(C)),1)]):g("",!0)],32)):(r(),c("div",Je,[...u[1]||(u[1]=[l("p",null,"No form selected for this block.",-1)])]))}}),Ct=Object.assign($t,{__name:"AppForm"}),Lt={class:"container"},Ft={class:"row"},Tt={class:"col-xl-5"},qt={key:0,class:"tcl-contact__heading"},Mt={key:1,class:"tcl-contact__text"},Dt=["innerHTML"],St={key:1,class:"tcl-contact__picture"},Vt={class:"col-xl-5 offset-xl-1"},At={class:"tcl-contact__form"},Bt={class:"js--form-wrapper"},Ot={key:0,class:"tcl-contact__form-heading"},It={key:1,class:"tcl-form__error tcl-form__error--summary",role:"alert"},Ut=["disabled","aria-busy"],Pt={class:"tcl-visually-hidden","aria-live":"polite"},Rt={class:"tcl-form__error",role:"alert"},Ht={key:3,class:"tcl-form__intro"},jt={key:4,class:"tcl-contact__form-unset"},Et={class:"tcl-contact__form-success"},zt={key:0,class:"tcl-contact__form-success-heading"},Nt={key:1,class:"tcl-contact__form-success-text"},Kt=["innerHTML"],Xt=fe({__name:"Contact",props:{blockData:{},rootClass:{}},setup(t){const n=t,i=P(()=>n.blockData.style||"white"),h=P(()=>n.blockData.content_type||"picture"),d=P(()=>n.blockData.form??null),y=!1,m=$(!1),_=Me(),T=De(),q=Te({}),B=P(()=>Object.values(q).some(Boolean)),x=(O,C)=>{O&&(q[O]=!C)};return(O,C)=>{const R=ge,I=ke,K=xe,M=Ct;return r(),c("section",{class:N([t.rootClass,"tcl-section",`tcl-section--${s(i)}`])},[l("div",{class:"tcl-contact__wrapper",style:he(s(qe)(s(i)))},[l("div",Lt,[l("div",Ft,[l("div",Tt,[s(h)==="text"?(r(),c(A,{key:0}
1,[t.blockData.heading?(r(),c("div",qt,f(t.blockData.heading),1)):g("",!0),t.blockData.text?(r(),c("div",Mt,[l("div",{class:"tcl-wysiwyg",innerHTML:t.blockData.text},null,8,Dt)])):g("",!0)],64)):t.blockData.picture?(r(),c("div",St,[X(R,{media:t.blockData.picture,sizes:"xs:100vw xl:42vw"},null,8,["media"])])):g("",!0)]),l("div",Vt,[l("div",At,[J(l("div",Bt,[t.blockData.heading_form?(r(),c("div",Ot,f(t.blockData.heading_form),1)):g("",!0),s(d)&&s(B)?(r(),c("p",It,f(s(_)("form_required_fields")),1)):g("",!0),s(d)?(r(),Fe(M,{key:2,form:s(d),record:s(T),labels:!1,onSubmitted:C[0]||(C[0]=p=>m.value=!0)},{input:z(({field:p,id:w,type:k,value:b,update:v,register:D})=>[X(I,{ref:D,field:p,id:w,type:k,value:b,"required-message":s(_)("form_field_required"),onUpdate:v,onValidity:H=>x(p.name,H)},null,8,["field","id","type","value","required-message","onUpdate","onValidity"])]),textarea:z(({field:p,id:w,value:k,update:b,register:v})=>[X(I,{ref:v,multiline:"",field:p,id:w,value:k,"required-message":s(_)("form_field_required"),onUpdate:b,onValidity:D=>x(p.name,D)},null,8,["field","id","value","required-message","onUpdate","onValidity"])]),checkbox:z(({field:p,id:w,value:k,update:b,register:v})=>[X(K,{ref:v,field:p,id:w,value:k,"required-message":s(_)("form_field_required"),onUpdate:b,onValidity:D=>x(p.name,D)},null,8,["field","id","value","required-message","onUpdate","onValidity"])]),button:z(({field:p,pending:w})=>[l("button",{type:"submit",class:N(["tcl-form__submit",{"tcl-form__submit--loading":w}]),disabled:w,"aria-busy":w||void 0},f(p.label),11,Ut),l("span",Pt,f(w?"Wird gesendet…":""),1)]),error:z(({status:p,code:w,message:k})=>[l("p",Rt,f(w==="email_refused"?k:p===429?s(_)("form_rate_limited"):s(_)("form_send_error")),1)]),_:1},8,["form","record"])):g("",!0),s(d)?(r(),c("div",Ht,[l("p",null,f(s(_)("form_required_marker")),1)])):s(y)?(r(),c("p",jt," Kein Formular ausgewählt. ")):g("",!0)],512),[[me,!s(m)]]),J(l("div",Et,[C[1]||(C[1]=l("div",{class:"tcl-contact__form-success-icon"},[l("svg",{xmlns:"http://www.w3.org/2000/svg",width:"97",height:"99",viewBox:"0 0 97 99",fill:"none"},[l("path",{d:"M0.5 49.5C0.5 39.8065 3.31631 30.3316 8.59192 22.2733C13.8675 14.2151 21.3649 7.93608 30.1346 4.22864C38.9042 0.521258 48.5532 -0.448751 57.8623 1.44111C67.1714 3.33099 75.724 7.99622 82.4376 14.8483C89.1513 21.7004 93.7244 30.4317 95.5773 39.9387C97.4302 49.4458 96.4792 59.3 92.8449 68.2548C89.2106 77.2096 83.0571 84.8618 75.1637 90.2448C67.2704 95.6277 57.9911 98.5 48.4998 98.5C35.7728 98.5 23.5651 93.3402 14.5626 84.152C5.55963 74.9635 0.5 62.4989 0.5 49.5Z",fill:"#CAD9D9",stroke:"#486875"}),l("path",{d:"M27 50.5L40.5 64L69.5 35",stroke:"#486875","stroke-width":"2"})])],-1)),t.blockData.heading_success?(r(),c("div",zt,f(t.blockData.heading_success),1)):g("",!0),t.blockData.text_success?(r(),c("div",Nt,[l("div",{class:"tcl-wysiwyg",innerHTML:t.blockData.text_success},null,8,Kt)])):g("",!0)],512),[[me,s(m)]])])])])])],4)],2)}}}),ts=Object.assign(Xt,{__name:"Contact"});export{ts 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.