vuetable-2
Version:
Datatable component for Vue 2.x
2 lines • 40.7 kB
JavaScript
webpackJsonp([1],{108:function(t,e){},111:function(t,e,i){var a=i(8)(i(74),null,null,null,null);t.exports=a.exports},112:function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{class:[t.css.wrapperClass]},[i("a",{class:[t.css.linkClass,(a={},a[t.css.disabledClass]=t.isOnFirstPage,a)],on:{click:function(e){t.loadPage("prev")}}},[i("i",{class:t.css.icons.prev})]),t._v(" "),i("select",{class:["vuetable-pagination-dropdown",t.css.dropdownClass],on:{change:function(e){t.loadPage(e.target.selectedIndex+1)}}},t._l(t.totalPage,function(e){return i("option",{class:[t.css.pageClass],domProps:{value:e,selected:t.isCurrentPage(e)}},[t._v("\n "+t._s(t.pageText)+" "+t._s(e)+"\n ")])})),t._v(" "),i("a",{class:[t.css.linkClass,(n={},n[t.css.disabledClass]=t.isOnLastPage,n)],on:{click:function(e){t.loadPage("next")}}},[i("i",{class:t.css.icons.next})])]);var a,n},staticRenderFns:[]}},113:function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,i=t._self._c||e;return t.isFixedHeader?i("div",[i("div",{staticClass:"vuetable-head-wrapper"},[i("table",{class:["vuetable",t.css.tableClass,t.css.tableHeaderClass]},[i("thead",[i("tr",[t._l(t.tableFields,function(e,a){return[e.visible?[t.isSpecialField(e.name)?["__checkbox"==t.extractName(e.name)?i("th",{key:a,class:["vuetable-th-checkbox-"+t.trackBy,e.titleClass],style:{width:e.width}},[i("input",{attrs:{type:"checkbox"},domProps:{checked:t.checkCheckboxesState(e.name)},on:{change:function(i){t.toggleAllCheckboxes(e.name,i)}}})]):t._e(),t._v(" "),"__component"==t.extractName(e.name)?i("th",{key:a,class:["vuetable-th-component-"+t.trackBy,e.titleClass,t.sortClass(e),{sortable:t.isSortable(e)}],style:{width:e.width},domProps:{innerHTML:t._s(t.renderTitle(e))},on:{click:function(i){t.orderBy(e,i)}}}):t._e(),t._v(" "),"__slot"==t.extractName(e.name)?i("th",{key:a,class:["vuetable-th-slot-"+t.extractArgs(e.name),e.titleClass,t.sortClass(e),{sortable:t.isSortable(e)}],style:{width:e.width},domProps:{innerHTML:t._s(t.renderTitle(e))},on:{click:function(i){t.orderBy(e,i)}}}):t._e(),t._v(" "),"__sequence"==t.extractName(e.name)?i("th",{key:a,class:["vuetable-th-sequence",e.titleClass||""],style:{width:e.width},domProps:{innerHTML:t._s(t.renderTitle(e))}}):t._e(),t._v(" "),t.notIn(t.extractName(e.name),["__sequence","__checkbox","__component","__slot"])?i("th",{key:a,class:["vuetable-th-"+e.name,e.titleClass||""],style:{width:e.width},domProps:{innerHTML:t._s(t.renderTitle(e))}}):t._e()]:[i("th",{key:a,class:["vuetable-th-"+e.name,e.titleClass,t.sortClass(e),{sortable:t.isSortable(e)}],style:{width:e.width},attrs:{id:"_"+e.name},domProps:{innerHTML:t._s(t.renderTitle(e))},on:{click:function(i){t.orderBy(e,i)}}})]]:t._e()]}),t._v(" "),t.scrollVisible?i("th",{staticClass:"vuetable-gutter-col",style:{width:t.scrollBarWidth}}):t._e()],2)])])]),t._v(" "),i("div",{staticClass:"vuetable-body-wrapper",style:{height:t.tableHeight}},[i("table",{class:["vuetable",t.css.tableClass,t.css.tableBodyClass]},[i("colgroup",[t._l(t.tableFields,function(e,a){return[e.visible?[i("col",{key:a,class:["vuetable-th-"+e.name,e.titleClass],style:{width:e.width},attrs:{id:"_col_"+e.name}})]:t._e()]})],2),t._v(" "),i("tbody",{staticClass:"vuetable-body"},[t._l(t.tableData,function(e,a){return[i("tr",{key:a,class:t.onRowClass(e,a),attrs:{"item-index":a,render:t.onRowChanged(e)},on:{click:function(i){t.onRowClicked(e,i)},dblclick:function(i){t.onRowDoubleClicked(e,i)}}},[t._l(t.tableFields,function(n,s){return[n.visible?[t.isSpecialField(n.name)?["__sequence"==t.extractName(n.name)?i("td",{key:s,class:["vuetable-sequence",n.dataClass],domProps:{innerHTML:t._s(t.renderSequence(a))}}):t._e(),t._v(" "),"__handle"==t.extractName(n.name)?i("td",{key:s,class:["vuetable-handle",n.dataClass],domProps:{innerHTML:t._s(t.renderIconTag(["handle-icon",t.css.handleIcon]))}}):t._e(),t._v(" "),"__checkbox"==t.extractName(n.name)?i("td",{key:s,class:["vuetable-checkboxes",n.dataClass]},[i("input",{attrs:{type:"checkbox"},domProps:{checked:t.rowSelected(e,n.name)},on:{change:function(i){t.toggleCheckbox(e,n.name,i)}}})]):t._e(),t._v(" "),"__component"===t.extractName(n.name)?i("td",{key:s,class:["vuetable-component",n.dataClass]},[i(t.extractArgs(n.name),{tag:"component",attrs:{"row-data":e,"row-index":a,"row-field":n.sortField}})],1):t._e(),t._v(" "),"__slot"===t.extractName(n.name)?i("td",{key:s,class:["vuetable-slot",n.dataClass]},[t._t(t.extractArgs(n.name),null,{rowData:e,rowIndex:a,rowField:n.sortField})],2):t._e()]:[i("td",{key:s,class:n.dataClass,domProps:{innerHTML:t._s(t.renderNormalField(n,e))},on:{click:function(i){t.onCellClicked(e,n,i)},dblclick:function(i){t.onCellDoubleClicked(e,n,i)},contextmenu:function(i){t.onCellRightClicked(e,n,i)}}})]]:t._e()]})],2),t._v(" "),t.useDetailRow?[i("transition",{key:a,attrs:{name:t.detailRowTransition}},[t.isVisibleDetailRow(e[t.trackBy])?i("tr",{class:[t.css.detailRowClass],on:{click:function(i){t.onDetailRowClick(e,i)}}},[i("td",{attrs:{colspan:t.countVisibleFields}},[i(t.detailRowComponent,{tag:"component",attrs:{"row-data":e,"row-index":a}})],1)]):t._e()])]:t._e()]}),t._v(" "),t.displayEmptyDataRow?[i("tr",[i("td",{staticClass:"vuetable-empty-result",attrs:{colspan:t.countVisibleFields},domProps:{innerHTML:t._s(t.noDataTemplate)}})])]:t._e(),t._v(" "),t.lessThanMinRows?t._l(t.blankRows,function(e){return i("tr",{key:e,staticClass:"blank-row"},[t._l(t.tableFields,function(e,a){return[e.visible?i("td",{key:a},[t._v(" ")]):t._e()]})],2)}):t._e()],2)])])]):i("table",{class:["vuetable",t.css.tableClass]},[i("thead",[i("tr",[t._l(t.tableFields,function(e,a){return[e.visible?[t.isSpecialField(e.name)?["__checkbox"==t.extractName(e.name)?i("th",{key:a,class:["vuetable-th-checkbox-"+t.trackBy,e.titleClass],style:{width:e.width}},[i("input",{attrs:{type:"checkbox"},domProps:{checked:t.checkCheckboxesState(e.name)},on:{change:function(i){t.toggleAllCheckboxes(e.name,i)}}})]):t._e(),t._v(" "),"__component"==t.extractName(e.name)?i("th",{key:a,class:["vuetable-th-component-"+t.trackBy,e.titleClass,t.sortClass(e),{sortable:t.isSortable(e)}],style:{width:e.width},domProps:{innerHTML:t._s(t.renderTitle(e))},on:{click:function(i){t.orderBy(e,i)}}}):t._e(),t._v(" "),"__slot"==t.extractName(e.name)?i("th",{key:a,class:["vuetable-th-slot-"+t.extractArgs(e.name),e.titleClass,t.sortClass(e),{sortable:t.isSortable(e)}],style:{width:e.width},domProps:{innerHTML:t._s(t.renderTitle(e))},on:{click:function(i){t.orderBy(e,i)}}}):t._e(),t._v(" "),"__sequence"==t.extractName(e.name)?i("th",{key:a,class:["vuetable-th-sequence",e.titleClass||"",t.sortClass(e)],style:{width:e.width},domProps:{innerHTML:t._s(t.renderTitle(e))}}):t._e(),t._v(" "),t.notIn(t.extractName(e.name),["__sequence","__checkbox","__component","__slot"])?i("th",{key:a,class:["vuetable-th-"+e.name,e.titleClass||"",t.sortClass(e)],style:{width:e.width},domProps:{innerHTML:t._s(t.renderTitle(e))}}):t._e()]:[i("th",{key:a,class:["vuetable-th-"+e.name,e.titleClass,t.sortClass(e),{sortable:t.isSortable(e)}],style:{width:e.width},attrs:{id:"_"+e.name},domProps:{innerHTML:t._s(t.renderTitle(e))},on:{click:function(i){t.orderBy(e,i)}}})]]:t._e()]})],2)]),t._v(" "),i("tbody",{staticClass:"vuetable-body"},[t._l(t.tableData,function(e,a){return[i("tr",{key:a,class:t.onRowClass(e,a),attrs:{"item-index":a,render:t.onRowChanged(e)},on:{dblclick:function(i){t.onRowDoubleClicked(e,i)},click:function(i){t.onRowClicked(e,i)}}},[t._l(t.tableFields,function(n,s){return[n.visible?[t.isSpecialField(n.name)?["__sequence"==t.extractName(n.name)?i("td",{key:s,class:["vuetable-sequence",n.dataClass],domProps:{innerHTML:t._s(t.renderSequence(a))}}):t._e(),t._v(" "),"__handle"==t.extractName(n.name)?i("td",{key:s,class:["vuetable-handle",n.dataClass],domProps:{innerHTML:t._s(t.renderIconTag(["handle-icon",t.css.handleIcon]))}}):t._e(),t._v(" "),"__checkbox"==t.extractName(n.name)?i("td",{key:s,class:["vuetable-checkboxes",n.dataClass]},[i("input",{attrs:{type:"checkbox"},domProps:{checked:t.rowSelected(e,n.name)},on:{change:function(i){t.toggleCheckbox(e,n.name,i)}}})]):t._e(),t._v(" "),"__component"===t.extractName(n.name)?i("td",{key:s,class:["vuetable-component",n.dataClass]},[i(t.extractArgs(n.name),{tag:"component",attrs:{"row-data":e,"row-index":a,"row-field":n.sortField}})],1):t._e(),t._v(" "),"__slot"===t.extractName(n.name)?i("td",{key:s,class:["vuetable-slot",n.dataClass]},[t._t(t.extractArgs(n.name),null,{rowData:e,rowIndex:a,rowField:n.sortField})],2):t._e()]:[t.hasCallback(n)?i("td",{key:s,class:n.dataClass,domProps:{innerHTML:t._s(t.callCallback(n,e))},on:{click:function(i){t.onCellClicked(e,n,i)},dblclick:function(i){t.onCellDoubleClicked(e,n,i)},contextmenu:function(i){t.onCellRightClicked(e,n,i)}}}):i("td",{key:s,class:n.dataClass,domProps:{innerHTML:t._s(t.getObjectValue(e,n.name,""))},on:{click:function(i){t.onCellClicked(e,n,i)},dblclick:function(i){t.onCellDoubleClicked(e,n,i)},contextmenu:function(i){t.onCellRightClicked(e,n,i)}}})]]:t._e()]})],2),t._v(" "),t.useDetailRow?[i("transition",{key:a,attrs:{name:t.detailRowTransition}},[t.isVisibleDetailRow(e[t.trackBy])?i("tr",{class:[t.css.detailRowClass],on:{click:function(i){t.onDetailRowClick(e,i)}}},[i("td",{attrs:{colspan:t.countVisibleFields}},[i(t.detailRowComponent,{tag:"component",attrs:{"row-data":e,"row-index":a}})],1)]):t._e()])]:t._e()]}),t._v(" "),t.displayEmptyDataRow?[i("tr",[i("td",{staticClass:"vuetable-empty-result",attrs:{colspan:t.countVisibleFields},domProps:{innerHTML:t._s(t.noDataTemplate)}})])]:t._e(),t._v(" "),t.lessThanMinRows?t._l(t.blankRows,function(e){return i("tr",{key:e,staticClass:"blank-row"},[t._l(t.tableFields,function(e,a){return[e.visible?i("td",{key:a},[t._v(" ")]):t._e()]})],2)}):t._e()],2)])},staticRenderFns:[]}},114:function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{directives:[{name:"show",rawName:"v-show",value:t.tablePagination&&t.tablePagination.last_page>1,expression:"tablePagination && tablePagination.last_page > 1"}],class:t.css.wrapperClass},[i("a",{class:["btn-nav",t.css.linkClass,t.isOnFirstPage?t.css.disabledClass:""],on:{click:function(e){t.loadPage(1)}}},[""!=t.css.icons.first?i("i",{class:[t.css.icons.first]}):i("span",[t._v("«")])]),t._v(" "),i("a",{class:["btn-nav",t.css.linkClass,t.isOnFirstPage?t.css.disabledClass:""],on:{click:function(e){t.loadPage("prev")}}},[""!=t.css.icons.next?i("i",{class:[t.css.icons.prev]}):i("span",[t._v(" ‹")])]),t._v(" "),t.notEnoughPages?[t._l(t.totalPage,function(e){return[i("a",{class:[t.css.pageClass,t.isCurrentPage(e)?t.css.activeClass:""],domProps:{innerHTML:t._s(e)},on:{click:function(i){t.loadPage(e)}}})]})]:[t._l(t.windowSize,function(e){return[i("a",{class:[t.css.pageClass,t.isCurrentPage(t.windowStart+e-1)?t.css.activeClass:""],domProps:{innerHTML:t._s(t.windowStart+e-1)},on:{click:function(i){t.loadPage(t.windowStart+e-1)}}})]})],t._v(" "),i("a",{class:["btn-nav",t.css.linkClass,t.isOnLastPage?t.css.disabledClass:""],on:{click:function(e){t.loadPage("next")}}},[""!=t.css.icons.next?i("i",{class:[t.css.icons.next]}):i("span",[t._v("› ")])]),t._v(" "),i("a",{class:["btn-nav",t.css.linkClass,t.isOnLastPage?t.css.disabledClass:""],on:{click:function(e){t.loadPage(t.totalPage)}}},[""!=t.css.icons.last?i("i",{class:[t.css.icons.last]}):i("span",[t._v("»")])])],2)},staticRenderFns:[]}},115:function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)("div",{class:["vuetable-pagination-info",t.css.infoClass],domProps:{innerHTML:t._s(t.paginationInfo)}})},staticRenderFns:[]}},46:function(t,e,i){var a=i(8)(i(75),null,null,null,null);t.exports=a.exports},48:function(t,e,i){function a(t){i(108)}var n=i(8)(i(70),i(113),a,"data-v-5cc42bfc",null);t.exports=n.exports},49:function(t,e,i){var a=i(8)(i(71),i(114),null,null,null);t.exports=a.exports},50:function(t,e,i){var a=i(8)(i(72),i(112),null,null,null);t.exports=a.exports},51:function(t,e,i){var a=i(8)(i(73),i(115),null,null,null);t.exports=a.exports},70:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=i(79),n=i.n(a),s=i(29),l=i.n(s);e.default={props:{fields:{type:Array,required:!0},loadOnStart:{type:Boolean,default:!0},apiUrl:{type:String,default:""},httpMethod:{type:String,default:"get",validator:function(t){return["get","post"].indexOf(t)>-1}},reactiveApiUrl:{type:Boolean,default:!0},apiMode:{type:Boolean,default:!0},data:{type:[Array,Object],default:null},dataTotal:{type:Number,default:0},dataManager:{type:Function,default:null},dataPath:{type:String,default:"data"},paginationPath:{type:[String],default:"links.pagination"},queryParams:{type:[Object,Function],default:function(){return{sort:"sort",page:"page",perPage:"per_page"}}},appendParams:{type:Object,default:function(){return{}}},httpOptions:{type:Object,default:function(){return{}}},httpFetch:{type:Function,default:null},perPage:{type:Number,default:10},initialPage:{type:Number,default:1},sortOrder:{type:Array,default:function(){return[]}},multiSort:{type:Boolean,default:function(){return!1}},tableHeight:{type:String,default:null},multiSortKey:{type:String,default:"alt"},rowClassCallback:{type:[String,Function],default:""},rowClass:{type:[String,Function],default:""},detailRowComponent:{type:String,default:""},detailRowTransition:{type:String,default:""},trackBy:{type:String,default:"id"},css:{type:Object,default:function(){return{tableClass:"ui blue selectable celled stackable attached table",loadingClass:"loading",ascendingIcon:"blue chevron up icon",descendingIcon:"blue chevron down icon",ascendingClass:"sorted-asc",descendingClass:"sorted-desc",sortableIcon:"",detailRowClass:"vuetable-detail-row",handleIcon:"grey sidebar icon",tableBodyClass:"vuetable-semantic-no-top vuetable-fixed-layout",tableHeaderClass:"vuetable-fixed-layout"}}},minRows:{type:Number,default:0},silent:{type:Boolean,default:!1},noDataTemplate:{type:String,default:function(){return"No Data Available"}},showSortIcons:{type:Boolean,default:!0}},data:function(){return{eventPrefix:"vuetable:",tableFields:[],tableData:null,tablePagination:null,currentPage:this.initialPage,selectedTo:[],visibleDetailRows:[],lastScrollPosition:0,scrollBarWidth:"17px",scrollVisible:!1}},mounted:function(){if(this.normalizeFields(),this.normalizeSortOrder(),this.isFixedHeader&&(this.scrollBarWidth=this.getScrollBarWidth()+"px"),this.$nextTick(function(){this.fireEvent("initialized",this.tableFields)}),this.loadOnStart&&this.loadData(),this.isFixedHeader){var t=this.$el.getElementsByClassName("vuetable-body-wrapper")[0];null!=t&&t.addEventListener("scroll",this.handleScroll)}},destroyed:function(){var t=this.$el.getElementsByClassName("vuetable-body-wrapper")[0];null!=t&&t.removeEventListener("scroll",this.handleScroll)},computed:{version:function(){return VERSION},useDetailRow:function(){return this.tableData&&this.tableData[0]&&""!==this.detailRowComponent&&void 0===this.tableData[0][this.trackBy]?(this.warn("You need to define unique row identifier in order for detail-row feature to work. Use `track-by` prop to define one!"),!1):""!==this.detailRowComponent},countVisibleFields:function(){return this.tableFields.filter(function(t){return t.visible}).length},countTableData:function(){return null===this.tableData?0:this.tableData.length},displayEmptyDataRow:function(){return 0===this.countTableData&&this.noDataTemplate.length>0},lessThanMinRows:function(){return null===this.tableData||0===this.tableData.length||this.tableData.length<this.minRows},blankRows:function(){return null===this.tableData||0===this.tableData.length?this.minRows:this.tableData.length>=this.minRows?0:this.minRows-this.tableData.length},isApiMode:function(){return this.apiMode},isDataMode:function(){return!this.apiMode},isFixedHeader:function(){return null!=this.tableHeight}},methods:{getScrollBarWidth:function(){var t=document.createElement("div"),e=document.createElement("div");t.style.visibility="hidden",t.style.width="100px",e.style.width="100%",t.appendChild(e),document.body.appendChild(t);var i=t.offsetWidth;t.style.overflow="scroll";var a=e.offsetWidth;return document.body.removeChild(t),i-a},handleScroll:function(t){var e=t.currentTarget.scrollLeft;if(e!=this.lastScrollPosition){var i=this.$el.getElementsByClassName("vuetable-head-wrapper")[0];null!=i&&(i.scrollLeft=e),this.lastScrollPosition=e}},normalizeFields:function(){if(void 0===this.fields)return void this.warn('You need to provide "fields" prop.');this.tableFields=[];var t=this,e=void 0;this.fields.forEach(function(i,a){e="string"==typeof i?{name:i,title:t.setTitle(i),titleClass:"",dataClass:"",callback:null,visible:!0}:{name:i.name,width:i.width,title:void 0===i.title?t.setTitle(i.name):i.title,sortField:i.sortField,titleClass:void 0===i.titleClass?"":i.titleClass,dataClass:void 0===i.dataClass?"":i.dataClass,callback:void 0===i.callback?"":i.callback,visible:void 0===i.visible||i.visible},t.tableFields.push(e)})},setData:function(t){if(null!==t&&void 0!==t){if(this.fireEvent("loading"),Array.isArray(t))return this.tableData=t,void this.fireEvent("loaded");this.tableData=this.getObjectValue(t,this.dataPath,null),this.tablePagination=this.getObjectValue(t,this.paginationPath,null),this.$nextTick(function(){this.fixHeader(),this.fireEvent("pagination-data",this.tablePagination),this.fireEvent("loaded")})}},setTitle:function(t){return this.isSpecialField(t)?"":this.titleCase(t)},getTitle:function(t){return"function"==typeof t.title?t.title():void 0===t.title?t.name.replace("."," "):t.title},renderTitle:function(t){var e=this.getTitle(t);if(e.length>0&&this.isInCurrentSortGroup(t)||this.hasSortableIcon(t)){var i="opacity:"+this.sortIconOpacity(t)+";position:relative;float:right";return e+" "+(this.showSortIcons?this.renderIconTag(["sort-icon",this.sortIcon(t)],'style="'+i+'"'):"")}return e},renderSequence:function(t){return this.tablePagination?this.tablePagination.from+t:t},renderNormalField:function(t,e){return this.hasCallback(t)?this.callCallback(t,e):this.getObjectValue(e,t.name,"")},isSpecialField:function(t){return"__"===t.slice(0,2)},titleCase:function(t){return t.replace(/\w+/g,function(t){return t.charAt(0).toUpperCase()+t.substr(1).toLowerCase()})},camelCase:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"_",i=this;return t.split(e).map(function(t){return i.titleCase(t)}).join("")},notIn:function(t,e){return-1===e.indexOf(t)},loadData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.loadSuccess,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.loadFailed;return this.isDataMode?void this.callDataManager():(this.fireEvent("loading"),this.httpOptions.params=this.getAppendParams(this.getAllQueryParams()),this.fetch(this.apiUrl,this.httpOptions).then(t,e).catch(function(){return e()}))},fetch:function(t,e){return this.httpFetch?this.httpFetch(t,e):l.a[this.httpMethod](t,e)},loadSuccess:function(t){this.fireEvent("load-success",t);var e=this.transform(t.data);this.tableData=this.getObjectValue(e,this.dataPath,null),this.tablePagination=this.getObjectValue(e,this.paginationPath,null),null===this.tablePagination&&this.warn('vuetable: pagination-path "'+this.paginationPath+'" not found. It looks like the data returned from the sever does not have pagination information or you may have set it incorrectly.\nYou can explicitly suppress this warning by setting pagination-path="".'),this.$nextTick(function(){this.fixHeader(),this.fireEvent("pagination-data",this.tablePagination),this.fireEvent("loaded")})},fixHeader:function(){if(this.isFixedHeader){var t=this.$el.getElementsByClassName("vuetable-body-wrapper")[0];null!=t&&(t.scrollHeight>t.clientHeight?this.scrollVisible=!0:this.scrollVisible=!1)}},loadFailed:function(t){console.error("load-error",t),this.fireEvent("load-error",t),this.fireEvent("loaded")},transform:function(t){return this.parentFunctionExists("transform")?this.$parent.transform.call(this.$parent,t):t},parentFunctionExists:function(t){return""!==t&&"function"==typeof this.$parent[t]},callParentFunction:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return this.parentFunctionExists(t)?this.$parent[t].call(this.$parent,e):i},fireEvent:function(t,e){this.$emit(this.eventPrefix+t,e)},warn:function(t){this.silent||console.warn(t)},getAllQueryParams:function(){var t={};return"function"==typeof this.queryParams?(t=this.queryParams(this.sortOrder,this.currentPage,this.perPage),"object"!==(void 0===t?"undefined":n()(t))?{}:t):(t[this.queryParams.sort]=this.getSortParam(),t[this.queryParams.page]=this.currentPage,t[this.queryParams.perPage]=this.perPage,t)},getSortParam:function(){return this.sortOrder&&""!=this.sortOrder.field?"function"==typeof this.$parent.getSortParam?this.$parent.getSortParam.call(this.$parent,this.sortOrder):this.getDefaultSortParam():""},getDefaultSortParam:function(){for(var t="",e=0;e<this.sortOrder.length;e++){t+=(void 0===this.sortOrder[e].sortField?this.sortOrder[e].field:this.sortOrder[e].sortField)+"|"+this.sortOrder[e].direction+(e+1<this.sortOrder.length?",":"")}return t},getAppendParams:function(t){for(var e in this.appendParams)t[e]=this.appendParams[e];return t},extractName:function(t){return t.split(":")[0].trim()},extractArgs:function(t){return t.split(":")[1]},isSortable:function(t){return!(void 0===t.sortField)},isInCurrentSortGroup:function(t){return!1!==this.currentSortOrderPosition(t)},hasSortableIcon:function(t){return this.isSortable(t)&&""!=this.css.sortableIcon},currentSortOrderPosition:function(t){if(!this.isSortable(t))return!1;for(var e=0;e<this.sortOrder.length;e++)if(this.fieldIsInSortOrderPosition(t,e))return e;return!1},fieldIsInSortOrderPosition:function(t,e){return this.sortOrder[e].field===t.name&&this.sortOrder[e].sortField===t.sortField},orderBy:function(t,e){if(this.isSortable(t)){var i=this.multiSortKey.toLowerCase()+"Key";this.multiSort&&e[i]?this.multiColumnSort(t):this.singleColumnSort(t),this.currentPage=1,(this.apiMode||this.dataManager)&&this.loadData()}},multiColumnSort:function(t){var e=this.currentSortOrderPosition(t);!1===e?this.sortOrder.push({field:t.name,sortField:t.sortField,direction:"asc"}):"asc"===this.sortOrder[e].direction?this.sortOrder[e].direction="desc":this.sortOrder.splice(e,1)},singleColumnSort:function(t){0===this.sortOrder.length&&this.clearSortOrder(),this.sortOrder.splice(1),this.fieldIsInSortOrderPosition(t,0)?this.sortOrder[0].direction="asc"===this.sortOrder[0].direction?"desc":"asc":this.sortOrder[0].direction="asc",this.sortOrder[0].field=t.name,this.sortOrder[0].sortField=t.sortField},clearSortOrder:function(){this.sortOrder.push({field:"",sortField:"",direction:"asc"})},sortClass:function(t){var e="",i=this.currentSortOrderPosition(t);return!1!==i&&(e="asc"==this.sortOrder[i].direction?this.css.ascendingClass:this.css.descendingClass),e},sortIcon:function(t){var e=this.css.sortableIcon,i=this.currentSortOrderPosition(t);return!1!==i&&(e="asc"==this.sortOrder[i].direction?this.css.ascendingIcon:this.css.descendingIcon),e},sortIconOpacity:function(t){var e=.3,i=this.sortOrder.length,a=this.currentSortOrderPosition(t);return 1-i*e<.3&&(e=.7/(i-1)),1-a*e},hasCallback:function(t){return!!t.callback},callCallback:function(t,e){if(this.hasCallback(t)){if("function"==typeof t.callback)return t.callback(this.getObjectValue(e,t.name));var i=t.callback.split("|"),a=i.shift();if("function"==typeof this.$parent[a]){var n=this.getObjectValue(e,t.name);return i.length>0?this.$parent[a].apply(this.$parent,[n].concat(i)):this.$parent[a].call(this.$parent,n)}return null}},getObjectValue:function(t,e,i){i=void 0===i?null:i;var a=t;if(""!=e.trim()){e.split(".").forEach(function(t){if(null===a||void 0===a[t]||null===a[t])return void(a=i);a=a[t]})}return a},toggleCheckbox:function(t,e,i){var a=i.target.checked,n=this.trackBy;if(void 0===t[n])return void this.warn('__checkbox field: The "'+this.trackBy+'" field does not exist! Make sure the field you specify in "track-by" prop does exist.');var s=t[n];a?this.selectId(s):this.unselectId(s),this.$emit("vuetable:checkbox-toggled",a,t)},selectId:function(t){this.isSelectedRow(t)||this.selectedTo.push(t)},unselectId:function(t){this.selectedTo=this.selectedTo.filter(function(e){return e!==t})},isSelectedRow:function(t){return this.selectedTo.indexOf(t)>=0},rowSelected:function(t,e){var i=this.trackBy,a=t[i];return this.isSelectedRow(a)},checkCheckboxesState:function(t){if(this.tableData){var e=this,i=this.trackBy,a="th.vuetable-th-checkbox-"+i+" input[type=checkbox]",n=document.querySelectorAll(a);void 0===n.forEach&&(n.forEach=function(t){[].forEach.call(n,t)});var s=this.tableData.filter(function(t){return e.selectedTo.indexOf(t[i])>=0});return s.length<=0?(n.forEach(function(t){t.indeterminate=!1}),!1):s.length<this.perPage?(n.forEach(function(t){t.indeterminate=!0}),!0):(n.forEach(function(t){t.indeterminate=!1}),!0)}},toggleAllCheckboxes:function(t,e){var i=this,a=e.target.checked,n=this.trackBy;a?this.tableData.forEach(function(t){i.selectId(t[n])}):this.tableData.forEach(function(t){i.unselectId(t[n])}),this.$emit("vuetable:checkbox-toggled-all",a)},gotoPreviousPage:function(){this.currentPage>1&&(this.currentPage--,this.loadData())},gotoNextPage:function(){this.currentPage<this.tablePagination.last_page&&(this.currentPage++,this.loadData())},gotoPage:function(t){t!=this.currentPage&&t>0&&t<=this.tablePagination.last_page&&(this.currentPage=t,this.loadData())},isVisibleDetailRow:function(t){return this.visibleDetailRows.indexOf(t)>=0},showDetailRow:function(t){this.isVisibleDetailRow(t)||this.visibleDetailRows.push(t)},hideDetailRow:function(t){this.isVisibleDetailRow(t)&&this.visibleDetailRows.splice(this.visibleDetailRows.indexOf(t),1)},toggleDetailRow:function(t){this.isVisibleDetailRow(t)?this.hideDetailRow(t):this.showDetailRow(t)},showField:function(t){t<0||t>this.tableFields.length||(this.tableFields[t].visible=!0)},hideField:function(t){t<0||t>this.tableFields.length||(this.tableFields[t].visible=!1)},toggleField:function(t){t<0||t>this.tableFields.length||(this.tableFields[t].visible=!this.tableFields[t].visible)},renderIconTag:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return void 0===this.css.renderIcon?'<i class="'+t.join(" ")+'" '+e+"></i>":this.css.renderIcon(t,e)},makePagination:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return t=null===t?this.dataTotal:t,e=null===e?this.perPage:e,i=null===i?this.currentPage:i,{total:t,per_page:e,current_page:i,last_page:Math.ceil(t/e)||0,next_page_url:"",prev_page_url:"",from:(i-1)*e+1,to:Math.min(i*e,t)}},normalizeSortOrder:function(){this.sortOrder.forEach(function(t){t.sortField=t.sortField||t.field})},callDataManager:function(){if(null!==this.dataManager||null!==this.data)return Array.isArray(this.data)?this.setData(this.data):(this.normalizeSortOrder(),this.setData(this.dataManager?this.dataManager(this.sortOrder,this.makePagination()):this.data))},onRowClass:function(t,e){return""!==this.rowClassCallback?void this.warn('"row-class-callback" prop is deprecated, please use "row-class" prop instead.'):"function"==typeof this.rowClass?this.rowClass(t,e):this.rowClass},onRowChanged:function(t){return this.fireEvent("row-changed",t),!0},onRowClicked:function(t,e){return this.$emit(this.eventPrefix+"row-clicked",t,e),!0},onRowDoubleClicked:function(t,e){this.$emit(this.eventPrefix+"row-dblclicked",t,e)},onDetailRowClick:function(t,e){this.$emit(this.eventPrefix+"detail-row-clicked",t,e)},onCellClicked:function(t,e,i){this.$emit(this.eventPrefix+"cell-clicked",t,e,i)},onCellDoubleClicked:function(t,e,i){this.$emit(this.eventPrefix+"cell-dblclicked",t,e,i)},onCellRightClicked:function(t,e,i){this.$emit(this.eventPrefix+"cell-rightclicked",t,e,i)},changePage:function(t){"prev"===t?this.gotoPreviousPage():"next"===t?this.gotoNextPage():this.gotoPage(t)},reload:function(){return this.loadData()},refresh:function(){return this.currentPage=1,this.loadData()},resetData:function(){this.tableData=null,this.tablePagination=null,this.fireEvent("data-reset")}},watch:{multiSort:function(t,e){!1===t&&this.sortOrder.length>1&&(this.sortOrder.splice(1),this.loadData())},apiUrl:function(t,e){this.reactiveApiUrl&&t!==e&&this.refresh()},data:function(t,e){this.setData(t)},tableHeight:function(t,e){this.fixHeader()}}}},71:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=i(46),n=i.n(a);e.default={mixins:[n.a]}},72:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=i(46),n=i.n(a);e.default={mixins:[n.a],props:{pageText:{type:String,default:function(){return"Page"}}},methods:{registerEvents:function(){var t=this;this.$on("vuetable:pagination-data",function(e){t.setPaginationData(e)})}},created:function(){this.registerEvents()}}},73:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=i(111),n=i.n(a);e.default={mixins:[n.a]}},74:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={props:{css:{type:Object,default:function(){return{infoClass:"left floated left aligned six wide column"}}},infoTemplate:{type:String,default:function(){return"Displaying {from} to {to} of {total} items"}},noDataTemplate:{type:String,default:function(){return"No relevant data"}}},data:function(){return{tablePagination:null}},computed:{paginationInfo:function(){return null==this.tablePagination||0==this.tablePagination.total?this.noDataTemplate:this.infoTemplate.replace("{from}",this.tablePagination.from||0).replace("{to}",this.tablePagination.to||0).replace("{total}",this.tablePagination.total||0)}},methods:{setPaginationData:function(t){this.tablePagination=t},resetData:function(){this.tablePagination=null}}}},75:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={props:{css:{type:Object,default:function(){return{wrapperClass:"ui right floated pagination menu",activeClass:"active large",disabledClass:"disabled",pageClass:"item",linkClass:"icon item",paginationClass:"ui bottom attached segment grid",paginationInfoClass:"left floated left aligned six wide column",dropdownClass:"ui search dropdown",icons:{first:"angle double left icon",prev:"left chevron icon",next:"right chevron icon",last:"angle double right icon"}}}},onEachSide:{type:Number,default:function(){return 2}}},data:function(){return{eventPrefix:"vuetable-pagination:",tablePagination:null}},computed:{totalPage:function(){return null===this.tablePagination?0:this.tablePagination.last_page},isOnFirstPage:function(){return null!==this.tablePagination&&1===this.tablePagination.current_page},isOnLastPage:function(){return null!==this.tablePagination&&this.tablePagination.current_page===this.tablePagination.last_page},notEnoughPages:function(){return this.totalPage<2*this.onEachSide+4},windowSize:function(){return 2*this.onEachSide+1},windowStart:function(){return!this.tablePagination||this.tablePagination.current_page<=this.onEachSide?1:this.tablePagination.current_page>=this.totalPage-this.onEachSide?this.totalPage-2*this.onEachSide:this.tablePagination.current_page-this.onEachSide}},methods:{loadPage:function(t){this.$emit(this.eventPrefix+"change-page",t)},isCurrentPage:function(t){return t===this.tablePagination.current_page},setPaginationData:function(t){this.tablePagination=t},resetData:function(){this.tablePagination=null}}}},76:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=i(52),n=i(48),s=i.n(n),l=i(49),o=i.n(l),r=i(50),c=i.n(r),d=i(51),u=i.n(d),h=i(29);i.n(h);a.a.component("custom-actions",{template:["<div>",'<button class="ui red button" @click="onClick(\'view-item\', rowData)"><i class="zoom icon"></i></button>','<button class="ui blue button" @click="onClick(\'edit-item\', rowData)"><i class="edit icon"></i></button>','<button class="ui green button" @click="onClick(\'delete-item\', rowData)"><i class="delete icon"></i></button>',"</div>"].join(""),props:{rowData:{type:Object,required:!0}},methods:{onClick:function(t,e){console.log("actions: on-click",e.name),sweetAlert(t,e.name)}}}),a.a.component("my-detail-row",{template:['<div @click="onClick">','<div class="inline field">',"<label>Name: </label>","<span>{{rowData.name}}</span>","</div>",'<div class="inline field">',"<label>Email: </label>","<span>{{rowData.email}}</span>","</div>",'<div class="inline field">',"<label>Nickname: </label>","<span>{{rowData.nickname}}</span>","</div>",'<div class="inline field">',"<label>Birthdate: </label>","<span>{{rowData.birthdate}}</span>","</div>",'<div class="inline field">',"<label>Gender: </label>","<span>{{rowData.gender}}</span>","</div>","</div>"].join(""),props:{rowData:{type:Object,required:!0}},methods:{onClick:function(t){console.log("my-detail-row: on-click",t.target)}}}),a.a.component("settings-modal",{template:'\n <div class="ui small modal" id="settingsModal">\n <div class="header">Settings</div>\n <div class="content ui form">\n <div class="field">\n <div class="ui checkbox">\n <input type="checkbox" v-model="$parent.multiSort">\n <label>Multisort (use Alt+Click)</label>\n </div>\n </div>\n <div class="inline fields">\n <div class="field">\n <div class="ui checkbox">\n <input type="checkbox" checked="$parent.tableHeight" @change="setTableHeight($event)">\n <label>Table Height</label>\n </div>\n </div>\n <div class="field">\n <input type="text" v-model="$parent.tableHeight">\n </div>\n </div>\n <div class="ui divider"></div>\n <div class="field">\n <label>Pagination:</label>\n <select class="ui simple dropdown" v-model="$parent.paginationComponent">\n <option value="vuetable-pagination">vuetable-pagination</option>\n <option value="vuetable-pagination-dropdown">vuetable-pagination-dropdown</option>\n </select>\n </div>\n <div class="field">\n <label>Per Page:</label>\n <select class="ui simple dropdown" v-model="$parent.perPage">\n <option :value="10">10</option>\n <option :value="15">15</option>\n <option :value="20">20</option>\n <option :value="25">25</option>\n </select>\n </div>\n <div class="ui fluid card">\n <div class="content">\n <div class="header">Visible fields</div>\n </div>\n <div v-if="vuetableFields" class="content">\n <div v-for="(field, idx) in vuetableFields" class="field">\n <div class="ui checkbox">\n <input type="checkbox" :checked="field.visible" @change="toggleField(idx, $event)">\n <label>{{ getFieldTitle(field) }}</label>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class="actions">\n <div class="ui cancel button">Close</div>\n </div>\n </div>\n ',props:["vuetableFields"],data:function(){return{}},methods:{getFieldTitle:function(t){if("function"==typeof t.title)return t.title(!0);var e=t.title;return""!==e?this.stripHTML(e):(e="","__"===t.name.slice(0,2)&&(e=t.name.indexOf(":")>=0?t.name.split(":")[1]:t.name.replace("__","")),e)},stripHTML:function(t){return t?t.replace(/(<([^>]+)>)/gi,""):""},toggleField:function(t,e){console.log("toggleField: ",t,e.target.checked),this.$parent.$refs.vuetable.toggleField(t)},setTableHeight:function(t){if(t.target.checked)return void(this.$parent.tableHeight="600px");this.$parent.tableHeight=null}}});var f={nickname:"Nickname",birthdate:"Birthdate"},p=[{name:"__handle",width:"50px"},{name:"__sequence",title:"No.",titleClass:"right aligned",dataClass:"right aligned",width:"50px"},{name:"__checkbox",width:"30px",title:"checkbox",titleClass:"center aligned",dataClass:"center aligned"},{name:"id",title:'<i class="unordered list icon"></i> Detail',dataClass:"center aligned",width:"100px",callback:"showDetailRow"},{name:"name",title:'<i class="book icon"></i> Full Name',sortField:"name",width:"150px"},{name:"email",title:'<i class="mail outline icon"></i> Email',sortField:"email",width:"200px",dataClass:"vuetable-clip-text",visible:!0},{name:"nickname",title:function(){return arguments.length>0&&void 0!==arguments[0]&&arguments[0]?f.nickname:'<i class="paw icon"></i> '+f.nickname},sortField:"nickname",callback:"allCap",width:"120px"},{name:"birthdate",title:function(){return arguments.length>0&&void 0!==arguments[0]&&arguments[0]?f.birthdate:'<i class="orange birthday icon"></i> '+f.birthdate},sortField:"birthdate",width:"100px",callback:"formatDate|D/MM/Y"},{name:"gender",title:"Gender",sortField:"gender",titleClass:"center aligned",dataClass:"center aligned",callback:"gender",width:"100px"},{name:"__component:custom-actions",title:"Actions",titleClass:"center aligned",dataClass:"center aligned",width:"150px"}];new a.a({el:"#app",components:{Vuetable:s.a,VuetablePagination:o.a,VuetablePaginationDropdown:c.a,VuetablePaginationInfo:u.a},data:{loading:"",searchFor:"",moreParams:{aa:1111,bb:222},fields:p,tableHeight:"600px",vuetableFields:!1,sortOrder:[{field:"name",direction:"asc"}],multiSort:!0,paginationComponent:"vuetable-pagination",perPage:10,paginationInfoTemplate:"Showing record: {from} to {to} from {total} item(s)",lang:f},watch:{perPage:function(t,e){this.$nextTick(function(){this.$refs.vuetable.refresh()})},paginationComponent:function(t,e){this.$nextTick(function(){this.$refs.pagination.setPaginationData(this.$refs.vuetable.tablePagination)})}},methods:{transform:function(t){var e={};e.pagination={total:t.total,per_page:t.per_page,current_page:t.current_page,last_page:t.last_page,next_page_url:t.next_page_url,prev_page_url:t.prev_page_url,from:t.from,to:t.to},e.data=[],t=t.data;for(var i=0;i<t.length;i++)e.data.push({id:t[i].id,name:t[i].name,nickname:t[i].nickname,email:t[i].email,age:t[i].age,birthdate:t[i].birthdate,gender:t[i].gender,address:t[i].address.line1+" "+t[i].address.line2+" "+t[i].address.zipcode});return e},showSettingsModal:function(){$("#settingsModal").modal({detachable:!0,onVisible:function(){$(".ui.checkbox").checkbox()}}).modal("show")},showLoader:function(){this.loading="loading"},hideLoader:function(){this.loading=""},allCap:function(t){return t.toUpperCase()},formatDate:function(t,e){return null===t?"":(e=void 0===e?"D MMM YYYY":e,moment(t,"YYYY-MM-DD").format(e))},gender:function(t){return"M"===t?'<span class="ui teal label"><i class="male icon"></i>Male</span>':'<span class="ui pink label"><i class="female icon"></i>Female</span>'},showDetailRow:function(t){return['<a class="show-detail-row">','<i class="chevron circle '+(this.$refs.vuetable.isVisibleDetailRow(t)?"down":"right")+' icon"></i>',"</a>"].join("")},setFilter:function(){this.moreParams.filter=this.searchFor,this.$nextTick(function(){this.$refs.vuetable.refresh()})},resetFilter:function(){this.searchFor="",this.setFilter()},preg_quote:function(t){return(t+"").replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g,"\\$1")},highlight:function(t,e){return e.replace(new RegExp("("+this.preg_quote(t)+")","ig"),'<span class="highlight">$1</span>')},rowClassCB:function(t,e){return e%2==0?"odd":"even"},onCellClicked:function(t,e,i){console.log("cellClicked",e.name),"__actions"!==e.name&&this.$refs.vuetable.toggleDetailRow(t.id)},onCellDoubleClicked:function(t,e,i){console.log("cellDoubleClicked:",e.name)},onCellRightClicked:function(t,e,i){console.log("cellRightClicked:",e.name)},onLoadSuccess:function(t){this.$refs.paginationInfo.setPaginationData(t.data);var e=t.data.data;if(""!==this.searchFor)for(var i in e)e[i].name=this.highlight(this.searchFor,e[i].name),e[i].email=this.highlight(this.searchFor,e[i].email)},onLoadError:function(t){400==t.status?sweetAlert("Something's Wrong!",t.data.message,"error"):sweetAlert("Oops","Error communicating with the server","error")},onPaginationData:function(t){this.$refs.paginationInfo.setPaginationData(t),this.$refs.pagination.setPaginationData(t)},onChangePage:function(t){this.$refs.vuetable.changePage(t)},onInitialized:function(t){console.log("onInitialized",t),this.vuetableFields=t},onDataReset:function(){console.log("onDataReset"),this.$refs.paginationInfo.resetData(),this.$refs.pagination.resetData()}}})}},[76]);
//# sourceMappingURL=app.8a35a4ff3c75994f34dd.js.map