angular-pipes
Version:
Angular pipes library
40 lines • 4.26 kB
JavaScript
import * as tslib_1 from "tslib";
import { Pipe, NgModule } from '@angular/core';
import { isArray, isDeepObject, unwrapDeep, deepIndexOf } from '../utils/utils';
let UnionPipe = class UnionPipe {
transform(a, b) {
if ((!isArray(a) && !isDeepObject(a)) || !isArray(b)) {
return [];
}
if (isDeepObject(a)) {
const unwrapped = unwrapDeep(a);
if (!isArray(unwrapped)) {
return [];
}
return []
.concat(unwrapped)
.concat(b)
.filter((value, index, input) => deepIndexOf(input, value) === index);
}
return []
.concat(a)
.concat(b)
.filter((value, index, input) => input.indexOf(value) === index);
}
};
UnionPipe = tslib_1.__decorate([
Pipe({
name: 'union',
})
], UnionPipe);
export { UnionPipe };
let NgUnionPipeModule = class NgUnionPipeModule {
};
NgUnionPipeModule = tslib_1.__decorate([
NgModule({
declarations: [UnionPipe],
exports: [UnionPipe],
})
], NgUnionPipeModule);
export { NgUnionPipeModule };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pb24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItcGlwZXMvIiwic291cmNlcyI6WyJhcnJheS91bmlvbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS2hGLElBQWEsU0FBUyxHQUF0QixNQUFhLFNBQVM7SUFDcEIsU0FBUyxDQUFDLENBQU8sRUFBRSxDQUFPO1FBQ3hCLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3BELE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuQixNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDdkIsT0FBTyxFQUFFLENBQUM7YUFDWDtZQUVELE9BQU8sRUFBRTtpQkFDTixNQUFNLENBQUMsU0FBUyxDQUFDO2lCQUNqQixNQUFNLENBQUMsQ0FBQyxDQUFDO2lCQUNULE1BQU0sQ0FBQyxDQUFDLEtBQVUsRUFBRSxLQUFhLEVBQUUsS0FBWSxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDO1NBQzdGO1FBRUQsT0FBTyxFQUFFO2FBQ04sTUFBTSxDQUFDLENBQUMsQ0FBQzthQUNULE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDVCxNQUFNLENBQUMsQ0FBQyxLQUFVLEVBQUUsS0FBYSxFQUFFLEtBQVksRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQztJQUN6RixDQUFDO0NBQ0YsQ0FBQTtBQXZCWSxTQUFTO0lBSHJCLElBQUksQ0FBQztRQUNKLElBQUksRUFBRSxPQUFPO0tBQ2QsQ0FBQztHQUNXLFNBQVMsQ0F1QnJCO1NBdkJZLFNBQVM7QUE2QnRCLElBQWEsaUJBQWlCLEdBQTlCLE1BQWEsaUJBQWlCO0NBQUcsQ0FBQTtBQUFwQixpQkFBaUI7SUFKN0IsUUFBUSxDQUFDO1FBQ1IsWUFBWSxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3pCLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQztLQUNyQixDQUFDO0dBQ1csaUJBQWlCLENBQUc7U0FBcEIsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNBcnJheSwgaXNEZWVwT2JqZWN0LCB1bndyYXBEZWVwLCBkZWVwSW5kZXhPZiB9IGZyb20gJy4uL3V0aWxzL3V0aWxzJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAndW5pb24nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVW5pb25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKGE/OiBhbnksIGI/OiBhbnkpOiBhbnkge1xyXG4gICAgaWYgKCghaXNBcnJheShhKSAmJiAhaXNEZWVwT2JqZWN0KGEpKSB8fCAhaXNBcnJheShiKSkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlzRGVlcE9iamVjdChhKSkge1xyXG4gICAgICBjb25zdCB1bndyYXBwZWQgPSB1bndyYXBEZWVwKGEpO1xyXG4gICAgICBpZiAoIWlzQXJyYXkodW53cmFwcGVkKSkge1xyXG4gICAgICAgIHJldHVybiBbXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIFtdXHJcbiAgICAgICAgLmNvbmNhdCh1bndyYXBwZWQpXHJcbiAgICAgICAgLmNvbmNhdChiKVxyXG4gICAgICAgIC5maWx0ZXIoKHZhbHVlOiBhbnksIGluZGV4OiBudW1iZXIsIGlucHV0OiBhbnlbXSkgPT4gZGVlcEluZGV4T2YoaW5wdXQsIHZhbHVlKSA9PT0gaW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBbXVxyXG4gICAgICAuY29uY2F0KGEpXHJcbiAgICAgIC5jb25jYXQoYilcclxuICAgICAgLmZpbHRlcigodmFsdWU6IGFueSwgaW5kZXg6IG51bWJlciwgaW5wdXQ6IGFueVtdKSA9PiBpbnB1dC5pbmRleE9mKHZhbHVlKSA9PT0gaW5kZXgpO1xyXG4gIH1cclxufVxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtVbmlvblBpcGVdLFxyXG4gIGV4cG9ydHM6IFtVbmlvblBpcGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdVbmlvblBpcGVNb2R1bGUge31cclxuIl19