line_push/node_modules/vuetify/es5/components/VDataTable/VDataTableHeaderDesktop.js
2022-07-17 13:16:16 +08:00

145 lines
4.7 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _mixins = _interopRequireDefault(require("../../util/mixins"));
var _header = _interopRequireDefault(require("./mixins/header"));
var _helpers = require("../../util/helpers");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
var _default = (0, _mixins.default)(_header.default).extend({
name: 'v-data-table-header-desktop',
methods: {
genGroupByToggle: function genGroupByToggle(header) {
var _this = this;
return this.$createElement('span', {
on: {
click: function click(e) {
e.stopPropagation();
_this.$emit('group', header.value);
}
}
}, ['group']);
},
getAria: function getAria(beingSorted, isDesc) {
var _this2 = this;
var $t = function $t(key) {
return _this2.$vuetify.lang.t("$vuetify.dataTable.ariaLabel.".concat(key));
};
var ariaSort = 'none';
var ariaLabel = [$t('sortNone'), $t('activateAscending')];
if (!beingSorted) {
return {
ariaSort: ariaSort,
ariaLabel: ariaLabel.join(' ')
};
}
if (isDesc) {
ariaSort = 'descending';
ariaLabel = [$t('sortDescending'), $t(this.options.mustSort ? 'activateAscending' : 'activateNone')];
} else {
ariaSort = 'ascending';
ariaLabel = [$t('sortAscending'), $t('activateDescending')];
}
return {
ariaSort: ariaSort,
ariaLabel: ariaLabel.join(' ')
};
},
genHeader: function genHeader(header) {
var _this3 = this;
var data = {
attrs: {
role: 'columnheader',
scope: 'col',
'aria-label': header.text || ''
},
style: {
width: (0, _helpers.convertToUnit)(header.width),
minWidth: (0, _helpers.convertToUnit)(header.width)
},
class: ["text-".concat(header.align || 'start')].concat(_toConsumableArray((0, _helpers.wrapInArray)(header.class)), [header.divider && 'v-data-table__divider']),
on: {}
};
var children = [];
if (header.value === 'data-table-select' && !this.singleSelect) {
return this.$createElement('th', data, [this.genSelectAll()]);
}
children.push(this.$scopedSlots[header.value] ? this.$scopedSlots[header.value]({
header: header
}) : this.$createElement('span', [header.text]));
if (!this.disableSort && (header.sortable || !header.hasOwnProperty('sortable'))) {
data.on['click'] = function () {
return _this3.$emit('sort', header.value);
};
var sortIndex = this.options.sortBy.findIndex(function (k) {
return k === header.value;
});
var beingSorted = sortIndex >= 0;
var isDesc = this.options.sortDesc[sortIndex];
data.class.push('sortable');
var _this$getAria = this.getAria(beingSorted, isDesc),
ariaLabel = _this$getAria.ariaLabel,
ariaSort = _this$getAria.ariaSort;
data.attrs['aria-label'] += "".concat(header.text ? ': ' : '').concat(ariaLabel);
data.attrs['aria-sort'] = ariaSort;
if (beingSorted) {
data.class.push('active');
data.class.push(isDesc ? 'desc' : 'asc');
}
if (header.align === 'end') children.unshift(this.genSortIcon());else children.push(this.genSortIcon());
if (this.options.multiSort && beingSorted) {
children.push(this.$createElement('span', {
class: 'v-data-table-header__sort-badge'
}, [String(sortIndex + 1)]));
}
}
if (this.showGroupBy && header.groupable !== false) children.push(this.genGroupByToggle(header));
return this.$createElement('th', data, children);
}
},
render: function render() {
var _this4 = this;
return this.$createElement('thead', {
staticClass: 'v-data-table-header'
}, [this.$createElement('tr', this.headers.map(function (header) {
return _this4.genHeader(header);
}))]);
}
});
exports.default = _default;
//# sourceMappingURL=VDataTableHeaderDesktop.js.map