@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.
- package/README.md +7 -7
- package/{esm2020 → esm2022}/index.mjs +32 -32
- package/{esm2020 → esm2022}/magic-xpa-mscorelib.mjs +1 -1
- package/esm2022/src/ApplicationException.mjs +12 -0
- package/esm2022/src/ArrayEnumerator.mjs +17 -0
- package/esm2022/src/BitArray.mjs +16 -0
- package/esm2022/src/Char.mjs +5 -0
- package/esm2022/src/CultureInfo.mjs +4 -0
- package/esm2022/src/DateTime.mjs +75 -0
- package/{esm2020 → esm2022}/src/Debug.mjs +9 -9
- package/esm2022/src/Dictionary.mjs +39 -0
- package/esm2022/src/Encoding.mjs +114 -0
- package/{esm2020 → esm2022}/src/Exception.mjs +32 -32
- package/esm2022/src/HashTable.mjs +157 -0
- package/{esm2020 → esm2022}/src/IComparable.mjs +1 -1
- package/esm2022/src/ISO_8859_1_Encoding.mjs +38 -0
- package/esm2022/src/Int32.mjs +5 -0
- package/esm2022/src/Int64.mjs +4 -0
- package/{esm2020 → esm2022}/src/List.mjs +86 -86
- package/{esm2020 → esm2022}/src/NChar.mjs +24 -24
- package/{esm2020 → esm2022}/src/NNumber.mjs +27 -27
- package/esm2022/src/NString.mjs +149 -0
- package/{esm2020 → esm2022}/src/NotImplementedException.mjs +6 -6
- package/esm2022/src/NumberFormatInfo.mjs +8 -0
- package/{esm2020 → esm2022}/src/RefParam.mjs +7 -6
- package/esm2022/src/Stack.mjs +35 -0
- package/esm2022/src/StackFrame.mjs +14 -0
- package/{esm2020 → esm2022}/src/StackTrace.mjs +6 -6
- package/{esm2020 → esm2022}/src/StringBuilder.mjs +112 -112
- package/{esm2020 → esm2022}/src/StringUtils.mjs +76 -76
- package/esm2022/src/Thread.mjs +16 -0
- package/{esm2020 → esm2022}/src/Utils.mjs +6 -6
- package/{esm2020 → esm2022}/src/WebException.mjs +9 -9
- package/{esm2020 → esm2022}/src/XmlConvert.mjs +6 -6
- package/{fesm2020 → fesm2022}/magic-xpa-mscorelib.mjs +1049 -1047
- package/{fesm2020 → fesm2022}/magic-xpa-mscorelib.mjs.map +1 -1
- package/index.d.ts +31 -31
- package/package.json +6 -12
- package/src/ApplicationException.d.ts +5 -5
- package/src/ArrayEnumerator.d.ts +11 -11
- package/src/BitArray.d.ts +7 -7
- package/src/Char.d.ts +4 -4
- package/src/CultureInfo.d.ts +3 -3
- package/src/DateTime.d.ts +26 -26
- package/src/Debug.d.ts +4 -4
- package/src/Dictionary.d.ts +11 -11
- package/src/Encoding.d.ts +16 -16
- package/src/Exception.d.ts +11 -11
- package/src/HashTable.d.ts +28 -28
- package/src/IComparable.d.ts +3 -3
- package/src/ISO_8859_1_Encoding.d.ts +7 -7
- package/src/Int32.d.ts +4 -4
- package/src/Int64.d.ts +3 -3
- package/src/List.d.ts +19 -19
- package/src/NChar.d.ts +8 -8
- package/src/NNumber.d.ts +9 -9
- package/src/NString.d.ts +23 -23
- package/src/NotImplementedException.d.ts +4 -4
- package/src/NumberFormatInfo.d.ts +5 -5
- package/src/RefParam.d.ts +4 -4
- package/src/Stack.d.ts +11 -11
- package/src/StackFrame.d.ts +5 -5
- package/src/StackTrace.d.ts +5 -5
- package/src/StringBuilder.d.ts +25 -25
- package/src/StringUtils.d.ts +64 -64
- package/src/Thread.d.ts +7 -7
- package/src/Utils.d.ts +2 -2
- package/src/WebException.d.ts +4 -4
- package/src/XmlConvert.d.ts +3 -3
- package/esm2020/src/ApplicationException.mjs +0 -12
- package/esm2020/src/ArrayEnumerator.mjs +0 -16
- package/esm2020/src/BitArray.mjs +0 -16
- package/esm2020/src/Char.mjs +0 -5
- package/esm2020/src/CultureInfo.mjs +0 -4
- package/esm2020/src/DateTime.mjs +0 -75
- package/esm2020/src/Dictionary.mjs +0 -41
- package/esm2020/src/Encoding.mjs +0 -113
- package/esm2020/src/HashTable.mjs +0 -157
- package/esm2020/src/ISO_8859_1_Encoding.mjs +0 -38
- package/esm2020/src/Int32.mjs +0 -5
- package/esm2020/src/Int64.mjs +0 -4
- package/esm2020/src/NString.mjs +0 -149
- package/esm2020/src/NumberFormatInfo.mjs +0 -8
- package/esm2020/src/Stack.mjs +0 -34
- package/esm2020/src/StackFrame.mjs +0 -14
- package/esm2020/src/Thread.mjs +0 -16
- package/fesm2015/magic-xpa-mscorelib.mjs +0 -1108
- 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
|