ngx-easy-table
Version:
Angular easy table
51 lines • 7.3 kB
JavaScript
import { Pipe } from '@angular/core';
import { FiltersService } from '../services/filters.service';
import * as i0 from "@angular/core";
export class SearchPipe {
constructor() {
this.filters = {};
}
transform(array, filter, filteredCountSubject, config) {
filteredCountSubject.next(0);
if (typeof array === 'undefined') {
return;
}
if (typeof filter === 'undefined') {
filteredCountSubject.next(array.length);
return array;
}
filter.forEach((f) => {
this.filters[f.key] = f.value.toString().toLocaleLowerCase();
if (Object.keys(f).length === 0 || f.value === '') {
// eslint-disable-next-line
delete this.filters[f.key];
}
});
if (config && config.groupRows) {
return array.map((arr) => this.filterGroup(arr, filteredCountSubject));
}
return this.filterGroup(array, filteredCountSubject);
}
filterGroup(array, filteredCountSubject) {
const arr = array.filter((obj) => {
return Object.keys(this.filters).every((c) => {
const split = c.split('.');
const val = FiltersService.getPath(split, obj);
const element = typeof val === 'object' ? JSON.stringify(val) : val.toString().toLocaleLowerCase();
const strings = this.filters[c].split(',');
return strings.some((s) => element.indexOf(s.trim()) > -1);
});
});
filteredCountSubject.next(arr.length);
return arr;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SearchPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: SearchPipe, name: "search" }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SearchPipe, decorators: [{
type: Pipe,
args: [{
name: 'search',
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZWFzeS10YWJsZS9zcmMvbGliL3BpcGVzL3NlYXJjaC1waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFPN0QsTUFBTSxPQUFPLFVBQVU7SUFIdkI7UUFJVSxZQUFPLEdBQThCLEVBQUUsQ0FBQztLQTJDakQ7SUF6Q0MsU0FBUyxDQUNQLEtBQVksRUFDWixNQUE2QyxFQUM3QyxvQkFBcUMsRUFDckMsTUFBZTtRQUVmLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ2pDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNsQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDN0QsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDbEQsMkJBQTJCO2dCQUMzQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMvQixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTyxXQUFXLENBQUMsS0FBWSxFQUFFLG9CQUFxQztRQUNyRSxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDL0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDM0MsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0IsTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQy9DLE1BQU0sT0FBTyxHQUNYLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3JGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMzQyxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3RCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7K0dBM0NVLFVBQVU7NkdBQVYsVUFBVTs7NEZBQVYsVUFBVTtrQkFIdEIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsUUFBUTtpQkFDZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpbHRlcnNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmlsdGVycy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJy4uJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQFBpcGUoe1xuICBuYW1lOiAnc2VhcmNoJyxcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcml2YXRlIGZpbHRlcnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcblxuICB0cmFuc2Zvcm0oXG4gICAgYXJyYXk6IGFueVtdLFxuICAgIGZpbHRlcjogQXJyYXk8eyB2YWx1ZTogc3RyaW5nOyBrZXk6IHN0cmluZyB9PixcbiAgICBmaWx0ZXJlZENvdW50U3ViamVjdDogU3ViamVjdDxudW1iZXI+LFxuICAgIGNvbmZpZz86IENvbmZpZ1xuICApOiBhbnkge1xuICAgIGZpbHRlcmVkQ291bnRTdWJqZWN0Lm5leHQoMCk7XG4gICAgaWYgKHR5cGVvZiBhcnJheSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBmaWx0ZXIgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBmaWx0ZXJlZENvdW50U3ViamVjdC5uZXh0KGFycmF5Lmxlbmd0aCk7XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuICAgIGZpbHRlci5mb3JFYWNoKChmKSA9PiB7XG4gICAgICB0aGlzLmZpbHRlcnNbZi5rZXldID0gZi52YWx1ZS50b1N0cmluZygpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICBpZiAoT2JqZWN0LmtleXMoZikubGVuZ3RoID09PSAwIHx8IGYudmFsdWUgPT09ICcnKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgICBkZWxldGUgdGhpcy5maWx0ZXJzW2Yua2V5XTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoY29uZmlnICYmIGNvbmZpZy5ncm91cFJvd3MpIHtcbiAgICAgIHJldHVybiBhcnJheS5tYXAoKGFycikgPT4gdGhpcy5maWx0ZXJHcm91cChhcnIsIGZpbHRlcmVkQ291bnRTdWJqZWN0KSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZpbHRlckdyb3VwKGFycmF5LCBmaWx0ZXJlZENvdW50U3ViamVjdCk7XG4gIH1cblxuICBwcml2YXRlIGZpbHRlckdyb3VwKGFycmF5OiBhbnlbXSwgZmlsdGVyZWRDb3VudFN1YmplY3Q6IFN1YmplY3Q8bnVtYmVyPik6IGFueVtdIHtcbiAgICBjb25zdCBhcnIgPSBhcnJheS5maWx0ZXIoKG9iaikgPT4ge1xuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuZmlsdGVycykuZXZlcnkoKGMpID0+IHtcbiAgICAgICAgY29uc3Qgc3BsaXQgPSBjLnNwbGl0KCcuJyk7XG4gICAgICAgIGNvbnN0IHZhbCA9IEZpbHRlcnNTZXJ2aWNlLmdldFBhdGgoc3BsaXQsIG9iaik7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPVxuICAgICAgICAgIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnID8gSlNPTi5zdHJpbmdpZnkodmFsKSA6IHZhbC50b1N0cmluZygpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IHN0cmluZ3MgPSB0aGlzLmZpbHRlcnNbY10uc3BsaXQoJywnKTtcbiAgICAgICAgcmV0dXJuIHN0cmluZ3Muc29tZSgocykgPT4gZWxlbWVudC5pbmRleE9mKHMudHJpbSgpKSA+IC0xKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIGZpbHRlcmVkQ291bnRTdWJqZWN0Lm5leHQoYXJyLmxlbmd0aCk7XG4gICAgcmV0dXJuIGFycjtcbiAgfVxufVxuIl19