1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import ExpandTransitionGenerator from '../../transitions/expand-transition';
- import { getObjectValueByPath } from '../../../util/helpers';
- /* @vue/component */
- export 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: 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: ExpandTransitionGenerator('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 ? 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
|