@ngx-custom-code/ngx-table-custom-sort
Version:
Angular easy table
51 lines • 7.44 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: "18.2.0", ngImport: i0, type: SearchPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: SearchPipe, name: "search" }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SearchPipe, decorators: [{
type: Pipe,
args: [{
name: 'search',
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZWFzeS10YWJsZS9zcmMvbGliL3BpcGVzL3NlYXJjaC1waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFPN0QsTUFBTSxPQUFPLFVBQVU7SUFIdkI7UUFJVSxZQUFPLEdBQThCLEVBQUUsQ0FBQztLQTJDakQ7SUF6Q0MsU0FBUyxDQUNQLEtBQVksRUFDWixNQUE2QyxFQUM3QyxvQkFBcUMsRUFDckMsTUFBZTtRQUVmLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ2pDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNsQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDN0QsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDbEQsMkJBQTJCO2dCQUMzQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMvQixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTyxXQUFXLENBQUMsS0FBWSxFQUFFLG9CQUFxQztRQUNyRSxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDL0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDM0MsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0IsTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQy9DLE1BQU0sT0FBTyxHQUNYLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3JGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMzQyxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3RCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7OEdBM0NVLFVBQVU7NEdBQVYsVUFBVTs7MkZBQVYsVUFBVTtrQkFIdEIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsUUFBUTtpQkFDZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmlsdGVyc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9maWx0ZXJzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb25maWcgfSBmcm9tICcuLic7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnc2VhcmNoJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlYXJjaFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICBwcml2YXRlIGZpbHRlcnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuXHJcbiAgdHJhbnNmb3JtKFxyXG4gICAgYXJyYXk6IGFueVtdLFxyXG4gICAgZmlsdGVyOiBBcnJheTx7IHZhbHVlOiBzdHJpbmc7IGtleTogc3RyaW5nIH0+LFxyXG4gICAgZmlsdGVyZWRDb3VudFN1YmplY3Q6IFN1YmplY3Q8bnVtYmVyPixcclxuICAgIGNvbmZpZz86IENvbmZpZ1xyXG4gICk6IGFueSB7XHJcbiAgICBmaWx0ZXJlZENvdW50U3ViamVjdC5uZXh0KDApO1xyXG4gICAgaWYgKHR5cGVvZiBhcnJheSA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBmaWx0ZXIgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIGZpbHRlcmVkQ291bnRTdWJqZWN0Lm5leHQoYXJyYXkubGVuZ3RoKTtcclxuICAgICAgcmV0dXJuIGFycmF5O1xyXG4gICAgfVxyXG4gICAgZmlsdGVyLmZvckVhY2goKGYpID0+IHtcclxuICAgICAgdGhpcy5maWx0ZXJzW2Yua2V5XSA9IGYudmFsdWUudG9TdHJpbmcoKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xyXG4gICAgICBpZiAoT2JqZWN0LmtleXMoZikubGVuZ3RoID09PSAwIHx8IGYudmFsdWUgPT09ICcnKSB7XHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbiAgICAgICAgZGVsZXRlIHRoaXMuZmlsdGVyc1tmLmtleV07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKGNvbmZpZyAmJiBjb25maWcuZ3JvdXBSb3dzKSB7XHJcbiAgICAgIHJldHVybiBhcnJheS5tYXAoKGFycikgPT4gdGhpcy5maWx0ZXJHcm91cChhcnIsIGZpbHRlcmVkQ291bnRTdWJqZWN0KSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJHcm91cChhcnJheSwgZmlsdGVyZWRDb3VudFN1YmplY3QpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWx0ZXJHcm91cChhcnJheTogYW55W10sIGZpbHRlcmVkQ291bnRTdWJqZWN0OiBTdWJqZWN0PG51bWJlcj4pOiBhbnlbXSB7XHJcbiAgICBjb25zdCBhcnIgPSBhcnJheS5maWx0ZXIoKG9iaikgPT4ge1xyXG4gICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5maWx0ZXJzKS5ldmVyeSgoYykgPT4ge1xyXG4gICAgICAgIGNvbnN0IHNwbGl0ID0gYy5zcGxpdCgnLicpO1xyXG4gICAgICAgIGNvbnN0IHZhbCA9IEZpbHRlcnNTZXJ2aWNlLmdldFBhdGgoc3BsaXQsIG9iaik7XHJcbiAgICAgICAgY29uc3QgZWxlbWVudCA9XHJcbiAgICAgICAgICB0eXBlb2YgdmFsID09PSAnb2JqZWN0JyA/IEpTT04uc3RyaW5naWZ5KHZhbCkgOiB2YWwudG9TdHJpbmcoKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xyXG4gICAgICAgIGNvbnN0IHN0cmluZ3MgPSB0aGlzLmZpbHRlcnNbY10uc3BsaXQoJywnKTtcclxuICAgICAgICByZXR1cm4gc3RyaW5ncy5zb21lKChzKSA9PiBlbGVtZW50LmluZGV4T2Yocy50cmltKCkpID4gLTEpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgZmlsdGVyZWRDb3VudFN1YmplY3QubmV4dChhcnIubGVuZ3RoKTtcclxuICAgIHJldHVybiBhcnI7XHJcbiAgfVxyXG59XHJcbiJdfQ==