angular-pipes
Version:
Angular pipes library
62 lines • 6.74 kB
JavaScript
import * as tslib_1 from "tslib";
import { Pipe, NgModule } from '@angular/core';
import { isArray, isFunction, getProperty } from '../utils/utils';
var FirstOrDefaultPipe = /** @class */ (function () {
function FirstOrDefaultPipe() {
}
FirstOrDefaultPipe_1 = FirstOrDefaultPipe;
FirstOrDefaultPipe.find = function (input, predicate, defaultValue) {
var found = false;
var result;
var 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;
};
FirstOrDefaultPipe.prototype.transform = function (input, predicate, defaultValue) {
if (!isArray(input)) {
return input;
}
if (isFunction(predicate)) {
return FirstOrDefaultPipe_1.find(input, predicate, defaultValue);
}
else if (isArray(predicate)) {
var _a = tslib_1.__read(predicate, 2), key_1 = _a[0], value_1 = _a[1];
return FirstOrDefaultPipe_1.find(input, function (item) { return getProperty(item, key_1) === value_1; }, defaultValue);
}
else if (predicate) {
return FirstOrDefaultPipe_1.find(input, function (item) { return item === predicate; }, defaultValue);
}
else {
return input;
}
};
var FirstOrDefaultPipe_1;
FirstOrDefaultPipe = FirstOrDefaultPipe_1 = tslib_1.__decorate([
Pipe({
name: 'firstOrDefault',
})
], FirstOrDefaultPipe);
return FirstOrDefaultPipe;
}());
export { FirstOrDefaultPipe };
var NgFirstOrDefaultPipeModule = /** @class */ (function () {
function NgFirstOrDefaultPipeModule() {
}
NgFirstOrDefaultPipeModule = tslib_1.__decorate([
NgModule({
declarations: [FirstOrDefaultPipe],
exports: [FirstOrDefaultPipe],
})
], NgFirstOrDefaultPipeModule);
return NgFirstOrDefaultPipeModule;
}());
export { NgFirstOrDefaultPipeModule };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyc3Qtb3ItZGVmYXVsdC5waXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1waXBlcy8iLCJzb3VyY2VzIjpbImFycmF5L2ZpcnN0LW9yLWRlZmF1bHQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBdUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUt2RjtJQUFBO0lBcUNBLENBQUM7MkJBckNZLGtCQUFrQjtJQUNkLHVCQUFJLEdBQW5CLFVBQW9CLEtBQVksRUFBRSxTQUE4QixFQUFFLFlBQWtCO1FBQ2xGLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLE1BQVcsQ0FBQztRQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVYLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNuQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDdkM7UUFFRCxJQUFJLEtBQUssRUFBRTtZQUNULE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbkI7UUFFRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxPQUFPLFlBQVksS0FBSyxXQUFXLEVBQUU7WUFDeEUsTUFBTSxHQUFHLFlBQVksQ0FBQztTQUN2QjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxzQ0FBUyxHQUFULFVBQVUsS0FBVSxFQUFFLFNBQStDLEVBQUUsWUFBa0I7UUFDdkYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNuQixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDekIsT0FBTyxvQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUF1QixTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDckY7YUFBTSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN2QixJQUFBLGlDQUFrQyxFQUFqQyxhQUFHLEVBQUUsZUFBNEIsQ0FBQztZQUN6QyxPQUFPLG9CQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBQyxJQUFTLElBQUssT0FBQSxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUcsQ0FBQyxLQUFLLE9BQUssRUFBaEMsQ0FBZ0MsRUFBRSxZQUFZLENBQUMsQ0FBQztTQUN0RzthQUFNLElBQUksU0FBUyxFQUFFO1lBQ3BCLE9BQU8sb0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFBLElBQUksSUFBSSxPQUFBLElBQUksS0FBVSxTQUFTLEVBQXZCLENBQXVCLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDdEY7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDOztJQXBDVSxrQkFBa0I7UUFIOUIsSUFBSSxDQUFDO1lBQ0osSUFBSSxFQUFFLGdCQUFnQjtTQUN2QixDQUFDO09BQ1csa0JBQWtCLENBcUM5QjtJQUFELHlCQUFDO0NBQUEsQUFyQ0QsSUFxQ0M7U0FyQ1ksa0JBQWtCO0FBMkMvQjtJQUFBO0lBQXlDLENBQUM7SUFBN0IsMEJBQTBCO1FBSnRDLFFBQVEsQ0FBQztZQUNSLFlBQVksRUFBRSxDQUFDLGtCQUFrQixDQUFDO1lBQ2xDLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO1NBQzlCLENBQUM7T0FDVywwQkFBMEIsQ0FBRztJQUFELGlDQUFDO0NBQUEsQUFBMUMsSUFBMEM7U0FBN0IsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNBcnJheSwgaXNGdW5jdGlvbiwgZ2V0UHJvcGVydHksIENvbGxlY3Rpb25QcmVkaWNhdGUgfSBmcm9tICcuLi91dGlscy91dGlscyc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2ZpcnN0T3JEZWZhdWx0JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpcnN0T3JEZWZhdWx0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHByaXZhdGUgc3RhdGljIGZpbmQoaW5wdXQ6IGFueVtdLCBwcmVkaWNhdGU6IENvbGxlY3Rpb25QcmVkaWNhdGUsIGRlZmF1bHRWYWx1ZT86IGFueSk6IGFueSB7XHJcbiAgICBsZXQgZm91bmQgPSBmYWxzZTtcclxuICAgIGxldCByZXN1bHQ6IGFueTtcclxuICAgIGxldCBpID0gLTE7XHJcblxyXG4gICAgd2hpbGUgKCFmb3VuZCAmJiArK2kgPCBpbnB1dC5sZW5ndGgpIHtcclxuICAgICAgZm91bmQgPSBwcmVkaWNhdGUoaW5wdXRbaV0sIGksIGlucHV0KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZm91bmQpIHtcclxuICAgICAgcmVzdWx0ID0gaW5wdXRbaV07XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkZWZhdWx0VmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHJlc3VsdCA9IGRlZmF1bHRWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgdHJhbnNmb3JtKGlucHV0OiBhbnksIHByZWRpY2F0ZTogQ29sbGVjdGlvblByZWRpY2F0ZSB8IHN0cmluZ1tdIHwgYW55LCBkZWZhdWx0VmFsdWU/OiBhbnkpOiBhbnkge1xyXG4gICAgaWYgKCFpc0FycmF5KGlucHV0KSkge1xyXG4gICAgICByZXR1cm4gaW5wdXQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlzRnVuY3Rpb24ocHJlZGljYXRlKSkge1xyXG4gICAgICByZXR1cm4gRmlyc3RPckRlZmF1bHRQaXBlLmZpbmQoaW5wdXQsIDxDb2xsZWN0aW9uUHJlZGljYXRlPnByZWRpY2F0ZSwgZGVmYXVsdFZhbHVlKTtcclxuICAgIH0gZWxzZSBpZiAoaXNBcnJheShwcmVkaWNhdGUpKSB7XHJcbiAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IDxzdHJpbmdbXT5wcmVkaWNhdGU7XHJcbiAgICAgIHJldHVybiBGaXJzdE9yRGVmYXVsdFBpcGUuZmluZChpbnB1dCwgKGl0ZW06IGFueSkgPT4gZ2V0UHJvcGVydHkoaXRlbSwga2V5KSA9PT0gdmFsdWUsIGRlZmF1bHRWYWx1ZSk7XHJcbiAgICB9IGVsc2UgaWYgKHByZWRpY2F0ZSkge1xyXG4gICAgICByZXR1cm4gRmlyc3RPckRlZmF1bHRQaXBlLmZpbmQoaW5wdXQsIGl0ZW0gPT4gaXRlbSA9PT0gPGFueT5wcmVkaWNhdGUsIGRlZmF1bHRWYWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gaW5wdXQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0ZpcnN0T3JEZWZhdWx0UGlwZV0sXHJcbiAgZXhwb3J0czogW0ZpcnN0T3JEZWZhdWx0UGlwZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ0ZpcnN0T3JEZWZhdWx0UGlwZU1vZHVsZSB7fVxyXG4iXX0=