1import me from"./BcurEFsX.js";import{d as fe,H as pe,L as ve,I as $,r as d,M as he,J as ge,o as v,x as q,i as o,b as a,y as m,h as w,k as s,a as S,F as O,l as P,z as W,m as _e,j as J,q as be,A as we,C as ye,E as ke}from"./CS1z3jUi.js";import xe from"./B_e-h4an.js";import{_ as De}from"./C4naibC8.js";import ze from"./BPEpzQp9.js";import{u as Me,_ as $e}from"./CQCKh4ng.js";import{u as Se}from"./DbicR7dK.js";import{C as Ie}from"./BcmqJkhg.js";import"./Ca-zwbAX.js";const Be={class:"p-2 text-sm space-y-2"},He={class:"font-semibold"},Ve={class:"p-4 bg-white shadow-lg rounded"},Ne={id:"wrapper-1-1",class:"flex flex-wrap -m-2"},Ae={id:"form-col-name",class:"w-full md:w-1/2 p-2"},qe={id:"form-col-email",class:"w-full md:w-1/2 p-2"},Re={id:"form-col-telefon",class:"w-full md:w-1/2 p-2"},Fe={id:"form-col-strasse",class:"w-full md:w-9/12 p-2"},Ye={id:"form-col-hausnummer",class:"w-full md:w-3/12 p-2"},Ee={id:"form-col-ort",class:"w-full md:w-9/12 p-2"},Le={id:"form-col-plz",class:"w-full md:w-3/12 p-2"},Te={id:"form-col-name-veranstalter",class:"w-full md:w-1/2 p-2"},Ce={id:"form-col-registernummer",class:"w-full md:w-1/2 p-2"},Ke={id:"form-col-art",class:"w-full md:w-1/2 p-2"},Oe={id:"form-col-nutzer",class:"w-full md:w-1/2 p-2"},Pe={id:"form-col-kueche",class:"w-full md:w-1/2 p-2"},We={id:"form-col-beginn",class:"w-full p-2 flex flex-wrap -m-2"},Je={id:"notification-wrapper",size:"xl",class:"w-full p-2"},je={id:"form-col-datum",class:"w-full sm:w-6/12 p-2"},Ge={id:"form-col-vor-nachbereitung",class:"w-full sm:w-6/12 p-2"},Ue={id:"wrapper-3",class:"flex flex-wrap -m-2"},Ze={id:"col-3-1",class:"w-full p-2"},Xe={id:"wrapper-6",class:"flex flex-wrap -m-2"},Qe={id:"col-6-1",class:"w-auto p-2"},et="/automation/webhook/lossburg-hallenanfragen",tt="/automation/webhook/lossburg-hallen",j=6e4,rt="/baserow/api/database/views/form/qA1MTaopImx04oKnubYTp_MVHCNqqdXAzIkgbjDEAh8/submit/",mt=fe({__name:"NkTemplateHalle",props:{context:{type:Object,required:!1,default:()=>({})},options:{type:Object,required:!1,default:()=>({})}},setup(G){const{$moment:u,$config:U}=pe(),R=G,Z=ve(),{form:i,resetForm:X}=Me("buchungsformular"),Q=Se({mobile:0,tablet:640,laptop:1024,desktop:1280}),ee=$(()=>Q.smaller("laptop").value?1:2),te={weekdays:"WWW"},_=d(!1),b=d([]),y=d([]),I=d(new Date),re={month:I.value.getMonth()+1,year:I.value.getFullYear()};he("not_reserved",t=>{if(!t)return!0;const e=u(t).format("YYYY-MM-DD");return b.value.some(l=>u(l).format("YYYY-MM-DD")===e)?"Für das ausgewählte Datum liegt bereits eine Reservierung vor":!0});const F=ne(),B=d(null),k=d(!1),H=d(!1),V=d("Fehler beim Laden der Reservierungsdaten"),N=d(""),x=d(!1),Y=d("Reservierungsdaten erfolgreich geladen"),E=d("");async function ae(){var t;if(!F){_.value=!1;return}try{const e=await $fetch(`${tt}?branchenId=${F}`,{timeout:j});if((t=e==null?void 0:e.results[0])!=null&&t.id)B.value=e.results[0].id;else throw new Error("Hallen ID not found");_.value=!0}catch{_.value=!1}}async function se(){try{const t=await $fetch(`${et}?halle=${B.value}`,{timeout:j});if(!(t!=null&&t.reserved_dates))throw new Error("No reserved dates found");y.value=t.reserved_dates;const e=y.value.filter(n=>n.status==="accepted"||n.status==="blocked");b.value=e.flatMap(n=>[n.datum])}catch{y.value=[],b.value=[]}}ge(async()=>{await ae(),k.value=!0,_.value&&await se(),k.value=!1});function ne(){const t=Z.params.route,n=(Array.isArray(t)?t:[t]).find(l=>l.includes("id_"));if(n){const l=n.match(/id_(\d+)/);if(l&&l[1])return parseInt(l[1],10)}return null}function le(){x.value=!1,H.value=!1,X()}async function ie(){try{if(b.value.includes(i.value.datum)){const t=new Error("Für das ausgewählte Datum liegt bereits eine Reservierung vor. Bitte wählen Sie ein anderes Datum aus.");throw t.status=409,t}await $fetch(rt,{method:"POST",body:{field_6401:i.value.name,field_6405:i.value.strasse,field_6406:i.value.hausnummer,field_6408:i.value.ort,field_6407:i.value.plz,field_6409:i.value.email,field_6410:i.value.telefon,field_6404:i.value.datum,field_6402:[B.value],field_6417:i.value.vor_nachbereitung||"Keine",field_6416:i.value.kueche&&i.value.kueche.length&&i.value.kueche[0]||!1,field_6414:"Gewerblich, Verein, Kirche",field_6415:i.value.name_veranstalter,field_6427:i.value.registernummer,field_6413:i.value.veranstaltung,field_6418:i.value.abweichender_nutzer}}),Y.value="Vielen Dank für Ihre Anfrage",E.value=`Ihre Anfrage (${u(i.value.datum).format("LL")}) ist bei uns eingegangen. Wir werden Ihre Anfrage umgehend bearbeiten. AnschlieÃend erhalten Sie eine zusätzliche Bestätigungsmail von uns.`,x.value=!0}catch(t){H.value=!0,t.status===409?(V.value="Ihr gewünschter Reservierungstag ist bereits belegt",N.value="Leider ist Ihr gewünschter Tag bereits belegt. Bitte überprüfen Sie den Verfügbarkeitskalender und wählen Sie ein anderes Datum."):(V.value="Leider ist ein Fehler aufgetreten",N.value="Wir werden versuchen den Fehler schnellstmöglich zu beheben. Probieren Sie es später erneut.")}}function oe(t){const e=t.start?u.utc(t.start):null,n=t.end?u.utc(t.end):null;return!e||!n||!e.isValid()||!n.isValid()?null:e.isSame(n,"day")?`${e.format("HH:mm")} â ${n.format("HH:mm")}`:`${e.format("DD.MM. HH:mm")} â ${n.format("DD.MM. HH:mm")}`}function ue(t){var n;
1const e=t.map(oe).filter(Boolean);if(e.length===0){const l=(n=t[0])==null?void 0:n.zeitraum;return l?[l]:[]}return e.map(l=>`${l} Uhr`)}const de=$(()=>{const t=y.value.filter(r=>r.status!=="pending"),e=new Map;for(const r of t){const c=u(r.datum).toISOString();e.has(c)||e.set(c,[]),e.get(c).push(r)}const n=[];for(const[r,c]of e){const f=c.find(M=>M.status==="accepted"),D=f?"Reserviert":"Blockiert",z=f?f.zeitraum?[f.zeitraum]:[]:ue(c),g=[D,...z].filter(Boolean).join(" | ");n.push({key:f?`accepted-${r}`:`blocked-${r}`,dates:[r],bar:"red",customData:{title:D,lines:z},popover:{label:g}})}const l=new Set(t.map(r=>u(r.datum).format("YYYY-MM-DD"))),p=[],h=u(),A=u().add(360,"days");for(let r=h;r.isBefore(A);r.add(1,"day")){const c=r.format("YYYY-MM-DD");l.has(c)||p.push(r.toISOString())}return p.length>0&&n.push({key:"normal-days",dates:p,bar:"green",customData:{title:"Verfügbar",lines:[]},popover:{label:"Verfügbar"}}),n}),ce=$(()=>R.options.privacyLink||"/de/datenschutz/"),L=$(()=>R.options.privacyEmail||U.public.formReceiverKontaktGemeinde);return(t,e)=>{const n=me,l=be,p=we,h=ye,A=xe,r=De,c=ze,f=ke,D=$e;return k.value?(v(),q(n,{key:0})):_.value?(v(),q(h,{key:1,spacing:"md"},{default:o(()=>[a(h,{spacing:"md"},{default:o(()=>[a(l,{size:"2xl"},{default:o(()=>e[0]||(e[0]=[m("Verfügbarkeitskalender")])),_:1}),a(p,{size:"md"},{default:o(()=>e[1]||(e[1]=[m(" Ãber unseren Verfügbarkeitskalender können Sie sehen, an welchen Tagen die Halle bereits belegt ist und an welchen Tagen sie noch frei ist. ")])),_:1})]),_:1}),a(w(Ie),{"min-date":I.value,"max-date":w(u)().add(360,"days").toDate(),"initial-page":re,expanded:"",masks:te,transparent:!0,attributes:de.value,columns:ee.value,"disabled-dates":b.value,locale:"de-DE"},{"day-popover":o(({attributes:z})=>[s("div",Be,[(v(!0),S(O,null,P(z,g=>{var M,T,C;return v(),S("div",{key:g.key,class:"flex flex-col"},[s("div",He,W(((M=g.customData)==null?void 0:M.title)||((T=g.popover)==null?void 0:T.label)),1),(v(!0),S(O,null,P(((C=g.customData)==null?void 0:C.lines)||[],K=>(v(),S("div",{key:K},W(K),1))),128))])}),128))])]),_:1},8,["min-date","max-date","attributes","columns","disabled-dates"]),a(A),a(h,null,{default:o(()=>[a(l,{size:"2xl"},{default:o(()=>e[2]||(e[2]=[m("Reservierungsformular")])),_:1}),a(p,{size:"md"},{default:o(()=>e[3]||(e[3]=[m(" Sie möchten "),s("strong",null,"für Ihr Unternehmen",-1),m(" diese Halle buchen? Füllen Sie das Formular aus und wir werden Ihre Anfrage schnellstmöglich bearbeiten. ")])),_:1})]),_:1}),s("div",Ve,[a(D,{success:x.value,error:H.value,"success-message":Y.value,"success-description":E.value,"error-message":V.value,"error-description":N.value,name:"buchungsformular",onSubmit:ie},{default:o(()=>[s("div",Ne,[s("div",Ae,[a(r,{type:"text",label:"Name *",placeholder:"Max Mustermann",name:"name",rules:"required","error-display-name":"Name"})]),s("div",qe,[a(r,{type:"email",label:"E-Mail *",placeholder:"[email protected]",name:"email",rules:"required|email","error-display-name":"E-Mail Adresse"})]),s("div",Re,[a(r,{type:"text",label:"Telefon- / Handynummer *",placeholder:"01234 567890",description:"Benötigen wir um Sie bei Rückfragen erreichen zu können",name:"telefon",rules:"required","error-display-name":"Telefon- / Handynummer"})]),s("div",Fe,[a(r,{type:"text",label:"StraÃe *",placeholder:"MusterstraÃe",name:"strasse",rules:"required","error-display-name":"StraÃe"})]),s("div",Ye,[a(r,{type:"text",label:"Hausnummer *",placeholder:"12",name:"hausnummer","error-display-name":"Hausnummer",rules:"required"})]),s("div",Ee,[a(r,{type:"text",label:"Ort *",placeholder:"LoÃburg",name:"ort",rules:"required","error-display-name":"Ort"})]),s("div",Le,[a(r,{type:"text",label:"PLZ *",placeholder:"72290",name:"plz",rules:"required","error-display-name":"Postleitzahl"})]),s("div",Te,[a(r,{type:"text",label:"Name des Unternehmens / der Organisation *",placeholder:"Musterfirma",name:"name_veranstalter",rules:"required","error-display-name":"Name des Unternehmens / der Organisation"})]),s("div",Ce,[a(r,{type:"text",label:"Registernummer *",placeholder:"z.B. HRB 12345",name:"registernummer",description:"z.B. Handelsregisternummer, Vereinsregisternummer","error-display-name":"Registernummer",rules:"required"})]),s("div",Ke,[a(r,{type:"text",label:"Art der Veranstaltung *",placeholder:"z.B. Firmenveranstaltung",name:"veranstaltung","error-display-name":"Art der Veranstaltung",rules:"required"})]),s("div",Oe,[a(r,{type:"text",label:"Abweichender Nutzer",placeholder:"",name:"abweichender_nutzer",description:"Falls der Nutzer nicht der Veranstalter ist"})]),s("div",Pe,[a(r,{type:"checkbox",label:"Wird die Küche benötigt?",options:[{label:"Ja, wir möchten die Küche nutzen",value:!0}],name:"kueche"})]),s("div",We,[a(l,{id:"headline-begin",size:"xl",class:"rfs-text-xl my-4 w-full p-2"},{default:o(()=>e[4]||(e[4]=[m(" Wählen Sie den Tag ")])),_:1}),s("div",Je,[a(c,{id:"notification",icon:"info",variant:"info",closeable:!1,size:"xl",class:""},{default:o(()=>e[5]||(e[5]=[m(" Eine Reservierung wird erst nach Abschluss eines Ãberlassungsvertrags verbindlich! ")])),_:1})]),s("div",je,[a(r,{type:"date",label:"Datum *",name:"datum",min:w(u)().add(1,"days").format("yyyy-MM-DD"),value:w(u)().add(1,"days").format("yyyy-MM-DD"),description:"Wann möchten Sie die Halle reservieren?",rules:`required|min_date:${w(u)().add(1,"days").format("yyyy-MM-DD")}|not_reserved`,"error-display-name":"Datum"},null,8,["min","value","rules"])]),s("div",Ge,[a(r,{type:"select",label:"Benötigen Sie Zeit für die Vor- und Nachbereitung?",name:"vor_nachbereitung",options:[{text:"Nein, wird nicht benötigt",value:"Keine"},{text:"Ja, Vorbereitungszeit",value:"Vorbereitung"},{text:"Ja, Nachbereitungszeit",value:"Nachbereitung"},{text:"Ja, Vor- und Nachbereitungszeit",value:"Vor- und Nachbereitung"}],description:"Falls Sie Zeit für die Vor- oder Nachbereitung benötigen, wird die Halle für Sie entsprechend länger reserviert"})])])]),a(l,{id:"headline-3",size:"xl",class:"my-4"},{default:o(()=>e[6]||(e[6]=[m(" Datenschutzerklärung ")])),_:1}),s("div",Ue,[s("div",Ze,[a(r,{type:"checkbox",label:`Ja, ich habe die <a href='${ce.value}' target='_blank' rel='noopener'>DatenschutzÂerklärung</a> zur Kenntnis genommen und bin damit einverstanden, dass die von mir angegebenen Daten elektronisch erhoben und gespeichert werden. Meine Daten werden dabei nur streng zweckgebunden zur Bearbeitung und Beantwortung meiner Anfrage genutzt. Ich kann meine Einwilligung jederzeit per E-Mail an <a href='mailto:${L.value}'>${L.value}</a> widerrufen.`,name:"datenschutz",class:"rfs-text-sm",rules:"required"},null,8,["label"])])]),e[8]||(e[8]=s("hr",{class:""},null,-1)),s("div",Xe,[s("div",Qe,[a(f,{"is-loading":k.value,type:"submit"},{default:o(()=>
1e[7]||(e[7]=[m(" Halle reservieren ")])),_:1},8,["is-loading"])])])]),_:1},8,["success","error","success-message","success-description","error-message","error-description"])]),a(h,{spacing:"md"},{default:o(()=>[x.value?(v(),q(p,{key:0},{default:o(()=>[a(f,{onClick:_e(le,["prevent"])},{default:o(()=>e[9]||(e[9]=[m("Zurück zum Formular")])),_:1})]),_:1})):J("",!0)]),_:1})]),_:1})):J("",!0)}}});export{mt as default}; 2//# sourceMappingURL=BEsZ62GU.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.