@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
JavaScript
/**
* @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