angular-pipes
Version:
Angular pipes library
34 lines • 4.77 kB
JavaScript
import * as tslib_1 from "tslib";
import { Pipe, NgModule } from '@angular/core';
import { isArray, isDeepObject, unwrapDeep, deepIndexOf } from '../utils/utils';
let IntersectionPipe = class IntersectionPipe {
transform(a, b) {
if ((!isArray(a) && !isDeepObject(a)) || !isArray(b)) {
return [];
}
if (isDeepObject(a)) {
const unwrapped = unwrapDeep(a);
if (!isArray(unwrapped)) {
return [];
}
return unwrapped.reduce((intersection, value) => intersection.concat(deepIndexOf(b, value) !== -1 && deepIndexOf(intersection, value) === -1 ? value : []), []);
}
return a.reduce((intersection, value) => intersection.concat(b.indexOf(value) !== -1 && intersection.indexOf(value) === -1 ? value : []), []);
}
};
IntersectionPipe = tslib_1.__decorate([
Pipe({
name: 'intersection',
})
], IntersectionPipe);
export { IntersectionPipe };
let NgIntersectionPipeModule = class NgIntersectionPipeModule {
};
NgIntersectionPipeModule = tslib_1.__decorate([
NgModule({
declarations: [IntersectionPipe],
exports: [IntersectionPipe],
})
], NgIntersectionPipeModule);
export { NgIntersectionPipeModule };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJzZWN0aW9uLnBpcGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXBpcGVzLyIsInNvdXJjZXMiOlsiYXJyYXkvaW50ZXJzZWN0aW9uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLaEYsSUFBYSxnQkFBZ0IsR0FBN0IsTUFBYSxnQkFBZ0I7SUFDM0IsU0FBUyxDQUFDLENBQU8sRUFBRSxDQUFPO1FBQ3hCLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3BELE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuQixNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDdkIsT0FBTyxFQUFFLENBQUM7YUFDWDtZQUVELE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FDckIsQ0FBQyxZQUFtQixFQUFFLEtBQVUsRUFBRSxFQUFFLENBQ2xDLFlBQVksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUMzRyxFQUFFLENBQ0gsQ0FBQztTQUNIO1FBRUQsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUNiLENBQUMsWUFBbUIsRUFBRSxLQUFVLEVBQUUsRUFBRSxDQUNsQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDakcsRUFBRSxDQUNILENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQTtBQXpCWSxnQkFBZ0I7SUFINUIsSUFBSSxDQUFDO1FBQ0osSUFBSSxFQUFFLGNBQWM7S0FDckIsQ0FBQztHQUNXLGdCQUFnQixDQXlCNUI7U0F6QlksZ0JBQWdCO0FBK0I3QixJQUFhLHdCQUF3QixHQUFyQyxNQUFhLHdCQUF3QjtDQUFHLENBQUE7QUFBM0Isd0JBQXdCO0lBSnBDLFFBQVEsQ0FBQztRQUNSLFlBQVksRUFBRSxDQUFDLGdCQUFnQixDQUFDO1FBQ2hDLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO0tBQzVCLENBQUM7R0FDVyx3QkFBd0IsQ0FBRztTQUEzQix3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc0FycmF5LCBpc0RlZXBPYmplY3QsIHVud3JhcERlZXAsIGRlZXBJbmRleE9mIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdpbnRlcnNlY3Rpb24nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW50ZXJzZWN0aW9uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybShhPzogYW55LCBiPzogYW55KTogYW55IHtcclxuICAgIGlmICgoIWlzQXJyYXkoYSkgJiYgIWlzRGVlcE9iamVjdChhKSkgfHwgIWlzQXJyYXkoYikpIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc0RlZXBPYmplY3QoYSkpIHtcclxuICAgICAgY29uc3QgdW53cmFwcGVkID0gdW53cmFwRGVlcChhKTtcclxuICAgICAgaWYgKCFpc0FycmF5KHVud3JhcHBlZCkpIHtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB1bndyYXBwZWQucmVkdWNlKFxyXG4gICAgICAgIChpbnRlcnNlY3Rpb246IGFueVtdLCB2YWx1ZTogYW55KSA9PlxyXG4gICAgICAgICAgaW50ZXJzZWN0aW9uLmNvbmNhdChkZWVwSW5kZXhPZihiLCB2YWx1ZSkgIT09IC0xICYmIGRlZXBJbmRleE9mKGludGVyc2VjdGlvbiwgdmFsdWUpID09PSAtMSA/IHZhbHVlIDogW10pLFxyXG4gICAgICAgIFtdXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGEucmVkdWNlKFxyXG4gICAgICAoaW50ZXJzZWN0aW9uOiBhbnlbXSwgdmFsdWU6IGFueSkgPT5cclxuICAgICAgICBpbnRlcnNlY3Rpb24uY29uY2F0KGIuaW5kZXhPZih2YWx1ZSkgIT09IC0xICYmIGludGVyc2VjdGlvbi5pbmRleE9mKHZhbHVlKSA9PT0gLTEgPyB2YWx1ZSA6IFtdKSxcclxuICAgICAgW11cclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0ludGVyc2VjdGlvblBpcGVdLFxyXG4gIGV4cG9ydHM6IFtJbnRlcnNlY3Rpb25QaXBlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nSW50ZXJzZWN0aW9uUGlwZU1vZHVsZSB7fVxyXG4iXX0=