UNPKG

@hxui/angular

Version:

An Angular library based on the [HXUI design system](https://hxui.io).

37 lines 5.25 kB
/** * Example use * Array of objects: *ngFor="#row of rows | simpleSearch : 'the search term'" */ import { Pipe } from '@angular/core'; import * as i0 from "@angular/core"; export class SimpleSearchPipe { constructor() { this.searchValue = (item, searchTerm = '') => { const keys = Object.keys(item); for (let i = 0, len = keys.length; i < len; i++) { let match = false, propertyValue = item[keys[i]]; if (propertyValue) match = (propertyValue.toString().toLowerCase().indexOf(searchTerm.toLowerCase()) > -1); if (match || searchTerm == '') return true; } return false; }; } transform(items, args) { if (!Array.isArray(items)) return items; // filter items array, items which match and return true will be kept, false will be filtered out return items.filter(item => (args) ? this.searchValue(item, args.toString()) : item); } } SimpleSearchPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SimpleSearchPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); SimpleSearchPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SimpleSearchPipe, name: "simpleSearch", pure: false }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SimpleSearchPipe, decorators: [{ type: Pipe, args: [{ name: 'simpleSearch', pure: false }] }], ctorParameters: function () { return []; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXNlYXJjaC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHgtdWkvc3JjL2xpYi91dGlscy9waXBlcy9zaW1wbGUtc2VhcmNoLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFDLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7O0FBV2xELE1BQU0sT0FBTyxnQkFBZ0I7SUFFekI7UUFFTyxnQkFBVyxHQUFHLENBQUMsSUFBUyxFQUFFLGFBQXFCLEVBQUUsRUFBVyxFQUFFO1lBRWpFLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFDL0M7Z0JBQ0ksSUFBSSxLQUFLLEdBQUcsS0FBSyxFQUNiLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRWxDLElBQUksYUFBYTtvQkFDYixLQUFLLEdBQUcsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRTVGLElBQUksS0FBSyxJQUFJLFVBQVUsSUFBSSxFQUFFO29CQUN6QixPQUFPLElBQUksQ0FBQzthQUNuQjtZQUVELE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUMsQ0FBQTtJQWxCYSxDQUFDO0lBb0JmLFNBQVMsQ0FBQyxLQUFZLEVBQUUsSUFBVztRQUUvQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUV4QyxpR0FBaUc7UUFDakcsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pGLENBQUM7OzhHQTVCUSxnQkFBZ0I7NEdBQWhCLGdCQUFnQjs0RkFBaEIsZ0JBQWdCO2tCQUw1QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxjQUFjO29CQUNwQixJQUFJLEVBQUUsS0FBSztpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBFeGFtcGxlIHVzZVxyXG4gKiBBcnJheSBvZiBvYmplY3RzOiAqbmdGb3I9XCIjcm93IG9mIHJvd3MgfCBzaW1wbGVTZWFyY2ggOiAndGhlIHNlYXJjaCB0ZXJtJ1wiXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVNpbXBsZVNlYXJjaFBpcGUgZXh0ZW5kcyBQaXBlVHJhbnNmb3JtIHtcclxuICAgIHNlYXJjaFZhbHVlKGl0ZW06IGFueSwgc2VhcmNoVGVybTogc3RyaW5nKTogYm9vbGVhbjtcclxufVxyXG5cclxuQFBpcGUoe1xyXG4gICAgbmFtZTogJ3NpbXBsZVNlYXJjaCcsXHJcbiAgICBwdXJlOiBmYWxzZVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFNpbXBsZVNlYXJjaFBpcGUgaW1wbGVtZW50cyBJU2ltcGxlU2VhcmNoUGlwZXtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcigpe31cclxuXHJcbiAgICBwdWJsaWMgc2VhcmNoVmFsdWUgPSAoaXRlbTogYW55LCBzZWFyY2hUZXJtOiBzdHJpbmcgPSAnJyk6IGJvb2xlYW4gPT5cclxuICAgIHtcclxuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoaXRlbSk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGtleXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBsZXQgbWF0Y2ggPSBmYWxzZSxcclxuICAgICAgICAgICAgICAgIHByb3BlcnR5VmFsdWUgPSBpdGVtW2tleXNbaV1dO1xyXG5cclxuICAgICAgICAgICAgaWYgKHByb3BlcnR5VmFsdWUpXHJcbiAgICAgICAgICAgICAgICBtYXRjaCA9IChwcm9wZXJ0eVZhbHVlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSkgPiAtMSk7XHJcblxyXG4gICAgICAgICAgICBpZiAobWF0Y2ggfHwgc2VhcmNoVGVybSA9PSAnJylcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYW5zZm9ybShpdGVtczogYW55W10sIGFyZ3M6IGFueVtdKTogYW55XHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGl0ZW1zKSkgcmV0dXJuIGl0ZW1zO1xyXG5cclxuICAgICAgICAvLyBmaWx0ZXIgaXRlbXMgYXJyYXksIGl0ZW1zIHdoaWNoIG1hdGNoIGFuZCByZXR1cm4gdHJ1ZSB3aWxsIGJlIGtlcHQsIGZhbHNlIHdpbGwgYmUgZmlsdGVyZWQgb3V0XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbHRlcihpdGVtID0+IChhcmdzKSA/IHRoaXMuc2VhcmNoVmFsdWUoaXRlbSwgYXJncy50b1N0cmluZygpKSA6IGl0ZW0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==