78 lines
2.9 KiB
JavaScript
Raw Normal View History

'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _expandTransition = require('../../transitions/expand-transition');
var _expandTransition2 = _interopRequireDefault(_expandTransition);
var _helpers = require('../../../util/helpers');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* @vue/component */
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: 'v-datatable__expand-content',
key: (0, _helpers.getObjectValueByPath)(props.item, this.itemKey)
}, [this.$scopedSlots.expand(props)]);
children.push(expand);
}
var transition = this.$createElement('transition-group', {
class: 'v-datatable__expand-col',
attrs: { colspan: this.headerColumns },
props: {
tag: 'td'
},
on: (0, _expandTransition2.default)('v-datatable__expand-col--expanded')
}, children);
return this.genTR([transition], { class: 'v-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.hasTag(row, 'td') ? this.genTR(row, {
key: this.itemKey ? (0, _helpers.getObjectValueByPath)(props.item, this.itemKey) : 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 (this.hasTag(content, 'tr')) {
return content;
} else if (this.hasTag(content, 'td')) {
return this.genTR(content);
} else {
return this.genTR([this.$createElement('td', {
class: {
'text-xs-center': typeof content === 'string'
},
attrs: { colspan: this.headerColumns }
}, content)]);
}
}
}
};
//# sourceMappingURL=body.js.map