angular-pipes
Version:
Angular pipes library
46 lines • 4.49 kB
JavaScript
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