@magic-xpa/mscorelib 4.1100.0-dev4110.99 → 4.1100.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/README.md +7 -7
  2. package/{esm2020 → esm2022}/index.mjs +32 -32
  3. package/{esm2020 → esm2022}/magic-xpa-mscorelib.mjs +1 -1
  4. package/esm2022/src/ApplicationException.mjs +12 -0
  5. package/esm2022/src/ArrayEnumerator.mjs +17 -0
  6. package/esm2022/src/BitArray.mjs +16 -0
  7. package/esm2022/src/Char.mjs +5 -0
  8. package/esm2022/src/CultureInfo.mjs +4 -0
  9. package/esm2022/src/DateTime.mjs +75 -0
  10. package/{esm2020 → esm2022}/src/Debug.mjs +9 -9
  11. package/esm2022/src/Dictionary.mjs +39 -0
  12. package/esm2022/src/Encoding.mjs +114 -0
  13. package/{esm2020 → esm2022}/src/Exception.mjs +32 -32
  14. package/esm2022/src/HashTable.mjs +157 -0
  15. package/{esm2020 → esm2022}/src/IComparable.mjs +1 -1
  16. package/esm2022/src/ISO_8859_1_Encoding.mjs +38 -0
  17. package/esm2022/src/Int32.mjs +5 -0
  18. package/esm2022/src/Int64.mjs +4 -0
  19. package/{esm2020 → esm2022}/src/List.mjs +86 -86
  20. package/{esm2020 → esm2022}/src/NChar.mjs +24 -24
  21. package/{esm2020 → esm2022}/src/NNumber.mjs +27 -27
  22. package/esm2022/src/NString.mjs +149 -0
  23. package/{esm2020 → esm2022}/src/NotImplementedException.mjs +6 -6
  24. package/esm2022/src/NumberFormatInfo.mjs +8 -0
  25. package/{esm2020 → esm2022}/src/RefParam.mjs +7 -6
  26. package/esm2022/src/Stack.mjs +35 -0
  27. package/esm2022/src/StackFrame.mjs +14 -0
  28. package/{esm2020 → esm2022}/src/StackTrace.mjs +6 -6
  29. package/{esm2020 → esm2022}/src/StringBuilder.mjs +112 -112
  30. package/{esm2020 → esm2022}/src/StringUtils.mjs +76 -76
  31. package/esm2022/src/Thread.mjs +16 -0
  32. package/{esm2020 → esm2022}/src/Utils.mjs +6 -6
  33. package/{esm2020 → esm2022}/src/WebException.mjs +9 -9
  34. package/{esm2020 → esm2022}/src/XmlConvert.mjs +6 -6
  35. package/{fesm2020 → fesm2022}/magic-xpa-mscorelib.mjs +1049 -1047
  36. package/{fesm2020 → fesm2022}/magic-xpa-mscorelib.mjs.map +1 -1
  37. package/index.d.ts +31 -31
  38. package/package.json +6 -12
  39. package/src/ApplicationException.d.ts +5 -5
  40. package/src/ArrayEnumerator.d.ts +11 -11
  41. package/src/BitArray.d.ts +7 -7
  42. package/src/Char.d.ts +4 -4
  43. package/src/CultureInfo.d.ts +3 -3
  44. package/src/DateTime.d.ts +26 -26
  45. package/src/Debug.d.ts +4 -4
  46. package/src/Dictionary.d.ts +11 -11
  47. package/src/Encoding.d.ts +16 -16
  48. package/src/Exception.d.ts +11 -11
  49. package/src/HashTable.d.ts +28 -28
  50. package/src/IComparable.d.ts +3 -3
  51. package/src/ISO_8859_1_Encoding.d.ts +7 -7
  52. package/src/Int32.d.ts +4 -4
  53. package/src/Int64.d.ts +3 -3
  54. package/src/List.d.ts +19 -19
  55. package/src/NChar.d.ts +8 -8
  56. package/src/NNumber.d.ts +9 -9
  57. package/src/NString.d.ts +23 -23
  58. package/src/NotImplementedException.d.ts +4 -4
  59. package/src/NumberFormatInfo.d.ts +5 -5
  60. package/src/RefParam.d.ts +4 -4
  61. package/src/Stack.d.ts +11 -11
  62. package/src/StackFrame.d.ts +5 -5
  63. package/src/StackTrace.d.ts +5 -5
  64. package/src/StringBuilder.d.ts +25 -25
  65. package/src/StringUtils.d.ts +64 -64
  66. package/src/Thread.d.ts +7 -7
  67. package/src/Utils.d.ts +2 -2
  68. package/src/WebException.d.ts +4 -4
  69. package/src/XmlConvert.d.ts +3 -3
  70. package/esm2020/src/ApplicationException.mjs +0 -12
  71. package/esm2020/src/ArrayEnumerator.mjs +0 -16
  72. package/esm2020/src/BitArray.mjs +0 -16
  73. package/esm2020/src/Char.mjs +0 -5
  74. package/esm2020/src/CultureInfo.mjs +0 -4
  75. package/esm2020/src/DateTime.mjs +0 -75
  76. package/esm2020/src/Dictionary.mjs +0 -41
  77. package/esm2020/src/Encoding.mjs +0 -113
  78. package/esm2020/src/HashTable.mjs +0 -157
  79. package/esm2020/src/ISO_8859_1_Encoding.mjs +0 -38
  80. package/esm2020/src/Int32.mjs +0 -5
  81. package/esm2020/src/Int64.mjs +0 -4
  82. package/esm2020/src/NString.mjs +0 -149
  83. package/esm2020/src/NumberFormatInfo.mjs +0 -8
  84. package/esm2020/src/Stack.mjs +0 -34
  85. package/esm2020/src/StackFrame.mjs +0 -14
  86. package/esm2020/src/Thread.mjs +0 -16
  87. package/fesm2015/magic-xpa-mscorelib.mjs +0 -1108
  88. package/fesm2015/magic-xpa-mscorelib.mjs.map +0 -1
@@ -0,0 +1,157 @@
1
+ import { Array_Enumerator } from "./ArrayEnumerator";
2
+ import { Exception } from "./Exception";
3
+ import { Encoding } from "./Encoding";
4
+ export class HashUtils {
5
+ static GetHashCode(str) {
6
+ let bytes = null;
7
+ bytes = Encoding.UTF8.GetBytes(str);
8
+ return HashUtils.getHashCode(bytes);
9
+ }
10
+ static getHashCode(byteArray) {
11
+ let hashval;
12
+ let hash1 = 5381;
13
+ let hash2 = hash1;
14
+ let c;
15
+ for (let i = 0; i < byteArray.length; i += 2) {
16
+ c = byteArray[i];
17
+ hash1 = ((hash1 << 5) + hash1) ^ c;
18
+ if ((i + 1) === byteArray.length)
19
+ break;
20
+ c = byteArray[i + 1];
21
+ hash2 = ((hash2 << 5) + hash2) ^ c;
22
+ hash1 = hash1 & 0xffff;
23
+ hash2 = hash2 & 0xffff;
24
+ }
25
+ let hash3 = (hash2 * 13577);
26
+ hashval = (hash1 + hash3);
27
+ return (hashval);
28
+ }
29
+ }
30
+ const HashTableLoadFactor = 0.75;
31
+ export class Hashtable {
32
+ _buckets = [];
33
+ _elementsCount = 0;
34
+ _bucketCount = 0;
35
+ _loadFactor = 0;
36
+ constructor(bucketCount = 8, loadFactor = HashTableLoadFactor) {
37
+ this._bucketCount = bucketCount;
38
+ this._loadFactor = loadFactor;
39
+ if (this._bucketCount % 2 !== 0) {
40
+ throw new Exception('Bucket count must be a positive number and be multiple of 2.');
41
+ }
42
+ }
43
+ HashFunction(key) {
44
+ if (typeof key.GetHashCode === 'function') {
45
+ return key.GetHashCode();
46
+ }
47
+ else if (key.constructor === String) {
48
+ return HashUtils.GetHashCode(key.toString());
49
+ }
50
+ else if (key.constructor === Number) {
51
+ return +key;
52
+ }
53
+ return 0;
54
+ }
55
+ get Count() {
56
+ return this._elementsCount;
57
+ }
58
+ get Values() {
59
+ let array = [];
60
+ this._buckets.forEach(b => b.forEach(item => {
61
+ array.push(item.value);
62
+ }));
63
+ return new Array_Enumerator(array);
64
+ }
65
+ get Keys() {
66
+ let array = [];
67
+ this._buckets.forEach(b => b.forEach(item => {
68
+ array.push(item.key);
69
+ }));
70
+ return new Array_Enumerator(array);
71
+ }
72
+ Add(key, value) {
73
+ this.Insert(key, value, true);
74
+ }
75
+ set_Item(key, value) {
76
+ this.Insert(key, value, false);
77
+ }
78
+ Insert(key, value, add) {
79
+ let bucketIndex = this.GetBucketIndex(key);
80
+ if (typeof this._buckets[bucketIndex] === "undefined") {
81
+ this._buckets[bucketIndex] = [];
82
+ }
83
+ if (this._buckets[bucketIndex].find(x => x.key === key)) {
84
+ if (add) {
85
+ throw new Exception('Item with provided key already exists!');
86
+ }
87
+ else {
88
+ this.Remove(key);
89
+ return;
90
+ }
91
+ }
92
+ this._buckets[bucketIndex].push({ key: key, value: value });
93
+ this._elementsCount++;
94
+ if (this._elementsCount > this._bucketCount * this._loadFactor) {
95
+ this.Resize(this._bucketCount * 2);
96
+ }
97
+ }
98
+ get_Item(key) {
99
+ let bucketIndex = this.GetBucketIndex(key);
100
+ let bucket = this._buckets[bucketIndex];
101
+ if (!bucket) {
102
+ return null;
103
+ }
104
+ let item = bucket.find(x => x.key === key);
105
+ if (item) {
106
+ return item.value;
107
+ }
108
+ return null;
109
+ }
110
+ ContainsKey(key) {
111
+ let bucketIndex = this.GetBucketIndex(key);
112
+ let bucket = this._buckets[bucketIndex];
113
+ if (!bucket) {
114
+ return false;
115
+ }
116
+ let itemIndex = bucket.findIndex(x => x.key === key);
117
+ return (itemIndex > -1);
118
+ }
119
+ Remove(key) {
120
+ let bucketIndex = this.GetBucketIndex(key);
121
+ let bucket = this._buckets[bucketIndex];
122
+ if (!bucket) {
123
+ return;
124
+ }
125
+ let itemIndex = bucket.findIndex(x => x.key === key);
126
+ if (itemIndex > -1) {
127
+ bucket.splice(itemIndex, 1);
128
+ this._elementsCount--;
129
+ if (this._elementsCount <= this._bucketCount * (1 - this._loadFactor)) {
130
+ this.Resize(this._bucketCount / 2);
131
+ }
132
+ }
133
+ }
134
+ Resize(newBucketCount) {
135
+ let _oldBuckets = this._buckets;
136
+ this._elementsCount = 0;
137
+ this._buckets = [];
138
+ this._bucketCount = newBucketCount;
139
+ _oldBuckets.forEach(b => b.forEach(item => this.Add(item.key, item.value)));
140
+ }
141
+ GetBucketIndex(key) {
142
+ let hash = this.HashFunction(key);
143
+ if (hash % 1 !== 0) {
144
+ throw new Exception('Key\'s hash must be an integer!');
145
+ }
146
+ let index = Math.abs(hash) % this._bucketCount;
147
+ if (index < 0 || index >= this._bucketCount) {
148
+ throw new Exception('Index exceeds bucket boundaries');
149
+ }
150
+ return index;
151
+ }
152
+ Clear() {
153
+ this._elementsCount = 0;
154
+ this._buckets = [];
155
+ }
156
+ }
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGFzaFRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXNjb3JlbGliL3NyYy9IYXNoVGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBRXBDLE1BQU0sT0FBTyxTQUFTO0lBR3BCLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBVztRQUM1QixJQUFJLEtBQUssR0FBZSxJQUFJLENBQUM7UUFFN0IsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXBDLE9BQU8sU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFxQjtRQUM5QyxJQUFJLE9BQWUsQ0FBQztRQUVwQixJQUFJLEtBQUssR0FBVyxJQUFJLENBQUM7UUFDekIsSUFBSSxLQUFLLEdBQVcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBUyxDQUFDO1FBRWQsS0FBSyxJQUFJLENBQUMsR0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNwRCxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxNQUFNO2dCQUM5QixNQUFNO1lBQ1IsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFD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O1NBQ3hEO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBR0QsS0FBSztRQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFJlZmVyZW5jZTogaHR0cHM6Ly9naXRodWIuY29tL3Jrb3N0cnpld3NraS9oYXNodGFibGUtdHMvYmxvYi9tYXN0ZXIvc3JjL2hhc2h0YWJsZS50c1xyXG5cclxuaW1wb3J0IHtBcnJheV9FbnVtZXJhdG9yfSBmcm9tIFwiLi9BcnJheUVudW1lcmF0b3JcIjtcclxuaW1wb3J0IHtFeGNlcHRpb259IGZyb20gXCIuL0V4Y2VwdGlvblwiO1xyXG5pbXBvcnQge0VuY29kaW5nfSBmcm9tIFwiLi9FbmNvZGluZ1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEhhc2hVdGlscyB7XHJcbiAgLy8gUGF5IGF0dGVudGlvbiB0aGF0IGluIHNlcnZlciB0aGVyZSBpcyB0aGUgc2FtZSBmdW5jdGlvbiBhbmQgaXQgbXVzdFxyXG4gIC8vIHJldHVybiB0aGUgc2FtZSBoYXNoIHZhbHVlLlxyXG4gIHN0YXRpYyBHZXRIYXNoQ29kZShzdHI6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICBsZXQgYnl0ZXM6IFVpbnQ4QXJyYXkgPSBudWxsO1xyXG5cclxuICAgIGJ5dGVzID0gRW5jb2RpbmcuVVRGOC5HZXRCeXRlcyhzdHIpO1xyXG5cclxuICAgIHJldHVybiBIYXNoVXRpbHMuZ2V0SGFzaENvZGUoYnl0ZXMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0SGFzaENvZGUoYnl0ZUFycmF5OiBVaW50OEFycmF5KSB7XHJcbiAgICBsZXQgaGFzaHZhbDogbnVtYmVyO1xyXG5cclxuICAgIGxldCBoYXNoMTogbnVtYmVyID0gNTM4MTtcclxuICAgIGxldCBoYXNoMjogbnVtYmVyID0gaGFzaDE7XHJcbiAgICBsZXQgYzogbnVtYmVyO1xyXG5cclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBieXRlQXJyYXkubGVuZ3RoOyBpICs9IDIpIHtcclxuICAgICAgYyA9IGJ5dGVBcnJheVtpXTtcclxuICAgICAgaGFzaDEgPSAoKGhhc2gxIDw8IDUpICsgaGFzaDEpIF4gYztcclxuICAgICAgaWYgKChpICsgMSkgPT09IGJ5dGVBcnJheS5sZW5ndGgpXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGMgPSBieXRlQXJyYXlbaSArIDFdO1xyXG4gICAgICBoYXNoMiA9ICgoaGFzaDIgPDwgNSkgKyBoYXNoMikgXiBjO1xyXG4gICAgICBoYXNoMSA9IGhhc2gxICYgMHhmZmZmO1xyXG4gICAgICBoYXNoMiA9IGhhc2gyICYgMHhmZmZmO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBoYXNoMzogbnVtYmVyID0gKGhhc2gyICogMTM1NzcpO1xyXG4gICAgaGFzaHZhbCA9IChoYXNoMSArIGhhc2gzKTtcclxuICAgIHJldHVybiAoaGFzaHZhbCk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElIYXNoQ29kZSB7XHJcbiAgR2V0SGFzaENvZGUoKTogbnVtYmVyO1xyXG59XHJcblxyXG50eXBlIEJ1Y2tldEVsZW1lbnQ8VEtleSwgVFZhbHVlPiA9IHsga2V5OiBUS2V5LCB2YWx1ZTogVFZhbHVlIH07XHJcbnR5cGUgQnVja2V0PFRLZXksIFRWYWx1ZT4gPSBbQnVja2V0RWxlbWVudDxUS2V5LCBUVmFsdWU+XTtcclxuXHJcbmNvbnN0IEhhc2hUYWJsZUxvYWRGYWN0b3IgPSAwLjc1O1xyXG5cclxuLy8gSGFzaHRhYmxlIGltcGxlbWVudGF0aW9uIGZvciBrZXkgVEtleSBhbmQgVmFsdWUgVFZhbHVlXHJcbmV4cG9ydCBjbGFzcyBIYXNodGFibGU8VEtleSBleHRlbmRzIChJSGFzaENvZGUgfCBzdHJpbmcgfCBudW1iZXIpLCBUVmFsdWU+IHtcclxuXHJcbiAgcHJpdmF0ZSBfYnVja2V0czogQnVja2V0PFRLZXksIFRWYWx1ZT5bXSA9IFtdOyAvLyB0b3RhbCBuby4gb2YgYnVja2V0c1xyXG4gIHByaXZhdGUgX2VsZW1lbnRzQ291bnQgPSAwOyAvLyB0b3RhbCBlbGVtZW50c1xyXG4gIHByaXZhdGUgX2J1Y2tldENvdW50OiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX2xvYWRGYWN0b3I6IG51bWJlciA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGJ1Y2tldENvdW50OiBudW1iZXIgPSA4LCBsb2FkRmFjdG9yOiBudW1iZXIgPSBIYXNoVGFibGVMb2FkRmFjdG9yKSB7XHJcbiAgICB0aGlzLl9idWNrZXRDb3VudCA9IGJ1Y2tldENvdW50O1xyXG4gICAgdGhpcy5fbG9hZEZhY3RvciA9IGxvYWRGYWN0b3I7XHJcblxyXG4gICAgaWYgKHRoaXMuX2J1Y2tldENvdW50ICUgMiAhPT0gMCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdCdWNrZXQgY291bnQgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciBhbmQgYmUgbXVsdGlwbGUgb2YgMi4nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEdlbmVyaWMgSGFzaCBmdW50aW9uXHJcbiAgcHJpdmF0ZSBIYXNoRnVuY3Rpb24oa2V5KTogbnVtYmVyIHtcclxuICAgIGlmICh0eXBlb2Yga2V5LkdldEhhc2hDb2RlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIHJldHVybiBrZXkuR2V0SGFzaENvZGUoKTtcclxuICAgIH0gZWxzZSBpZiAoa2V5LmNvbnN0cnVjdG9yID09PSBTdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gSGFzaFV0aWxzLkdldEhhc2hDb2RlKGtleS50b1N0cmluZygpKTtcclxuICAgIH0gZWxzZSBpZiAoa2V5LmNvbnN0cnVjdG9yID09PSBOdW1iZXIpIHtcclxuICAgICAgcmV0dXJuICtrZXk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcblxyXG4gIC8vIHJldHVybnMgZWxlbWVudENvdW50XHJcbiAgZ2V0IENvdW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRzQ291bnQ7XHJcbiAgfVxyXG5cclxuICAvLyByZXR1cm5zIFZhbHVlQ29sbGVjdGlvbiAoQXJyYXkgRW51bWVyYXRvcilcclxuICBnZXQgVmFsdWVzKCk6IEFycmF5X0VudW1lcmF0b3I8VFZhbHVlPiB7XHJcbiAgICBsZXQgYXJyYXk6IEFycmF5PFRWYWx1ZT4gPSBbXTtcclxuICAgIHRoaXMuX2J1Y2tldHMuZm9yRWFjaChiID0+IGIuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgYXJyYXkucHVzaChpdGVtLnZhbHVlKTtcclxuICAgIH0pKTtcclxuICAgIHJldHVybiBuZXcgQXJyYXlfRW51bWVyYXRvcihhcnJheSk7XHJcbiAgfVxyXG5cclxuICAvLyByZXR1cm5zIEtleUNvbGxlY3Rpb24gKEFycmF5IEVudW1lcmF0b3IpXHJcbiAgZ2V0IEtleXMoKTogQXJyYXlfRW51bWVyYXRvcjxUS2V5PiB7XHJcbiAgICBsZXQgYXJyYXk6IEFycmF5PFRLZXk+ID0gW107XHJcbiAgICB0aGlzLl9idWNrZXRzLmZvckVhY2goYiA9PiBiLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIGFycmF5LnB1c2goaXRlbS5rZXkpO1xyXG4gICAgfSkpO1xyXG4gICAgcmV0dXJuIG5ldyBBcnJheV9FbnVtZXJhdG9yKGFycmF5KTtcclxuICB9XHJcblxyXG4gIC8vIGFkZHMgaXRlbSB0byBIYXNodGFibGVcclxuICBBZGQoa2V5OiBUS2V5LCB2YWx1ZTogVFZhbHVlKTogdm9pZCB7XHJcbiAgICB0aGlzLkluc2VydChrZXksIHZhbHVlLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIC8vIHNldHMgaXRlbSBpbiBIYXNodGFibGVcclxuICBzZXRfSXRlbShrZXk6IFRLZXksIHZhbHVlOiBUVmFsdWUpIHtcclxuICAgIHRoaXMuSW5zZXJ0KGtleSwgdmFsdWUsIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIC8vIEluc2VydCBlbGVtZW50IGluIEhhc2h0YWJsZVxyXG4gIHByaXZhdGUgSW5zZXJ0KGtleTogVEtleSwgdmFsdWU6IFRWYWx1ZSwgYWRkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBsZXQgYnVja2V0SW5kZXggPSB0aGlzLkdldEJ1Y2tldEluZGV4KGtleSk7XHJcblxyXG4gICAgaWYgKHR5cGVvZiB0aGlzLl9idWNrZXRzW2J1Y2tldEluZGV4XSA9PT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICB0aGlzLl9idWNrZXRzW2J1Y2tldEluZGV4XSA9IDxCdWNrZXQ8VEtleSwgVFZhbHVlPj48dW5rbm93bj5bXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5fYnVja2V0c1tidWNrZXRJbmRleF0uZmluZCh4ID0+IHgua2V5ID09PSBrZXkpKSB7XHJcbiAgICAgIGlmIChhZGQpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJdGVtIHdpdGggcHJvdmlkZWQga2V5IGFscmVhZHkgZXhpc3RzIScpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuUmVtb3ZlKGtleSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fYnVja2V0c1tidWNrZXRJbmRleF0ucHVzaCh7a2V5OiBrZXksIHZhbHVlOiB2YWx1ZX0pO1xyXG5cclxuICAgIHRoaXMuX2VsZW1lbnRzQ291bnQrKztcclxuICAgIGlmICh0aGlzLl9lbGVtZW50c0NvdW50ID4gdGhpcy5fYnVja2V0Q291bnQgKiB0aGlzLl9sb2FkRmFjdG9yKSB7XHJcbiAgICAgIHRoaXMuUmVzaXplKHRoaXMuX2J1Y2tldENvdW50ICogMik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuLy8gR2V0cyB2YWx1ZSBmb3Iga2V5IFRLZXlcclxuICBnZXRfSXRlbShrZXk6IFRLZXkpOiBUVmFsdWUge1xyXG4gICAgbGV0IGJ1Y2tldEluZGV4ID0gdGhpcy5HZXRCdWNrZXRJbmRleChrZXkpO1xyXG4gICAgbGV0IGJ1Y2tldCA9IHRoaXMuX2J1Y2tldHNbYnVja2V0SW5kZXhdO1xyXG4gICAgaWYgKCFidWNrZXQpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGl0ZW0gPSBidWNrZXQuZmluZCh4ID0+IHgua2V5ID09PSBrZXkpO1xyXG4gICAgaWYgKGl0ZW0pIHtcclxuICAgICAgcmV0dXJuIGl0ZW0udmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvLyBSZXR1cm5zIGlmIGtleSBUS2V5IGlzIHByZXNlbnQgaW4gSGFzaHRhYmxlXHJcbiAgQ29udGFpbnNLZXkoa2V5OiBUS2V5KTogYm9vbGVhbiB7XHJcbiAgICBsZXQgYnVja2V0SW5kZXggPSB0aGlzLkdldEJ1Y2tldEluZGV4KGtleSk7XHJcbiAgICBsZXQgYnVja2V0ID0gdGhpcy5fYnVja2V0c1tidWNrZXRJbmRleF07XHJcbiAgICBpZiAoIWJ1Y2tldCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGl0ZW1JbmRleCA9IGJ1Y2tldC5maW5kSW5kZXgoeCA9PiB4LmtleSA9PT0ga2V5KTtcclxuICAgIHJldHVybiAoaXRlbUluZGV4ID4gLTEpO1xyXG4gIH1cclxuXHJcbiAgLy8gUmVtb3ZlcyBpdGVtIHdpdGgga2V5IFRLZXkgZnJvbSBIYXNodGFibGVcclxuICBSZW1vdmUoa2V5OiBUS2V5KSB7XHJcbiAgICBsZXQgYnVja2V0SW5kZXggPSB0aGlzLkdldEJ1Y2tldEluZGV4KGtleSk7XHJcbiAgICBsZXQgYnVja2V0ID0gdGhpcy5fYnVja2V0c1tidWNrZXRJbmRleF07XHJcbiAgICBpZiAoIWJ1Y2tldCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGl0ZW1JbmRleCA9IGJ1Y2tldC5maW5kSW5kZXgoeCA9PiB4LmtleSA9PT0ga2V5KTtcclxuICAgIGlmIChpdGVtSW5kZXggPiAtMSkge1xyXG4gICAgICBidWNrZXQuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgIHRoaXMuX2VsZW1lbnRzQ291bnQtLTtcclxuICAgICAgaWYgKHRoaXMuX2VsZW1lbnRzQ291bnQgPD0gdGhpcy5fYnVja2V0Q291bnQgKiAoMSAtIHRoaXMuX2xvYWRGYWN0b3IpKSB7XHJcbiAgICAgICAgdGhpcy5SZXNpemUodGhpcy5fYnVja2V0Q291bnQgLyAyKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gUmVzaXplIGJ1Y2tldCAoSGFzaHRhYmxlKVxyXG4gIHByaXZhdGUgUmVzaXplKG5ld0J1Y2tldENvdW50OiBudW1iZXIpIHtcclxuICAgIGxldCBfb2xkQnVja2V0cyA9IHRoaXMuX2J1Y2tldHM7XHJcbiAgICB0aGlzLl9lbGVtZW50c0NvdW50ID0gMDtcclxuICAgIHRoaXMuX2J1Y2tldHMgPSBbXTtcclxuICAgIHRoaXMuX2J1Y2tldENvdW50ID0gbmV3QnVja2V0Q291bnQ7XHJcblxyXG4gICAgX29sZEJ1Y2tldHMuZm9yRWFjaChiID0+IGIuZm9yRWFjaChpdGVtID0+IHRoaXMuQWRkKGl0ZW0ua2V5LCBpdGVtLnZhbHVlKSkpO1xyXG4gIH1cclxuXHJcbi8vIHJldHVybnMgYnVja2V0SW5kZXggZm9yIGtleVxyXG4gIHByaXZhdGUgR2V0QnVja2V0SW5kZXgoa2V5OiBUS2V5KSB7XHJcbiAgICBsZXQgaGFzaCA9IHRoaXMuSGFzaEZ1bmN0aW9uKGtleSk7XHJcbiAgICBpZiAoaGFzaCAlIDEgIT09IDApIHtcclxuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignS2V5XFwncyBoYXNoIG11c3QgYmUgYW4gaW50ZWdlciEnKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgaW5kZXggPSBNYXRoLmFicyhoYXNoKSAlIHRoaXMuX2J1Y2tldENvdW50O1xyXG5cclxuICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gdGhpcy5fYnVja2V0Q291bnQpIHtcclxuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW5kZXggZXhjZWVkcyBidWNrZXQgYm91bmRhcmllcycpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpbmRleDtcclxuICB9XHJcblxyXG4vLyBDbGVhcnMgSGFzaHRhYmxlXHJcbiAgQ2xlYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9lbGVtZW50c0NvdW50ID0gMDtcclxuICAgIHRoaXMuX2J1Y2tldHMgPSBbXTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUNvbXBhcmFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL0lDb21wYXJhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElDb21wYXJhYmxlIHtcclxuICBDb21wYXJlVG8ob2JqOiBhbnkpOiBudW1iZXI7XHJcbn1cclxuIl19
@@ -0,0 +1,38 @@
1
+ import { Encoding } from "./Encoding";
2
+ export class ISO_8859_1_Encoding extends Encoding {
3
+ static ISO_8859_1 = new ISO_8859_1_Encoding("iso_8859-1");
4
+ constructor(label) {
5
+ super(label);
6
+ }
7
+ GetBytes(str) {
8
+ if (str === null)
9
+ throw new Error("Argument is null");
10
+ let bytes = null;
11
+ bytes = new Uint8Array(str.length * 3);
12
+ let bytesCount = 0;
13
+ for (let i = 0; i < str.length; i++) {
14
+ bytes[bytesCount++] = str[i].charCodeAt(0);
15
+ }
16
+ bytes = bytes.subarray(0, 0 + bytesCount);
17
+ return bytes;
18
+ }
19
+ GetString(bytes, index, count) {
20
+ let str = null;
21
+ if (bytes === null)
22
+ throw new Error("Argument is null");
23
+ if (index < 0 || count < 0 || (index + count) > bytes.length)
24
+ throw new Error("Argument out of range");
25
+ bytes = bytes.subarray(index, index + count);
26
+ try {
27
+ str = '';
28
+ for (let i = 0; i < bytes.length; i++) {
29
+ str += String.fromCharCode(bytes[i]);
30
+ }
31
+ ;
32
+ }
33
+ catch (ex) {
34
+ }
35
+ return str;
36
+ }
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVNPXzg4NTlfMV9FbmNvZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvSVNPXzg4NTlfMV9FbmNvZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBRXBDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxRQUFRO0lBRS9DLE1BQU0sQ0FBVSxVQUFVLEdBQXdCLElBQUksbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEYsWUFBWSxLQUFhO1FBQ3pCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBVztRQUVsQixJQUFJLEdBQUcsS0FBSyxJQUFJO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXRDLElBQUksS0FBSyxHQUFlLElBQUksQ0FBQztRQUU3QixLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2QyxJQUFJLFVBQVUsR0FBVyxDQUFDLENBQUM7UUFDM0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQ25DO1lBQ0UsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1QztRQUVELEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7UUFDMUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWlCLEVBQUUsS0FBYSxFQUFFLEtBQWE7UUFDdkQsSUFBSSxHQUFHLEdBQVcsSUFBSSxDQUFDO1FBRXZCLElBQUksS0FBSyxLQUFLLElBQUk7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXRDLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNO1lBQzFELE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUUzQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBRTdDLElBQUk7WUFFRixHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ1QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQ3JDO2dCQUNFLEdBQUcsSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3RDO1lBQUEsQ0FBQztTQUNIO1FBQ0QsT0FBTyxFQUFFLEVBQUU7U0FDVjtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RW5jb2Rpbmd9IGZyb20gXCIuL0VuY29kaW5nXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgSVNPXzg4NTlfMV9FbmNvZGluZyBleHRlbmRzIEVuY29kaW5nIHtcclxuXHJcbiAgc3RhdGljIHJlYWRvbmx5IElTT184ODU5XzE6IElTT184ODU5XzFfRW5jb2RpbmcgPSBuZXcgSVNPXzg4NTlfMV9FbmNvZGluZyhcImlzb184ODU5LTFcIik7XHJcbiAgY29uc3RydWN0b3IobGFiZWw6IHN0cmluZykge1xyXG4gIHN1cGVyKGxhYmVsKTtcclxuICB9XHJcblxyXG4gIEdldEJ5dGVzKHN0cjogc3RyaW5nKTogVWludDhBcnJheSB7XHJcblxyXG4gICAgaWYgKHN0ciA9PT0gbnVsbClcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXJndW1lbnQgaXMgbnVsbFwiKTtcclxuXHJcbiAgICBsZXQgYnl0ZXM6IFVpbnQ4QXJyYXkgPSBudWxsO1xyXG5cclxuICAgIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoc3RyLmxlbmd0aCAqIDMpO1xyXG4gICAgbGV0IGJ5dGVzQ291bnQ6IG51bWJlciA9IDA7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgYnl0ZXNbYnl0ZXNDb3VudCsrXSA9IHN0cltpXS5jaGFyQ29kZUF0KDApO1xyXG4gICAgfVxyXG5cclxuICAgIGJ5dGVzID0gYnl0ZXMuc3ViYXJyYXkoMCwgMCArIGJ5dGVzQ291bnQpO1xyXG4gICAgcmV0dXJuIGJ5dGVzO1xyXG4gIH1cclxuXHJcbiAgR2V0U3RyaW5nKGJ5dGVzOiBVaW50OEFycmF5LCBpbmRleDogbnVtYmVyLCBjb3VudDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGxldCBzdHI6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgaWYgKGJ5dGVzID09PSBudWxsKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcmd1bWVudCBpcyBudWxsXCIpO1xyXG5cclxuICAgIGlmIChpbmRleCA8IDAgfHwgY291bnQgPCAwIHx8IChpbmRleCArIGNvdW50KSA+IGJ5dGVzLmxlbmd0aClcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXJndW1lbnQgb3V0IG9mIHJhbmdlXCIpO1xyXG5cclxuICAgIGJ5dGVzID0gYnl0ZXMuc3ViYXJyYXkoaW5kZXgsIGluZGV4ICsgY291bnQpO1xyXG5cclxuICAgIHRyeSB7XHJcblxyXG4gICAgICBzdHIgPSAnJztcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKylcclxuICAgICAge1xyXG4gICAgICAgIHN0ciArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ5dGVzW2ldKTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGNhdGNoIChleCkge1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzdHI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export class Int32 {
2
+ static MinValue = -2147483648;
3
+ static MaxValue = 2147483647;
4
+ }
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW50MzIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL0ludDMyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxLQUFLO0lBQ2hCLE1BQU0sQ0FBQyxRQUFRLEdBQVcsQ0FBQyxVQUFVLENBQUM7SUFDdEMsTUFBTSxDQUFDLFFBQVEsR0FBVyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgSW50MzIge1xyXG4gIHN0YXRpYyBNaW5WYWx1ZTogbnVtYmVyID0gLTIxNDc0ODM2NDg7XHJcbiAgc3RhdGljIE1heFZhbHVlOiBudW1iZXIgPSAyMTQ3NDgzNjQ3O1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export class Int64 {
2
+ static MinValue = -9223372036854775808;
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW50NjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL0ludDY0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxLQUFLO0lBQ2hCLE1BQU0sQ0FBQyxRQUFRLEdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBJbnQ2NCB7XHJcbiAgc3RhdGljIE1pblZhbHVlOiBudW1iZXIgPSAtOTIyMzM3MjAzNjg1NDc3NTgwODtcclxufVxyXG4iXX0=
@@ -1,87 +1,87 @@
1
- import { Array_Enumerator } from "./ArrayEnumerator";
2
- import { isUndefined } from "./Utils";
3
- export class List extends Array {
4
- constructor(arrayEnumerator) {
5
- super();
6
- Object.setPrototypeOf(this, List.prototype);
7
- if (arguments.length === 1 && arrayEnumerator.constructor === Array_Enumerator) {
8
- this.AddRange(arrayEnumerator);
9
- }
10
- }
11
- AddRange(arrayEnumeratorOrArray) {
12
- if (arrayEnumeratorOrArray.constructor === Array) {
13
- arrayEnumeratorOrArray.forEach((item) => {
14
- this.push(item);
15
- });
16
- }
17
- else {
18
- let e = arrayEnumeratorOrArray;
19
- while (e.MoveNext()) {
20
- this.push(e.Current);
21
- }
22
- }
23
- }
24
- get_Item(index) {
25
- if (isUndefined(this[index]))
26
- this[index] = null;
27
- return this[index];
28
- }
29
- set_Item(index, value) {
30
- if (index >= 0 && index < this.length)
31
- this[index] = value;
32
- else
33
- throw new Error("index out of bounds");
34
- }
35
- GetEnumerator() {
36
- return new Array_Enumerator(this);
37
- }
38
- Remove(object) {
39
- let index = this.indexOf(object);
40
- if (index > -1)
41
- this.RemoveAt(index);
42
- }
43
- RemoveAt(index) {
44
- this.RemoveRange(index, 1);
45
- }
46
- RemoveRange(index, count) {
47
- this.splice(index, count);
48
- }
49
- Insert(index, item) {
50
- if (index >= 0 && index < this.length)
51
- this.splice(index, 0, item);
52
- else if (index === this.length)
53
- this.push(item);
54
- else
55
- throw new Error("index out of bounds");
56
- }
57
- InsertRange(items) {
58
- let idx = 0;
59
- while (idx < items.length) {
60
- this.Insert(idx, items[idx]);
61
- idx++;
62
- }
63
- }
64
- Clear() {
65
- this.splice(0, this.length);
66
- }
67
- ToArray() {
68
- return this.slice(0);
69
- }
70
- Contains(object) {
71
- return this.indexOf(object) > -1;
72
- }
73
- find(predicate) {
74
- let foundItem = super.find(predicate);
75
- if (isUndefined(foundItem))
76
- foundItem = null;
77
- return foundItem;
78
- }
79
- SetSize(size) {
80
- if (this.length > size) {
81
- this.RemoveRange(size, this.length - size);
82
- }
83
- else
84
- this.length = size;
85
- }
86
- }
1
+ import { Array_Enumerator } from "./ArrayEnumerator";
2
+ import { isUndefined } from "./Utils";
3
+ export class List extends Array {
4
+ constructor(arrayEnumerator) {
5
+ super();
6
+ Object.setPrototypeOf(this, List.prototype);
7
+ if (arguments.length === 1 && arrayEnumerator.constructor === Array_Enumerator) {
8
+ this.AddRange(arrayEnumerator);
9
+ }
10
+ }
11
+ AddRange(arrayEnumeratorOrArray) {
12
+ if (arrayEnumeratorOrArray.constructor === Array) {
13
+ arrayEnumeratorOrArray.forEach((item) => {
14
+ this.push(item);
15
+ });
16
+ }
17
+ else {
18
+ let e = arrayEnumeratorOrArray;
19
+ while (e.MoveNext()) {
20
+ this.push(e.Current);
21
+ }
22
+ }
23
+ }
24
+ get_Item(index) {
25
+ if (isUndefined(this[index]))
26
+ this[index] = null;
27
+ return this[index];
28
+ }
29
+ set_Item(index, value) {
30
+ if (index >= 0 && index < this.length)
31
+ this[index] = value;
32
+ else
33
+ throw new Error("index out of bounds");
34
+ }
35
+ GetEnumerator() {
36
+ return new Array_Enumerator(this);
37
+ }
38
+ Remove(object) {
39
+ let index = this.indexOf(object);
40
+ if (index > -1)
41
+ this.RemoveAt(index);
42
+ }
43
+ RemoveAt(index) {
44
+ this.RemoveRange(index, 1);
45
+ }
46
+ RemoveRange(index, count) {
47
+ this.splice(index, count);
48
+ }
49
+ Insert(index, item) {
50
+ if (index >= 0 && index < this.length)
51
+ this.splice(index, 0, item);
52
+ else if (index === this.length)
53
+ this.push(item);
54
+ else
55
+ throw new Error("index out of bounds");
56
+ }
57
+ InsertRange(items) {
58
+ let idx = 0;
59
+ while (idx < items.length) {
60
+ this.Insert(idx, items[idx]);
61
+ idx++;
62
+ }
63
+ }
64
+ Clear() {
65
+ this.splice(0, this.length);
66
+ }
67
+ ToArray() {
68
+ return this.slice(0);
69
+ }
70
+ Contains(object) {
71
+ return this.indexOf(object) > -1;
72
+ }
73
+ find(predicate) {
74
+ let foundItem = super.find(predicate);
75
+ if (isUndefined(foundItem))
76
+ foundItem = null;
77
+ return foundItem;
78
+ }
79
+ SetSize(size) {
80
+ if (this.length > size) {
81
+ this.RemoveRange(size, this.length - size);
82
+ }
83
+ else
84
+ this.length = size;
85
+ }
86
+ }
87
87
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvTGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBRXBDLE1BQU0sT0FBTyxJQUFTLFNBQVEsS0FBUTtJQUVwQyxZQUFZLGVBQXFDO1FBQy9DLEtBQUssRUFBRSxDQUFDO1FBQ1IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTVDLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksZUFBZSxDQUFDLFdBQVcsS0FBSyxnQkFBZ0IsRUFBRTtZQUM5RSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUlELFFBQVEsQ0FBQyxzQkFBMkI7UUFDbEMsSUFBSSxzQkFBc0IsQ0FBQyxXQUFXLEtBQUssS0FBSyxFQUFFO1lBQ2hELHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQU8sRUFBRSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFDSTtZQUNILElBQUksQ0FBQyxHQUFHLHNCQUFzQixDQUFDO1lBQy9CLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN0QjtTQUNGO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYSxFQUFFLEtBQVE7UUFDOUIsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTTtZQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDOztZQUVwQixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksZ0JBQWdCLENBQUksSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFTO1FBQ2QsSUFBSSxLQUFLLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV6QyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYSxFQUFFLElBQU87UUFDM0IsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTTtZQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDekIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLE1BQU07WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzs7WUFFaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLEdBQUcsR0FBVyxDQUFDLENBQUM7UUFDcEIsT0FBTyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM3QixHQUFHLEVBQUUsQ0FBQztTQUNQO0lBQ0gsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxDQUFDLFNBQXlEO1FBQzVELElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEMsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDO1lBQ3hCLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFFbkIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQU1ELE9BQU8sQ0FBQyxJQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQztTQUM1Qzs7WUFFQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FycmF5X0VudW1lcmF0b3J9IGZyb20gXCIuL0FycmF5RW51bWVyYXRvclwiO1xyXG5pbXBvcnQge2lzVW5kZWZpbmVkfSBmcm9tIFwiLi9VdGlsc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIExpc3Q8VD4gIGV4dGVuZHMgQXJyYXk8VD4ge1xyXG5cclxuICBjb25zdHJ1Y3RvcihhcnJheUVudW1lcmF0b3I/OiBBcnJheV9FbnVtZXJhdG9yPFQ+KSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIExpc3QucHJvdG90eXBlKTtcclxuXHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSAmJiBhcnJheUVudW1lcmF0b3IuY29uc3RydWN0b3IgPT09IEFycmF5X0VudW1lcmF0b3IpIHtcclxuICAgICAgdGhpcy5BZGRSYW5nZShhcnJheUVudW1lcmF0b3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQWRkUmFuZ2UoYXJyYXlFbnVtZXJhdG9yOiBBcnJheV9FbnVtZXJhdG9yPFQ+KVxyXG4gIEFkZFJhbmdlKGFycmF5OiBBcnJheTxUPilcclxuICBBZGRSYW5nZShhcnJheUVudW1lcmF0b3JPckFycmF5OiBhbnkpIHtcclxuICAgIGlmIChhcnJheUVudW1lcmF0b3JPckFycmF5LmNvbnN0cnVjdG9yID09PSBBcnJheSkge1xyXG4gICAgICBhcnJheUVudW1lcmF0b3JPckFycmF5LmZvckVhY2goKGl0ZW06IFQpID0+IHtcclxuICAgICAgICB0aGlzLnB1c2goaXRlbSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBlID0gYXJyYXlFbnVtZXJhdG9yT3JBcnJheTtcclxuICAgICAgd2hpbGUgKGUuTW92ZU5leHQoKSkge1xyXG4gICAgICAgIHRoaXMucHVzaChlLkN1cnJlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRfSXRlbShpbmRleDogbnVtYmVyKTogVCB7XHJcbiAgICBpZiAoaXNVbmRlZmluZWQodGhpc1tpbmRleF0pKVxyXG4gICAgICB0aGlzW2luZGV4XSA9IG51bGw7XHJcbiAgICByZXR1cm4gdGhpc1tpbmRleF07XHJcbiAgfVxyXG5cclxuICBzZXRfSXRlbShpbmRleDogbnVtYmVyLCB2YWx1ZTogVCk6IHZvaWQge1xyXG4gICAgaWYgKGluZGV4ID49IDAgJiYgaW5kZXggPCB0aGlzLmxlbmd0aClcclxuICAgICAgdGhpc1tpbmRleF0gPSB2YWx1ZTtcclxuICAgIGVsc2VcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiKTtcclxuICB9XHJcblxyXG4gIEdldEVudW1lcmF0b3IoKTogQXJyYXlfRW51bWVyYXRvcjxUPiB7XHJcbiAgICByZXR1cm4gbmV3IEFycmF5X0VudW1lcmF0b3I8VD4odGhpcyk7XHJcbiAgfVxyXG5cclxuICBSZW1vdmUob2JqZWN0OiBUKTogdm9pZCB7XHJcbiAgICBsZXQgaW5kZXg6IG51bWJlciA9IHRoaXMuaW5kZXhPZihvYmplY3QpO1xyXG5cclxuICAgIGlmIChpbmRleCA+IC0xKVxyXG4gICAgICB0aGlzLlJlbW92ZUF0KGluZGV4KTtcclxuICB9XHJcblxyXG4gIFJlbW92ZUF0KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuUmVtb3ZlUmFuZ2UoaW5kZXgsIDEpO1xyXG4gIH1cclxuXHJcbiAgUmVtb3ZlUmFuZ2UoaW5kZXg6IG51bWJlciwgY291bnQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5zcGxpY2UoaW5kZXgsIGNvdW50KTtcclxuICB9XHJcblxyXG4gIEluc2VydChpbmRleDogbnVtYmVyLCBpdGVtOiBUKTogdm9pZCB7XHJcbiAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMubGVuZ3RoKVxyXG4gICAgICB0aGlzLnNwbGljZShpbmRleCwgMCwgaXRlbSk7XHJcbiAgICBlbHNlIGlmIChpbmRleCA9PT0gdGhpcy5sZW5ndGgpIC8vIGluc2VydGluZyBhdCBlbmQgbWVhbnMgYXBwZW5kXHJcbiAgICAgIHRoaXMucHVzaChpdGVtKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiKTtcclxuICB9XHJcblxyXG4gIEluc2VydFJhbmdlKGl0ZW1zOiBUW10pOiB2b2lkIHtcclxuICAgIGxldCBpZHg6IG51bWJlciA9IDA7XHJcbiAgICB3aGlsZSAoaWR4IDwgaXRlbXMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuSW5zZXJ0KGlkeCwgaXRlbXNbaWR4XSk7XHJcbiAgICAgIGlkeCsrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQ2xlYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNwbGljZSgwLCB0aGlzLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuICBUb0FycmF5KCk6IFRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5zbGljZSgwKTtcclxuICB9XHJcblxyXG4gIENvbnRhaW5zKG9iamVjdDogVCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5kZXhPZihvYmplY3QpID4gLTE7XHJcbiAgfVxyXG5cclxuICBmaW5kKHByZWRpY2F0ZTogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBvYmo6IFRbXSkgPT4gYm9vbGVhbik6IFQge1xyXG4gICAgbGV0IGZvdW5kSXRlbSA9IHN1cGVyLmZpbmQocHJlZGljYXRlKTtcclxuICAgIGlmIChpc1VuZGVmaW5lZChmb3VuZEl0ZW0pKVxyXG4gICAgICBmb3VuZEl0ZW0gPSBudWxsO1xyXG5cclxuICAgIHJldHVybiBmb3VuZEl0ZW07XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGFkZCBudWxsIGNlbGxzIHVwIHRvICdzaXplJyBjZWxscy5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInNpemVcIj48L3BhcmFtPlxyXG4gIFNldFNpemUoc2l6ZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5sZW5ndGggPiBzaXplKSB7XHJcbiAgICAgIHRoaXMuUmVtb3ZlUmFuZ2Uoc2l6ZSwgdGhpcy5sZW5ndGggLSBzaXplKTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5sZW5ndGggPSBzaXplO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,25 +1,25 @@
1
- import { isAsciiLetter, isDigit, isLowerCase, isUpperCase, isWhitespace } from "./StringUtils";
2
- export class NChar {
3
- static IsWhiteSpace(str) {
4
- let ch = str.charCodeAt(0);
5
- return isWhitespace(ch);
6
- }
7
- static IsLetterOrDigit(str) {
8
- let ch = str.charCodeAt(0);
9
- return isDigit(ch) || isAsciiLetter(ch);
10
- }
11
- static IsDigit(str) {
12
- let ch = str.charCodeAt(0);
13
- return isDigit(ch);
14
- }
15
- static IsLetter(ltr) {
16
- return isAsciiLetter(ltr.charCodeAt(0));
17
- }
18
- static IsLower(ch) {
19
- return isLowerCase(ch);
20
- }
21
- static IsUpper(ch) {
22
- return isUpperCase(ch);
23
- }
24
- }
1
+ import { isAsciiLetter, isDigit, isLowerCase, isUpperCase, isWhitespace } from "./StringUtils";
2
+ export class NChar {
3
+ static IsWhiteSpace(str) {
4
+ let ch = str.charCodeAt(0);
5
+ return isWhitespace(ch);
6
+ }
7
+ static IsLetterOrDigit(str) {
8
+ let ch = str.charCodeAt(0);
9
+ return isDigit(ch) || isAsciiLetter(ch);
10
+ }
11
+ static IsDigit(str) {
12
+ let ch = str.charCodeAt(0);
13
+ return isDigit(ch);
14
+ }
15
+ static IsLetter(ltr) {
16
+ return isAsciiLetter(ltr.charCodeAt(0));
17
+ }
18
+ static IsLower(ch) {
19
+ return isLowerCase(ch);
20
+ }
21
+ static IsUpper(ch) {
22
+ return isUpperCase(ch);
23
+ }
24
+ }
25
25
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTkNoYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL05DaGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTdGLE1BQU0sT0FBTyxLQUFLO0lBQ2hCLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBVztRQUM3QixJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLE9BQU8sWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQVc7UUFDaEMsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixPQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBVztRQUN4QixJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLE9BQU8sT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQVc7UUFDekIsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQVU7UUFDdkIsT0FBTyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBVTtRQUN2QixPQUFPLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUN4QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuXHJcbmltcG9ydCB7aXNBc2NpaUxldHRlciwgaXNEaWdpdCwgaXNMb3dlckNhc2UsIGlzVXBwZXJDYXNlLCBpc1doaXRlc3BhY2V9IGZyb20gXCIuL1N0cmluZ1V0aWxzXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgTkNoYXIge1xyXG4gIHN0YXRpYyBJc1doaXRlU3BhY2Uoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGxldCBjaCA9IHN0ci5jaGFyQ29kZUF0KDApO1xyXG4gICAgcmV0dXJuIGlzV2hpdGVzcGFjZShjaCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgSXNMZXR0ZXJPckRpZ2l0KHN0cjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgY2ggPSBzdHIuY2hhckNvZGVBdCgwKTtcclxuICAgIHJldHVybiBpc0RpZ2l0KGNoKSB8fCBpc0FzY2lpTGV0dGVyKGNoKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBJc0RpZ2l0KHN0cjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgY2ggPSBzdHIuY2hhckNvZGVBdCgwKTtcclxuICAgIHJldHVybiBpc0RpZ2l0KGNoKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBJc0xldHRlcihsdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGlzQXNjaWlMZXR0ZXIobHRyLmNoYXJDb2RlQXQoMCkpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIElzTG93ZXIoY2g6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGlzTG93ZXJDYXNlKGNoKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBJc1VwcGVyKGNoOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBpc1VwcGVyQ2FzZShjaClcclxuICB9XHJcbn1cclxuIl19
@@ -1,28 +1,28 @@
1
- import { NotImplementedException } from "./NotImplementedException";
2
- export var NumberStyles;
3
- (function (NumberStyles) {
4
- NumberStyles[NumberStyles["HexNumber"] = 0] = "HexNumber";
5
- })(NumberStyles || (NumberStyles = {}));
6
- export class NNumber {
7
- static Parse(text, style) {
8
- if (arguments.length === 2) {
9
- if (style === NumberStyles.HexNumber)
10
- return parseInt(text, 16);
11
- else
12
- throw new NotImplementedException();
13
- }
14
- return +text;
15
- }
16
- static TryParse(str, pvalue) {
17
- pvalue.value = +str;
18
- return !isNaN(pvalue.value);
19
- }
20
- static ToString(num, format) {
21
- if (format === 'X2') {
22
- let res = num.toString(16);
23
- return res.length === 1 ? '0' + res : res;
24
- }
25
- throw new NotImplementedException();
26
- }
27
- }
1
+ import { NotImplementedException } from "./NotImplementedException";
2
+ export var NumberStyles;
3
+ (function (NumberStyles) {
4
+ NumberStyles[NumberStyles["HexNumber"] = 0] = "HexNumber";
5
+ })(NumberStyles || (NumberStyles = {}));
6
+ export class NNumber {
7
+ static Parse(text, style) {
8
+ if (arguments.length === 2) {
9
+ if (style === NumberStyles.HexNumber)
10
+ return parseInt(text, 16);
11
+ else
12
+ throw new NotImplementedException();
13
+ }
14
+ return +text;
15
+ }
16
+ static TryParse(str, pvalue) {
17
+ pvalue.value = +str;
18
+ return !isNaN(pvalue.value);
19
+ }
20
+ static ToString(num, format) {
21
+ if (format === 'X2') {
22
+ let res = num.toString(16);
23
+ return res.length === 1 ? '0' + res : res;
24
+ }
25
+ throw new NotImplementedException();
26
+ }
27
+ }
28
28
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTk51bWJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvTk51bWJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUVsRSxNQUFNLENBQU4sSUFBWSxZQUVYO0FBRkQsV0FBWSxZQUFZO0lBQ3RCLHlEQUFTLENBQUE7QUFDWCxDQUFDLEVBRlcsWUFBWSxLQUFaLFlBQVksUUFFdkI7QUFFRCxNQUFNLE9BQU8sT0FBTztJQU9sQixNQUFNLENBQUMsS0FBSyxDQUFDLElBQVksRUFBRSxLQUFvQjtRQUM3QyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzFCLElBQUksS0FBSyxLQUFLLFlBQVksQ0FBQyxTQUFTO2dCQUNsQyxPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7O2dCQUUxQixNQUFNLElBQUksdUJBQXVCLEVBQUUsQ0FBQztTQUN2QztRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDZixDQUFDO0lBUUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFXLEVBQUUsTUFBd0I7UUFDbkQsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQztRQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBS0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFXLEVBQUUsTUFBYztRQUN6QyxJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDbkIsSUFBSSxHQUFHLEdBQVcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNuQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7U0FDM0M7UUFDRCxNQUFNLElBQUksdUJBQXVCLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlZlBhcmFtfSBmcm9tIFwiLi9SZWZQYXJhbVwiO1xyXG5pbXBvcnQge05vdEltcGxlbWVudGVkRXhjZXB0aW9ufSBmcm9tIFwiLi9Ob3RJbXBsZW1lbnRlZEV4Y2VwdGlvblwiO1xyXG5cclxuZXhwb3J0IGVudW0gTnVtYmVyU3R5bGVzIHtcclxuICBIZXhOdW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE5OdW1iZXIge1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICBjb252ZXJ0IGEgc3RyaW5nIHRvIG51bWJlclxyXG4gIC8vLyBmb3IgYmxhbmsgc3RyaW5nICwgaXQgd2lsbCByZXR1cm4gMFxyXG4gIC8vLyAgZm9yIGluY29ycmVjdCBmb3JtYXQgaXQgd2lsbCByZXR1cm4gTmFOXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIHN0YXRpYyBQYXJzZSh0ZXh0OiBzdHJpbmcsIHN0eWxlPzogTnVtYmVyU3R5bGVzKTogbnVtYmVyIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgIGlmIChzdHlsZSA9PT0gTnVtYmVyU3R5bGVzLkhleE51bWJlcilcclxuICAgICAgICByZXR1cm4gcGFyc2VJbnQodGV4dCwgMTYpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXhjZXB0aW9uKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gK3RleHQ7IC8vIHVzZSB1bmFyeSArIG9wZXJhdG9yIHRvIGNvbnZlcnQgc3RyaW5nICB0byBudW1iZXIuXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgY29udmVydCBhIHN0cmluZyB0byBudW1iZXJcclxuICAvLy8gIHJldHVybiB0cnVlIGlmIHN0cmluZyBpcyBjb3JyZWN0bHkgcGFyc2VkIGkuZSBwdmFsdWUudmFsdWUgaXMgbnVtYmVyXHJcbiAgLy8vICBmb3IgaW5jb3JyZWN0IGZvcm1hdCBpdCB3aWxsIHJldHVybiBmYWxzZVxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICBzdGF0aWMgVHJ5UGFyc2Uoc3RyOiBzdHJpbmcsIHB2YWx1ZTogUmVmUGFyYW08bnVtYmVyPik6IGJvb2xlYW4ge1xyXG4gICAgcHZhbHVlLnZhbHVlID0gK3N0cjtcclxuICAgIHJldHVybiAhaXNOYU4ocHZhbHVlLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gIGNvbnZlcnQgYSBudW1iZXIgdG8gc3RyaW5nIHdpdGggc3BlY2lmaWVkIGZvcm1hdFxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICBzdGF0aWMgVG9TdHJpbmcobnVtOiBudW1iZXIsIGZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmIChmb3JtYXQgPT09ICdYMicpIHtcclxuICAgICAgbGV0IHJlczogc3RyaW5nID0gbnVtLnRvU3RyaW5nKDE2KTtcclxuICAgICAgcmV0dXJuIHJlcy5sZW5ndGggPT09IDEgPyAnMCcgKyByZXMgOiByZXM7XHJcbiAgICB9XHJcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFeGNlcHRpb24oKTtcclxuICB9XHJcbn1cclxuIl19