UNPKG

angular-pipes

Version:
46 lines 4.49 kB
import * as tslib_1 from "tslib"; import { Pipe, NgModule } from '@angular/core'; import { isNumberFinite } from '../utils/utils'; let OrdinalPipe = class OrdinalPipe { transform(input) { if (!isNumberFinite(input)) { return 'NaN'; } if (this.endsWithTenth(input)) { return input + 'th'; } else { const cardinal = input.toString().charAt(input.toString().length - 1); switch (cardinal) { case '1': return input + 'st'; case '2': return input + 'nd'; case '3': return input + 'rd'; default: return input + 'th'; } } } endsWithTenth(input) { const beforeLastDigit = input.toString().charAt(input.toString().length - 2); return beforeLastDigit === '1'; } }; OrdinalPipe = tslib_1.__decorate([ Pipe({ name: 'ordinal', }) ], OrdinalPipe); export { OrdinalPipe }; let NgOrdinalPipeModule = class NgOrdinalPipeModule { }; NgOrdinalPipeModule = tslib_1.__decorate([ NgModule({ declarations: [OrdinalPipe], exports: [OrdinalPipe], }) ], NgOrdinalPipeModule); export { NgOrdinalPipeModule }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkaW5hbC5waXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1waXBlcy8iLCJzb3VyY2VzIjpbIm1hdGgvb3JkaW5hbC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS2hELElBQWEsV0FBVyxHQUF4QixNQUFhLFdBQVc7SUFDdEIsU0FBUyxDQUFDLEtBQVU7UUFDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxQixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzdCLE9BQU8sS0FBSyxHQUFHLElBQUksQ0FBQztTQUNyQjthQUFNO1lBQ0wsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRXRFLFFBQVEsUUFBUSxFQUFFO2dCQUNoQixLQUFLLEdBQUc7b0JBQ04sT0FBTyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUN0QixLQUFLLEdBQUc7b0JBQ04sT0FBTyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUN0QixLQUFLLEdBQUc7b0JBQ04sT0FBTyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUN0QjtvQkFDRSxPQUFPLEtBQUssR0FBRyxJQUFJLENBQUM7YUFDdkI7U0FDRjtJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsS0FBVTtRQUM5QixNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFN0UsT0FBTyxlQUFlLEtBQUssR0FBRyxDQUFDO0lBQ2pDLENBQUM7Q0FDRixDQUFBO0FBN0JZLFdBQVc7SUFIdkIsSUFBSSxDQUFDO1FBQ0osSUFBSSxFQUFFLFNBQVM7S0FDaEIsQ0FBQztHQUNXLFdBQVcsQ0E2QnZCO1NBN0JZLFdBQVc7QUFtQ3hCLElBQWEsbUJBQW1CLEdBQWhDLE1BQWEsbUJBQW1CO0NBQUcsQ0FBQTtBQUF0QixtQkFBbUI7SUFKL0IsUUFBUSxDQUFDO1FBQ1IsWUFBWSxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQzNCLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztLQUN2QixDQUFDO0dBQ1csbUJBQW1CLENBQUc7U0FBdEIsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNOdW1iZXJGaW5pdGUgfSBmcm9tICcuLi91dGlscy91dGlscyc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ29yZGluYWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgT3JkaW5hbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICB0cmFuc2Zvcm0oaW5wdXQ6IGFueSk6IGFueSB7XHJcbiAgICBpZiAoIWlzTnVtYmVyRmluaXRlKGlucHV0KSkge1xyXG4gICAgICByZXR1cm4gJ05hTic7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZW5kc1dpdGhUZW50aChpbnB1dCkpIHtcclxuICAgICAgcmV0dXJuIGlucHV0ICsgJ3RoJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGNhcmRpbmFsID0gaW5wdXQudG9TdHJpbmcoKS5jaGFyQXQoaW5wdXQudG9TdHJpbmcoKS5sZW5ndGggLSAxKTtcclxuXHJcbiAgICAgIHN3aXRjaCAoY2FyZGluYWwpIHtcclxuICAgICAgICBjYXNlICcxJzpcclxuICAgICAgICAgIHJldHVybiBpbnB1dCArICdzdCc7XHJcbiAgICAgICAgY2FzZSAnMic6XHJcbiAgICAgICAgICByZXR1cm4gaW5wdXQgKyAnbmQnO1xyXG4gICAgICAgIGNhc2UgJzMnOlxyXG4gICAgICAgICAgcmV0dXJuIGlucHV0ICsgJ3JkJztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgcmV0dXJuIGlucHV0ICsgJ3RoJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbmRzV2l0aFRlbnRoKGlucHV0OiBhbnkpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGJlZm9yZUxhc3REaWdpdCA9IGlucHV0LnRvU3RyaW5nKCkuY2hhckF0KGlucHV0LnRvU3RyaW5nKCkubGVuZ3RoIC0gMik7XHJcblxyXG4gICAgcmV0dXJuIGJlZm9yZUxhc3REaWdpdCA9PT0gJzEnO1xyXG4gIH1cclxufVxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtPcmRpbmFsUGlwZV0sXHJcbiAgZXhwb3J0czogW09yZGluYWxQaXBlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nT3JkaW5hbFBpcGVNb2R1bGUge31cclxuIl19