UNPKG

@luisgb2212/table-customizable

Version:

Vue3 Datatable - fully customizable & easy to use datatable library

2 lines (1 loc) 35.2 kB
"use strict";const e=require("vue"),De=require("litepicker"),$e=require("dayjs"),ge=k=>k&&typeof k=="object"&&"default"in k?k:{default:k},pe=ge(De),T=ge($e),qe={class:"bh-filter-menu bh-absolute bh-z-[1] bh-bg-white bh-shadow-md bh-rounded-md bh-top-full bh-right-0 bh-w-32 bh-mt-1"},Ae=e.defineComponent({__name:"column-filter",props:["column","columnFilterLang"],emits:["close","filterChange"],setup(k,{emit:_}){const a=k;e.onBeforeUnmount(()=>{document.removeEventListener("click",l)}),e.onMounted(()=>{document.addEventListener("click",l)});const v=_,l=()=>{v("close")},f=c=>{a.column.condition=c,c===""&&(a.column.value=""),v("filterChange",a.column)};return(c,u)=>{var B,d,r,C,m,b,L,A,V,M,I,x,R,$,G,N,K,E,S;return e.openBlock(),e.createElementBlock("div",qe,[e.createElementVNode("div",{class:"bh-text-[13px] bh-font-normal bh-rounded bh-overflow-hidden",onClick:e.withModifiers(l,["stop"])},[e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:a.column.condition===""}),onClick:u[0]||(u[0]=y=>f(""))},e.toDisplayString((B=a.columnFilterLang&&a.columnFilterLang.no_filter)!=null?B:"No filter"),3),a.column.type==="string"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:a.column.condition==="contain"}),onClick:u[1]||(u[1]=y=>f("contain"))},e.toDisplayString((d=a.columnFilterLang&&a.columnFilterLang.contain)!=null?d:"Contain"),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:a.column.condition==="not_contain"}),onClick:u[2]||(u[2]=y=>f("not_contain"))},e.toDisplayString((r=a.columnFilterLang&&a.columnFilterLang.not_contain)!=null?r:"Not contain"),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:a.column.condition==="equal"}),onClick:u[3]||(u[3]=y=>f("equal"))},e.toDisplayString((C=a.columnFilterLang&&a.columnFilterLang.equal)!=null?C:"Equal"),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:a.column.condition==="not_equal"}),onClick:u[4]||(u[4]=y=>f("not_equal"))},e.toDisplayString((m=a.columnFilterLang&&a.columnFilterLang.not_equal)!=null?m:"Not equal"),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:a.column.condition==="start_with"}),onClick:u[5]||(u[5]=y=>f("start_with"))},e.toDisplayString((b=a.columnFilterLang&&a.columnFilterLang.start_with)!=null?b:"Starts with"),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:a.column.condition==="end_with"}),onClick:u[6]||(u[6]=y=>f("end_with"))},e.toDisplayString((L=a.columnFilterLang&&a.columnFilterLang.end_with)!=null?L:"Ends with"),3)],64)):a.column.type==="number"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:a.column.condition==="equal"}),onClick:u[7]||(u[7]=y=>f("equal"))},e.toDisplayString((A=a.columnFilterLang&&a.columnFilterLang.equal)!=null?A:"Equal"),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:a.column.condition==="not_equal"}),onClick:u[8]||(u[8]=y=>f("not_equal"))},e.toDisplayString((V=a.columnFilterLang&&a.columnFilterLang.not_equal)!=null?V:"Not equal"),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:a.column.condition==="greater_than"}),onClick:u[9]||(u[9]=y=>f("greater_than"))},e.toDisplayString((M=a.columnFilterLang&&a.columnFilterLang.greater_than)!=null?M:"Greater than"),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:a.column.condition==="greater_than_equal"}),onClick:u[10]||(u[10]=y=>f("greater_than_equal"))},e.toDisplayString((I=a.columnFilterLang&&a.columnFilterLang.greater_than_equal)!=null?I:"Greater than or equal"),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:a.column.condition==="less_than"}),onClick:u[11]||(u[11]=y=>f("less_than"))},e.toDisplayString((x=a.columnFilterLang&&a.columnFilterLang.less_than)!=null?x:"Less than"),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:a.column.condition==="less_than_equal"}),onClick:u[12]||(u[12]=y=>f("less_than_equal"))},e.toDisplayString((R=a.columnFilterLang&&a.columnFilterLang.less_than_equal)!=null?R:"Less than or equal"),3)],64)):a.column.type==="date"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:a.column.condition==="equal"}),onClick:u[13]||(u[13]=y=>f("equal"))},e.toDisplayString(($=a.columnFilterLang&&a.columnFilterLang.equal)!=null?$:"Equal"),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:a.column.condition==="not_equal"}),onClick:u[14]||(u[14]=y=>f("not_equal"))},e.toDisplayString((G=a.columnFilterLang&&a.columnFilterLang.not_equal)!=null?G:"Not equal"),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:a.column.condition==="greater_than"}),onClick:u[15]||(u[15]=y=>f("greater_than"))},e.toDisplayString((N=a.columnFilterLang&&a.columnFilterLang.greater_than)!=null?N:"Greater than"),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:a.column.condition==="less_than"}),onClick:u[16]||(u[16]=y=>f("less_than"))},e.toDisplayString((K=a.columnFilterLang&&a.columnFilterLang.less_than)!=null?K:"Less than"),3)],64)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:a.column.condition==="is_null"}),onClick:u[17]||(u[17]=y=>f("is_null"))},e.toDisplayString((E=a.columnFilterLang&&a.columnFilterLang.is_null)!=null?E:"Is null"),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:a.column.condition==="is_not_null"}),onClick:u[18]||(u[18]=y=>f("is_not_null"))},e.toDisplayString((S=a.columnFilterLang&&a.columnFilterLang.is_not_null)!=null?S:"Not null"),3)])])}}}),W=(k,_)=>{const a=k.__vccOpts||k;for(const[v,l]of _)a[v]=l;return a},Ye={},Te={version:"1.1",viewBox:"0 0 17 12",xmlns:"http://www.w3.org/2000/svg"};function Re(k,_){return e.openBlock(),e.createElementBlock("svg",Te,[..._[0]||(_[0]=[e.createElementVNode("g",{fill:"none","fill-rule":"evenodd"},[e.createElementVNode("g",{transform:"translate(-9 -11)",fill:"currentColor","fill-rule":"nonzero"},[e.createElementVNode("path",{d:"m25.576 11.414c0.56558 0.55188 0.56558 1.4439 0 1.9961l-9.404 9.176c-0.28213 0.27529-0.65247 0.41385-1.0228 0.41385-0.37034 0-0.74068-0.13855-1.0228-0.41385l-4.7019-4.588c-0.56584-0.55188-0.56584-1.4442 0-1.9961 0.56558-0.55214 1.4798-0.55214 2.0456 0l3.679 3.5899 8.3812-8.1779c0.56558-0.55214 1.4798-0.55214 2.0456 0z"})])],-1)])])}const ke=W(Ye,[["render",Re]]),He={},Pe={viewBox:"0 0 24 24",width:"24",height:"24",stroke:"currentColor","stroke-width":"3",fill:"none","stroke-linecap":"round","stroke-linejoin":"round",class:"css-i6dzq1"};function Ue(k,_){return e.openBlock(),e.createElementBlock("svg",Pe,[..._[0]||(_[0]=[e.createElementVNode("line",{x1:"5",y1:"12",x2:"19",y2:"12"},null,-1)])])}const Oe=W(He,[["render",Ue]]),Ie={},Ge={viewBox:"0 0 24 24",width:"24",height:"24",stroke:"currentColor","stroke-width":"1.5",fill:"none","stroke-linecap":"round","stroke-linejoin":"round",class:"css-i6dzq1"};function Ke(k,_){return e.openBlock(),e.createElementBlock("svg",Ge,[..._[0]||(_[0]=[e.createElementVNode("polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"},null,-1)])])}const Je=W(Ie,[["render",Ke]]);var We=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Xe={exports:{}};(function(k,_){(function(a,v){k.exports=v(T.default)})(We,function(a){function v(c){return c&&typeof c=="object"&&"default"in c?c:{default:c}}var l=v(a),f={name:"es",monthsShort:"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),weekdays:"domingo_lunes_martes_mi\xE9rcoles_jueves_viernes_s\xE1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xE9._jue._vie._s\xE1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xE1".split("_"),months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xEDa",dd:"%d d\xEDas",M:"un mes",MM:"%d meses",y:"un a\xF1o",yy:"%d a\xF1os"},ordinal:function(c){return c+"\xBA"}};return l.default.locale(f,null,!0),f})})(Xe);const Qe={key:"hdrrow"},Ze={class:"bh-checkbox"},je=["onClick"],et={width:"16",height:"16",viewBox:"0 0 14 14",fill:"none"},tt={key:0,class:"bh-filter bh-relative"},lt=["onUpdate:modelValue"],nt=["onUpdate:modelValue"],ot=["id","onUpdate:modelValue"],at=["id","onUpdate:modelValue"],rt=["onUpdate:modelValue"],it=["onUpdate:modelValue"],st=["value"],ut=["onClick"],he=e.defineComponent({__name:"column-header",props:["all","currentSortColumn","currentSortDirection","isOpenFilter","isFooter","checkAll","columnFilterLang"],emits:["selectAll","sortChange","filterChange","toggleFilterMenu"],setup(k,{emit:_}){T.default.locale("es");const a=e.ref(null),v=k,l=_,f=()=>{a.value&&(a.value.indeterminate=v.checkAll!==0?!v.checkAll:!1,a.value.checked=v.checkAll)};e.watch(()=>v.checkAll,f);const c=B=>{e.nextTick(()=>{const d=document.getElementById(B.field);d&&new pe.default({element:d,singleMode:!0,lang:"es-MX",tooltipNumber:r=>r-1,setup:r=>{r.on("selected",(C,m)=>{let b=T.default(C.dateInstance).format("YYYY-MM-DD");b+=m!=null?" - "+T.default(m.dateInstance).format("YYYY-MM-DD"):"",B.value=b,l("filterChange")}),r.on("clear:selection",()=>{B.value=null,l("filterChange")})},resetButton:()=>{let r=document.createElement("button");return r.innerText="Limpiar",r.addEventListener("click",C=>{C.preventDefault()}),r}})})},u=B=>{e.nextTick(()=>{const d=document.getElementById(B.field);d&&new pe.default({element:d,singleMode:!1,lang:"es-MX",tooltipNumber:r=>r-1,setup:r=>{r.on("selected",(C,m)=>{let b=T.default(C.dateInstance).format("YYYY-MM-DD");b+=m!=null?" - "+T.default(m.dateInstance).format("YYYY-MM-DD"):"",B.value=b,l("filterChange")}),r.on("clear:selection",()=>{B.value=null,l("filterChange")})},resetButton:()=>{let r=document.createElement("button");return r.innerText="Limpiar",r.addEventListener("click",C=>{C.preventDefault()}),r}})})};return e.onMounted(()=>{v.all.columns.forEach(B=>{B.type==="date"&&typeof B.range=="boolean"&&B.range==!0?u(B):B.type==="date"&&c(B)})}),(B,d)=>(e.openBlock(),e.createElementBlock("tr",Qe,[v.all.hasCheckbox?(e.openBlock(),e.createElementBlock("th",{key:"chkall",class:e.normalizeClass(["bh-w-px",{"bh-sticky bh-bg-blue-light bh-z-[1]":v.all.stickyHeader||v.all.stickyFirstColumn,"bh-top-0":v.all.stickyHeader,"bh-left-0":v.all.stickyFirstColumn}])},[e.createElementVNode("div",Ze,[e.createElementVNode("input",{ref_key:"selectedAll",ref:a,type:"checkbox",onClick:d[0]||(d[0]=e.withModifiers(r=>l("selectAll",r.target.checked),["stop"]))},null,512),e.createElementVNode("div",null,[e.createVNode(ke,{class:"check"}),e.createVNode(Oe,{class:"intermediate"})])])],2)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.all.columns,(r,C)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[r.hide?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("th",{key:r.field,class:e.normalizeClass(["bh-select-none bh-z-[1]",[v.all.sortable&&r.sort?"bh-cursor-pointer":"",C===0&&v.all.stickyFirstColumn?"bh-sticky bh-left-0 bh-bg-blue-light":"",v.all.hasCheckbox&&C===0&&v.all.stickyFirstColumn?"bh-left-[52px]":""]]),style:e.normalizeStyle({width:r.width,"min-width":r.minWidth,"max-width":r.maxWidth})},[e.createElementVNode("div",{class:e.normalizeClass(["bh-flex bh-items-center",[r.headerClass?r.headerClass:""]]),onClick:m=>v.all.sortable&&r.sort&&l("sortChange",r.field)},[e.createTextVNode(e.toDisplayString(r.title)+" ",1),v.all.sortable&&r.sort?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["bh-ml-3 bh-sort bh-flex bh-items-center",[v.currentSortColumn,v.currentSortDirection]])},[(e.openBlock(),e.createElementBlock("svg",et,[e.createElementVNode("polygon",{points:"3.11,6.25 10.89,6.25 7,1.75 ",fill:"currentColor",class:e.normalizeClass(["bh-text-black/20",[k.currentSortColumn===r.field&&k.currentSortDirection==="asc"?"!bh-text-primary":""]])},null,2),e.createElementVNode("polygon",{points:"7,12.25 10.89,7.75 3.11,7.75 ",fill:"currentColor",class:e.normalizeClass(["bh-text-black/20",[k.currentSortColumn===r.field&&k.currentSortDirection==="desc"?"!bh-text-primary":""]])},null,2)]))],2)):e.createCommentVNode("",!0)],10,je),v.all.columnFilter&&!v.isFooter?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[r.filter?(e.openBlock(),e.createElementBlock("div",tt,[r.type==="string"&&!r.options?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,"onUpdate:modelValue":m=>r.value=m,type:"text",class:"bh-form-control",autocomplete:"off",onKeyup:d[1]||(d[1]=m=>l("filterChange"))},null,40,lt)),[[e.vModelText,r.value,void 0,{trim:!0}]]):e.createCommentVNode("",!0),r.type==="number"?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,"onUpdate:modelValue":m=>r.value=m,type:"number",class:"bh-form-control",autocomplete:"off",onKeyup:d[2]||(d[2]=m=>l("filterChange"))},null,40,nt)),[[e.vModelText,r.value,void 0,{number:!0,trim:!0}]]):e.createCommentVNode("",!0),r.type==="date"&&!r.range?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:2,ref_for:!0,ref:r.field,id:r.field,"onUpdate:modelValue":m=>r.value=m,type:"text",autocomplete:"off",placeholder:"Fecha",class:"bh-form-control"},null,8,ot)),[[e.vModelText,r.value]]):e.createCommentVNode("",!0),r.type==="date"&&typeof r.range=="boolean"&&r.range==!0?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:3,ref_for:!0,ref:r.field,id:r.field,"onUpdate:modelValue":m=>r.value=m,type:"text",class:"bh-form-control",placeholder:"Selecciona rango de fechas",autocomplete:"off"},null,8,at)),[[e.vModelText,r.value]]):e.createCommentVNode("",!0),r.type==="bool"?e.withDirectives((e.openBlock(),e.createElementBlock("select",{key:4,"onUpdate:modelValue":m=>r.value=m,class:"bh-form-control",onChange:d[3]||(d[3]=m=>l("filterChange"))},[...d[7]||(d[7]=[e.createElementVNode("option",{value:void 0},"All",-1),e.createElementVNode("option",{value:!0},"True",-1),e.createElementVNode("option",{value:!1},"False",-1)])],40,rt)),[[e.vModelSelect,r.value]]):e.createCommentVNode("",!0),r.type==="string"&&r.options?e.withDirectives((e.openBlock(),e.createElementBlock("select",{key:5,class:"bh-form-control","onUpdate:modelValue":m=>r.value=m,onChange:d[4]||(d[4]=m=>l("filterChange"))},[d[8]||(d[8]=e.createElementVNode("option",{value:void 0},"Todos",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.options,m=>(e.openBlock(),e.createElementBlock("option",{key:"opt"+m,value:m},e.toDisplayString(m),9,st))),128))],40,it)),[[e.vModelSelect,r.value]]):e.createCommentVNode("",!0),r.type!="date"&&r.type!="bool"&&!r.options?(e.openBlock(),e.createElementBlock("button",{key:6,type:"button",onClick:e.withModifiers(m=>l("toggleFilterMenu",r),["stop"])},[e.createVNode(Je,{class:"bh-w-4"})],8,ut)):e.createCommentVNode("",!0),e.withDirectives(e.createVNode(Ae,{column:r,type:r.type,columnFilterLang:v.columnFilterLang,onClose:d[5]||(d[5]=m=>l("toggleFilterMenu",null)),onFilterChange:d[6]||(d[6]=m=>l("filterChange"))},null,8,["column","type","columnFilterLang"]),[[e.vShow,v.isOpenFilter===r.field]])])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],6))],64))),256))]))}}),ct={},dt={width:"84",height:"84",viewBox:"0 0 24 24",class:"bh-loader bh-text-primary"};function mt(k,_){return e.openBlock(),e.createElementBlock("svg",dt,[..._[0]||(_[0]=[e.createStaticVNode('<circle cx="18" cy="12" r="0" fill="currentColor"><animate attributeName="r" begin=".67" calcMode="spline" dur="1.5s" keySplines="0.2 0.2 0.4 0.8;0.2 0.2 0.4 0.8;0.2 0.2 0.4 0.8" repeatCount="indefinite" values="0;2;0;0"></animate></circle><circle cx="12" cy="12" r="0" fill="currentColor"><animate attributeName="r" begin=".33" calcMode="spline" dur="1.5s" keySplines="0.2 0.2 0.4 0.8;0.2 0.2 0.4 0.8;0.2 0.2 0.4 0.8" repeatCount="indefinite" values="0;2;0;0"></animate></circle><circle cx="6" cy="12" r="0" fill="currentColor"><animate attributeName="r" begin="0" calcMode="spline" dur="1.5s" keySplines="0.2 0.2 0.4 0.8;0.2 0.2 0.4 0.8;0.2 0.2 0.4 0.8" repeatCount="indefinite" values="0;2;0;0"></animate></circle>',3)])])}const ft=W(ct,[["render",mt]]),vt={class:"bh-datatable bh-antialiased bh-relative bh-text-black bh-text-sm bh-font-normal"},pt=["onClick"],ht={class:"bh-checkbox"},gt=["value"],kt=["innerHTML"],Ct={key:1},bt=["colspan"],yt=["colspan"],wt={key:0,class:"bh-absolute bh-inset-0 bh-bg-blue-light/50 bh-grid bh-place-content-center"},_t={class:"bh-flex bh-items-center bh-flex-wrap bh-flex-col sm:bh-flex-row bh-gap-4"},Bt={class:"bh-pagination-info bh-flex bh-items-center"},Et={class:"bh-mr-2"},Lt=["value"],Nt={class:"bh-pagination-number sm:bh-ml-auto bh-inline-flex bh-items-center bh-space-x-1"},Ft=["innerHTML"],St={key:1,"aria-hidden":"true",width:"14",height:"14",viewBox:"0 0 16 16"},Vt=["innerHTML"],Mt={key:1,"aria-hidden":"true",width:"14",height:"14",viewBox:"0 0 16 16"},xt=["onClick"],zt=["innerHTML"],Dt={key:1,"aria-hidden":"true",width:"14",height:"14",viewBox:"0 0 16 16"},$t=["innerHTML"],qt={key:1,"aria-hidden":"true",width:"14",height:"14",viewBox:"0 0 16 16"},At=e.defineComponent({__name:"custom-table",props:{loading:{type:Boolean,default:!1},isServerMode:{type:Boolean,default:!1},skin:{default:"bh-table-striped bh-table-hover"},totalRows:{default:0},rows:{default:()=>[]},columns:{default:()=>[]},hasCheckbox:{type:Boolean,default:!1},search:{default:""},columnChooser:{type:Boolean,default:!1},page:{default:1},pageSize:{default:10},pageSizeOptions:{default:()=>[10,20,30,50,100]},showPageSize:{type:Boolean,default:!0},rowClass:{default:[]},cellClass:{default:[]},sortable:{type:Boolean,default:!1},sortColumn:{default:"id"},sortDirection:{default:"desc"},columnFilter:{type:Boolean,default:!1},columnFilterLang:{default:null},pagination:{type:Boolean,default:!0},showNumbers:{type:Boolean,default:!0},showNumbersCount:{default:5},showFirstPage:{type:Boolean,default:!0},showLastPage:{type:Boolean,default:!0},firstArrow:{default:""},lastArrow:{default:""},nextArrow:{default:""},previousArrow:{default:""},paginationInfo:{default:"Showing {0} to {1} of {2} entries"},noDataContent:{default:"No data available"},stickyHeader:{type:Boolean,default:!1},height:{default:"500px"},stickyFirstColumn:{type:Boolean,default:!1},cloneHeaderInFooter:{type:Boolean,default:!1},selectRowOnClick:{type:Boolean,default:!1},fieldVerify:{},virifyClass:{}},emits:["change","sortChange","searchChange","pageChange","pageSizeChange","rowSelect","filterChange","rowClick","rowDBClick"],setup(k,{expose:_,emit:a}){var oe,ae,re,ie;const v=e.useSlots(),l=k;for(const t of l.columns||[]){const o=((oe=t.type)==null?void 0:oe.toLowerCase())||"string";t.type=o,t.isUnique=t.isUnique!==void 0?t.isUnique:!1,t.hide=t.hide!==void 0?t.hide:!1,t.filter=t.filter!==void 0?t.filter:!0,t.search=t.search!==void 0?t.search:!0,t.sort=t.sort!==void 0?t.sort:!0,t.html=t.html!==void 0?t.html:!1,t.condition=!o||o==="string"?"contain":"equal"}const f=e.ref([]),c=e.ref(l.page),u=e.ref(l.pagination?l.pageSize:(ae=l.rows)==null?void 0:ae.length),B=l.pageSize,d=e.ref(l.sortColumn),r=(re=l.sortColumn)!=null?re:"id",C=e.ref(l.sortDirection),m=(ie=l.sortDirection)!=null?ie:"desc",b=e.ref(l.totalRows),L=e.ref([]),A=e.ref(null),V=e.ref(l.loading),M=e.ref(l.search),I=JSON.parse(JSON.stringify(l.columns)),x=e.ref(null),R=e.ref(null);let $=e.ref(0);const G=e.ref(230);e.onMounted(()=>{q()});const N=a;_({reset(){Se()},getSelectedRows(){return Ve()},getColumnFilters(){return Me()},clearSelectedRows(){return xe()},selectRow(t){le(t)},unselectRow(t){ne(t)},isRowSelected(t){return J(t)},getFilteredRows(){return Q()}});const K=(t,...o)=>t.replace(/{(\d+)}/g,(s,h)=>typeof o[h]<"u"?o[h]:s),E=e.computed(()=>{const t=l.columns.find(o=>o.isUnique);return(t==null?void 0:t.field)||null}),S=e.computed(()=>{const t=u.value<1?1:Math.ceil(b.value/u.value);return Math.max(t||0,1)}),y=e.computed(()=>(c.value-1)*u.value+1),X=e.computed(()=>{const t=c.value*u.value;return b.value>=t?t:b.value}),Ce=e.computed(()=>{let t,o;return typeof l.showNumbersCount<"u"&&l.showNumbersCount<S.value?(t=Math.max(c.value-Math.floor(l.showNumbersCount/2),1),o=t+l.showNumbersCount-1,o>S.value&&(o=S.value,t=o-l.showNumbersCount+1)):(t=1,o=S.value),Array.from(Array(o+1-t).keys()).map(w=>t+w)}),Q=()=>{var w,P,se,ue;let t=l.rows||[];if(!l.isServerMode){if((w=l.columns)==null||w.forEach(n=>{n.filter&&(n.value!==void 0&&n.value!==null&&n.value!==""||n.condition==="is_null"||n.condition=="is_not_null")&&(n.type==="string"?(n.value&&!n.condition&&(n.condition="contain"),n.condition==="contain"?t=t.filter(i=>{var g;return F(n.filterColumns||[],i,n.value.toLowerCase())||((g=p(i,n.field))==null?void 0:g.toString().toLowerCase().includes(n.value.toLowerCase()))}):n.condition==="not_contain"?t=t.filter(i=>{var g;return!F(n.filterColumns||[],i,n.value.toLowerCase())&&!((g=p(i,n.field))!=null&&g.toString().toLowerCase().includes(n.value.toLowerCase()))}):n.condition==="equal"?t=t.filter(i=>{var g;return F(n.filterColumns||[],i,n.value.toLowerCase())||((g=p(i,n.field))==null?void 0:g.toString().toLowerCase())===n.value.toLowerCase()}):n.condition==="not_equal"?t=t.filter(i=>{var g;return!F(n.filterColumns||[],i,n.value.toLowerCase())&&((g=p(i,n.field))==null?void 0:g.toString().toLowerCase())!==n.value.toLowerCase()}):n.condition=="start_with"?t=t.filter(i=>{var g;return F(n.filterColumns||[],i,n.value.toLowerCase())||((g=p(i,n.field))==null?void 0:g.toString().toLowerCase().indexOf(n.value.toLowerCase()))===0}):n.condition=="end_with"&&(t=t.filter(i=>{var g;return F(n.filterColumns||[],i,n.value.toLowerCase())||((g=p(i,n.field))==null?void 0:g.toString().toLowerCase().substr(n.value.length*-1))===n.value.toLowerCase()}))):n.type==="number"?(n.value&&!n.condition&&(n.condition="equal"),n.condition==="equal"?t=t.filter(i=>F(n.filterColumns||[],i,n.value.toLowerCase())||p(i,n.field)&&parseFloat(p(i,n.field))===parseFloat(n.value)):n.condition==="not_equal"?t=t.filter(i=>F(n.filterColumns||[],i,n.value.toLowerCase())||p(i,n.field)&&parseFloat(p(i,n.field))!==parseFloat(n.value)):n.condition==="greater_than"?t=t.filter(i=>F(n.filterColumns||[],i,n.value.toLowerCase())||p(i,n.field)&&parseFloat(p(i,n.field))>parseFloat(n.value)):n.condition==="greater_than_equal"?t=t.filter(i=>F(n.filterColumns||[],i,n.value.toLowerCase())||p(i,n.field)&&parseFloat(p(i,n.field))>=parseFloat(n.value)):n.condition==="less_than"?t=t.filter(i=>F(n.filterColumns||[],i,n.value.toLowerCase())||p(i,n.field)&&parseFloat(p(i,n.field))<parseFloat(n.value)):n.condition==="less_than_equal"&&(t=t.filter(i=>F(n.filterColumns||[],i,n.value.toLowerCase())||p(i,n.field)&&parseFloat(p(i,n.field))<=parseFloat(n.value)))):n.type==="date"&&!n.range?t=t.filter(i=>p(i,n.field)&&H(p(i,n.field))===n.value):n.type==="date"&&n.range?t=t.filter(i=>{const[g,U]=n.value.split(" - ");return p(i,"date_start")&&p(i,"date_end")&&H(p(i,"date_start"))>=H(g)&&H(p(i,"date_end"))<=H(U)}):n.type==="bool"&&(t=t.filter(i=>p(i,n.field)===n.value)),n.condition==="is_null"?(t=t.filter(i=>p(i,n.field)==null||p(i,n.field)==""),n.value=""):n.condition==="is_not_null"&&(n.value="",t=t.filter(i=>p(i,n.field))))}),M.value&&(t==null?void 0:t.length)){let n=[];const i=(l.columns||[]).filter(g=>g.search&&!g.hide).map(g=>g.field);for(var o=0;o<(t==null?void 0:t.length);o++)for(var s=0;s<i.length;s++)if((P=p(t[o],i[s]))!=null&&P.toString().toLowerCase().includes(M.value.toLowerCase())){n.push(t[o]);break}t=n}var h=new Intl.Collator("en",{numeric:((se=l.columns.find(n=>n.field==d.value))==null?void 0:se.type)===void 0||((ue=l.columns.find(n=>n.field==d.value))==null?void 0:ue.type)==="number",sensitivity:"base"});const ce=C.value==="desc"?-1:1;t.sort((n,i)=>{var de,me,fe,ve;const g=(de=d.value)==null?void 0:de.split(".").reduce((D,O)=>D==null?void 0:D[O],n),U=(me=d.value)==null?void 0:me.split(".").reduce((D,O)=>D==null?void 0:D[O],i);if(d.value==="code"){const D=(fe=g.split("-")[1])!=null?fe:g.split("-")[0],O=(ve=U.split("-")[1])!=null?ve:U.split("-")[0];return(parseInt(D)-parseInt(O))*ce}return h.compare(g,U)*ce})}return t},F=(t,o,s)=>t.some(h=>{var w;return(w=p(o,h))==null?void 0:w.toString().toLowerCase().includes(s)}),q=()=>{let t=[],o=Q();l.isServerMode?(b.value=l.totalRows||0,t=o):(b.value=(o==null?void 0:o.length)||0,t=o.slice(y.value-1,X.value)),f.value=t||[]};e.watch(()=>l.loading,()=>{V.value=l.loading});const Z=t=>{t?x.value===t.field?x.value=null:x.value=t.field:x.value=null},be=()=>{if(c.value==1)return!1;c.value--},ye=t=>{c.value=t},we=()=>{if(c.value>=S.value)return!1;c.value++},_e=()=>{z(!1),l.isServerMode?Y("page"):(q(),N("pageChange",c.value))};e.watch(()=>c.value,_e);const Be=()=>{l.isServerMode||(c.value=1),z(!1),q()};e.watch(()=>l.rows,Be);const Ee=()=>{z(!1),l.isServerMode?c.value===1?Y("pagesize",!0):c.value=1:(c.value=1,q(),N("pageSizeChange",u.value))};e.watch(()=>u.value,Ee);const j=t=>{let o="asc";t==d.value&&C.value==="asc"&&(o="desc");let s=(c.value-1)*u.value,h=u.value;d.value=t,C.value=o,z(!1),q(),l.isServerMode?Y("sort"):N("sortChange",{offset:s,limit:h,field:t,direction:o})},ee=t=>{A.value=t.length&&f.value.length&&t.length===f.value.length;const o=f.value.filter((s,h)=>L.value.includes(E.value?s[E.value]:h));N("rowSelect",o)};e.watch(()=>L.value,ee);const z=t=>{t?L.value=f.value.map((o,s)=>E.value?o[E.value]:s):L.value=[]},te=()=>{z(!1),l.isServerMode?c.value===1?Y("filter",!0):c.value=1:(c.value=1,q(),N("filterChange",l.columns))},Le=()=>{z(!1),l.isServerMode?c.value===1?Y("search",!0):c.value=1:(c.value=1,q(),N("searchChange",M.value))};e.watch(()=>l.search,()=>{M.value=l.search,Le()});const p=(t,o)=>o==null?void 0:o.split(".").reduce((s,h)=>s==null?void 0:s[h],t),H=t=>{try{if(!t)return"";const o=new Date(t),s=o.getDate(),h=o.getMonth()+1;return o.getFullYear()+"-"+(h>9?h:"0"+h)+"-"+(s>9?s:"0"+s)}catch{}return""},Ne=(t,o)=>{$.value++,$.value===1?R.value=setTimeout(()=>{$.value=0,l.selectRowOnClick&&(J(o)?ne(o):le(o),ee(L.value)),N("rowClick",t)},G.value):$.value===2&&(clearTimeout(R.value),$.value=0,N("rowDBClick",t))},Y=(t,o=!1)=>{if(l.isServerMode){Fe();const s={current_page:o?1:c.value,pagesize:u.value,offset:(c.value-1)*u.value,sort_column:d.value,sort_direction:C.value,search:M.value,column_filters:l.columns,change_type:t};N("change",s)}},Fe=()=>{for(let t=0;t<l.columns.length;t++){let o=l.columns[t];o.filter&&(o.value!==void 0&&o.value!==null&&o.value!==""||o.condition==="is_null"||o.condition==="is_not_null")&&(o.type==="string"&&o.value&&!o.condition&&(o.condition="contain"),o.type==="number"&&o.value&&!o.condition&&(o.condition="equal"),o.type==="date"&&o.value&&!o.condition&&(o.condition="equal"))}},Se=()=>{z(!1);for(let t=0;t<l.columns.length;t++)l.columns[t]=I[t];M.value="",u.value=B,d.value=r,C.value=m,l.isServerMode?c.value===1?Y("reset",!0):c.value=1:(c.value=1,q())},Ve=()=>f.value.filter((o,s)=>L.value.includes(E.value?o[E.value]:s)),Me=()=>l.columns,xe=()=>{L.value=[]},le=t=>{if(!J(t)){const o=f.value.find((s,h)=>h===t);L.value.push(E.value?o[E.value]:t)}},ne=t=>{if(J(t)){const o=f.value.find((s,h)=>h===t);L.value=L.value.filter(s=>s!==(E.value?o[E.value]:t))}},J=t=>{const o=f.value.find((s,h)=>h===t);return o?L.value.includes(E.value?o[E.value]:t):!1},ze=t=>{var o;return l.fieldVerify&&t[l.fieldVerify]?(o=l.virifyClass)!=null?o:"text-danger":""};return(t,o)=>(e.openBlock(),e.createElementBlock("div",vt,[e.createElementVNode("div",{class:e.normalizeClass(["bh-table-responsive",{"bh-min-h-[300px]":V.value}]),style:e.normalizeStyle({height:l.stickyHeader&&l.height})},[e.createElementVNode("table",{class:e.normalizeClass([l.skin])},[e.createElementVNode("thead",{class:e.normalizeClass({"bh-sticky bh-top-0 bh-z-10":l.stickyHeader})},[e.createVNode(he,{all:l,currentSortColumn:d.value,currentSortDirection:C.value,isOpenFilter:x.value,checkAll:A.value,columnFilterLang:l.columnFilterLang,onSelectAll:z,onSortChange:j,onFilterChange:te,onToggleFilterMenu:Z},null,8,["currentSortColumn","currentSortDirection","isOpenFilter","checkAll","columnFilterLang"])],2),e.createElementVNode("tbody",null,[b.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(f.value,(s,h)=>(e.openBlock(),e.createElementBlock("tr",{key:s[E.value]?s[E.value]:h,class:e.normalizeClass([typeof l.rowClass=="function"?k.rowClass(s):l.rowClass,l.selectRowOnClick?"bh-cursor-pointer":"",ze(s)]),onClick:w=>Ne(s,h)},[l.hasCheckbox?(e.openBlock(),e.createElementBlock("td",{key:0,class:e.normalizeClass({"bh-sticky bh-left-0 bh-bg-blue-light":l.stickyFirstColumn})},[e.createElementVNode("div",ht,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":o[0]||(o[0]=w=>L.value=w),type:"checkbox",value:s[E.value]?s[E.value]:h,onClick:o[1]||(o[1]=e.withModifiers(()=>{},["stop"]))},null,8,gt),[[e.vModelCheckbox,L.value]]),e.createElementVNode("div",null,[e.createVNode(ke,{class:"check"})])])],2)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.columns,(w,P)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[w.hide?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("td",{key:w.field,class:e.normalizeClass([typeof l.cellClass=="function"?k.cellClass(s):l.cellClass,P===0&&l.stickyFirstColumn?"bh-sticky bh-left-0 bh-bg-blue-light":"",l.hasCheckbox&&P===0&&l.stickyFirstColumn?"bh-left-[52px]":"",w.cellClass?w.cellClass:""])},[e.unref(v)[w.field]?e.renderSlot(t.$slots,w.field,{key:0,value:s}):w.cellRenderer?(e.openBlock(),e.createElementBlock("div",{key:1,innerHTML:w.cellRenderer(s)},null,8,kt)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(p(s,w.field)),1)],64))],2))],64))),256))],10,pt))),128)):e.createCommentVNode("",!0),!b.value&&!V.value?(e.openBlock(),e.createElementBlock("tr",Ct,[e.createElementVNode("td",{colspan:l.columns.length+1},e.toDisplayString(l.noDataContent),9,bt)])):e.createCommentVNode("",!0),!b.value&&V.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(l.pageSize,s=>(e.openBlock(),e.createElementBlock("tr",{key:s,class:"!bh-bg-white bh-h-11 !bh-border-transparent"},[e.createElementVNode("td",{colspan:l.columns.length+1,class:"!bh-p-0 !bh-border-transparent"},[...o[5]||(o[5]=[e.createElementVNode("div",{class:"bh-skeleton-box bh-h-8"},null,-1)])],8,yt)]))),128)):e.createCommentVNode("",!0)]),l.cloneHeaderInFooter?(e.openBlock(),e.createElementBlock("tfoot",{key:0,class:e.normalizeClass({"bh-sticky bh-bottom-0":l.stickyHeader})},[e.createVNode(he,{all:l,currentSortColumn:d.value,currentSortDirection:C.value,isOpenFilter:x.value,isFooter:!0,checkAll:A.value,onSelectAll:z,onSortChange:j,onFilterChange:te,onToggleFilterMenu:Z},null,8,["currentSortColumn","currentSortDirection","isOpenFilter","checkAll"])],2)):e.createCommentVNode("",!0)],2),b.value&&V.value?(e.openBlock(),e.createElementBlock("div",wt,[e.createVNode(ft)])):e.createCommentVNode("",!0)],6),l.pagination&&b.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["bh-pagination bh-py-5",{"bh-pointer-events-none":V.value}])},[e.createElementVNode("div",_t,[e.createElementVNode("div",Bt,[e.createElementVNode("span",Et,e.toDisplayString(K(l.paginationInfo,b.value?y.value:0,X.value,b.value)),1),l.showPageSize?e.withDirectives((e.openBlock(),e.createElementBlock("select",{key:0,"onUpdate:modelValue":o[2]||(o[2]=s=>u.value=s),class:"bh-pagesize"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.pageSizeOptions,s=>(e.openBlock(),e.createElementBlock("option",{value:s,key:s},e.toDisplayString(s),9,Lt))),128))],512)),[[e.vModelSelect,u.value]]):e.createCommentVNode("",!0)]),e.createElementVNode("div",Nt,[l.showFirstPage?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:e.normalizeClass(["bh-page-item first-page",{disabled:c.value<=1}]),onClick:o[3]||(o[3]=s=>c.value=1)},[l.firstArrow?(e.openBlock(),e.createElementBlock("span",{key:0,innerHTML:l.firstArrow},null,8,Ft)):(e.openBlock(),e.createElementBlock("svg",St,[...o[6]||(o[6]=[e.createElementVNode("g",{fill:"currentColor","fill-rule":"evenodd"},[e.createElementVNode("path",{d:"M8.354 1.646a.5.5 0 0 1 0 .708L2.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z"}),e.createElementVNode("path",{d:"M12.354 1.646a.5.5 0 0 1 0 .708L6.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z"})],-1)])]))],2)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:e.normalizeClass(["bh-page-item previous-page",{disabled:c.value<=1}]),onClick:be},[l.previousArrow?(e.openBlock(),e.createElementBlock("span",{key:0,innerHTML:l.previousArrow},null,8,Vt)):(e.openBlock(),e.createElementBlock("svg",Mt,[...o[7]||(o[7]=[e.createElementVNode("path",{fill:"currentColor","fill-rule":"evenodd",d:"M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z"},null,-1)])]))],2),l.showNumbers?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(Ce.value,s=>(e.openBlock(),e.createElementBlock("button",{key:s,type:"button",class:e.normalizeClass(["bh-page-item",{disabled:c.value===s,"bh-active":s===c.value}]),onClick:h=>ye(s)},e.toDisplayString(s),11,xt))),128)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:e.normalizeClass(["bh-page-item next-page",{disabled:c.value>=S.value}]),onClick:we},[l.nextArrow?(e.openBlock(),e.createElementBlock("span",{key:0,innerHTML:l.nextArrow},null,8,zt)):(e.openBlock(),e.createElementBlock("svg",Dt,[...o[8]||(o[8]=[e.createElementVNode("path",{fill:"currentColor","fill-rule":"evenodd",d:"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8L4.646 2.354a.5.5 0 0 1 0-.708z"},null,-1)])]))],2),l.showLastPage?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",class:e.normalizeClass(["bh-page-item last-page",{disabled:c.value>=S.value}]),onClick:o[4]||(o[4]=s=>c.value=S.value)},[l.lastArrow?(e.openBlock(),e.createElementBlock("span",{key:0,innerHTML:l.lastArrow},null,8,$t)):(e.openBlock(),e.createElementBlock("svg",qt,[...o[9]||(o[9]=[e.createElementVNode("g",{fill:"currentColor","fill-rule":"evenodd"},[e.createElementVNode("path",{d:"M3.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L9.293 8L3.646 2.354a.5.5 0 0 1 0-.708z"}),e.createElementVNode("path",{d:"M7.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L13.293 8L7.646 2.354a.5.5 0 0 1 0-.708z"})],-1)])]))],2)):e.createCommentVNode("",!0)])])],2)):e.createCommentVNode("",!0)]))}});module.exports=At;