UNPKG

@asi-ngtools/lib

Version:

This project is a little components library, simple to use, which will help you to simplify your project.

45 lines (44 loc) 3.81 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { Pipe } from '@angular/core'; /** * Pipe permettant de filter une liste d'information * value : valeur de reference pour le filtre * filter : peut être une fonction de filtrage ou une propriete de l'objet */ export class AsiFilterPipe { /** * @param {?} items * @param {?} value * @param {?} filter * @return {?} */ transform(items, value, filter) { /** @type {?} */ let result = []; if (items != null) { if (this.isFunction(filter)) { result = items.filter(item => { return filter(item, value); }); } else if (value != null) { result = items.filter(item => item[value].indexOf(value) !== -1); } } return result; } /** * @param {?} functionToCheck * @return {?} */ isFunction(functionToCheck) { /** @type {?} */ let getType = {}; return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; } } AsiFilterPipe.decorators = [ { type: Pipe, args: [{ name: 'asiFilter' },] } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLWZpbHRlci5waXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFzaS1uZ3Rvb2xzL2xpYi8iLCJzb3VyY2VzIjpbImxpYi9waXBlcy9hc2ktZmlsdGVyLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRcEQsTUFBTTs7Ozs7OztJQUVKLFNBQVMsQ0FBQyxLQUFpQixFQUFFLEtBQVUsRUFBRSxNQUFXOztRQUNsRCxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbEIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVCLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDaEU7WUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3pCLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2xFO1NBQ0Y7UUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDO0tBQ2Y7Ozs7O0lBRUQsVUFBVSxDQUFDLGVBQXlCOztRQUNsQyxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDakIsTUFBTSxDQUFDLGVBQWUsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxtQkFBbUIsQ0FBQztLQUMxRjs7O1lBbEJGLElBQUksU0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogUGlwZSBwZXJtZXR0YW50IGRlIGZpbHRlciB1bmUgbGlzdGUgZCdpbmZvcm1hdGlvblxyXG4gKiB2YWx1ZSA6IHZhbGV1ciBkZSByZWZlcmVuY2UgcG91ciBsZSBmaWx0cmVcclxuICogZmlsdGVyIDogcGV1dCDDqnRyZSB1bmUgZm9uY3Rpb24gZGUgZmlsdHJhZ2Ugb3UgdW5lIHByb3ByaWV0ZSBkZSBsJ29iamV0XHJcbiAqL1xyXG5AUGlwZSh7IG5hbWU6ICdhc2lGaWx0ZXInIH0pXHJcbmV4cG9ydCBjbGFzcyBBc2lGaWx0ZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblxyXG4gIHRyYW5zZm9ybShpdGVtczogQXJyYXk8YW55PiwgdmFsdWU6IGFueSwgZmlsdGVyOiBhbnkpIHtcclxuICAgIGxldCByZXN1bHQgPSBbXTtcclxuICAgIGlmIChpdGVtcyAhPSBudWxsKSB7XHJcbiAgICAgIGlmICh0aGlzLmlzRnVuY3Rpb24oZmlsdGVyKSkge1xyXG4gICAgICAgIHJlc3VsdCA9IGl0ZW1zLmZpbHRlcihpdGVtID0+IHsgcmV0dXJuIGZpbHRlcihpdGVtLCB2YWx1ZSk7IH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKHZhbHVlICE9IG51bGwpIHtcclxuICAgICAgICByZXN1bHQgPSBpdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtW3ZhbHVlXS5pbmRleE9mKHZhbHVlKSAhPT0gLTEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgaXNGdW5jdGlvbihmdW5jdGlvblRvQ2hlY2s6IEZ1bmN0aW9uKSB7XHJcbiAgICBsZXQgZ2V0VHlwZSA9IHt9O1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uVG9DaGVjayAmJiBnZXRUeXBlLnRvU3RyaW5nLmNhbGwoZnVuY3Rpb25Ub0NoZWNrKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcclxuICB9XHJcbn1cclxuIl19