angular-pipes
Version:
Angular pipes library
44 lines • 5.14 kB
JavaScript
import * as tslib_1 from "tslib";
import { Pipe, NgModule } from '@angular/core';
import { isArray, isDeepObject, unwrapDeep, deepIndexOf } from '../utils/utils';
var IntersectionPipe = /** @class */ (function () {
function IntersectionPipe() {
}
IntersectionPipe.prototype.transform = function (a, b) {
if ((!isArray(a) && !isDeepObject(a)) || !isArray(b)) {
return [];
}
if (isDeepObject(a)) {
var unwrapped = unwrapDeep(a);
if (!isArray(unwrapped)) {
return [];
}
return unwrapped.reduce(function (intersection, value) {
return intersection.concat(deepIndexOf(b, value) !== -1 && deepIndexOf(intersection, value) === -1 ? value : []);
}, []);
}
return a.reduce(function (intersection, value) {
return intersection.concat(b.indexOf(value) !== -1 && intersection.indexOf(value) === -1 ? value : []);
}, []);
};
IntersectionPipe = tslib_1.__decorate([
Pipe({
name: 'intersection',
})
], IntersectionPipe);
return IntersectionPipe;
}());
export { IntersectionPipe };
var NgIntersectionPipeModule = /** @class */ (function () {
function NgIntersectionPipeModule() {
}
NgIntersectionPipeModule = tslib_1.__decorate([
NgModule({
declarations: [IntersectionPipe],
exports: [IntersectionPipe],
})
], NgIntersectionPipeModule);
return NgIntersectionPipeModule;
}());
export { NgIntersectionPipeModule };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJzZWN0aW9uLnBpcGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXBpcGVzLyIsInNvdXJjZXMiOlsiYXJyYXkvaW50ZXJzZWN0aW9uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLaEY7SUFBQTtJQXlCQSxDQUFDO0lBeEJDLG9DQUFTLEdBQVQsVUFBVSxDQUFPLEVBQUUsQ0FBTztRQUN4QixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNwRCxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkIsSUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3ZCLE9BQU8sRUFBRSxDQUFDO2FBQ1g7WUFFRCxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQ3JCLFVBQUMsWUFBbUIsRUFBRSxLQUFVO2dCQUM5QixPQUFBLFlBQVksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUF6RyxDQUF5RyxFQUMzRyxFQUFFLENBQ0gsQ0FBQztTQUNIO1FBRUQsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUNiLFVBQUMsWUFBbUIsRUFBRSxLQUFVO1lBQzlCLE9BQUEsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQS9GLENBQStGLEVBQ2pHLEVBQUUsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQXhCVSxnQkFBZ0I7UUFINUIsSUFBSSxDQUFDO1lBQ0osSUFBSSxFQUFFLGNBQWM7U0FDckIsQ0FBQztPQUNXLGdCQUFnQixDQXlCNUI7SUFBRCx1QkFBQztDQUFBLEFBekJELElBeUJDO1NBekJZLGdCQUFnQjtBQStCN0I7SUFBQTtJQUF1QyxDQUFDO0lBQTNCLHdCQUF3QjtRQUpwQyxRQUFRLENBQUM7WUFDUixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNoQyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztTQUM1QixDQUFDO09BQ1csd0JBQXdCLENBQUc7SUFBRCwrQkFBQztDQUFBLEFBQXhDLElBQXdDO1NBQTNCLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0sIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGlzQXJyYXksIGlzRGVlcE9iamVjdCwgdW53cmFwRGVlcCwgZGVlcEluZGV4T2YgfSBmcm9tICcuLi91dGlscy91dGlscyc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2ludGVyc2VjdGlvbicsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnRlcnNlY3Rpb25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKGE/OiBhbnksIGI/OiBhbnkpOiBhbnkge1xyXG4gICAgaWYgKCghaXNBcnJheShhKSAmJiAhaXNEZWVwT2JqZWN0KGEpKSB8fCAhaXNBcnJheShiKSkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlzRGVlcE9iamVjdChhKSkge1xyXG4gICAgICBjb25zdCB1bndyYXBwZWQgPSB1bndyYXBEZWVwKGEpO1xyXG4gICAgICBpZiAoIWlzQXJyYXkodW53cmFwcGVkKSkge1xyXG4gICAgICAgIHJldHVybiBbXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHVud3JhcHBlZC5yZWR1Y2UoXHJcbiAgICAgICAgKGludGVyc2VjdGlvbjogYW55W10sIHZhbHVlOiBhbnkpID0+XHJcbiAgICAgICAgICBpbnRlcnNlY3Rpb24uY29uY2F0KGRlZXBJbmRleE9mKGIsIHZhbHVlKSAhPT0gLTEgJiYgZGVlcEluZGV4T2YoaW50ZXJzZWN0aW9uLCB2YWx1ZSkgPT09IC0xID8gdmFsdWUgOiBbXSksXHJcbiAgICAgICAgW11cclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYS5yZWR1Y2UoXHJcbiAgICAgIChpbnRlcnNlY3Rpb246IGFueVtdLCB2YWx1ZTogYW55KSA9PlxyXG4gICAgICAgIGludGVyc2VjdGlvbi5jb25jYXQoYi5pbmRleE9mKHZhbHVlKSAhPT0gLTEgJiYgaW50ZXJzZWN0aW9uLmluZGV4T2YodmFsdWUpID09PSAtMSA/IHZhbHVlIDogW10pLFxyXG4gICAgICBbXVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbSW50ZXJzZWN0aW9uUGlwZV0sXHJcbiAgZXhwb3J0czogW0ludGVyc2VjdGlvblBpcGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdJbnRlcnNlY3Rpb25QaXBlTW9kdWxlIHt9XHJcbiJdfQ==