UNPKG

vue-tables-2

Version:
60 lines (44 loc) 2.1 kB
"use strict"; 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]); }; };