3 lines
6.8 KiB
JavaScript
3 lines
6.8 KiB
JavaScript
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/TextBlock-DSTHvbKR.js","assets/app-lT3z3TR3.js","assets/app-CUj9x2C4.css","assets/_plugin-vue_export-helper-DlAUqK2U.js","assets/PhoneBlock-DjNxQRuU.js","assets/EmailBlock-MeTQBS96.js","assets/TextAreaBlock-BoifZNOo.js","assets/MultipleChoiceBlock-Czx-63XK.js","assets/SingleChoiceBlock--AwESBu1.js","assets/DateBlock-DoRBIzxC.js","assets/AdditionalEducationalChoiceBlock-Bz5lDp83.js","assets/EducationalChoiceBlock-CJTXyarS.js"])))=>i.map(i=>d[i]);
|
|
import{o as n,c as d,b as s,t as m,k as g,f as k,m as w,r as _,F as h,d as y,e as p,g as E,a as b,w as T,l as D,T as S,_ as i}from"./app-lT3z3TR3.js";import"./SearchModal-YI3bdWA9.js";import{_ as u}from"./_plugin-vue_export-helper-DlAUqK2U.js";const N={name:"SubmitBlock",methods:{},props:{block:{type:Object}}},A={class:"mt-6 grid"},C={type:"submit",class:"w-full py-3 px-4 inline-flex justify-center items-center gap-x-2 text-sm font-medium rounded-lg border border-transparent bg-blue-600 text-white hover:bg-blue-700 focus:outline-none focus:bg-blue-700 disabled:opacity-50 disabled:pointer-events-none"};function B(e,t,r,a,o,c){return n(),d("div",A,[s("button",C,m(r.block),1)])}const R=u(N,[["render",B]]),V={name:"SuccessNotification",data(){return{}},props:{text:{type:String,default:"Успех!"}}},F={id:"dismiss-alert",class:"fixed bottom-10 left-3 right-3 md:w-[500px] md:left-auto md:right-5 z-10000 hs-removing:translate-x-5 hs-removing:opacity-0 transition duration-300 bg-teal-50 border border-teal-200 text-sm text-teal-800 rounded-lg p-4",role:"alert",tabindex:"-1","aria-labelledby":"hs-dismiss-button-label"},I={class:"flex"},L={class:"ms-2"},P={id:"hs-dismiss-button-label",class:"text-sm font-medium"};function O(e,t,r,a,o,c){return n(),d("div",F,[s("div",I,[t[0]||(t[0]=s("div",{class:"shrink-0"},[s("svg",{class:"shrink-0 size-4 mt-0.5",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[s("path",{d:"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z"}),s("path",{d:"m9 12 2 2 4-4"})])],-1)),s("div",L,[s("h3",P,m(r.text),1)]),t[1]||(t[1]=g('<div class="ps-3 ms-auto"><div class="-mx-1.5 -my-1.5"><button type="button" class="inline-flex bg-teal-50 rounded-lg p-1.5 text-teal-500 hover:bg-teal-100 focus:outline-none focus:bg-teal-100" data-hs-remove-element="#dismiss-alert"><span class="sr-only">Dismiss</span><svg class="shrink-0 size-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></div></div>',1))])])}const z=u(V,[["render",O]]),j={name:"FormBuilder",components:{SuccessNotification:z,SubmitBlock:R},data(){return{formData:{},errors:null,success:!1,message:null}},methods:{getComponent(e){return k({text:()=>i(()=>import("./TextBlock-DSTHvbKR.js"),__vite__mapDeps([0,1,2,3])),phone:()=>i(()=>import("./PhoneBlock-DjNxQRuU.js"),__vite__mapDeps([4,3,1,2])),email:()=>i(()=>import("./EmailBlock-MeTQBS96.js"),__vite__mapDeps([5,3,1,2])),textarea:()=>i(()=>import("./TextAreaBlock-BoifZNOo.js"),__vite__mapDeps([6,1,2,3])),multiple_choice:()=>i(()=>import("./MultipleChoiceBlock-Czx-63XK.js"),__vite__mapDeps([7,3,1,2])),single_choice:()=>i(()=>import("./SingleChoiceBlock--AwESBu1.js"),__vite__mapDeps([8,3,1,2])),date:()=>i(()=>import("./DateBlock-DoRBIzxC.js"),__vite__mapDeps([9,3,1,2])),additional_education_choice:()=>i(()=>import("./AdditionalEducationalChoiceBlock-Bz5lDp83.js"),__vite__mapDeps([10,1,2,3])),educational_program_choice:()=>i(()=>import("./EducationalChoiceBlock-CJTXyarS.js"),__vite__mapDeps([11,1,2,3]))}[e]||null)},submitForm(e){e.preventDefault(),this.formData=this.getFormData(e.target.elements),this.sendDataToServer()},getFormData(e){const t={};for(let r=0;r<e.length;r++){const a=e[r];if(a.tagName==="INPUT"||a.tagName==="TEXTAREA"||a.tagName==="SELECT"){const o=this.normalizeFieldName(a.name);a.tagName==="INPUT"?a.type==="checkbox"?this.handleCheckbox(t,o,a):o&&o!=="choices"&&(t[o]=a.value):(a.tagName==="TEXTAREA"||a.tagName==="SELECT")&&(t[o]=a.value)}}return t},normalizeFieldName(e){return e.endsWith("[]")?e.slice(0,-2):e},handleCheckbox(e,t,r){e[t]||(e[t]=[]),r.checked&&e[t].push(r.value)},sendDataToServer(){w.post(route("client.widget.form.submit",this.blocks.data.id),this.formData).then(this.handleResponse).catch(this.handleError)},handleResponse(e){e.data.status==="ok"&&(this.success=!0,this.message=e.data.message,this.errors=null)},handleError(e){this.errors=e.response.data||["Неизвестная ошибка"],this.success=!1}},props:{blocks:{type:Object}}},$={key:0,class:"bg-teal-50 border-t-2 border-teal-500 rounded-lg p-4 dark:bg-teal-800/30",role:"alert",tabindex:"-1","aria-labelledby":"hs-bordered-success-style-label"},M={class:"flex"},U={class:"ms-3"},X={class:"text-sm text-gray-700 dark:text-neutral-400"},W={key:1,class:"max-w-[85rem] py-10 sm:px-6 lg:px-8 lg:py-14 mx-auto"},q={class:"mx-auto max-w-2xl"},G={class:"text-center"},H={class:"text-xl text-gray-800 font-bold sm:text-3xl"},J={class:"mt-5 p-4 relative z-1000 bg-white border rounded-xl sm:mt-10 md:p-10"};function K(e,t,r,a,o,c){const x=_("SubmitBlock"),f=_("SuccessNotification");return n(),d(h,null,[o.success?(n(),d("div",$,[s("div",M,[t[2]||(t[2]=g('<div class="shrink-0" data-v-a4691de4><span class="inline-flex justify-center items-center size-8 rounded-full border-4 border-teal-100 bg-teal-200 text-teal-800 dark:border-teal-900 dark:bg-teal-800 dark:text-teal-400" data-v-a4691de4><svg class="shrink-0 size-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-a4691de4><path d="M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z" data-v-a4691de4></path><path d="m9 12 2 2 4-4" data-v-a4691de4></path></svg></span></div>',1)),s("div",U,[t[1]||(t[1]=s("h3",{id:"hs-bordered-success-style-label",class:"text-gray-800 font-semibold dark:text-white"}," Успешно отправлено! ",-1)),s("p",X,m(o.message),1)])])])):(n(),d("div",W,[s("div",q,[s("div",G,[s("h2",H,m(r.blocks.data.title),1)]),s("div",J,[s("form",{onSubmit:t[0]||(t[0]=(...l)=>c.submitForm&&c.submitForm(...l))},[(n(!0),d(h,null,y(r.blocks.data.columns,(l,v)=>(n(),p(E(c.getComponent(l.type)),{key:v,block:l,error:o.errors&&o.errors[l.data.name_field]?o.errors[l.data.name_field]:null},null,8,["block","error"]))),128)),b(x,{block:r.blocks.data.button},null,8,["block"])],32)])])])),b(S,{name:"fade"},{default:T(()=>[o.success?(n(),p(f,{key:0,text:o.message},null,8,["text"])):D("",!0)]),_:1})],64)}const ee=u(j,[["render",K],["__scopeId","data-v-a4691de4"]]);export{ee as F};
|