1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["Button.js","Element.js","swiper.js","Checkbox.js","Custom.js","Date.js","Email.js","File.js","Hidden.js","Number.js","Password.js","Radio.js","Select.js","Submit.js","Text.js","Textarea.js","Time.js"])))=>i.map(i=>d[i]); 2import{_ as O,I as T,J as R,K as o,s as P}from"./app.js";const F=Object.freeze({action:"",elements:[],identifier:"",method:""}),L=Object.freeze({attributes:{},id:"",callback:()=>{},label:"",options:[],placeholder:"",required:!1,type:"",value:""}),S="button",w="checkbox",V="custom",v="date",C="email",A="file",k="hidden",I="number",N="password",U="radio",B="select",Y="submit",q="text",x="textarea",z="time",d="idle",E="preparing",h="uploading",M="sent",m="error",n=window.Vue.defineAsyncComponent,H={[S]:n(()=>o(()=>import("./Button.js"),__vite__mapDeps([0,1,2]))),[w]:n(()=>o(()=>import("./Checkbox.js"),__vite__mapDeps([3,1,2]))),[V]:n(()=>o(()=>import("./Custom.js"),__vite__mapDeps([4,1,2]))),[v]:n(()=>o(()=>import("./Date.js"),__vite__mapDeps([5,1,2]))),[C]:n(()=>o(()=>import("./Email.js"),__vite__mapDeps([6,1,2]))),[A]:n(()=>o(()=>import("./File.js"),__vite__mapDeps([7,1,2]))),[k]:n(()=>o(()=>import("./Hidden.js"),__vite__mapDeps([8,1,2]))),[I]:n(()=>o(()=>import("./Number.js"),__vite__mapDeps([9,1,2]))),[N]:n(()=>o(()=>import("./Password.js"),__vite__mapDeps([10,1,2]))),[U]:n(()=>o(()=>import("./Radio.js"),__vite__mapDeps([11,1,2]))),[B]:n(()=>o(()=>import("./Select.js"),__vite__mapDeps([12,1,2]))),[Y]:n(()=>o(()=>import("./Submit.js"),__vite__mapDeps([13,1,2]))),[q]:n(()=>o(()=>import("./Text.js"),__vite__mapDeps([14,1,2]))),[x]:n(()=>o(()=>import("./Textarea.js"),__vite__mapDeps([15,1,2]))),[z]:n(()=>o(()=>import("./Time.js"),__vite__mapDeps([16,1,2])))},j={name:"CmmsForm",props:{form:{type:Object,required:!0,default:F},targetUrl:{type:String,default:null}},data(){return{abortController:new AbortController,errorFields:[],formData:{},nonce:null,status:d,uploadProgress:0,submitSuccessMessage:null,submitErrorMessage:null,skipElementWatch:!0}},computed:{elements(){const s=[];return this.form.elements.constructor!==Array||(this.skipElementWatch=!0,this.form.elements.forEach(e=>{var _,a,r;let i=!1;(a=(_=e.conditions)==null?void 0:_.show)!=null&&a.length&&e.conditions.show.forEach(t=>{t.equals&&this.formData[t.id]!==t.equals&&(i=!0)}),(r=e.conditions)!=null&&r.required&&!e.required&&e.conditions.required.forEach(t=>{t.equals&&this.formData[t.id]===t.equals&&(e.required=!0)}),i||s.push(Object.assign({},L,e))}),this.$nextTick(()=>{this.skipElementWatch=!1})),s},isDone(){return this.status===M},isErrored(){return this.status===m},isSending(){return this.status===E||this.status===h},isUploading(){return this.status===h},errorMessage(){return this.submitErrorMessage?this.submitErrorMessage:"Ein Fehler ist aufgetreten, bitte versuchen Sie es noch einmal und prüfen Sie Ihre Eingaben."},successMessage(){return this.submitSuccessMessage?this.submitSuccessMessage:"Ihre Daten wurden erfolgreich übermittelt"}},watch:{elements:{deep:!0,handler(){this.skipElementWatch||this.updateFormDataBase()}}},methods:{abort(){this.abortController.abort(),this.status=d},elementComponent(s){return H[s.type]||!1},elementHasError(s){return this.errorFields[s]},getNonce(){T.post("/cmms-api/v3/contact_form/get_nonce/",{form_id:this.form.identifier}).then(({nonce:s})=>{s&&(this.nonce=s)}).catch(()=>{console.error("[CmmsForm] Could not retrieve nonce"),this.status=m})},retry(){this.status=d,this.getNonce()},submit(){this.uploadProgress=0,this.status=E,this.submitSuccessMessage=this.submitErrorMessage=null;const s=new FormData;for(const e in this.formData)this.formData[e]!==null&&s.append(e,this.formData[e]);s.append("nonce","".concat(this.form.identifier,".").concat(this.nonce)),T.request({data:s,method:this.form.method,onUploadStart:()=>{this.status=h},onUploadProgress:(e,i)=>{const _=e/i;_>=1?(this.status=E,this.uploadProgress=0):this.uploadProgress=_},signal:this.abortController.signal,url:this.form.action}).then(({success:e,successMessage:i,errors:_,errorMessage:a})=>{e?(this.targetUrl&&R.push(this.targetUrl),this.status=M,i&&(this.submitSuccessMessage=i)):(this.status=m,this.errorFields=_||[],this.submitErrorMessage=a)}).catch(e=>{console.error("[CmmsForm] Could not submit data",e),this.status=m}).finally(()=>{this.$emit("form-sent",this.status,this.formData)}),this.nonce=null},updateFormDataBase(){const s=[];
2this.elements.forEach(e=>{var i,_;e.id&&(s.push(e.id),e.type===w?this.formData[e.id]=(i=e.checked)!=null?i:!1:this.formData[e.id]=(_=e.value)!=null?_:null)}),Object.keys(this.formData).forEach(e=>{s.includes(e)||delete this.formData[e]})}},beforeMount(){this.updateFormDataBase()},mounted(){this.getNonce()}},l=window.Vue.createElementVNode,W=window.Vue.normalizeStyle,g=window.Vue.normalizeClass,p=window.Vue.withModifiers,u=window.Vue.openBlock,c=window.Vue.createElementBlock;window.Vue.createCommentVNode;const X=window.Vue.toDisplayString,G=window.Vue.renderList,K=window.Vue.Fragment,J=window.Vue.resolveDynamicComponent,Q=window.Vue.createBlock,Z={key:0,class:"cmms_form --sending"},$={key:1,class:"cmms_form --error"},ee=["innerHTML"],te={key:2,class:"cmms_form --success"},se={key:0},re=["innerHTML"];function oe(s,e,i,_,a,r){return r.isSending?(u(),c("div",Z,[e[4]||(e[4]=l("p",null,"Bitte warten, Ihre Daten werden übermittelt",-1)),l("div",{class:g(["cmms_form__sending__progress",r.isUploading?"--uploading":""])},[l("div",{class:"cmms_form__sending__progress__bar",style:W({width:"".concat(a.uploadProgress*100,"%")})},null,4)],2),l("p",null,[l("span",{class:"button",onClick:e[0]||(e[0]=p((...t)=>r.abort&&r.abort(...t),["stop"]))},[...e[3]||(e[3]=[l("span",{class:"button__label"},[l("span",{class:"button__text"},"Abbrechen")],-1)])])])])):r.isErrored?(u(),c("div",$,[l("p",{innerHTML:r.errorMessage},null,8,ee),l("p",null,[l("span",{class:"button",onClick:e[1]||(e[1]=p((...t)=>r.retry&&r.retry(...t),["stop"]))},[...e[5]||(e[5]=[l("span",{class:"button__label"},[l("span",{class:"button__text"},"Erneut versuchen")],-1)])])])])):r.isDone?(u(),c("div",te,[a.submitSuccessMessage===null?(u(),c("p",se,X(r.successMessage),1)):(u(),c("div",{key:1,innerHTML:a.submitSuccessMessage},null,8,re))])):(u(),c("form",{key:3,class:"idvl-contactform cmms_form",onSubmit:e[2]||(e[2]=p((...t)=>r.submit&&r.submit(...t),["prevent"]))},[(u(!0),c(K,null,G(r.elements,t=>{var f;return u(),Q(J(r.elementComponent(t)),{key:t.id,element:t,class:g((f=t==null?void 0:t.attributes)==null?void 0:f.class),error:r.elementHasError(t.id),disabled:!a.nonce||t.protected,modelValue:a.formData[t.id],"onUpdate:modelValue":y=>a.formData[t.id]=y},null,8,["element","class","error","disabled","modelValue","onUpdate:modelValue"])}),128))],32))}const b=O(j,[["render",oe]]),ne={name:"StructuredForm",components:{CmmsForm:b},props:["element"],data(){return{}},computed:{elementClasses(){const s=["element",this.element.type,"soylent","form"];return this.element.display_type&&s.push(this.element.display_type),this.element.display_subtype&&s.push(this.element.display_subtype),s},formDefinition(){return"data"in this.element&&"form"in this.element.data?this.element.data.form:{}},formComponent(){return P.getByName("cmmsForm",b)},targetUrl(){return this.element.data.target_url?this.element.data.target_url:null}}},ie=window.Vue.resolveDynamicComponent,D=window.Vue.openBlock,_e=window.Vue.createBlock,ae=window.Vue.normalizeClass,le=window.Vue.createElementBlock;function ue(s,e,i,_,a,r){return D(),le("div",{class:ae(r.elementClasses)},[(D(),_e(ie(r.formComponent),{form:r.formDefinition,targetUrl:r.targetUrl},null,8,["form","targetUrl"]))],2)}const ce=O(ne,[["render",ue]]),de=Object.freeze(Object.defineProperty({__proto__:null,default:ce},Symbol.toStringTag,{value:"Module"}));export{L as F,de as S};
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.