@magic-xpa/mscorelib 4.1000.0 → 4.1100.0-dev000.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,149 @@
|
|
|
1
|
+
import { isNullOrUndefined } from "./Utils";
|
|
2
|
+
import { Exception } from "./Exception";
|
|
3
|
+
export class NString {
|
|
4
|
+
static Empty = "";
|
|
5
|
+
static IndexOf(str, searchStr, startIndex, count) {
|
|
6
|
+
let index = str.substr(startIndex, count).indexOf(searchStr);
|
|
7
|
+
return index > -1 ? startIndex + index : index;
|
|
8
|
+
}
|
|
9
|
+
static IndexOfAny(str, subs, startIndex, count) {
|
|
10
|
+
for (let i = 0; i < count; ++i) {
|
|
11
|
+
let c = str.charAt(startIndex + i);
|
|
12
|
+
for (let j = 0; j < subs.length; ++j) {
|
|
13
|
+
if (c === subs[j])
|
|
14
|
+
return (startIndex + i);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return -1;
|
|
18
|
+
}
|
|
19
|
+
static CopyTo(source, sourceIndex, destination, destinationIndex, count) {
|
|
20
|
+
for (let i = 0; i < count; i++) {
|
|
21
|
+
destination[destinationIndex + i] = source[sourceIndex + i];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
static Compare(strA, strB, ignoreCase, indexA, indexB, length) {
|
|
25
|
+
if (arguments.length = 6) {
|
|
26
|
+
strA = strA.substr(indexA, length);
|
|
27
|
+
strB = strB.substr(indexB, length);
|
|
28
|
+
}
|
|
29
|
+
if (ignoreCase) {
|
|
30
|
+
strA = strA.toLowerCase();
|
|
31
|
+
strB = strB.toLowerCase();
|
|
32
|
+
}
|
|
33
|
+
return strA.localeCompare(strB);
|
|
34
|
+
}
|
|
35
|
+
static Equals(strA, strB, ignoreCase) {
|
|
36
|
+
if (!NString.IsNullOrEmpty(strA) && !NString.IsNullOrEmpty(strB)) {
|
|
37
|
+
if (ignoreCase) {
|
|
38
|
+
strA = strA.toLowerCase();
|
|
39
|
+
strB = strB.toLowerCase();
|
|
40
|
+
}
|
|
41
|
+
return strA === strB;
|
|
42
|
+
}
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
static GetHashCode(str) {
|
|
46
|
+
var hash = 0, i, l, ch;
|
|
47
|
+
if (str.length === 0)
|
|
48
|
+
return hash;
|
|
49
|
+
for (i = 0, l = str.length; i < l; i++) {
|
|
50
|
+
ch = str.charCodeAt(i);
|
|
51
|
+
hash = ((hash << 5) - hash) + ch;
|
|
52
|
+
hash |= 0;
|
|
53
|
+
}
|
|
54
|
+
return hash;
|
|
55
|
+
}
|
|
56
|
+
static Remove(str, startIndex, length) {
|
|
57
|
+
return str.substr(0, startIndex - 1) + str.substr(startIndex + length - 1);
|
|
58
|
+
}
|
|
59
|
+
static TrimStart(str) {
|
|
60
|
+
return str.replace(/^\s\s*/, '');
|
|
61
|
+
}
|
|
62
|
+
static TrimEnd(string, trimChars) {
|
|
63
|
+
if (arguments.length === 1)
|
|
64
|
+
return string.replace(/\s\s*$/, '');
|
|
65
|
+
for (let j = 0; j < trimChars.length; j++) {
|
|
66
|
+
let trimChar = trimChars[j];
|
|
67
|
+
let i = string.length - 1;
|
|
68
|
+
while (!isNullOrUndefined(string[i]) && string[i].endsWith(trimChar)) {
|
|
69
|
+
string = NString.Remove(string, string.length, 1);
|
|
70
|
+
i--;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return string;
|
|
74
|
+
}
|
|
75
|
+
static Format(format, arg0, arg1, arg2, arg3, arg4, arg5) {
|
|
76
|
+
if (!isNullOrUndefined(arg0) && arg0.constructor === Array) {
|
|
77
|
+
var s = format, i = arg0.length;
|
|
78
|
+
while (i--) {
|
|
79
|
+
s = s.replace(new RegExp('\\{' + i + '\\}', 'gm'), arg0[i]);
|
|
80
|
+
}
|
|
81
|
+
return s;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
var args = [arg0, arg1, arg2, arg3, arg4, arg5];
|
|
85
|
+
return NString.Format(format, args);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
static IsNullOrEmpty(str1) {
|
|
89
|
+
return !str1;
|
|
90
|
+
}
|
|
91
|
+
static FromChars(chOrChars, startIndex, len) {
|
|
92
|
+
let str = chOrChars.join('');
|
|
93
|
+
if (arguments.length === 3)
|
|
94
|
+
return str.substr(startIndex, len);
|
|
95
|
+
return str;
|
|
96
|
+
}
|
|
97
|
+
static FromChar(ch, count) {
|
|
98
|
+
return (new Array(count).fill(ch)).join('');
|
|
99
|
+
}
|
|
100
|
+
static ToCharArray(str) {
|
|
101
|
+
return Array.from(str);
|
|
102
|
+
}
|
|
103
|
+
static CompareOrdinal(strA, strB) {
|
|
104
|
+
let lenA = strA.length;
|
|
105
|
+
let lenB = strB.length;
|
|
106
|
+
let len = Math.min(lenA, lenB);
|
|
107
|
+
for (let i = 0; i < len; i++) {
|
|
108
|
+
if (strA[i].charCodeAt(0) !== strB[i].charCodeAt(0)) {
|
|
109
|
+
return strA[i].charCodeAt(0) - strB[i].charCodeAt(0);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
if (lenA !== lenB) {
|
|
113
|
+
return lenA - lenB;
|
|
114
|
+
}
|
|
115
|
+
return 0;
|
|
116
|
+
}
|
|
117
|
+
static PadRight(source, maxLength, fillString) {
|
|
118
|
+
if (source.length >= maxLength)
|
|
119
|
+
return source;
|
|
120
|
+
let fillLen = maxLength - source.length;
|
|
121
|
+
let timesToRepeat = Math.ceil(fillLen / fillString.length);
|
|
122
|
+
let truncatedStringFiller = fillString.repeat(timesToRepeat).slice(0, fillLen);
|
|
123
|
+
return source + truncatedStringFiller;
|
|
124
|
+
}
|
|
125
|
+
static Insert(str, index, ch) {
|
|
126
|
+
return str.substr(0, index) + ch + str.substr(index, str.length - index);
|
|
127
|
+
}
|
|
128
|
+
static Replace(str, orgSubStr, newSubStr) {
|
|
129
|
+
let resultStr = '';
|
|
130
|
+
orgSubStr = orgSubStr.replace(new RegExp("\\\\", 'g'), "\\\\");
|
|
131
|
+
orgSubStr = orgSubStr.replace(new RegExp("\\*", 'g'), "\\\*");
|
|
132
|
+
orgSubStr = orgSubStr.replace(new RegExp("\\$", 'g'), "\\\$");
|
|
133
|
+
orgSubStr = orgSubStr.replace(new RegExp("\\^", 'g'), "\\\^");
|
|
134
|
+
orgSubStr = orgSubStr.replace(new RegExp("\\.", 'g'), "\\\.");
|
|
135
|
+
orgSubStr = orgSubStr.replace(new RegExp("\\?", 'g'), "\\\?");
|
|
136
|
+
orgSubStr = orgSubStr.replace(new RegExp("\\+", 'g'), "\\\+");
|
|
137
|
+
orgSubStr = orgSubStr.replace(new RegExp("\\,", 'g'), "\\\,");
|
|
138
|
+
orgSubStr = orgSubStr.replace(new RegExp("\\[", 'g'), "\\\[");
|
|
139
|
+
orgSubStr = orgSubStr.replace(new RegExp("\\|", 'g'), "\\\|");
|
|
140
|
+
try {
|
|
141
|
+
resultStr = str.replace(new RegExp(orgSubStr, 'g'), newSubStr);
|
|
142
|
+
}
|
|
143
|
+
catch (e) {
|
|
144
|
+
throw new Exception(e.message);
|
|
145
|
+
}
|
|
146
|
+
return resultStr;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTlN0cmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvTlN0cmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDMUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUl0QyxNQUFNLE9BQU8sT0FBTztJQUNoQixNQUFNLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUVsQixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVcsRUFBRSxTQUFjLEVBQUUsVUFBa0IsRUFBRSxLQUFhO1FBQ3pFLElBQUksS0FBSyxHQUFXLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRSxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ25ELENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQVcsRUFBRSxJQUFjLEVBQUUsVUFBa0IsRUFBRSxLQUFhO1FBQzVFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDNUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ2IsT0FBTyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUMvQjtTQUNKO1FB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QUFHLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFSCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVUsRUFBRSxTQUFpQixFQUFFLFNBQWlCO1FBQzdELElBQUksU0FBUyxHQUFVLEVBQUUsQ0FBQztRQUkxQixTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFN0QsSUFBSTtZQUNGLFNBQVMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUMvRDtRQUNELE9BQU8sQ0FBQyxFQUFFO1lBQ1IsTUFBTSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDaEM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7aXNOdWxsT3JVbmRlZmluZWR9IGZyb20gXCIuL1V0aWxzXCI7XHJcbmltcG9ydCB7RXhjZXB0aW9ufSBmcm9tIFwiLi9FeGNlcHRpb25cIjtcclxuXHJcblxyXG4vLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgTlN0cmluZyB7XHJcbiAgICBzdGF0aWMgRW1wdHkgPSBcIlwiO1xyXG5cclxuICAgIHN0YXRpYyBJbmRleE9mKHN0cjogc3RyaW5nLCBzZWFyY2hTdHI6IGFueSwgc3RhcnRJbmRleDogbnVtYmVyLCBjb3VudDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBsZXQgaW5kZXg6IG51bWJlciA9IHN0ci5zdWJzdHIoc3RhcnRJbmRleCwgY291bnQpLmluZGV4T2Yoc2VhcmNoU3RyKTtcclxuICAgICAgICByZXR1cm4gaW5kZXggPiAtMSA/IHN0YXJ0SW5kZXggKyBpbmRleCA6IGluZGV4O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBJbmRleE9mQW55KHN0cjogc3RyaW5nLCBzdWJzOiBzdHJpbmdbXSwgc3RhcnRJbmRleDogbnVtYmVyLCBjb3VudDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHtcclxuICAgICAgICAgICAgbGV0IGMgPSBzdHIuY2hhckF0KHN0YXJ0SW5kZXggKyBpKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBzdWJzLmxlbmd0aDsgKytqKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYyA9PT0gc3Vic1tqXSlcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHN0YXJ0SW5kZXggKyBpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gLTE7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIENvcHlUbyhzb3VyY2U6IHN0cmluZywgc291cmNlSW5kZXg6IG51bWJlciwgZGVzdGluYXRpb246IHN0cmluZ1tdLCBkZXN0aW5hdGlvbkluZGV4OiBudW1iZXIsIGNvdW50OiBudW1iZXIpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcclxuICAgICAgICAgICAgZGVzdGluYXRpb25bZGVzdGluYXRpb25JbmRleCArIGldID0gc291cmNlW3NvdXJjZUluZGV4ICsgaV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBDb21wYXJlKHN0ckE6IHN0cmluZywgc3RyQjogc3RyaW5nLCBpZ25vcmVDYXNlOiBib29sZWFuKTogbnVtYmVyXHJcbiAgICBzdGF0aWMgQ29tcGFyZShzdHJBOiBzdHJpbmcsIHN0ckI6IHN0cmluZywgaWdub3JlQ2FzZTogYm9vbGVhbiwgaW5kZXhBOiBudW1iZXIsIGluZGV4QjogbnVtYmVyLCBsZW5ndGg6IG51bWJlcik6IG51bWJlclxyXG4gICAgc3RhdGljIENvbXBhcmUoc3RyQTogc3RyaW5nLCBzdHJCOiBzdHJpbmcsIGlnbm9yZUNhc2U6IGJvb2xlYW4sIGluZGV4QT86IG51bWJlciwgaW5kZXhCPzogbnVtYmVyLCBsZW5ndGg/OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID0gNikge1xyXG4gICAgICAgICAgICBzdHJBID0gc3RyQS5zdWJzdHIoaW5kZXhBLCBsZW5ndGgpO1xyXG4gICAgICAgICAgICBzdHJCID0gc3RyQi5zdWJzdHIoaW5kZXhCLCBsZW5ndGgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaWdub3JlQ2FzZSkge1xyXG4gICAgICAgICAgICBzdHJBID0gc3RyQS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICBzdHJCID0gc3RyQi50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc3RyQS5sb2NhbGVDb21wYXJlKHN0ckIpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgc3RhdGljIEVxdWFscyhzdHJBOiBzdHJpbmcsIHN0ckI6IHN0cmluZywgaWdub3JlQ2FzZTogYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFOU3RyaW5nLklzTnVsbE9yRW1wdHkoc3RyQSkgJiYgIU5TdHJpbmcuSXNOdWxsT3JFbXB0eShzdHJCKSkge1xyXG4gICAgICBpZiAoaWdub3JlQ2FzZSkge1xyXG4gICAgICAgIHN0ckEgPSBzdHJBLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgc3RyQiA9IHN0ckIudG9Mb3dlckNhc2UoKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gc3RyQSA9PT0gc3RyQjtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gICAgc3RhdGljIEdldEhhc2hDb2RlKHN0cjogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgICAgICB2YXIgaGFzaCA9IDAsIGksIGwsIGNoO1xyXG4gICAgICAgIGlmIChzdHIubGVuZ3RoID09PSAwKSByZXR1cm4gaGFzaDtcclxuICAgICAgICBmb3IgKGkgPSAwLCBsID0gc3RyLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgICAgICBjaCA9IHN0ci5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICAgICAgICBoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCkgKyBjaDtcclxuICAgICAgICAgICAgaGFzaCB8PSAwOyAvLyBDb252ZXJ0IHRvIDMyYml0IGludGVnZXJcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGhhc2g7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHN0YXRpYyBSZW1vdmUoc3RyOiBzdHJpbmcsIHN0YXJ0SW5kZXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBzdHIuc3Vic3RyKDAsIHN0YXJ0SW5kZXggLSAxKSArIHN0ci5zdWJzdHIoc3RhcnRJbmRleCArIGxlbmd0aCAtIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBUcmltU3RhcnQoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZSgvXlxcc1xccyovLCAnJylcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgVHJpbUVuZChzdHJpbmc6IHN0cmluZywgdHJpbUNoYXJzPzogc3RyaW5nW10pOiBzdHJpbmcge1xyXG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKVxyXG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcc1xccyokLywgJycpO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRyaW1DaGFycy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgdHJpbUNoYXIgPSB0cmltQ2hhcnNbal07XHJcbiAgICAgICAgICAgIGxldCBpID0gc3RyaW5nLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgICAgIHdoaWxlICghaXNOdWxsT3JVbmRlZmluZWQoc3RyaW5nW2ldKSAmJiBzdHJpbmdbaV0uZW5kc1dpdGgodHJpbUNoYXIpKSB7XHJcbiAgICAgICAgICAgICAgICBzdHJpbmcgPSBOU3RyaW5nLlJlbW92ZShzdHJpbmcsIHN0cmluZy5sZW5ndGgsIDEpO1xyXG4gICAgICAgICAgICAgICAgaS0tO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBzdHJpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIEZvcm1hdChmb3JtYXQ6IHN0cmluZywgYXJnMDogYW55LCBhcmcxPzogYW55LCBhcmcyPzogYW55LCBhcmczPzogYW55LCBhcmc0PzogYW55LCBhcmc1PzogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGFyZzApICYmIGFyZzAuY29uc3RydWN0b3IgPT09IEFycmF5KSB7XHJcbiAgICAgICAgICAgIHZhciBzID0gZm9ybWF0LFxyXG4gICAgICAgICAgICAgICAgaSA9IGFyZzAubGVuZ3RoO1xyXG4gICAgICAgICAgICB3aGlsZSAoaS0tKSB7XHJcbiAgICAgICAgICAgICAgICBzID0gcy5yZXBsYWNlKG5ldyBSZWdFeHAoJ1xcXFx7JyArIGkgKyAnXFxcXH0nLCAnZ20nKSwgYXJnMFtpXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB2YXIgYXJncyA9IFthcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCBhcmc1XTtcclxuICAgICAgICAgICAgcmV0dXJuIE5TdHJpbmcuRm9ybWF0KGZvcm1hdCwgYXJncyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBJc051bGxPckVtcHR5KHN0cjE6IHN0cmluZyB8IE5TdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXN0cjE7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIEZyb21DaGFycyhjaE9yQ2hhcnM6IHN0cmluZ1tdKVxyXG4gICAgc3RhdGljIEZyb21DaGFycyhjaE9yQ2hhcnM6IHN0cmluZ1tdLCBzdGFydEluZGV4OiBudW1iZXIsIGxlbjogbnVtYmVyKVxyXG4gICAgc3RhdGljIEZyb21DaGFycyhjaE9yQ2hhcnM6IHN0cmluZ1tdLCBzdGFydEluZGV4PzogbnVtYmVyLCBsZW4/OiBudW1iZXIpIHtcclxuICAgICAgICBsZXQgc3RyOiBzdHJpbmcgPSBjaE9yQ2hhcnMuam9pbignJyk7XHJcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDMpXHJcbiAgICAgICAgICAgIHJldHVybiBzdHIuc3Vic3RyKHN0YXJ0SW5kZXgsIGxlbik7XHJcbiAgICAgICAgcmV0dXJuIHN0cjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgRnJvbUNoYXIoY2g6IHN0cmluZywgY291bnQpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAobmV3IEFycmF5PHN0cmluZz4oY291bnQpLmZpbGwoPHN0cmluZz5jaCkpLmpvaW4oJycpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBUb0NoYXJBcnJheShzdHI6IHN0cmluZyk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBDb21wYXJlT3JkaW5hbChzdHJBOiBzdHJpbmcsIHN0ckI6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICAgICAgbGV0IGxlbkEgPSBzdHJBLmxlbmd0aDtcclxuICAgICAgICBsZXQgbGVuQiA9IHN0ckIubGVuZ3RoO1xyXG5cclxuICAgICAgICBsZXQgbGVuID0gTWF0aC5taW4obGVuQSwgbGVuQik7XHJcblxyXG4gICAgICAgIC8vIGNvbXBhcmUgY2hhcmFjdGVyIGJ5IGNoYXJhY3RlclxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHN0ckFbaV0uY2hhckNvZGVBdCgwKSAhPT0gc3RyQltpXS5jaGFyQ29kZUF0KDApKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyQVtpXS5jaGFyQ29kZUF0KDApIC0gc3RyQltpXS5jaGFyQ29kZUF0KDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBpZiBhbGwgY2hhcmFjdGVycyBhcmUgc2FtZSAsIGJ1dCBsZW5ndGggaXMgZGlmZmVyZW50IHJldHVybiB0aGUgZGlmZmVyZW5jZSBvZiBsZW5ndGhcclxuICAgICAgICBpZiAobGVuQSAhPT0gbGVuQikge1xyXG4gICAgICAgICAgICByZXR1cm4gbGVuQSAtIGxlbkI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBhbGwgY2hhcnMgYXJlIHNhbWUgLCBzbyBzdHJpbmdzIGFyZSBlcXVhbFxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBQYWRSaWdodChzb3VyY2U6IHN0cmluZywgbWF4TGVuZ3RoOiBudW1iZXIsIGZpbGxTdHJpbmc/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmIChzb3VyY2UubGVuZ3RoID49IG1heExlbmd0aClcclxuICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTtcclxuXHJcbiAgICAgICAgbGV0IGZpbGxMZW4gPSBtYXhMZW5ndGggLSBzb3VyY2UubGVuZ3RoO1xyXG4gICAgICAgIGxldCB0aW1lc1RvUmVwZWF0ID0gTWF0aC5jZWlsKGZpbGxMZW4gLyBmaWxsU3RyaW5nLmxlbmd0aCk7XHJcbiAgICAgICAgbGV0IHRydW5jYXRlZFN0cmluZ0ZpbGxlciA9IGZpbGxTdHJpbmcucmVwZWF0KHRpbWVzVG9SZXBlYXQpLnNsaWNlKDAsIGZpbGxMZW4pO1xyXG4gICAgICAgIHJldHVybiBzb3VyY2UgKyB0cnVuY2F0ZWRTdHJpbmdGaWxsZXI7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIEluc2VydChzdHI6IHN0cmluZywgaW5kZXg6IG51bWJlciwgY2g6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHN0ci5zdWJzdHIoMCwgaW5kZXgpICsgY2ggKyBzdHIuc3Vic3RyKGluZGV4LCBzdHIubGVuZ3RoIC0gaW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICBzdGF0aWMgUmVwbGFjZShzdHI6c3RyaW5nLCBvcmdTdWJTdHI6IHN0cmluZywgbmV3U3ViU3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdFN0cjpzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvLyBmaXhlZCBkZWZlY3QgMTUxODEwOiAgcmVwbGFjZSBcIipcIiB3aXRoIFwiXFwqXCIgYmVmb3JlIHdlIHVwZGF0ZSB0aGUgc3RyaW5nIHNvICogd2lsbCBiZSBhcyBjaGFyIGFuZCBub3QgcmVnIGV4cFxyXG4gICAgLy8gYWxzbyBmb3Igc3BlY2lhbCBjaGFycyAkIF4gLiA/ICsgLCBbXHJcbiAgICBvcmdTdWJTdHIgPSBvcmdTdWJTdHIucmVwbGFjZShuZXcgUmVnRXhwKFwiXFxcXFxcXFxcIiwgJ2cnKSwgXCJcXFxcXFxcXFwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcKlwiLCdnJyksIFwiXFxcXFxcKlwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcJFwiLCdnJyksIFwiXFxcXFxcJFwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcXlwiLCdnJyksIFwiXFxcXFxcXlwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcLlwiLCdnJyksIFwiXFxcXFxcLlwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcP1wiLCdnJyksIFwiXFxcXFxcP1wiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcK1wiLCdnJyksIFwiXFxcXFxcK1wiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcLFwiLCdnJyksIFwiXFxcXFxcLFwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcW1wiLCdnJyksIFwiXFxcXFxcW1wiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcfFwiLCdnJyksIFwiXFxcXFxcfFwiKTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICByZXN1bHRTdHIgPSBzdHIucmVwbGFjZShuZXcgUmVnRXhwKG9yZ1N1YlN0ciwnZycpLCBuZXdTdWJTdHIpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGUpIHtcclxuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihlLm1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdFN0cjtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Exception } from "./Exception";
|
|
2
|
-
export class NotImplementedException extends Exception {
|
|
3
|
-
constructor(message = "Not implemented") {
|
|
4
|
-
super(message);
|
|
5
|
-
}
|
|
6
|
-
}
|
|
1
|
+
import { Exception } from "./Exception";
|
|
2
|
+
export class NotImplementedException extends Exception {
|
|
3
|
+
constructor(message = "Not implemented") {
|
|
4
|
+
super(message);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
7
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90SW1wbGVtZW50ZWRFeGNlcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL05vdEltcGxlbWVudGVkRXhjZXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFdEMsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFNBQVM7SUFDcEQsWUFBWSxVQUFrQixpQkFBaUI7UUFDN0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RXhjZXB0aW9ufSBmcm9tIFwiLi9FeGNlcHRpb25cIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBOb3RJbXBsZW1lbnRlZEV4Y2VwdGlvbiBleHRlbmRzIEV4Y2VwdGlvbiB7XHJcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gXCJOb3QgaW1wbGVtZW50ZWRcIikge1xyXG4gICAgc3VwZXIobWVzc2FnZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export class NumberFormatInfo {
|
|
2
|
+
static NegativeSign = '-';
|
|
3
|
+
static NumberDecimalSeparator = NumberFormatInfo.GetLocaleDecimalSeperator();
|
|
4
|
+
static GetLocaleDecimalSeperator() {
|
|
5
|
+
return (1.1).toLocaleString()[1];
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTnVtYmVyRm9ybWF0SW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvTnVtYmVyRm9ybWF0SW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3BCLE1BQU0sQ0FBVSxZQUFZLEdBQVcsR0FBRyxDQUFDO0lBRTNDLE1BQU0sQ0FBVSxzQkFBc0IsR0FBVyxnQkFBZ0IsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO0lBRTdGLE1BQU0sQ0FBQyx5QkFBeUI7UUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgTnVtYmVyRm9ybWF0SW5mbyB7XHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBOZWdhdGl2ZVNpZ246IHN0cmluZyA9ICctJztcclxuXHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBOdW1iZXJEZWNpbWFsU2VwYXJhdG9yOiBzdHJpbmcgPSBOdW1iZXJGb3JtYXRJbmZvLkdldExvY2FsZURlY2ltYWxTZXBlcmF0b3IoKTtcclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgR2V0TG9jYWxlRGVjaW1hbFNlcGVyYXRvcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICgxLjEpLnRvTG9jYWxlU3RyaW5nKClbMV07IC8vIGdldCB0aGUgZGVjaW1hbCBzZXBlcmF0b3Igb2YgY3VycmVudCBsb2NhbGVcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
export class RefParam {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
1
|
+
export class RefParam {
|
|
2
|
+
value;
|
|
3
|
+
constructor(value) {
|
|
4
|
+
this.value = value;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVmUGFyYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL1JlZlBhcmFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxRQUFRO0lBQ25CLEtBQUssQ0FBSTtJQUVULFlBQVksS0FBUTtRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUmVmUGFyYW08VD4ge1xyXG4gIHZhbHVlOiBUO1xyXG5cclxuICBjb25zdHJ1Y3Rvcih2YWx1ZTogVCkge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export class Stack {
|
|
2
|
+
_array;
|
|
3
|
+
constructor() {
|
|
4
|
+
this._array = new Array();
|
|
5
|
+
}
|
|
6
|
+
count() {
|
|
7
|
+
return this._array.length;
|
|
8
|
+
}
|
|
9
|
+
isEmpty() {
|
|
10
|
+
return this._array.length === 0;
|
|
11
|
+
}
|
|
12
|
+
push(value) {
|
|
13
|
+
this._array.push(value);
|
|
14
|
+
}
|
|
15
|
+
pop() {
|
|
16
|
+
return this._array.pop();
|
|
17
|
+
}
|
|
18
|
+
peek() {
|
|
19
|
+
if (this._array.length > 0) {
|
|
20
|
+
return this._array[this._array.length - 1];
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
Clear() {
|
|
27
|
+
this._array.splice(0, this._array.length);
|
|
28
|
+
}
|
|
29
|
+
Clone() {
|
|
30
|
+
let clone = new Stack();
|
|
31
|
+
clone._array = this._array.slice();
|
|
32
|
+
return clone;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL1N0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxLQUFLO0lBRVIsTUFBTSxDQUFlO0lBRTdCO1FBQ0UsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBUyxDQUFDO0lBQ25DLENBQUM7SUFFTSxLQUFLO1FBQ1YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxJQUFJLENBQUMsS0FBWTtRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU0sR0FBRztRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUM1QzthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLEtBQUssR0FBaUIsSUFBSSxLQUFLLEVBQVMsQ0FBQztRQUM3QyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgU3RhY2s8VERhdGE+IHtcclxuXHJcbiAgcHJpdmF0ZSBfYXJyYXk6IEFycmF5PFREYXRhPjtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLl9hcnJheSA9IG5ldyBBcnJheTxURGF0YT4oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FycmF5Lmxlbmd0aDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc0VtcHR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FycmF5Lmxlbmd0aCA9PT0gMDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwdXNoKHZhbHVlOiBURGF0YSk6IHZvaWQge1xyXG4gICAgdGhpcy5fYXJyYXkucHVzaCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcG9wKCk6IFREYXRhIHtcclxuICAgIHJldHVybiB0aGlzLl9hcnJheS5wb3AoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwZWVrKCk6IFREYXRhIHtcclxuICAgIGlmICh0aGlzLl9hcnJheS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9hcnJheVt0aGlzLl9hcnJheS5sZW5ndGggLSAxXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIENsZWFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fYXJyYXkuc3BsaWNlKDAsIHRoaXMuX2FycmF5Lmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ2xvbmUoKTogU3RhY2s8VERhdGE+IHtcclxuICAgIGxldCBjbG9uZTogU3RhY2s8VERhdGE+ID0gbmV3IFN0YWNrPFREYXRhPigpO1xyXG4gICAgY2xvbmUuX2FycmF5ID0gdGhpcy5fYXJyYXkuc2xpY2UoKTtcclxuICAgIHJldHVybiBjbG9uZTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as StackTrace from 'stacktrace-js';
|
|
2
|
+
export class StackFrame {
|
|
3
|
+
stackFrame = null;
|
|
4
|
+
constructor(skipFrames) {
|
|
5
|
+
let stackFrames = StackTrace.getSync();
|
|
6
|
+
if (skipFrames < 0 || skipFrames >= stackFrames.length)
|
|
7
|
+
throw new Error("Argument out of range");
|
|
8
|
+
this.stackFrame = stackFrames[skipFrames];
|
|
9
|
+
}
|
|
10
|
+
GetFileName() {
|
|
11
|
+
return this.stackFrame.fileName;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhY2tGcmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvU3RhY2tGcmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUs1QyxNQUFNLE9BQU8sVUFBVTtJQUNiLFVBQVUsR0FBaUIsSUFBSSxDQUFDO0lBRXhDLFlBQVksVUFBa0I7UUFFNUIsSUFBSSxXQUFXLEdBQW1CLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN2RCxJQUFJLFVBQVUsR0FBRyxDQUFDLElBQUksVUFBVSxJQUFJLFdBQVcsQ0FBQyxNQUFNO1lBQ3BELE1BQU8sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO0lBQ2xDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFN0YWNrVHJhY2UgZnJvbSAnc3RhY2t0cmFjZS1qcyc7XHJcbmltcG9ydCBKU1N0YWNrRnJhbWUgPSBTdGFja1RyYWNlLlN0YWNrRnJhbWU7XHJcblxyXG4vLyBTdGFja0ZyYW1lIHVzZXMgU3RhY2tUcmFjZSB1dGlsaXR5IHVzaW5nIHN0YWNrdHJhY2UtanMgdXRpbGl0eSBmcm9tIG5wbVxyXG4vLyBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9zdGFja3RyYWNlLWpzXHJcbmV4cG9ydCBjbGFzcyBTdGFja0ZyYW1lIHtcclxuICBwcml2YXRlIHN0YWNrRnJhbWU6IEpTU3RhY2tGcmFtZSA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHNraXBGcmFtZXM6IG51bWJlcikge1xyXG5cclxuICAgIGxldCBzdGFja0ZyYW1lczogSlNTdGFja0ZyYW1lW10gPSBTdGFja1RyYWNlLmdldFN5bmMoKTtcclxuICAgIGlmIChza2lwRnJhbWVzIDwgMCB8fCBza2lwRnJhbWVzID49IHN0YWNrRnJhbWVzLmxlbmd0aClcclxuICAgICAgdGhyb3cgIG5ldyBFcnJvcihcIkFyZ3VtZW50IG91dCBvZiByYW5nZVwiKTtcclxuXHJcbiAgICB0aGlzLnN0YWNrRnJhbWUgPSBzdGFja0ZyYW1lc1tza2lwRnJhbWVzXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRGaWxlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhY2tGcmFtZS5maWxlTmFtZTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as JSStackTrace from 'stacktrace-js';
|
|
2
|
-
export class StackTrace {
|
|
3
|
-
GetFrames() {
|
|
4
|
-
return JSStackTrace.getSync();
|
|
5
|
-
}
|
|
6
|
-
}
|
|
1
|
+
import * as JSStackTrace from 'stacktrace-js';
|
|
2
|
+
export class StackTrace {
|
|
3
|
+
GetFrames() {
|
|
4
|
+
return JSStackTrace.getSync();
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
7
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhY2tUcmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvU3RhY2tUcmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssWUFBWSxNQUFNLGVBQWUsQ0FBQztBQUs5QyxNQUFNLE9BQU8sVUFBVTtJQUNyQixTQUFTO1FBSVAsT0FBTyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgSlNTdGFja1RyYWNlIGZyb20gJ3N0YWNrdHJhY2UtanMnO1xyXG5pbXBvcnQgSlNTdGFja0ZyYW1lID0gSlNTdGFja1RyYWNlLlN0YWNrRnJhbWU7XHJcblxyXG4vLyBUaGlzIHVzZXMgU3RhY2tUcmFjZSB1dGlsaXR5IHVzaW5nIHN0YWNrdHJhY2UtanMgdXRpbGl0eSBmcm9tIG5wbS4gVXNlIHRoaXMgaW4gcGFja2FnZS5qc29uXHJcbi8vIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3N0YWNrdHJhY2UtanNcclxuZXhwb3J0IGNsYXNzIFN0YWNrVHJhY2Uge1xyXG4gIEdldEZyYW1lcygpOiBKU1N0YWNrRnJhbWVbXSB7XHJcbiAgICAvLyBVc2luZyBnZXRTeW5jKCkgbWV0aG9kLCBpdCByZXR1cm5zIHJlZmVyZW5jZXMgb2YgY2FsbHN0YWNrIGV0aG9kIGZyb20gdGhlIGphdmFzY3JpcHQgZmlsZXMgYmluZGxlZCBhbmQgbm90IHR5cGVTY3JpcHQgZmlsZSBmcm9tIHNvdXJjZXMuXHJcbiAgICAvLyBIb3dldmVyLCBpZiBhU3luYyBtZXRob2Qgd291bGQgaGF2ZSB1c2VkLCBpdCBvdmVyY29tZXMgYWJvdmUgcHJvYmxlbXMgYnV0IHRoZSBjYWxsIHRvIGxvZyB3b3VsZCBoYXZlIGJlZW4gYXN5bmMgYW5kIHdlIHdvdWxkIG5vdCBoYXZlXHJcbiAgICAvLyByZWNlaXZlZCBzeW5jaHJvbm91cyBsb2dzIHdoaWNoIHdvdWxkIGJlIGNvbmZ1c2luZy5cclxuICAgIHJldHVybiBKU1N0YWNrVHJhY2UuZ2V0U3luYygpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,112 +1,112 @@
|
|
|
1
|
-
import { Debug } from "./Debug";
|
|
2
|
-
import { NString } from "./NString";
|
|
3
|
-
export class StringBuilder {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
if (arguments.length > 0) {
|
|
7
|
-
if (valueOrLength != null && valueOrLength.constructor === Number) {
|
|
8
|
-
}
|
|
9
|
-
else if (valueOrLength != null && valueOrLength.constructor === String) {
|
|
10
|
-
this.part = valueOrLength.toString();
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
Append(textOrNum, startIndexOrNumberOfCharacters, charCount) {
|
|
15
|
-
if (textOrNum === null)
|
|
16
|
-
return this;
|
|
17
|
-
if (textOrNum.constructor === String) {
|
|
18
|
-
if (arguments.length === 1)
|
|
19
|
-
this.AppendString(textOrNum.toString());
|
|
20
|
-
else if (arguments.length === 2) {
|
|
21
|
-
Debug.Assert(textOrNum.length === 1, "character is expected not string");
|
|
22
|
-
this.AppendString(textOrNum.charAt(0).repeat(startIndexOrNumberOfCharacters));
|
|
23
|
-
}
|
|
24
|
-
else
|
|
25
|
-
this.AppendString(textOrNum.toString(), startIndexOrNumberOfCharacters, charCount);
|
|
26
|
-
}
|
|
27
|
-
else
|
|
28
|
-
this.AppendNumber(textOrNum, startIndexOrNumberOfCharacters);
|
|
29
|
-
return this;
|
|
30
|
-
}
|
|
31
|
-
AppendString(text, startIndex = 0, charCount = text.length) {
|
|
32
|
-
this.part = this.part + text.substr(startIndex, charCount);
|
|
33
|
-
}
|
|
34
|
-
AppendNumber(num, numberOfCharacters = 1) {
|
|
35
|
-
if (numberOfCharacters <= 0)
|
|
36
|
-
throw new Error("numberOfCharacters cannot be less than or equal to zero");
|
|
37
|
-
this.part = this.part + num.toString().repeat(numberOfCharacters);
|
|
38
|
-
}
|
|
39
|
-
AppendLine(text = null) {
|
|
40
|
-
if (text !== null)
|
|
41
|
-
this.part = this.part + text;
|
|
42
|
-
this.part = this.part + '\n';
|
|
43
|
-
}
|
|
44
|
-
AppendFormat(format, arg0, arg1, arg2) {
|
|
45
|
-
this.part = this.part + NString.Format(format, arg0, arg1, arg2);
|
|
46
|
-
return this;
|
|
47
|
-
}
|
|
48
|
-
ToString(startIndex, length) {
|
|
49
|
-
if (arguments.length === 2) {
|
|
50
|
-
if (startIndex < 0 || length < 0 || (startIndex + length) > this.part.length)
|
|
51
|
-
throw new Error("Argument out of range");
|
|
52
|
-
return this.part.substr(startIndex, length);
|
|
53
|
-
}
|
|
54
|
-
return this.part;
|
|
55
|
-
}
|
|
56
|
-
get Length() {
|
|
57
|
-
return this.part.length;
|
|
58
|
-
}
|
|
59
|
-
get_Item(index) {
|
|
60
|
-
if (index < 0 || index >= this.part.length)
|
|
61
|
-
throw new Error("Index out of range");
|
|
62
|
-
return this.part.charAt(index);
|
|
63
|
-
}
|
|
64
|
-
set_Item(index, value) {
|
|
65
|
-
if (index < 0 || index >= this.part.length)
|
|
66
|
-
throw new Error("Index out of range");
|
|
67
|
-
Debug.Assert(value.length <= 1, "Length of string cannot be more than 1. Only character is expected");
|
|
68
|
-
let leftPart = this.part.substring(0, index);
|
|
69
|
-
let rightPart = this.part.substring(index + 1, this.part.length);
|
|
70
|
-
this.part = leftPart + value.charAt(0) + rightPart;
|
|
71
|
-
}
|
|
72
|
-
Insert(index, value) {
|
|
73
|
-
if (index < 0 || index > this.part.length)
|
|
74
|
-
throw new Error("Argument out of range");
|
|
75
|
-
let leftPart = this.part.substring(0, index);
|
|
76
|
-
let rightPart = this.part.substring(index, this.part.length);
|
|
77
|
-
this.part = leftPart + value + rightPart;
|
|
78
|
-
return this;
|
|
79
|
-
}
|
|
80
|
-
Remove(startIndex, length) {
|
|
81
|
-
if (startIndex < 0 || length < 0 || (startIndex + length) > this.part.length)
|
|
82
|
-
throw new Error("Argument out of range");
|
|
83
|
-
let leftPart = this.part.substring(0, startIndex);
|
|
84
|
-
let rightPart = this.part.substring(startIndex + length, this.part.length);
|
|
85
|
-
this.part = leftPart + rightPart;
|
|
86
|
-
return this;
|
|
87
|
-
}
|
|
88
|
-
Replace(oldValue, newValue, startIndex, count) {
|
|
89
|
-
if (oldValue === null)
|
|
90
|
-
throw new Error("oldValue cannot be null");
|
|
91
|
-
else if (oldValue.length === 0)
|
|
92
|
-
throw new Error("Length of oldValue cannot be 0");
|
|
93
|
-
if (arguments.length === 4) {
|
|
94
|
-
if (startIndex < 0 || count < 0 || (startIndex + count) > this.part.length)
|
|
95
|
-
throw new Error("Argument out of range");
|
|
96
|
-
}
|
|
97
|
-
if (arguments.length === 2)
|
|
98
|
-
this.part = this.part.replace(new RegExp(oldValue, 'g'), newValue);
|
|
99
|
-
else if (arguments.length === 4) {
|
|
100
|
-
let substr = this.part.substring(startIndex, startIndex + count);
|
|
101
|
-
substr = substr.replace(new RegExp(oldValue, 'g'), newValue);
|
|
102
|
-
let leftPart = this.part.substring(0, startIndex);
|
|
103
|
-
let rightPart = this.part.substring(startIndex + count, this.part.length);
|
|
104
|
-
this.part = leftPart + substr + rightPart;
|
|
105
|
-
}
|
|
106
|
-
return this;
|
|
107
|
-
}
|
|
108
|
-
toString() {
|
|
109
|
-
return this.ToString();
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RyaW5nQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvU3RyaW5nQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFNbEMsTUFBTSxPQUFPLGFBQWE7SUFNeEIsWUFBWSxhQUFtQixFQUFFLE1BQWU7UUFMeEMsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQU14QixJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLElBQUksYUFBYSxJQUFJLElBQUksSUFBSyxhQUFhLENBQUMsV0FBVyxLQUFLLE1BQU0sRUFBRTthQUluRTtpQkFDSSxJQUFJLGFBQWEsSUFBSSxJQUFJLElBQUssYUFBYSxDQUFDLFdBQVcsS0FBSyxNQUFNLEVBQUU7Z0JBQ3ZFLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBSXRDO1NBQ0Y7SUFDSCxDQUFDO0lBT0QsTUFBTSxDQUFDLFNBQWMsRUFBRSw4QkFBdUMsRUFBRSxTQUFrQjtRQUVoRixJQUFJLFNBQVMsS0FBSyxJQUFJO1lBQ3BCLE9BQU8sSUFBSSxDQUFDO1FBRWQsSUFBSSxTQUFTLENBQUMsV0FBVyxLQUFLLE1BQU0sRUFBRTtZQUNwQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztpQkFDckMsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDL0IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO2dCQUN6RSxJQUFJLENBQUMs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LEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFFN0QsSUFBSSxRQUFRLEdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzFELElBQUksU0FBUyxHQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsRixJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsR0FBRyxNQUFNLEdBQUcsU0FBUyxDQUFDO1NBQzNDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBR0QsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGVidWd9IGZyb20gXCIuL0RlYnVnXCI7XHJcbmltcG9ydCB7TlN0cmluZ30gZnJvbSBcIi4vTlN0cmluZ1wiO1xyXG5cclxuLy8gU3RyaW5nQnVpbGRlciBjbGFzcy4gSXRzIEltcGxlbWVudGF0aW9uIGN1cnJlbnRseSB1c2VzIHN0cmluZyBvYmplY3QuIEl0IGNvdWxkIGhhdmUgYmVlbiBzdHJpbmdbXSwgYnV0IGl0IGhhcyBpc3N1ZXMgd2hlbiBpbnNlcnRpbmcgc3RyaW5nLlxyXG4vLyBJdCB3b3VsZCBub3QgaGF2ZSBzZXJ2ZWQgcHVycG9zZSB3aGlsZSBpbnNlcnRpbmcgYSBzdHJpbmcuIE90aGVyICBjb3VsZCBiZSB0byB1c2Ugc3RyaW5nW10gd2l0aCBvbmUgY2hyYXJhY3RlciBwZXIgc3RyaW5nLiBFdmVuIGl0cyB1dGlsaXR5XHJcbi8vIGlzIGRvdWJ0ZnVsIGFzIHdoaWxlIG1hbmlwdWxhdGlvbiwgaXQgd291bGQgYmUgY3JldGluZyBuZXcgb2JqZWN0cyBpbnN0ZWFkIHBvaW50ZXJzLiBTbyBmb3Igbm93IHdlIGhhdmUgdXNlZCBvbmx5IHN0cmluZyBhbmQgc2VlIGlmIHdlIGhhdmVcclxuLy8gYW55IHBlcmZvcm1hbmNlIGlzc3Vlcy5cclxuZXhwb3J0IGNsYXNzIFN0cmluZ0J1aWxkZXIge1xyXG4gIHByaXZhdGUgcGFydDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgLy8gQ3RvclxyXG4gIGNvbnN0cnVjdG9yKGxlbmd0aD86IG51bWJlcilcclxuICBjb25zdHJ1Y3Rvcih2YWx1ZT86IHN0cmluZywgbGVuZ3RoPzogbnVtYmVyKVxyXG4gIGNvbnN0cnVjdG9yKHZhbHVlT3JMZW5ndGg/OiBhbnksIGxlbmd0aD86IG51bWJlcikge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmICh2YWx1ZU9yTGVuZ3RoICE9IG51bGwgICYmIHZhbHVlT3JMZW5ndGguY29uc3RydWN0b3IgPT09IE51bWJlcikge1xyXG4gICAgICAgIC8vIFRPRE86IFZlcnkgbG93IHByaW9yaXR5IHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IC0gSW1wbGVtZW50IHRoaXMuXHJcbiAgICAgICAgLy8gRGVidWcuQXNzZXJ0KGZhbHNlLCBcIlN0cmluZ0J1aWxkZXI6IE5vdEltcGxlbWVudGVkIGNvbnN0cnVjdG9yIHdpdGggaW5pdGlhbCBsZW5ndGgvY2FwYWNpdHlcIik7XHJcbiAgICAgICAgLy8gdGhyb3cgIG5ldyBFcnJvcihcIk5vdEltcGxlbWVudGVkIGNvbnN0cnVjdG9yIHdpdGggaW5pdGlhbCBsZW5ndGgvY2FwYWNpdHlcIik7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodmFsdWVPckxlbmd0aCAhPSBudWxsICAmJiB2YWx1ZU9yTGVuZ3RoLmNvbnN0cnVjdG9yID09PSBTdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnBhcnQgPSB2YWx1ZU9yTGVuZ3RoLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgLy8gVE9ETzogVmVyeSBsb3cgcHJpb3JpdHkgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgLSBJbXBsZW1lbnQgdGhpcy5cclxuICAgICAgICAvLyBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMilcclxuICAgICAgICAvLyAgIERlYnVnLkFzc2VydChmYWxzZSwgXCJOb3RJbXBsZW1lbnRlZCBjb25zdHJ1Y3RvciB3aXRoIGluaXRpYWwgbGVuZ3RoL2NhcGFjaXR5XCIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBBcHBlbmRzIHN0cmluZy9udW1iZXJcclxuICBBcHBlbmQobnVtOiBudW1iZXIsIG51bWJlck9mQ2hhcmFjdGVycz86IG51bWJlcik6IFN0cmluZ0J1aWxkZXI7XHJcbiAgQXBwZW5kKHRleHQ6IHN0cmluZyk6IFN0cmluZ0J1aWxkZXI7XHJcbiAgQXBwZW5kKHRleHQ6IHN0cmluZywgbnVtYmVyT2ZDaGFyYWN0ZXJzOiBudW1iZXIpOiBTdHJpbmdCdWlsZGVyO1xyXG4gIEFwcGVuZCh0ZXh0OiBzdHJpbmcsIHN0YXJ0SW5kZXg6IG51bWJlciwgY2hhckNvdW50OiBudW1iZXIpOiBTdHJpbmdCdWlsZGVyO1xyXG4gIEFwcGVuZCh0ZXh0T3JOdW06IGFueSwgc3RhcnRJbmRleE9yTnVtYmVyT2ZDaGFyYWN0ZXJzPzogbnVtYmVyLCBjaGFyQ291bnQ/OiBudW1iZXIpOiBTdHJpbmdCdWlsZGVyIHtcclxuXHJcbiAgICBpZiAodGV4dE9yTnVtID09PSBudWxsKVxyXG4gICAgICByZXR1cm4gdGhpcztcclxuXHJcbiAgICBpZiAodGV4dE9yTnVtLmNvbnN0cnVjdG9yID09PSBTdHJpbmcpIHtcclxuICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpXHJcbiAgICAgICAgdGhpcy5BcHBlbmRTdHJpbmcodGV4dE9yTnVtLnRvU3RyaW5nKCkpO1xyXG4gICAgICBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgICAgRGVidWcuQXNzZXJ0KHRleHRPck51bS5sZW5ndGggPT09IDEsIFwiY2hhcmFjdGVyIGlzIGV4cGVjdGVkIG5vdCBzdHJpbmdcIik7XHJcbiAgICAgICAgdGhpcy5BcHBlbmRTdHJpbmcodGV4dE9yTnVtLmNoYXJBdCgwKS5yZXBlYXQoc3RhcnRJbmRleE9yTnVtYmVyT2ZDaGFyYWN0ZXJzKSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuQXBwZW5kU3RyaW5nKHRleHRPck51bS50b1N0cmluZygpLCBzdGFydEluZGV4T3JOdW1iZXJPZkNoYXJhY3RlcnMsIGNoYXJDb3VudCk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuQXBwZW5kTnVtYmVyKHRleHRPck51bSwgc3RhcnRJbmRleE9yTnVtYmVyT2ZDaGFyYWN0ZXJzKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8vIEFwcGVuZCBzdHJpbmdcclxuICBwcml2YXRlIEFwcGVuZFN0cmluZyh0ZXh0OiBzdHJpbmcsIHN0YXJ0SW5kZXg6IG51bWJlciA9IDAsIGNoYXJDb3VudDogbnVtYmVyID0gdGV4dC5sZW5ndGgpOiB2b2lkIHtcclxuICAgIHRoaXMucGFydCA9IHRoaXMucGFydCArIHRleHQuc3Vic3RyKHN0YXJ0SW5kZXgsIGNoYXJDb3VudCk7XHJcbiAgfVxyXG5cclxuICAvLyBBcHBlbmQgTnVtYmVyXHJcbiAgcHJpdmF0ZSBBcHBlbmROdW1iZXIobnVtOiBudW1iZXIsIG51bWJlck9mQ2hhcmFjdGVyczogbnVtYmVyID0gMSk6IHZvaWQge1xyXG4gICAgaWYgKG51bWJlck9mQ2hhcmFjdGVycyA8PSAwKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJudW1iZXJPZkNoYXJhY3RlcnMgY2Fubm90IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byB6ZXJvXCIpO1xyXG5cclxuICAgIHRoaXMucGFydCA9IHRoaXMucGFydCArIG51bS50b1N0cmluZygpLnJlcGVhdChudW1iZXJPZkNoYXJhY3RlcnMpO1xyXG4gIH1cclxuXHJcbiAgLy8gQXBwZW5kIExpbmVcclxuICBBcHBlbmRMaW5lKHRleHQ6IHN0cmluZyA9IG51bGwpOiB2b2lkIHtcclxuICAgIGlmICh0ZXh0ICE9PSBudWxsKVxyXG4gICAgICB0aGlzLnBhcnQgPSB0aGlzLnBhcnQgKyB0ZXh0O1xyXG4gICAgdGhpcy5wYXJ0ID0gdGhpcy5wYXJ0ICsgJ1xcbic7XHJcbiAgfVxyXG5cclxuICAvLyBBcHBlbmQgRm9ybWF0dGVkIHN0cmluZ1xyXG4gIEFwcGVuZEZvcm1hdChmb3JtYXQ6IHN0cmluZywgYXJnMDogYW55KTogU3RyaW5nQnVpbGRlclxyXG4gIEFwcGVuZEZvcm1hdChmb3JtYXQ6IHN0cmluZywgYXJnMDogYW55LCBhcmcxOiBhbnkpOiBTdHJpbmdCdWlsZGVyXHJcbiAgQXBwZW5kRm9ybWF0KGZvcm1hdDogc3RyaW5nLCBhcmcwOiBhbnksIGFyZzE6IGFueSwgYXJnMjogYW55KTogU3RyaW5nQnVpbGRlclxyXG4gIEFwcGVuZEZvcm1hdChmb3JtYXQ6IHN0cmluZywgYXJnMDogYW55LCBhcmcxPzogYW55LCBhcmcyPzogYW55KTogU3RyaW5nQnVpbGRlciB7XHJcbiAgICB0aGlzLnBhcnQgPSB0aGlzLnBhcnQgKyBOU3RyaW5nLkZvcm1hdChmb3JtYXQsIGFyZzAsIGFyZzEsIGFyZzIpO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvLyBDb252ZXJ0IHRvIHN0cmluZ1xyXG4gIFRvU3RyaW5nKCk6IHN0cmluZztcclxuICBUb1N0cmluZyhzdGFydEluZGV4OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyKTogc3RyaW5nO1xyXG4gIFRvU3RyaW5nKHN0YXJ0SW5kZXggPzogbnVtYmVyLCBsZW5ndGggPzogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgIGlmIChzdGFydEluZGV4IDwgMCB8fCBsZW5ndGggPCAwIHx8IChzdGFydEluZGV4ICsgbGVuZ3RoKSA+IHRoaXMucGFydC5sZW5ndGgpXHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXJndW1lbnQgb3V0IG9mIHJhbmdlXCIpO1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMucGFydC5zdWJzdHIoc3RhcnRJbmRleCwgbGVuZ3RoKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLnBhcnQ7XHJcbiAgfVxyXG5cclxuICBnZXQgTGVuZ3RoKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJ0Lmxlbmd0aDtcclxuICB9XHJcblxyXG4gIGdldF9JdGVtKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0aGlzLnBhcnQubGVuZ3RoKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbmRleCBvdXQgb2YgcmFuZ2VcIik7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucGFydC5jaGFyQXQoaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgc2V0X0l0ZW0oaW5kZXg6IG51bWJlciwgdmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0aGlzLnBhcnQubGVuZ3RoKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbmRleCBvdXQgb2YgcmFuZ2VcIik7XHJcblxyXG4gICAgRGVidWcuQXNzZXJ0KHZhbHVlLmxlbmd0aCA8PSAxLCBcIkxlbmd0aCBvZiBzdHJpbmcgY2Fubm90IGJlIG1vcmUgdGhhbiAxLiBPbmx5IGNoYXJhY3RlciBpcyBleHBlY3RlZFwiKTtcclxuICAgIGxldCBsZWZ0UGFydDogc3RyaW5nID0gdGhpcy5wYXJ0LnN1YnN0cmluZygwLCBpbmRleCk7XHJcbiAgICBsZXQgcmlnaHRQYXJ0OiBzdHJpbmcgPSB0aGlzLnBhcnQuc3Vic3RyaW5nKGluZGV4ICsgMSwgdGhpcy5wYXJ0Lmxlbmd0aCk7XHJcbiAgICB0aGlzLnBhcnQgPSBsZWZ0UGFydCArIHZhbHVlLmNoYXJBdCgwKSArIHJpZ2h0UGFydDtcclxuICB9XHJcblxyXG4gIEluc2VydChpbmRleDogbnVtYmVyLCB2YWx1ZTogc3RyaW5nKTogU3RyaW5nQnVpbGRlciB7XHJcbiAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gdGhpcy5wYXJ0Lmxlbmd0aClcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXJndW1lbnQgb3V0IG9mIHJhbmdlXCIpO1xyXG5cclxuICAgIGxldCBsZWZ0UGFydDogc3RyaW5nID0gdGhpcy5wYXJ0LnN1YnN0cmluZygwLCBpbmRleCk7XHJcbiAgICBsZXQgcmlnaHRQYXJ0OiBzdHJpbmcgPSB0aGlzLnBhcnQuc3Vic3RyaW5nKGluZGV4LCB0aGlzLnBhcnQubGVuZ3RoKTtcclxuICAgIHRoaXMucGFydCA9IGxlZnRQYXJ0ICsgdmFsdWUgKyByaWdodFBhcnQ7XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICBSZW1vdmUoc3RhcnRJbmRleDogbnVtYmVyLCBsZW5ndGg6IG51bWJlcik6IFN0cmluZ0J1aWxkZXIge1xyXG4gICAgaWYgKHN0YXJ0SW5kZXggPCAwIHx8IGxlbmd0aCA8IDAgfHwgKHN0YXJ0SW5kZXggKyBsZW5ndGgpID4gdGhpcy5wYXJ0Lmxlbmd0aClcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXJndW1lbnQgb3V0IG9mIHJhbmdlXCIpO1xyXG5cclxuICAgIGxldCBsZWZ0UGFydDogc3RyaW5nID0gdGhpcy5wYXJ0LnN1YnN0cmluZygwLCBzdGFydEluZGV4KTtcclxuICAgIGxldCByaWdodFBhcnQ6IHN0cmluZyA9IHRoaXMucGFydC5zdWJzdHJpbmcoc3RhcnRJbmRleCArIGxlbmd0aCwgdGhpcy5wYXJ0Lmxlbmd0aCk7XHJcbiAgICB0aGlzLnBhcnQgPSBsZWZ0UGFydCArIHJpZ2h0UGFydDtcclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIFJlcGxhY2Uob2xkVmFsdWU6IHN0cmluZywgbmV3VmFsdWU6IHN0cmluZyk6IFN0cmluZ0J1aWxkZXI7XHJcbiAgUmVwbGFjZShvbGRWYWx1ZTogc3RyaW5nLCBuZXdWYWx1ZTogc3RyaW5nLCBzdGFydEluZGV4OiBudW1iZXIsIGNvdW50OiBudW1iZXIpOiBTdHJpbmdCdWlsZGVyO1xyXG4gIFJlcGxhY2Uob2xkVmFsdWU6IHN0cmluZywgbmV3VmFsdWU6IHN0cmluZywgc3RhcnRJbmRleD86IG51bWJlciwgY291bnQ/OiBudW1iZXIpOiBTdHJpbmdCdWlsZGVyIHtcclxuICAgIGlmIChvbGRWYWx1ZSA9PT0gbnVsbClcclxuICAgICAgdGhyb3cgIG5ldyBFcnJvcihcIm9sZFZhbHVlIGNhbm5vdCBiZSBudWxsXCIpO1xyXG4gICAgZWxzZSBpZiAob2xkVmFsdWUubGVuZ3RoID09PSAwKVxyXG4gICAgICB0aHJvdyAgbmV3IEVycm9yKFwiTGVuZ3RoIG9mIG9sZFZhbHVlIGNhbm5vdCBiZSAwXCIpO1xyXG5cclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSA0KSB7XHJcbiAgICAgIGlmIChzdGFydEluZGV4IDwgMCB8fCBjb3VudCA8IDAgfHwgKHN0YXJ0SW5kZXggKyBjb3VudCkgPiB0aGlzLnBhcnQubGVuZ3RoKVxyXG4gICAgICAgIHRocm93ICBuZXcgRXJyb3IoXCJBcmd1bWVudCBvdXQgb2YgcmFuZ2VcIik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpXHJcbiAgICAgIHRoaXMucGFydCA9IHRoaXMucGFydC5yZXBsYWNlKG5ldyBSZWdFeHAob2xkVmFsdWUsICdnJyksIG5ld1ZhbHVlKTtcclxuICAgIGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDQpIHtcclxuICAgICAgbGV0IHN1YnN0cjogc3RyaW5nID0gdGhpcy5wYXJ0LnN1YnN0cmluZyhzdGFydEluZGV4LCBzdGFydEluZGV4ICsgY291bnQpO1xyXG4gICAgICBzdWJzdHIgPSBzdWJzdHIucmVwbGFjZShuZXcgUmVnRXhwKG9sZFZhbHVlLCAnZycpLCBuZXdWYWx1ZSk7XHJcblxyXG4gICAgICBsZXQgbGVmdFBhcnQ6IHN0cmluZyA9IHRoaXMucGFydC5zdWJzdHJpbmcoMCwgc3RhcnRJbmRleCk7XHJcbiAgICAgIGxldCByaWdodFBhcnQ6IHN0cmluZyA9IHRoaXMucGFydC5zdWJzdHJpbmcoc3RhcnRJbmRleCArIGNvdW50LCB0aGlzLnBhcnQubGVuZ3RoKTtcclxuICAgICAgdGhpcy5wYXJ0ID0gbGVmdFBhcnQgKyBzdWJzdHIgKyByaWdodFBhcnQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvLyByZXR1cm4gdGhlIHN0cmluZ1xyXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5Ub1N0cmluZygpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
1
|
+
import { Debug } from "./Debug";
|
|
2
|
+
import { NString } from "./NString";
|
|
3
|
+
export class StringBuilder {
|
|
4
|
+
part = "";
|
|
5
|
+
constructor(valueOrLength, length) {
|
|
6
|
+
if (arguments.length > 0) {
|
|
7
|
+
if (valueOrLength != null && valueOrLength.constructor === Number) {
|
|
8
|
+
}
|
|
9
|
+
else if (valueOrLength != null && valueOrLength.constructor === String) {
|
|
10
|
+
this.part = valueOrLength.toString();
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
Append(textOrNum, startIndexOrNumberOfCharacters, charCount) {
|
|
15
|
+
if (textOrNum === null)
|
|
16
|
+
return this;
|
|
17
|
+
if (textOrNum.constructor === String) {
|
|
18
|
+
if (arguments.length === 1)
|
|
19
|
+
this.AppendString(textOrNum.toString());
|
|
20
|
+
else if (arguments.length === 2) {
|
|
21
|
+
Debug.Assert(textOrNum.length === 1, "character is expected not string");
|
|
22
|
+
this.AppendString(textOrNum.charAt(0).repeat(startIndexOrNumberOfCharacters));
|
|
23
|
+
}
|
|
24
|
+
else
|
|
25
|
+
this.AppendString(textOrNum.toString(), startIndexOrNumberOfCharacters, charCount);
|
|
26
|
+
}
|
|
27
|
+
else
|
|
28
|
+
this.AppendNumber(textOrNum, startIndexOrNumberOfCharacters);
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
AppendString(text, startIndex = 0, charCount = text.length) {
|
|
32
|
+
this.part = this.part + text.substr(startIndex, charCount);
|
|
33
|
+
}
|
|
34
|
+
AppendNumber(num, numberOfCharacters = 1) {
|
|
35
|
+
if (numberOfCharacters <= 0)
|
|
36
|
+
throw new Error("numberOfCharacters cannot be less than or equal to zero");
|
|
37
|
+
this.part = this.part + num.toString().repeat(numberOfCharacters);
|
|
38
|
+
}
|
|
39
|
+
AppendLine(text = null) {
|
|
40
|
+
if (text !== null)
|
|
41
|
+
this.part = this.part + text;
|
|
42
|
+
this.part = this.part + '\n';
|
|
43
|
+
}
|
|
44
|
+
AppendFormat(format, arg0, arg1, arg2) {
|
|
45
|
+
this.part = this.part + NString.Format(format, arg0, arg1, arg2);
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
ToString(startIndex, length) {
|
|
49
|
+
if (arguments.length === 2) {
|
|
50
|
+
if (startIndex < 0 || length < 0 || (startIndex + length) > this.part.length)
|
|
51
|
+
throw new Error("Argument out of range");
|
|
52
|
+
return this.part.substr(startIndex, length);
|
|
53
|
+
}
|
|
54
|
+
return this.part;
|
|
55
|
+
}
|
|
56
|
+
get Length() {
|
|
57
|
+
return this.part.length;
|
|
58
|
+
}
|
|
59
|
+
get_Item(index) {
|
|
60
|
+
if (index < 0 || index >= this.part.length)
|
|
61
|
+
throw new Error("Index out of range");
|
|
62
|
+
return this.part.charAt(index);
|
|
63
|
+
}
|
|
64
|
+
set_Item(index, value) {
|
|
65
|
+
if (index < 0 || index >= this.part.length)
|
|
66
|
+
throw new Error("Index out of range");
|
|
67
|
+
Debug.Assert(value.length <= 1, "Length of string cannot be more than 1. Only character is expected");
|
|
68
|
+
let leftPart = this.part.substring(0, index);
|
|
69
|
+
let rightPart = this.part.substring(index + 1, this.part.length);
|
|
70
|
+
this.part = leftPart + value.charAt(0) + rightPart;
|
|
71
|
+
}
|
|
72
|
+
Insert(index, value) {
|
|
73
|
+
if (index < 0 || index > this.part.length)
|
|
74
|
+
throw new Error("Argument out of range");
|
|
75
|
+
let leftPart = this.part.substring(0, index);
|
|
76
|
+
let rightPart = this.part.substring(index, this.part.length);
|
|
77
|
+
this.part = leftPart + value + rightPart;
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
Remove(startIndex, length) {
|
|
81
|
+
if (startIndex < 0 || length < 0 || (startIndex + length) > this.part.length)
|
|
82
|
+
throw new Error("Argument out of range");
|
|
83
|
+
let leftPart = this.part.substring(0, startIndex);
|
|
84
|
+
let rightPart = this.part.substring(startIndex + length, this.part.length);
|
|
85
|
+
this.part = leftPart + rightPart;
|
|
86
|
+
return this;
|
|
87
|
+
}
|
|
88
|
+
Replace(oldValue, newValue, startIndex, count) {
|
|
89
|
+
if (oldValue === null)
|
|
90
|
+
throw new Error("oldValue cannot be null");
|
|
91
|
+
else if (oldValue.length === 0)
|
|
92
|
+
throw new Error("Length of oldValue cannot be 0");
|
|
93
|
+
if (arguments.length === 4) {
|
|
94
|
+
if (startIndex < 0 || count < 0 || (startIndex + count) > this.part.length)
|
|
95
|
+
throw new Error("Argument out of range");
|
|
96
|
+
}
|
|
97
|
+
if (arguments.length === 2)
|
|
98
|
+
this.part = this.part.replace(new RegExp(oldValue, 'g'), newValue);
|
|
99
|
+
else if (arguments.length === 4) {
|
|
100
|
+
let substr = this.part.substring(startIndex, startIndex + count);
|
|
101
|
+
substr = substr.replace(new RegExp(oldValue, 'g'), newValue);
|
|
102
|
+
let leftPart = this.part.substring(0, startIndex);
|
|
103
|
+
let rightPart = this.part.substring(startIndex + count, this.part.length);
|
|
104
|
+
this.part = leftPart + substr + rightPart;
|
|
105
|
+
}
|
|
106
|
+
return this;
|
|
107
|
+
}
|
|
108
|
+
toString() {
|
|
109
|
+
return this.ToString();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RyaW5nQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvU3RyaW5nQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFNbEMsTUFBTSxPQUFPLGFBQWE7SUFDaEIsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUsxQixZQUFZLGFBQW1CLEVBQUUsTUFBZTtRQUM5QyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLElBQUksYUFBYSxJQUFJLElBQUksSUFBSyxhQUFhLENBQUMsV0FBVyxLQUFLLE1BQU0sRUFBRTthQUluRTtpQkFDSSxJQUFJLGFBQWEsSUFBSSxJQUFJLElBQUssYUFBYSxDQUFDLFdBQVcsS0FBSyxNQUFNLEVBQUU7Z0JBQ3ZFLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBSXRDO1NBQ0Y7SUFDSCxDQUFDO0lBT0QsTUFBTSxDQUFDLFNBQWMsRUFBRSw4QkFBdUMsRUFBRSxTQUFrQjtRQUVoRixJQUFJLFNBQVMsS0FBSyxJQUFJO1lBQ3BCLE9BQU8sSUFBSSxDQUFDO1FBRWQsSUFBSSxTQUFTLENBQUMsV0FBVyxLQUFLLE1BQU0sRUFBRTtZQUNwQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztpQkFDckMsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDL0IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO2dCQUN6RSxJQUFJLENBQUMs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LEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFFN0QsSUFBSSxRQUFRLEdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzFELElBQUksU0FBUyxHQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsRixJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsR0FBRyxNQUFNLEdBQUcsU0FBUyxDQUFDO1NBQzNDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBR0QsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGVidWd9IGZyb20gXCIuL0RlYnVnXCI7XHJcbmltcG9ydCB7TlN0cmluZ30gZnJvbSBcIi4vTlN0cmluZ1wiO1xyXG5cclxuLy8gU3RyaW5nQnVpbGRlciBjbGFzcy4gSXRzIEltcGxlbWVudGF0aW9uIGN1cnJlbnRseSB1c2VzIHN0cmluZyBvYmplY3QuIEl0IGNvdWxkIGhhdmUgYmVlbiBzdHJpbmdbXSwgYnV0IGl0IGhhcyBpc3N1ZXMgd2hlbiBpbnNlcnRpbmcgc3RyaW5nLlxyXG4vLyBJdCB3b3VsZCBub3QgaGF2ZSBzZXJ2ZWQgcHVycG9zZSB3aGlsZSBpbnNlcnRpbmcgYSBzdHJpbmcuIE90aGVyICBjb3VsZCBiZSB0byB1c2Ugc3RyaW5nW10gd2l0aCBvbmUgY2hyYXJhY3RlciBwZXIgc3RyaW5nLiBFdmVuIGl0cyB1dGlsaXR5XHJcbi8vIGlzIGRvdWJ0ZnVsIGFzIHdoaWxlIG1hbmlwdWxhdGlvbiwgaXQgd291bGQgYmUgY3JldGluZyBuZXcgb2JqZWN0cyBpbnN0ZWFkIHBvaW50ZXJzLiBTbyBmb3Igbm93IHdlIGhhdmUgdXNlZCBvbmx5IHN0cmluZyBhbmQgc2VlIGlmIHdlIGhhdmVcclxuLy8gYW55IHBlcmZvcm1hbmNlIGlzc3Vlcy5cclxuZXhwb3J0IGNsYXNzIFN0cmluZ0J1aWxkZXIge1xyXG4gIHByaXZhdGUgcGFydDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgLy8gQ3RvclxyXG4gIGNvbnN0cnVjdG9yKGxlbmd0aD86IG51bWJlcilcclxuICBjb25zdHJ1Y3Rvcih2YWx1ZT86IHN0cmluZywgbGVuZ3RoPzogbnVtYmVyKVxyXG4gIGNvbnN0cnVjdG9yKHZhbHVlT3JMZW5ndGg/OiBhbnksIGxlbmd0aD86IG51bWJlcikge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmICh2YWx1ZU9yTGVuZ3RoICE9IG51bGwgICYmIHZhbHVlT3JMZW5ndGguY29uc3RydWN0b3IgPT09IE51bWJlcikge1xyXG4gICAgICAgIC8vIFRPRE86IFZlcnkgbG93IHByaW9yaXR5IHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IC0gSW1wbGVtZW50IHRoaXMuXHJcbiAgICAgICAgLy8gRGVidWcuQXNzZXJ0KGZhbHNlLCBcIlN0cmluZ0J1aWxkZXI6IE5vdEltcGxlbWVudGVkIGNvbnN0cnVjdG9yIHdpdGggaW5pdGlhbCBsZW5ndGgvY2FwYWNpdHlcIik7XHJcbiAgICAgICAgLy8gdGhyb3cgIG5ldyBFcnJvcihcIk5vdEltcGxlbWVudGVkIGNvbnN0cnVjdG9yIHdpdGggaW5pdGlhbCBsZW5ndGgvY2FwYWNpdHlcIik7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodmFsdWVPckxlbmd0aCAhPSBudWxsICAmJiB2YWx1ZU9yTGVuZ3RoLmNvbnN0cnVjdG9yID09PSBTdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnBhcnQgPSB2YWx1ZU9yTGVuZ3RoLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgLy8gVE9ETzogVmVyeSBsb3cgcHJpb3JpdHkgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgLSBJbXBsZW1lbnQgdGhpcy5cclxuICAgICAgICAvLyBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMilcclxuICAgICAgICAvLyAgIERlYnVnLkFzc2VydChmYWxzZSwgXCJOb3RJbXBsZW1lbnRlZCBjb25zdHJ1Y3RvciB3aXRoIGluaXRpYWwgbGVuZ3RoL2NhcGFjaXR5XCIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBBcHBlbmRzIHN0cmluZy9udW1iZXJcclxuICBBcHBlbmQobnVtOiBudW1iZXIsIG51bWJlck9mQ2hhcmFjdGVycz86IG51bWJlcik6IFN0cmluZ0J1aWxkZXI7XHJcbiAgQXBwZW5kKHRleHQ6IHN0cmluZyk6IFN0cmluZ0J1aWxkZXI7XHJcbiAgQXBwZW5kKHRleHQ6IHN0cmluZywgbnVtYmVyT2ZDaGFyYWN0ZXJzOiBudW1iZXIpOiBTdHJpbmdCdWlsZGVyO1xyXG4gIEFwcGVuZCh0ZXh0OiBzdHJpbmcsIHN0YXJ0SW5kZXg6IG51bWJlciwgY2hhckNvdW50OiBudW1iZXIpOiBTdHJpbmdCdWlsZGVyO1xyXG4gIEFwcGVuZCh0ZXh0T3JOdW06IGFueSwgc3RhcnRJbmRleE9yTnVtYmVyT2ZDaGFyYWN0ZXJzPzogbnVtYmVyLCBjaGFyQ291bnQ/OiBudW1iZXIpOiBTdHJpbmdCdWlsZGVyIHtcclxuXHJcbiAgICBpZiAodGV4dE9yTnVtID09PSBudWxsKVxyXG4gICAgICByZXR1cm4gdGhpcztcclxuXHJcbiAgICBpZiAodGV4dE9yTnVtLmNvbnN0cnVjdG9yID09PSBTdHJpbmcpIHtcclxuICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpXHJcbiAgICAgICAgdGhpcy5BcHBlbmRTdHJpbmcodGV4dE9yTnVtLnRvU3RyaW5nKCkpO1xyXG4gICAgICBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgICAgRGVidWcuQXNzZXJ0KHRleHRPck51bS5sZW5ndGggPT09IDEsIFwiY2hhcmFjdGVyIGlzIGV4cGVjdGVkIG5vdCBzdHJpbmdcIik7XHJcbiAgICAgICAgdGhpcy5BcHBlbmRTdHJpbmcodGV4dE9yTnVtLmNoYXJBdCgwKS5yZXBlYXQoc3RhcnRJbmRleE9yTnVtYmVyT2ZDaGFyYWN0ZXJzKSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuQXBwZW5kU3RyaW5nKHRleHRPck51bS50b1N0cmluZygpLCBzdGFydEluZGV4T3JOdW1iZXJPZkNoYXJhY3RlcnMsIGNoYXJDb3VudCk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuQXBwZW5kTnVtYmVyKHRleHRPck51bSwgc3RhcnRJbmRleE9yTnVtYmVyT2ZDaGFyYWN0ZXJzKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8vIEFwcGVuZCBzdHJpbmdcclxuICBwcml2YXRlIEFwcGVuZFN0cmluZyh0ZXh0OiBzdHJpbmcsIHN0YXJ0SW5kZXg6IG51bWJlciA9IDAsIGNoYXJDb3VudDogbnVtYmVyID0gdGV4dC5sZW5ndGgpOiB2b2lkIHtcclxuICAgIHRoaXMucGFydCA9IHRoaXMucGFydCArIHRleHQuc3Vic3RyKHN0YXJ0SW5kZXgsIGNoYXJDb3VudCk7XHJcbiAgfVxyXG5cclxuICAvLyBBcHBlbmQgTnVtYmVyXHJcbiAgcHJpdmF0ZSBBcHBlbmROdW1iZXIobnVtOiBudW1iZXIsIG51bWJlck9mQ2hhcmFjdGVyczogbnVtYmVyID0gMSk6IHZvaWQge1xyXG4gICAgaWYgKG51bWJlck9mQ2hhcmFjdGVycyA8PSAwKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJudW1iZXJPZkNoYXJhY3RlcnMgY2Fubm90IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byB6ZXJvXCIpO1xyXG5cclxuICAgIHRoaXMucGFydCA9IHRoaXMucGFydCArIG51bS50b1N0cmluZygpLnJlcGVhdChudW1iZXJPZkNoYXJhY3RlcnMpO1xyXG4gIH1cclxuXHJcbiAgLy8gQXBwZW5kIExpbmVcclxuICBBcHBlbmRMaW5lKHRleHQ6IHN0cmluZyA9IG51bGwpOiB2b2lkIHtcclxuICAgIGlmICh0ZXh0ICE9PSBudWxsKVxyXG4gICAgICB0aGlzLnBhcnQgPSB0aGlzLnBhcnQgKyB0ZXh0O1xyXG4gICAgdGhpcy5wYXJ0ID0gdGhpcy5wYXJ0ICsgJ1xcbic7XHJcbiAgfVxyXG5cclxuICAvLyBBcHBlbmQgRm9ybWF0dGVkIHN0cmluZ1xyXG4gIEFwcGVuZEZvcm1hdChmb3JtYXQ6IHN0cmluZywgYXJnMDogYW55KTogU3RyaW5nQnVpbGRlclxyXG4gIEFwcGVuZEZvcm1hdChmb3JtYXQ6IHN0cmluZywgYXJnMDogYW55LCBhcmcxOiBhbnkpOiBTdHJpbmdCdWlsZGVyXHJcbiAgQXBwZW5kRm9ybWF0KGZvcm1hdDogc3RyaW5nLCBhcmcwOiBhbnksIGFyZzE6IGFueSwgYXJnMjogYW55KTogU3RyaW5nQnVpbGRlclxyXG4gIEFwcGVuZEZvcm1hdChmb3JtYXQ6IHN0cmluZywgYXJnMDogYW55LCBhcmcxPzogYW55LCBhcmcyPzogYW55KTogU3RyaW5nQnVpbGRlciB7XHJcbiAgICB0aGlzLnBhcnQgPSB0aGlzLnBhcnQgKyBOU3RyaW5nLkZvcm1hdChmb3JtYXQsIGFyZzAsIGFyZzEsIGFyZzIpO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvLyBDb252ZXJ0IHRvIHN0cmluZ1xyXG4gIFRvU3RyaW5nKCk6IHN0cmluZztcclxuICBUb1N0cmluZyhzdGFydEluZGV4OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyKTogc3RyaW5nO1xyXG4gIFRvU3RyaW5nKHN0YXJ0SW5kZXggPzogbnVtYmVyLCBsZW5ndGggPzogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgIGlmIChzdGFydEluZGV4IDwgMCB8fCBsZW5ndGggPCAwIHx8IChzdGFydEluZGV4ICsgbGVuZ3RoKSA+IHRoaXMucGFydC5sZW5ndGgpXHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXJndW1lbnQgb3V0IG9mIHJhbmdlXCIpO1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMucGFydC5zdWJzdHIoc3RhcnRJbmRleCwgbGVuZ3RoKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLnBhcnQ7XHJcbiAgfVxyXG5cclxuICBnZXQgTGVuZ3RoKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJ0Lmxlbmd0aDtcclxuICB9XHJcblxyXG4gIGdldF9JdGVtKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0aGlzLnBhcnQubGVuZ3RoKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbmRleCBvdXQgb2YgcmFuZ2VcIik7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucGFydC5jaGFyQXQoaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgc2V0X0l0ZW0oaW5kZXg6IG51bWJlciwgdmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0aGlzLnBhcnQubGVuZ3RoKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbmRleCBvdXQgb2YgcmFuZ2VcIik7XHJcblxyXG4gICAgRGVidWcuQXNzZXJ0KHZhbHVlLmxlbmd0aCA8PSAxLCBcIkxlbmd0aCBvZiBzdHJpbmcgY2Fubm90IGJlIG1vcmUgdGhhbiAxLiBPbmx5IGNoYXJhY3RlciBpcyBleHBlY3RlZFwiKTtcclxuICAgIGxldCBsZWZ0UGFydDogc3RyaW5nID0gdGhpcy5wYXJ0LnN1YnN0cmluZygwLCBpbmRleCk7XHJcbiAgICBsZXQgcmlnaHRQYXJ0OiBzdHJpbmcgPSB0aGlzLnBhcnQuc3Vic3RyaW5nKGluZGV4ICsgMSwgdGhpcy5wYXJ0Lmxlbmd0aCk7XHJcbiAgICB0aGlzLnBhcnQgPSBsZWZ0UGFydCArIHZhbHVlLmNoYXJBdCgwKSArIHJpZ2h0UGFydDtcclxuICB9XHJcblxyXG4gIEluc2VydChpbmRleDogbnVtYmVyLCB2YWx1ZTogc3RyaW5nKTogU3RyaW5nQnVpbGRlciB7XHJcbiAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gdGhpcy5wYXJ0Lmxlbmd0aClcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXJndW1lbnQgb3V0IG9mIHJhbmdlXCIpO1xyXG5cclxuICAgIGxldCBsZWZ0UGFydDogc3RyaW5nID0gdGhpcy5wYXJ0LnN1YnN0cmluZygwLCBpbmRleCk7XHJcbiAgICBsZXQgcmlnaHRQYXJ0OiBzdHJpbmcgPSB0aGlzLnBhcnQuc3Vic3RyaW5nKGluZGV4LCB0aGlzLnBhcnQubGVuZ3RoKTtcclxuICAgIHRoaXMucGFydCA9IGxlZnRQYXJ0ICsgdmFsdWUgKyByaWdodFBhcnQ7XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICBSZW1vdmUoc3RhcnRJbmRleDogbnVtYmVyLCBsZW5ndGg6IG51bWJlcik6IFN0cmluZ0J1aWxkZXIge1xyXG4gICAgaWYgKHN0YXJ0SW5kZXggPCAwIHx8IGxlbmd0aCA8IDAgfHwgKHN0YXJ0SW5kZXggKyBsZW5ndGgpID4gdGhpcy5wYXJ0Lmxlbmd0aClcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXJndW1lbnQgb3V0IG9mIHJhbmdlXCIpO1xyXG5cclxuICAgIGxldCBsZWZ0UGFydDogc3RyaW5nID0gdGhpcy5wYXJ0LnN1YnN0cmluZygwLCBzdGFydEluZGV4KTtcclxuICAgIGxldCByaWdodFBhcnQ6IHN0cmluZyA9IHRoaXMucGFydC5zdWJzdHJpbmcoc3RhcnRJbmRleCArIGxlbmd0aCwgdGhpcy5wYXJ0Lmxlbmd0aCk7XHJcbiAgICB0aGlzLnBhcnQgPSBsZWZ0UGFydCArIHJpZ2h0UGFydDtcclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIFJlcGxhY2Uob2xkVmFsdWU6IHN0cmluZywgbmV3VmFsdWU6IHN0cmluZyk6IFN0cmluZ0J1aWxkZXI7XHJcbiAgUmVwbGFjZShvbGRWYWx1ZTogc3RyaW5nLCBuZXdWYWx1ZTogc3RyaW5nLCBzdGFydEluZGV4OiBudW1iZXIsIGNvdW50OiBudW1iZXIpOiBTdHJpbmdCdWlsZGVyO1xyXG4gIFJlcGxhY2Uob2xkVmFsdWU6IHN0cmluZywgbmV3VmFsdWU6IHN0cmluZywgc3RhcnRJbmRleD86IG51bWJlciwgY291bnQ/OiBudW1iZXIpOiBTdHJpbmdCdWlsZGVyIHtcclxuICAgIGlmIChvbGRWYWx1ZSA9PT0gbnVsbClcclxuICAgICAgdGhyb3cgIG5ldyBFcnJvcihcIm9sZFZhbHVlIGNhbm5vdCBiZSBudWxsXCIpO1xyXG4gICAgZWxzZSBpZiAob2xkVmFsdWUubGVuZ3RoID09PSAwKVxyXG4gICAgICB0aHJvdyAgbmV3IEVycm9yKFwiTGVuZ3RoIG9mIG9sZFZhbHVlIGNhbm5vdCBiZSAwXCIpO1xyXG5cclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSA0KSB7XHJcbiAgICAgIGlmIChzdGFydEluZGV4IDwgMCB8fCBjb3VudCA8IDAgfHwgKHN0YXJ0SW5kZXggKyBjb3VudCkgPiB0aGlzLnBhcnQubGVuZ3RoKVxyXG4gICAgICAgIHRocm93ICBuZXcgRXJyb3IoXCJBcmd1bWVudCBvdXQgb2YgcmFuZ2VcIik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpXHJcbiAgICAgIHRoaXMucGFydCA9IHRoaXMucGFydC5yZXBsYWNlKG5ldyBSZWdFeHAob2xkVmFsdWUsICdnJyksIG5ld1ZhbHVlKTtcclxuICAgIGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDQpIHtcclxuICAgICAgbGV0IHN1YnN0cjogc3RyaW5nID0gdGhpcy5wYXJ0LnN1YnN0cmluZyhzdGFydEluZGV4LCBzdGFydEluZGV4ICsgY291bnQpO1xyXG4gICAgICBzdWJzdHIgPSBzdWJzdHIucmVwbGFjZShuZXcgUmVnRXhwKG9sZFZhbHVlLCAnZycpLCBuZXdWYWx1ZSk7XHJcblxyXG4gICAgICBsZXQgbGVmdFBhcnQ6IHN0cmluZyA9IHRoaXMucGFydC5zdWJzdHJpbmcoMCwgc3RhcnRJbmRleCk7XHJcbiAgICAgIGxldCByaWdodFBhcnQ6IHN0cmluZyA9IHRoaXMucGFydC5zdWJzdHJpbmcoc3RhcnRJbmRleCArIGNvdW50LCB0aGlzLnBhcnQubGVuZ3RoKTtcclxuICAgICAgdGhpcy5wYXJ0ID0gbGVmdFBhcnQgKyBzdWJzdHIgKyByaWdodFBhcnQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvLyByZXR1cm4gdGhlIHN0cmluZ1xyXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5Ub1N0cmluZygpO1xyXG4gIH1cclxufVxyXG4iXX0=
|