vue-table2next 0.0.9 → 0.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,61 +1,44 @@
1
1
  <template>
2
- <div :class="$_css.tableWrapper">
2
+ <div :class="insideCss.tableWrapper">
3
3
  <div class="vuetable-head-wrapper" v-if="isFixedHeader">
4
- <table :class="['vuetable', $_css.tableClass, $_css.tableHeaderClass]">
5
- <vuetable-col-group :is-header="true"/>
4
+ <table :class="['vuetable', insideCss.tableClass, insideCss.tableHeaderClass]">
5
+ <vuetable-col-group :is-header="true" :field-prefix="fieldPrefix"/>
6
6
  <thead>
7
7
  <slot name="tableHeader" :fields="tableFields">
8
- <template v-for="(header, headerIndex) in headerRows">
9
- <component :is="header" :key="headerIndex" :fields="tableFields"
10
- @vuetable:header-event="onHeaderEvent"
11
- ></component>
12
- </template>
8
+ <component v-for="(header, headerIndex) in headerRows" :is="header" :key="headerIndex" :fields="tableFields" @vuetable:header-event="onHeaderEvent"
9
+ ></component>
13
10
  </slot>
14
11
  </thead>
15
12
  </table>
16
13
  </div>
17
14
 
18
15
  <div class="vuetable-body-wrapper" :class="{'fixed-header' : isFixedHeader}" :style="{height: tableHeight}">
19
- <table :class="['vuetable', isFixedHeader ? 'fixed-header' : '', $_css.tableClass, $_css.tableBodyClass]">
20
- <vuetable-col-group/>
16
+ <table :class="['vuetable', isFixedHeader ? 'fixed-header' : '', insideCss.tableClass, insideCss.tableBodyClass]">
17
+ <vuetable-col-group :field-prefix="fieldPrefix"/>
21
18
  <thead v-if="!isFixedHeader">
22
19
  <slot name="tableHeader" :fields="tableFields">
23
- <template v-for="(header, headerIndex) in headerRows">
24
- <component :is="header" :key="headerIndex" :fields="tableFields"
25
- @vuetable:header-event="onHeaderEvent"
26
- ></component>
27
- </template>
20
+ <component v-for="(header, headerIndex) in headerRows" :is="header" :key="headerIndex" :fields="tableFields"
21
+ @vuetable:header-event="onHeaderEvent"
22
+ ></component>
28
23
  </slot>
29
24
  </thead>
30
25
  <tfoot>
31
26
  <slot name="tableFooter" :fields="tableFields"></slot>
32
27
  </tfoot>
33
28
  <tbody v-cloak class="vuetable-body">
34
- <template v-for="(item, itemIndex) in tableData">
35
- <tr :item-index="itemIndex"
36
- :key="itemIndex"
37
- :class="onRowClass(item, itemIndex)"
38
- @click="onRowClicked(item, itemIndex, $event)"
39
- @dblclick="onRowDoubleClicked(item, itemIndex, $event)"
40
- @mouseover="onMouseOver(item, itemIndex, $event)"
41
- >
42
- <template v-for="(field, fieldIndex) in tableFields">
43
- <template v-if="field.visible">
44
- <template v-if="isFieldComponent(field.name)">
45
- <template v-if="field.children && Array.isArray(field.children)">
46
- <component v-for="(fieldChildren, fieldChildrenIndex) in field.children"
47
- :is="fieldChildren.name"
48
- :key="'child_td_'+ fieldChildren.name"
49
- :row-data="item" :row-index="itemIndex" :row-field="field"
50
- :vuetable="vuetable"
51
- :class="bodyClass('vuetable-component', field)"
52
- :style="{width: field.width}"
53
- @vuetable:field-event="onFieldEvent"
54
- ></component>
55
- </template>
56
- <component v-else
57
- :is="field.name"
58
- :key="fieldIndex"
29
+ <tr v-for="(item, itemIndex) in tableData" :item-index="itemIndex" :key="itemIndex"
30
+ :class="onRowClass(item, itemIndex)"
31
+ @click="onRowClicked(item, itemIndex, $event)"
32
+ @dblclick="onRowDoubleClicked(item, itemIndex, $event)"
33
+ @mouseover="onMouseOver(item, itemIndex, $event)"
34
+ >
35
+ <template v-for="(field, fieldIndex) in tableFields">
36
+ <template v-if="field.visible">
37
+ <template v-if="isFieldComponent(field.name)">
38
+ <template v-if="field.children && Array.isArray(field.children)">
39
+ <component v-for="(fieldChildren, fieldChildrenIndex) in field.children"
40
+ :is="fieldChildren.name"
41
+ :key="'child_td_'+ fieldChildren.name"
59
42
  :row-data="item" :row-index="itemIndex" :row-field="field"
60
43
  :vuetable="vuetable"
61
44
  :class="bodyClass('vuetable-component', field)"
@@ -63,56 +46,65 @@
63
46
  @vuetable:field-event="onFieldEvent"
64
47
  ></component>
65
48
  </template>
66
- <template v-else-if="isFieldSlot(field.name)">
67
- <td :class="bodyClass('vuetable-slot', field)"
68
- :key="fieldIndex"
69
- :style="{width: field.width}"
70
- >
71
- <slot :name="field.name"
72
- :row-data="item" :row-index="itemIndex" :row-field="field"
73
- ></slot>
74
- </td>
75
- </template>
76
- <template v-else>
77
- <template v-if="field.children && Array.isArray(field.children)">
78
- <td v-for="(fieldChildren, fieldChildrenIndex) in field.children"
79
- :class="bodyClass('vuetable-td-'+fieldChildren.name, fieldChildren)"
80
- :key="'child_td_'+ fieldChildren.name"
81
- :style="{width: fieldChildren.width}"
82
- v-html="renderNormalField(fieldChildren, item)"
83
- @click="onCellClicked(item, itemIndex, fieldChildren, $event)"
84
- @dblclick="onCellDoubleClicked(item, itemIndex, fieldChildren, $event)"
85
- @contextmenu="onCellRightClicked(item, itemIndex, fieldChildren, $event)"
86
- ></td>
87
- </template>
88
- <td v-else :class="bodyClass('vuetable-td-'+field.name, field)"
89
- :key="fieldIndex"
90
- :style="{width: field.width}"
91
- v-html="renderNormalField(field, item)"
92
- @click="onCellClicked(item, itemIndex, field, $event)"
93
- @dblclick="onCellDoubleClicked(item, itemIndex, field, $event)"
94
- @contextmenu="onCellRightClicked(item, itemIndex, field, $event)"
49
+ <component v-else
50
+ :is="field.name"
51
+ :key="fieldIndex"
52
+ :row-data="item" :row-index="itemIndex" :row-field="field"
53
+ :vuetable="vuetable"
54
+ :class="bodyClass('vuetable-component', field)"
55
+ :style="{width: field.width}"
56
+ @vuetable:field-event="onFieldEvent"
57
+ ></component>
58
+ </template>
59
+ <template v-else-if="isFieldSlot(field.name)">
60
+ <td :class="bodyClass('vuetable-slot', field)"
61
+ :key="fieldIndex"
62
+ :style="{width: field.width}"
63
+ >
64
+ <slot :name="field.name"
65
+ :row-data="item" :row-index="itemIndex" :row-field="field"
66
+ ></slot>
67
+ </td>
68
+ </template>
69
+ <template v-else>
70
+ <template v-if="field.children && Array.isArray(field.children)">
71
+ <td v-for="(fieldChildren, fieldChildrenIndex) in field.children"
72
+ :class="bodyClass('vuetable-td-'+fieldChildren.name, fieldChildren)"
73
+ :key="'child_td_'+ fieldChildren.name"
74
+ :style="{width: fieldChildren.width}"
75
+ v-html="renderNormalField(fieldChildren, item)"
76
+ @click="onCellClicked(item, itemIndex, fieldChildren, $event)"
77
+ @dblclick="onCellDoubleClicked(item, itemIndex, fieldChildren, $event)"
78
+ @contextmenu="onCellRightClicked(item, itemIndex, fieldChildren, $event)"
95
79
  ></td>
96
80
  </template>
81
+ <td v-else :class="bodyClass('vuetable-td-'+field.name, field)"
82
+ :key="fieldIndex"
83
+ :style="{width: field.width}"
84
+ v-html="renderNormalField(field, item)"
85
+ @click="onCellClicked(item, itemIndex, field, $event)"
86
+ @dblclick="onCellDoubleClicked(item, itemIndex, field, $event)"
87
+ @contextmenu="onCellRightClicked(item, itemIndex, field, $event)"
88
+ ></td>
97
89
  </template>
98
90
  </template>
99
- </tr>
100
- <template v-if="useDetailRow">
101
- <transition :name="detailRowTransition" :key="itemIndex">
102
- <tr v-if="isVisibleDetailRow(item[trackBy])"
103
- @click="onDetailRowClick(item, itemIndex, $event)"
104
- :class="onDetailRowClass(item, itemIndex)"
105
- >
106
- <td :colspan="countVisibleFields">
107
- <component :is="detailRowComponent"
108
- :row-data="item"
109
- :row-index="itemIndex"
110
- :options="detailRowOptions"
111
- ></component>
112
- </td>
113
- </tr>
114
- </transition>
115
91
  </template>
92
+ </tr>
93
+ <template v-if="useDetailRow">
94
+ <transition :name="detailRowTransition" :key="itemIndex">
95
+ <tr v-if="isVisibleDetailRow(item[trackBy])"
96
+ @click="onDetailRowClick(item, itemIndex, $event)"
97
+ :class="onDetailRowClass(item, itemIndex)"
98
+ >
99
+ <td :colspan="countVisibleFields">
100
+ <component :is="detailRowComponent"
101
+ :row-data="item"
102
+ :row-index="itemIndex"
103
+ :options="detailRowOptions"
104
+ ></component>
105
+ </td>
106
+ </tr>
107
+ </transition>
116
108
  </template>
117
109
  <template v-if="displayEmptyDataRow">
118
110
  <tr>
@@ -354,7 +346,7 @@ export default {
354
346
  scrollBarWidth: '17px', //chrome default
355
347
  scrollVisible: false,
356
348
  sortColumnState: 0,
357
- $_css: {}
349
+ insideCss: {}
358
350
  }
359
351
  },
360
352
 
@@ -449,7 +441,7 @@ export default {
449
441
  }
450
442
  },
451
443
 
452
- destroyed () {
444
+ unmounted () {
453
445
  let elem = this.$el.getElementsByClassName('vuetable-body-wrapper')[0];
454
446
  if (elem != null) {
455
447
  elem.removeEventListener('scroll', this.handleScroll);
@@ -519,7 +511,7 @@ export default {
519
511
  },
520
512
 
521
513
  mergeCss () {
522
- this.$_css = { ...CssSemanticUI.table, ...this.css }
514
+ this.insideCss = { ...CssSemanticUI.table, ...this.css }
523
515
  },
524
516
 
525
517
  bodyClass (base, field) {
@@ -643,7 +635,7 @@ export default {
643
635
  },
644
636
 
645
637
  isFieldSlot (fieldName) {
646
- return typeof this.$scopedSlots[fieldName] !== 'undefined'
638
+ return typeof this.$slots[fieldName] !== 'undefined'
647
639
  },
648
640
 
649
641
  titleCase (str) {
@@ -809,7 +801,7 @@ export default {
809
801
  },
810
802
 
811
803
  isSortable (field) {
812
- return field.sortField ?? false;
804
+ return field.sortField || false;
813
805
  },
814
806
 
815
807
  currentSortOrderPosition (field) {
@@ -23,7 +23,10 @@ export default {
23
23
  isHeader: {
24
24
  type: Boolean,
25
25
  default: false
26
- }
26
+ },
27
+ fieldPrefix: {
28
+ type: String,
29
+ },
27
30
  },
28
31
 
29
32
  computed: {
@@ -19,7 +19,7 @@ export default {
19
19
 
20
20
  computed: {
21
21
  css() {
22
- return this.vuetable.$_css
22
+ return this.vuetable.insideCss
23
23
  }
24
24
  },
25
25
 
@@ -1,19 +1,19 @@
1
1
  <template>
2
- <div v-show="tablePagination && lastPage > firstPage" :class="$_css.wrapperClass">
2
+ <div v-show="tablePagination && lastPage > firstPage" :class="insideCss.wrapperClass">
3
3
  <a @click="loadPage(firstPage)"
4
- :class="['btn-nav', $_css.linkClass, isOnFirstPage ? $_css.disabledClass : '']">
5
- <i v-if="$_css.icons.first != ''" :class="[$_css.icons.first]"></i>
4
+ :class="['btn-nav', insideCss.linkClass, isOnFirstPage ? insideCss.disabledClass : '']">
5
+ <i v-if="insideCss.icons.first != ''" :class="[insideCss.icons.first]"></i>
6
6
  <span v-else>&laquo;</span>
7
7
  </a>
8
8
  <a @click="loadPage('prev')"
9
- :class="['btn-nav', $_css.linkClass, isOnFirstPage ? $_css.disabledClass : '']">
10
- <i v-if="$_css.icons.next != ''" :class="[$_css.icons.prev]"></i>
9
+ :class="['btn-nav', insideCss.linkClass, isOnFirstPage ? insideCss.disabledClass : '']">
10
+ <i v-if="insideCss.icons.next != ''" :class="[insideCss.icons.prev]"></i>
11
11
  <span v-else>&nbsp;&lsaquo;</span>
12
12
  </a>
13
13
  <template v-if="notEnoughPages">
14
14
  <template v-for="(n, i) in totalPage">
15
15
  <a @click="loadPage(i+firstPage)" :key="i"
16
- :class="[$_css.pageClass, isCurrentPage(i+firstPage) ? $_css.activeClass : '']"
16
+ :class="[insideCss.pageClass, isCurrentPage(i+firstPage) ? insideCss.activeClass : '']"
17
17
  v-html="n">
18
18
  </a>
19
19
  </template>
@@ -21,19 +21,19 @@
21
21
  <template v-else>
22
22
  <template v-for="(n, i) in windowSize">
23
23
  <a @click="loadPage(windowStart+i+firstPage-1)" :key="i"
24
- :class="[$_css.pageClass, isCurrentPage(windowStart+i+firstPage-1) ? $_css.activeClass : '']"
24
+ :class="[insideCss.pageClass, isCurrentPage(windowStart+i+firstPage-1) ? insideCss.activeClass : '']"
25
25
  v-html="windowStart+n-1">
26
26
  </a>
27
27
  </template>
28
28
  </template>
29
29
  <a @click="loadPage('next')"
30
- :class="['btn-nav', $_css.linkClass, isOnLastPage ? $_css.disabledClass : '']">
31
- <i v-if="$_css.icons.next != ''" :class="[$_css.icons.next]"></i>
30
+ :class="['btn-nav', insideCss.linkClass, isOnLastPage ? insideCss.disabledClass : '']">
31
+ <i v-if="insideCss.icons.next != ''" :class="[insideCss.icons.next]"></i>
32
32
  <span v-else>&rsaquo;&nbsp;</span>
33
33
  </a>
34
34
  <a @click="loadPage(lastPage)"
35
- :class="['btn-nav', $_css.linkClass, isOnLastPage ? $_css.disabledClass : '']">
36
- <i v-if="$_css.icons.last != ''" :class="[$_css.icons.last]"></i>
35
+ :class="['btn-nav', insideCss.linkClass, isOnLastPage ? insideCss.disabledClass : '']">
36
+ <i v-if="insideCss.icons.last != ''" :class="[insideCss.icons.last]"></i>
37
37
  <span v-else>&raquo;</span>
38
38
  </a>
39
39
  </div>
@@ -1,17 +1,17 @@
1
1
  <template>
2
- <div :class="[$_css.wrapperClass]">
2
+ <div :class="[insideCss.wrapperClass]">
3
3
  <a @click="loadPage('prev')"
4
- :class="[$_css.linkClass, {[$_css.disabledClass] : isOnFirstPage}]">
5
- <i :class="$_css.icons.prev"></i>
4
+ :class="[insideCss.linkClass, {[insideCss.disabledClass] : isOnFirstPage}]">
5
+ <i :class="insideCss.icons.prev"></i>
6
6
  </a>
7
- <select :class="['vuetable-pagination-dropdown', $_css.dropdownClass]" @change="loadPage($event.target.selectedIndex+firstPage)">
8
- <option v-for="(n, i) in totalPage" :key="n" :class="[$_css.pageClass]" :value="i+firstPage" :selected="isCurrentPage(i+firstPage)">
7
+ <select :class="['vuetable-pagination-dropdown', insideCss.dropdownClass]" @change="loadPage($event.target.selectedIndex+firstPage)">
8
+ <option v-for="(n, i) in totalPage" :key="n" :class="[insideCss.pageClass]" :value="i+firstPage" :selected="isCurrentPage(i+firstPage)">
9
9
  {{pageText}} {{n}}
10
10
  </option>
11
11
  </select>
12
12
  <a @click="loadPage('next')"
13
- :class="[$_css.linkClass, {[$_css.disabledClass] : isOnLastPage}]">
14
- <i :class="$_css.icons.next"></i>
13
+ :class="[insideCss.linkClass, {[insideCss.disabledClass] : isOnLastPage}]">
14
+ <i :class="insideCss.icons.next"></i>
15
15
  </a>
16
16
  </div>
17
17
  </template>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div :class="['vuetable-pagination-info', $_css.infoClass]"
2
+ <div :class="['vuetable-pagination-info', insideCss.infoClass]"
3
3
  v-html="paginationInfo">
4
4
  </div>
5
5
  </template>
@@ -25,7 +25,7 @@ export default {
25
25
  data: function() {
26
26
  return {
27
27
  tablePagination: null,
28
- $_css: {}
28
+ insideCss: {}
29
29
  }
30
30
  },
31
31
  computed: {
@@ -45,7 +45,7 @@ export default {
45
45
  },
46
46
  methods: {
47
47
  mergeCss () {
48
- this.$_css = {...CssSemanticUI.paginationInfo, ...this.css}
48
+ this.insideCss = {...CssSemanticUI.paginationInfo, ...this.css}
49
49
  },
50
50
  setPaginationData (tablePagination) {
51
51
  this.tablePagination = tablePagination
@@ -24,7 +24,7 @@ export default {
24
24
  return {
25
25
  eventPrefix: 'vuetable-pagination:',
26
26
  tablePagination: null,
27
- $_css: {}
27
+ insideCss: {}
28
28
  }
29
29
  },
30
30
  computed: {
@@ -69,7 +69,7 @@ export default {
69
69
  },
70
70
  methods: {
71
71
  mergeCss () {
72
- this.$_css = {...CssSemanticUI.pagination, ...this.css}
72
+ this.insideCss = {...CssSemanticUI.pagination, ...this.css}
73
73
  },
74
74
  loadPage (page) {
75
75
  this.$emit(this.eventPrefix + 'change-page', page)
@@ -69,8 +69,12 @@ export default {
69
69
  return this.$parent.sortOrder
70
70
  },
71
71
 
72
+ sortColumnState() {
73
+ return this.$parent.sortColumnState
74
+ },
75
+
72
76
  css() {
73
- return this.$parent.$_css
77
+ return this.$parent.insideCss
74
78
  },
75
79
 
76
80
  vuetable() {
@@ -85,7 +89,7 @@ export default {
85
89
 
86
90
  isHeaderVisible (field) {
87
91
  if (field.header) {
88
- return field.header.visible ?? true
92
+ return field.header.visible || true
89
93
  }
90
94
 
91
95
  return true;
@@ -1,2 +0,0 @@
1
- webpackJsonp([1],Array(20).concat([function(e,t,i){"use strict";t.a={table:{tableWrapper:"",tableHeaderClass:"fixed",tableBodyClass:"fixed",tableClass:"ui blue selectable unstackable celled table",loadingClass:"loading",ascendingIcon:"blue chevron up icon",descendingIcon:"blue chevron down icon",ascendingClass:"sorted-asc",descendingClass:"sorted-desc",sortableIcon:"grey sort icon",handleIcon:"grey sidebar icon"},pagination:{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"}},paginationInfo:{infoClass:"left floated left aligned six wide column"}}},,,,,,,,,,,,,,,function(e,t,i){var n=i(0)(i(93),null,null,null,null);e.exports=n.exports},,function(e,t,i){var n=i(0)(i(90),i(157),null,null,null);e.exports=n.exports},function(e,t,i){var n=i(0)(i(92),i(152),null,null,null);e.exports=n.exports},function(e,t,i){var n=i(0)(i(94),i(150),null,null,null);e.exports=n.exports},,,,,,,,,,,,,,,,,,,,,,,function(e,t,i){var n=i(0)(i(99),null,null,null,null);e.exports=n.exports},,function(e,t,i){function n(e){i(139)}var a=i(0)(i(87),i(153),n,null,null);e.exports=a.exports},function(e,t,i){function n(e){i(140)}var a=i(0)(i(95),i(154),n,null,null);e.exports=a.exports},function(e,t,i){var n=i(0)(i(96),i(151),null,null,null);e.exports=n.exports},function(e,t,i){function n(e){i(142)}var a=i(0)(i(97),i(159),n,null,null);e.exports=a.exports},,,,,,,,,,,,,,,,,,,function(e,t){e.exports={name:"axios",version:"0.21.4",description:"Promise based HTTP client for the browser and node.js",main:"index.js",scripts:{test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository:{type:"git",url:"https://github.com/axios/axios.git"},keywords:["xhr","http","ajax","promise","node"],author:"Matt Zabriskie",license:"MIT",bugs:{url:"https://github.com/axios/axios/issues"},homepage:"https://axios-http.com",devDependencies:{coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser:{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr:"dist/axios.min.js",unpkg:"dist/axios.min.js",typings:"./index.d.ts",dependencies:{"follow-redirects":"^1.14.0"},bundlesize:[{path:"./dist/axios.min.js",threshold:"5kB"}]}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(49),a=i.n(n),s=i(102),l=i.n(s),o=i(48),r=i.n(o),c=i(21),u=i.n(c),d=i(36),h=i.n(d),f=i(149),p=i.n(f),g=i(145),b=i.n(g),v=i(20);t.default={name:"Vuetable",components:{VuetableRowHeader:p.a,VuetableColGroup:b.a},props:{fields:{type:Array,required:!0},loadOnStart:{type:Boolean,default:!0},apiUrl:{type:String,default:""},httpMethod:{type:String,default:"get",validator:function(e){return["get","post"].indexOf(e)>-1}},reactiveApiUrl:{type:Boolean,default:!0},apiMode:{type:Boolean,default:!0},paginationMode:{type:String,default:"offset"},data:{type:[Array,Object],default:null},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},firstPage:{type:Number,default:1},sortOrder:{type:Array,default:function(){return[]}},multiSort:{type:Boolean,default:!1},tableHeight:{type:String,default:null},multiSortKey:{type:String,default:"alt"},rowClass:{type:[String,Function],default:""},detailRowComponent:{type:[String,Object],default:""},detailRowTransition:{type:String,default:""},detailRowClass:{type:[String,Function],default:"vuetable-detail-row"},detailRowOptions:{type:Object,default:function(){return{}}},trackBy:{type:String,default:"id"},css:{type:Object,default:function(){return{}}},minRows:{type:Number,default:0},silent:{type:Boolean,default:!1},noDataTemplate:{type:String,default:function(){return"No Data Available"}},showSortIcons:{type:Boolean,default:!0},headerRows:{type:Array,default:function(){return["VuetableRowHeader"]}},transform:{type:Function,default:null},sortParams:{type:Function,default:null},fieldPrefix:{type:String,default:function(){return"vuetable-field-"}},eventPrefix:{type:String,default:function(){return"vuetable:"}}},data:function(){return{tableFields:[],tableData:null,tablePagination:null,currentPage:this.initialPage,selectedTo:[],visibleDetailRows:[],lastScrollPosition:0,scrollBarWidth:"17px",scrollVisible:!1,$_css:{}}},computed:{version:function(){return"0.0.3"},useDetailRow:function(){return!!this.dataIsAvailable&&""!==this.detailRowComponent},dataIsAvailable:function(){return!!this.tableData&&this.tableData.length>0},hasRowIdentifier:function(){return this.tableData&&void 0!==this.tableData[0][this.trackBy]},countVisibleFields:function(){return this.tableFields.filter(function(e){return e.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},vuetable:function(){return this}},created:function(){var e=this;this.mergeCss(),this.normalizeFields(),this.normalizeSortOrder(),this.$nextTick(function(){e.fireEvent("initialized",e.tableFields)})},mounted:function(){if(this.loadOnStart&&this.loadData(),this.isFixedHeader){this.scrollBarWidth=this.getScrollBarWidth()+"px";var e=this.$el.getElementsByClassName("vuetable-body-wrapper")[0];null!=e&&e.addEventListener("scroll",this.handleScroll)}},destroyed:function(){var e=this.$el.getElementsByClassName("vuetable-body-wrapper")[0];null!=e&&e.removeEventListener("scroll",this.handleScroll)},watch:{multiSort:function(e,t){!1===e&&this.sortOrder.length>1&&(this.sortOrder.splice(1),this.loadData())},apiUrl:function(e,t){this.reactiveApiUrl&&e!==t&&this.refresh()},data:function(e,t){this.setData(e)},tableHeight:function(e,t){this.checkScrollbarVisibility()},fields:function(e,t){this.normalizeFields()}},methods:{getScrollBarWidth:function(){var e=document.createElement("div"),t=document.createElement("div");e.style.visibility="hidden",e.style.width="100px",t.style.width="100%",e.appendChild(t),document.body.appendChild(e);var i=e.offsetWidth;e.style.overflow="scroll";var n=t.offsetWidth;return document.body.removeChild(e),i-n},handleScroll:function(e){var t=e.currentTarget.scrollLeft;if(t!=this.lastScrollPosition){var i=this.$el.getElementsByClassName("vuetable-head-wrapper")[0];null!=i&&(i.scrollLeft=t),this.lastScrollPosition=t}},mergeCss:function(){this.$_css=u()({},v.a.table,this.css)},bodyClass:function(e,t){return[e,t.dataClass]},normalizeFields:function(){var e=this;if(void 0===this.fields)return void this.warn('You need to provide "fields" prop.');this.tableFields=[],this.fields.forEach(function(t,i){e.tableFields.push(e.newField(t,i))})},newField:function(e,t){var i={name:"",titleClass:"",dataClass:"",sortField:null,formatter:null,visible:!0,width:null,$_index:t};if("string"==typeof e)return r()({},i,{name:this.normalizeFieldName(e),title:this.makeTitle(e)});var n=r()({},i,e);return n.name=this.normalizeFieldName(n.name),void 0===n.title&&(n.title=this.makeTitle(n.name)),null!==n.formatter&&"function"!=typeof n.formatter&&(console.error(n.name+" field formatter must be a function"),n.formatter=null),n},normalizeFieldName:function(e){return e instanceof Object?e:"string"==typeof e&&e.replace("__",this.fieldPrefix)},setData:function(e){var t=this;if(null!==e&&void 0!==e){if(this.fireEvent("loading"),Array.isArray(e))return this.tableData=e,void this.fireEvent("loaded");this.tableData=this.getObjectValue(e,this.dataPath,null),this.tablePagination=this.getObjectValue(e,this.paginationPath,null),this.$nextTick(function(){t.checkIfRowIdentifierExists(),t.updateHeader(),t.fireEvent("pagination-data",t.tablePagination),t.fireEvent("loaded")})}},checkIfRowIdentifierExists:function(){if(this.dataIsAvailable)return!!this.hasRowIdentifier||(this.warn('Invalid your data! Use "track-by" prop to specify.'),!1)},makeTitle:function(e){return this.isFieldComponent(e)?"":this.titleCase(e.replace("."," "))},getFieldTitle:function(e){return"function"==typeof e.title?e.title():e.title},renderNormalField:function(e,t){return this.hasFormatter(e)?this.callFormatter(e,t):this.getObjectValue(t,e.name,"")},isFieldComponent:function(e){return e instanceof Object||(e.slice(0,this.fieldPrefix.length)===this.fieldPrefix||"__"===e.slice(0,2))},isFieldSlot:function(e){return void 0!==this.$scopedSlots[e]},titleCase:function(e){return e.replace(/\w+/g,function(e){return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()})},camelCase:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"_";return e.split(t).map(function(e){return self.titleCase(e)}).join("")},loadData:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.loadSuccess,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.loadFailed;return this.isDataMode?void this.handleDataMode():(this.fireEvent("loading"),this.httpOptions.params=this.getAppendParams(this.getAllQueryParams()),this.fetch(this.apiUrl,this.httpOptions).then(e,t).catch(function(){return t()}))},loadCursorData:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.loadSuccess,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.loadFailed;return this.fireEvent("loading"),this.httpOptions.params=this.getAppendParams(this.getAllQueryParams()),this.fetch(e||this.apiUrl,this.httpOptions).then(t,i).catch(function(){return i()})},fetch:function(e,t){if(this.httpFetch)return this.httpFetch(e,t);if("get"===this.httpMethod)return h.a.get(e,t);var i=t.params;return delete t.params,h.a.post(e,i,t)},loadSuccess:function(e){var t=this;this.fireEvent("load-success",e);var i=this.transform?this.transform(e.data):e.data;this.tableData=this.getObjectValue(i,this.dataPath,null),this.tablePagination=this.getObjectValue(i,this.paginationPath,null),null===this.tablePagination&&this.warn('vuetable: pagination-path "'+this.paginationPath+'" not found. It looks like the data returned from the server 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(){t.checkIfRowIdentifierExists(),t.updateHeader(),t.fireEvent("pagination-data",t.tablePagination),t.fireEvent("loaded")})},updateHeader:function(){setTimeout(this.checkScrollbarVisibility,80)},checkScrollbarVisibility:function(){var e=this;this.$nextTick(function(){var t=e.$el.getElementsByClassName("vuetable-body-wrapper")[0];null!=t&&(e.scrollVisible=t.scrollHeight>t.clientHeight,e.fireEvent("scrollbar-visible",e.scrollVisible))})},loadFailed:function(e){console.error("load-error",e),this.fireEvent("load-error",e),this.fireEvent("loaded")},fireEvent:function(){if(1===arguments.length)return this.$emit(this.eventPrefix+arguments[0]);if(arguments.length>1){var e=l()(arguments);return e[0]=this.eventPrefix+e[0],this.$emit.apply(this,e)}},warn:function(e){this.silent||console.warn(e)},getAllQueryParams:function(){var e={};return"function"==typeof this.queryParams?(e=this.queryParams(this.sortOrder,this.currentPage,this.perPage),"object"===(void 0===e?"undefined":a()(e))?e:{}):("offset"===this.paginationMode&&(e[this.queryParams.page]=this.currentPage),e[this.queryParams.perPage]=this.perPage,e[this.queryParams.sort]=this.getSortParam(),e)},getSortParam:function(){return this.sortOrder&&""!=this.sortOrder.field?"function"==typeof this.sortParams?this.sortParams(this.sortOrder):this.getDefaultSortParam():""},getDefaultSortParam:function(){return this.sortOrder.map(function(e){return e.sortField+"|"+e.direction}).join(",")},getAppendParams:function(e){for(var t in this.appendParams)e[t]=this.appendParams[t];return e},isSortable:function(e){return null!==e.sortField},currentSortOrderPosition:function(e){if(!this.isSortable(e))return!1;for(var t=0;t<this.sortOrder.length;t++)if(this.fieldIsInSortOrderPosition(e,t))return t;return!1},fieldIsInSortOrderPosition:function(e,t){return this.sortOrder[t].field===e.name&&this.sortOrder[t].sortField===e.sortField},orderBy:function(e,t){if(this.isSortable(e)){var i=this.multiSortKey.toLowerCase()+"Key";this.multiSort&&t[i]?this.multiColumnSort(e):this.singleColumnSort(e),this.currentPage=this.firstPage,(this.apiMode||this.dataManager)&&this.loadData()}},addSortColumn:function(e,t){this.sortOrder.push({field:e.name,sortField:e.sortField,direction:"asc"})},removeSortColumn:function(e){this.sortOrder.splice(e,1)},setSortColumnDirection:function(e,t){this.sortOrder[e].direction=t},multiColumnSort:function(e){var t=this.currentSortOrderPosition(e);!1===t?this.addSortColumn(e,"asc"):"asc"===this.sortOrder[t].direction?this.setSortColumnDirection(t,"desc"):this.removeSortColumn(t)},singleColumnSort:function(e){if(0===this.sortOrder.length)return void this.addSortColumn(e,"asc");this.sortOrder.splice(1),this.fieldIsInSortOrderPosition(e,0)?this.sortOrder[0].direction="asc"===this.sortOrder[0].direction?"desc":"asc":this.sortOrder[0].direction="asc",this.sortOrder[0].field=e.name,this.sortOrder[0].sortField=e.sortField},clearSortOrder:function(){this.sortOrder=[]},hasFormatter:function(e){return"function"==typeof e.formatter},callFormatter:function(e,t){if(this.hasFormatter(e))return"function"==typeof e.formatter?e.formatter(this.getObjectValue(t,e.name),this):void 0},getObjectValue:function(e,t,i){i=void 0===i?null:i;var n=e;if(""!=t.trim()){t.split(".").forEach(function(e){if(null===n||void 0===n[e]||null===n[e])return void(n=i);n=n[e]})}return n},selectId:function(e){this.isSelectedRow(e)||this.selectedTo.push(e)},unselectId:function(e){this.selectedTo=this.selectedTo.filter(function(t){return t!==e})},isSelectedRow:function(e){return this.selectedTo.indexOf(e)>=0},clearSelectedValues:function(){this.selectedTo=[]},gotoPreviousPage:function(){this.currentPage>this.firstPage&&(this.currentPage--,this.loadData())},gotoNextPage:function(){this.currentPage<this.tablePagination.last_page&&(this.currentPage++,this.loadData())},gotoPage:function(e){e!=this.currentPage&&e>=this.firstPage&&e<=this.tablePagination.last_page&&(this.currentPage=e,this.loadData())},gotoCursor:function(e){this.loadCursorData(e)},isVisibleDetailRow:function(e){return this.visibleDetailRows.indexOf(e)>=0},showDetailRow:function(e){this.isVisibleDetailRow(e)||this.visibleDetailRows.push(e),this.checkScrollbarVisibility()},hideDetailRow:function(e){this.isVisibleDetailRow(e)&&(this.visibleDetailRows.splice(this.visibleDetailRows.indexOf(e),1),this.updateHeader())},toggleDetailRow:function(e){this.isVisibleDetailRow(e)?this.hideDetailRow(e):this.showDetailRow(e)},showField:function(e){e<0||e>this.tableFields.length||(this.tableFields[e].visible=!0)},hideField:function(e){e<0||e>this.tableFields.length||(this.tableFields[e].visible=!1)},toggleField:function(e){e<0||e>this.tableFields.length||(this.tableFields[e].visible=!this.tableFields[e].visible)},makePagination:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return e=null===e?0:e,t=null===t?this.perPage:t,i=null===i?this.currentPage:i,{total:e,per_page:t,current_page:i,last_page:Math.ceil(e/t)||0,next_page_url:"",prev_page_url:"",from:(i-1)*t+1,to:Math.min(i*t,e)}},normalizeSortOrder:function(){this.sortOrder.forEach(function(e){e.sortField=e.sortField||e.field})},handleDataMode:function(){if(null!==this.data&&Array.isArray(this.data))return void this.setData(this.data);this.dataManager?this.callDataManager():this.setData(this.data)},callDataManager:function(){var e=this,t=this.dataManager(this.sortOrder,this.makePagination());this.isPromiseObject(t)?t.then(function(t){return e.setData(t)}):this.setData(t)},isObject:function(e){return"object"===(void 0===e?"undefined":a()(e))&&null!==e},isPromiseObject:function(e){return this.isObject(e)&&"function"==typeof e.then},onRowClass:function(e,t){return"function"==typeof this.rowClass?this.rowClass(e,t):this.rowClass},onDetailRowClass:function(e,t){return"function"==typeof this.detailRowClass?this.detailRowClass(e,t):this.detailRowClass},onRowClicked:function(e,t,i){return this.fireEvent("row-clicked",{data:e,index:t,event:i}),!0},onRowDoubleClicked:function(e,t,i){this.fireEvent("row-dblclicked",{data:e,index:t,event:i})},onDetailRowClick:function(e,t,i){this.fireEvent("detail-row-clicked",{data:e,index:t,event:i})},onCellClicked:function(e,t,i,n){this.fireEvent("cell-clicked",{data:e,index:t,field:i,event:n})},onCellDoubleClicked:function(e,t,i,n){this.fireEvent("cell-dblclicked",{data:e,index:t,field:i,event:n})},onCellRightClicked:function(e,t,i,n){this.fireEvent("cell-rightclicked",{data:e,index:t,field:i,event:n})},onMouseOver:function(e,t,i){this.fireEvent("row-mouseover",{data:e,index:t,event:i})},onFieldEvent:function(e,t){this.fireEvent("field-event",e,t,this)},onHeaderEvent:function(e,t){this.fireEvent("header-event",e,t,this)},onCheckboxToggled:function(e,t,i){var n=this.trackBy;if(void 0===i[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 a=i[n];e?this.selectId(a):this.unselectId(a),this.fireEvent("checkbox-toggled",e,t)},onCheckboxToggledAll:function(e){var t=this,i=this.trackBy;e?this.tableData.forEach(function(e){t.selectId(e[i])}):this.tableData.forEach(function(e){t.unselectId(e[i])}),this.fireEvent("checkbox-toggled-all",e)},changePage:function(e){"prev"===e?this.gotoPreviousPage():"next"===e?this.gotoNextPage():"cursor"===this.paginationMode?this.gotoCursor(e):this.gotoPage(e)},reload:function(){return this.loadData()},refresh:function(){return this.currentPage=this.firstPage,this.loadData()},resetData:function(){this.tableData=null,this.tablePagination=null,this.fireEvent("data-reset")}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(49),a=i.n(n);t.default={name:"vuetable-col-group",props:{isHeader:{type:Boolean,default:!1}},computed:{vuetable:function(){return this.$parent}},methods:{columnClass:function(e,t){var i="object"===a()(e.name)&&null!==e.name?e.name.name:e.name;return i=i.replace(this.fieldPrefix,""),["vuetable-col-"+i,e.titleClass]}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"vuetable-th-gutter",computed:{vuetable:function(){return this.$parent}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(147),a=i.n(n);t.default={name:"vuetable-field-checkbox",mixins:[a.a]}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(35),a=i.n(n);t.default={mixins:[a.a],methods:{toggleCheckbox:function(e,t){this.vuetable.onCheckboxToggled(t.target.checked,this.rowField.name,e)},toggleAllCheckbox:function(e){this.vuetable.onCheckboxToggledAll(e.target.checked)},isSelected:function(e){return this.vuetable.isSelectedRow(e[this.vuetable.trackBy])},isAllItemsInCurrentPageSelected:function(){var e=this;if(this.vuetable.tableData){var t=this.vuetable.trackBy,i=this.$el.querySelector("input[type=checkbox]"),n=this.vuetable.tableData.filter(function(i){return e.vuetable.isSelectedRow(i[t])});return n.length<=0?(i.indeterminate=!1,!1):n.length<this.vuetable.perPage?(i.indeterminate=!0,!0):(i.indeterminate=!1,!0)}}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(35),a=i.n(n);t.default={name:"vuetable-field-handle",mixins:[a.a],computed:{css:function(){return this.vuetable.$_css}},methods:{renderIconTag:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return void 0===this.css.renderIcon?'<i class="'+e.join(" ")+'" '+t+"></i>":this.css.renderIcon(e,t)}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:{rowData:{type:Object,default:null},rowIndex:{type:Number},rowField:{type:Object},isHeader:{type:Boolean,default:!1},title:{type:String,default:""},vuetable:{type:Object,default:null}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(35),a=i.n(n);t.default={name:"vuetable-field-sequence",mixins:[a.a],methods:{renderSequence:function(){return this.vuetable.tablePagination?this.vuetable.tablePagination.from+this.rowIndex:1+this.rowIndex}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(62),a=i.n(n);t.default={mixins:[a.a]}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(62),a=i.n(n);t.default={mixins:[a.a],props:{pageText:{type:String,default:function(){return"Page"}}},methods:{registerEvents:function(){var e=this;this.$on("vuetable:pagination-data",function(t){e.setPaginationData(t)})}},created:function(){this.registerEvents()}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(148),a=i.n(n);t.default={mixins:[a.a]}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(21),a=i.n(n),s=i(20);t.default={props:{css:{type:Object,default:function(){return{}}},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,$_css:{}}},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)}},created:function(){this.mergeCss()},methods:{mergeCss:function(){this.$_css=a()({},s.a.paginationInfo,this.css)},setPaginationData:function(e){this.tablePagination=e},resetData:function(){this.tablePagination=null}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(21),a=i.n(n),s=i(20);t.default={props:{css:{type:Object,default:function(){return{}}},onEachSide:{type:Number,default:function(){return 2}},firstPage:{type:Number,default:1}},data:function(){return{eventPrefix:"vuetable-pagination:",tablePagination:null,$_css:{}}},computed:{totalPage:function(){return null===this.tablePagination?0:this.tablePagination.last_page-this.firstPage+1},lastPage:function(){return null===this.tablePagination?0:this.tablePagination.last_page},isOnFirstPage:function(){return null!==this.tablePagination&&this.tablePagination.current_page===this.firstPage},isOnLastPage:function(){return null!==this.tablePagination&&this.tablePagination.current_page===this.lastPage},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}},created:function(){this.mergeCss()},methods:{mergeCss:function(){this.$_css=a()({},s.a.pagination,this.css)},loadPage:function(e){this.$emit(this.eventPrefix+"change-page",e)},isCurrentPage:function(e){return e===this.tablePagination.current_page},setPaginationData:function(e){this.tablePagination=e},resetData:function(){this.tablePagination=null}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(37),a=i.n(n),s=i(38),l=i.n(s),o=i(39),r=i.n(o),c=i(146),u=i.n(c);t.default={components:{"vuetable-field-checkbox":a.a,"vuetable-field-handle":l.a,"vuetable-field-sequence":r.a,VuetableColGutter:u.a},computed:{sortOrder:function(){return this.$parent.sortOrder},css:function(){return this.$parent.$_css},vuetable:function(){return this.$parent}},methods:{stripPrefix:function(e){return e.replace(this.vuetable.fieldPrefix,"")},headerClass:function(e,t){return[e+"-"+this.toSnakeCase(t.name),t.titleClass||"",this.sortClass(t),{sortable:this.vuetable.isSortable(t)}]},toSnakeCase:function(e){return"string"==typeof e&&e.replace(/([A-Z])/g,function(e){return"_"+e.toLowerCase()}).replace(" ","_").replace(".","_")},sortClass:function(e){var t="",i=this.currentSortOrderPosition(e);return!1!==i&&(t="asc"==this.sortOrder[i].direction?this.css.ascendingClass:this.css.descendingClass),t},sortIcon:function(e){var t=this.css.sortableIcon,i=this.currentSortOrderPosition(e);return!1!==i&&(t="asc"==this.sortOrder[i].direction?this.css.ascendingIcon:this.css.descendingIcon),t},isInCurrentSortGroup:function(e){return!1!==this.currentSortOrderPosition(e)},hasSortableIcon:function(e){return this.vuetable.isSortable(e)&&""!=this.css.sortableIcon},currentSortOrderPosition:function(e){if(!this.vuetable.isSortable(e))return!1;for(var t=0;t<this.sortOrder.length;t++)if(this.fieldIsInSortOrderPosition(e,t))return t;return!1},fieldIsInSortOrderPosition:function(e,t){return this.sortOrder[t].field===e.name&&this.sortOrder[t].sortField===e.sortField},renderTitle:function(e){var t=this.getTitle(e);if(t.length>0&&this.isInCurrentSortGroup(e)||this.hasSortableIcon(e)){var i="opacity:"+this.sortIconOpacity(e)+";position:relative;float:right";return t+" "+(this.vuetable.showSortIcons?this.renderIconTag(["sort-icon",this.sortIcon(e)],'style="'+i+'"'):"")}return t},getTitle:function(e){return"function"==typeof e.title?e.title():void 0===e.title?e.name.replace("."," "):e.title},sortIconOpacity:function(e){var t=.3,i=this.sortOrder.length,n=this.currentSortOrderPosition(e);return 1-i*t<.3&&(t=.7/(i-1)),1-n*t},renderIconTag:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return void 0===this.css.renderIcon?'<i class="'+e.join(" ")+'" '+t+"></i>":this.css.renderIcon(e,t)},onColumnHeaderClicked:function(e,t){this.vuetable.orderBy(e,t)}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(68),a=i(64),s=i.n(a),l=i(65),o=i.n(l),r=i(66),c=i.n(r),u=i(67),d=i.n(u),h=i(36),f=(i.n(h),i(37)),p=i.n(f),g=i(38),b=i.n(g),v=i(39),m=i.n(v);n.a.component("vuetable-field-checkbox",p.a),n.a.component("vuetable-field-handle",b.a),n.a.component("vuetable-field-sequence",m.a);n.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(e,t){console.log("actions: on-click",t.name),sweetAlert(e,t.name)}}}),n.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(e){console.log("my-detail-row: on-click",e.target)}}}),n.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="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","fieldPrefix"],data:function(){return{}},methods:{getFieldTitle:function(e){if("function"==typeof e.title)return e.title(!0);var t=e.title;return""!==t?this.stripHTML(t):(t="",e.name.slice(0,2)===this.fieldPrefix&&(t=e.name.indexOf(":")>=0?e.name.split(":")[1]:e.name.replace(this.fieldPrefix,"")),t)},stripHTML:function(e){return e?e.replace(/(<([^>]+)>)/gi,""):""},toggleField:function(e,t){console.log("toggleField: ",e,t.target.checked),this.$parent.$refs.vuetable.toggleField(e)}}});var P={nickname:"Nickname",birthdate:"Birthdate"},w=[{name:"__handle",width:"40px"},{name:"__sequence",title:"No.",width:"50px",titleClass:"right aligned",dataClass:"right aligned"},{name:"__checkbox",title:"checkbox",width:"30px",titleClass:"center aligned",dataClass:"center aligned"},{name:"id",title:'<i class="unordered list icon"></i> Detail',width:"80px",dataClass:"center aligned",formatter:function(e,t){return['<a class="show-detail-row">','<i class="chevron circle '+(t.isVisibleDetailRow(e)?"down":"right")+' icon"></i>',"</a>"].join("")}},{name:"name",title:'<i class="book icon"></i> Full Name',sortField:"name",width:"150px",filterable:!0},{name:"email",title:'<i class="mail outline icon"></i> Email',sortField:"email",width:"200px",visible:!0,filterable:!0},{name:"nickname",title:function(){return arguments.length>0&&void 0!==arguments[0]&&arguments[0]?P.nickname:'<i class="paw icon"></i> '+P.nickname},sortField:"nickname",width:"120px",formatter:function(e){return e.toUpperCase()},filterable:!0},{name:"birthdate",title:function(){return arguments.length>0&&void 0!==arguments[0]&&arguments[0]?P.birthdate:'<i class="orange birthday icon"></i> '+P.birthdate},width:"100px",sortField:"birthdate",formatter:function(e){return null===e?"":moment(e,"YYYY-MM-DD").format("D MMM YYYY")},filterable:!0},{name:"gender",title:"Gender",sortField:"gender",width:"100px",titleClass:"center aligned",dataClass:"center aligned",formatter:function(e){return"M"===e?'<span class="ui teal label"><i class="male icon"></i>Male</span>':'<span class="ui pink label"><i class="female icon"></i>Female</span>'},filterable:!0},{name:"slot-actions",title:"Actions",width:"140px",titleClass:"center aligned",dataClass:"center aligned"}];new n.a({el:"#app",components:{Vuetable:s.a,VuetablePagination:o.a,VuetablePaginationDropdown:c.a,VuetablePaginationInfo:d.a},data:{loading:"",searchFor:"",moreParams:{},fields:w,tableHeight:"600px",vuetableFields:!1,fieldPrefix:"vuetable-",sortOrder:[{field:"name",direction:"asc"}],multiSort:!0,paginationComponent:"vuetable-pagination",perPage:10,paginationInfoTemplate:"Showing record: {from} to {to} from {total} item(s)",lang:P},watch:{perPage:function(e,t){this.$nextTick(function(){this.$refs.vuetable.refresh()})},paginationComponent:function(e,t){this.$nextTick(function(){this.$refs.pagination.setPaginationData(this.$refs.vuetable.tablePagination)})}},methods:{transform:function(e){var t={};t.pagination={total:e.total,per_page:e.per_page,current_page:e.current_page,last_page:e.last_page,next_page_url:e.next_page_url,prev_page_url:e.prev_page_url,from:e.from,to:e.to},t.data=[],e=e.data;for(var i=0;i<e.length;i++)t.data.push({id:e[i].id,name:e[i].name,nickname:e[i].nickname,email:e[i].email,age:e[i].age,birthdate:e[i].birthdate,gender:e[i].gender,address:e[i].address.line1+" "+e[i].address.line2+" "+e[i].address.zipcode});return t},showSettingsModal:function(){$("#settingsModal").modal({detachable:!0,onVisible:function(){$(".ui.checkbox").checkbox()}}).modal("show")},showLoader:function(){this.loading="loading"},hideLoader:function(){this.loading=""},setFilter:function(){this.moreParams.filter=this.searchFor,this.$nextTick(function(){this.$refs.vuetable.refresh()})},resetFilter:function(){this.searchFor="",this.setFilter()},preg_quote:function(e){return(e+"").replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g,"\\$1")},highlight:function(e,t){return t.replace(new RegExp("("+this.preg_quote(e)+")","ig"),'<span class="highlight">$1</span>')},rowClassCB:function(e,t){return t%2==0?"odd":"even"},onCellClicked:function(e,t,i){console.log("cellClicked",t.name),t.name!==this.fieldPrefix+"actions"&&this.$refs.vuetable.toggleDetailRow(e.id)},onCellDoubleClicked:function(e,t,i){console.log("cellDoubleClicked:",t.name)},onCellRightClicked:function(e,t,i){console.log("cellRightClicked:",t.name)},onLoadSuccess:function(e){this.$refs.paginationInfo.setPaginationData(e.data);var t=e.data.data;if(""!==this.searchFor)for(var i in t)t[i].name=this.highlight(this.searchFor,t[i].name),t[i].email=this.highlight(this.searchFor,t[i].email)},onLoadError:function(e){400==e.status?sweetAlert("Something's Wrong!",e.data.message,"error"):sweetAlert("Oops","Error communicating with the server","error")},onPaginationData:function(e){this.$refs.paginationInfo.setPaginationData(e),this.$refs.pagination.setPaginationData(e)},onChangePage:function(e){this.$refs.vuetable.changePage(e)},onInitialized:function(e){console.log("onInitialized",e),this.vuetableFields=e},onDataReset:function(){console.log("onDataReset"),this.$refs.paginationInfo.resetData(),this.$refs.pagination.resetData()},onActionClicked:function(e,t){console.log("slot actions: on-click",t.name),sweetAlert(e,t.name)},onFieldEvent:function(e,t,i){"checkbox-toggled"===e?i.onCheckboxToggled(t.isChecked,t.field,t.dataItem):"checkbox-toggled-all"===e&&i.onCheckboxToggledAll(t.isChecked,t.field)},onHeaderEvent:function(e,t){console.log("onHeaderEvent:",e,t);var i=this.$refs.vuetable;switch(e){case"order-by":i.orderBy(t.field,t.event);break;case"refresh":i.refresh();break;case"add-sort-column":i.addSortColumn(t.field,t.direction);break;case"remove-sort-column":i.removeSortColumn(t.index);break;case"set-sort-column":i.setSortColumnDirection(t.index,t.direction);break;case"clear-sort-column":i.clearSortOrder();break;case"toggle-row":i.onCheckboxToggled(t.isChecked,t.field,t.dataItem);break;case"toggle-all-rows":i.onCheckboxToggledAll(t.isChecked,t.field);break;case"filter":i.break;default:console.log("Unhandled event: ",e,t)}}}})},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t){},function(e,t){},function(e,t){},function(e,t){},,,function(e,t,i){var n=i(0)(i(88),i(155),null,null,null);e.exports=n.exports},function(e,t,i){function n(e){i(141)}var a=i(0)(i(89),i(156),n,null,null);e.exports=a.exports},function(e,t,i){var n=i(0)(i(91),null,null,null,null);e.exports=n.exports},function(e,t,i){var n=i(0)(i(98),null,null,null,null);e.exports=n.exports},function(e,t,i){var n=i(0)(i(100),i(158),null,null,null);e.exports=n.exports},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return e.isHeader?i("th",{staticClass:"vuetable-th-component-sequence",domProps:{innerHTML:e._s(e.title)}}):i("td",{staticClass:"vuetable-td-component-sequence",domProps:{innerHTML:e._s(e.renderSequence())}})},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:[e.$_css.wrapperClass]},[i("a",{class:[e.$_css.linkClass,(n={},n[e.$_css.disabledClass]=e.isOnFirstPage,n)],on:{click:function(t){e.loadPage("prev")}}},[i("i",{class:e.$_css.icons.prev})]),e._v(" "),i("select",{class:["vuetable-pagination-dropdown",e.$_css.dropdownClass],on:{change:function(t){e.loadPage(t.target.selectedIndex+e.firstPage)}}},e._l(e.totalPage,function(t,n){return i("option",{key:t,class:[e.$_css.pageClass],domProps:{value:n+e.firstPage,selected:e.isCurrentPage(n+e.firstPage)}},[e._v("\n "+e._s(e.pageText)+" "+e._s(t)+"\n ")])})),e._v(" "),i("a",{class:[e.$_css.linkClass,(a={},a[e.$_css.disabledClass]=e.isOnLastPage,a)],on:{click:function(t){e.loadPage("next")}}},[i("i",{class:e.$_css.icons.next})])]);var n,a},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return e.isHeader?i("th",{staticClass:"vuetable-th-component-handle",domProps:{innerHTML:e._s(e.title)}}):i("td",{staticClass:"vuetable-td-component-handle",domProps:{innerHTML:e._s(e.renderIconTag(["handle-icon",e.css.handleIcon]))}})},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:e.$_css.tableWrapper},[e.isFixedHeader?i("div",{staticClass:"vuetable-head-wrapper"},[i("table",{class:["vuetable",e.$_css.tableClass,e.$_css.tableHeaderClass]},[i("vuetable-col-group",{attrs:{"is-header":!0}}),e._v(" "),i("thead",[e._t("tableHeader",[e._l(e.headerRows,function(t,n){return[i(t,{key:n,tag:"component",on:{"vuetable:header-event":e.onHeaderEvent}})]})],{fields:e.tableFields})],2)],1)]):e._e(),e._v(" "),i("div",{staticClass:"vuetable-body-wrapper",class:{"fixed-header":e.isFixedHeader},style:{height:e.tableHeight}},[e._v("\n "+e._s(e.tableData)+"\n "),i("table",{class:["vuetable",e.isFixedHeader?"fixed-header":"",e.$_css.tableClass,e.$_css.tableBodyClass]},[i("vuetable-col-group"),e._v(" "),e.isFixedHeader?e._e():i("thead",[e._t("tableHeader",[e._l(e.headerRows,function(t,n){return[i(t,{key:n,tag:"component",on:{"vuetable:header-event":e.onHeaderEvent}})]})],{fields:e.tableFields})],2),e._v(" "),i("tfoot",[e._t("tableFooter",null,{fields:e.tableFields})],2),e._v(" "),i("tbody",{staticClass:"vuetable-body"},[e._l(e.tableData,function(t,n){return[i("tr",{key:n,class:e.onRowClass(t,n),attrs:{"item-index":n},on:{click:function(i){e.onRowClicked(t,n,i)},dblclick:function(i){e.onRowDoubleClicked(t,n,i)},mouseover:function(i){e.onMouseOver(t,n,i)}}},[e._l(e.tableFields,function(a,s){return[a.visible?[e.isFieldComponent(a.name)?[i(a.name,{key:s,tag:"component",class:e.bodyClass("vuetable-component",a),style:{width:a.width},attrs:{"row-data":t,"row-index":n,"row-field":a,vuetable:e.vuetable},on:{"vuetable:field-event":e.onFieldEvent}})]:e.isFieldSlot(a.name)?[i("td",{key:s,class:e.bodyClass("vuetable-slot",a),style:{width:a.width}},[e._t(a.name,null,{rowData:t,rowIndex:n,rowField:a})],2)]:[i("td",{key:s,class:e.bodyClass("vuetable-td-"+a.name,a),style:{width:a.width},domProps:{innerHTML:e._s(e.renderNormalField(a,t))},on:{click:function(i){e.onCellClicked(t,n,a,i)},dblclick:function(i){e.onCellDoubleClicked(t,n,a,i)},contextmenu:function(i){e.onCellRightClicked(t,n,a,i)}}})]]:e._e()]})],2),e._v(" "),e.useDetailRow?[i("transition",{key:n,attrs:{name:e.detailRowTransition}},[e.isVisibleDetailRow(t[e.trackBy])?i("tr",{class:e.onDetailRowClass(t,n),on:{click:function(i){e.onDetailRowClick(t,n,i)}}},[i("td",{attrs:{colspan:e.countVisibleFields}},[i(e.detailRowComponent,{tag:"component",attrs:{"row-data":t,"row-index":n,options:e.detailRowOptions}})],1)]):e._e()])]:e._e()]}),e._v(" "),e.displayEmptyDataRow?[i("tr",[i("td",{staticClass:"vuetable-empty-result",attrs:{colspan:e.countVisibleFields},domProps:{innerHTML:e._s(e.noDataTemplate)}})])]:e._e(),e._v(" "),e.lessThanMinRows?e._l(e.blankRows,function(t){return i("tr",{key:t,staticClass:"blank-row"},[e._l(e.tableFields,function(t,n){return[t.visible?i("td",{key:n},[e._v(" ")]):e._e()]})],2)}):e._e()],2)],1)])])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"show",rawName:"v-show",value:e.tablePagination&&e.lastPage>e.firstPage,expression:"tablePagination && lastPage > firstPage"}],class:e.$_css.wrapperClass},[i("a",{class:["btn-nav",e.$_css.linkClass,e.isOnFirstPage?e.$_css.disabledClass:""],on:{click:function(t){e.loadPage(e.firstPage)}}},[""!=e.$_css.icons.first?i("i",{class:[e.$_css.icons.first]}):i("span",[e._v("«")])]),e._v(" "),i("a",{class:["btn-nav",e.$_css.linkClass,e.isOnFirstPage?e.$_css.disabledClass:""],on:{click:function(t){e.loadPage("prev")}}},[""!=e.$_css.icons.next?i("i",{class:[e.$_css.icons.prev]}):i("span",[e._v(" ‹")])]),e._v(" "),e.notEnoughPages?[e._l(e.totalPage,function(t,n){return[i("a",{key:n,class:[e.$_css.pageClass,e.isCurrentPage(n+e.firstPage)?e.$_css.activeClass:""],domProps:{innerHTML:e._s(t)},on:{click:function(t){e.loadPage(n+e.firstPage)}}})]})]:[e._l(e.windowSize,function(t,n){return[i("a",{key:n,class:[e.$_css.pageClass,e.isCurrentPage(e.windowStart+n+e.firstPage-1)?e.$_css.activeClass:""],domProps:{innerHTML:e._s(e.windowStart+t-1)},on:{click:function(t){e.loadPage(e.windowStart+n+e.firstPage-1)}}})]})],e._v(" "),i("a",{class:["btn-nav",e.$_css.linkClass,e.isOnLastPage?e.$_css.disabledClass:""],on:{click:function(t){e.loadPage("next")}}},[""!=e.$_css.icons.next?i("i",{class:[e.$_css.icons.next]}):i("span",[e._v("› ")])]),e._v(" "),i("a",{class:["btn-nav",e.$_css.linkClass,e.isOnLastPage?e.$_css.disabledClass:""],on:{click:function(t){e.loadPage(e.lastPage)}}},[""!=e.$_css.icons.last?i("i",{class:[e.$_css.icons.last]}):i("span",[e._v("»")])])],2)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("colgroup",[e._l(e.vuetable.tableFields,function(t,n){return[t.visible?[i("col",{key:n,class:e.columnClass(t,n),style:{width:t.width}})]:e._e()]}),e._v(" "),e.isHeader&&e.vuetable.scrollVisible?i("col",{staticClass:"vuetable-col-gutter",style:{width:e.vuetable.scrollBarWidth}}):e._e()],2)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("th",{staticClass:"vuetable-th-gutter",style:{width:e.vuetable.scrollBarWidth}})},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return e.isHeader?i("th",{staticClass:"vuetable-th-component-checkbox"},[i("input",{attrs:{type:"checkbox"},domProps:{checked:e.isAllItemsInCurrentPageSelected()},on:{change:function(t){e.toggleAllCheckbox(t)}}})]):i("td",{staticClass:"vuetable-td-component-checkbox"},[i("input",{attrs:{type:"checkbox"},domProps:{checked:e.isSelected(e.rowData)},on:{change:function(t){e.toggleCheckbox(e.rowData,t)}}})])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("tr",[e._l(e.vuetable.tableFields,function(t,n){return[t.visible?[e.vuetable.isFieldComponent(t.name)?[i(t.name,{key:n,tag:"component",class:e.headerClass("vuetable-th-component",t),style:{width:t.width},attrs:{"row-field":t,"is-header":!0,title:e.renderTitle(t),vuetable:e.vuetable},on:{"vuetable:header-event":e.vuetable.onHeaderEvent,click:function(i){e.onColumnHeaderClicked(t,i)}}})]:e.vuetable.isFieldSlot(t.name)?[i("th",{key:n,class:e.headerClass("vuetable-th-slot",t),style:{width:t.width},domProps:{innerHTML:e._s(e.renderTitle(t))},on:{click:function(i){e.onColumnHeaderClicked(t,i)}}})]:[i("th",{key:n,class:e.headerClass("vuetable-th",t),style:{width:t.width},attrs:{id:"_"+t.name},domProps:{innerHTML:e._s(e.renderTitle(t))},on:{click:function(i){e.onColumnHeaderClicked(t,i)}}})]]:e._e()]}),e._v(" "),e.vuetable.scrollVisible?i("vuetable-col-gutter"):e._e()],2)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",{class:["vuetable-pagination-info",e.$_css.infoClass],domProps:{innerHTML:e._s(e.paginationInfo)}})},staticRenderFns:[]}}]),[101]);
2
- //# sourceMappingURL=app.79def03f914211756797.js.map