angular-pipes
Version:
Angular pipes library
46 lines • 4.57 kB
JavaScript
import * as tslib_1 from "tslib";
import { Pipe, NgModule } from '@angular/core';
import { isArray, isDeepObject, unwrapDeep, deepIndexOf } from '../utils/utils';
var UnionPipe = /** @class */ (function () {
function UnionPipe() {
}
UnionPipe.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 []
.concat(unwrapped)
.concat(b)
.filter(function (value, index, input) { return deepIndexOf(input, value) === index; });
}
return []
.concat(a)
.concat(b)
.filter(function (value, index, input) { return input.indexOf(value) === index; });
};
UnionPipe = tslib_1.__decorate([
Pipe({
name: 'union',
})
], UnionPipe);
return UnionPipe;
}());
export { UnionPipe };
var NgUnionPipeModule = /** @class */ (function () {
function NgUnionPipeModule() {
}
NgUnionPipeModule = tslib_1.__decorate([
NgModule({
declarations: [UnionPipe],
exports: [UnionPipe],
})
], NgUnionPipeModule);
return NgUnionPipeModule;
}());
export { NgUnionPipeModule };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pb24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItcGlwZXMvIiwic291cmNlcyI6WyJhcnJheS91bmlvbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS2hGO0lBQUE7SUF1QkEsQ0FBQztJQXRCQyw2QkFBUyxHQUFULFVBQVUsQ0FBTyxFQUFFLENBQU87UUFDeEIsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDcEQsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25CLElBQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUN2QixPQUFPLEVBQUUsQ0FBQzthQUNYO1lBRUQsT0FBTyxFQUFFO2lCQUNOLE1BQU0sQ0FBQyxTQUFTLENBQUM7aUJBQ2pCLE1BQU0sQ0FBQyxDQUFDLENBQUM7aUJBQ1QsTUFBTSxDQUFDLFVBQUMsS0FBVSxFQUFFLEtBQWEsRUFBRSxLQUFZLElBQUssT0FBQSxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEtBQUssRUFBbkMsQ0FBbUMsQ0FBQyxDQUFDO1NBQzdGO1FBRUQsT0FBTyxFQUFFO2FBQ04sTUFBTSxDQUFDLENBQUMsQ0FBQzthQUNULE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDVCxNQUFNLENBQUMsVUFBQyxLQUFVLEVBQUUsS0FBYSxFQUFFLEtBQVksSUFBSyxPQUFBLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxFQUE5QixDQUE4QixDQUFDLENBQUM7SUFDekYsQ0FBQztJQXRCVSxTQUFTO1FBSHJCLElBQUksQ0FBQztZQUNKLElBQUksRUFBRSxPQUFPO1NBQ2QsQ0FBQztPQUNXLFNBQVMsQ0F1QnJCO0lBQUQsZ0JBQUM7Q0FBQSxBQXZCRCxJQXVCQztTQXZCWSxTQUFTO0FBNkJ0QjtJQUFBO0lBQWdDLENBQUM7SUFBcEIsaUJBQWlCO1FBSjdCLFFBQVEsQ0FBQztZQUNSLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUN6QixPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUM7U0FDckIsQ0FBQztPQUNXLGlCQUFpQixDQUFHO0lBQUQsd0JBQUM7Q0FBQSxBQUFqQyxJQUFpQztTQUFwQixpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc0FycmF5LCBpc0RlZXBPYmplY3QsIHVud3JhcERlZXAsIGRlZXBJbmRleE9mIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICd1bmlvbicsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVbmlvblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICB0cmFuc2Zvcm0oYT86IGFueSwgYj86IGFueSk6IGFueSB7XHJcbiAgICBpZiAoKCFpc0FycmF5KGEpICYmICFpc0RlZXBPYmplY3QoYSkpIHx8ICFpc0FycmF5KGIpKSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaXNEZWVwT2JqZWN0KGEpKSB7XHJcbiAgICAgIGNvbnN0IHVud3JhcHBlZCA9IHVud3JhcERlZXAoYSk7XHJcbiAgICAgIGlmICghaXNBcnJheSh1bndyYXBwZWQpKSB7XHJcbiAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gW11cclxuICAgICAgICAuY29uY2F0KHVud3JhcHBlZClcclxuICAgICAgICAuY29uY2F0KGIpXHJcbiAgICAgICAgLmZpbHRlcigodmFsdWU6IGFueSwgaW5kZXg6IG51bWJlciwgaW5wdXQ6IGFueVtdKSA9PiBkZWVwSW5kZXhPZihpbnB1dCwgdmFsdWUpID09PSBpbmRleCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFtdXHJcbiAgICAgIC5jb25jYXQoYSlcclxuICAgICAgLmNvbmNhdChiKVxyXG4gICAgICAuZmlsdGVyKCh2YWx1ZTogYW55LCBpbmRleDogbnVtYmVyLCBpbnB1dDogYW55W10pID0+IGlucHV0LmluZGV4T2YodmFsdWUpID09PSBpbmRleCk7XHJcbiAgfVxyXG59XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1VuaW9uUGlwZV0sXHJcbiAgZXhwb3J0czogW1VuaW9uUGlwZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ1VuaW9uUGlwZU1vZHVsZSB7fVxyXG4iXX0=