vuetify
Version:
Vue.js 2 Semantic Component Framework
78 lines (64 loc) • 2.24 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _expandTransition = require('../../transitions/expand-transition');
var _expandTransition2 = _interopRequireDefault(_expandTransition);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = {
methods: {
genTBody: function genTBody() {
var children = this.genItems();
return this.$createElement('tbody', children);
},
genExpandedRow: function genExpandedRow(props) {
var children = [];
if (this.isExpanded(props.item)) {
var expand = this.$createElement('div', {
class: 'datatable__expand-content',
key: props.item[this.itemKey]
}, this.$scopedSlots.expand(props));
children.push(expand);
}
var transition = this.$createElement('transition-group', {
class: 'datatable__expand-col',
attrs: { colspan: '100%' },
props: {
tag: 'td'
},
on: (0, _expandTransition2.default)('datatable__expand-col--expanded')
}, children);
return this.genTR([transition], { class: 'datatable__expand-row' });
},
genFilteredItems: function genFilteredItems() {
if (!this.$scopedSlots.items) {
return null;
}
var rows = [];
for (var index = 0, len = this.filteredItems.length; index < len; ++index) {
var item = this.filteredItems[index];
var props = this.createProps(item, index);
var row = this.$scopedSlots.items(props);
rows.push(this.needsTR(row) ? this.genTR(row, {
key: index,
attrs: { active: this.isSelected(item) }
}) : row);
if (this.$scopedSlots.expand) {
var expandRow = this.genExpandedRow(props);
rows.push(expandRow);
}
}
return rows;
},
genEmptyItems: function genEmptyItems(content) {
if (typeof content === 'string') {
return this.genTR([this.$createElement('td', {
'class': 'text-xs-center',
attrs: { colspan: '100%' }
}, content)]);
} else {
return this.needsTR(content) ? this.genTR(content) : content;
}
}
}
};