UNPKG

@hxui/angular

Version:

* * *

64 lines 5.38 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ /** * Example use * Array of objects: *ngFor="#row of rows | simpleSearch : 'the search term'" */ import { Pipe } from '@angular/core'; /** * @record */ export function ISimpleSearchPipe() { } if (false) { /** * @param {?} item * @param {?} searchTerm * @return {?} */ ISimpleSearchPipe.prototype.searchValue = function (item, searchTerm) { }; } export class SimpleSearchPipe { constructor() { this.searchValue = (item, searchTerm = '') => { /** @type {?} */ const keys = Object.keys(item); for (let i = 0, len = keys.length; i < len; i++) { /** @type {?} */ let match = false; /** @type {?} */ let propertyValue = item[keys[i]]; if (propertyValue) match = (propertyValue.toString().toLowerCase().indexOf(searchTerm.toLowerCase()) > -1); if (match || searchTerm == '') return true; } return false; }; } /** * @param {?} items * @param {?} args * @return {?} */ 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.decorators = [ { type: Pipe, args: [{ name: 'simpleSearch', pure: false },] }, ]; /** @nocollapse */ SimpleSearchPipe.ctorParameters = () => []; if (false) { /** @type {?} */ SimpleSearchPipe.prototype.searchValue; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXNlYXJjaC5waXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGh4dWkvYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9waXBlcy9zaW1wbGUtc2VhcmNoLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFLQSxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQzs7OztBQUVsRCx1Q0FFQzs7Ozs7OztJQURHLDBFQUFvRDs7QUFReEQsTUFBTSxPQUFPLGdCQUFnQjtJQUV6QjtRQUVPLGdCQUFXLEdBQUcsQ0FBQyxJQUFTLEVBQUUsYUFBcUIsRUFBRSxFQUFXLEVBQUU7O2tCQUUzRCxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDOUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFDL0M7O29CQUNRLEtBQUssR0FBRyxLQUFLOztvQkFDYixhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFakMsSUFBSSxhQUFhO29CQUNiLEtBQUssR0FBRyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFNUYsSUFBSSxLQUFLLElBQUksVUFBVSxJQUFJLEVBQUU7b0JBQ3pCLE9BQU8sSUFBSSxDQUFDO2FBQ25CO1lBRUQsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQyxDQUFBO0lBbEJhLENBQUM7Ozs7OztJQW9CZixTQUFTLENBQUMsS0FBWSxFQUFFLElBQVc7UUFFL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFeEMsaUdBQWlHO1FBQ2pHLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6RixDQUFDOzs7WUFqQ0osSUFBSSxTQUFDO2dCQUNGLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsS0FBSzthQUNkOzs7Ozs7SUFNRyx1Q0FnQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogRXhhbXBsZSB1c2VcclxuICogQXJyYXkgb2Ygb2JqZWN0czogKm5nRm9yPVwiI3JvdyBvZiByb3dzIHwgc2ltcGxlU2VhcmNoIDogJ3RoZSBzZWFyY2ggdGVybSdcIlxyXG4gKi9cclxuXHJcbmltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElTaW1wbGVTZWFyY2hQaXBlIGV4dGVuZHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgICBzZWFyY2hWYWx1ZShpdGVtOiBhbnksIHNlYXJjaFRlcm06IHN0cmluZyk6IGJvb2xlYW47XHJcbn1cclxuXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICdzaW1wbGVTZWFyY2gnLFxyXG4gICAgcHVyZTogZmFsc2VcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBTaW1wbGVTZWFyY2hQaXBlIGltcGxlbWVudHMgSVNpbXBsZVNlYXJjaFBpcGV7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKXt9XHJcblxyXG4gICAgcHVibGljIHNlYXJjaFZhbHVlID0gKGl0ZW06IGFueSwgc2VhcmNoVGVybTogc3RyaW5nID0gJycpOiBib29sZWFuID0+XHJcbiAgICB7XHJcbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGl0ZW0pO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBrZXlzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbGV0IG1hdGNoID0gZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eVZhbHVlID0gaXRlbVtrZXlzW2ldXTtcclxuXHJcbiAgICAgICAgICAgIGlmIChwcm9wZXJ0eVZhbHVlKVxyXG4gICAgICAgICAgICAgICAgbWF0Y2ggPSAocHJvcGVydHlWYWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkpID4gLTEpO1xyXG5cclxuICAgICAgICAgICAgaWYgKG1hdGNoIHx8IHNlYXJjaFRlcm0gPT0gJycpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFuc2Zvcm0oaXRlbXM6IGFueVtdLCBhcmdzOiBhbnlbXSk6IGFueVxyXG4gICAge1xyXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShpdGVtcykpIHJldHVybiBpdGVtcztcclxuXHJcbiAgICAgICAgLy8gZmlsdGVyIGl0ZW1zIGFycmF5LCBpdGVtcyB3aGljaCBtYXRjaCBhbmQgcmV0dXJuIHRydWUgd2lsbCBiZSBrZXB0LCBmYWxzZSB3aWxsIGJlIGZpbHRlcmVkIG91dFxyXG4gICAgICAgIHJldHVybiBpdGVtcy5maWx0ZXIoaXRlbSA9PiAoYXJncykgPyB0aGlzLnNlYXJjaFZhbHVlKGl0ZW0sIGFyZ3MudG9TdHJpbmcoKSkgOiBpdGVtKTtcclxuICAgIH1cclxufVxyXG4iXX0=