@paddls/ngx-easy-table
Version:
Angular easy table
29 lines • 4.4 kB
JavaScript
import { Pipe } from '@angular/core';
import * as i0 from "@angular/core";
export class GlobalSearchPipe {
transform(array, filter, columns, filteredCountSubject) {
filteredCountSubject.next(0);
if (typeof array === 'undefined') {
return;
}
if (typeof filter === 'undefined' || filter === '') {
filteredCountSubject.next(array.length);
return array;
}
const predicate = (row) => columns.reduce((acc, curr) => acc ||
curr?.searchPredicate?.(row) ||
(['number', 'boolean', 'string'].includes(typeof row?.[curr.key]) && `${row?.[curr.key]}`.toLocaleLowerCase().includes(filter.toLocaleLowerCase())), false);
const arr = array.filter(predicate);
filteredCountSubject.next(arr.length);
return arr;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: GlobalSearchPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: GlobalSearchPipe, name: "global" }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: GlobalSearchPipe, decorators: [{
type: Pipe,
args: [{
name: 'global',
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXNlYXJjaC1waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWVhc3ktdGFibGUvc3JjL2xpYi9waXBlcy9nbG9iYWwtc2VhcmNoLXBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBT3BELE1BQU0sT0FBTyxnQkFBZ0I7SUFFcEIsU0FBUyxDQUFDLEtBQVksRUFBRSxNQUFjLEVBQUUsT0FBa0IsRUFBRSxvQkFBcUM7UUFDdEcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLElBQUksT0FBTyxLQUFLLEtBQUssV0FBVyxFQUFFO1lBQ2hDLE9BQU87U0FDUjtRQUVELElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sS0FBSyxFQUFFLEVBQUU7WUFDbEQsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4QyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsTUFBTSxTQUFTLEdBQTBCLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUNuRSxDQUFDLEdBQVksRUFBRSxJQUFhLEVBQUUsRUFBRSxDQUM5QixHQUFHO1lBQ0gsSUFBSSxFQUFFLGVBQWUsRUFBRSxDQUFDLEdBQUcsQ0FBQztZQUM1QixDQUFDLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUUsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsRUFDdkosS0FBSyxDQUNOLENBQUM7UUFFRixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEMsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDOzhHQXpCVSxnQkFBZ0I7NEdBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFINUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsUUFBUTtpQkFDZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbHVtbnMgfSBmcm9tICcuLi9tb2RlbC9jb2x1bW5zJztcblxuQFBpcGUoe1xuICBuYW1lOiAnZ2xvYmFsJyxcbn0pXG5leHBvcnQgY2xhc3MgR2xvYmFsU2VhcmNoUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHB1YmxpYyB0cmFuc2Zvcm0oYXJyYXk6IGFueVtdLCBmaWx0ZXI6IHN0cmluZywgY29sdW1uczogQ29sdW1uc1tdLCBmaWx0ZXJlZENvdW50U3ViamVjdDogU3ViamVjdDxudW1iZXI+KTogYW55IHtcbiAgICBmaWx0ZXJlZENvdW50U3ViamVjdC5uZXh0KDApO1xuICAgIGlmICh0eXBlb2YgYXJyYXkgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBmaWx0ZXIgPT09ICd1bmRlZmluZWQnIHx8IGZpbHRlciA9PT0gJycpIHtcbiAgICAgIGZpbHRlcmVkQ291bnRTdWJqZWN0Lm5leHQoYXJyYXkubGVuZ3RoKTtcbiAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmVkaWNhdGU6IChyb3c6IGFueSkgPT4gYm9vbGVhbiA9IChyb3c6IGFueSkgPT4gY29sdW1ucy5yZWR1Y2UoXG4gICAgICAoYWNjOiBib29sZWFuLCBjdXJyOiBDb2x1bW5zKSA9PlxuICAgICAgICBhY2MgfHxcbiAgICAgICAgY3Vycj8uc2VhcmNoUHJlZGljYXRlPy4ocm93KSB8fFxuICAgICAgICAoWydudW1iZXInLCAnYm9vbGVhbicsICdzdHJpbmcnXS5pbmNsdWRlcyh0eXBlb2Ygcm93Py5bY3Vyci5rZXldKSAmJiBgJHsgcm93Py5bY3Vyci5rZXldIH1gLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyLnRvTG9jYWxlTG93ZXJDYXNlKCkpKSxcbiAgICAgIGZhbHNlXG4gICAgKTtcblxuICAgIGNvbnN0IGFyciA9IGFycmF5LmZpbHRlcihwcmVkaWNhdGUpO1xuICAgIGZpbHRlcmVkQ291bnRTdWJqZWN0Lm5leHQoYXJyLmxlbmd0aCk7XG5cbiAgICByZXR1cm4gYXJyO1xuICB9XG59XG4iXX0=