UNPKG

@paddls/ngx-easy-table

Version:
50 lines 7.19 kB
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 === '') { 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: "16.1.7", ngImport: i0, type: SearchPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); } static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SearchPipe, name: "search" }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SearchPipe, decorators: [{ type: Pipe, args: [{ name: 'search', }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZWFzeS10YWJsZS9zcmMvbGliL3BpcGVzL3NlYXJjaC1waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFPN0QsTUFBTSxPQUFPLFVBQVU7SUFIdkI7UUFJVSxZQUFPLEdBQThCLEVBQUUsQ0FBQztLQXdDakQ7SUF0Q1EsU0FBUyxDQUFDLEtBQVksRUFDWixNQUE2QyxFQUM3QyxvQkFBcUMsRUFDckMsTUFBZTtRQUM5QixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXLEVBQUU7WUFDaEMsT0FBTztTQUNSO1FBQ0QsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUU7WUFDakMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4QyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUM3RCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtnQkFDakQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRTtZQUM5QixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQztTQUN4RTtRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQVksRUFBRSxvQkFBcUM7UUFDckUsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQy9CLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQzNDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQyxNQUFNLE9BQU8sR0FDWCxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUNyRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0QsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDOzhHQXhDVSxVQUFVOzRHQUFWLFVBQVU7OzJGQUFWLFVBQVU7a0JBSHRCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFFBQVE7aUJBQ2YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWx0ZXJzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2ZpbHRlcnMuc2VydmljZSc7XG5pbXBvcnQgeyBDb25maWcgfSBmcm9tICcuLic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3NlYXJjaCcsXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHJpdmF0ZSBmaWx0ZXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cbiAgcHVibGljIHRyYW5zZm9ybShhcnJheTogYW55W10sXG4gICAgICAgICAgICAgICAgICAgZmlsdGVyOiBBcnJheTx7IHZhbHVlOiBzdHJpbmc7IGtleTogc3RyaW5nIH0+LFxuICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkQ291bnRTdWJqZWN0OiBTdWJqZWN0PG51bWJlcj4sXG4gICAgICAgICAgICAgICAgICAgY29uZmlnPzogQ29uZmlnKTogYW55IHtcbiAgICBmaWx0ZXJlZENvdW50U3ViamVjdC5uZXh0KDApO1xuICAgIGlmICh0eXBlb2YgYXJyYXkgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0eXBlb2YgZmlsdGVyID09PSAndW5kZWZpbmVkJykge1xuICAgICAgZmlsdGVyZWRDb3VudFN1YmplY3QubmV4dChhcnJheS5sZW5ndGgpO1xuICAgICAgcmV0dXJuIGFycmF5O1xuICAgIH1cbiAgICBmaWx0ZXIuZm9yRWFjaCgoZikgPT4ge1xuICAgICAgdGhpcy5maWx0ZXJzW2Yua2V5XSA9IGYudmFsdWUudG9TdHJpbmcoKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgaWYgKE9iamVjdC5rZXlzKGYpLmxlbmd0aCA9PT0gMCB8fCBmLnZhbHVlID09PSAnJykge1xuICAgICAgICBkZWxldGUgdGhpcy5maWx0ZXJzW2Yua2V5XTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoY29uZmlnICYmIGNvbmZpZy5ncm91cFJvd3MpIHtcbiAgICAgIHJldHVybiBhcnJheS5tYXAoKGFycikgPT4gdGhpcy5maWx0ZXJHcm91cChhcnIsIGZpbHRlcmVkQ291bnRTdWJqZWN0KSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZpbHRlckdyb3VwKGFycmF5LCBmaWx0ZXJlZENvdW50U3ViamVjdCk7XG4gIH1cblxuICBwcml2YXRlIGZpbHRlckdyb3VwKGFycmF5OiBhbnlbXSwgZmlsdGVyZWRDb3VudFN1YmplY3Q6IFN1YmplY3Q8bnVtYmVyPik6IGFueVtdIHtcbiAgICBjb25zdCBhcnIgPSBhcnJheS5maWx0ZXIoKG9iaikgPT4ge1xuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuZmlsdGVycykuZXZlcnkoKGMpID0+IHtcbiAgICAgICAgY29uc3Qgc3BsaXQgPSBjLnNwbGl0KCcuJyk7XG4gICAgICAgIGNvbnN0IHZhbCA9IEZpbHRlcnNTZXJ2aWNlLmdldFBhdGgoc3BsaXQsIG9iaik7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPVxuICAgICAgICAgIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnID8gSlNPTi5zdHJpbmdpZnkodmFsKSA6IHZhbC50b1N0cmluZygpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IHN0cmluZ3MgPSB0aGlzLmZpbHRlcnNbY10uc3BsaXQoJywnKTtcbiAgICAgICAgcmV0dXJuIHN0cmluZ3Muc29tZSgocykgPT4gZWxlbWVudC5pbmRleE9mKHMudHJpbSgpKSA+IC0xKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIGZpbHRlcmVkQ291bnRTdWJqZWN0Lm5leHQoYXJyLmxlbmd0aCk7XG4gICAgcmV0dXJuIGFycjtcbiAgfVxufVxuIl19