angular-pipes
Version:
Angular pipes library
52 lines • 4.79 kB
JavaScript
import * as tslib_1 from "tslib";
import { Pipe, NgModule } from '@angular/core';
import { isNumberFinite } from '../utils/utils';
var OrdinalPipe = /** @class */ (function () {
function OrdinalPipe() {
}
OrdinalPipe.prototype.transform = function (input) {
if (!isNumberFinite(input)) {
return 'NaN';
}
if (this.endsWithTenth(input)) {
return input + 'th';
}
else {
var 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';
}
}
};
OrdinalPipe.prototype.endsWithTenth = function (input) {
var beforeLastDigit = input.toString().charAt(input.toString().length - 2);
return beforeLastDigit === '1';
};
OrdinalPipe = tslib_1.__decorate([
Pipe({
name: 'ordinal',
})
], OrdinalPipe);
return OrdinalPipe;
}());
export { OrdinalPipe };
var NgOrdinalPipeModule = /** @class */ (function () {
function NgOrdinalPipeModule() {
}
NgOrdinalPipeModule = tslib_1.__decorate([
NgModule({
declarations: [OrdinalPipe],
exports: [OrdinalPipe],
})
], NgOrdinalPipeModule);
return NgOrdinalPipeModule;
}());
export { NgOrdinalPipeModule };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkaW5hbC5waXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1waXBlcy8iLCJzb3VyY2VzIjpbIm1hdGgvb3JkaW5hbC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS2hEO0lBQUE7SUE2QkEsQ0FBQztJQTVCQywrQkFBUyxHQUFULFVBQVUsS0FBVTtRQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzFCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDN0IsT0FBTyxLQUFLLEdBQUcsSUFBSSxDQUFDO1NBQ3JCO2FBQU07WUFDTCxJQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFdEUsUUFBUSxRQUFRLEVBQUU7Z0JBQ2hCLEtBQUssR0FBRztvQkFDTixPQUFPLEtBQUssR0FBRyxJQUFJLENBQUM7Z0JBQ3RCLEtBQUssR0FBRztvQkFDTixPQUFPLEtBQUssR0FBRyxJQUFJLENBQUM7Z0JBQ3RCLEtBQUssR0FBRztvQkFDTixPQUFPLEtBQUssR0FBRyxJQUFJLENBQUM7Z0JBQ3RCO29CQUNFLE9BQU8sS0FBSyxHQUFHLElBQUksQ0FBQzthQUN2QjtTQUNGO0lBQ0gsQ0FBQztJQUVPLG1DQUFhLEdBQXJCLFVBQXNCLEtBQVU7UUFDOUIsSUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRTdFLE9BQU8sZUFBZSxLQUFLLEdBQUcsQ0FBQztJQUNqQyxDQUFDO0lBNUJVLFdBQVc7UUFIdkIsSUFBSSxDQUFDO1lBQ0osSUFBSSxFQUFFLFNBQVM7U0FDaEIsQ0FBQztPQUNXLFdBQVcsQ0E2QnZCO0lBQUQsa0JBQUM7Q0FBQSxBQTdCRCxJQTZCQztTQTdCWSxXQUFXO0FBbUN4QjtJQUFBO0lBQWtDLENBQUM7SUFBdEIsbUJBQW1CO1FBSi9CLFFBQVEsQ0FBQztZQUNSLFlBQVksRUFBRSxDQUFDLFdBQVcsQ0FBQztZQUMzQixPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQUM7U0FDdkIsQ0FBQztPQUNXLG1CQUFtQixDQUFHO0lBQUQsMEJBQUM7Q0FBQSxBQUFuQyxJQUFtQztTQUF0QixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc051bWJlckZpbml0ZSB9IGZyb20gJy4uL3V0aWxzL3V0aWxzJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnb3JkaW5hbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPcmRpbmFsUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybShpbnB1dDogYW55KTogYW55IHtcclxuICAgIGlmICghaXNOdW1iZXJGaW5pdGUoaW5wdXQpKSB7XHJcbiAgICAgIHJldHVybiAnTmFOJztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5lbmRzV2l0aFRlbnRoKGlucHV0KSkge1xyXG4gICAgICByZXR1cm4gaW5wdXQgKyAndGgnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgY2FyZGluYWwgPSBpbnB1dC50b1N0cmluZygpLmNoYXJBdChpbnB1dC50b1N0cmluZygpLmxlbmd0aCAtIDEpO1xyXG5cclxuICAgICAgc3dpdGNoIChjYXJkaW5hbCkge1xyXG4gICAgICAgIGNhc2UgJzEnOlxyXG4gICAgICAgICAgcmV0dXJuIGlucHV0ICsgJ3N0JztcclxuICAgICAgICBjYXNlICcyJzpcclxuICAgICAgICAgIHJldHVybiBpbnB1dCArICduZCc7XHJcbiAgICAgICAgY2FzZSAnMyc6XHJcbiAgICAgICAgICByZXR1cm4gaW5wdXQgKyAncmQnO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICByZXR1cm4gaW5wdXQgKyAndGgnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGVuZHNXaXRoVGVudGgoaW5wdXQ6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgYmVmb3JlTGFzdERpZ2l0ID0gaW5wdXQudG9TdHJpbmcoKS5jaGFyQXQoaW5wdXQudG9TdHJpbmcoKS5sZW5ndGggLSAyKTtcclxuXHJcbiAgICByZXR1cm4gYmVmb3JlTGFzdERpZ2l0ID09PSAnMSc7XHJcbiAgfVxyXG59XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW09yZGluYWxQaXBlXSxcclxuICBleHBvcnRzOiBbT3JkaW5hbFBpcGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdPcmRpbmFsUGlwZU1vZHVsZSB7fVxyXG4iXX0=