angular-pipes
Version:
Angular pipes library
55 lines • 6.3 kB
JavaScript
import * as tslib_1 from "tslib";
var FirstOrDefaultPipe_1;
import { Pipe, NgModule } from '@angular/core';
import { isArray, isFunction, getProperty } from '../utils/utils';
let FirstOrDefaultPipe = FirstOrDefaultPipe_1 = class FirstOrDefaultPipe {
static find(input, predicate, defaultValue) {
let found = false;
let result;
let i = -1;
while (!found && ++i < input.length) {
found = predicate(input[i], i, input);
}
if (found) {
result = input[i];
}
if (typeof result === 'undefined' && typeof defaultValue !== 'undefined') {
result = defaultValue;
}
return result;
}
transform(input, predicate, defaultValue) {
if (!isArray(input)) {
return input;
}
if (isFunction(predicate)) {
return FirstOrDefaultPipe_1.find(input, predicate, defaultValue);
}
else if (isArray(predicate)) {
const [key, value] = predicate;
return FirstOrDefaultPipe_1.find(input, (item) => getProperty(item, key) === value, defaultValue);
}
else if (predicate) {
return FirstOrDefaultPipe_1.find(input, item => item === predicate, defaultValue);
}
else {
return input;
}
}
};
FirstOrDefaultPipe = FirstOrDefaultPipe_1 = tslib_1.__decorate([
Pipe({
name: 'firstOrDefault',
})
], FirstOrDefaultPipe);
export { FirstOrDefaultPipe };
let NgFirstOrDefaultPipeModule = class NgFirstOrDefaultPipeModule {
};
NgFirstOrDefaultPipeModule = tslib_1.__decorate([
NgModule({
declarations: [FirstOrDefaultPipe],
exports: [FirstOrDefaultPipe],
})
], NgFirstOrDefaultPipeModule);
export { NgFirstOrDefaultPipeModule };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyc3Qtb3ItZGVmYXVsdC5waXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1waXBlcy8iLCJzb3VyY2VzIjpbImFycmF5L2ZpcnN0LW9yLWRlZmF1bHQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQXVCLE1BQU0sZ0JBQWdCLENBQUM7QUFLdkYsSUFBYSxrQkFBa0IsMEJBQS9CLE1BQWEsa0JBQWtCO0lBQ3JCLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBWSxFQUFFLFNBQThCLEVBQUUsWUFBa0I7UUFDbEYsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksTUFBVyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRVgsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ25DLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUN2QztRQUVELElBQUksS0FBSyxFQUFFO1lBQ1QsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuQjtRQUVELElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE9BQU8sWUFBWSxLQUFLLFdBQVcsRUFBRTtZQUN4RSxNQUFNLEdBQUcsWUFBWSxDQUFDO1NBQ3ZCO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFVLEVBQUUsU0FBK0MsRUFBRSxZQUFrQjtRQUN2RixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ25CLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN6QixPQUFPLG9CQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQXVCLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztTQUNyRjthQUFNLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzdCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQWEsU0FBUyxDQUFDO1lBQ3pDLE9BQU8sb0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsS0FBSyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDdEc7YUFBTSxJQUFJLFNBQVMsRUFBRTtZQUNwQixPQUFPLG9CQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQVUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ3RGO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztDQUNGLENBQUE7QUFyQ1ksa0JBQWtCO0lBSDlCLElBQUksQ0FBQztRQUNKLElBQUksRUFBRSxnQkFBZ0I7S0FDdkIsQ0FBQztHQUNXLGtCQUFrQixDQXFDOUI7U0FyQ1ksa0JBQWtCO0FBMkMvQixJQUFhLDBCQUEwQixHQUF2QyxNQUFhLDBCQUEwQjtDQUFHLENBQUE7QUFBN0IsMEJBQTBCO0lBSnRDLFFBQVEsQ0FBQztRQUNSLFlBQVksRUFBRSxDQUFDLGtCQUFrQixDQUFDO1FBQ2xDLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO0tBQzlCLENBQUM7R0FDVywwQkFBMEIsQ0FBRztTQUE3QiwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc0FycmF5LCBpc0Z1bmN0aW9uLCBnZXRQcm9wZXJ0eSwgQ29sbGVjdGlvblByZWRpY2F0ZSB9IGZyb20gJy4uL3V0aWxzL3V0aWxzJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnZmlyc3RPckRlZmF1bHQnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlyc3RPckRlZmF1bHRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgZmluZChpbnB1dDogYW55W10sIHByZWRpY2F0ZTogQ29sbGVjdGlvblByZWRpY2F0ZSwgZGVmYXVsdFZhbHVlPzogYW55KTogYW55IHtcclxuICAgIGxldCBmb3VuZCA9IGZhbHNlO1xyXG4gICAgbGV0IHJlc3VsdDogYW55O1xyXG4gICAgbGV0IGkgPSAtMTtcclxuXHJcbiAgICB3aGlsZSAoIWZvdW5kICYmICsraSA8IGlucHV0Lmxlbmd0aCkge1xyXG4gICAgICBmb3VuZCA9IHByZWRpY2F0ZShpbnB1dFtpXSwgaSwgaW5wdXQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmb3VuZCkge1xyXG4gICAgICByZXN1bHQgPSBpbnB1dFtpXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGRlZmF1bHRWYWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgcmVzdWx0ID0gZGVmYXVsdFZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICB0cmFuc2Zvcm0oaW5wdXQ6IGFueSwgcHJlZGljYXRlOiBDb2xsZWN0aW9uUHJlZGljYXRlIHwgc3RyaW5nW10gfCBhbnksIGRlZmF1bHRWYWx1ZT86IGFueSk6IGFueSB7XHJcbiAgICBpZiAoIWlzQXJyYXkoaW5wdXQpKSB7XHJcbiAgICAgIHJldHVybiBpbnB1dDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaXNGdW5jdGlvbihwcmVkaWNhdGUpKSB7XHJcbiAgICAgIHJldHVybiBGaXJzdE9yRGVmYXVsdFBpcGUuZmluZChpbnB1dCwgPENvbGxlY3Rpb25QcmVkaWNhdGU+cHJlZGljYXRlLCBkZWZhdWx0VmFsdWUpO1xyXG4gICAgfSBlbHNlIGlmIChpc0FycmF5KHByZWRpY2F0ZSkpIHtcclxuICAgICAgY29uc3QgW2tleSwgdmFsdWVdID0gPHN0cmluZ1tdPnByZWRpY2F0ZTtcclxuICAgICAgcmV0dXJuIEZpcnN0T3JEZWZhdWx0UGlwZS5maW5kKGlucHV0LCAoaXRlbTogYW55KSA9PiBnZXRQcm9wZXJ0eShpdGVtLCBrZXkpID09PSB2YWx1ZSwgZGVmYXVsdFZhbHVlKTtcclxuICAgIH0gZWxzZSBpZiAocHJlZGljYXRlKSB7XHJcbiAgICAgIHJldHVybiBGaXJzdE9yRGVmYXVsdFBpcGUuZmluZChpbnB1dCwgaXRlbSA9PiBpdGVtID09PSA8YW55PnByZWRpY2F0ZSwgZGVmYXVsdFZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBpbnB1dDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbRmlyc3RPckRlZmF1bHRQaXBlXSxcclxuICBleHBvcnRzOiBbRmlyc3RPckRlZmF1bHRQaXBlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nRmlyc3RPckRlZmF1bHRQaXBlTW9kdWxlIHt9XHJcbiJdfQ==