vue-bulma-table
Version:
Vue DataTable with Bulma style
1 lines • 9.31 kB
JavaScript
module.exports=function(t){function e(r){if(a[r])return a[r].exports;var i=a[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var a={};return e.m=t,e.c=a,e.d=function(t,a,r){e.o(t,a)||Object.defineProperty(t,a,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var a=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(a,"a",a),a},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/",e(e.s=1)}([function(t,e,a){"use strict";var r=a(5),i=a.n(r);e.a={props:{fields:{type:Array,default:function(){return[]}},data:{type:Array,required:!0},pageLength:{type:[Array,Number],default:function(){return[10,25,50]}},loading:{type:Boolean,default:!1},lengthChange:{type:Boolean,default:!0},filterable:{type:Boolean,default:!0},pagination:{type:Boolean,default:!0},tableClass:{type:String,default:"table is-striped is-narrow is-fullwidth"},inputClass:{type:String,default:""},scrollable:{type:Boolean,default:!1},bodyHeight:{type:String,default:"300px"}},data:function(){return{perPage:10,from:0,tableFilter:"",columnsFilter:{},sort1:{field:"",order:""},sort2:{field:"",order:""},sort3:{field:"",order:""},regexSearch:!1}},computed:{columnslength:function(){return 0===Object.keys(this.columnsFilter).length},filteredData:function(){var t=this,e=this;return this.columnSearchable?i.a.filter(this.data,function(a){if(0===Object.keys(t.columnsFilter).length)return!0;var r=!0;for(var i in e.columnsFilter)0!==e.columnsFilter[i].length&&(r=r&&String(e.getObjectData(a,i)).toLowerCase().indexOf(e.columnsFilter[i].toLowerCase())>=0);return r}):i.a.filter(this.data,function(a){for(var r in e.fields){if(t.regexSearch)return String(e.getObjectData(a,e.fields[r].name)).search(e.tableFilter)>=0;if(String(e.getObjectData(a,e.fields[r].name)).toLowerCase().indexOf(e.tableFilter.toLowerCase())>=0)return!0}})},dataSort:function(){return i.a.orderBy(this.filteredData,[this.sort1.field,this.sort2.field,this.sort3.field],[this.sort1.order,this.sort2.order,this.sort3.order])},dataSet:function(){return this.scrollable?this.dataSort:this.dataSort.slice(this.from,this.from+this.perPage)},lastPage:function(){return Math.ceil(this.filteredData.length/this.perPage)},currentPage:function(){return Math.ceil(this.from/this.perPage)+1},columnSearchable:function(){return this.fields.filter(function(t){return void 0!==t.search?t.search:0}).length>0?1:0},floatHead:function(){var t="cursorPointer";return this.scrollable&&(t+=" floatHead"),t}},watch:{dataSet:function(t){this.$emit("currentData",t)},pageLength:function(t){this.perPage=Array.isArray(t)?t[0]:t},tableFilter:function(){this.from=0},columnsFilter:{handler:function(){this.from=0},deep:!0}},beforeMount:function(){this.scrollable?this.perPage=1e6:this.perPage=Array.isArray(this.pageLength)?this.pageLength[0]:this.pageLength},methods:{previousPage:function(){this.from-this.perPage>=0&&(this.from=this.from-this.perPage)},nextPage:function(){this.from+this.perPage<this.filteredData.length&&(this.from=this.from+this.perPage)},toFirstPage:function(){this.from=0},toLastPage:function(){this.from=Math.floor((this.filteredData.length-1)/this.perPage)*this.perPage},sortField:function(t){this.sort1.field===t.name?this.sort1.order="asc"!==this.sort1.order?"asc":"desc":(Object.assign(this.sort3,this.sort2),Object.assign(this.sort2,this.sort1),this.sort1={field:t.name,order:"asc"})},getObjectData:function(t,e){var a=t;return e.split(".").forEach(function(t){a=a[t]?a[t]:""}),a}}}},function(t,e,a){t.exports=a(2)},function(t,e,a){"use strict";function r(t){a(3)}Object.defineProperty(e,"__esModule",{value:!0});var i=a(0),n=a(6),s=a(4),l=r,o=s(i.a,n.a,!1,l,null,null);e.default=o.exports},function(t,e){},function(t,e){t.exports=function(t,e,a,r,i,n){var s,l=t=t||{},o=typeof t.default;"object"!==o&&"function"!==o||(s=t,l=t.default);var c="function"==typeof l?l.options:l;e&&(c.render=e.render,c.staticRenderFns=e.staticRenderFns,c._compiled=!0),a&&(c.functional=!0),i&&(c._scopeId=i);var u;if(n?(u=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(n)},c._ssrRegister=u):r&&(u=r),u){var f=c.functional,d=f?c.render:c.beforeCreate;f?(c._injectStyles=u,c.render=function(t,e){return u.call(e),d(t,e)}):c.beforeCreate=d?[].concat(d,u):[u]}return{esModule:s,exports:l,options:c}}},function(t,e){t.exports=require("lodash")},function(t,e,a){"use strict";var r=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticStyle:{position:"relative"}},[t.lengthChange||t.filterable?a("nav",{staticClass:"level is-mobile"},[t.lengthChange&&!t.scrollable?a("div",{staticClass:"level-left"},[a("div",{staticClass:"level-item"},[a("div",{staticClass:"select",class:t.inputClass},[a("select",{directives:[{name:"model",rawName:"v-model",value:t.perPage,expression:"perPage"}],on:{change:function(e){var a=Array.prototype.filter.call(e.target.options,function(t){return t.selected}).map(function(t){return"_value"in t?t._value:t.value});t.perPage=e.target.multiple?a:a[0]}}},t._l(t.pageLength,function(e,r){return a("option",{key:r,domProps:{value:e}},[t._v(t._s(e))])}),0)])])]):t._e(),t._v(" "),t.filterable&&!t.columnSearchable?a("div",{staticClass:"level-right"},[a("div",{staticClass:"level-item"},[a("div",{staticClass:"field"},[a("p",{staticClass:"control has-icons-left has-icons-right"},[a("input",{directives:[{name:"model",rawName:"v-model",value:t.tableFilter,expression:"tableFilter"}],staticClass:"input",class:t.inputClass,attrs:{type:"text",placeholder:"search"},domProps:{value:t.tableFilter},on:{input:function(e){e.target.composing||(t.tableFilter=e.target.value)}}}),t._v(" "),t._m(0)])])])]):t._e()]):t._e(),t._v(" "),a("div",{staticClass:"datatable-wrapper",style:{maxHeight:t.scrollable?t.bodyHeight:null}},[a("table",{class:t.tableClass},[a("thead",[a("tr",t._l(t.fields,function(e,r){return a("th",{key:r,class:t.floatHead,on:{click:function(a){return t.sortField(e)}}},[t._t(e.name+"Header",function(){return[a("span",[t._v(t._s(e.label||e.name))]),t._v(" "),t.sort1.field===e.name?a("i",{staticClass:"fa",class:"asc"===t.sort1.order?"fa-caret-up":"fa-caret-down"}):t._e()]},{data:e})],2)}),0),t._v(" "),t.columnSearchable?a("tr",t._l(t.fields,function(e,r){return a("th",{key:r},[e.search?a("div",{staticClass:"field is-narrow"},[a("div",{staticClass:"control"},[a("input",{directives:[{name:"model",rawName:"v-model",value:t.columnsFilter[e.name],expression:"columnsFilter[f.name]"}],staticClass:"input is-small",attrs:{type:"text",placeholder:e.label||e.name},domProps:{value:t.columnsFilter[e.name]},on:{input:function(a){a.target.composing||t.$set(t.columnsFilter,e.name,a.target.value)}}})])]):t._e()])}),0):t._e()]),t._v(" "),t.$slots.footer?a("tfoot",[t._t("footer",null,{data:t.dataSet})],2):t._e(),t._v(" "),a("tbody",t._l(t.dataSet,function(e,r){return a("tr",{key:r,class:e.DataTableRowClass?e.DataTableRowClass:"",on:{click:function(a){return t.$emit("onRowClick",e)}}},t._l(t.fields,function(r,i){return a("td",{key:i},[t._t(r.name,function(){return[t._v("\n "+t._s(r.callback?r.callback(e):t.getObjectData(e,r.name))+"\n ")]},{data:e})],2)}),0)}),0)])]),t._v(" "),t.pagination&&!t.scrollable?a("nav",{staticClass:"pagination is-centered",class:t.inputClass,attrs:{role:"navigation","aria-label":"pagination"}},[a("a",{staticClass:"pagination-previous",attrs:{disabled:t.from-t.perPage<0},on:{click:t.previousPage}},[t._v("Previous")]),t._v(" "),a("a",{staticClass:"pagination-next",attrs:{disabled:t.from+t.perPage>=t.filteredData.length},on:{click:t.nextPage}},[t._v("Next page")]),t._v(" "),a("ul",{staticClass:"pagination-list"},[a("li",[t.currentPage>1?a("a",{staticClass:"pagination-link",on:{click:t.toFirstPage}},[t._v("1")]):t._e()]),t._v(" "),a("li",[t.currentPage-2>1?a("span",{staticClass:"pagination-ellipsis"},[t._v("…")]):t._e()]),t._v(" "),a("li",[t.currentPage-1>1?a("a",{staticClass:"pagination-link",on:{click:t.previousPage}},[t._v(t._s(t.currentPage-1))]):t._e()]),t._v(" "),a("li",[a("a",{staticClass:"pagination-link is-current"},[t._v(t._s(t.currentPage))])]),t._v(" "),a("li",[t.currentPage+1<t.lastPage?a("a",{staticClass:"pagination-link",on:{click:t.nextPage}},[t._v(t._s(t.currentPage+1))]):t._e()]),t._v(" "),a("li",[t.currentPage+2<t.lastPage?a("span",{staticClass:"pagination-ellipsis"},[t._v("…")]):t._e()]),t._v(" "),a("li",[t.currentPage<t.lastPage?a("a",{staticClass:"pagination-link",on:{click:t.toLastPage}},[t._v(t._s(t.lastPage))]):t._e()])])]):t._e(),t._v(" "),t.loading?a("div",{staticStyle:{display:"flex","align-items":"center",position:"absolute",top:"0",width:"100%",height:"100%","background-color":"rgba(0,0,0,0.7)","box-shadow":"0 0 20px 5px rgba(0,0,0,0.7)"}},[t._m(1)]):t._e()])},i=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("span",{staticClass:"icon is-small is-left"},[a("i",{staticClass:"fa fa-search"})])},function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticStyle:{margin:"auto",color:"white"}},[a("i",{staticClass:"fa fa-circle-notch fa-3x fa-spin"})])}],n={render:r,staticRenderFns:i};e.a=n}]);