| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121 | 1×
1×
1×
1×
1×
40×
40×
40×
40×
40×
1×
1×
1×
1×
1×
1×
1×
1×
1×
| define(["require", "exports", "./../../pages/enum"], function (require, exports, enum_1) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var PdfNumbersConvertor = (function () {
function PdfNumbersConvertor() {
}
PdfNumbersConvertor.convert = function (intArabic, numberStyle) {
var result = '';
switch (numberStyle) {
case enum_1.PdfNumberStyle.None:
result = '';
break;
case enum_1.PdfNumberStyle.Numeric:
result = intArabic.toString();
break;
case enum_1.PdfNumberStyle.LowerLatin:
result = this.arabicToLetter(intArabic).toLowerCase();
break;
case enum_1.PdfNumberStyle.LowerRoman:
result = this.arabicToRoman(intArabic).toLowerCase();
break;
case enum_1.PdfNumberStyle.UpperLatin:
result = this.arabicToLetter(intArabic);
break;
case enum_1.PdfNumberStyle.UpperRoman:
result = this.arabicToRoman(intArabic);
break;
}
return result;
};
PdfNumbersConvertor.arabicToRoman = function (intArabic) {
var retval = '';
var retvalM = this.generateNumber(intArabic, 1000, 'M');
retval += retvalM.returnValue;
intArabic = retvalM.intArabic;
var retvalCM = this.generateNumber(intArabic, 900, 'CM');
retval += retvalCM.returnValue;
intArabic = retvalCM.intArabic;
var retvalD = this.generateNumber(intArabic, 500, 'D');
retval += retvalD.returnValue;
intArabic = retvalD.intArabic;
var retvalCD = this.generateNumber(intArabic, 400, 'CD');
retval += retvalCD.returnValue;
intArabic = retvalCD.intArabic;
var retvalC = this.generateNumber(intArabic, 100, 'C');
retval += retvalC.returnValue;
intArabic = retvalC.intArabic;
var retvalXC = this.generateNumber(intArabic, 90, 'XC');
retval += retvalXC.returnValue;
intArabic = retvalXC.intArabic;
var retvalL = this.generateNumber(intArabic, 50, 'L');
retval += retvalL.returnValue;
intArabic = retvalL.intArabic;
var retvalXL = this.generateNumber(intArabic, 40, 'XL');
retval += retvalXL.returnValue;
intArabic = retvalXL.intArabic;
var retvalX = this.generateNumber(intArabic, 10, 'X');
retval += retvalX.returnValue;
intArabic = retvalX.intArabic;
var retvalIX = this.generateNumber(intArabic, 9, 'IX');
retval += retvalIX.returnValue;
intArabic = retvalIX.intArabic;
var retvalV = this.generateNumber(intArabic, 5, 'V');
retval += retvalV.returnValue;
intArabic = retvalV.intArabic;
var retvalIV = this.generateNumber(intArabic, 4, 'IV');
retval += retvalIV.returnValue;
intArabic = retvalIV.intArabic;
var retvalI = this.generateNumber(intArabic, 1, 'I');
retval += retvalI.returnValue;
intArabic = retvalI.intArabic;
return retval.toString();
};
PdfNumbersConvertor.arabicToLetter = function (arabic) {
var stack = this.convertToLetter(arabic);
var result = '';
while (stack.length > 0) {
var num = stack.pop();
result = this.appendChar(result, num);
}
return result.toString();
};
PdfNumbersConvertor.generateNumber = function (value, magnitude, letter) {
var numberstring = '';
while (value >= magnitude) {
value -= magnitude;
numberstring += letter;
}
return { returnValue: numberstring.toString(), intArabic: value };
};
PdfNumbersConvertor.convertToLetter = function (arabic) {
if (arabic <= 0) {
throw Error('ArgumentOutOfRangeException-arabic, Value can not be less 0');
}
var stack = [];
while (arabic > this.letterLimit) {
var remainder = arabic % this.letterLimit;
if (remainder === 0.0) {
arabic = arabic / this.letterLimit - 1;
remainder = this.letterLimit;
}
else {
arabic /= this.letterLimit;
}
stack.push(remainder);
}
stack.push(arabic);
return stack;
};
PdfNumbersConvertor.appendChar = function (builder, value) {
var letter = String.fromCharCode(PdfNumbersConvertor.acsiiStartIndex + value);
builder += letter;
return builder;
};
PdfNumbersConvertor.letterLimit = 26.0;
PdfNumbersConvertor.acsiiStartIndex = (65 - 1);
return PdfNumbersConvertor;
}());
exports.PdfNumbersConvertor = PdfNumbersConvertor;
});
|