3 lines
7.7 KiB
JavaScript
3 lines
7.7 KiB
JavaScript
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/TextBlock-C6erClxS.js","assets/app-CBssobj-.js","assets/app-DChzJ_Ea.css","assets/_plugin-vue_export-helper-DlAUqK2U.js","assets/PhoneBlock-vU16TdOR.js","assets/EmailBlock-Cbj5wFPK.js","assets/TextAreaBlock-DkHjNvJF.js","assets/MultipleChoiceBlock-CrWoZ9rQ.js","assets/SingleChoiceBlock-DJ3-3dBh.js","assets/DateBlock-B5Hbafqw.js"])))=>i.map(i=>d[i]);
|
|
import"./SearchModal-BTKERLZv.js";import"./v3-DnjJww8i.js";import{_ as m}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as a,b as o,t as u,h as f,q as y,j as p,r as _,F as g,d as w,e as v,k as E,a as b,w as B,f as D,T as F,_ as n,i as T}from"./app-CBssobj-.js";const S={name:"SubmitBlock",methods:{},props:{block:{type:Object}}},N={class:"mt-6 grid"},$={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 A(t,e,r,l,s,d){return i(),a("div",N,[o("button",$,u(r.block),1)])}const C=m(S,[["render",A]]),z={name:"SuccessNotification",data(){return{}},props:{text:{type:String,default:"Успех!"}}},R={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"},V={class:"flex"},j={class:"ms-2"},I={id:"hs-dismiss-button-label",class:"text-sm font-medium"};function O(t,e,r,l,s,d){return i(),a("div",R,[o("div",V,[e[0]||(e[0]=o("div",{class:"shrink-0"},[o("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"},[o("path",{d:"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z"}),o("path",{d:"m9 12 2 2 4-4"})])],-1)),o("div",j,[o("h3",I,u(r.text),1)]),e[1]||(e[1]=f('<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 P=m(z,[["render",O]]),L={name:"FormBuilder",components:{SuccessNotification:P,SubmitBlock:C},data(){return{formData:{},errors:null,success:!1,message:null}},methods:{getComponent(t){return y({text:()=>n(()=>import("./TextBlock-C6erClxS.js"),__vite__mapDeps([0,1,2,3])),phone:()=>n(()=>import("./PhoneBlock-vU16TdOR.js"),__vite__mapDeps([4,3,1,2])),email:()=>n(()=>import("./EmailBlock-Cbj5wFPK.js"),__vite__mapDeps([5,3,1,2])),textarea:()=>n(()=>import("./TextAreaBlock-DkHjNvJF.js"),__vite__mapDeps([6,1,2,3])),multiple_choice:()=>n(()=>import("./MultipleChoiceBlock-CrWoZ9rQ.js"),__vite__mapDeps([7,3,1,2])),single_choice:()=>n(()=>import("./SingleChoiceBlock-DJ3-3dBh.js"),__vite__mapDeps([8,3,1,2])),date:()=>n(()=>import("./DateBlock-B5Hbafqw.js"),__vite__mapDeps([9,3,1,2]))}[t]||null)},submitForm(t){t.preventDefault(),this.formData=this.getFormData(t.target.elements),this.sendDataToServer()},getFormData(t){const e={};for(let r=0;r<t.length;r++){const l=t[r];if(l.tagName==="INPUT"||l.tagName==="TEXTAREA"){const s=this.normalizeFieldName(l.name);l.tagName==="INPUT"?l.type==="checkbox"?this.handleCheckbox(e,s,l):s&&s!=="choices"&&(e[s]=l.value):l.tagName==="TEXTAREA"&&(e[s]=l.value)}}return e},normalizeFieldName(t){return t.endsWith("[]")?t.slice(0,-2):t},handleCheckbox(t,e,r){t[e]||(t[e]=[]),r.checked&&t[e].push(r.value)},sendDataToServer(){p.post(route("client.widget.form.submit",this.blocks.data.id),this.formData).then(this.handleResponse).catch(this.handleError)},handleResponse(t){t.data.status==="ok"&&(this.success=!0,this.message=t.data.message,this.errors=null)},handleError(t){this.errors=t.response.data||["Неизвестная ошибка"],this.success=!1}},props:{blocks:{type:Object}}},M={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"},U={class:"flex"},X={class:"ms-3"},q={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"},G={class:"mx-auto max-w-2xl"},H={class:"text-center"},J={class:"text-xl text-gray-800 font-bold sm:text-3xl"},K={class:"mt-5 p-4 relative z-1000 bg-white border rounded-xl sm:mt-10 md:p-10"};function Q(t,e,r,l,s,d){const h=_("SubmitBlock"),x=_("SuccessNotification");return i(),a(g,null,[s.success?(i(),a("div",M,[o("div",U,[e[2]||(e[2]=f('<div class="shrink-0" data-v-11318db0><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-11318db0><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-11318db0><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-11318db0></path><path d="m9 12 2 2 4-4" data-v-11318db0></path></svg></span></div>',1)),o("div",X,[e[1]||(e[1]=o("h3",{id:"hs-bordered-success-style-label",class:"text-gray-800 font-semibold dark:text-white"}," Успешно отправлено! ",-1)),o("p",q,u(s.message),1)])])])):(i(),a("div",W,[o("div",G,[o("div",H,[o("h2",J,u(r.blocks.data.title),1)]),o("div",K,[o("form",{onSubmit:e[0]||(e[0]=(...c)=>d.submitForm&&d.submitForm(...c))},[(i(!0),a(g,null,w(r.blocks.data.columns,(c,k)=>(i(),v(E(d.getComponent(c.type)),{key:k,block:c,error:s.errors&&s.errors[c.data.name_field]?s.errors[c.data.name_field]:null},null,8,["block","error"]))),128)),b(h,{block:r.blocks.data.button},null,8,["block"])],32)])])])),b(F,{name:"fade"},{default:B(()=>[s.success?(i(),v(x,{key:0,text:s.message},null,8,["text"])):D("",!0)]),_:1})],64)}const Y=m(L,[["render",Q],["__scopeId","data-v-11318db0"]]),Z={name:"FormBlock",components:{FormBuilder:Y,axios:p,Link:T},data(){return{form:null,loading:!0}},methods:{getForm(t){p.get(route("client.widget.form.single",t)).then(e=>{this.form=e.data,this.loading=!1}).catch(e=>{console.error("Ошибка:",e)})}},mounted(){this.getForm(this.block.data.form)},props:{block:{type:Object}}},ee={key:0,class:"flex flex-col space-y-4"},te={key:1};function se(t,e,r,l,s,d){const h=_("FormBuilder");return s.loading?(i(),a("div",ee,e[0]||(e[0]=[f('<div class="flex animate-pulse"><div class="shrink-0 relative rounded-xl overflow-hidden w-full sm:w-56 h-44"><div class="bg-gray-200 group-focus:scale-105 transition-transform duration-500 ease-in-out size-full absolute top-0 start-0 object-cover rounded-xl"></div></div><div class="ms-4 mt-2 w-full"><p class="h-4 bg-gray-200 rounded-full" style="width:40%;"></p><ul class="mt-5 space-y-3 flex flex-col"><li class="w-full h-4 bg-gray-200 rounded-full"></li><li class="w-full h-4 bg-gray-200 rounded-full"></li><li class="w-full h-4 bg-gray-200 rounded-full"></li><li class="w-full h-4 bg-gray-200 rounded-full"></li><li class="w-20 h-4 bg-gray-200 rounded-full"></li></ul></div></div>',1)]))):(i(),a("div",te,[b(h,{blocks:s.form},null,8,["blocks"])]))}const ae=m(Z,[["render",se]]);export{ae as default};
|