UNPKG

@sensetence/vue-quintable

Version:

<img alt="vue-quintable" src="https://sensetence.com/vue-quintable-demo/vue-table.png" width="265" height="222">

7 lines 78.2 kB
(function(C,m){typeof exports=="object"&&typeof module!="undefined"?module.exports=m(require("vue-select"),require("@fortawesome/fontawesome-svg-core"),require("@fortawesome/vue-fontawesome"),require("v-tooltip"),require("@fortawesome/free-solid-svg-icons"),require("fuzzy.js"),require("axios")):typeof define=="function"&&define.amd?define(["vue-select","@fortawesome/fontawesome-svg-core","@fortawesome/vue-fontawesome","v-tooltip","@fortawesome/free-solid-svg-icons","fuzzy.js","axios"],m):(C=typeof globalThis!="undefined"?globalThis:C||self,C.vueQuintable=m(C.vueSelect$1,C.fontawesomeSvgCore,C.vueFontawesome,C.VTooltip,C.freeSolidSvgIcons,C.fuzzy,C.axios))})(this,function(C,m,pe,ge,S,M,me){"use strict";var we=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function be(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var A={},ye={get exports(){return A},set exports(i){A=i}};/*! * pretty-checkbox-vue v1.1.9 * (c) 2017-2018 Hamed Ehtesham * Released under the MIT License. */(function(i,e){(function(t,s){i.exports=s()})(typeof self!="undefined"?self:we,function(){return function(t){var s={};function n(l){if(s[l])return s[l].exports;var a=s[l]={i:l,l:!1,exports:{}};return t[l].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=t,n.c=s,n.d=function(l,a,o){n.o(l,a)||Object.defineProperty(l,a,{configurable:!1,enumerable:!0,get:o})},n.n=function(l){var a=l&&l.__esModule?function(){return l.default}:function(){return l};return n.d(a,"a",a),a},n.o=function(l,a){return Object.prototype.hasOwnProperty.call(l,a)},n.p="",n(n.s=1)}([function(t,s){t.exports=function(n,l,a,o,r,c){var u,f=n=n||{},d=typeof n.default;d!=="object"&&d!=="function"||(u=n,f=n.default);var p,w=typeof f=="function"?f.options:f;if(l&&(w.render=l.render,w.staticRenderFns=l.staticRenderFns,w._compiled=!0),a&&(w.functional=!0),r&&(w._scopeId=r),c?(p=function(y){(y=y||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||typeof __VUE_SSR_CONTEXT__=="undefined"||(y=__VUE_SSR_CONTEXT__),o&&o.call(this,y),y&&y._registeredComponents&&y._registeredComponents.add(c)},w._ssrRegister=p):o&&(p=o),p){var b=w.functional,v=b?w.render:w.beforeCreate;b?(w._injectStyles=p,w.render=function(y,g){return p.call(g),v(y,g)}):w.beforeCreate=v?[].concat(v,p):[p]}return{esModule:u,exports:f,options:w}}},function(t,s,n){var l=n(0)(n(2),null,!1,null,null,null);l.options.__file="src/PrettyCheckbox.vue",t.exports=l.exports},function(t,s,n){Object.defineProperty(s,"__esModule",{value:!0});var l=n(3),a={name:"pretty-checkbox",input_type:"checkbox",model:l.model,props:l.props,data:l.data,computed:l.computed,watch:l.watch,mounted:l.mounted,methods:l.methods,render:l.render};s.default=a},function(t,s,n){var l=n(0)(n(4),n(5),!1,null,null,null);l.options.__file="src/PrettyInput.vue",t.exports=l.exports},function(t,s,n){Object.defineProperty(s,"__esModule",{value:!0}),s.default={name:"pretty-input",model:{prop:"modelValue",event:"change"},props:{type:String,name:String,value:{},modelValue:{},trueValue:{},falseValue:{},checked:{},disabled:{},required:{},indeterminate:{},color:String,offColor:String,hoverColor:String,indeterminateColor:String,toggle:{},hover:{},focus:{}},data:function(){return{m_checked:void 0,default_mode:!1}},computed:{_type:function(){return this.$options.input_type?this.$options.input_type:this.type?this.type:"checkbox"},shouldBeChecked:function(){return this.modelValue!==void 0?this._type==="radio"?this.modelValue===this.value:this.modelValue instanceof Array?this.modelValue.includes(this.value):this._trueValue?this.modelValue===this.trueValue:typeof this.modelValue=="string"||!!this.modelValue:this.m_checked===void 0?this.m_checked=typeof this.checked=="string"||!!this.checked:this.m_checked},_disabled:function(){return typeof this.disabled=="string"||!!this.disabled},_required:function(){return typeof this.required=="string"||!!this.required},_indeterminate:function(){return typeof this.indeterminate=="string"||!!this.indeterminate},_trueValue:function(){return typeof this.trueValue=="string"?this.trueValue:!!this.trueValue},_falseValue:function(){return typeof this.falseValue=="string"?this.falseValue:!!this.falseValue},_toggle:function(){return typeof this.toggle=="string"||!!this.toggle},_hover:function(){return typeof this.hover=="string"||!!this.hover},_focus:function(){return typeof this.focus=="string"||!!this.focus},classes:function(){return{pretty:!0,"p-default":this.default_mode,"p-round":this._type==="radio"&&this.default_mode,"p-toggle":this._toggle,"p-has-hover":this._hover,"p-has-focus":this._focus,"p-has-indeterminate":this._indeterminate}},onClasses:function(){var l={state:!0,"p-on":this._toggle};return this.color&&(l["p-"+this.color]=!0),l},offClasses:function(){var l={state:!0,"p-off":!0};return this.offColor&&(l["p-"+this.offColor]=!0),l},hoverClasses:function(){var l={state:!0,"p-is-hover":!0};return this.hoverColor&&(l["p-"+this.hoverColor]=!0),l},indeterminateClasses:function(){var l={state:!0,"p-is-indeterminate":!0};return this.indeterminateColor&&(l["p-"+this.indeterminateColor]=!0),l}},watch:{checked:function(l){this.m_checked=l},indeterminate:function(l){this.$refs.input.indeterminate=l}},mounted:function(){this.$vnode.data&&!this.$vnode.data.staticClass&&(this.default_mode=!0),this._indeterminate&&(this.$refs.input.indeterminate=!0),this.$el.setAttribute("p-"+this._type,"")},methods:{updateInput:function(l){if(this._type!=="radio"){this.$emit("update:indeterminate",!1);var a=l.target.checked;if(this.m_checked=a,this.modelValue instanceof Array){var o=[].concat(function(r){if(Array.isArray(r)){for(var c=0,u=Array(r.length);c<r.length;c++)u[c]=r[c];return u}return Array.from(r)}(this.modelValue));a?o.push(this.value):o.splice(o.indexOf(this.value),1),this.$emit("change",o)}else this.$emit("change",a?!this._trueValue||this.trueValue:!!this._falseValue&&this.falseValue)}else this.$emit("change",this.value)}}}},function(t,s,n){var l=function(){var a=this.$createElement,o=this._self._c||a;return o("div",{class:this.classes},[o("input",{ref:"input",attrs:{type:this._type,name:this.name,disabled:this._disabled,required:this._required},domProps:{checked:this.shouldBeChecked,value:this.value},on:{change:this.updateInput}}),this._v(" "),o("div",{class:this.onClasses},[this._t("extra"),this._v(" "),o("label",[this._t("default")],2)],2),this._v(" "),this._toggle?o("div",{class:this.offClasses},[this._t("off-extra"),this._v(" "),this._t("off-label")],2):this._e(),this._v(" "),this._hover?o("div",{class:this.hoverClasses},[this._t("hover-extra"),this._v(" "),this._t("hover-label")],2):this._e(),this._v(" "),this._indeterminate?o("div",{class:this.indeterminateClasses},[this._t("indeterminate-extra"),this._v(" "),this._t("indeterminate-label")],2):this._e()])};l._withStripped=!0,t.exports={render:l,staticRenderFns:[]}}])})})(ye);const Fe=be(A),$e="",Te="";var j={},G={get exports(){return j},set exports(i){j=i}},N=typeof crypto!="undefined"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto!="undefined"&&typeof window.msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto);if(N){var B=new Uint8Array(16);G.exports=function(){return N(B),B}}else{var H=new Array(16);G.exports=function(){for(var e=0,t;e<16;e++)e&3||(t=Math.random()*4294967296),H[e]=t>>>((e&3)<<3)&255;return H}}for(var Q=[],k=0;k<256;++k)Q[k]=(k+256).toString(16).substr(1);function Se(i,e){var t=e||0,s=Q;return[s[i[t++]],s[i[t++]],s[i[t++]],s[i[t++]],"-",s[i[t++]],s[i[t++]],"-",s[i[t++]],s[i[t++]],"-",s[i[t++]],s[i[t++]],"-",s[i[t++]],s[i[t++]],s[i[t++]],s[i[t++]],s[i[t++]],s[i[t++]]].join("")}var ve=Se,Ce=j,Re=ve;function ke(i,e,t){var s=e&&t||0;typeof i=="string"&&(e=i==="binary"?new Array(16):null,i=null),i=i||{};var n=i.random||(i.rng||Ce)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,e)for(var l=0;l<16;++l)e[s+l]=n[l];return e||Re(n)}var _e=ke;const Ee="",Le="";function xe(i,e,t,s,n,l,a,o){var r=typeof i=="function"?i.options:i;e&&(r.render=e,r.staticRenderFns=t,r._compiled=!0),s&&(r.functional=!0),l&&(r._scopeId="data-v-"+l);var c;if(a?(c=function(d){d=d||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!d&&typeof __VUE_SSR_CONTEXT__!="undefined"&&(d=__VUE_SSR_CONTEXT__),n&&n.call(this,d),d&&d._registeredComponents&&d._registeredComponents.add(a)},r._ssrRegister=c):n&&(c=o?function(){n.call(this,(r.functional?this.parent:this).$root.$options.shadowRoot)}:n),c)if(r.functional){r._injectStyles=c;var u=r.render;r.render=function(p,w){return c.call(w),u(p,w)}}else{var f=r.beforeCreate;r.beforeCreate=f?[].concat(f,c):[c]}return{exports:i,options:r}}const Pe={name:"VueQuintable",props:{rows:{type:Array,default(){return[]}},config:{type:Object,default(){return{}}},dynamicConfig:{type:Boolean,default:!1},value:{type:Array,default(){return[]}},selectedRows:{type:Array,default(){return[]}},preSelectedRows:{type:Array,default(){return[]}},loading:{type:Boolean,default:!1},filters:{type:Object,default(){return{}}},filterGroups:{type:Array,default(){return[]}},verbose:{type:Boolean,default:!1},nested:{type:Boolean,default:!1},tableClasses:{type:String,default:""},sortOrder:{type:Array,default(){return[]}},updated:{type:[Boolean,Object,Date],default:!1},axios:{type:Function},identifier:{type:String,default:null},initialSearchTerm:{type:String,default:null}},data(){return{rowsUpdatedKey:Date.now(),indexesUpdatedKey:Date.now(),generatedUpdatedKey:Date.now(),hoveredRow:null,allSelectedCustom:null,selected:{},openRows:{},sortedIndexes:{},currentSortIndexes:{},query:"",currentPage:1,paginationOptions:[1,2,3,4,5,6,7,8,9,10,15,20,25,30,50,100],fetching:!1,ajaxRows:[],ajaxPages:0,ajaxAll:0,customRowsPerPage:null,customMultiSort:null,customPageSort:null,hiddenBreakpoints:[],initBreakpoints:!0,breakpointTimeout:null,cancelSource:null,lastQuery:"",pageOffset:0,uuid:_e(),loaderHeight:0,defaultOperator:"equal",queryAjaxTimeout:null,lastSearchQueryUpdated:null,operatorFunctions:{equal:(i,e)=>e===i,greater:(i,e)=>e>i,less:(i,e)=>e<i,greaterEqual:(i,e)=>e>=i,lessEqual:(i,e)=>e<=i,contains:(i,e)=>!Array.isArray(e)&&typeof e!="string"?!1:e.indexOf(i)!==-1,notContains:(i,e)=>!Array.isArray(e)&&typeof e!="string"?!1:e.indexOf(i)===-1,startsWith:(i,e)=>typeof e!="string"?!1:e.indexOf(i)===0,endsWitch:(i,e)=>typeof e!="string"?!1:e.indexOf(i,this.length-i.length)!==-1,matches(i,e){return!(i instanceof RegExp)||typeof e!="string"?!1:i.test(e)}},storedState:{},activeRow:null}},computed:{DEBUG(){return this.verbose},axiosFinal(){return this.axios?this.axios:this.$globalVueQuintableaxios?this.$globalVueQuintableaxios:me},configFinal(){if(!this.config)return{};let i=!1;if(this.config.pagination===!0)i=25;else if(this.config.pagination){let h=0;for(;this.paginationOptions[h]<=this.config.pagination&&h<this.paginationOptions.length;)h++;i=this.paginationOptions[Math.min(h-1,this.paginationOptions.length-1)]}let e="of";this.config.numberOfVisibleRowsFillerWord&&(e=this.config.numberOfVisibleRowsFillerWord);let t=!1;this.config.select&&(t=!0);let s=250;this.config.ajaxRequestDelay&&(s=this.config.ajaxRequestDelay);let n="bg-muted";this.config.hoverClass===!1?n="":this.config.hoverClass&&this.config.hoverClass!==!0&&(n=this.config.hoverClass);let l="bg-muted";this.config.activeClass===!1?l="":this.config.activeClass&&this.config.activeClass!==!0&&(l=this.config.activeClass);let a=!1;this.config.multiSort&&(a=!0);let o=!1;this.config.pageSort&&(o=!0);let r=!1;this.config.multiSortSelect&&(r=!0);let c=!1;this.config.pageSortSelect&&(c=!0);let u=!1;this.config.ajaxUrl&&(u=this.config.ajaxUrl);let f="post";["pre","post"].includes(this.config.selectPosition)&&(f=this.config.selectPosition);let d=!1;this.config.expandedAll&&(d=!0);let p=!1;this.config.useFuzzySearch&&(p=!0);let w=!1;this.config.prettySelect&&(w=!0);let b=!1;this.config.rowsSelect&&(b=!0);let v=!1;this.config.keepSelect&&(v=!0);let y=!1;this.config.disallowAllOption&&(y=!0);let g=!1;this.config.hideEmptyColumns&&(g=!0);let F="none";["none","active","all"].includes(this.config.ignoreSortEmptyColumns)&&(F=this.config.ignoreSortEmptyColumns);let z=!1;this.config.search&&(z=!0);let I=1;this.config.searchLength&&(I=this.config.searchLength);let J="Search...";this.config.searchPlaceholder&&(J=this.config.searchPlaceholder);let W="Multiple sort";this.config.multiSortPlaceholder&&(W=this.config.multiSortPlaceholder);let X="Page sort";this.config.pageSortPlaceholder&&(X=this.config.pageSortPlaceholder);let Y="AND";["AND","OR"].includes(this.config.filterRelation)&&(Y=this.config.filterRelation);let Z="AND";["AND","OR"].includes(this.config.filterGroupRelation)&&(Z=this.config.filterGroupRelation);let ee="Rows per page:";this.config.rowsPlaceholder&&(ee=this.config.rowsPlaceholder);let te="No rows...";this.config.emptyPlaceholder&&(te=this.config.emptyPlaceholder);let ie=!1;this.config.selectAll&&(ie=!0);let P=!1;this.config.selectAllRows&&(P=!0),u&&P&&(console.warn("Option selectAllRows was deactivated automatically because ajaxUrl is set!"),P=!1);let q=!1;this.config.storeState&&(q=!0),!this.identifier&&this.config.storeState&&(console.warn("Option storeState was deactivated automatically because table identifier is not set!"),q=!1);const $="test-local-storage";try{localStorage.setItem($,$),localStorage.removeItem($)}catch(h){console.warn("Option storeState was deactivated automatically because local storage is not available!"),q=!1}let se=!1;this.config.defaultSelected&&(se=!0);let ne=!1;this.config.hideRowToggle&&(ne=!0);let le=!1;this.config.enableRowTabIndex&&(le=!0);let ae="chevron-up";this.config.expandedRowIcon&&typeof this.config.expandedRowIcon=="string"&&["chevron-up","minus","caret-up","eye-slash"].includes(this.config.expandedRowIcon.toLowerCase())&&(ae=this.config.expandedRowIcon.toLowerCase());let oe="chevron-down";this.config.collapsedRowIcon&&typeof this.config.collapsedRowIcon=="string"&&["chevron-down","plus","caret-down","eye"].includes(this.config.collapsedRowIcon.toLowerCase())&&(oe=this.config.collapsedRowIcon.toLowerCase());let re=5;this.config.pageRange&&(re=this.config.pageRange);let ce="col-12";this.config.searchClass&&(ce=this.config.searchClass);let he="row";this.config.searchContainerClass&&(he=this.config.searchContainerClass);let ue="GET";this.config.requestMethod&&typeof this.config.requestMethod=="string"&&["POST","GET"].includes(this.config.requestMethod.toUpperCase())&&(ue=this.config.requestMethod.toUpperCase());let fe=0,T=[],E=[],L=[],O=[],V=[],U=[],R=[],D=[],de=null;if(this.config.columns){fe=this.config.columns.length;for(let h=0;h<this.config.columns.length;h++)R[h]="",this.config.columns[h]&&this.config.columns[h].headline?(T[h]=this.config.columns[h].headline,R[h]+=this.config.columns[h].headline.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/\s+/g,"-").toLowerCase()):T[h]="",R[h]+=" column-"+(h+1),this.config.columns[h].classes&&(R[h]+=" "+this.config.columns[h].classes),this.config.columns[h]&&this.config.columns[h].breakpoint?E[h]=this.config.columns[h].breakpoint:E[h]="",this.config.columns[h]&&this.config.columns[h].sort?this.config.columns[h].firstSortDirection&&typeof this.config.columns[h].firstSortDirection=="string"&&["DESC","ASC"].includes(this.config.columns[h].firstSortDirection.toUpperCase())?O[h]=this.config.columns[h].firstSortDirection.toUpperCase():O[h]=!0:O[h]=!1,this.config.columns[h]&&this.config.columns[h].ignoreEmpty?D[h]=!0:D[h]=!1,this.config.columns[h]&&this.config.columns[h].sticky?V[h]=!0:V[h]=!1,this.config.columns[h]&&this.config.columns[h].hidden?L[h]=!0:L[h]=!1,this.config.columns[h]&&this.config.columns[h].align?U[h]=this.config.columns[h].align:U[h]=!1;de=this.config.columns}return{headlines:T,columnClasses:R,sorts:O,pageSort:o,multiSort:a,pageSortSelect:c,multiSortSelect:r,filterGroupRelation:Z,filterRelation:Y,rowsSelect:b,keepSelect:v,disallowAllOption:y,defaultSelected:se,searchLength:I,search:z,searchPlaceholder:J,useFuzzySearch:p,ajaxUrl:u,pageSortPlaceholder:X,multiSortPlaceholder:W,rowsPlaceholder:ee,emptyPlaceholder:te,stickyCols:V,alignments:U,breakpoints:E,hiddenCols:L,ignoreEmpty:D,hideEmptyColumns:g,ignoreSortEmptyColumns:F,pagination:i,numberOfVisibleRowsFillerWord:e,select:t,selectAll:ie,selectAllRows:P,hoverClass:n,activeClass:l,expandedAll:d,pageRange:re,prettySelect:w,number:fe,columns:de,hideRowToggle:ne,enableRowTabIndex:le,expandedRowIcon:ae,collapsedRowIcon:oe,selectPosition:f,searchClass:ce,searchContainerClass:he,requestMethod:ue,storeState:q,ajaxRequestDelay:s}},visibleRows(){if(this.rowsUpdatedKey&&!this.configFinal.ajaxUrl&&this.currentRowsPerPage!=="All"){let i=[];for(let l=0;l<this.rowsFinal.length;l++)i.push(!1);let e={};for(let l in this.sortedIndexes)Object.prototype.hasOwnProperty.call(this.sortedIndexes,l)&&this.filteredRows[this.sortedIndexes[l]]&&(e[l]=this.sortedIndexes[l]);let t=this.currentPage*this.currentRowsPerPage,s=t-this.currentRowsPerPage,n=0;for(let l in e)Object.prototype.hasOwnProperty.call(e,l)&&(l=parseInt(l),n<t&&n>=s&&(i[e[l]]=!0),n++);return i}else return this.filteredRows},visibleRowIndexes(){let i=[];if(this.indexesUpdatedKey)if(this.configFinal.ajaxUrl&&!this.pageSort)for(let e=0;e<this.rowsFinal.length;e++)i.push(e);else for(let e in this.sortedIndexes)Object.prototype.hasOwnProperty.call(this.sortedIndexes,e)&&this.visibleRows[this.sortedIndexes[e]]&&i.push(this.sortedIndexes[e]);return i},generatedRows(){let i={};if(this.generatedUpdatedKey)for(let e=0;e<this.rowsFinal.length;e++){let t=this.rowsFinal[e].cells?this.rowsFinal[e].cells:this.rowsFinal[e],s={};for(let n=0;n<this.hiddenBreakpoints.length;n++){let l=this.hiddenBreakpoints[n];for(let a=0;a<this.configFinal.columns.length;a++){let o=this.configFinal.columns[a];!(this.configFinal.hiddenCols[a]||!this.configFinal.ignoreEmpty[a]&&this.configFinal.hideEmptyColumns&&(this.isColEmpty(a)||this.isColEmpty(a,e))||this.emptyColumns[a])&&o.breakpoint&&(o.breakpoint.toLocaleLowerCase()==="all"||o.breakpoint.toLocaleLowerCase()===l)&&!o.sticky&&!o.alwaysExpanded&&(s[a]=t[a])}}i[e]=s}return i},stickyRows(){let i={};for(let e=0;e<this.rowsFinal.length;e++){let t=this.rowsFinal[e].cells?this.rowsFinal[e].cells:this.rowsFinal[e],s={};for(let n=0;n<this.hiddenBreakpoints.length;n++){let l=this.hiddenBreakpoints[n];for(let a=0;a<this.configFinal.columns.length;a++){let o=this.configFinal.columns[a];const r=this.configFinal.hiddenCols[a]||!this.configFinal.ignoreEmpty[a]&&this.configFinal.hideEmptyColumns&&(this.isColEmpty(a)||this.isColEmpty(a,e))||this.emptyColumns[a];(!r&&o.sticky||!r&&o.breakpoint&&(o.breakpoint.toLocaleLowerCase()==="all"||o.breakpoint.toLocaleLowerCase()===l)&&o.alwaysExpanded)&&(s[a]=t[a])}}i[e]=s}return i},allSelectedProperty:{get(){return this.allSelectedCustom===null?this.configFinal.defaultSelected:this.allSelectedCustom},set(i){this.allSelectedCustom=i}},currentRowsPerPageProperty:{get(){return this.customRowsPerPage?this.customRowsPerPage:this.currentRowsPerPage},set(i){this.customRowsPerPage=i}},pageSort:{get(){return this.customPageSort===null?this.configFinal.pageSort:this.customPageSort},set(i){this.customPageSort=i}},multiSort:{get(){return this.customMultiSort===null?this.configFinal.multiSort:this.customMultiSort},set(i){this.customMultiSort=i}},currentRowsPerPage(){return this.customRowsPerPage?this.customRowsPerPage:this.configFinal.pagination?this.configFinal.pagination:"All"},hasGeneratedRows(){for(let i in this.generatedRows)if(Object.prototype.hasOwnProperty.call(this.generatedRows,i)&&Object.keys(this.generatedRows[i]).length)return!0;return!1},cellClassesParsed(){let i=[];for(let e=0;e<this.rowsFinal.length;e++){i.push([]);let t=this.rowsFinal[e].align,s=this.rowsFinal[e].cells?this.rowsFinal[e].cells:this.rowsFinal[e];for(let n=0;n<s.length;n++){let l=[],a=this.configFinal.alignments[n];if((s[n].align||t||a)&&(s[n].align?l.push("text-"+s[n].align):t?l.push("text-"+t):l.push("text-"+a)),s[n].classes){let o=s[n].classes.split(" ");Array.prototype.push.apply(l,o)}i[e].push(l.join(" "))}}return i},hiddenColumns(){const i={};for(let e=0;e<this.visibleRowIndexes.length;e++){let t=0;const s=this.visibleRowIndexes[e];for(let n=0;n<this.hiddenBreakpoints.length;n++){let l=this.hiddenBreakpoints[n];for(let a=0;a<this.configFinal.columns.length;a++){let o=this.configFinal.columns[a];if(!(this.configFinal.hiddenCols[a]||!this.configFinal.ignoreEmpty[a]&&this.configFinal.hideEmptyColumns&&(this.isColEmpty(a)||this.isColEmpty(a,s))||this.emptyColumns[a])&&o.breakpoint&&(o.breakpoint.toLocaleLowerCase()==="all"||o.breakpoint.toLocaleLowerCase()===l)){t++;break}}}i[s]=t}return i},rowsFinal(){return this.configFinal.ajaxUrl?this.ajaxRows:this.rows?this.rows:[]},someSelected(){return Object.values(this.selected).filter(i=>i).length>0},numberOfSorts(){return Object.keys(this.currentSortIndexes).length},paginationOptionsFilled(){return(this.configFinal.disallowAllOption?[]:["All"]).concat(this.paginationOptions)},sortingColumns(){let i={};for(let e in this.currentSortIndexes)Object.prototype.hasOwnProperty.call(this.currentSortIndexes,e)&&(i[e]=this.configFinal.columns[e]);return i},headerClass(){let i=[];for(let e=0;e<this.configFinal.number;e++){let t=[];this.configFinal.alignments[e]&&t.push("text-"+this.configFinal.alignments[e]),this.configFinal.sorts[e]&&(t.push("sort-header"),this.currentSortIndexes[e]&&t.push("active")),i.push(t.join(" ")+" quintable--table-container--table--header-row--th "+this.configFinal.columnClasses[e])}return i},pageRange(){return Math.min(this.configFinal.pageRange,this.pages)},pages(){return this.ajaxPages?this.ajaxPages:!this.currentRowsPerPage||this.currentRowsPerPage==="All"?1:Math.max(1,Math.ceil(this.numberOfVisibleRows/this.currentRowsPerPage))},numberOfVisibleRows(){return this.configFinal.ajaxUrl?this.ajaxAll:this.filteredRows.filter(i=>i).length},visiblePages(){let i=[],e=0;if(this.pages<this.pageRange||this.currentPage===1)e=1;else if(this.currentPage===this.pages)e=this.currentPage-(this.pageRange-1);else{let t;this.pageRange%2===0?t=this.pageRange/2:(t=(this.pageRange-1)/2,this.currentPage+t>this.pages&&t++),e=this.currentPage-t}e=Math.max(e+this.pageOffset,1);for(let t=0;t<this.pageRange&&!(t+e>this.pages);t++)i.push(t+e);return i},filterActive(){return this.filtersFinal&&Object.keys(this.filtersFinal).length},filteredRows(){let i=[];if(this.configFinal.ajaxUrl)return this.rowsFinal;for(let e=0;e<this.rowsFinal.length;e++)i.push(!0);if(!this.configFinal.search&&!this.filterActive||!this.filterActive&&this.configFinal.search&&this.query.length<this.configFinal.searchLength)return i;for(let e=0;e<this.rowsFinal.length;e++){let t=this.rowsFinal[e].cells?this.rowsFinal[e].cells:this.rowsFinal[e],s=!1,n=!1;if(this.configFinal.search&&this.query.length>=this.configFinal.searchLength){for(let l=0;l<t.length;l++){let a=t[l],o=a.html?a.html:a.text;if(o){if(this.configFinal.useFuzzySearch&&M((o+"").toLowerCase(),(this.query+"").toLowerCase()).score>6){s=!0;break}if((o+"").toLowerCase().indexOf((this.query+"").toLowerCase())!==-1){s=!0;break}}}if(this.rowsFinal[e].keywords)for(let l=0;l<this.rowsFinal[e].keywords.length;l++){if(this.configFinal.useFuzzySearch&&M((this.rowsFinal[e].keywords[l]+"").toLowerCase(),(this.query+"").toLowerCase()).score>6){s=!0;break}if((this.rowsFinal[e].keywords[l]+"").toLowerCase().indexOf((this.query+"").toLowerCase())!==-1){s=!0;break}}n=!0}if(this.filterActive&&!this.rowsFinal[e].filters)s=!1;else if((n&&s||!n)&&this.filterActive){if(this.filterGroups.length)s=this.doFiltering(this.rowsFinal[e].filters);else{let l={items:[],relation:this.configFinal.filterRelation};for(let a in this.filtersFinal)Object.prototype.hasOwnProperty.call(this.filtersFinal,a)&&l.items.push({name:a});s=this.doFilteringForGroup(this.filtersFinal,this.rowsFinal[e].filters,l),this.DEBUG&&console.log("FILTER GROUPS CALCULATED",this.filterGroups)}this.DEBUG&&(console.log(` `),console.log("ROW "+e,s,this.rowsFinal[e].filters),console.log(` `))}i[e]=s}return i},noRows(){return!this.numberOfVisibleRows},firstVisibleRow(){return this.currentRowsPerPage==="All"||this.pages===1?1:this.currentPage*this.currentRowsPerPage-this.currentRowsPerPage+1},lastVisibleRow(){return this.currentRowsPerPage==="All"||this.pages===1?this.numberOfVisibleRows:Math.min(this.firstVisibleRow+this.currentRowsPerPage-1,this.numberOfVisibleRows)},ajaxLoading(){return this.loading||this.fetching},showHeadlines(){let i=[];for(let e=0;e<this.configFinal.number;e++)this.configFinal.headlines[e]&&(!this.configFinal.columns[e].showHeadlineBreakpoint||this.configFinal.columns[e].showHeadlineBreakpoint&&this.hiddenBreakpoints.findIndex(t=>this.configFinal.columns[e]&&t===this.configFinal.columns[e].showHeadlineBreakpoint)!==-1)&&(!this.configFinal.columns[e].hideHeadlineBreakpoint||this.configFinal.columns[e].hideHeadlineBreakpoint&&this.hiddenBreakpoints.findIndex(t=>this.configFinal.columns[e]&&t===this.configFinal.columns[e].hideHeadlineBreakpoint)===-1)?i.push(!0):i.push(!1);return i},operators(){return Object.keys(this.operatorFunctions)},emptyColumns(){const i={},e=this.configFinal.ignoreSortEmptyColumns;for(let t=0;t<this.configFinal.number;t++){const s=this.configFinal.ignoreEmpty[t],n=this.configFinal.sorts[t];!this.configFinal.hideEmptyColumns||s||e==="none"&&n||e==="active"&&Object.keys(this.currentSortIndexes).includes(t+"")?i[t]=!1:i[t]=this.isColEmpty(t)}return i},filtersFinal(){return!this.configFinal.storeState||!this.storedState.filters?this.filters:this.storedState.filters},rowClasses(){const i={};for(let e=0;e<this.visibleRowIndexes.length;e++){const t=this.visibleRowIndexes[e],s=[];this.rowsFinal[t].classes&&s.push(this.rowsFinal[t].classes),this.hoveredRow===t&&s.push(this.configFinal.hoverClass),this.activeRow===t&&s.push(this.configFinal.activeClass),this.openRows[t]&&s.push("row-expanded"),this.hiddenColumns[t]>0&&!this.openRows[t]&&s.push("row-collapsed"),i[t]=s.join(" ")}return i}},watch:{rowsFinal:{handler(i){if(i&&i.length)for(let e=0;e<i.length;e++){let t=i[e].cells?i[e].cells:i[e];t.length!==this.config.columns.length&&console.error(`Column count on row index ${e} doesn't fit for column config! expected: ${this.config.columns.length}, got: ${t.length}`+(this.configFinal.ajaxUrl?` | URL: ${this.configFinal.ajaxUrl}`:"")+(this.identifier?` | IDENTIFIER: ${this.identifier}`:""),i[e])}},immediate:!0},preSelectedRows(i){if(i){for(let e=0;e<this.rowsFinal.length;e++)this.$set(this.selected,e,!1);if(i&&i.length){let e=0;const t=this.configFinal.selectAllRows?this.rowsFinal.map((s,n)=>n):this.visibleRowIndexes;for(let s=0;s<i.length;s++){const n=i[s].key,l=i[s].value;for(let a=0;a<t.length;a++){const o=t[a];!this.rowsFinal[o].disableSelect&&this.rowsFinal[o][n]===l&&(this.$set(this.selected,o,!0),e++)}}this.configFinal.selectAllRows?this.allSelectedCustom=e&&e===this.rowsFinal.filter(s=>!s.disableSelect).length:this.allSelectedCustom=e&&e===this.rowsFinal.filter((s,n)=>!s.disableSelect&&this.visibleRows[this.sortedIndexes[n]]).length}else this.allSelectedCustom=!1}},filters:{handler(){if(this.configFinal.ajaxUrl){const i=!(this.configFinal.storeState&&this.storedState.filters);this.pageSort=!1,this.loadViaAjax(i,i,"FILTERS")}this.pageSort&&(this.currentSortIndexes={},this.resetSorts(),this.recomputeEssentials()),this.configFinal.storeState&&(this.$delete(this.storedState,"filters"),localStorage.setItem(`vue-quintable-${this.identifier}-filters`,JSON.stringify(this.filtersFinal)))},deep:!0},filtersFinal(i){this.$emit("update:filters",i,"update:filters")},updated(i){this.configFinal.ajaxUrl&&(i&&i.clear?this.loadViaAjax(!0,!0,"UPDATED"):i&&this.loadViaAjax(!1,!0,"UPDATED"))},loading(){this.loaderHeight=this.$refs["height-wrapper"]?this.$refs["height-wrapper"].clientHeight:0},filteredRows:{handler(i,e){if(JSON.stringify(i)===JSON.stringify(e)||this.configFinal.ajaxUrl)return;this.visibleRowIndexes.findIndex(n=>n===this.activeRow)<0&&(this.activeRow=null),this.currentPage!==1?this.currentPage=1:this.configFinal.keepSelect||this.resetSelect("filteredRows watcher");const s=[];for(let n=0;n<i.length;n++){const l=n.toString();i[n]&&s.push(this.rowsFinal[this.sortedIndexes[l]?this.sortedIndexes[l]:n])}this.$emit("filtered:rows",s,"filtered:rows")},deep:!0,immediate:!0},hiddenBreakpoints(i){this.initBreakpoints||this.$emit("change:breakpoints",i,"change:breakpoints"),this.initBreakpoints=!1},hoveredRow(i){i!==null&&this.$emit("hover:row",this.rowsFinal[i],"hover:row")},query(i,e){if(this.lastQuery=e,this.configFinal.ajaxUrl){this.pageSort=!1;const t=!(this.configFinal.storeState&&this.storedState.query);clearTimeout(this.queryAjaxTimeout),this.queryAjaxTimeout=setTimeout(()=>{this.loadViaAjax(t,t,"QUERY")},this.configFinal.ajaxRequestDelay)}i.length>=this.configFinal.searchLength&&this.lastSearchQueryUpdated!==i?(this.$emit("update:search",i,"update:search"),this.lastSearchQueryUpdated=i):this.lastSearchQueryUpdated!==null&&(this.lastSearchQueryUpdated=null,this.$emit("update:search",null,"update:search")),this.pageSort&&(this.currentSortIndexes={},this.resetSorts(),this.recomputeEssentials()),this.configFinal.storeState&&(this.$delete(this.storedState,"query"),localStorage.setItem(`vue-quintable-${this.identifier}-query`,this.query))},currentRowsPerPage(i){this.$emit("update:rows-per-page",i,"update:rows-per-page");const e=!(this.configFinal.storeState&&this.storedState["rows-per-page"]);if(this.configFinal.storeState&&(this.$delete(this.storedState,"rows-per-page"),localStorage.setItem(`vue-quintable-${this.identifier}-rows-per-page`,this.currentRowsPerPage)),this.configFinal.ajaxUrl){this.loadViaAjax(e,e,"PAGE_ROWS");return}this.currentPage!==1?this.currentPage=1:this.configFinal.selectAllRows||this.resetSelect("currentRowsPerPage watcher")},rows(){this.clearLists(),this.initLists(),this.activeRow=null,this.$nextTick(()=>{this.recomputeEssentials(),this.$forceUpdate(),this.configFinal.defaultSelected&&(this.allSelectedCustom=null,this.checkAll(!0))})},config(i){if(typeof i!="object")throw"config must be an object";this.dynamicConfig||(this.initLists(),this.$forceUpdate(),this.activeRow=null,this.configFinal.ajaxUrl&&this.loadViaAjax(!1,!0,"CONFIG"),this.configFinal.defaultSelected&&this.checkAll(!0))},selected:{handler(i){let e=[];for(let t in this.sortedIndexes)if(Object.prototype.hasOwnProperty.call(this.sortedIndexes,t)&&i[this.sortedIndexes[t]]){const s=this.rowsFinal[this.sortedIndexes[t]];s.disableSelect||e.push(s)}this.configFinal.storeState&&localStorage.setItem(`vue-quintable-${this.identifier}-selected-rows`,JSON.stringify(i)),this.$emit("input",e),this.$emit("update:selected-rows",e,"update:selected-rows")},deep:!0},currentPage(i){this.pageOffset=0,this.activeRow=null,this.$emit("update:page",i,"update:page");const e=!(this.configFinal.storeState&&this.storedState["current-page"]);if(this.configFinal.storeState&&(this.$delete(this.storedState,"current-page"),localStorage.setItem(`vue-quintable-${this.identifier}-current-page`,this.currentPage)),this.configFinal.ajaxUrl){this.resetSelect("currentPage watcher ajax"),this.loadViaAjax(!1,e,"PAGE");return}this.configFinal.selectAllRows||this.resetSelect("currentPage watcher"),this.pageSort&&(this.currentSortIndexes={},this.resetSorts()),this.recomputeEssentials()},customMultiSort(i){if(!i&&Object.keys(this.currentSortIndexes).length>1){let e,t;for(let s in this.currentSortIndexes)if(Object.prototype.hasOwnProperty.call(this.currentSortIndexes,s)&&this.currentSortIndexes[s].order===0){e=this.currentSortIndexes[s],t=s;break}this.currentSortIndexes={},this.$set(this.currentSortIndexes,t,e),this.sort()}},pageSort(){this.currentSortIndexes={},this.resetSorts(),this.recomputeEssentials()},sortOrder:{immediate:!0,handler(){this.currentSortIndexes={};for(let i=0;i<this.sortOrder.length;i++)typeof this.sortOrder[i]=="object"?this.setSortColumn(this.sortOrder[i].index,this.sortOrder[i].asc):typeof this.sortOrder[i]=="number"&&this.setSortColumn(this.sortOrder[i])}},activeRow(i){const e=this.visibleRowIndexes.findIndex(t=>t===i);this.$emit("active:row",this.rowsFinal[i],"active:row",e)}},methods:{setSearchQuery(i){this.query=i},valueToString:function(i){switch(i){case"":case null:case!1:case void 0:return"";case 0:case"0":default:return String(i)}},isColEmpty(i,e=-1){return(e>-1?[e]:this.visibleRowIndexes).map(n=>this.rowsFinal[n]).filter(n=>{const l=n.cells?n.cells:n;return typeof l[i].isEmpty=="boolean"&&l[i].isEmpty===!0?!1:!!(typeof l[i].isEmpty=="boolean"&&l[i].isEmpty===!1||typeof l[i].text!="undefined"&&this.valueToString(l[i].text)||typeof l[i].html!="undefined"&&this.valueToString(l[i].html))}).length<=0},handleComponentEvent(i){this.$emit("component:event",i,"component:event")},updatePageOffset(i){let e=this.pageOffset+this.pageRange*i;if(i>0){let t=Math.min(e,this.pages-this.pageRange);this.pageOffset=Math.min(t,this.pages-this.currentPage)}else i<0?this.pageOffset=Math.max(e,-(this.pages-this.pageRange)):this.pageOffset=0},cellFormatters(i,e){if(typeof this.configFinal.columns[i].cellFormatter=="function"){let t=this.configFinal.columns[i].cellFormatter(e);return typeof t!="object"&&(t={value:t}),t}return this.valueToString(e.html)?e.html:this.valueToString(e.text)?e.text:""},checkListener(i,e){let t=Object.keys(this.selected).slice().map(s=>!!this.selected[s]||!!(this.rowsFinal[parseInt(s)]&&this.rowsFinal[parseInt(s)].disableSelect));t[e]=!!i,this.configFinal.selectAllRows?t.indexOf(!1)===-1?this.allSelectedProperty=!0:this.allSelectedProperty=!1:(t=t.filter((s,n)=>this.visibleRowIndexes.includes(n)),t.indexOf(!1)!==-1?this.allSelectedProperty=!1:t.indexOf(!1)===-1&&(this.allSelectedProperty=!0))},hasSomeParentTheClass(i,e){return i instanceof HTMLElement&&i.classList.contains(e)?!0:i instanceof Element&&i.parentNode&&this.hasSomeParentTheClass(i.parentNode,e)},hasSomeParentTagName(i,e){return i instanceof HTMLElement&&i.tagName.toLowerCase()===e.toLowerCase()?!0:i instanceof Element&&i.parentNode&&this.hasSomeParentTagName(i.parentNode,e)},onRowAuxClick(i,e){if(i.button===1){const t=parseInt(e);this.$emit("auxclick:row",this.rowsFinal[t],"auxclick:row",i.target,i,t)}},onRowMousedown(i){i.which===2&&i.preventDefault()},onRowClick(i,e){if((i.target||{}).type==="checkbox")return;if(this.hasSomeParentTheClass(i.target,"generated-table")&&!this.nested)return;let t=this.hasSomeParentTagName(i.target,"a"),s=this.hasSomeParentTheClass(i.target,"prevent-toggle");const n=e.toString(),l=parseInt(e);this.hiddenColumns[n]&&!t&&!s&&(this.openRows[n]?(this.$set(this.openRows,n,!1),this.$emit("expand:row",this.rowsFinal[this.sortedIndexes[n]],"collapse:row",this.sortedIndexes[n])):(this.$set(this.openRows,n,!0),this.$emit("expand:row",this.rowsFinal[this.sortedIndexes[n]],"expand:row",this.sortedIndexes[n])),this.generatedUpdatedKey=Date.now()),this.configFinal.enableRowTabIndex&&(this.activeRow===l?this.activeRow=null:this.activeRow=l),this.$emit("click:row",this.rowsFinal[l],"click:row",i.target,i,l)},onCellClick(i,e){this.$emit("click:cell",e,"click:cell",i.target,i)},onCellAuxClick(i,e){i.button===1&&this.$emit("auxclick:cell",e,"auxclick:cell",i.target,i)},onCellMousedown(i){i.which===2&&i.preventDefault()},onMouseenterRow(i){this.hoveredRow!==i&&(this.hoveredRow=i)},onMouseleaveTable(){this.hoveredRow=null},removeSort(i){for(let e in this.currentSortIndexes)if(Object.prototype.hasOwnProperty.call(this.currentSortIndexes,e)){let t=this.currentSortIndexes[e];t.order>this.currentSortIndexes[i].order&&t.order--,this.$set(this.currentSortIndexes,e,t)}this.$delete(this.currentSortIndexes,i),this.numberOfSorts===0?(this.resetSorts(),this.currentPage!==1?this.currentPage=1:this.recomputeEssentials(),this.configFinal.ajaxUrl&&!this.pageSort&&this.loadViaAjax(!0,!0,"SORT")):this.sort()},resetSorts(){for(let i=0;i<this.rowsFinal.length;i++){const e=i.toString();this.$set(this.sortedIndexes,e,i)}},checkAll(i=!1){let e=this.allSelectedProperty;i&&(e=!0);let t=0;for(let s in this.sortedIndexes)Object.prototype.hasOwnProperty.call(this.sortedIndexes,s)&&(s=parseInt(s),!this.rowsFinal[this.sortedIndexes[s]].disableSelect&&(!this.configFinal.selectAllRows&&this.visibleRows[this.sortedIndexes[s]]||this.configFinal.selectAllRows&&this.filteredRows[this.sortedIndexes[s]])?(this.$set(this.selected,this.sortedIndexes[s],e),t++):this.$set(this.selected,this.sortedIndexes[s],!1));e&&(this.configFinal.selectAllRows?this.allSelectedCustom=t&&t===this.rowsFinal.filter(s=>!s.disableSelect).length:this.allSelectedCustom=t&&t===this.rowsFinal.filter((s,n)=>!s.disableSelect&&this.visibleRows[this.sortedIndexes[n]]).length)},doFiltering(i){let e=[];for(let t=0;t<this.filterGroups.length;t++)e.push(this.doFilteringForGroup(this.filtersFinal,i,this.filterGroups[t])),this.DEBUG&&t<this.filterGroups.length-1&&console.log(this.configFinal.filterGroupRelation);return this.DEBUG&&console.log("RESULTS FOR GROUPS:",e,this.configFinal.filterGroupRelation),this.configFinal.filterGroupRelation==="AND"?e.indexOf(!1)===-1:this.configFinal.filterGroupRelation==="OR"?e.indexOf(!0)!==-1:!0},doFilteringForGroup(i,e,t,s=0){let n=" ";for(let a=0;a<s;a++)n+=" ";if(this.DEBUG){if(t.items){let a=n,o=t.items.slice(),r=function(c,u){return c.name===void 0?1:u.name===void 0?-1:0};o=o.sort(r);for(let c=0;c<o.length;c++)o[c].name&&(a+=o[c].name,c<o.length-1&&(a+=" "+t.relation+" "));console.log(a)}console.log(n,"GROUP:",t)}let l=!1;if(t.relation==="AND"){for(let a in i)if(Object.prototype.hasOwnProperty.call(i,a)){if(this.filterGroups.length&&!this.findInFilterGroups(a,this.filterGroups))continue;let o=!0;for(let r=0;r<t.items.length;r++){let c=t.items[r];if(c.name&&e[c.name]===void 0){o=!1;break}}if(o)for(let r=0;r<t.items.length;r++){let c=t.items[r];if(l=!0,c.items&&(l=this.doFilteringForGroup(i,e,c,s+1)),!l)break;if(typeof i[c.name]=="undefined")continue;let u=typeof i[c.name]=="object"&&i[c.name]!==null&&i[c.name].operator&&this.operators.includes(i[c.name].operator)?i[c.name].operator:this.defaultOperator,f=this.getFilterValues(i[c.name]);const d=typeof i[c.name].compare=="function"?i[c.name].compare:this.operatorFunctions[u];for(let p=0;p<f.length;p++)if(!d(f[p],e[c.name])){l=!1;break}if(!l)break}}return l}else if(t.relation==="OR"||t.items){for(let a in i)if(Object.prototype.hasOwnProperty.call(i,a)){if(this.filterGroups.length&&!this.findInFilterGroups(a,this.filterGroups))continue;for(let o=0;o<t.items.length;o++){let r=t.items[o];if(r.items&&(l=this.doFilteringForGroup(i,e,r,s+1),l))break;if(typeof i[r.name]=="undefined")continue;let c=typeof i[r.name]=="object"&&i[r.name]!==null&&i[r.name].operator&&this.operators.includes(i[r.name].operator)?i[r.name].operator:this.defaultOperator,u=this.getFilterValues(i[r.name]);const f=typeof i[r.name].compare=="function"?i[r.name].compare:this.operatorFunctions[c];for(let d=0;d<u.length;d++)if(f(u[d],e[r.name])){l=!0;break}if(l)break}}return l}else return!0},getFilterValues(i){return i instanceof RegExp||typeof i!="object"||i===null?[i]:Array.isArray(i)?i:this.getFilterValues(i.values)},findInFilterGroups(i,e,t=0){if(!e)return!1;let s=!1;for(let n=0;n<e.length;n++){let l=e[n];if(l.items&&(s=this.findInFilterGroups(i,l.items,t+1),s))break;if(l.name===i){s=!0;break}}return s},gotoPage(i){i==="prev"?this.currentPage-1>0&&this.currentPage--:i==="next"?this.currentPage+1<=this.pages&&this.currentPage++:i==="first"?this.currentPage=1:i==="last"?this.currentPage=this.pages:this.currentPage=i},setSortColumn(i,e){const t=parseInt(i),s=i.toString();if(!this.configFinal.sorts[t])return;let n;this.currentSortIndexes[s]?(n=this.currentSortIndexes[s],n.asc=!n.asc):(this.multiSort||(this.currentSortIndexes={}),n={headline:this.configFinal.headlines[t],index:t,asc:this.configFinal.sorts[t]===!0?!0:this.configFinal.sorts[t]==="ASC",order:this.numberOfSorts}),typeof e!="undefined"&&(n.asc=e),this.$set(this.currentSortIndexes,s,n),this.configFinal.storeState&&localStorage.setItem(`vue-quintable-${this.identifier}-sort-indexes`,JSON.stringify(this.currentSortIndexes)),this.$emit("update:sort",this.currentSortIndexes,"update:sort"),this.sort()},sort(i=!1){if(this.configFinal.ajaxUrl&&!this.pageSort){this.loadViaAjax(!i,!i,"SORT");return}let e=this.rowsFinal.slice(),t=[],s=[],n={};if(this.pageSort){if(s=this.visibleRowIndexes.slice(),!s.length){const f=this.configFinal.pagination?this.configFinal.pagination:this.rowsFinal.length;for(let d=0;d<f;d++)s.push(d)}let u=0;for(let f=0;f<e.length;f++)e[f].index=f,s.indexOf(f)!==-1&&(u<this.configFinal.pagination&&t.push(e[f]),u++);if(Object.keys(this.sortedIndexes).length)n=Object.assign({},this.sortedIndexes);else for(let f=0;f<e.length;f++)this.$set(n,f.toString(),f)}else{t=this.rowsFinal.slice();for(let u=0;u<t.length;u++)t[u].index=u}let l=[];for(let u in this.currentSortIndexes)if(Object.prototype.hasOwnProperty.call(this.currentSortIndexes,u)){let f=this.currentSortIndexes[u];f.index=u,l.push(f)}l.sort(function(u,f){return u.order-f.order});let a=(u,f,d,p)=>{p=p||0;let w=d[p],b=w.index,v=u.cells?u.cells:u,y=f.cells?f.cells:f,g=typeof v[b].sortValue!="undefined"&&v[b].sortValue!==null?v[b].sortValue:v[b].html?v[b].html:v[b].text;typeof v[b].computeSortValue=="function"&&(g=v[b].computeSortValue(this.currentSortIndexes));let F=typeof y[b].sortValue!="undefined"&&y[b].sortValue!==null?y[b].sortValue:y[b].html?y[b].html:y[b].text;return typeof y[b].computeSortValue=="function"&&(g=y[b].computeSortValue(this.currentSortIndexes)),typeof g=="string"&&(g=g.toLowerCase()),typeof F=="string"&&(F=F.toLowerCase()),isNaN(g)?(typeof g=="string"&&g.match(/^-?\d+$/)||typeof g=="string"&&g.match(/^\d+\.\d+$/))&&(g=parseFloat(g)):g=parseFloat(g),isNaN(F)?(typeof F=="string"&&F.match(/^-?\d+$/)||typeof F=="string"&&F.match(/^\d+\.\d+$/))&&(F=parseFloat(F)):F=parseFloat(F),w.asc?g>F?1:g<F?-1:d[p+1]?a(u,f,d,p+1):1:g<F?1:g>F?-1:d[p+1]?a(u,f,d,p+1):-1};t.sort(function(u,f){return a(u,f,l)});const o=[];let r=0,c=0;for(let u=0;u<e.length;u++){const f=u.toString();this.pageSort&&s.indexOf(u)!==-1?(r<this.configFinal.pagination?(o.push(t[c]),c++):o.push(e[n[f]]),r++):this.pageSort?o.push(e[n[f]]):o.push(t[u])}for(let u=0;u<o.length;u++){const f=u.toString();this.$set(this.sortedIndexes,f,parseInt(o[u].index))}!this.pageSort&&!i&&(this.currentPage=1),!this.configFinal.selectAllRows&&!this.pageSort&&!i&&!this.configFinal.keepSelect&&this.resetSelect("sort method"),this.recomputeEssentials()},recomputeEssentials(){this.$nextTick(()=>{this.rowsUpdatedKey=Date.now(),this.indexesUpdatedKey=Date.now(),this.generatedUpdatedKey=Date.now()})},initLists(){if(this.rowsFinal)for(let i=0;i<this.rowsFinal.length;i++){const e=i.toString();typeof this.sortedIndexes[e]=="undefined"&&this.$set(this.sortedIndexes,e,i),typeof this.selected[e]=="undefined"&&this.$set(this.selected,e,!1),this.configFinal.expandedAll||this.rowsFinal[i].expanded?this.$set(this.openRows,e,!0):this.$set(this.openRows,e,!1)}},clearLists(i=!0){i&&(this.selected={}),this.openRows={},this.sortedIndexes={}},resetSelect(i){this.DEBUG&&console.log("CALLED FROM:",i),this.allSelectedProperty=!1;for(let e=0;e<this.rowsFinal.length;e++)this.$set(this.selected,e,!1)},loadViaAjax(i=!1,e=!0,t=null){this.DEBUG&&console.log("CALLED FROM:",t);let s=this.query;if(s&&s.length<this.configFinal.searchLength&&(this.lastQuery.length<s.length||this.lastQuery.length<this.configFinal.searchLength))return;if(!s&&this.lastQuery){const a=this.lastQuery;if(this.lastQuery="",a.length<this.configFinal.searchLength)return}else s&&s.length<this.configFinal.searchLength&&(s="");this.cancelSource&&this.cancelSource.cancel("Operation canceled by the user."),this.clearLists(e),this.ajaxRows=[],i&&(this.currentPage=1,this.resetSelect("loadViaAjax method")),this.loaderHeight=this.$refs["height-wrapper"]?this.$refs["height-wrapper"].clientHeight:0,this.fetching=!0;let n={search:s,filters:this.filtersFinal,perPage:this.currentRowsPerPage,page:this.currentPage,hiddenColumns:this.configFinal.hiddenCols,sort:this.numberOfSorts>0?{indexes:this.currentSortIndexes,columns:this.sortingColumns}:null};this.cancelSource=this.axiosFinal.CancelToken.source();const l={"Content-Type":"application/json"};this.axiosFinal.request(this.configFinal.ajaxUrl,{method:this.configFinal.requestMethod,params:this.configFinal.requestMethod==="GET"?n:null,data:this.configFinal.requestMethod==="POST"?n:null,cancelToken:this.cancelSource.token,headers:l}).then(a=>{if(!a.data.rows||typeof a.data.rows.length=="undefined")throw"Response data has to contain rows property. Please see Readme.md for details";if(typeof a.data.all=="undefined")throw"Response data has to contain all property. Please see Readme.md for details";this.ajaxAll=a.data.all,this.ajaxPages=Math.max(1,Math.ceil(a.data.all/this.currentRowsPerPage)),this.$emit("ajax:rows",{rows:a.data.rows,old:JSON.parse(JSON.stringify(this.ajaxRows)),all:this.ajaxAll},"ajax:rows"),a.data.all&&(this.ajaxRows=a.data.rows,this.initLists()),this.fetching=!1}).catch(a=>{this.axiosFinal.isCancel(a)?console.log("Request canceled",a.message):(this.fetching=!1,console.error(a),this.$emit("ajax:error",a,"ajax:error"))})},elementVisible(i){return i?window.getComputedStyle(i).display!=="none":!1},breakpointListener(){clearTimeout(this.breakpointTimeout),this.breakpointTimeout=setTimeout(()=>{this.generateHiddenBreakpoints(!1)},250)},generateHiddenBreakpoints(i=!1){i&&(this.hiddenBreakpoints=[]);let e=[];this.elementVisible(this.$refs.xxl)||e.push("xxl"),this.elementVisible(this.$refs.xl)||e.push("xl"),this.elementVisible(this.$refs.lg)||e.push("lg"),this.elementVisible(this.$refs.md)||e.push("md"),this.elementVisible(this.$refs.sm)||e.push("sm"),e.push("all"),JSON.stringify(this.hiddenBreakpoints)!==JSON.stringify(e)&&(this.hiddenBreakpoints=e)},checkStoredSelectedRows(i=!1){if(this.storedState["pre-selected-rows"],this.storedState["selected-rows"]){this.selected=JSON.parse(JSON.stringify(this.storedState["selected-rows"]));const e=Object.values(this.selected).filter(t=>t).length;this.configFinal.selectAllRows?this.allSelectedCustom=e&&e===this.rowsFinal.length:this.allSelectedCustom=e&&e===this.visibleRows.filter(t=>t).length,i&&this.$delete(this.storedState,"selected-rows")}},checkKey(i){if(this.activeRow!==null){if(i.keyCode===40){i.preventDefault();const e=this.visibleRowIndexes.findIndex(t=>t===this.activeRow);e===this.visibleRowIndexes.length-1?this.activeRow=0:this.activeRow=this.visibleRowIndexes[e+1]}if(i.keyCode===38){i.preventDefault();const e=this.visibleRowIndexes.findIndex(t=>t===this.activeRow);e===0?this.activeRow=this.visibleRowIndexes[this.visibleRowIndexes.length-1]:this.activeRow=this.visibleRowIndexes[e-1]}}}},created(){if(this.configFinal.storeState){const t=localStorage.getItem(`vue-quintable-${this.identifier}-filters`);if(t){const r=JSON.parse(t);for(let c in this.filters)Object.prototype.hasOwnProperty.call(this.filters,c)&&!Object.prototype.hasOwnProperty.call(r,c)&&(r[c]=this.filters[c]);this.$set(this.storedState,"filters",r)}const s=localStorage.getItem(`vue-quintable-${this.identifier}-query`);s&&this.$set(this.storedState,"query",s);const n=localStorage.getItem(`vue-quintable-${this.identifier}-rows-per-page`);n&&this.$set(this.storedState,"rows-per-page",parseInt(n));const l=localStorage.getItem(`vue-quintable-${this.identifier}-selected-rows`);l&&this.$set(this.storedState,"selected-rows",JSON.parse(l));const a=localStorage.getItem(`vue-quintable-${this.identifier}-current-page`);a&&this.$set(this.storedState,"current-page",parseInt(a));const o=localStorage.getItem(`vue-quintable-${this.identifier}-sort-indexes`);o&&this.$set(this.storedState,"sort-indexes",JSON.parse(o))}this.initLists();let i=0;const e=this.configFinal.selectAllRows?this.rowsFinal.map((t,s)=>s):this.visibleRowIndexes;for(let t=0;t<e.length;t++){let s=this.rowsFinal[t];s.selected&&this.$set(this.selected,t,!0),s.selected&&i++}!this.configFinal.selectAllRows&&i&&i===this.rowsFinal.filter((t,s)=>!t.disableSelect&&this.visibleRows[this.sortedIndexes[s]]).length?this.allSelectedCustom=!0:this.configFinal.selectAllRows&&i&&i===this.rowsFinal.filter(t=>!t.disableSelect).length&&(this.allSelectedCustom=!0),this.initialSearchTerm&&(this.query=this.initialSearchTerm),this.storedState.query&&(this.query=this.storedState.query),this.storedState["rows-per-page"]&&(this.customRowsPerPage=this.storedState["rows-per-page"]),this.storedState["sort-indexes"]&&(this.currentSortIndexes=this.storedState["sort-indexes"],this.sort(!0)),this.storedState["current-page"]&&this.$nextTick(()=>{this.currentPage=this.storedState["current-page"]}),this.$nextTick(this.checkStoredSelectedRows),this.configFinal.enableRowTabIndex&&document.addEventListener("keydown",this.checkKey)},mounted(){this.configFinal.ajaxUrl&&this.loadViaAjax(!1,!0,"MOUNTED"),this.configFinal.defaultSelected&&this.checkAll(!0),this.generateHiddenBreakpoints(),window.addEventListener("resize",this.breakpointListener)},beforeDestroy(){window.removeEventListener("resize",this.breakpointListener),this.configFinal.enableRowTabIndex&&document.removeEventListener("keydown",this.checkKey)}};var qe=function(){var e=this,t=e._self._c;return t("div",{staticClass:"table-wrapper quintable"},[t("div",{staticClass:"breakpoints quintable--breakpoints"},[t("div",{ref:"xs"}),t("div",{ref:"sm",staticClass:"d-none d-sm-block"}),t("div",{ref:"md",staticClass:"d-none d-md-block"}),t("div",{ref:"lg",staticClass:"d-none d-lg-block"}),t("div",{ref:"xl",staticClass:"d-none d-xl-block"}),t("div",{ref:"xxl",staticClass:"d-none d-xxl-block"})]),t("div",{staticClass:"header slot slot-header quintable--header"},[e._t("header")],2),e.configFinal.search?t("div",{staticClass:"mb-3 quintable--search-container",class:e.configFinal.searchContainerClass},[e._t("before-search"),e._t("search",function(){return[t("div",{staticClass:"quintabl