vue-tables-2
Version:
Vue.js 2 grid components
60 lines (44 loc) • 2.1 kB
JavaScript
var _merge = _interopRequireDefault(require("merge"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
module.exports = function (h) {
var _this = this;
return function (classes) {
if (!_this.opts.filterByColumn || !_this.opts.filterable) return '';
var textFilter = require('./text-filter').call(_this, h, classes.input);
var dateFilter = require('./date-filter').call(_this, h);
var listFilter = require('./list-filter').call(_this, h, classes.select);
var filters = [];
var filter;
if (_this.hasChildRow && _this.opts.childRowTogglerFirst && _this.opts.showChildRowToggler) filters.push(h("th"));
_this.allColumns.map(function (column) {
var filter = '';
if (_this.filterable(column)) {
switch (true) {
case _this.isTextFilter(column):
filter = textFilter(column);
break;
case _this.isDateFilter(column):
filter = dateFilter(column);
break;
case _this.isListFilter(column):
filter = listFilter(column);
break;
}
}
if (typeof _this.$slots["filter__".concat(column)] !== 'undefined') {
filter = filter ? h("div", [filter, _this.$slots["filter__".concat(column)]]) : _this.$slots["filter__".concat(column)];
}
filters.push(h("th", {
"class": _this.columnClass(column)
}, [h("div", _defineProperty({
"class": "VueTables__column-filter"
}, "class", 'VueTables__' + column + '-filter-wrapper'), [filter])]));
});
if (_this.hasChildRow && !_this.opts.childRowTogglerFirst && _this.opts.showChildRowToggler) filters.push(h("th"));
return h("tr", {
"class": "VueTables__filters-row"
}, [filters]);
};
};
;