import{I as k}from"./index-4b46c3db.js";import{_ as B,r as w,o as l,b as a,h as n,j as u,d as r,P as c,t as f,e as C,I as S,M as _,F as b,m as g,f as x,K as I,L as O}from"./index-be2d4151.js";import{T}from"./index-9c004d68.js";const R={name:"Table",components:{Icon:k,TextInput:T},data(){return{searchQuery:null,sortBy:this.defaultSortField||null,sortOrder:this.defaultSortOrder,hoveredRow:null,selectedRow:null}},props:{nocard:{type:Boolean,default:!1},noDataMessage:{type:String,default:"No Data"},hoverableRow:{type:Boolean,default:!1},headerTitle:{type:String,default:null},headerClass:{type:String,default:null},headerContentClass:{type:String,default:"flex justify-between"},headerConfigClass:{type:String,default:"flex justify-end"},headerTitleClass:{type:String,default:null},containerClass:{type:String,default:null},columns:{type:Array,required:!0},rows:{type:Array,required:!0},tableContainerClass:{type:String,default:null},tableClass:{type:String,default:null},rowStyleClass:{type:String,default:""},rowClassFn:{type:Function,default:null},thClass:{type:String,default:""},trClass:{type:String,default:""},tdClass:{type:String,default:""},search:{type:Boolean,default:!0},defaultSortField:{type:String,default:null},defaultSortOrder:{type:String,default:null},headerBgOverlay:{type:Boolean,default:!0},headerBgOverlayClass:{type:String,default:null},rowHoverClass:{type:String,default:"bg-blue-200"},selectedRowClass:{type:String,default:"bg-blue-300"}},watch:{sortBy(){this.emitSort()},sortOrder(){this.emitSort()},searchQuery(){this.emitSearch()}},computed:{sortableColumns(){return this.columns.filter(t=>t.sortable)},sortable(){return this.sortableColumns.length>0}},methods:{emitSort(){this.sortBy&&this.$emit("sort",{field:this.sortBy,sortOrder:this.sortOrder})},emitSearch(){this.$emit("search",this.searchQuery)},rowClick(t,d){this.selectedRow!==null&&this.selectedRow==d&&(t=null,d=null),this.selectedRow=d,this.$emit("rowClick",{row:t,index:d})}}},v=t=>(I("data-v-aa9e6e98"),t=t(),O(),t),V={key:0},F={key:1},D={key:0,class:"flex items-center border border-slate-500 rounded px-2 bg-white"},N={key:1},Q={key:2,class:"flex gap-1 items-center"},H={class:"flex border border-slate-500 rounded items-center bg-white pr-2"},M=v(()=>r("option",{disabled:"",value:""}," Sort By ",-1)),j=["value"],A=v(()=>r("option",{value:"asc"},"Asc",-1)),U=v(()=>r("option",{value:"desc"},"Desc",-1)),q=[A,U],L={key:3},z={key:4},E={class:"bg-gray-50"},K={class:"bg-white divide-y divide-gray-200 text-gray-500"},P=["onClick","onHover"],G={key:0,class:"py-6 text-center text-xl bg-amber-50 text-slate-400"},J={key:1,class:"bg-blue-50 py-6"};function W(t,d,e,X,h,i){const m=w("Icon"),p=w("TextInput");return l(),a("div",{class:n(e.nocard?e.containerClass:["card rounded-md lg:h-full bg-white shadow-base",e.containerClass])},[t.title||t.$slots.header||e.search||t.$slots.filter||t.$slots.filter||i.sortable&&i.sortableColumns||t.$slots.action?(l(),a("div",{key:0,class:n(["relative",["py-2 border-b border-slate-200",e.headerClass]])},[e.headerBgOverlay?(l(),a("div",{key:0,class:n(["absolute inset-0 w-full h-full",["bg-white bg-opacity-[0.7] rounded-t-lg",e.headerBgOverlayClass]])},null,2)):u("",!0),r("div",{class:n(["relative space-x-4",e.headerContentClass])},[r("div",{class:n(["text-2xl p-4 font-semibold",e.headerTitleClass])},[t.$slots.header?(l(),a("div",V,[c(t.$slots,"header",{},void 0,!0)])):(l(),a("span",F,f(e.headerTitle),1))],2),r("div",{class:n(["space-x-2 p-4",e.headerConfigClass])},[e.search?(l(),a("div",D,[r("div",null,[C(m,{icon:"carbon:search"})]),r("div",null,[C(p,{modelValue:h.searchQuery,"onUpdate:modelValue":d[0]||(d[0]=s=>h.searchQuery=s),class:"p-0",classInput:"border-0 p-0 h-[30px]"},null,8,["modelValue"])])])):t.$slots.search?(l(),a("div",N,[c(t.$slots,"search",{},void 0,!0)])):u("",!0),i.sortable&&i.sortableColumns?(l(),a("div",Q,[r("div",H,[C(m,{icon:"solar:sort-vertical-linear",class:"text-xl px-2"}),S(r("select",{class:"px-y py-3 bg-white","onUpdate:modelValue":d[1]||(d[1]=s=>h.sortBy=s)},[M,(l(!0),a(b,null,g(i.sortableColumns,s=>(l(),a("option",{key:s.field,value:s.field},f(s.label),9,j))),128))],512),[[_,h.sortBy]])]),S(r("select",{class:"px-2 py-3 bg-white border border-slate-500 rounded","onUpdate:modelValue":d[2]||(d[2]=s=>h.sortOrder=s),onChange:d[3]||(d[3]=(...s)=>i.emitSort&&i.emitSort(...s))},q,544),[[_,h.sortOrder]])])):u("",!0),t.$slots.filter?(l(),a("div",L,[c(t.$slots,"filter",{},void 0,!0)])):u("",!0),t.$slots.action?(l(),a("div",z,[c(t.$slots,"action",{},void 0,!0)])):u("",!0)],2)],2)],2)):u("",!0),r("div",{class:n(["overflow-x-auto pb-20",["w-full",e.tableContainerClass]])},[r("table",{class:n(["min-w-full divide-y divide-gray-200",e.tableClass])},[r("thead",E,[r("tr",null,[(l(!0),a(b,null,g(e.columns,s=>(l(),a("th",{key:s.field,class:n(["px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",e.thClass,s.thClass??null])},f(s.label),3))),128))])]),r("tbody",K,[(l(!0),a(b,null,g(e.rows,(s,y)=>(l(),a("tr",{key:y,class:n([e.rowClassFn?e.rowClassFn(s):e.rowStyleClass,e.hoverableRow?"hover:bg-blue-100":"hover:bg-transparent",y%2===0?"bg-white":"bg-gray-50",h.selectedRow==y?e.selectedRowClass:""]),onClick:o=>i.rowClick(s,y),onHover:o=>t.setHoveredRow(y)},[(l(!0),a(b,null,g(e.columns,o=>(l(),a("td",{key:o.field,class:n(["p-2 text-sm",e.tdClass,o.tdClass?typeof o.tdClass=="function"?o.tdClass(s[o.field]):o.tdClass:null])},[c(t.$slots,"table-row",{row:s,column:o,item:s[o.field]},()=>[x(f(o.format?o.format(s[o.field]):s[o.field]),1)],!0)],2))),128))],42,P))),128))])],2),!e.rows||e.rows.length==0?(l(),a("div",G,f(e.noDataMessage),1)):u("",!0)],2),t.$slots["pagination-bottom"]&&e.rows&&e.rows.length>0?(l(),a("footer",J,[c(t.$slots,"pagination-bottom",{},void 0,!0)])):u("",!0)],2)}const ee=B(R,[["render",W],["__scopeId","data-v-aa9e6e98"]]);export{ee as T};