12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.NUMBERS = void 0;
- const grammar_js_1 = require("../../rule_engine/grammar.js");
- const messages_js_1 = require("../messages.js");
- function hundredsToWords_(num) {
- let n = num % 1000;
- let str = '';
- str += exports.NUMBERS.ones[Math.floor(n / 100)]
- ? exports.NUMBERS.ones[Math.floor(n / 100)] +
- exports.NUMBERS.numSep +
- exports.NUMBERS.special.hundred
- : '';
- n = n % 100;
- if (n) {
- str += str ? exports.NUMBERS.numSep : '';
- str += exports.NUMBERS.ones[n];
- }
- return str;
- }
- function numberToWords(num) {
- if (num === 0) {
- return exports.NUMBERS.zero;
- }
- if (num >= Math.pow(10, 32)) {
- return num.toString();
- }
- let pos = 0;
- let str = '';
- const hundreds = num % 1000;
- const hundredsWords = hundredsToWords_(hundreds);
- num = Math.floor(num / 1000);
- if (!num) {
- return hundredsWords;
- }
- while (num > 0) {
- const thousands = num % 100;
- if (thousands) {
- str =
- exports.NUMBERS.ones[thousands] +
- exports.NUMBERS.numSep +
- exports.NUMBERS.large[pos] +
- (str ? exports.NUMBERS.numSep + str : '');
- }
- num = Math.floor(num / 100);
- pos++;
- }
- return hundredsWords ? str + exports.NUMBERS.numSep + hundredsWords : str;
- }
- function numberToOrdinal(num, _plural) {
- if (num <= 10) {
- return exports.NUMBERS.special.smallDenominators[num];
- }
- return wordOrdinal(num) + ' अंश';
- }
- function wordOrdinal(num) {
- const gender = grammar_js_1.Grammar.getInstance().getParameter('gender');
- if (num <= 0) {
- return num.toString();
- }
- if (num < 10) {
- return gender === 'f'
- ? exports.NUMBERS.special.ordinalsFeminine[num]
- : exports.NUMBERS.special.ordinalsMasculine[num];
- }
- const ordinal = numberToWords(num);
- return ordinal + (gender === 'f' ? 'वीं' : 'वाँ');
- }
- function numericOrdinal(num) {
- const gender = grammar_js_1.Grammar.getInstance().getParameter('gender');
- if (num > 0 && num < 10) {
- return gender === 'f'
- ? exports.NUMBERS.special.simpleSmallOrdinalsFeminine[num]
- : exports.NUMBERS.special.simpleSmallOrdinalsMasculine[num];
- }
- const ordinal = num
- .toString()
- .split('')
- .map(function (x) {
- const num = parseInt(x, 10);
- return isNaN(num) ? '' : exports.NUMBERS.special.simpleNumbers[num];
- })
- .join('');
- return ordinal + (gender === 'f' ? 'वीं' : 'वाँ');
- }
- exports.NUMBERS = (0, messages_js_1.NUMBERS)({
- wordOrdinal: wordOrdinal,
- numericOrdinal: numericOrdinal,
- numberToWords: numberToWords,
- numberToOrdinal: numberToOrdinal
- });
|