@hxui/angular
Version:
An Angular library based on the [HXUI design system](https://hxui.io).
37 lines • 5.25 kB
JavaScript
/**
* 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==