import"./index-4b46c3db.js";import{_ as C,c as l,w as c,r,o as m,j as f,d as s,k as B,e as n,I as F,M}from"./index-be2d4151.js";import"./InfoButton.vue_vue_type_style_index_0_scoped_635db2d1_lang-ea4dfeb4.js";import{C as S}from"./CloseButton-91fa6b44.js";import{S as k}from"./SubmitButton-1d5ea630.js";import{U as E}from"./UpdateButton-331adda6.js";import{F as V}from"./index-5f541e4d.js";import{F as T}from"./default-f38ac8a4.js";import{T as R}from"./index-9c004d68.js";import{T as q}from"./index-5600e357.js";import{L as I}from"./Loading-c46365ec.js";import{B as h}from"./BrandService-b147be33.js";import{M as L}from"./Multiselect-89305a7f.js";import{c as U,a as _,V as D}from"./array-9fca5ec5.js";import"./transition-4fc77ecd.js";import"./vue-cleave.min-19d21cac.js";const N={components:{FormModal:V,FormGroup:T,TextInput:R,TextArea:q,SubmitButton:k,UpdateButton:E,CloseButton:S,Loading:I,Multiselect:L},data(){return{form:{name:"",description:""},errors:{},state:{isEdit:!1,isSaving:!1,isLoading:!1}}},methods:{loadRecord(o){this.resetForm(),this.state.isEdit=!0;let e=Object.assign({},o);e.bus_type=e.bus_type?e.bus_type.toLowerCase():e.bus_type,this.form=e},closeModal(){this.state.showModal=!1},resetForm(){this.state.isEdit=!1,this.form={name:"",description:""}},reload(){this.$emit("reload")},async saveRecord(){if(this.state.isSaving=!0,!this.state.isEdit)this.state.isSaving=!1,await h.create(this.form).then(o=>{o.status==201&&(this.$swal.fire({title:"Great!",text:"Record successfully saved.",icon:"success",timer:2e3}),this.state.showModal=!1)}).catch(o=>{this.$swal.fire({title:"Ooops! something is wrong.",text:"Please contact system administrator",icon:"error",timer:2e3})});else{const o=this.form.id;await h.update(o,this.form).then(e=>{e.status==201?this.state.showModal=!1:(this.$swal.fire({title:"Ooops! something is wrong.",text:"Please contact system administrator",icon:"error",timer:2e3}),this.state.showModal=!1)}).catch(e=>{console.log(e),e.response.status==422?this.$swal.fire({title:"Ooops! something is wrong.",text:e.response.data.message,icon:"warning"}):this.$swal.fire({title:"Ooops! something is wrong.",text:"Please contact system administrator",icon:"error",timer:2e3})}).finally(()=>{this.state.isSaving=!1,this.reload()})}},async submitForm(){try{await U().shape({name:_().required("Name is required"),description:_().required("Description is required")}).validate(this.form,{abortEarly:!1}),this.$swal.fire({title:"Are you sure you want to save this record?",text:"",icon:"question",showCancelButton:!0,confirmButtonColor:"#34c38f",cancelButtonColor:"#f46a6a",confirmButtonText:"Yes",cancelButtonText:"No"}).then(e=>{e.value&&this.saveRecord()})}catch(o){if(o instanceof D){const e={};o.inner.forEach(d=>{e[d.path]=d.message}),this.errors=e}this.state.isSaving=!1}}},Validating(o){console.log(o)},mounted(){}},A={class:"lg:p-2"},O=["error"],G=s("option",null,null,-1),j=s("option",{value:"allied"},"Allied",-1),P=s("option",{value:"dealership"},"Dealership",-1),z=s("option",{value:"distributor"},"Distributor",-1),Y=[G,j,P,z],H={class:"flex gap-1 justify-end"};function J(o,e,d,K,t,i){const p=r("Loading"),g=r("TextInput"),u=r("FormGroup"),b=r("TextArea"),w=r("SubmitButton"),y=r("UpdateButton"),v=r("CloseButton"),x=r("FormModal");return m(),l(x,{title:t.state.isEdit?"Edit Record":"Create Record",active:t.state.showModal,onSubmit:i.submitForm,onClose:i.closeModal,themeClass:t.state.isEdit?"bg-primary-600":"bg-primary-800",sizeClass:"lg:w-1/2"},{default:c(()=>[t.state.isEdit&&t.state.isLoading?(m(),l(p,{key:0,text:"Fetching record"})):f("",!0),t.state.isSaving?(m(),l(p,{key:1,text:"Saving record"})):f("",!0),s("div",A,[s("form",{onSubmit:e[3]||(e[3]=B((...a)=>i.submitForm&&i.submitForm(...a),["prevent"])),class:"space-y-4"},[n(u,{label:"Name",isRequired:!0},{default:c(()=>[n(g,{type:"text",placeholder:"Input name ",modelValue:t.form.name,"onUpdate:modelValue":e[0]||(e[0]=a=>t.form.name=a),error:t.errors.name,classInput:"h-[48px]"},null,8,["modelValue","error"])]),_:1}),n(u,{label:"Description",isRequired:!0},{default:c(()=>[n(b,{placeholder:"Input description",modelValue:t.form.description,"onUpdate:modelValue":e[1]||(e[1]=a=>t.form.description=a),error:t.errors.description},null,8,["modelValue","error"])]),_:1}),n(u,{label:"Business Type"},{default:c(()=>[s("div",null,[F(s("select",{placeholder:"Select ...","onUpdate:modelValue":e[2]||(e[2]=a=>t.form.bus_type=a),error:t.errors.bus_type,class:"w-full h-[48px] bg-transparent p-2 border border-slate-300 rounded"},Y,8,O),[[M,t.form.bus_type]])])]),_:1}),s("div",H,[t.state.isEdit?(m(),l(y,{key:1,onClick:i.submitForm},null,8,["onClick"])):(m(),l(w,{key:0,onClick:i.submitForm},null,8,["onClick"])),n(v,{onClick:i.closeModal},null,8,["onClick"])])],32)])]),_:1},8,["title","active","onSubmit","onClose","themeClass"])}const de=C(N,[["render",J]]);export{de as default};