UNPKG

angular-pipes

Version:
55 lines 6.3 kB
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==