This repository has been archived on 2024-07-27. You can view files and clone it, but cannot push or open issues or pull requests.
keksAccountGUI/node_modulesOLD/vuetify/lib/components/VDataTable/VDataTableHeaderMobile.js
2019-08-11 20:48:02 +02:00

83 lines
No EOL
2.4 KiB
JavaScript

import mixins from '../../util/mixins';
import VSelect from '../VSelect/VSelect';
import VChip from '../VChip';
import header from './mixins/header';
import { wrapInArray } from '../../util/helpers';
export default mixins(header).extend({
name: 'v-data-table-header-mobile',
methods: {
genSortChip(props) {
const children = [props.item.text];
const sortIndex = this.options.sortBy.findIndex(k => k === props.item.value);
const beingSorted = sortIndex >= 0;
const isDesc = this.options.sortDesc[sortIndex];
children.push(this.$createElement('div', {
staticClass: 'v-chip__close',
class: {
sortable: true,
active: beingSorted,
asc: beingSorted && !isDesc,
desc: beingSorted && isDesc
}
}, [this.genSortIcon()]));
return this.$createElement(VChip, {
staticClass: 'sortable',
nativeOn: {
click: e => {
e.stopPropagation();
this.$emit('sort', props.item.value);
}
}
}, children);
},
genSortSelect() {
return this.$createElement(VSelect, {
props: {
label: 'Sort by',
items: this.headers.filter(h => h.value !== 'data-table-select'),
hideDetails: true,
multiple: this.options.multiSort,
value: this.options.multiSort ? this.options.sortBy : this.options.sortBy[0],
disabled: this.disableSort
},
on: {
change: v => this.$emit('sort', v)
},
scopedSlots: {
selection: props => this.genSortChip(props)
}
});
}
},
render(h) {
const children = [];
const header = this.headers.find(h => h.value === 'data-table-select');
if (header && !this.singleSelect) {
children.push(this.$createElement('div', {
class: ['v-data-table-header-mobile__select', ...wrapInArray(header.class)],
attrs: {
width: header.width
}
}, [this.genSelectAll()]));
}
children.push(this.genSortSelect());
const th = h('th', {
attrs: {
colspan: this.headers.length
}
}, [h('div', {
staticClass: 'v-data-table-header-mobile__wrapper'
}, children)]);
const tr = h('tr', [th]);
return h('thead', {
staticClass: 'v-data-table-header v-data-table-header-mobile'
}, [tr]);
}
});
//# sourceMappingURL=VDataTableHeaderMobile.js.map