UNPKG

med-table

Version:
39 lines 6.08 kB
import { TableCell } from '../TableCell'; import { filterMethodsMap } from './filterMethodsMap'; import { FILTER_TYPES } from '../../types/filterTypes'; export class FilterDataHandler { constructor() { this._data = []; this._config = []; } filter(filters, exitKey) { return this._data.filter(row => this._config.every((col) => { const key = col.sortKey || col.key; const { value } = filters[key] || { matchMode: '' }; if (this.isEmptyValue(value, col.filterType) || exitKey === key) return true; const filterType = col.filterType || FILTER_TYPES.TEXT; const tableCell = new TableCell(); tableCell.setItem(row); tableCell.setConfig(col); const filterFn = filterMethodsMap.get(filterType); return filterFn ? filterFn(tableCell.previewData, value) : true; })); } setData(data) { this._data = data; } setConfig(config) { this._config = config; } isEmptyValue(value, filterType) { if (filterType === FILTER_TYPES.SELECT || filterType === FILTER_TYPES.DATE) { return !value || Array.isArray(value) && !value.length; } if (filterType === FILTER_TYPES.CHECKBOX) { return false; } return !value; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsdGVyRGF0YUhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWQtdGFibGUvc3JjL2xpYi9zZXJ2aWNlcy9GaWx0ZXJEYXRhSGFuZGxlci9GaWx0ZXJEYXRhSGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQVVyRCxNQUFNLE9BQU8saUJBQWlCO0lBQTlCO1FBQ1UsVUFBSyxHQUFRLEVBQUUsQ0FBQztRQUNoQixZQUFPLEdBQTBCLEVBQUUsQ0FBQztJQXNDOUMsQ0FBQztJQXBDQyxNQUFNLENBQUMsT0FBcUIsRUFBRSxPQUFnQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUF3QixFQUFXLEVBQUU7WUFDdkYsTUFBTSxHQUFHLEdBQVcsR0FBRyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDO1lBQzNDLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBZ0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBRWpFLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLE9BQU8sS0FBSyxHQUFHO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBRTdFLE1BQU0sVUFBVSxHQUFpQixHQUFHLENBQUMsVUFBVSxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDckUsTUFBTSxTQUFTLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNsQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFekIsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2xELE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsT0FBTyxDQUFDLElBQVM7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUNwQixDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQTZCO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxZQUFZLENBQUMsS0FBVSxFQUFFLFVBQXlCO1FBQ3hELElBQUksVUFBVSxLQUFLLFlBQVksQ0FBQyxNQUFNLElBQUksVUFBVSxLQUFLLFlBQVksQ0FBQyxJQUFJLEVBQUU7WUFDMUUsT0FBTyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztTQUN4RDtRQUVELElBQUksVUFBVSxLQUFLLFlBQVksQ0FBQyxRQUFRLEVBQUU7WUFDeEMsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUYWJsZUNlbGx9IGZyb20gJy4uL1RhYmxlQ2VsbCc7XG5pbXBvcnQge2ZpbHRlck1ldGhvZHNNYXB9IGZyb20gJy4vZmlsdGVyTWV0aG9kc01hcCc7XG5pbXBvcnQge0ZJTFRFUl9UWVBFU30gZnJvbSAnLi4vLi4vdHlwZXMvZmlsdGVyVHlwZXMnO1xuaW1wb3J0IHtQcmltZUZpbHRlciwgUHJpbWVGaWx0ZXJzfSBmcm9tICcuLi8uLi90eXBlcy9QcmltZUZpbHRlcic7XG5pbXBvcnQge0NlbGxEYXRhQ29uZmlnTG9jYWx9IGZyb20gJy4uLy4uL3R5cGVzL0NlbGxEYXRhQ29uZmlnTG9jYWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElGaWx0ZXJEYXRhSGFuZGxlcjxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICBzZXREYXRhKGRhdGE6IFRbXSk6IHZvaWRcbiAgc2V0Q29uZmlnKGNvbmZpZzogQ2VsbERhdGFDb25maWdMb2NhbFtdKTogdm9pZFxuICBmaWx0ZXIoZmlsdGVyczogUHJpbWVGaWx0ZXJzLCBleGl0S2V5Pzogc3RyaW5nKTogVFtdXG59XG5cbmV4cG9ydCBjbGFzcyBGaWx0ZXJEYXRhSGFuZGxlcjxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4gaW1wbGVtZW50cyBJRmlsdGVyRGF0YUhhbmRsZXI8VD4ge1xuICBwcml2YXRlIF9kYXRhOiBUW10gPSBbXTtcbiAgcHJpdmF0ZSBfY29uZmlnOiBDZWxsRGF0YUNvbmZpZ0xvY2FsW10gPSBbXTtcblxuICBmaWx0ZXIoZmlsdGVyczogUHJpbWVGaWx0ZXJzLCBleGl0S2V5Pzogc3RyaW5nKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YS5maWx0ZXIocm93ID0+IHRoaXMuX2NvbmZpZy5ldmVyeSgoY29sOiBDZWxsRGF0YUNvbmZpZ0xvY2FsKTogYm9vbGVhbiA9PiB7XG4gICAgICBjb25zdCBrZXk6IHN0cmluZyA9IGNvbC5zb3J0S2V5IHx8IGNvbC5rZXk7XG4gICAgICBjb25zdCB7IHZhbHVlIH06IFByaW1lRmlsdGVyID0gZmlsdGVyc1trZXldIHx8IHsgbWF0Y2hNb2RlOiAnJyB9O1xuXG4gICAgICBpZiAodGhpcy5pc0VtcHR5VmFsdWUodmFsdWUsIGNvbC5maWx0ZXJUeXBlKSB8fCBleGl0S2V5ID09PSBrZXkpIHJldHVybiB0cnVlO1xuXG4gICAgICBjb25zdCBmaWx0ZXJUeXBlOiBGSUxURVJfVFlQRVMgPSBjb2wuZmlsdGVyVHlwZSB8fCBGSUxURVJfVFlQRVMuVEVYVDtcbiAgICAgIGNvbnN0IHRhYmxlQ2VsbCA9IG5ldyBUYWJsZUNlbGwoKTtcbiAgICAgIHRhYmxlQ2VsbC5zZXRJdGVtKHJvdyk7XG4gICAgICB0YWJsZUNlbGwuc2V0Q29uZmlnKGNvbCk7XG5cbiAgICAgIGNvbnN0IGZpbHRlckZuID0gZmlsdGVyTWV0aG9kc01hcC5nZXQoZmlsdGVyVHlwZSk7XG4gICAgICByZXR1cm4gZmlsdGVyRm4gPyBmaWx0ZXJGbih0YWJsZUNlbGwucHJldmlld0RhdGEsIHZhbHVlKSA6IHRydWU7XG4gICAgfSkpO1xuICB9XG5cbiAgc2V0RGF0YShkYXRhOiBUW10pOiB2b2lkIHtcbiAgICB0aGlzLl9kYXRhID0gZGF0YTtcbiAgfVxuXG4gIHNldENvbmZpZyhjb25maWc6IENlbGxEYXRhQ29uZmlnTG9jYWxbXSk6IHZvaWQge1xuICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgfVxuXG4gIHByaXZhdGUgaXNFbXB0eVZhbHVlKHZhbHVlOiBhbnksIGZpbHRlclR5cGU/OiBGSUxURVJfVFlQRVMpOiBib29sZWFuIHtcbiAgICBpZiAoZmlsdGVyVHlwZSA9PT0gRklMVEVSX1RZUEVTLlNFTEVDVCB8fCBmaWx0ZXJUeXBlID09PSBGSUxURVJfVFlQRVMuREFURSkge1xuICAgICAgcmV0dXJuICF2YWx1ZSB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiAhdmFsdWUubGVuZ3RoO1xuICAgIH1cblxuICAgIGlmIChmaWx0ZXJUeXBlID09PSBGSUxURVJfVFlQRVMuQ0hFQ0tCT1gpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gIXZhbHVlO1xuICB9XG59XG4iXX0=