nmce-func 1.4.0 → 1.5.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/_func/dateFunc.d.ts +4 -0
- package/fesm2022/nmce-func.mjs +27 -11
- package/fesm2022/nmce-func.mjs.map +1 -1
- package/package.json +2 -4
- package/esm2022/_func/addressFunc.mjs +0 -49
- package/esm2022/_func/currencyFunc.mjs +0 -84
- package/esm2022/_func/dateFunc.mjs +0 -308
- package/esm2022/_func/htmlPrintFunc.mjs +0 -45
- package/esm2022/_func/index.mjs +0 -10
- package/esm2022/_func/javascriptFunc.mjs +0 -21
- package/esm2022/_func/jsonFunc.mjs +0 -69
- package/esm2022/_func/stringAusFunc.mjs +0 -200
- package/esm2022/_func/stringFunc.mjs +0 -93
- package/esm2022/_func/uuidFunc.mjs +0 -15
- package/esm2022/nmce-func.mjs +0 -5
- package/esm2022/public-api.mjs +0 -5
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* String functions specific to Australia
|
|
3
|
-
*/
|
|
4
|
-
export class StringAusFunc {
|
|
5
|
-
//thanks to https://github.com/sidorares/australian-business-number/blob/0591475f5978fd122b472edcdc7efe6d96d56f26/index.js
|
|
6
|
-
static acnWeights = [8, 7, 6, 5, 4, 3, 2, 1];
|
|
7
|
-
static weights = [10, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19];
|
|
8
|
-
static suggestLookup = StringAusFunc.generateLookup();
|
|
9
|
-
/**
|
|
10
|
-
* Validate medicare number
|
|
11
|
-
* @param n
|
|
12
|
-
* @returns validation error message
|
|
13
|
-
*/
|
|
14
|
-
static validateMedicare(n) {
|
|
15
|
-
if (!n) {
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
|
-
if (n && n.length === 10) {
|
|
19
|
-
const matches = n.match(/^(\d{8})(\d)/);
|
|
20
|
-
if (!matches) {
|
|
21
|
-
return {
|
|
22
|
-
code: 2, message: 'Medicare number should be all digit.'
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
const base = matches[1];
|
|
26
|
-
const checkDigit = matches[2];
|
|
27
|
-
const weights = [1, 3, 7, 9, 1, 3, 7, 9];
|
|
28
|
-
let sum = 0;
|
|
29
|
-
for (let i = 0; i < weights.length; i++) {
|
|
30
|
-
sum += parseInt(base[i], 10) * weights[i];
|
|
31
|
-
}
|
|
32
|
-
//console.debug(`sum: ${sum} checkDigits: ${checkDigit}`);
|
|
33
|
-
const isValid = sum % 10 === parseInt(checkDigit, 10);
|
|
34
|
-
if (!isValid) {
|
|
35
|
-
return {
|
|
36
|
-
code: 3, message: 'Checksum is incorrect.'
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
return { code: 1, message: 'Length should be 10.' };
|
|
42
|
-
}
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
static validateMedicareProviderNumber(providerNumber) {
|
|
46
|
-
if (!providerNumber) {
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
if (!/^[0-9]{6}[0-9ABCDEFGHJKLMNPQRTUVWXY][ABFHJKLTWXY]/.test(providerNumber)) {
|
|
50
|
-
return { code: 1, message: 'Not matching provider number format.' };
|
|
51
|
-
}
|
|
52
|
-
const practiceLocationValues = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'T', 'U', 'V', 'W', 'X', 'Y'];
|
|
53
|
-
const remainderValues = ['Y', 'X', 'W', 'T', 'L', 'K', 'J', 'H', 'F', 'B', 'A'];
|
|
54
|
-
const stemWeights = [3, 5, 8, 4, 2, 1];
|
|
55
|
-
const stemNumbers = providerNumber.substr(0, 6).split('').map((char) => parseInt(char));
|
|
56
|
-
const practiceLoc = practiceLocationValues.findIndex((e) => e === providerNumber[6]);
|
|
57
|
-
const checksum = providerNumber[7];
|
|
58
|
-
const zipped = stemWeights.map((x, i) => [x, stemNumbers[i]]);
|
|
59
|
-
const sumWeights = zipped.map((y) => y[1] * y[0]).reduce((total, num) => total + num);
|
|
60
|
-
const remainder = (sumWeights + practiceLoc * 6) % 11;
|
|
61
|
-
const result = remainderValues[remainder];
|
|
62
|
-
const valid = result === checksum;
|
|
63
|
-
if (!valid) {
|
|
64
|
-
return { code: 2, message: 'Checksum is incorrect.' };
|
|
65
|
-
}
|
|
66
|
-
return null;
|
|
67
|
-
}
|
|
68
|
-
static validateDVAFileNumber(dva) {
|
|
69
|
-
if (!dva) {
|
|
70
|
-
return null;
|
|
71
|
-
}
|
|
72
|
-
const states = ['N', 'V', 'Q', 'S', 'W', 'T'];
|
|
73
|
-
const warCodes = [' ', 'X', 'KM', 'SR', 'SS', 'SM', 'SWP', 'AGX', 'BW', 'GW', 'CGW', //Australian Forces
|
|
74
|
-
'P', 'PX', 'PAD', 'PAM', 'PCA', 'PCR', 'PCV', 'PMS', 'PSW', 'PWO', 'HKX', 'MAL', //British Administration Group
|
|
75
|
-
'CN', 'CNX', 'IV', 'NF', 'NG', 'RD', 'RDX', 'SA', 'SAX', 'A', //Other Overseas Forces
|
|
76
|
-
'N', 'NX', 'NSW', 'NSM', //New Zealand Administration Group
|
|
77
|
-
'BUR', 'CNK', 'CNS', 'FIJ', 'GHA', 'HKS', 'IND', 'KYA', 'MAU', 'MLS', 'MTX', 'MWI', 'NK', 'NGR', 'NRD', 'NSS', 'PK']; //British Commonwealth Countries - SP Eligibility
|
|
78
|
-
if (!states.includes(dva.charAt(0))) {
|
|
79
|
-
return { code: 1, message: 'State incorrect.' };
|
|
80
|
-
}
|
|
81
|
-
const ns = dva.match(/\d+/);
|
|
82
|
-
if (!ns) {
|
|
83
|
-
return { code: 2, message: 'No number.' };
|
|
84
|
-
}
|
|
85
|
-
const n = ns[0];
|
|
86
|
-
const idxOfN = dva.indexOf(n);
|
|
87
|
-
const warCode = dva.substring(1, idxOfN);
|
|
88
|
-
if (!warCodes.includes(warCode)) {
|
|
89
|
-
return { code: 3, message: 'War code invalid.' };
|
|
90
|
-
}
|
|
91
|
-
const lenOfN = n.length;
|
|
92
|
-
const lenOfWc = warCode.length;
|
|
93
|
-
if (lenOfN + lenOfWc > 7) {
|
|
94
|
-
return { code: 4, message: 'File number length should not be greater 7.' };
|
|
95
|
-
}
|
|
96
|
-
return null;
|
|
97
|
-
}
|
|
98
|
-
static validateTFN(n) {
|
|
99
|
-
if (!n) {
|
|
100
|
-
return null;
|
|
101
|
-
}
|
|
102
|
-
const tfn = n.replace(/\s+/g, '').replace(/[-]/g, '');
|
|
103
|
-
const isNumber = /^[0-9]+$/.test(tfn);
|
|
104
|
-
if (!isNumber) {
|
|
105
|
-
return { code: 1, message: 'Invalid TFN, only numbers are allowed.' };
|
|
106
|
-
}
|
|
107
|
-
const length = tfn.length;
|
|
108
|
-
if (length !== 9) {
|
|
109
|
-
return {
|
|
110
|
-
code: 2, message: 'Invalid TFN, must have 9 digits.'
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
const digits = tfn.split('').map(d => parseInt(d));
|
|
114
|
-
const sum = (digits[0] * 1)
|
|
115
|
-
+ (digits[1] * 4)
|
|
116
|
-
+ (digits[2] * 3)
|
|
117
|
-
+ (digits[3] * 7)
|
|
118
|
-
+ (digits[4] * 5)
|
|
119
|
-
+ (digits[5] * 8)
|
|
120
|
-
+ (digits[6] * 6)
|
|
121
|
-
+ (digits[7] * 9)
|
|
122
|
-
+ (digits[8] * 10);
|
|
123
|
-
const remainder = sum % 11;
|
|
124
|
-
const valid = remainder === 0;
|
|
125
|
-
if (!valid) {
|
|
126
|
-
return { code: 3, message: 'Checksum is incorrect.' };
|
|
127
|
-
}
|
|
128
|
-
return null;
|
|
129
|
-
}
|
|
130
|
-
static addWeighted(p, v, i) {
|
|
131
|
-
return p + v * StringAusFunc.weights[i];
|
|
132
|
-
}
|
|
133
|
-
static addAcnWeighted(p, v, i) {
|
|
134
|
-
return p + v * StringAusFunc.acnWeights[i];
|
|
135
|
-
}
|
|
136
|
-
static generateLookup() {
|
|
137
|
-
const ns = [];
|
|
138
|
-
for (let i = 0; i < 10; ++i) {
|
|
139
|
-
ns[i * 19 % 89] = i;
|
|
140
|
-
}
|
|
141
|
-
return ns;
|
|
142
|
-
}
|
|
143
|
-
static validateABN(abn) {
|
|
144
|
-
if (!abn) {
|
|
145
|
-
return null;
|
|
146
|
-
}
|
|
147
|
-
const digits = abn.replace(/[^\d]/g, '').split('').map(Number);
|
|
148
|
-
if (digits.length !== 11) {
|
|
149
|
-
return { code: 1, message: 'Expect 11-digit.' };
|
|
150
|
-
}
|
|
151
|
-
digits[0] -= 1;
|
|
152
|
-
const sum = digits.reduce(StringAusFunc.addWeighted, 0);
|
|
153
|
-
if (sum % 89 === 0) {
|
|
154
|
-
return null;
|
|
155
|
-
}
|
|
156
|
-
digits[0] += 1;
|
|
157
|
-
let sum1 = sum - digits[10] * StringAusFunc.weights[10];
|
|
158
|
-
let digit = StringAusFunc.suggestLookup[89 - sum1 % 89];
|
|
159
|
-
if (digit !== undefined) {
|
|
160
|
-
return {
|
|
161
|
-
code: 2,
|
|
162
|
-
message: 'Checksum1 is incorrect.'
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
const sum2 = sum1 - digits[9] * StringAusFunc.weights[9];
|
|
167
|
-
for (let i = 0; i < 10; ++i) {
|
|
168
|
-
sum1 = sum2 + i * StringAusFunc.weights[9];
|
|
169
|
-
digit = StringAusFunc.suggestLookup[89 - sum1 % 89];
|
|
170
|
-
if (digit !== undefined) {
|
|
171
|
-
return {
|
|
172
|
-
code: 3,
|
|
173
|
-
message: 'Checksum2 is incorrect.'
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
return null;
|
|
179
|
-
}
|
|
180
|
-
static validateACN(acn) {
|
|
181
|
-
if (!acn) {
|
|
182
|
-
return null;
|
|
183
|
-
}
|
|
184
|
-
const digits = acn.replace(/[^\d]/g, '').split('').map(Number);
|
|
185
|
-
console.log(digits);
|
|
186
|
-
if (digits.length !== 9) {
|
|
187
|
-
return { code: 1, message: 'Expect 9-digit.' };
|
|
188
|
-
}
|
|
189
|
-
const sum = digits.slice(0, 8).reduce(StringAusFunc.addAcnWeighted, 0);
|
|
190
|
-
const lastDigit = 10 - sum % 10;
|
|
191
|
-
if (lastDigit === digits[8]) {
|
|
192
|
-
return null;
|
|
193
|
-
}
|
|
194
|
-
return {
|
|
195
|
-
code: 2,
|
|
196
|
-
message: 'Checksum is incorrect.'
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nQXVzRnVuYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25tY2UtZnVuYy9zcmMvX2Z1bmMvc3RyaW5nQXVzRnVuYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBRXpCLDBIQUEwSDtJQUNsSCxNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFekQsTUFBTSxDQUFDLGFBQWEsR0FBYSxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUM7SUFFeEU7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUE0QjtRQUNuRCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDUixPQUFPLElBQUksQ0FBQztRQUNiLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzFCLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7WUFFeEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNkLE9BQU87b0JBQ04sSUFBSSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsc0NBQXNDO2lCQUN4RCxDQUFDO1lBQ0gsQ0FBQztZQUVELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4QixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFekMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQ1osS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDekMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFFRCwyREFBMkQ7WUFDM0QsTUFBTSxPQUFPLEdBQUcsR0FBRyxHQUFHLEVBQUUsS0FBSyxRQUFRLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDZCxPQUFPO29CQUNOLElBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLHdCQUF3QjtpQkFDMUMsQ0FBQztZQUNILENBQUM7UUFDRixDQUFDO2FBQU0sQ0FBQztZQUNQLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxDQUFDO1FBQ3JELENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQUMsOEJBQThCLENBQUMsY0FBeUM7UUFDOUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1FBQ2IsQ0FBQztRQUVELElBQUksQ0FBQyxtREFBbUQsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUMvRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsQ0FBQztRQUNyRSxDQUFDO1FBRUQsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNoTSxNQUFNLGVBQWUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNoRixNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFdkMsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDeEYsTUFBTSxXQUFXLEdBQUcsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckYsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRW5DLE1B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QUFJLENBQUM7UUFDYixDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvRCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BCLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6QixPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztRQUNoRCxDQUFDO1FBR0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkUsTUFBTSxTQUFTLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDaEMsSUFBSSxTQUFTLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUM7UUFDYixDQUFDO1FBRUQsT0FBTztZQUNOLElBQUksRUFBRSxDQUFDO1lBQ1AsT0FBTyxFQUFFLHdCQUF3QjtTQUNqQyxDQUFDO0lBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBTdHJpbmcgZnVuY3Rpb25zIHNwZWNpZmljIHRvIEF1c3RyYWxpYVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFN0cmluZ0F1c0Z1bmMge1xyXG5cclxuXHQvL3RoYW5rcyB0byBodHRwczovL2dpdGh1Yi5jb20vc2lkb3JhcmVzL2F1c3RyYWxpYW4tYnVzaW5lc3MtbnVtYmVyL2Jsb2IvMDU5MTQ3NWY1OTc4ZmQxMjJiNDcyZWRjZGM3ZWZlNmQ5NmQ1NmYyNi9pbmRleC5qc1xyXG5cdHByaXZhdGUgc3RhdGljIGFjbldlaWdodHMgPSBbOCwgNywgNiwgNSwgNCwgMywgMiwgMV07XHJcblx0cHJpdmF0ZSBzdGF0aWMgd2VpZ2h0cyA9IFsxMCwgMSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNSwgMTcsIDE5XTtcclxuXHJcblx0cHJpdmF0ZSBzdGF0aWMgc3VnZ2VzdExvb2t1cDogbnVtYmVyW10gPSBTdHJpbmdBdXNGdW5jLmdlbmVyYXRlTG9va3VwKCk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFZhbGlkYXRlIG1lZGljYXJlIG51bWJlclxyXG5cdCAqIEBwYXJhbSBuXHJcblx0ICogQHJldHVybnMgdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlXHJcblx0ICovXHJcblx0c3RhdGljIHZhbGlkYXRlTWVkaWNhcmUobjogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHsgY29kZTogbnVtYmVyLCBtZXNzYWdlOiBzdHJpbmcgfSB8IG51bGwge1xyXG5cdFx0aWYgKCFuKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChuICYmIG4ubGVuZ3RoID09PSAxMCkge1xyXG5cdFx0XHRjb25zdCBtYXRjaGVzID0gbi5tYXRjaCgvXihcXGR7OH0pKFxcZCkvKTtcclxuXHJcblx0XHRcdGlmICghbWF0Y2hlcykge1xyXG5cdFx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHRjb2RlOiAyLCBtZXNzYWdlOiAnTWVkaWNhcmUgbnVtYmVyIHNob3VsZCBiZSBhbGwgZGlnaXQuJ1xyXG5cdFx0XHRcdH07XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGNvbnN0IGJhc2UgPSBtYXRjaGVzWzFdO1xyXG5cdFx0XHRjb25zdCBjaGVja0RpZ2l0ID0gbWF0Y2hlc1syXTtcclxuXHRcdFx0Y29uc3Qgd2VpZ2h0cyA9IFsxLCAzLCA3LCA5LCAxLCAzLCA3LCA5XTtcclxuXHJcblx0XHRcdGxldCBzdW0gPSAwO1xyXG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHdlaWdodHMubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRzdW0gKz0gcGFyc2VJbnQoYmFzZVtpXSwgMTApICogd2VpZ2h0c1tpXTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly9jb25zb2xlLmRlYnVnKGBzdW06ICR7c3VtfSAgY2hlY2tEaWdpdHM6ICR7Y2hlY2tEaWdpdH1gKTtcclxuXHRcdFx0Y29uc3QgaXNWYWxpZCA9IHN1bSAlIDEwID09PSBwYXJzZUludChjaGVja0RpZ2l0LCAxMCk7XHJcblx0XHRcdGlmICghaXNWYWxpZCkge1xyXG5cdFx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHRjb2RlOiAzLCBtZXNzYWdlOiAnQ2hlY2tzdW0gaXMgaW5jb3JyZWN0LidcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXR1cm4geyBjb2RlOiAxLCBtZXNzYWdlOiAnTGVuZ3RoIHNob3VsZCBiZSAxMC4nIH07XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgdmFsaWRhdGVNZWRpY2FyZVByb3ZpZGVyTnVtYmVyKHByb3ZpZGVyTnVtYmVyOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogeyBjb2RlOiBudW1iZXIsIG1lc3NhZ2U6IHN0cmluZyB9IHwgbnVsbCB7XHJcblx0XHRpZiAoIXByb3ZpZGVyTnVtYmVyKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICghL15bMC05XXs2fVswLTlBQkNERUZHSEpLTE1OUFFSVFVWV1hZXVtBQkZISktMVFdYWV0vLnRlc3QocHJvdmlkZXJOdW1iZXIpKSB7XHJcblx0XHRcdHJldHVybiB7IGNvZGU6IDEsIG1lc3NhZ2U6ICdOb3QgbWF0Y2hpbmcgcHJvdmlkZXIgbnVtYmVyIGZvcm1hdC4nIH07XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgcHJhY3RpY2VMb2NhdGlvblZhbHVlcyA9IFsnMCcsICcxJywgJzInLCAnMycsICc0JywgJzUnLCAnNicsICc3JywgJzgnLCAnOScsICdBJywgJ0InLCAnQycsICdEJywgJ0UnLCAnRicsICdHJywgJ0gnLCAnSicsICdLJywgJ0wnLCAnTScsICdOJywgJ1AnLCAnUScsICdSJywgJ1QnLCAnVScsICdWJywgJ1cnLCAnWCcsICdZJ107XHJcblx0XHRjb25zdCByZW1haW5kZXJWYWx1ZXMgPSBbJ1knLCAnWCcsICdXJywgJ1QnLCAnTCcsICdLJywgJ0onLCAnSCcsICdGJywgJ0InLCAnQSddO1xyXG5cdFx0Y29uc3Qgc3RlbVdlaWdodHMgPSBbMywgNSwgOCwgNCwgMiwgMV07XHJcblxyXG5cdFx0Y29uc3Qgc3RlbU51bWJlcnMgPSBwcm92aWRlck51bWJlci5zdWJzdHIoMCwgNikuc3BsaXQoJycpLm1hcCgoY2hhcikgPT4gcGFyc2VJbnQoY2hhcikpO1xyXG5cdFx0Y29uc3QgcHJhY3RpY2VMb2MgPSBwcmFjdGljZUxvY2F0aW9uVmFsdWVzLmZpbmRJbmRleCgoZSkgPT4gZSA9PT0gcHJvdmlkZXJOdW1iZXJbNl0pO1xyXG5cdFx0Y29uc3QgY2hlY2tzdW0gPSBwcm92aWRlck51bWJlcls3XTtcclxuXHJcblx0XHRjb25zdCB6aXBwZWQgPSBzdGVtV2VpZ2h0cy5tYXAoKHgsIGkpID0+IFt4LCBzdGVtTnVtYmVyc1tpXV0pO1xyXG5cdFx0Y29uc3Qgc3VtV2VpZ2h0cyA9IHppcHBlZC5tYXAoKHkpID0+IHlbMV0gKiB5WzBdKS5yZWR1Y2UoKHRvdGFsLCBudW0pID0+IHRvdGFsICsgbnVtKTtcclxuXHRcdGNvbnN0IHJlbWFpbmRlciA9IChzdW1XZWlnaHRzICsgcHJhY3RpY2VMb2MgKiA2KSAlIDExO1xyXG5cclxuXHRcdGNvbnN0IHJlc3VsdCA9IHJlbWFpbmRlclZhbHVlc1tyZW1haW5kZXJdO1xyXG5cclxuXHRcdGNvbnN0IHZhbGlkID0gcmVzdWx0ID09PSBjaGVja3N1bTtcclxuXHRcdGlmICghdmFsaWQpIHtcclxuXHRcdFx0cmV0dXJuIHsgY29kZTogMiwgbWVzc2FnZTogJ0NoZWNrc3VtIGlzIGluY29ycmVjdC4nIH07XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgdmFsaWRhdGVEVkFGaWxlTnVtYmVyKGR2YTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHsgY29kZTogbnVtYmVyLCBtZXNzYWdlOiBzdHJpbmcgfSB8IG51bGwge1xyXG5cdFx0aWYgKCFkdmEpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3Qgc3RhdGVzID0gWydOJywgJ1YnLCAnUScsICdTJywgJ1cnLCAnVCddO1xyXG5cdFx0Y29uc3Qgd2FyQ29kZXMgPSBbJyAnLCAnWCcsICdLTScsICdTUicsICdTUycsICdTTScsICdTV1AnLCAnQUdYJywgJ0JXJywgJ0dXJywgJ0NHVycsIC8vQXVzdHJhbGlhbiBGb3JjZXNcclxuXHRcdFx0J1AnLCAnUFgnLCAnUEFEJywgJ1BBTScsICdQQ0EnLCAnUENSJywgJ1BDVicsICdQTVMnLCAnUFNXJywgJ1BXTycsICdIS1gnLCAnTUFMJywgLy9Ccml0aXNoIEFkbWluaXN0cmF0aW9uIEdyb3VwXHJcblx0XHRcdCdDTicsICdDTlgnLCAnSVYnLCAnTkYnLCAnTkcnLCAnUkQnLCAnUkRYJywgJ1NBJywgJ1NBWCcsICdBJywgLy9PdGhlciBPdmVyc2VhcyBGb3JjZXNcclxuXHRcdFx0J04nLCAnTlgnLCAnTlNXJywgJ05TTScsIC8vTmV3IFplYWxhbmQgQWRtaW5pc3RyYXRpb24gR3JvdXBcclxuXHRcdFx0J0JVUicsICdDTksnLCAnQ05TJywgJ0ZJSicsICdHSEEnLCAnSEtTJywgJ0lORCcsICdLWUEnLCAnTUFVJywgJ01MUycsICdNVFgnLCAnTVdJJywgJ05LJywgJ05HUicsICdOUkQnLCAnTlNTJywgJ1BLJ10vL0JyaXRpc2ggQ29tbW9ud2VhbHRoIENvdW50cmllcyAtIFNQIEVsaWdpYmlsaXR5XHJcblxyXG5cdFx0aWYgKCFzdGF0ZXMuaW5jbHVkZXMoZHZhLmNoYXJBdCgwKSkpIHtcclxuXHRcdFx0cmV0dXJuIHsgY29kZTogMSwgbWVzc2FnZTogJ1N0YXRlIGluY29ycmVjdC4nIH07XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgbnMgPSBkdmEubWF0Y2goL1xcZCsvKTtcclxuXHRcdGlmICghbnMpIHtcclxuXHRcdFx0cmV0dXJuIHsgY29kZTogMiwgbWVzc2FnZTogJ05vIG51bWJlci4nIH07XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgbiA9IG5zWzBdO1xyXG5cdFx0Y29uc3QgaWR4T2ZOID0gZHZhLmluZGV4T2Yobik7XHJcblx0XHRjb25zdCB3YXJDb2RlID0gZHZhLnN1YnN0cmluZygxLCBpZHhPZk4pO1xyXG5cdFx0aWYgKCF3YXJDb2Rlcy5pbmNsdWRlcyh3YXJDb2RlKSkge1xyXG5cdFx0XHRyZXR1cm4geyBjb2RlOiAzLCBtZXNzYWdlOiAnV2FyIGNvZGUgaW52YWxpZC4nIH1cclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBsZW5PZk4gPSBuLmxlbmd0aDtcclxuXHRcdGNvbnN0IGxlbk9mV2MgPSB3YXJDb2RlLmxlbmd0aDtcclxuXHRcdGlmIChsZW5PZk4gKyBsZW5PZldjID4gNykge1xyXG5cdFx0XHRyZXR1cm4geyBjb2RlOiA0LCBtZXNzYWdlOiAnRmlsZSBudW1iZXIgbGVuZ3RoIHNob3VsZCBub3QgYmUgZ3JlYXRlciA3LicgfVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBudWxsO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIHZhbGlkYXRlVEZOKG46IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiB7IGNvZGU6IG51bWJlciwgbWVzc2FnZTogc3RyaW5nIH0gfCBudWxsIHtcclxuXHRcdGlmICghbikge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCB0Zm4gPSBuLnJlcGxhY2UoL1xccysvZywgJycpLnJlcGxhY2UoL1stXS9nLCAnJyk7XHJcblxyXG5cdFx0Y29uc3QgaXNOdW1iZXIgPSAvXlswLTldKyQvLnRlc3QodGZuKTtcclxuXHRcdGlmICghaXNOdW1iZXIpIHtcclxuXHRcdFx0cmV0dXJuIHsgY29kZTogMSwgbWVzc2FnZTogJ0ludmFsaWQgVEZOLCBvbmx5IG51bWJlcnMgYXJlIGFsbG93ZWQuJyB9O1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGxlbmd0aCA9IHRmbi5sZW5ndGg7XHJcblx0XHRpZiAobGVuZ3RoICE9PSA5KSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0Y29kZTogMiwgbWVzc2FnZTogJ0ludmFsaWQgVEZOLCBtdXN0IGhhdmUgOSBkaWdpdHMuJ1xyXG5cdFx0XHR9O1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGRpZ2l0cyA9IHRmbi5zcGxpdCgnJykubWFwKGQgPT4gcGFyc2VJbnQoZCkpO1xyXG5cclxuXHRcdGNvbnN0IHN1bSA9IChkaWdpdHNbMF0gKiAxKVxyXG5cdFx0XHQrIChkaWdpdHNbMV0gKiA0KVxyXG5cdFx0XHQrIChkaWdpdHNbMl0gKiAzKVxyXG5cdFx0XHQrIChkaWdpdHNbM10gKiA3KVxyXG5cdFx0XHQrIChkaWdpdHNbNF0gKiA1KVxyXG5cdFx0XHQrIChkaWdpdHNbNV0gKiA4KVxyXG5cdFx0XHQrIChkaWdpdHNbNl0gKiA2KVxyXG5cdFx0XHQrIChkaWdpdHNbN10gKiA5KVxyXG5cdFx0XHQrIChkaWdpdHNbOF0gKiAxMCk7XHJcblxyXG5cdFx0Y29uc3QgcmVtYWluZGVyID0gc3VtICUgMTE7XHJcblx0XHRjb25zdCB2YWxpZCA9IHJlbWFpbmRlciA9PT0gMDtcclxuXHRcdGlmICghdmFsaWQpIHtcclxuXHRcdFx0cmV0dXJuIHsgY29kZTogMywgbWVzc2FnZTogJ0NoZWNrc3VtIGlzIGluY29ycmVjdC4nIH07XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHN0YXRpYyBhZGRXZWlnaHRlZChwOiBudW1iZXIsIHY6IG51bWJlciwgaTogbnVtYmVyKSB7XHJcblx0XHRyZXR1cm4gcCArIHYgKiBTdHJpbmdBdXNGdW5jLndlaWdodHNbaV07XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHN0YXRpYyBhZGRBY25XZWlnaHRlZChwOiBudW1iZXIsIHY6IG51bWJlciwgaTogbnVtYmVyKSB7XHJcblx0XHRyZXR1cm4gcCArIHYgKiBTdHJpbmdBdXNGdW5jLmFjbldlaWdodHNbaV07XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHN0YXRpYyBnZW5lcmF0ZUxvb2t1cCgpOiBudW1iZXJbXSB7XHJcblx0XHRjb25zdCBuczogbnVtYmVyW10gPSBbXTtcclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgMTA7ICsraSkge1xyXG5cdFx0XHRuc1tpICogMTkgJSA4OV0gPSBpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBucztcclxuXHR9XHJcblxyXG5cdHN0YXRpYyB2YWxpZGF0ZUFCTihhYm46IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiB7IGNvZGU6IG51bWJlciwgbWVzc2FnZTogc3RyaW5nIH0gfCBudWxsIHtcclxuXHRcdGlmICghYWJuKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGRpZ2l0cyA9IGFibi5yZXBsYWNlKC9bXlxcZF0vZywgJycpLnNwbGl0KCcnKS5tYXAoTnVtYmVyKTtcclxuXHRcdGlmIChkaWdpdHMubGVuZ3RoICE9PSAxMSkge1xyXG5cdFx0XHRyZXR1cm4geyBjb2RlOiAxLCBtZXNzYWdlOiAnRXhwZWN0IDExLWRpZ2l0LicgfTtcclxuXHRcdH1cclxuXHJcblx0XHRkaWdpdHNbMF0gLT0gMTtcclxuXHJcblx0XHRjb25zdCBzdW0gPSBkaWdpdHMucmVkdWNlKFN0cmluZ0F1c0Z1bmMuYWRkV2VpZ2h0ZWQsIDApO1xyXG5cclxuXHRcdGlmIChzdW0gJSA4OSA9PT0gMCkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRkaWdpdHNbMF0gKz0gMTtcclxuXHJcblx0XHRsZXQgc3VtMSA9IHN1bSAtIGRpZ2l0c1sxMF0gKiBTdHJpbmdBdXNGdW5jLndlaWdodHNbMTBdO1xyXG5cdFx0bGV0IGRpZ2l0ID0gU3RyaW5nQXVzRnVuYy5zdWdnZXN0TG9va3VwWzg5IC0gc3VtMSAlIDg5XTtcclxuXHRcdGlmIChkaWdpdCAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0Y29kZTogMixcclxuXHRcdFx0XHRtZXNzYWdlOiAnQ2hlY2tzdW0xIGlzIGluY29ycmVjdC4nXHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNvbnN0IHN1bTIgPSBzdW0xIC0gZGlnaXRzWzldICogU3RyaW5nQXVzRnVuYy53ZWlnaHRzWzldO1xyXG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IDEwOyArK2kpIHtcclxuXHRcdFx0XHRzdW0xID0gc3VtMiArIGkgKiBTdHJpbmdBdXNGdW5jLndlaWdodHNbOV07XHJcblx0XHRcdFx0ZGlnaXQgPSBTdHJpbmdBdXNGdW5jLnN1Z2dlc3RMb29rdXBbODkgLSBzdW0xICUgODldO1xyXG5cdFx0XHRcdGlmIChkaWdpdCAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdFx0XHRjb2RlOiAzLFxyXG5cdFx0XHRcdFx0XHRtZXNzYWdlOiAnQ2hlY2tzdW0yIGlzIGluY29ycmVjdC4nXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIG51bGxcclxuXHR9XHJcblxyXG5cdHN0YXRpYyB2YWxpZGF0ZUFDTihhY246IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiB7IGNvZGU6IG51bWJlciwgbWVzc2FnZTogc3RyaW5nIH0gfCBudWxsIHtcclxuXHRcdGlmICghYWNuKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGRpZ2l0cyA9IGFjbi5yZXBsYWNlKC9bXlxcZF0vZywgJycpLnNwbGl0KCcnKS5tYXAoTnVtYmVyKTtcclxuXHRcdGNvbnNvbGUubG9nKGRpZ2l0cyk7XHJcblx0XHRpZiAoZGlnaXRzLmxlbmd0aCAhPT0gOSkge1xyXG5cdFx0XHRyZXR1cm4geyBjb2RlOiAxLCBtZXNzYWdlOiAnRXhwZWN0IDktZGlnaXQuJyB9O1xyXG5cdFx0fVxyXG5cclxuXHJcblx0XHRjb25zdCBzdW0gPSBkaWdpdHMuc2xpY2UoMCwgOCkucmVkdWNlKFN0cmluZ0F1c0Z1bmMuYWRkQWNuV2VpZ2h0ZWQsIDApO1xyXG5cdFx0Y29uc3QgbGFzdERpZ2l0ID0gMTAgLSBzdW0gJSAxMDtcclxuXHRcdGlmIChsYXN0RGlnaXQgPT09IGRpZ2l0c1s4XSkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRjb2RlOiAyLFxyXG5cdFx0XHRtZXNzYWdlOiAnQ2hlY2tzdW0gaXMgaW5jb3JyZWN0LidcclxuXHRcdH07XHJcblx0fVxyXG59XHJcbiJdfQ==
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
export class StringFunc {
|
|
2
|
-
/**
|
|
3
|
-
* Up to 2 letters. For John Smith, returns JS, for Huang, Zijian, returns ZH
|
|
4
|
-
* @param s
|
|
5
|
-
*/
|
|
6
|
-
static getAbbr(s) {
|
|
7
|
-
if (!s) {
|
|
8
|
-
return '';
|
|
9
|
-
}
|
|
10
|
-
const sArray = s.split(/[\s,]+/);
|
|
11
|
-
const comma = s.indexOf(',') >= 0;
|
|
12
|
-
if (sArray.length === 1) {
|
|
13
|
-
return sArray[0][0];
|
|
14
|
-
}
|
|
15
|
-
return comma ? sArray[1][0] + sArray[0][0] : sArray[0][0] + sArray[1][0];
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* A substring with line breaks replaced by space.
|
|
19
|
-
* @param s
|
|
20
|
-
* @param length
|
|
21
|
-
* @returns result, or empty string if the input is empty, null or undefined
|
|
22
|
-
*/
|
|
23
|
-
static getOneLineDigest(s, length) {
|
|
24
|
-
if (!s) {
|
|
25
|
-
return '';
|
|
26
|
-
}
|
|
27
|
-
const ss = s.substring(0, length);
|
|
28
|
-
const st = ss.replace(new RegExp('\n', 'g'), ' ') + ((s.length > length) ? '...' : '');
|
|
29
|
-
return st.trim();
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Remove line breaks and econde with encodeURI() so the data could be saved in Azure as meta. If the string is truncated, the return will have ... suffix.
|
|
33
|
-
* @param s
|
|
34
|
-
* @param length
|
|
35
|
-
* @returns result, or empty string if the input is empty, null or undefined
|
|
36
|
-
*/
|
|
37
|
-
static getOneLineDigestOfHtml(s, length) {
|
|
38
|
-
if (!s) {
|
|
39
|
-
return '';
|
|
40
|
-
}
|
|
41
|
-
const ss = s.substring(0, length);
|
|
42
|
-
const st = ss.replace(new RegExp('\n', 'g'), ' ') + ((s.length > length) ? '...' : '');
|
|
43
|
-
return encodeURI(st.trim()); //need to encode in order to save as meta in Azure.
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Pad number with zero
|
|
47
|
-
* @param num
|
|
48
|
-
* @param size
|
|
49
|
-
* @returns
|
|
50
|
-
*/
|
|
51
|
-
static pad(num, size) {
|
|
52
|
-
if (num == null) {
|
|
53
|
-
return '';
|
|
54
|
-
}
|
|
55
|
-
let s = num + '';
|
|
56
|
-
while (s.length < size) {
|
|
57
|
-
s = '0' + s;
|
|
58
|
-
}
|
|
59
|
-
return s;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* get plain text of HTML content
|
|
63
|
-
* @param s
|
|
64
|
-
* @returns result. If input is empty, null, or undefined, return the same.
|
|
65
|
-
*/
|
|
66
|
-
static getHtmlPlainText(s) {
|
|
67
|
-
if (!s) {
|
|
68
|
-
return null;
|
|
69
|
-
}
|
|
70
|
-
const parser = new DOMParser();
|
|
71
|
-
const html = parser.parseFromString(s, 'text/html');
|
|
72
|
-
return html.body.textContent;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
*
|
|
76
|
-
* @param s
|
|
77
|
-
* @returns result. If input is empty, null, or undefined, return the same.
|
|
78
|
-
*/
|
|
79
|
-
static capitalizeWords(s) {
|
|
80
|
-
if (!s) {
|
|
81
|
-
return s;
|
|
82
|
-
}
|
|
83
|
-
return s.replace(/(?:^|\s)\S/g, (a) => a.toUpperCase());
|
|
84
|
-
}
|
|
85
|
-
static validateEmail(email) {
|
|
86
|
-
if (!email) {
|
|
87
|
-
return true;
|
|
88
|
-
}
|
|
89
|
-
const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
|
90
|
-
return re.test(email.toLowerCase());
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nRnVuYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25tY2UtZnVuYy9zcmMvX2Z1bmMvc3RyaW5nRnVuYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sVUFBVTtJQUV0Qjs7O09BR0c7SUFDSCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQTRCO1FBQzFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNSLE9BQU8sRUFBRSxDQUFDO1FBQ1gsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBNEIsRUFBRSxNQUFjO1FBQ25FLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNSLE9BQU8sRUFBRSxDQUFDO1FBQ1gsQ0FBQztRQUVELE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZGLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUE0QixFQUFFLE1BQWM7UUFDekUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1IsT0FBTyxFQUFFLENBQUM7UUFDWCxDQUFDO1FBRUQsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkYsT0FBTyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxtREFBbUQ7SUFDakYsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUF1QixFQUFFLElBQVk7UUFDL0MsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDakIsT0FBTyxFQUFFLENBQUM7UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNqQixPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLENBQUM7WUFBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUFDLENBQUM7UUFDeEMsT0FBTyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUE0QjtRQUNuRCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDUixPQUFPLElBQUksQ0FBQztRQUNiLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQy9CLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLENBQTRCO1FBQ2xELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNSLE9BQU8sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztRQUVELE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQWdDO1FBQ3BELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNaLE9BQU8sSUFBSSxDQUFDO1FBQ2IsQ0FBQztRQUNELE1BQU0sRUFBRSxHQUFHLHVKQUF1SixDQUFDO1FBQ25LLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgU3RyaW5nRnVuYyB7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFVwIHRvIDIgbGV0dGVycy4gRm9yIEpvaG4gU21pdGgsIHJldHVybnMgSlMsIGZvciBIdWFuZywgWmlqaWFuLCByZXR1cm5zIFpIXHJcblx0ICogQHBhcmFtIHNcclxuXHQgKi9cclxuXHRzdGF0aWMgZ2V0QWJicihzOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKSB7XHJcblx0XHRpZiAoIXMpIHtcclxuXHRcdFx0cmV0dXJuICcnO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHNBcnJheSA9IHMuc3BsaXQoL1tcXHMsXSsvKTtcclxuXHRcdGNvbnN0IGNvbW1hID0gcy5pbmRleE9mKCcsJykgPj0gMDtcclxuXHJcblx0XHRpZiAoc0FycmF5Lmxlbmd0aCA9PT0gMSkge1xyXG5cdFx0XHRyZXR1cm4gc0FycmF5WzBdWzBdO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBjb21tYSA/IHNBcnJheVsxXVswXSArIHNBcnJheVswXVswXSA6IHNBcnJheVswXVswXSArIHNBcnJheVsxXVswXTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgc3Vic3RyaW5nIHdpdGggbGluZSBicmVha3MgcmVwbGFjZWQgYnkgc3BhY2UuXHJcblx0ICogQHBhcmFtIHNcclxuXHQgKiBAcGFyYW0gbGVuZ3RoXHJcblx0ICogQHJldHVybnMgcmVzdWx0LCBvciBlbXB0eSBzdHJpbmcgaWYgdGhlIGlucHV0IGlzIGVtcHR5LCBudWxsIG9yIHVuZGVmaW5lZFxyXG5cdCAqL1xyXG5cdHN0YXRpYyBnZXRPbmVMaW5lRGlnZXN0KHM6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsIGxlbmd0aDogbnVtYmVyKSB7XHJcblx0XHRpZiAoIXMpIHtcclxuXHRcdFx0cmV0dXJuICcnO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHNzID0gcy5zdWJzdHJpbmcoMCwgbGVuZ3RoKTtcclxuXHRcdGNvbnN0IHN0ID0gc3MucmVwbGFjZShuZXcgUmVnRXhwKCdcXG4nLCAnZycpLCAnICcpICsgKChzLmxlbmd0aCA+IGxlbmd0aCkgPyAnLi4uJyA6ICcnKTtcclxuXHRcdHJldHVybiBzdC50cmltKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBSZW1vdmUgbGluZSBicmVha3MgYW5kIGVjb25kZSB3aXRoIGVuY29kZVVSSSgpIHNvIHRoZSBkYXRhIGNvdWxkIGJlIHNhdmVkIGluIEF6dXJlIGFzIG1ldGEuIElmIHRoZSBzdHJpbmcgaXMgdHJ1bmNhdGVkLCB0aGUgcmV0dXJuIHdpbGwgaGF2ZSAuLi4gc3VmZml4LlxyXG5cdCAqIEBwYXJhbSBzXHJcblx0ICogQHBhcmFtIGxlbmd0aFxyXG5cdCAqIEByZXR1cm5zIHJlc3VsdCwgb3IgZW1wdHkgc3RyaW5nIGlmIHRoZSBpbnB1dCBpcyBlbXB0eSwgbnVsbCBvciB1bmRlZmluZWRcclxuXHQgKi9cclxuXHRzdGF0aWMgZ2V0T25lTGluZURpZ2VzdE9mSHRtbChzOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLCBsZW5ndGg6IG51bWJlcikge1xyXG5cdFx0aWYgKCFzKSB7XHJcblx0XHRcdHJldHVybiAnJztcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBzcyA9IHMuc3Vic3RyaW5nKDAsIGxlbmd0aCk7XHJcblx0XHRjb25zdCBzdCA9IHNzLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxuJywgJ2cnKSwgJyAnKSArICgocy5sZW5ndGggPiBsZW5ndGgpID8gJy4uLicgOiAnJyk7XHJcblx0XHRyZXR1cm4gZW5jb2RlVVJJKHN0LnRyaW0oKSk7IC8vbmVlZCB0byBlbmNvZGUgaW4gb3JkZXIgdG8gc2F2ZSBhcyBtZXRhIGluIEF6dXJlLlxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogUGFkIG51bWJlciB3aXRoIHplcm9cclxuXHQgKiBAcGFyYW0gbnVtIFxyXG5cdCAqIEBwYXJhbSBzaXplIFxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdHN0YXRpYyBwYWQobnVtOiBudW1iZXIgfCB1bmRlZmluZWQsIHNpemU6IG51bWJlcik6IHN0cmluZyB7XHJcblx0XHRpZiAobnVtID09IG51bGwpIHtcclxuXHRcdFx0cmV0dXJuICcnO1xyXG5cdFx0fVxyXG5cclxuXHRcdGxldCBzID0gbnVtICsgJyc7XHJcblx0XHR3aGlsZSAocy5sZW5ndGggPCBzaXplKSB7IHMgPSAnMCcgKyBzOyB9XHJcblx0XHRyZXR1cm4gcztcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIGdldCBwbGFpbiB0ZXh0IG9mIEhUTUwgY29udGVudFxyXG5cdCAqIEBwYXJhbSBzXHJcblx0ICogQHJldHVybnMgcmVzdWx0LiBJZiBpbnB1dCBpcyBlbXB0eSwgbnVsbCwgb3IgdW5kZWZpbmVkLCByZXR1cm4gdGhlIHNhbWUuXHJcblx0ICovXHJcblx0c3RhdGljIGdldEh0bWxQbGFpblRleHQoczogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IG51bGwge1xyXG5cdFx0aWYgKCFzKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHBhcnNlciA9IG5ldyBET01QYXJzZXIoKTtcclxuXHRcdGNvbnN0IGh0bWwgPSBwYXJzZXIucGFyc2VGcm9tU3RyaW5nKHMsICd0ZXh0L2h0bWwnKTtcclxuXHRcdHJldHVybiBodG1sLmJvZHkudGV4dENvbnRlbnQ7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSBzXHJcblx0ICogQHJldHVybnMgcmVzdWx0LiBJZiBpbnB1dCBpcyBlbXB0eSwgbnVsbCwgb3IgdW5kZWZpbmVkLCByZXR1cm4gdGhlIHNhbWUuXHJcblx0ICovXHJcblx0c3RhdGljIGNhcGl0YWxpemVXb3JkcyhzOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCB7IC8vIHRoYW5rcyB0byBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yMzMyODExL2NhcGl0YWxpemUtd29yZHMtaW4tc3RyaW5nXHJcblx0XHRpZiAoIXMpIHtcclxuXHRcdFx0cmV0dXJuIHM7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHMucmVwbGFjZSgvKD86XnxcXHMpXFxTL2csIChhKSA9PiBhLnRvVXBwZXJDYXNlKCkpO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIHZhbGlkYXRlRW1haWwoZW1haWw6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcclxuXHRcdGlmICghZW1haWwpIHtcclxuXHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHR9XHJcblx0XHRjb25zdCByZSA9IC9eKChbXjw+KClbXFxdXFxcXC4sOzpcXHNAXCJdKyhcXC5bXjw+KClbXFxdXFxcXC4sOzpcXHNAXCJdKykqKXwoXCIuK1wiKSlAKChcXFtbMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFxdKXwoKFthLXpBLVpcXC0wLTldK1xcLikrW2EtekEtWl17Mix9KSkkLztcclxuXHRcdHJldHVybiByZS50ZXN0KGVtYWlsLnRvTG93ZXJDYXNlKCkpO1xyXG5cdH1cclxufVxyXG4iXX0=
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { v4 as uuid } from 'uuid'; //todo: somehow the system could not recognize v5.
|
|
2
|
-
// https://github.com/DefinitelyTyped/DefinitelyTyped/pull/28439
|
|
3
|
-
export class UuidFunc {
|
|
4
|
-
/**
|
|
5
|
-
* 36 UUID string including 4 hyphens. MySql stores GUID as 36 bytes anyway rather than 16bytes.
|
|
6
|
-
*/
|
|
7
|
-
static newUUID() {
|
|
8
|
-
return uuid();
|
|
9
|
-
}
|
|
10
|
-
static newUUIDStartWith0() {
|
|
11
|
-
const s = uuid();
|
|
12
|
-
return '0000' + s.slice(4);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXVpZEZ1bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ubWNlLWZ1bmMvc3JjL19mdW5jL3V1aWRGdW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDLENBQUMsbURBQW1EO0FBQ3RGLGdFQUFnRTtBQUVoRSxNQUFNLE9BQU8sUUFBUTtJQUNwQjs7T0FFRztJQUNILE1BQU0sQ0FBQyxPQUFPO1FBQ2IsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsaUJBQWlCO1FBQ3ZCLE1BQU0sQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ2pCLE9BQU8sTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnOyAvL3RvZG86IHNvbWVob3cgIHRoZSBzeXN0ZW0gY291bGQgbm90IHJlY29nbml6ZSB2NS5cclxuLy8gaHR0cHM6Ly9naXRodWIuY29tL0RlZmluaXRlbHlUeXBlZC9EZWZpbml0ZWx5VHlwZWQvcHVsbC8yODQzOVxyXG5cclxuZXhwb3J0IGNsYXNzIFV1aWRGdW5jIHtcclxuXHQvKipcclxuXHQgKiAzNiBVVUlEIHN0cmluZyBpbmNsdWRpbmcgNCBoeXBoZW5zLiBNeVNxbCBzdG9yZXMgR1VJRCBhcyAzNiBieXRlcyBhbnl3YXkgcmF0aGVyIHRoYW4gMTZieXRlcy5cclxuXHQgKi9cclxuXHRzdGF0aWMgbmV3VVVJRCgpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHV1aWQoKTtcclxuXHR9XHJcblxyXG5cdHN0YXRpYyBuZXdVVUlEU3RhcnRXaXRoMCgpIHtcclxuXHRcdGNvbnN0IHMgPSB1dWlkKCk7XHJcblx0XHRyZXR1cm4gJzAwMDAnICsgcy5zbGljZSg0KTtcclxuXHR9XHJcbn1cclxuIl19
|
package/esm2022/nmce-func.mjs
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm1jZS1mdW5jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvbm1jZS1mdW5jL3NyYy9ubWNlLWZ1bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
package/esm2022/public-api.mjs
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of nmce-func
|
|
3
|
-
*/
|
|
4
|
-
export * from './_func/index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25tY2UtZnVuYy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5tY2UtZnVuY1xyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vX2Z1bmMvaW5kZXgnO1xyXG4iXX0=
|