bettertend/frontend/dist/assets/VendorsListView-RDXjMLTt.js

3 lines
40 KiB
JavaScript

import{r as U,c as k,l as bt,o as xt,m as Ct,i as Ce,w as C,s as wt,v as kt,g as T,b as r,d as h,e as t,F as A,n as ue,k as O,h as ge,t as I,a as F,af as Re,aR as Ae,j as B,Q as Pt,aW as Tt,ae as Oe,ba as St,aV as Ft}from"./index-QAlcqU00.js";import{V as N,a as M,P as Et,C as It,b as Ut,c as _t,d as ye,u as ke,e as E,f as we,g as Me,h as Nt}from"./vendors-C-y6J9yC.js";import{u as Rt}from"./useFormAutoSave-BrW9Wl2Q.js";import{l as At}from"./lodash-RqMXHFU9.js";import{F as Ot,a as Bt}from"./FPPageHeader-CFIwZZgQ.js";import{F as $}from"./FPInput-D5RURom0.js";import{F as re}from"./FPSelect-j7n_x8eB.js";import{F as Lt}from"./FPStats-DOY0PQQF.js";import{F as $t}from"./FPTable-CWvngIYd.js";import{F as Be}from"./FPModal-DMoPysvU.js";import{F as Le}from"./FPBadge-DvOitM1C.js";import{F as $e}from"./FPTabs-qq-Tmb7J.js";import{_ as Mt}from"./FormRestoreNotification-2Wflg1mH.js";import"./_commonjsHelpers-NT8qMgGI.js";import"./FPCard-AB6NRXg5.js";function zt(){const l=U({...ye}),d=U({}),g=U("basic"),v=[{key:"basic",label:"Basic Information",icon:"info"},{key:"contact",label:"Contact Details",icon:"phone"},{key:"business",label:"Business Details",icon:"briefcase"},{key:"settings",label:"Settings & Notes",icon:"cog"}],q=k(()=>Object.entries(N).map(([o,m])=>({label:o.split("_").map(w=>w.charAt(0).toUpperCase()+w.slice(1).toLowerCase()).join(" "),value:m}))),Q=k(()=>Object.entries(M).map(([o,m])=>({label:o.charAt(0).toUpperCase()+o.slice(1).toLowerCase(),value:m}))),Z=k(()=>Et),H=k(()=>It),W=k(()=>Ut),K=k(()=>_t),X=k(()=>Object.keys(d.value).length===0&&l.value.name&&l.value.name.trim().length>0&&l.value.type),ee=k(()=>v.findIndex(m=>m.key===g.value)===0),te=k(()=>v.findIndex(m=>m.key===g.value)===v.length-1),Y=k(()=>v.findIndex(o=>o.key===g.value)),a=k(()=>{const o=["name","type"],m=["code","contactPerson","email","phone","address.street","address.city"];let w=0,se=o.length+m.length;return o.forEach(j=>{l.value[j]&&w++}),m.forEach(j=>{if(j.includes(".")){const[ce,me]=j.split(".");l.value[ce]&&l.value[ce][me]&&w++}else l.value[j]&&w++}),Math.round(w/se*100)}),u=()=>{const o={};if(!l.value.name||l.value.name.trim().length===0?o.name="Vendor name is required":l.value.name.trim().length<2?o.name="Vendor name must be at least 2 characters":l.value.name.trim().length>100&&(o.name="Vendor name must be less than 100 characters"),l.value.code){const m=l.value.code.trim();m.length<2||m.length>20?o.code="Vendor code must be between 2 and 20 characters":/^[A-Z0-9\-_]+$/.test(m.toUpperCase())||(o.code="Vendor code can only contain letters, numbers, hyphens, and underscores")}if(l.value.type||(o.type="Vendor type is required"),l.value.email&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(l.value.email)&&(o.email="Invalid email format"),l.value.phone&&!/^[\d\s\-+()]+$/.test(l.value.phone)&&(o.phone="Invalid phone number format"),l.value.website&&!/^https?:\/\/.+/.test(l.value.website)&&(o.website="Website must start with http:// or https://"),l.value.contactPerson&&l.value.contactPerson.length>100&&(o.contactPerson="Contact person must be less than 100 characters"),l.value.taxId&&l.value.taxId.length>50&&(o.taxId="Tax ID must be less than 50 characters"),l.value.businessNumber&&l.value.businessNumber.length>50&&(o.businessNumber="Business number must be less than 50 characters"),l.value.paymentTerms&&l.value.paymentTerms.length>100&&(o.paymentTerms="Payment terms must be less than 100 characters"),l.value.rating!==null&&l.value.rating!==void 0){const m=Number(l.value.rating);(isNaN(m)||m<1||m>5)&&(o.rating="Rating must be between 1 and 5")}return l.value.notes&&l.value.notes.length>1e3&&(o.notes="Notes must be less than 1000 characters"),d.value=o,Object.keys(o).length===0},f=o=>{if(d.value[o]){const m={...d.value};delete m[o],d.value=m}},i=()=>{l.value={...ye},d.value={},g.value="basic"},b=o=>{l.value={...ye,...o,address:{...ye.address,...o.address||{}}},d.value={},g.value="basic"},c=()=>({...l.value,address:{...l.value.address}}),p=()=>{const o=v.findIndex(m=>m.key===g.value);o<v.length-1&&(g.value=v[o+1].key)},y=()=>{const o=v.findIndex(m=>m.key===g.value);o>0&&(g.value=v[o-1].key)},x=o=>{v.some(w=>w.key===o)&&(g.value=o)},_=(o,m)=>{if(o.includes(".")){const[w,se]=o.split(".");l.value[w]||(l.value[w]={}),l.value[w][se]=m}else l.value[o]=m;f(o)};return{formData:l,errors:d,activeTab:g,formTabs:v,typeOptions:q,statusOptions:Q,paymentTermsOptions:Z,currencyOptions:H,ratingOptions:W,countryOptions:K,isValid:X,isFirstTab:ee,isLastTab:te,currentTabIndex:Y,completionPercentage:a,validateForm:u,clearFieldError:f,resetForm:i,populateForm:b,getFormData:c,nextTab:p,previousTab:y,goToTab:x,setField:_,setAddress:o=>{l.value.address={...l.value.address,...o},["street","city","state","postalCode","country"].forEach(w=>f(`address.${w}`))},togglePreferred:()=>{l.value.isPreferred=!l.value.isPreferred,f("isPreferred")},setRating:o=>{l.value.rating=o===l.value.rating?null:o,f("rating")},handleFieldChange:(o,m)=>{if(_(o,m),o==="name"&&m){const w=m.trim();w.length>=2&&w.length<=100&&f("name")}if(o==="email"&&m&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(m)&&f("email"),o==="phone"&&m&&/^[\d\s\-+()]+$/.test(m)&&f("phone"),o==="website"&&m&&/^https?:\/\/.+/.test(m)&&f("website"),o==="code"&&m){const w=m.trim().toUpperCase();w.length>=2&&w.length<=20&&/^[A-Z0-9\-_]+$/.test(w)&&f("code")}},formatWebsite:o=>o?!o.startsWith("http://")&&!o.startsWith("https://")?`https://${o}`:o:"",formatPhoneNumber:o=>{if(!o)return"";const m=o.replace(/\D/g,"");return m.length===10?`(${m.slice(0,3)}) ${m.slice(3,6)}-${m.slice(6)}`:o}}}function Dt(){const l=ke(),d=U(null),g=U(!1),v=a=>{if(d.value=null,!a.name||typeof a.name!="string")return d.value="Vendor name is required",!1;const u=a.name.trim();if(u.length<E.name.minLength)return d.value=`Vendor name must be at least ${E.name.minLength} characters`,!1;if(u.length>E.name.maxLength)return d.value=`Vendor name must be less than ${E.name.maxLength} characters`,!1;if(!E.name.pattern.test(u))return d.value="Vendor name contains invalid characters",!1;if(a.code){const f=a.code.trim().toUpperCase();if(f.length<E.code.minLength)return d.value=`Vendor code must be at least ${E.code.minLength} characters`,!1;if(f.length>E.code.maxLength)return d.value=`Vendor code must be less than ${E.code.maxLength} characters`,!1;if(!E.code.pattern.test(f))return d.value="Vendor code can only contain letters, numbers, hyphens, and underscores",!1}if(!a.type||!Object.values(N).includes(a.type))return d.value="Valid vendor type is required",!1;if(!a.status||!Object.values(M).includes(a.status))return d.value="Valid vendor status is required",!1;if(a.email&&!E.email.pattern.test(a.email))return d.value="Invalid email format",!1;if(a.phone&&!E.phone.pattern.test(a.phone))return d.value="Invalid phone number format",!1;if(a.website&&!E.website.pattern.test(a.website))return d.value="Website must start with http:// or https://",!1;if(a.contactPerson&&a.contactPerson.length>E.contactPerson.maxLength)return d.value=`Contact person must be less than ${E.contactPerson.maxLength} characters`,!1;if(a.rating!==null&&a.rating!==void 0){const f=Number(a.rating);if(isNaN(f)||f<E.rating.min||f>E.rating.max)return d.value=`Rating must be between ${E.rating.min} and ${E.rating.max}`,!1}return a.notes&&a.notes.length>E.notes.maxLength?(d.value=`Notes must be less than ${E.notes.maxLength} characters`,!1):!0},q=a=>{var u,f,i,b,c,p,y,x,_,P,V,R,D,G,J,o,m,w;return{name:(u=a.name)==null?void 0:u.trim(),code:((f=a.code)==null?void 0:f.trim().toUpperCase())||"",type:a.type,status:a.status||M.ACTIVE,contactPerson:((i=a.contactPerson)==null?void 0:i.trim())||"",email:((b=a.email)==null?void 0:b.trim())||"",phone:((c=a.phone)==null?void 0:c.trim())||"",website:((p=a.website)==null?void 0:p.trim())||"",address:{street:((x=(y=a.address)==null?void 0:y.street)==null?void 0:x.trim())||"",city:((P=(_=a.address)==null?void 0:_.city)==null?void 0:P.trim())||"",state:((R=(V=a.address)==null?void 0:V.state)==null?void 0:R.trim())||"",postalCode:((G=(D=a.address)==null?void 0:D.postalCode)==null?void 0:G.trim())||"",country:((J=a.address)==null?void 0:J.country)||""},taxId:((o=a.taxId)==null?void 0:o.trim())||"",businessNumber:((m=a.businessNumber)==null?void 0:m.trim())||"",paymentTerms:a.paymentTerms||"",currency:a.currency||"USD",isPreferred:!!a.isPreferred,rating:a.rating?Number(a.rating):null,notes:((w=a.notes)==null?void 0:w.trim())||""}},Q=(a,u=null)=>{const f=l.vendors,i=a.trim().toLowerCase();return!f.some(b=>b.name.toLowerCase()===i&&b.id!==u)},Z=(a,u=null)=>{if(!a)return!0;const f=l.vendors,i=a.trim().toUpperCase();return!f.some(b=>{var c;return((c=b.code)==null?void 0:c.toUpperCase())===i&&b.id!==u})},H=(a,u=null)=>(d.value=null,Q(a.name,u)?a.code&&!Z(a.code,u)?(d.value="A vendor with this code already exists",!1):!0:(d.value="A vendor with this name already exists",!1)),W=async a=>{g.value=!0,d.value=null;try{if(!v(a))throw new Error(d.value);const u=q(a);if(!H(u))throw new Error(d.value);return{success:!0,data:await l.createVendor(u)}}catch(u){return d.value=u.message,console.error("Failed to create vendor:",u),{success:!1,error:u.message}}finally{g.value=!1}},K=async(a,u)=>{g.value=!0,d.value=null;try{if(!v(u))throw new Error(d.value);const f=q(u);if(!H(f,a))throw new Error(d.value);return{success:!0,data:await l.updateVendor(a,f)}}catch(f){return d.value=f.message,console.error("Failed to update vendor:",f),{success:!1,error:f.message}}finally{g.value=!1}},X=async a=>{g.value=!0,d.value=null;try{return await l.deleteVendor(a),{success:!0}}catch(u){return d.value=u.message,console.error("Failed to delete vendor:",u),{success:!1,error:u.message}}finally{g.value=!1}},ee=a=>{let u=0;a.rating&&(u+=a.rating/5*40),a.status===M.ACTIVE?u+=20:a.status===M.PENDING&&(u+=10),a.isPreferred&&(u+=15);let f=0;const i=["contactPerson","email","phone","address","taxId"];return i.forEach(b=>{var c,p;b==="address"?(c=a.address)!=null&&c.street&&((p=a.address)!=null&&p.city)&&(f+=1):a[b]&&(f+=1)}),u+=f/i.length*25,Math.round(u)},te=a=>{var f,i;let u=0;return a.status===M.SUSPENDED&&(u+=3),a.status===M.PENDING&&(u+=1),a.rating&&a.rating<3&&(u+=2),a.rating||(u+=1),a.email||(u+=1),a.phone||(u+=1),(!((f=a.address)!=null&&f.street)||!((i=a.address)!=null&&i.city))&&(u+=1),u>=4?"high":u>=2?"medium":"low"},Y=(a,u)=>{if(!a)return"";const f=a.replace(/[^a-zA-Z]/g,"").substring(0,3).toUpperCase(),i=u.split("_").map(c=>c.charAt(0)).join("").toUpperCase(),b=Math.floor(Math.random()*99)+1;return`${f}${i}${b.toString().padStart(2,"0")}`};return{error:k(()=>d.value),processing:k(()=>g.value),validateVendor:v,validateVendorBusinessRules:H,processVendorData:q,isVendorNameUnique:Q,isVendorCodeUnique:Z,createVendor:W,updateVendor:K,deleteVendor:X,calculateVendorPerformance:ee,getVendorRiskLevel:te,generateVendorCode:Y}}function jt(){const l=ke(),{addNotification:d}=bt(),g=U(!1),v=U(null),q=async c=>{const{validateForm:p,validateBusinessRules:y,getFormData:x,processVendorData:_}=c;g.value=!0,v.value=null;try{if(!p())throw new Error("Please correct the form errors");const P=x(),V=_(P);if(!y(V))throw new Error("Business validation failed");const R=await l.createVendor(V);return d({type:"success",title:"Vendor Created",message:`${V.name} has been created successfully`}),{success:!0,data:R}}catch(P){return v.value=P.message,d({type:"error",title:"Creation Failed",message:P.message||"Failed to create vendor"}),{success:!1,error:P.message}}finally{g.value=!1}},Q=async c=>{const{vendorId:p,validateForm:y,validateBusinessRules:x,getFormData:_,processVendorData:P}=c;g.value=!0,v.value=null;try{if(!y())throw new Error("Please correct the form errors");const V=_(),R=P(V);if(!x(R,p))throw new Error("Business validation failed");const D=await l.updateVendor(p,R);return d({type:"success",title:"Vendor Updated",message:`${R.name} has been updated successfully`}),{success:!0,data:D}}catch(V){return v.value=V.message,d({type:"error",title:"Update Failed",message:V.message||"Failed to update vendor"}),{success:!1,error:V.message}}finally{g.value=!1}},Z=async(c,p="Vendor")=>{g.value=!0,v.value=null;try{return await l.deleteVendor(c),d({type:"success",title:"Vendor Deleted",message:`${p} has been deleted successfully`}),{success:!0}}catch(y){return v.value=y.message,d({type:"error",title:"Deletion Failed",message:y.message||`Failed to delete ${p}`}),{success:!1,error:y.message}}finally{g.value=!1}},H=async()=>{g.value=!0,v.value=null;try{await l.refreshVendors(),d({type:"info",title:"Vendors Refreshed",message:"Vendor data has been refreshed"})}catch(c){v.value=c.message,d({type:"error",title:"Refresh Failed",message:c.message||"Failed to refresh vendors"})}finally{g.value=!1}},W=async(c,p={})=>{g.value=!0,v.value=null;try{const y={search:c,...p};await l.fetchVendors(y)}catch(y){v.value=y.message,console.error("Vendor search failed:",y)}finally{g.value=!1}},K=async c=>{const p=l.searchCriteria;await W(p.search||"",{...p,page:c})},X=async c=>{const{key:p,direction:y}=c,x=l.searchCriteria;await W(x.search||"",{...x,sortBy:p,sortOrder:y})},ee=async(c={},p="csv")=>{g.value=!0,v.value=null;try{const y=l.filteredVendors;if(y.length===0)throw new Error("No vendors to export");const x=y.map(V=>{var R,D,G,J,o;return{Name:V.name,Code:V.code||"",Type:Me[V.type]||V.type,Status:we[V.status]||V.status,"Contact Person":V.contactPerson||"",Email:V.email||"",Phone:V.phone||"",Website:V.website||"","Street Address":((R=V.address)==null?void 0:R.street)||"",City:((D=V.address)==null?void 0:D.city)||"",State:((G=V.address)==null?void 0:G.state)||"","Postal Code":((J=V.address)==null?void 0:J.postalCode)||"",Country:((o=V.address)==null?void 0:o.country)||"","Tax ID":V.taxId||"","Business Number":V.businessNumber||"","Payment Terms":V.paymentTerms||"",Currency:V.currency||"",Preferred:V.isPreferred?"Yes":"No",Rating:V.rating?`${V.rating} stars`:"","Created At":new Date(V.createdAt).toLocaleDateString(),"Updated At":new Date(V.updatedAt).toLocaleDateString()}}),P=`vendors_${new Date().toISOString().split("T")[0]}.${p}`;p==="csv"?f(x,P):p==="json"&&i(y,P),d({type:"success",title:"Export Complete",message:`Vendors exported as ${P}`})}catch(y){v.value=y.message,d({type:"error",title:"Export Failed",message:y.message||"Failed to export vendors"})}finally{g.value=!1}},te=async(c,p,y="Vendor")=>{g.value=!0,v.value=null;try{await l.updateVendorStatus(c,p);const x=we[p]||p;return d({type:"success",title:"Status Updated",message:`${y} status updated to ${x}`}),{success:!0}}catch(x){return v.value=x.message,d({type:"error",title:"Status Update Failed",message:x.message||"Failed to update vendor status"}),{success:!1,error:x.message}}finally{g.value=!1}},Y=async(c,p,y="Vendor")=>{g.value=!0,v.value=null;try{return await l.setVendorPreferred(c,p),d({type:"success",title:"Preferred Status Updated",message:`${y} ${p?"added to":"removed from"} preferred vendors`}),{success:!0}}catch(x){return v.value=x.message,d({type:"error",title:"Update Failed",message:x.message||"Failed to update preferred status"}),{success:!1,error:x.message}}finally{g.value=!1}},a=async(c,p,y="Vendor")=>{g.value=!0,v.value=null;try{return await l.updateVendorRating(c,p),d({type:"success",title:"Rating Updated",message:`${y} rating updated to ${p} stars`}),{success:!0}}catch(x){return v.value=x.message,d({type:"error",title:"Rating Update Failed",message:x.message||"Failed to update vendor rating"}),{success:!1,error:x.message}}finally{g.value=!1}},u=async c=>{g.value=!0,v.value=null;try{return await l.setCurrentVendor(c)}catch(p){throw v.value=p.message,d({type:"error",title:"Load Failed",message:p.message||"Failed to load vendor"}),p}finally{g.value=!1}},f=(c,p)=>{const y=Object.keys(c[0]),x=[y.join(","),...c.map(_=>y.map(P=>`"${_[P]||""}"`).join(","))].join(`
`);b(x,p,"text/csv")},i=(c,p)=>{const y=JSON.stringify(c,null,2);b(y,p,"application/json")},b=(c,p,y)=>{const x=new Blob([c],{type:y}),_=window.URL.createObjectURL(x),P=document.createElement("a");P.href=_,P.download=p,document.body.appendChild(P),P.click(),document.body.removeChild(P),window.URL.revokeObjectURL(_)};return{isProcessing:k(()=>g.value),operationError:k(()=>v.value),submitVendor:q,updateVendor:Q,handleVendorDeletion:Z,handleVendorsRefresh:H,handleVendorSearch:W,handleVendorPagination:K,handleVendorSorting:X,handleVendorExport:ee,handleVendorLoad:u,handleVendorStatusUpdate:te,handleVendorPreferredToggle:Y,handleVendorRatingUpdate:a}}const qt={class:"p-6"},Ht={class:"mb-6 grid grid-cols-1 md:grid-cols-4 gap-4"},Wt={class:"flex space-x-2"},Yt={class:"bg-white shadow rounded-lg overflow-hidden"},Gt={class:"flex items-center space-x-3"},Qt={class:"flex items-center space-x-2"},Zt={class:"font-medium text-gray-900"},Jt={key:0,class:"w-4 h-4 text-yellow-500",fill:"currentColor",viewBox:"0 0 20 20",title:"Preferred Vendor"},Kt={key:0,class:"text-sm text-gray-500"},Xt={class:"text-sm"},es={key:0,class:"font-medium text-gray-900"},ts={key:1,class:"text-gray-600"},ss={key:2,class:"text-gray-600"},as={key:0,class:"flex items-center space-x-1"},rs={class:"flex"},ns={class:"text-sm text-gray-600"},os={key:1,class:"text-sm text-gray-400"},ls={class:"flex items-center space-x-2"},is={class:"border-b border-gray-200 mb-6"},ds={key:0,class:"space-y-6"},us={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},cs={class:"flex items-center space-x-6"},ms={class:"flex items-center"},ps={key:1,class:"space-y-6"},vs={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},fs={class:"space-y-4"},gs={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},ys={class:"md:col-span-2"},hs={key:2,class:"space-y-6"},Vs={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},bs={class:"flex items-center space-x-2"},xs=["onClick"],Cs={key:0,class:"text-sm text-gray-600 ml-2"},ws={key:3,class:"space-y-6"},ks={key:0,class:"mt-1 text-sm text-red-600"},Ps={class:"bg-gray-50 rounded-lg p-4"},Ts={class:"grid grid-cols-2 gap-4 text-sm"},Ss={class:"ml-2 text-gray-900"},Fs={class:"ml-2 text-gray-900"},Es={class:"ml-2 text-gray-900"},Is={class:"ml-2 text-gray-900"},Us={class:"flex items-center justify-between"},_s={class:"flex items-center space-x-4"},Ns={key:0,class:"flex items-center text-sm text-gray-500"},Rs={key:0,class:"w-4 h-4 mr-2 text-amber-500 animate-pulse",fill:"currentColor",viewBox:"0 0 20 20"},As={key:1,class:"w-4 h-4 mr-2 text-green-500",fill:"currentColor",viewBox:"0 0 20 20"},Os={key:2},Bs={key:3},Ls={class:"flex space-x-3"},$s={class:"space-y-4"},Ms={class:"text-gray-600"},zs={class:"text-gray-900"},Ds={key:0,class:"bg-yellow-50 border border-yellow-200 rounded-md p-3"},js={class:"flex justify-end space-x-3"},na={__name:"VendorsListView",setup(l){const d=kt(),g=wt(),v=ke(),{validateVendorBusinessRules:q,processVendorData:Q}=Dt(),{isProcessing:Z,submitVendor:H,updateVendor:W,handleVendorDeletion:K,handleVendorsRefresh:X,handleVendorExport:ee,handleVendorLoad:te,handleVendorSearch:Y,handleVendorPagination:a,handleVendorSorting:u,handleVendorPreferredToggle:f}=jt(),{formData:i,errors:b,activeTab:c,formTabs:p,typeOptions:y,statusOptions:x,paymentTermsOptions:_,currencyOptions:P,countryOptions:V,isLastTab:R,validateForm:D,resetForm:G,getFormData:J,populateForm:o,nextTab:m,setRating:w}=zt(),{hasUnsavedChanges:se,lastSaveTime:j,restoreFormData:ce,clearSavedData:me,hasSavedData:Pe,getSavedDataInfo:ze,markUserInteraction:De,finishInitialization:je}=Rt(i,{storageKey:"atlas_vendor_form_data",saveInterval:3e3,excludeFields:[]}),le=U(!1),Te=U(null),ae=U("all"),L=U({search:"",type:"",sortBy:"",isPreferred:null}),ne=U(!1),ie=U(!1),pe=U("create"),ve=U(null),de=U(!1),oe=U(null),he=U(!1),qe=k(()=>v.loading),He=k(()=>v.vendors),Se=k(()=>v.vendorStats),fe=k(()=>pe.value==="edit"),We=k(()=>{const n=Se.value;return[{label:"Total Vendors",value:n.total,change:n.active>0?`${n.active} active`:null,trend:"neutral",icon:"users"},{label:"Preferred",value:n.preferred,sublabel:n.total>0?`${Math.round(n.preferred/n.total*100)}% of total`:"0%",trend:"neutral",icon:"star"},{label:"Average Rating",value:n.averageRating?`${n.averageRating}`:"No ratings",trend:"neutral",icon:"chart-bar"},{label:"Active",value:n.active,sublabel:`${n.inactive} inactive`,trend:n.active>n.inactive?"up":"neutral",icon:"check-circle"}]}),Ye=k(()=>j.value?new Date(j.value).toLocaleTimeString():""),Ge=k(()=>{const n=Se.value;return[{key:"all",label:"All Vendors",count:n.total},{key:"active",label:"Active",count:n.active},{key:"inactive",label:"Inactive",count:n.inactive},{key:"preferred",label:"Preferred",count:n.preferred}]}),Qe=k(()=>{var n,e,s,z;return{currentPage:(((n=v.searchCriteria)==null?void 0:n.page)||0)+1,totalPages:((e=v.pagination)==null?void 0:e.totalPages)||0,totalItems:((s=v.pagination)==null?void 0:s.totalElements)||0,pageSize:((z=v.pagination)==null?void 0:z.size)||20}}),Ze=k(()=>[{key:"name",label:"Vendor",sortable:!0,width:"25%"},{key:"type",label:"Type",sortable:!0,width:"15%"},{key:"contact",label:"Contact",sortable:!1,width:"20%"},{key:"rating",label:"Rating",sortable:!0,width:"12%"},{key:"status",label:"Status",sortable:!0,width:"10%"},{key:"actions",label:"Actions",sortable:!1,width:"18%"}]),Je=k(()=>Nt),Ke=k(()=>{let n=[...He.value];return ae.value==="active"?n=n.filter(e=>e.status===M.ACTIVE):ae.value==="inactive"?n=n.filter(e=>e.status===M.INACTIVE):ae.value==="preferred"&&(n=n.filter(e=>e.isPreferred)),ne.value&&(n=n.filter(e=>e.isPreferred)),n}),Xe=n=>{const e={[N.PARTS_SUPPLIER]:"#3B82F6",[N.SERVICE_PROVIDER]:"#10B981",[N.EQUIPMENT_VENDOR]:"#F59E0B",[N.CONTRACTOR]:"#8B5CF6",[N.CONSULTANT]:"#EF4444",[N.OTHER]:"#6B7280"};return e[n]||e[N.OTHER]},et=n=>{if(!n)return"??";const e=n.split(" ");return e.length===1?e[0].substring(0,2).toUpperCase():(e[0].charAt(0)+e[1].charAt(0)).toUpperCase()},tt=n=>({[N.PARTS_SUPPLIER]:"info",[N.SERVICE_PROVIDER]:"success",[N.EQUIPMENT_VENDOR]:"warning",[N.CONTRACTOR]:"secondary",[N.CONSULTANT]:"danger",[N.OTHER]:"secondary"})[n]||"secondary",st=n=>({[M.ACTIVE]:"success",[M.INACTIVE]:"secondary",[M.PENDING]:"warning",[M.SUSPENDED]:"danger"})[n]||"secondary",Fe=n=>Me[n]||n,Ee=n=>we[n]||n,at=At.debounce(n=>{Y(n,L.value)},300),Ve=()=>{var n,e;Y(L.value.search,{type:L.value.type,sortBy:(n=L.value.sortBy)==null?void 0:n.split("_")[0],sortOrder:(e=L.value.sortBy)==null?void 0:e.split("_")[1],isPreferred:ne.value?!0:void 0})},rt=()=>{L.value={search:"",type:"",sortBy:"",isPreferred:null},ne.value=!1,ae.value="all",Y("",{})},nt=()=>{ne.value=!ne.value,Ve()},ot=n=>{ae.value=n},lt=n=>{u(n)},it=n=>{a(n-1)},dt=n=>{Ue(n)},be=async()=>{await X()},Ie=()=>{ve.value=null,pe.value="create",ut(),Pe()||G(),ie.value=!0},ut=()=>{pe.value==="create"&&Pe()&&(Te.value=ze(),le.value=!0)},Ue=n=>{d.push(`/vendors/${n.id}`)},_e=n=>{ve.value=n,pe.value="edit",o(n),je(),ie.value=!0},ct=async n=>{await f(n.id,!n.isPreferred,n.name)},mt=n=>{oe.value=n,de.value=!0},pt=async()=>{try{await K(oe.value.id,oe.value.name),de.value=!1,oe.value=null,await be()}catch{}},xe=()=>{ie.value=!1,ve.value=null,le.value=!1},vt=async()=>{var n;he.value=!0;try{const e=fe.value?W:H,s={validateForm:D,validateBusinessRules:q,getFormData:J,processVendorData:Q};fe.value&&(s.vendorId=(n=ve.value)==null?void 0:n.id),(await e(s)).success&&(me(),xe(),await be())}finally{he.value=!1}},ft=n=>{S(),m()},gt=()=>{ce(),le.value=!1},yt=()=>{me(),le.value=!1,G()},ht=async()=>{await ee(L.value)},S=()=>{De()},Vt=n=>{c.value=n,S()},Ne=()=>{const n=g.query.edit,e=g.query.create==="true";try{n?setTimeout(async()=>{try{const s=await te(n);_e(s),d.replace({path:"/vendors"})}catch{d.replace({path:"/vendors"})}},500):e&&setTimeout(()=>{Ie(),d.replace({path:"/vendors"})},500)}catch{d.replace({path:"/vendors"})}};return xt(async()=>{await v.initializeVendors(),Ne()}),Ct(()=>g.query,Ne),(n,e)=>(T(),Ce(Ot,null,{header:C(()=>[h(Bt,{title:"Vendors",description:"Manage vendors and suppliers for procurement and services",breadcrumbs:[{text:"Vendors",to:null}]},{actions:C(()=>[h(t(A),{variant:"outline",size:"sm",onClick:ht},{default:C(()=>e[28]||(e[28]=[r("svg",{class:"w-4 h-4 mr-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[r("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})],-1),O(" Export ",-1)])),_:1,__:[28]}),h(t(A),{variant:"outline",size:"sm",onClick:be},{default:C(()=>e[29]||(e[29]=[r("svg",{class:"w-4 h-4 mr-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[r("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})],-1),O(" Refresh ",-1)])),_:1,__:[29]}),h(t(A),{variant:"primary",size:"sm",onClick:Ie},{default:C(()=>e[30]||(e[30]=[r("svg",{class:"w-4 h-4 mr-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[r("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1),O(" Add Vendor ",-1)])),_:1,__:[30]})]),stats:C(()=>[h(t(Lt),{stats:We.value},null,8,["stats"])]),tabs:C(()=>[h(t($e),{modelValue:ae.value,"onUpdate:modelValue":e[0]||(e[0]=s=>ae.value=s),tabs:Ge.value,onTabChange:ot},null,8,["modelValue","tabs"])]),_:1})]),default:C(()=>[r("div",qt,[r("div",Ht,[h(t($),{modelValue:L.value.search,"onUpdate:modelValue":e[1]||(e[1]=s=>L.value.search=s),placeholder:"Search vendors...",onInput:t(at)},{prepend:C(()=>e[31]||(e[31]=[r("svg",{class:"w-4 h-4 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[r("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})],-1)])),_:1},8,["modelValue","onInput"]),h(t(re),{modelValue:L.value.type,"onUpdate:modelValue":[e[2]||(e[2]=s=>L.value.type=s),Ve],placeholder:"Filter by Type",options:t(y)},null,8,["modelValue","options"]),h(t(re),{modelValue:L.value.sortBy,"onUpdate:modelValue":[e[3]||(e[3]=s=>L.value.sortBy=s),Ve],placeholder:"Sort by",options:Je.value},null,8,["modelValue","options"]),r("div",Wt,[h(t(A),{variant:"outline",size:"sm",class:ue({"bg-primary-50 border-primary-300 text-primary-700":ne.value}),onClick:nt,title:"Show preferred vendors only"},{default:C(()=>e[32]||(e[32]=[r("svg",{class:"w-4 h-4 mr-1",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[r("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z"})],-1),O(" Preferred ",-1)])),_:1,__:[32]},8,["class"]),h(t(A),{variant:"outline",size:"sm",onClick:rt,title:"Clear all filters"},{default:C(()=>e[33]||(e[33]=[O(" Clear ",-1)])),_:1,__:[33]})])]),r("div",Yt,[h(t($t),{columns:Ze.value,data:Ke.value,loading:qe.value,pagination:Qe.value,"empty-message":"No vendors found",onSortChange:lt,onPageChange:it,onRowClick:dt},{"column-name":C(({row:s})=>[r("div",Gt,[r("div",{class:"w-10 h-10 rounded-lg flex items-center justify-center text-white font-medium text-sm",style:Pt({backgroundColor:Xe(s.type)})},I(et(s.name)),5),r("div",null,[r("div",Qt,[r("h4",Zt,I(s.name),1),s.isPreferred?(T(),F("svg",Jt,e[34]||(e[34]=[r("path",{d:"M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z"},null,-1)]))):B("",!0)]),s.code?(T(),F("p",Kt,I(s.code),1)):B("",!0)])])]),"column-type":C(({row:s})=>[h(t(Le),{variant:tt(s.type)},{default:C(()=>[O(I(Fe(s.type)),1)]),_:2},1032,["variant"])]),"column-contact":C(({row:s})=>[r("div",Xt,[s.contactPerson?(T(),F("div",es,I(s.contactPerson),1)):B("",!0),s.email?(T(),F("div",ts,I(s.email),1)):B("",!0),s.phone?(T(),F("div",ss,I(s.phone),1)):B("",!0)])]),"column-rating":C(({row:s})=>[s.rating?(T(),F("div",as,[r("div",rs,[(T(),F(Re,null,Ae(5,z=>r("svg",{key:z,class:ue(["w-4 h-4",z<=s.rating?"text-yellow-400":"text-gray-300"]),fill:"currentColor",viewBox:"0 0 20 20"},e[35]||(e[35]=[r("path",{d:"M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z"},null,-1)]),2)),64))]),r("span",ns,"("+I(s.rating)+")",1)])):(T(),F("div",os,"Not rated"))]),"column-status":C(({row:s})=>[h(t(Le),{variant:st(s.status)},{default:C(()=>[O(I(Ee(s.status)),1)]),_:2},1032,["variant"])]),"column-actions":C(({row:s})=>[r("div",ls,[h(t(A),{variant:"ghost",size:"xs",onClick:ge(z=>Ue(s),["stop"]),title:"View Details"},{default:C(()=>e[36]||(e[36]=[r("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[r("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}),r("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"})],-1)])),_:2,__:[36]},1032,["onClick"]),h(t(A),{variant:"ghost",size:"xs",onClick:ge(z=>_e(s),["stop"]),title:"Edit Vendor"},{default:C(()=>e[37]||(e[37]=[r("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[r("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"})],-1)])),_:2,__:[37]},1032,["onClick"]),h(t(A),{variant:"ghost",size:"xs",onClick:ge(z=>ct(s),["stop"]),title:s.isPreferred?"Remove from preferred":"Add to preferred",class:ue(s.isPreferred?"text-yellow-600 hover:text-yellow-700":"text-gray-400 hover:text-yellow-600")},{default:C(()=>e[38]||(e[38]=[r("svg",{class:"w-4 h-4",fill:"currentColor",viewBox:"0 0 20 20"},[r("path",{d:"M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z"})],-1)])),_:2,__:[38]},1032,["onClick","title","class"]),h(t(A),{variant:"ghost",size:"xs",onClick:ge(z=>mt(s),["stop"]),title:"Delete Vendor",class:"text-red-600 hover:text-red-700"},{default:C(()=>e[39]||(e[39]=[r("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[r("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})],-1)])),_:2,__:[39]},1032,["onClick"])])]),_:1},8,["columns","data","loading","pagination"])]),h(t(Be),{modelValue:ie.value,"onUpdate:modelValue":e[25]||(e[25]=s=>ie.value=s),title:fe.value?"Edit Vendor":"Create Vendor",size:"xl",onCancel:xe},{footer:C(()=>[r("div",Us,[r("div",_s,[t(se)||t(j)?(T(),F("div",Ns,[t(se)?(T(),F("svg",Rs,e[50]||(e[50]=[r("path",{"fill-rule":"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z","clip-rule":"evenodd"},null,-1)]))):(T(),F("svg",As,e[51]||(e[51]=[r("path",{"fill-rule":"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z","clip-rule":"evenodd"},null,-1)]))),t(se)?(T(),F("span",Os,"Auto-saving...")):t(j)?(T(),F("span",Bs,"Last saved "+I(Ye.value),1)):B("",!0)])):B("",!0)]),r("div",Ls,[h(t(A),{variant:"secondary",onClick:xe},{default:C(()=>e[52]||(e[52]=[O(" Cancel ",-1)])),_:1,__:[52]}),t(R)?(T(),Ce(t(A),{key:1,variant:"primary",loading:he.value,onClick:vt},{default:C(()=>[O(I(fe.value?"Update Vendor":"Create Vendor"),1)]),_:1},8,["loading"])):(T(),Ce(t(A),{key:0,variant:"primary",onClick:e[24]||(e[24]=s=>ft("next"))},{default:C(()=>e[53]||(e[53]=[O(" Next ",-1)])),_:1,__:[53]}))])])]),default:C(()=>[h(t(Mt),{visible:le.value,"saved-data-info":Te.value,onRestore:gt,onDismiss:yt},null,8,["visible","saved-data-info"]),r("div",is,[h(t($e),{modelValue:t(c),"onUpdate:modelValue":e[4]||(e[4]=s=>Tt(c)?c.value=s:null),tabs:t(p),onTabChange:Vt},null,8,["modelValue","tabs"])]),t(c)==="basic"?(T(),F("div",ds,[r("div",us,[h(t($),{modelValue:t(i).name,"onUpdate:modelValue":e[5]||(e[5]=s=>t(i).name=s),label:"Vendor Name",placeholder:"Enter vendor name",required:"",error:t(b).name,onInput:S},null,8,["modelValue","error"]),h(t($),{modelValue:t(i).code,"onUpdate:modelValue":e[6]||(e[6]=s=>t(i).code=s),label:"Vendor Code",placeholder:"AUTO or enter custom code",error:t(b).code,onInput:S},null,8,["modelValue","error"]),h(t(re),{modelValue:t(i).type,"onUpdate:modelValue":e[7]||(e[7]=s=>t(i).type=s),label:"Vendor Type",placeholder:"Select vendor type",options:t(y),required:"",error:t(b).type,onChange:S},null,8,["modelValue","options","error"]),h(t(re),{modelValue:t(i).status,"onUpdate:modelValue":e[8]||(e[8]=s=>t(i).status=s),label:"Status",placeholder:"Select status",options:t(x),required:"",error:t(b).status,onChange:S},null,8,["modelValue","options","error"])]),r("div",cs,[r("label",ms,[Oe(r("input",{"onUpdate:modelValue":e[9]||(e[9]=s=>t(i).isPreferred=s),type:"checkbox",class:"rounded border-gray-300 text-primary-600 shadow-sm focus:border-primary-300 focus:ring focus:ring-primary-200 focus:ring-opacity-50",onChange:S},null,544),[[St,t(i).isPreferred]]),e[40]||(e[40]=r("span",{class:"ml-2 text-sm font-medium text-gray-700"},"Preferred Vendor",-1))])])])):B("",!0),t(c)==="contact"?(T(),F("div",ps,[r("div",vs,[h(t($),{modelValue:t(i).contactPerson,"onUpdate:modelValue":e[10]||(e[10]=s=>t(i).contactPerson=s),label:"Contact Person",placeholder:"Enter contact person name",error:t(b).contactPerson,onInput:S},null,8,["modelValue","error"]),h(t($),{modelValue:t(i).email,"onUpdate:modelValue":e[11]||(e[11]=s=>t(i).email=s),label:"Email Address",placeholder:"vendor@company.com",type:"email",error:t(b).email,onInput:S},null,8,["modelValue","error"]),h(t($),{modelValue:t(i).phone,"onUpdate:modelValue":e[12]||(e[12]=s=>t(i).phone=s),label:"Phone Number",placeholder:"(555) 123-4567",error:t(b).phone,onInput:S},null,8,["modelValue","error"]),h(t($),{modelValue:t(i).website,"onUpdate:modelValue":e[13]||(e[13]=s=>t(i).website=s),label:"Website",placeholder:"https://company.com",error:t(b).website,onInput:S},null,8,["modelValue","error"])]),r("div",fs,[e[41]||(e[41]=r("h4",{class:"text-md font-medium text-gray-900"},"Address",-1)),r("div",gs,[r("div",ys,[h(t($),{modelValue:t(i).address.street,"onUpdate:modelValue":e[14]||(e[14]=s=>t(i).address.street=s),label:"Street Address",placeholder:"123 Main Street",onInput:S},null,8,["modelValue"])]),h(t($),{modelValue:t(i).address.city,"onUpdate:modelValue":e[15]||(e[15]=s=>t(i).address.city=s),label:"City",placeholder:"New York",onInput:S},null,8,["modelValue"]),h(t($),{modelValue:t(i).address.state,"onUpdate:modelValue":e[16]||(e[16]=s=>t(i).address.state=s),label:"State/Province",placeholder:"NY",onInput:S},null,8,["modelValue"]),h(t($),{modelValue:t(i).address.postalCode,"onUpdate:modelValue":e[17]||(e[17]=s=>t(i).address.postalCode=s),label:"Postal Code",placeholder:"10001",onInput:S},null,8,["modelValue"]),h(t(re),{modelValue:t(i).address.country,"onUpdate:modelValue":e[18]||(e[18]=s=>t(i).address.country=s),label:"Country",placeholder:"Select country",options:t(V),onChange:S},null,8,["modelValue","options"])])])])):B("",!0),t(c)==="business"?(T(),F("div",hs,[r("div",Vs,[h(t($),{modelValue:t(i).taxId,"onUpdate:modelValue":e[19]||(e[19]=s=>t(i).taxId=s),label:"Tax ID",placeholder:"Enter tax identification number",error:t(b).taxId,onInput:S},null,8,["modelValue","error"]),h(t($),{modelValue:t(i).businessNumber,"onUpdate:modelValue":e[20]||(e[20]=s=>t(i).businessNumber=s),label:"Business Number",placeholder:"Enter business registration number",error:t(b).businessNumber,onInput:S},null,8,["modelValue","error"]),h(t(re),{modelValue:t(i).paymentTerms,"onUpdate:modelValue":e[21]||(e[21]=s=>t(i).paymentTerms=s),label:"Payment Terms",placeholder:"Select payment terms",options:t(_),error:t(b).paymentTerms,onChange:S},null,8,["modelValue","options","error"]),h(t(re),{modelValue:t(i).currency,"onUpdate:modelValue":e[22]||(e[22]=s=>t(i).currency=s),label:"Currency",placeholder:"Select currency",options:t(P),error:t(b).currency,onChange:S},null,8,["modelValue","options","error"])]),r("div",null,[e[43]||(e[43]=r("label",{class:"block text-sm font-medium text-gray-700 mb-3"},"Vendor Rating",-1)),r("div",bs,[(T(),F(Re,null,Ae(5,s=>r("button",{key:s,type:"button",class:ue(["w-8 h-8 rounded-full flex items-center justify-center transition-colors duration-200 hover:bg-yellow-100",s<=(t(i).rating||0)?"text-yellow-400":"text-gray-300"]),onClick:z=>t(w)(s)},e[42]||(e[42]=[r("svg",{class:"w-6 h-6",fill:"currentColor",viewBox:"0 0 20 20"},[r("path",{d:"M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z"})],-1)]),10,xs)),64)),t(i).rating?(T(),F("span",Cs,I(t(i).rating)+" out of 5 stars",1)):B("",!0)])])])):B("",!0),t(c)==="settings"?(T(),F("div",ws,[r("div",null,[e[44]||(e[44]=r("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Notes",-1)),Oe(r("textarea",{"onUpdate:modelValue":e[23]||(e[23]=s=>t(i).notes=s),class:ue(["w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-primary-500 focus:border-primary-500",{"border-red-300":t(b).notes}]),placeholder:"Additional notes about this vendor...",rows:"4",onInput:S},null,34),[[Ft,t(i).notes]]),t(b).notes?(T(),F("p",ks,I(t(b).notes),1)):B("",!0)]),r("div",Ps,[e[49]||(e[49]=r("h4",{class:"font-medium text-gray-900 mb-3"},"Vendor Summary",-1)),r("div",Ts,[r("div",null,[e[45]||(e[45]=r("span",{class:"font-medium text-gray-700"},"Name:",-1)),r("span",Ss,I(t(i).name||"Not specified"),1)]),r("div",null,[e[46]||(e[46]=r("span",{class:"font-medium text-gray-700"},"Type:",-1)),r("span",Fs,I(Fe(t(i).type)||"Not specified"),1)]),r("div",null,[e[47]||(e[47]=r("span",{class:"font-medium text-gray-700"},"Status:",-1)),r("span",Es,I(Ee(t(i).status)||"Not specified"),1)]),r("div",null,[e[48]||(e[48]=r("span",{class:"font-medium text-gray-700"},"Preferred:",-1)),r("span",Is,I(t(i).isPreferred?"Yes":"No"),1)])])])])):B("",!0)]),_:1},8,["modelValue","title"]),h(t(Be),{modelValue:de.value,"onUpdate:modelValue":e[27]||(e[27]=s=>de.value=s),title:"Delete Vendor",size:"md"},{footer:C(()=>[r("div",js,[h(t(A),{variant:"secondary",onClick:e[26]||(e[26]=s=>de.value=!1)},{default:C(()=>e[57]||(e[57]=[O(" Cancel ",-1)])),_:1,__:[57]}),h(t(A),{variant:"danger",onClick:pt,loading:t(Z)},{default:C(()=>e[58]||(e[58]=[O(" Delete Vendor ",-1)])),_:1,__:[58]},8,["loading"])])]),default:C(()=>{var s;return[r("div",$s,[r("p",Ms,[e[54]||(e[54]=O(" Are you sure you want to delete ",-1)),r("strong",zs,"'"+I((s=oe.value)==null?void 0:s.name)+"'",1),e[55]||(e[55]=O("? This action cannot be undone. ",-1))]),oe.value?(T(),F("div",Ds,e[56]||(e[56]=[r("div",{class:"flex"},[r("svg",{class:"w-5 h-5 text-yellow-400 mr-2 mt-0.5",fill:"currentColor",viewBox:"0 0 20 20"},[r("path",{"fill-rule":"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z","clip-rule":"evenodd"})]),r("div",{class:"text-sm"},[r("p",{class:"font-medium text-yellow-800"},"Warning"),r("p",{class:"text-yellow-700"},"Make sure this vendor is not being used in any purchase orders or contracts before deleting.")])],-1)]))):B("",!0)])]}),_:1},8,["modelValue"])])]),_:1}))}};export{na as default};