@libs-ui/utils 0.2.29 → 0.2.30-6.2
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/base64.d.ts +5 -0
- package/cache.d.ts +16 -15
- package/color.d.ts +1 -1
- package/communicate-micro.d.ts +4 -5
- package/constants.d.ts +3 -0
- package/crypto-3rd.d.ts +4 -0
- package/crypto.d.ts +4 -0
- package/date.d.ts +49 -0
- package/dom.d.ts +36 -1
- package/download.d.ts +3 -0
- package/esm2022/base64.mjs +43 -0
- package/esm2022/cache.mjs +121 -132
- package/esm2022/color.mjs +2 -2
- package/esm2022/communicate-micro.mjs +26 -24
- package/esm2022/constants.mjs +4 -1
- package/esm2022/crypto-3rd.mjs +5 -1
- package/esm2022/crypto.mjs +5 -1
- package/esm2022/date.mjs +189 -0
- package/esm2022/dom.mjs +200 -22
- package/esm2022/download.mjs +37 -0
- package/esm2022/file.mjs +79 -0
- package/esm2022/format-text.mjs +150 -0
- package/esm2022/get-smart-axis-scale.mjs +174 -0
- package/esm2022/helpers.mjs +402 -91
- package/esm2022/http-params.mjs +15 -3
- package/esm2022/index.mjs +12 -5
- package/esm2022/inject-token.mjs +5 -0
- package/esm2022/key-cache.mjs +20 -8
- package/esm2022/language.mjs +67 -4
- package/esm2022/pattern.mjs +21 -21
- package/esm2022/random.mjs +42 -0
- package/esm2022/two-way-signal-object.mjs +113 -0
- package/esm2022/uri.mjs +22 -0
- package/esm2022/uuid.mjs +3 -2
- package/esm2022/xss-filter.mjs +10 -0
- package/fesm2022/libs-ui-utils.mjs +2454 -1096
- package/fesm2022/libs-ui-utils.mjs.map +1 -1
- package/file.d.ts +18 -0
- package/format-text.d.ts +11 -0
- package/get-smart-axis-scale.d.ts +34 -0
- package/helpers.d.ts +218 -10
- package/http-params.d.ts +2 -2
- package/index.d.ts +11 -4
- package/inject-token.d.ts +4 -0
- package/language.d.ts +32 -0
- package/package.json +7 -4
- package/pattern.d.ts +20 -20
- package/random.d.ts +3 -0
- package/two-way-signal-object.d.ts +14 -0
- package/uri.d.ts +5 -0
- package/xss-filter.d.ts +3 -0
- package/delete-unicode.d.ts +0 -1
- package/escape-html.d.ts +0 -1
- package/esm2022/delete-unicode.mjs +0 -20
- package/esm2022/escape-html.mjs +0 -12
- package/esm2022/get-color-by-id.mjs +0 -17
- package/esm2022/remove-emoji.mjs +0 -10
- package/get-color-by-id.d.ts +0 -1
- package/remove-emoji.d.ts +0 -2
package/esm2022/color.mjs
CHANGED
|
@@ -66,7 +66,7 @@ export const listColorDefine = ['#E62222', '#B81B1B', '#EB4E4E', '#F97316', '#C7
|
|
|
66
66
|
'#1B59C4', '#4E8CF7', '#226FF5', '#1B59C4', '#4E8CF7', '#6366F1', '#4F52C1', '#8285F4', '#5B04B3', '#49038F', '#7C36C2', '#D946EF', '#AE38BF', '#E16BF2', '#EC4899', '#BD3A7A', '#F06DAD', '#F43F5E', '#C3324B', '#F6657E', '#757380', '#5E5C66', '#918F99',
|
|
67
67
|
'#202020', '#1A1A1A', '#4D4D4D'
|
|
68
68
|
];
|
|
69
|
-
export const
|
|
69
|
+
export const getColorById = (str) => {
|
|
70
70
|
let hashString = 0;
|
|
71
71
|
if (!str) {
|
|
72
72
|
return '';
|
|
@@ -78,4 +78,4 @@ export const GetColorById = (str) => {
|
|
|
78
78
|
}
|
|
79
79
|
return listColorDefine[Math.abs(hashString) % listColorDefine.length];
|
|
80
80
|
};
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzLXVpL3V0aWxzL3NyYy9jb2xvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQyxDQUFDO0FBQ0YsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ2hCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQztBQUVyQixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLEtBQWEsRUFBRSxVQUFrQixFQUFFLEVBQUU7SUFDL0UsT0FBTyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDO0FBQy9FLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsS0FBYSxFQUFtQyxFQUFFO0lBQ3hGLE1BQU0saUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsTUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFDO0lBQ3ZCLElBQUksZ0JBQWdCLEdBQWtCLEVBQUUsQ0FBQztJQUN6QyxJQUFJLGVBQWUsR0FBa0IsRUFBRSxDQUFDO0lBRXhDLElBQUksaUJBQWlCLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDL0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2xELGdCQUFnQixHQUFHLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pELGVBQWUsR0FBRyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFB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Q0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLEVBQUUsQ0FBQSxDQUFDLENBQUMsQ0FBQztBQUd2TSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFRLEVBQUUsRUFBRSxHQUFHLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7QUFDOUcsTUFBTSxRQUFRLEdBQUcsQ0FBQyxVQUFlLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQyxDQUFDO0FBQzNMLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBVyxFQUFFLEVBQUUsR0FBRyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7QUFFakgsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFXLEVBQUUsTUFBVyxFQUFFLEVBQUU7SUFDdkMsSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUV0QixPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQTtJQUFDLENBQUM7SUFFL0MsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQWtCLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUztJQUM1UCxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUztJQUMzUCxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVM7Q0FDaEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBVSxFQUFFO0lBQ2xELElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztJQUVuQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDVCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFL0IsVUFBVSxHQUFHLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3JELFVBQVUsR0FBRyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN4RSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29sb3JDb250cmFzdEZyb21PcmlnaW4ge1xuICBzdGVwOiBudW1iZXI7XG4gIGxhYmVsOiBzdHJpbmcsXG4gIGxpZ2h0OiBzdHJpbmc7XG4gIGRhcms6IHN0cmluZ1xufTtcbmNvbnN0IHN0ZXAgPSAyMDtcbmNvbnN0IHBlcmNlbnQgPSAwLjA1O1xuXG5leHBvcnQgY29uc3QgY29sb3JTdGVwQ29udHJhc3RGcm9tT3JpZ2luID0gKGNvbG9yOiBzdHJpbmcsIHN0ZXBOdW1iZXI6IG51bWJlcikgPT4ge1xuICByZXR1cm4gY29sb3JDb250cmFzdEZyb21PcmlnaW4oY29sb3IpLmZpbmQoaXRlbSA9PiBpdGVtLnN0ZXAgPT09IHN0ZXBOdW1iZXIpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbG9yQ29udHJhc3RGcm9tT3JpZ2luID0gKGNvbG9yOiBzdHJpbmcpOiBBcnJheTxJQ29sb3JDb250cmFzdEZyb21PcmlnaW4+ID0+IHtcbiAgY29uc3QgcGFyc2VkQ29sb3JzQXJyYXkgPSBwYXJzZUNvbG9yVmFsdWVzKGNvbG9yKTtcbiAgY29uc3QgY29sb3JzOiBhbnkgPSBbXTtcbiAgbGV0IGNhbGN1bGF0ZWRTaGFkZXM6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgbGV0IGNhbGN1bGF0ZWRUaW50czogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gIGlmIChwYXJzZWRDb2xvcnNBcnJheSAhPT0gbnVsbCkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGFyc2VkQ29sb3JzQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNhbGN1bGF0ZWRTaGFkZXMgPSBjYWxjdWxhdGVTaGFkZXMocGFyc2VkQ29sb3JzQXJyYXlbaV0pO1xuICAgICAgY2FsY3VsYXRlZFRpbnRzID0gY2FsY3VsYXRlVGludHMocGFyc2VkQ29sb3JzQXJyYXlbaV0pO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IHN0ZXA7IGkrKykge1xuICAgICAgY29sb3JzLnB1c2goeyBzdGVwOiBpICogNSwgbGFiZWw6IGAke2kgKiA1fSVgLCBkYXJrOiBgIyR7Y2FsY3VsYXRlZFNoYWRlc1tpXX1gLCBsaWdodDogYCMke2NhbGN1bGF0ZWRUaW50c1tpXX1gIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb2xvcnM7XG59O1xuXG5jb25zdCBwYXJzZUNvbG9yVmFsdWVzID0gKGNvbG9yVmFsdWVzOiBhbnkpID0+IHtcbiAgbGV0IGNvbG9yVmFsdWVzQXJyYXkgPSBjb2xvclZhbHVlcy5tYXRjaCgvXFxiWzAtOUEtRmEtZl17M31cXGJ8WzAtOUEtRmEtZl17Nn1cXGIvZyk7XG5cbiAgaWYgKGNvbG9yVmFsdWVzQXJyYXkpIHtcbiAgICBjb2xvclZhbHVlc0FycmF5ID0gY29sb3JWYWx1ZXNBcnJheS5tYXAoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgaWYgKGl0ZW0ubGVuZ3RoID09PSAzKSB7XG4gICAgICAgIGxldCBuZXdJdGVtID0gaXRlbS50b1N0cmluZygpLnNwbGl0KCcnKTtcblxuICAgICAgICBuZXdJdGVtID0gbmV3SXRlbS5yZWR1Y2UoKGFjYzogYW55LCBpdDogYW55KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGFjYyArIGl0ICsgaXQ7XG4gICAgICAgIH0sICcnKTtcblxuICAgICAgICByZXR1cm4gbmV3SXRlbTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGl0ZW07XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gY29sb3JWYWx1ZXNBcnJheTtcbn07XG5cbmNvbnN0IGNhbGN1bGF0ZVNoYWRlcyA9IChjb2xvclZhbHVlOiBhbnkpID0+IHtcbiAgcmV0dXJuIGNhbGN1bGF0ZShjb2xvclZhbHVlLCByZ2JTaGFkZSkuY29uY2F0KFwiMDAwMDAwXCIpO1xufTtcblxuY29uc3QgY2FsY3VsYXRlVGludHMgPSAoY29sb3JWYWx1ZTogYW55KSA9PiB7XG4gIHJldHVybiBjYWxjdWxhdGUoY29sb3JWYWx1ZSwgcmdiVGludCkuY29uY2F0KFwiZmZmZmZmXCIpO1xufTtcblxuY29uc3QgY2FsY3VsYXRlID0gKGNvbG9yVmFsdWU6IGFueSwgc2hhZGVPclRpbnQ6IGFueSkgPT4ge1xuICBjb25zdCBjb2xvciA9IGhleFRvUkdCKGNvbG9yVmFsdWUpO1xuICBjb25zdCBzaGFkZVZhbHVlczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RlcDsgaSsrKSB7XG4gICAgc2hhZGVWYWx1ZXNbaV0gPSByZ2JUb0hleChzaGFkZU9yVGludChjb2xvciwgaSkpO1xuICB9XG5cbiAgcmV0dXJuIHNoYWRlVmFsdWVzO1xufTtcblxuY29uc3QgcmdiU2hhZGUgPSAocmdiOiBhbnksIGk6IGFueSkgPT4geyByZXR1cm4geyByZWQ6IHJnYi5yZWQgKiAoMSAtIHBlcmNlbnQgKiBpKSwgZ3JlZW46IHJnYi5ncmVlbiAqICgxIC0gcGVyY2VudCAqIGkpLCBibHVlOiByZ2IuYmx1ZSAqICgxIC0gcGVyY2VudCAqIGkpIH0gfTtcbmNvbnN0IHJnYlRpbnQgPSAocmdiOiBhbnksIGk6IGFueSkgPT4geyByZXR1cm4geyByZWQ6IHJnYi5yZWQgKyAoMjU1IC0gcmdiLnJlZCkgKiBpICogcGVyY2VudCwgZ3JlZW46IHJnYi5ncmVlbiArICgyNTUgLSByZ2IuZ3JlZW4pICogaSAqIHBlcmNlbnQsIGJsdWU6IHJnYi5ibHVlICsgKDI1NSAtIHJnYi5ibHVlKSAqIGkgKiBwZXJjZW50IH0gfTtcblxuXG5leHBvcnQgY29uc3QgcmdiVG9IZXggPSAocmdiOiBhbnkpID0+IHsgcmV0dXJuIGludFRvSGV4KHJnYi5yZWQpICsgaW50VG9IZXgocmdiLmdyZWVuKSArIGludFRvSGV4KHJnYi5ibHVlKSB9O1xuY29uc3QgaGV4VG9SR0IgPSAoY29sb3JWYWx1ZTogYW55KSA9PiB7IHJldHVybiB7IHJlZDogcGFyc2VJbnQoY29sb3JWYWx1ZS5zdWJzdHIoMCwgMiksIDE2KSwgZ3JlZW46IHBhcnNlSW50KGNvbG9yVmFsdWUuc3Vic3RyKDIsIDIpLCAxNiksIGJsdWU6IHBhcnNlSW50KGNvbG9yVmFsdWUuc3Vic3RyKDQsIDIpLCAxNikgfSB9O1xuY29uc3QgaW50VG9IZXggPSAocmdiaW50OiBhbnkpID0+IHsgcmV0dXJuIHBhZChNYXRoLm1pbihNYXRoLm1heChNYXRoLnJvdW5kKHJnYmludCksIDApLCAyNTUpLnRvU3RyaW5nKDE2KSwgMikgfTtcblxuY29uc3QgcGFkID0gKG51bWJlcjogYW55LCBsZW5ndGg6IGFueSkgPT4ge1xuICBsZXQgc3RyID0gJycgKyBudW1iZXI7XG5cbiAgd2hpbGUgKHN0ci5sZW5ndGggPCBsZW5ndGgpIHsgc3RyID0gJzAnICsgc3RyIH1cblxuICByZXR1cm4gc3RyO1xufTtcblxuZXhwb3J0IGNvbnN0IGxpc3RDb2xvckRlZmluZTogQXJyYXk8c3RyaW5nPiA9IFsnI0U2MjIyMicsICcjQjgxQjFCJywgJyNFQjRFNEUnLCAnI0Y5NzMxNicsICcjQzc1QzEyJywgJyNGQThGNDUnLCAnI0ZGQjcwMCcsICcjQ0M5MjAwJywgJyNGRkM1MzMnLCAnIzg0Q0MxNicsICcjNkFBMzEyJywgJyM5ZGQ2NDUnLCAnIzAwQkM2MicsICcjMDBBNzU3JywgJyMzM0RBOEEnLCAnIzA2QjZENCcsICcjMUI1OUM0JywgJyM0RThDRjcnLCAnIzBFQTVFOScsXG4gICcjMUI1OUM0JywgJyM0RThDRjcnLCAnIzIyNkZGNScsICcjMUI1OUM0JywgJyM0RThDRjcnLCAnIzYzNjZGMScsICcjNEY1MkMxJywgJyM4Mjg1RjQnLCAnIzVCMDRCMycsICcjNDkwMzhGJywgJyM3QzM2QzInLCAnI0Q5NDZFRicsICcjQUUzOEJGJywgJyNFMTZCRjInLCAnI0VDNDg5OScsICcjQkQzQTdBJywgJyNGMDZEQUQnLCAnI0Y0M0Y1RScsICcjQzMzMjRCJywgJyNGNjY1N0UnLCAnIzc1NzM4MCcsICcjNUU1QzY2JywgJyM5MThGOTknLFxuICAnIzIwMjAyMCcsICcjMUExQTFBJywgJyM0RDRENEQnXG5dO1xuXG5leHBvcnQgY29uc3QgR2V0Q29sb3JCeUlkID0gKHN0cjogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgbGV0IGhhc2hTdHJpbmcgPSAwO1xuXG4gIGlmICghc3RyKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY2hhciA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuXG4gICAgaGFzaFN0cmluZyA9ICgoaGFzaFN0cmluZyA8PCA1KSAtIGhhc2hTdHJpbmcpICsgY2hhcjtcbiAgICBoYXNoU3RyaW5nID0gaGFzaFN0cmluZyAmIGhhc2hTdHJpbmc7XG4gIH1cblxuICByZXR1cm4gbGlzdENvbG9yRGVmaW5lW01hdGguYWJzKGhhc2hTdHJpbmcpICUgbGlzdENvbG9yRGVmaW5lLmxlbmd0aF07XG59O1xuXG5cbiJdfQ==
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzLXVpL3V0aWxzL3NyYy9jb2xvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQyxDQUFDO0FBRUYsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ2hCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQztBQUVyQixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLEtBQWEsRUFBRSxVQUFrQixFQUFFLEVBQUU7SUFDL0UsT0FBTyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDO0FBQy9FLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsS0FBYSxFQUFtQyxFQUFFO0lBQ3hGLE1BQU0saUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsTUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFDO0lBQ3ZCLElBQUksZ0JBQWdCLEdBQWtCLEVBQUUsQ0FBQztJQUN6QyxJQUFJLGVBQWUsR0FBa0IsRUFBRSxDQUFDO0lBRXhDLElBQUksaUJBQWlCLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDL0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2xELGdCQUFnQixHQUFHLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pELGVBQWUsR0FBRyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsRUFB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Q0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLEVBQUUsQ0FBQSxDQUFDLENBQUMsQ0FBQztBQUd2TSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFRLEVBQUUsRUFBRSxHQUFHLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7QUFDOUcsTUFBTSxRQUFRLEdBQUcsQ0FBQyxVQUFlLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQyxDQUFDO0FBQzNMLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBVyxFQUFFLEVBQUUsR0FBRyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7QUFFakgsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFXLEVBQUUsTUFBVyxFQUFFLEVBQUU7SUFDdkMsSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUV0QixPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQTtJQUFDLENBQUM7SUFFL0MsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQWtCLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUztJQUM1UCxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUztJQUMzUCxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVM7Q0FDaEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBVSxFQUFFO0lBQ2xELElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztJQUVuQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDVCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFL0IsVUFBVSxHQUFHLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3JELFVBQVUsR0FBRyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN4RSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29sb3JDb250cmFzdEZyb21PcmlnaW4ge1xuICBzdGVwOiBudW1iZXI7XG4gIGxhYmVsOiBzdHJpbmcsXG4gIGxpZ2h0OiBzdHJpbmc7XG4gIGRhcms6IHN0cmluZ1xufTtcblxuY29uc3Qgc3RlcCA9IDIwO1xuY29uc3QgcGVyY2VudCA9IDAuMDU7XG5cbmV4cG9ydCBjb25zdCBjb2xvclN0ZXBDb250cmFzdEZyb21PcmlnaW4gPSAoY29sb3I6IHN0cmluZywgc3RlcE51bWJlcjogbnVtYmVyKSA9PiB7XG4gIHJldHVybiBjb2xvckNvbnRyYXN0RnJvbU9yaWdpbihjb2xvcikuZmluZChpdGVtID0+IGl0ZW0uc3RlcCA9PT0gc3RlcE51bWJlcik7XG59O1xuXG5leHBvcnQgY29uc3QgY29sb3JDb250cmFzdEZyb21PcmlnaW4gPSAoY29sb3I6IHN0cmluZyk6IEFycmF5PElDb2xvckNvbnRyYXN0RnJvbU9yaWdpbj4gPT4ge1xuICBjb25zdCBwYXJzZWRDb2xvcnNBcnJheSA9IHBhcnNlQ29sb3JWYWx1ZXMoY29sb3IpO1xuICBjb25zdCBjb2xvcnM6IGFueSA9IFtdO1xuICBsZXQgY2FsY3VsYXRlZFNoYWRlczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICBsZXQgY2FsY3VsYXRlZFRpbnRzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbiAgaWYgKHBhcnNlZENvbG9yc0FycmF5ICE9PSBudWxsKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXJzZWRDb2xvcnNBcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgY2FsY3VsYXRlZFNoYWRlcyA9IGNhbGN1bGF0ZVNoYWRlcyhwYXJzZWRDb2xvcnNBcnJheVtpXSk7XG4gICAgICBjYWxjdWxhdGVkVGludHMgPSBjYWxjdWxhdGVUaW50cyhwYXJzZWRDb2xvcnNBcnJheVtpXSk7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gc3RlcDsgaSsrKSB7XG4gICAgICBjb2xvcnMucHVzaCh7IHN0ZXA6IGkgKiA1LCBsYWJlbDogYCR7aSAqIDV9JWAsIGRhcms6IGAjJHtjYWxjdWxhdGVkU2hhZGVzW2ldfWAsIGxpZ2h0OiBgIyR7Y2FsY3VsYXRlZFRpbnRzW2ldfWAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbG9ycztcbn07XG5cbmNvbnN0IHBhcnNlQ29sb3JWYWx1ZXMgPSAoY29sb3JWYWx1ZXM6IGFueSkgPT4ge1xuICBsZXQgY29sb3JWYWx1ZXNBcnJheSA9IGNvbG9yVmFsdWVzLm1hdGNoKC9cXGJbMC05QS1GYS1mXXszfVxcYnxbMC05QS1GYS1mXXs2fVxcYi9nKTtcblxuICBpZiAoY29sb3JWYWx1ZXNBcnJheSkge1xuICAgIGNvbG9yVmFsdWVzQXJyYXkgPSBjb2xvclZhbHVlc0FycmF5Lm1hcCgoaXRlbTogYW55KSA9PiB7XG4gICAgICBpZiAoaXRlbS5sZW5ndGggPT09IDMpIHtcbiAgICAgICAgbGV0IG5ld0l0ZW0gPSBpdGVtLnRvU3RyaW5nKCkuc3BsaXQoJycpO1xuXG4gICAgICAgIG5ld0l0ZW0gPSBuZXdJdGVtLnJlZHVjZSgoYWNjOiBhbnksIGl0OiBhbnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gYWNjICsgaXQgKyBpdDtcbiAgICAgICAgfSwgJycpO1xuXG4gICAgICAgIHJldHVybiBuZXdJdGVtO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBjb2xvclZhbHVlc0FycmF5O1xufTtcblxuY29uc3QgY2FsY3VsYXRlU2hhZGVzID0gKGNvbG9yVmFsdWU6IGFueSkgPT4ge1xuICByZXR1cm4gY2FsY3VsYXRlKGNvbG9yVmFsdWUsIHJnYlNoYWRlKS5jb25jYXQoXCIwMDAwMDBcIik7XG59O1xuXG5jb25zdCBjYWxjdWxhdGVUaW50cyA9IChjb2xvclZhbHVlOiBhbnkpID0+IHtcbiAgcmV0dXJuIGNhbGN1bGF0ZShjb2xvclZhbHVlLCByZ2JUaW50KS5jb25jYXQoXCJmZmZmZmZcIik7XG59O1xuXG5jb25zdCBjYWxjdWxhdGUgPSAoY29sb3JWYWx1ZTogYW55LCBzaGFkZU9yVGludDogYW55KSA9PiB7XG4gIGNvbnN0IGNvbG9yID0gaGV4VG9SR0IoY29sb3JWYWx1ZSk7XG4gIGNvbnN0IHNoYWRlVmFsdWVzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdGVwOyBpKyspIHtcbiAgICBzaGFkZVZhbHVlc1tpXSA9IHJnYlRvSGV4KHNoYWRlT3JUaW50KGNvbG9yLCBpKSk7XG4gIH1cblxuICByZXR1cm4gc2hhZGVWYWx1ZXM7XG59O1xuXG5jb25zdCByZ2JTaGFkZSA9IChyZ2I6IGFueSwgaTogYW55KSA9PiB7IHJldHVybiB7IHJlZDogcmdiLnJlZCAqICgxIC0gcGVyY2VudCAqIGkpLCBncmVlbjogcmdiLmdyZWVuICogKDEgLSBwZXJjZW50ICogaSksIGJsdWU6IHJnYi5ibHVlICogKDEgLSBwZXJjZW50ICogaSkgfSB9O1xuY29uc3QgcmdiVGludCA9IChyZ2I6IGFueSwgaTogYW55KSA9PiB7IHJldHVybiB7IHJlZDogcmdiLnJlZCArICgyNTUgLSByZ2IucmVkKSAqIGkgKiBwZXJjZW50LCBncmVlbjogcmdiLmdyZWVuICsgKDI1NSAtIHJnYi5ncmVlbikgKiBpICogcGVyY2VudCwgYmx1ZTogcmdiLmJsdWUgKyAoMjU1IC0gcmdiLmJsdWUpICogaSAqIHBlcmNlbnQgfSB9O1xuXG5cbmV4cG9ydCBjb25zdCByZ2JUb0hleCA9IChyZ2I6IGFueSkgPT4geyByZXR1cm4gaW50VG9IZXgocmdiLnJlZCkgKyBpbnRUb0hleChyZ2IuZ3JlZW4pICsgaW50VG9IZXgocmdiLmJsdWUpIH07XG5jb25zdCBoZXhUb1JHQiA9IChjb2xvclZhbHVlOiBhbnkpID0+IHsgcmV0dXJuIHsgcmVkOiBwYXJzZUludChjb2xvclZhbHVlLnN1YnN0cigwLCAyKSwgMTYpLCBncmVlbjogcGFyc2VJbnQoY29sb3JWYWx1ZS5zdWJzdHIoMiwgMiksIDE2KSwgYmx1ZTogcGFyc2VJbnQoY29sb3JWYWx1ZS5zdWJzdHIoNCwgMiksIDE2KSB9IH07XG5jb25zdCBpbnRUb0hleCA9IChyZ2JpbnQ6IGFueSkgPT4geyByZXR1cm4gcGFkKE1hdGgubWluKE1hdGgubWF4KE1hdGgucm91bmQocmdiaW50KSwgMCksIDI1NSkudG9TdHJpbmcoMTYpLCAyKSB9O1xuXG5jb25zdCBwYWQgPSAobnVtYmVyOiBhbnksIGxlbmd0aDogYW55KSA9PiB7XG4gIGxldCBzdHIgPSAnJyArIG51bWJlcjtcblxuICB3aGlsZSAoc3RyLmxlbmd0aCA8IGxlbmd0aCkgeyBzdHIgPSAnMCcgKyBzdHIgfVxuXG4gIHJldHVybiBzdHI7XG59O1xuXG5leHBvcnQgY29uc3QgbGlzdENvbG9yRGVmaW5lOiBBcnJheTxzdHJpbmc+ID0gWycjRTYyMjIyJywgJyNCODFCMUInLCAnI0VCNEU0RScsICcjRjk3MzE2JywgJyNDNzVDMTInLCAnI0ZBOEY0NScsICcjRkZCNzAwJywgJyNDQzkyMDAnLCAnI0ZGQzUzMycsICcjODRDQzE2JywgJyM2QUEzMTInLCAnIzlkZDY0NScsICcjMDBCQzYyJywgJyMwMEE3NTcnLCAnIzMzREE4QScsICcjMDZCNkQ0JywgJyMxQjU5QzQnLCAnIzRFOENGNycsICcjMEVBNUU5JyxcbiAgJyMxQjU5QzQnLCAnIzRFOENGNycsICcjMjI2RkY1JywgJyMxQjU5QzQnLCAnIzRFOENGNycsICcjNjM2NkYxJywgJyM0RjUyQzEnLCAnIzgyODVGNCcsICcjNUIwNEIzJywgJyM0OTAzOEYnLCAnIzdDMzZDMicsICcjRDk0NkVGJywgJyNBRTM4QkYnLCAnI0UxNkJGMicsICcjRUM0ODk5JywgJyNCRDNBN0EnLCAnI0YwNkRBRCcsICcjRjQzRjVFJywgJyNDMzMyNEInLCAnI0Y2NjU3RScsICcjNzU3MzgwJywgJyM1RTVDNjYnLCAnIzkxOEY5OScsXG4gICcjMjAyMDIwJywgJyMxQTFBMUEnLCAnIzRENEQ0RCdcbl07XG5cbmV4cG9ydCBjb25zdCBnZXRDb2xvckJ5SWQgPSAoc3RyOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBsZXQgaGFzaFN0cmluZyA9IDA7XG5cbiAgaWYgKCFzdHIpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjaGFyID0gc3RyLmNoYXJDb2RlQXQoaSk7XG5cbiAgICBoYXNoU3RyaW5nID0gKChoYXNoU3RyaW5nIDw8IDUpIC0gaGFzaFN0cmluZykgKyBjaGFyO1xuICAgIGhhc2hTdHJpbmcgPSBoYXNoU3RyaW5nICYgaGFzaFN0cmluZztcbiAgfVxuXG4gIHJldHVybiBsaXN0Q29sb3JEZWZpbmVbTWF0aC5hYnMoaGFzaFN0cmluZykgJSBsaXN0Q29sb3JEZWZpbmUubGVuZ3RoXTtcbn07XG5cblxuIl19
|
|
@@ -1,23 +1,26 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { Subject, fromEvent } from "rxjs";
|
|
3
|
-
import { decrypt } from "./crypto";
|
|
4
|
-
import { decrypt3rd } from "./crypto-3rd";
|
|
2
|
+
import { Subject, filter, fromEvent, takeUntil } from "rxjs";
|
|
3
|
+
import { decrypt, encrypt } from "./crypto";
|
|
4
|
+
import { decrypt3rd, encrypt3rd } from "./crypto-3rd";
|
|
5
5
|
import { isEmbedFrame } from "./function-check-embed-frame";
|
|
6
|
+
import { UtilsCache } from "./cache";
|
|
7
|
+
import { COMMUNICATE_MICRO_KEY_GET_ALL_MESSAGE, COMMUNICATE_MICRO_PREFIX_TYPE } from "./constants";
|
|
8
|
+
export class UtilsCommunicateMicroKeyGlobal {
|
|
9
|
+
static KEY_MESSAGE_MODAL = 'LIBS_UI_MODEL_EVENT';
|
|
10
|
+
}
|
|
6
11
|
export class UtilsCommunicateMicro {
|
|
7
|
-
static KEY_GET_ALL_MESSAGE = 'MICRO_SITES_ALL_MESSAGE';
|
|
8
|
-
static PREFIX_TYPE = '3RD_INTEGRATE_MICRO_SITE_';
|
|
9
12
|
static initdEvent;
|
|
10
13
|
static subs = new Map();
|
|
11
14
|
static allMessageSub = new Subject();
|
|
12
|
-
static initEvent(currentWindow) {
|
|
15
|
+
static initEvent(currentWindow, onDestroy) {
|
|
13
16
|
if (this.initdEvent) {
|
|
14
17
|
return;
|
|
15
18
|
}
|
|
16
19
|
this.initdEvent = true;
|
|
17
|
-
if (!this.subs.get(
|
|
18
|
-
this.subs.set(
|
|
20
|
+
if (!this.subs.get(COMMUNICATE_MICRO_KEY_GET_ALL_MESSAGE)) {
|
|
21
|
+
this.subs.set(COMMUNICATE_MICRO_KEY_GET_ALL_MESSAGE, UtilsCommunicateMicro.allMessageSub);
|
|
19
22
|
}
|
|
20
|
-
fromEvent(currentWindow, 'message').subscribe(e => {
|
|
23
|
+
fromEvent(currentWindow, 'message').pipe(takeUntil(onDestroy)).subscribe(e => {
|
|
21
24
|
const event = { data: { ...e.data } };
|
|
22
25
|
const data = event.data;
|
|
23
26
|
const type = data.type;
|
|
@@ -29,7 +32,7 @@ export class UtilsCommunicateMicro {
|
|
|
29
32
|
return;
|
|
30
33
|
}
|
|
31
34
|
try {
|
|
32
|
-
if (type.includes(
|
|
35
|
+
if (type.includes(COMMUNICATE_MICRO_PREFIX_TYPE)) {
|
|
33
36
|
data.response = JSON.parse(decrypt3rd(data.response));
|
|
34
37
|
sub.next(event);
|
|
35
38
|
this.allMessageSub.next(event);
|
|
@@ -45,6 +48,10 @@ export class UtilsCommunicateMicro {
|
|
|
45
48
|
this.allMessageSub.next(event);
|
|
46
49
|
}
|
|
47
50
|
});
|
|
51
|
+
UtilsCommunicateMicro.GetMessage(UtilsCache.typeKeyClearLocalStorage).pipe(filter(e => e.data.response !== UtilsCache.idService), takeUntil(onDestroy)).subscribe(() => {
|
|
52
|
+
console.log('clear all cache by event');
|
|
53
|
+
UtilsCache.ClearAll();
|
|
54
|
+
});
|
|
48
55
|
}
|
|
49
56
|
static PostMessageToParent(data) {
|
|
50
57
|
data = this.convertData(data);
|
|
@@ -79,14 +86,13 @@ export class UtilsCommunicateMicro {
|
|
|
79
86
|
}
|
|
80
87
|
data = { ...data };
|
|
81
88
|
const type = data.type;
|
|
82
|
-
if (type.includes(
|
|
89
|
+
if (type.includes(COMMUNICATE_MICRO_PREFIX_TYPE)) {
|
|
83
90
|
try {
|
|
84
91
|
JSON.parse(decrypt3rd(data.response));
|
|
85
92
|
return data;
|
|
86
93
|
}
|
|
87
|
-
catch (
|
|
88
|
-
|
|
89
|
-
data.response = decrypt3rd(JSON.stringify(data.response));
|
|
94
|
+
catch (_) {
|
|
95
|
+
data.response = encrypt3rd(JSON.stringify(data.response));
|
|
90
96
|
return data;
|
|
91
97
|
}
|
|
92
98
|
}
|
|
@@ -94,9 +100,8 @@ export class UtilsCommunicateMicro {
|
|
|
94
100
|
JSON.parse(decrypt(data.response));
|
|
95
101
|
return data;
|
|
96
102
|
}
|
|
97
|
-
catch (
|
|
98
|
-
|
|
99
|
-
data.response = decrypt(JSON.stringify(data.response));
|
|
103
|
+
catch (_) {
|
|
104
|
+
data.response = encrypt(JSON.stringify(data.response));
|
|
100
105
|
return data;
|
|
101
106
|
}
|
|
102
107
|
}
|
|
@@ -116,6 +121,9 @@ export class UtilsCommunicateMicro {
|
|
|
116
121
|
if (!Array.isArray(messageType) || !messageType.length) {
|
|
117
122
|
throw new Error('message type empty');
|
|
118
123
|
}
|
|
124
|
+
if (messageType.length === 1) {
|
|
125
|
+
return this.GetMessage(messageType[0]);
|
|
126
|
+
}
|
|
119
127
|
const types = messageType.sort().join(';');
|
|
120
128
|
let sub = this.subs.get(types);
|
|
121
129
|
if (sub) {
|
|
@@ -133,11 +141,5 @@ export class UtilsCommunicateMicro {
|
|
|
133
141
|
});
|
|
134
142
|
});
|
|
135
143
|
}
|
|
136
|
-
postMessageToParent(data) {
|
|
137
|
-
UtilsCommunicateMicro.PostMessageToParent(data);
|
|
138
|
-
}
|
|
139
|
-
postMessageToChildren(data) {
|
|
140
|
-
UtilsCommunicateMicro.PostMessageToChildren(data);
|
|
141
|
-
}
|
|
142
144
|
}
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbXVuaWNhdGUtbWljcm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzLXVpL3V0aWxzL3NyYy9jb21tdW5pY2F0ZS1taWNyby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU1RCxNQUFNLE9BQU8scUJBQXFCO0lBQ3hCLE1BQU0sQ0FBVSxtQkFBbUIsR0FBRyx5QkFBeUIsQ0FBQztJQUNqRSxNQUFNLENBQVUsV0FBVyxHQUFHLDJCQUEyQixDQUFDO0lBQ3pELE1BQU0sQ0FBQyxVQUFVLENBQVc7SUFDNUIsTUFBTSxDQUFDLElBQUksR0FBdUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUM1RCxNQUFNLENBQUMsYUFBYSxHQUEwQixJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRTdELE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBcUI7UUFDM0MsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1lBQzlELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLG1CQUFtQixFQUFFLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hHLENBQUM7UUFFRCxTQUFTLENBQWUsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDLFNB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QUFDO1FBQ2IsQ0FBQztRQUVELEdBQUcsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUVuQyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFTyxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQThCLEVBQUUsV0FBMEI7UUFDbkYsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDakMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQWE7UUFDL0IscUJBQXFCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELHFCQUFxQixDQUFDLElBQWE7UUFDakMscUJBQXFCLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBkZWNyeXB0IH0gZnJvbSBcIi4vY3J5cHRvXCI7XG5pbXBvcnQgeyBkZWNyeXB0M3JkIH0gZnJvbSBcIi4vY3J5cHRvLTNyZFwiO1xuaW1wb3J0IHsgaXNFbWJlZEZyYW1lIH0gZnJvbSBcIi4vZnVuY3Rpb24tY2hlY2stZW1iZWQtZnJhbWVcIjtcblxuZXhwb3J0IGNsYXNzIFV0aWxzQ29tbXVuaWNhdGVNaWNybyB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEtFWV9HRVRfQUxMX01FU1NBR0UgPSAnTUlDUk9fU0lURVNfQUxMX01FU1NBR0UnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBSRUZJWF9UWVBFID0gJzNSRF9JTlRFR1JBVEVfTUlDUk9fU0lURV8nO1xuICBwcml2YXRlIHN0YXRpYyBpbml0ZEV2ZW50PzogYm9vbGVhbjtcbiAgcHJpdmF0ZSBzdGF0aWMgc3ViczogTWFwPHN0cmluZywgU3ViamVjdDxNZXNzYWdlRXZlbnQ+PiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSBzdGF0aWMgYWxsTWVzc2FnZVN1YjogU3ViamVjdDxNZXNzYWdlRXZlbnQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwdWJsaWMgc3RhdGljIGluaXRFdmVudChjdXJyZW50V2luZG93OiBXaW5kb3cpIHtcbiAgICBpZiAodGhpcy5pbml0ZEV2ZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5pdGRFdmVudCA9IHRydWU7XG4gICAgaWYgKCF0aGlzLnN1YnMuZ2V0KFV0aWxzQ29tbXVuaWNhdGVNaWNyby5LRVlfR0VUX0FMTF9NRVNTQUdFKSkge1xuICAgICAgdGhpcy5zdWJzLnNldChVdGlsc0NvbW11bmljYXRlTWljcm8uS0VZX0dFVF9BTExfTUVTU0FHRSwgVXRpbHNDb21tdW5pY2F0ZU1pY3JvLmFsbE1lc3NhZ2VTdWIpO1xuICAgIH1cblxuICAgIGZyb21FdmVudDxNZXNzYWdlRXZlbnQ+KGN1cnJlbnRXaW5kb3csICdtZXNzYWdlJykuc3Vic2NyaWJlKGUgPT4ge1xuICAgICAgY29uc3QgZXZlbnQgPSB7IGRhdGE6IHsgLi4uZS5kYXRhIH0gfSBhcyBNZXNzYWdlRXZlbnQ7XG5cbiAgICAgIGNvbnN0IGRhdGEgPSBldmVudC5kYXRhO1xuICAgICAgY29uc3QgdHlwZSA9IGRhdGEudHlwZTtcblxuICAgICAgaWYgKCF0eXBlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFsbE1lc3NhZ2VTdWIubmV4dChldmVudCk7XG4gICAgICB9XG4gICAgICBjb25zdCBzdWIgPSBVdGlsc0NvbW11bmljYXRlTWljcm8uR2V0TWVzc2FnZSh0eXBlKTtcblxuICAgICAgaWYgKCF0eXBlIHx8ICFkYXRhLnJlc3BvbnNlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlLmluY2x1ZGVzKFV0aWxzQ29tbXVuaWNhdGVNaWNyby5QUkVGSVhfVFlQRSkpIHtcblxuICAgICAgICAgIGRhdGEucmVzcG9uc2UgPSBKU09OLnBhcnNlKGRlY3J5cHQzcmQoZGF0YS5yZXNwb25zZSkpO1xuICAgICAgICAgIHN1Yi5uZXh0KGV2ZW50KTtcbiAgICAgICAgICB0aGlzLmFsbE1lc3NhZ2VTdWIubmV4dChldmVudCk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZGF0YS5yZXNwb25zZSA9IEpTT04ucGFyc2UoZGVjcnlwdChkYXRhLnJlc3BvbnNlKSk7XG4gICAgICAgIHN1Yi5uZXh0KGV2ZW50KTtcbiAgICAgICAgdGhpcy5hbGxNZXNzYWdlU3ViLm5leHQoZXZlbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICBzdWIubmV4dChldmVudCk7XG4gICAgICAgIHRoaXMuYWxsTWVzc2FnZVN1Yi5uZXh0KGV2ZW50KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBQb3N0TWVzc2FnZVRvUGFyZW50KGRhdGE6IGFueSkge1xuICAgIGRhdGEgPSB0aGlzLmNvbnZlcnREYXRhKGRhdGEpO1xuICAgIHRyeSB7XG4gICAgICBpZiAoaXNFbWJlZEZyYW1lKCkpIHtcbiAgICAgICAgd2luZG93Py5wYXJlbnQ/LnBvc3RNZXNzYWdlKGRhdGEsIFwiKlwiKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHdpbmRvdz8udG9wPy5wb3N0TWVzc2FnZShkYXRhLCBcIipcIik7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgUG9zdE1lc3NhZ2VUb0NoaWxkcmVuKGRhdGE6IGFueSkge1xuICAgIGRhdGEgPSB0aGlzLmNvbnZlcnREYXRhKGRhdGEpO1xuICAgIGNvbnN0IGlmcmFtZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiaWZyYW1lXCIpO1xuXG4gICAgQXJyYXkuZnJvbShpZnJhbWVzKS5mb3JFYWNoKGlmcmFtZSA9PiB7XG4gICAgICBpZnJhbWU/LmNvbnRlbnRXaW5kb3c/LnBvc3RNZXNzYWdlKGRhdGEsICcqJyk7XG4gICAgfSk7XG5cbiAgfVxuXG4gIHN0YXRpYyBQb3N0TWVzc2FnZVRvT3BlbmVyKGRhdGE6IGFueSkge1xuICAgIGlmICghd2luZG93Lm9wZW5lcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBkYXRhID0gdGhpcy5jb252ZXJ0RGF0YShkYXRhKTtcblxuICAgIHdpbmRvdy5vcGVuZXIucG9zdE1lc3NhZ2UoZGF0YSwgJyonKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNvbnZlcnREYXRhKGRhdGE6IGFueSkge1xuICAgIGlmICghZGF0YSB8fCAhZGF0YS50eXBlIHx8ICFkYXRhLnJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgZGF0YSA9IHsgLi4uZGF0YSB9O1xuICAgIGNvbnN0IHR5cGUgPSBkYXRhLnR5cGU7XG5cbiAgICBpZiAodHlwZS5pbmNsdWRlcyh0aGlzLlBSRUZJWF9UWVBFKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgSlNPTi5wYXJzZShkZWNyeXB0M3JkKGRhdGEucmVzcG9uc2UpKTtcblxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgICAgZGF0YS5yZXNwb25zZSA9IGRlY3J5cHQzcmQoSlNPTi5zdHJpbmdpZnkoZGF0YS5yZXNwb25zZSkpO1xuXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfVxuXG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBKU09OLnBhcnNlKGRlY3J5cHQoZGF0YS5yZXNwb25zZSkpO1xuXG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgZGF0YS5yZXNwb25zZSA9IGRlY3J5cHQoSlNPTi5zdHJpbmdpZnkoZGF0YS5yZXNwb25zZSkpO1xuXG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgR2V0TWVzc2FnZShtZXNzYWdlVHlwZTogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPik6IFN1YmplY3Q8TWVzc2FnZUV2ZW50PiB7XG4gICAgaWYgKCF0aGlzLmluaXRkRXZlbnQpIHtcbiAgICAgIHRocm93IEVycm9yKFwiY2jGsGEga2jGoWkgdOG6oW8gaMOgbSBs4bqvbmcgbmdoZSBz4buxIGtp4buHbiwgZ+G7jWkgVXRpbHNDb21tdW5pY2F0ZU1pY3JvLmluaXRFdmVudCh3aW5kb3cpIHThuqFpIHJvb3QgY29tcG9uZW50XCIpXG4gICAgfVxuICAgIGlmICh0eXBlb2YgbWVzc2FnZVR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBsZXQgc3ViID0gdGhpcy5zdWJzLmdldChtZXNzYWdlVHlwZSk7XG5cbiAgICAgIGlmICghc3ViKSB7XG4gICAgICAgIHN1YiA9IG5ldyBTdWJqZWN0KCk7XG4gICAgICAgIHRoaXMuc3Vicy5zZXQobWVzc2FnZVR5cGUsIHN1Yik7XG5cbiAgICAgICAgcmV0dXJuIHN1YjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHN1YjtcbiAgICB9XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG1lc3NhZ2VUeXBlKSB8fCAhbWVzc2FnZVR5cGUubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21lc3NhZ2UgdHlwZSBlbXB0eScpO1xuICAgIH1cbiAgICBjb25zdCB0eXBlcyA9IG1lc3NhZ2VUeXBlLnNvcnQoKS5qb2luKCc7Jyk7XG5cbiAgICBsZXQgc3ViID0gdGhpcy5zdWJzLmdldCh0eXBlcyk7XG5cbiAgICBpZiAoc3ViKSB7XG4gICAgICByZXR1cm4gc3ViO1xuICAgIH1cblxuICAgIHN1YiA9IG5ldyBTdWJqZWN0KCk7XG4gICAgdGhpcy5zdWJzLnNldCh0eXBlcywgc3ViKTtcbiAgICB0aGlzLmluaXRTdWJqZWN0KHN1YiwgbWVzc2FnZVR5cGUpO1xuXG4gICAgcmV0dXJuIHN1YjtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGluaXRTdWJqZWN0KHN1YlJvb3Q6IFN1YmplY3Q8TWVzc2FnZUV2ZW50PiwgbWVzc2FnZVR5cGU6IEFycmF5PHN0cmluZz4pIHtcbiAgICBtZXNzYWdlVHlwZS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICB0aGlzLkdldE1lc3NhZ2Uoa2V5KS5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICAgIHN1YlJvb3QubmV4dChlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcG9zdE1lc3NhZ2VUb1BhcmVudChkYXRhOiB1bmtub3duKSB7XG4gICAgVXRpbHNDb21tdW5pY2F0ZU1pY3JvLlBvc3RNZXNzYWdlVG9QYXJlbnQoZGF0YSk7XG4gIH1cblxuICBwb3N0TWVzc2FnZVRvQ2hpbGRyZW4oZGF0YTogdW5rbm93bikge1xuICAgIFV0aWxzQ29tbXVuaWNhdGVNaWNyby5Qb3N0TWVzc2FnZVRvQ2hpbGRyZW4oZGF0YSk7XG4gIH1cbn1cbiJdfQ==
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbXVuaWNhdGUtbWljcm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzLXVpL3V0aWxzL3NyYy9jb21tdW5pY2F0ZS1taWNyby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNyQyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkcsTUFBTSxPQUFPLDhCQUE4QjtJQUNsQyxNQUFNLENBQUMsaUJBQWlCLEdBQUcscUJBQXFCLENBQUM7O0FBRzFELE1BQU0sT0FBTyxxQkFBcUI7SUFDeEIsTUFBTSxDQUFDLFVBQVUsQ0FBVztJQUM1QixNQUFNLENBQUMsSUFBSSxHQUF1QyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzVELE1BQU0sQ0FBQyxhQUFhLEdBQTBCLElBQUksT0FBTyxFQUFFLENBQUM7SUFFN0QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFxQixFQUFFLFNBQXdCO1FBQ3JFLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLHFDQUFxQyxDQUFDLEVBQUUsQ0FBQztZQUMxRCxJQUFJLENBQUMsSUFB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ZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IFN1YmplY3QsIGZpbHRlciwgZnJvbUV2ZW50LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgZGVjcnlwdCwgZW5jcnlwdCB9IGZyb20gXCIuL2NyeXB0b1wiO1xuaW1wb3J0IHsgZGVjcnlwdDNyZCwgZW5jcnlwdDNyZCB9IGZyb20gXCIuL2NyeXB0by0zcmRcIjtcbmltcG9ydCB7IGlzRW1iZWRGcmFtZSB9IGZyb20gXCIuL2Z1bmN0aW9uLWNoZWNrLWVtYmVkLWZyYW1lXCI7XG5pbXBvcnQgeyBVdGlsc0NhY2hlIH0gZnJvbSBcIi4vY2FjaGVcIjtcbmltcG9ydCB7IENPTU1VTklDQVRFX01JQ1JPX0tFWV9HRVRfQUxMX01FU1NBR0UsIENPTU1VTklDQVRFX01JQ1JPX1BSRUZJWF9UWVBFIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5leHBvcnQgY2xhc3MgVXRpbHNDb21tdW5pY2F0ZU1pY3JvS2V5R2xvYmFsIHtcbiAgcHVibGljIHN0YXRpYyBLRVlfTUVTU0FHRV9NT0RBTCA9ICdMSUJTX1VJX01PREVMX0VWRU5UJztcbn1cblxuZXhwb3J0IGNsYXNzIFV0aWxzQ29tbXVuaWNhdGVNaWNybyB7XG4gIHByaXZhdGUgc3RhdGljIGluaXRkRXZlbnQ/OiBib29sZWFuO1xuICBwcml2YXRlIHN0YXRpYyBzdWJzOiBNYXA8c3RyaW5nLCBTdWJqZWN0PE1lc3NhZ2VFdmVudD4+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIHN0YXRpYyBhbGxNZXNzYWdlU3ViOiBTdWJqZWN0PE1lc3NhZ2VFdmVudD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHB1YmxpYyBzdGF0aWMgaW5pdEV2ZW50KGN1cnJlbnRXaW5kb3c6IFdpbmRvdywgb25EZXN0cm95OiBTdWJqZWN0PHZvaWQ+KSB7XG4gICAgaWYgKHRoaXMuaW5pdGRFdmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmluaXRkRXZlbnQgPSB0cnVlO1xuICAgIGlmICghdGhpcy5zdWJzLmdldChDT01NVU5JQ0FURV9NSUNST19LRVlfR0VUX0FMTF9NRVNTQUdFKSkge1xuICAgICAgdGhpcy5zdWJzLnNldChDT01NVU5JQ0FURV9NSUNST19LRVlfR0VUX0FMTF9NRVNTQUdFLCBVdGlsc0NvbW11bmljYXRlTWljcm8uYWxsTWVzc2FnZVN1Yik7XG4gICAgfVxuXG4gICAgZnJvbUV2ZW50PE1lc3NhZ2VFdmVudD4oY3VycmVudFdpbmRvdywgJ21lc3NhZ2UnKS5waXBlKHRha2VVbnRpbChvbkRlc3Ryb3kpKS5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICBjb25zdCBldmVudCA9IHsgZGF0YTogeyAuLi5lLmRhdGEgfSB9IGFzIE1lc3NhZ2VFdmVudDtcblxuICAgICAgY29uc3QgZGF0YSA9IGV2ZW50LmRhdGE7XG4gICAgICBjb25zdCB0eXBlID0gZGF0YS50eXBlO1xuXG4gICAgICBpZiAoIXR5cGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxsTWVzc2FnZVN1Yi5uZXh0KGV2ZW50KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHN1YiA9IFV0aWxzQ29tbXVuaWNhdGVNaWNyby5HZXRNZXNzYWdlKHR5cGUpO1xuXG4gICAgICBpZiAoIXR5cGUgfHwgIWRhdGEucmVzcG9uc2UpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGUuaW5jbHVkZXMoQ09NTVVOSUNBVEVfTUlDUk9fUFJFRklYX1RZUEUpKSB7XG5cbiAgICAgICAgICBkYXRhLnJlc3BvbnNlID0gSlNPTi5wYXJzZShkZWNyeXB0M3JkKGRhdGEucmVzcG9uc2UpKTtcbiAgICAgICAgICBzdWIubmV4dChldmVudCk7XG4gICAgICAgICAgdGhpcy5hbGxNZXNzYWdlU3ViLm5leHQoZXZlbnQpO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRhdGEucmVzcG9uc2UgPSBKU09OLnBhcnNlKGRlY3J5cHQoZGF0YS5yZXNwb25zZSkpO1xuICAgICAgICBzdWIubmV4dChldmVudCk7XG4gICAgICAgIHRoaXMuYWxsTWVzc2FnZVN1Yi5uZXh0KGV2ZW50KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgICAgc3ViLm5leHQoZXZlbnQpO1xuICAgICAgICB0aGlzLmFsbE1lc3NhZ2VTdWIubmV4dChldmVudCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBVdGlsc0NvbW11bmljYXRlTWljcm8uR2V0TWVzc2FnZShVdGlsc0NhY2hlLnR5cGVLZXlDbGVhckxvY2FsU3RvcmFnZSkucGlwZShmaWx0ZXIoZSA9PiBlLmRhdGEucmVzcG9uc2UgIT09IFV0aWxzQ2FjaGUuaWRTZXJ2aWNlKSwgdGFrZVVudGlsKG9uRGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnY2xlYXIgYWxsIGNhY2hlIGJ5IGV2ZW50Jyk7XG4gICAgICBVdGlsc0NhY2hlLkNsZWFyQWxsKCk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgUG9zdE1lc3NhZ2VUb1BhcmVudChkYXRhOiBhbnkpIHtcbiAgICBkYXRhID0gdGhpcy5jb252ZXJ0RGF0YShkYXRhKTtcbiAgICB0cnkge1xuICAgICAgaWYgKGlzRW1iZWRGcmFtZSgpKSB7XG4gICAgICAgIHdpbmRvdz8ucGFyZW50Py5wb3N0TWVzc2FnZShkYXRhLCBcIipcIik7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB3aW5kb3c/LnRvcD8ucG9zdE1lc3NhZ2UoZGF0YSwgXCIqXCIpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIFBvc3RNZXNzYWdlVG9DaGlsZHJlbihkYXRhOiBhbnkpIHtcbiAgICBkYXRhID0gdGhpcy5jb252ZXJ0RGF0YShkYXRhKTtcbiAgICBjb25zdCBpZnJhbWVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcImlmcmFtZVwiKTtcblxuICAgIEFycmF5LmZyb20oaWZyYW1lcykuZm9yRWFjaChpZnJhbWUgPT4ge1xuICAgICAgaWZyYW1lPy5jb250ZW50V2luZG93Py5wb3N0TWVzc2FnZShkYXRhLCAnKicpO1xuICAgIH0pO1xuXG4gIH1cblxuICBzdGF0aWMgUG9zdE1lc3NhZ2VUb09wZW5lcihkYXRhOiBhbnkpIHtcbiAgICBpZiAoIXdpbmRvdy5vcGVuZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZGF0YSA9IHRoaXMuY29udmVydERhdGEoZGF0YSk7XG5cbiAgICB3aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKGRhdGEsICcqJyk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjb252ZXJ0RGF0YShkYXRhOiBhbnkpIHtcbiAgICBpZiAoIWRhdGEgfHwgIWRhdGEudHlwZSB8fCAhZGF0YS5yZXNwb25zZSkge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGRhdGEgPSB7IC4uLmRhdGEgfTtcbiAgICBjb25zdCB0eXBlID0gZGF0YS50eXBlO1xuXG4gICAgaWYgKHR5cGUuaW5jbHVkZXMoQ09NTVVOSUNBVEVfTUlDUk9fUFJFRklYX1RZUEUpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBKU09OLnBhcnNlKGRlY3J5cHQzcmQoZGF0YS5yZXNwb25zZSkpO1xuXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfSBjYXRjaCAoXykge1xuICAgICAgICBkYXRhLnJlc3BvbnNlID0gZW5jcnlwdDNyZChKU09OLnN0cmluZ2lmeShkYXRhLnJlc3BvbnNlKSk7XG5cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9XG5cbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIEpTT04ucGFyc2UoZGVjcnlwdChkYXRhLnJlc3BvbnNlKSk7XG5cbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgIGRhdGEucmVzcG9uc2UgPSBlbmNyeXB0KEpTT04uc3RyaW5naWZ5KGRhdGEucmVzcG9uc2UpKTtcblxuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIEdldE1lc3NhZ2UobWVzc2FnZVR5cGU6IHN0cmluZyB8IEFycmF5PHN0cmluZz4pOiBTdWJqZWN0PE1lc3NhZ2VFdmVudD4ge1xuICAgIGlmICghdGhpcy5pbml0ZEV2ZW50KSB7XG4gICAgICB0aHJvdyBFcnJvcihcImNoxrBhIGtoxqFpIHThuqFvIGjDoG0gbOG6r25nIG5naGUgc+G7sSBraeG7h24sIGfhu41pIFV0aWxzQ29tbXVuaWNhdGVNaWNyby5pbml0RXZlbnQod2luZG93KSB04bqhaSByb290IGNvbXBvbmVudFwiKVxuICAgIH1cbiAgICBpZiAodHlwZW9mIG1lc3NhZ2VUeXBlID09PSAnc3RyaW5nJykge1xuICAgICAgbGV0IHN1YiA9IHRoaXMuc3Vicy5nZXQobWVzc2FnZVR5cGUpO1xuXG4gICAgICBpZiAoIXN1Yikge1xuICAgICAgICBzdWIgPSBuZXcgU3ViamVjdCgpO1xuICAgICAgICB0aGlzLnN1YnMuc2V0KG1lc3NhZ2VUeXBlLCBzdWIpO1xuXG4gICAgICAgIHJldHVybiBzdWI7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzdWI7XG4gICAgfVxuICAgIGlmICghQXJyYXkuaXNBcnJheShtZXNzYWdlVHlwZSkgfHwgIW1lc3NhZ2VUeXBlLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtZXNzYWdlIHR5cGUgZW1wdHknKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VUeXBlLmxlbmd0aCA9PT0gMSkge1xuICAgICAgcmV0dXJuIHRoaXMuR2V0TWVzc2FnZShtZXNzYWdlVHlwZVswXSk7XG4gICAgfVxuICAgIGNvbnN0IHR5cGVzID0gbWVzc2FnZVR5cGUuc29ydCgpLmpvaW4oJzsnKTtcblxuICAgIGxldCBzdWIgPSB0aGlzLnN1YnMuZ2V0KHR5cGVzKTtcblxuICAgIGlmIChzdWIpIHtcbiAgICAgIHJldHVybiBzdWI7XG4gICAgfVxuXG4gICAgc3ViID0gbmV3IFN1YmplY3QoKTtcbiAgICB0aGlzLnN1YnMuc2V0KHR5cGVzLCBzdWIpO1xuICAgIHRoaXMuaW5pdFN1YmplY3Qoc3ViLCBtZXNzYWdlVHlwZSk7XG5cbiAgICByZXR1cm4gc3ViO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaW5pdFN1YmplY3Qoc3ViUm9vdDogU3ViamVjdDxNZXNzYWdlRXZlbnQ+LCBtZXNzYWdlVHlwZTogQXJyYXk8c3RyaW5nPikge1xuICAgIG1lc3NhZ2VUeXBlLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIHRoaXMuR2V0TWVzc2FnZShrZXkpLnN1YnNjcmliZShlID0+IHtcbiAgICAgICAgc3ViUm9vdC5uZXh0KGUpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/constants.mjs
CHANGED
|
@@ -5,4 +5,7 @@ export const ERROR_MESSAGE_MAX_VALID = 'i18n_message_error_input_max_value';
|
|
|
5
5
|
export const ERROR_MESSAGE_MIN_LENGTH = 'i18n_message_error_input_min_length';
|
|
6
6
|
export const ERROR_MESSAGE_MAX_LENGTH = 'i18n_message_error_input_max_length';
|
|
7
7
|
export const CHARACTER_DATA_EMPTY = '__';
|
|
8
|
-
|
|
8
|
+
export const DEFAULT_START_PAGE_0 = 'defaultStartPage0';
|
|
9
|
+
export const COMMUNICATE_MICRO_PREFIX_TYPE = '3RD_INTEGRATE_MICRO_SITE_';
|
|
10
|
+
export const COMMUNICATE_MICRO_KEY_GET_ALL_MESSAGE = 'MICRO_SITES_ALL_MESSAGE';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy11aS91dGlscy9zcmMvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLDBCQUEwQixDQUFDO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLDRCQUE0QixDQUFDO0FBQ3ZFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLG9DQUFvQyxDQUFDO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLG9DQUFvQyxDQUFDO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLHFDQUFxQyxDQUFDO0FBQzlFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLHFDQUFxQyxDQUFDO0FBQzlFLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRywyQkFBMkIsQ0FBQztBQUN6RSxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBFUlJPUl9NRVNTQUdFX0VNUFRZX1ZBTElEID0gJ2kxOG5fdmFsaWRfZW1wdHlfbWVzc2FnZSc7XG5leHBvcnQgY29uc3QgRVJST1JfTUVTU0FHRV9QQVRURU5fVkFMSUQgPSAnaTE4bl92YWxpZF9wYXR0ZXJuX21lc3NhZ2UnO1xuZXhwb3J0IGNvbnN0IEVSUk9SX01FU1NBR0VfTUlOX1ZBTElEID0gJ2kxOG5fbWVzc2FnZV9lcnJvcl9pbnB1dF9taW5fdmFsdWUnO1xuZXhwb3J0IGNvbnN0IEVSUk9SX01FU1NBR0VfTUFYX1ZBTElEID0gJ2kxOG5fbWVzc2FnZV9lcnJvcl9pbnB1dF9tYXhfdmFsdWUnO1xuZXhwb3J0IGNvbnN0IEVSUk9SX01FU1NBR0VfTUlOX0xFTkdUSCA9ICdpMThuX21lc3NhZ2VfZXJyb3JfaW5wdXRfbWluX2xlbmd0aCc7XG5leHBvcnQgY29uc3QgRVJST1JfTUVTU0FHRV9NQVhfTEVOR1RIID0gJ2kxOG5fbWVzc2FnZV9lcnJvcl9pbnB1dF9tYXhfbGVuZ3RoJztcbmV4cG9ydCBjb25zdCBDSEFSQUNURVJfREFUQV9FTVBUWSA9ICdfXyc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9TVEFSVF9QQUdFXzAgPSAnZGVmYXVsdFN0YXJ0UGFnZTAnO1xuZXhwb3J0IGNvbnN0IENPTU1VTklDQVRFX01JQ1JPX1BSRUZJWF9UWVBFID0gJzNSRF9JTlRFR1JBVEVfTUlDUk9fU0lURV8nO1xuZXhwb3J0IGNvbnN0IENPTU1VTklDQVRFX01JQ1JPX0tFWV9HRVRfQUxMX01FU1NBR0UgPSAnTUlDUk9fU0lURVNfQUxMX01FU1NBR0UnOyJdfQ==
|
package/esm2022/crypto-3rd.mjs
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import CryptoES from 'crypto-es';
|
|
2
2
|
let key = '12~@#loqwsxacva(3rdhaq12';
|
|
3
|
+
/**
|
|
4
|
+
* @description Thiết lập key mã hóa
|
|
5
|
+
* @param value key mã hóa, độ dài bằng 24 hoặc 32 ký tự.
|
|
6
|
+
*/
|
|
3
7
|
export const setKeyCrypto3rd = (value) => {
|
|
4
8
|
if (value.length !== 24 && value.length !== 32) {
|
|
5
9
|
throw Error(`key.length = ${value.length}; Key phải là 1 chuỗi dài 24 hoặc 32 ký tự`);
|
|
@@ -31,4 +35,4 @@ export const decrypt3rd = (encryptedData) => {
|
|
|
31
35
|
const options = { iv: iv, mode: mode, padding: padding };
|
|
32
36
|
return CryptoES.AES.decrypt(encryptedData, key, options).toString(CryptoES.enc.Utf8);
|
|
33
37
|
};
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLTNyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMtdWkvdXRpbHMvc3JjL2NyeXB0by0zcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBRWpDLElBQUksR0FBRyxHQUFHLDBCQUEwQixDQUFDO0FBRXJDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFO0lBQy9DLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUMvQyxNQUFNLEtBQUssQ0FBQyxnQkFBZ0IsS0FBSyxDQUFDLE1BQU0sNENBQTRDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBQ0QsR0FBRyxHQUFHLEtBQUssQ0FBQztBQUNkLENBQUMsQ0FBQztBQUdGLE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRTtJQUNwQixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLFNBQWlCLEVBQVUsRUFBRTtJQUN0RCxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUNoQixNQUFNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMvQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM5QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUMvQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztJQUNuQyxNQUFNLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFFekQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLGFBQXFCLEVBQVUsRUFBRTtJQUMxRCxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUNoQixNQUFNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMvQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM5QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUMvQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztJQUNuQyxNQUFNLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFFekQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3ZGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IENyeXB0b0VTIGZyb20gJ2NyeXB0by1lcyc7XG5cbmxldCBrZXkgPSAnMTJ+QCNsb3F3c3hhY3ZhKDNyZGhhcTEyJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVGhp4bq/dCBs4bqtcCBrZXkgbcOjIGjDs2FcbiAqIEBwYXJhbSB2YWx1ZSBrZXkgbcOjIGjDs2EsIMSR4buZIGTDoGkgYuG6sW5nIDI0IGhv4bq3YyAzMiBrw70gdOG7sS5cbiAqL1xuZXhwb3J0IGNvbnN0IHNldEtleUNyeXB0bzNyZCA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gIGlmICh2YWx1ZS5sZW5ndGggIT09IDI0ICYmIHZhbHVlLmxlbmd0aCAhPT0gMzIpIHtcbiAgICB0aHJvdyBFcnJvcihga2V5Lmxlbmd0aCA9ICR7dmFsdWUubGVuZ3RofTsgS2V5IHBo4bqjaSBsw6AgMSBjaHXhu5dpIGTDoGkgMjQgaG/hurdjIDMyIGvDvSB04buxYCk7XG4gIH1cbiAga2V5ID0gdmFsdWU7XG59O1xuXG5cbmNvbnN0IGtleVN0b3JlID0gKCkgPT4ge1xuICByZXR1cm4ga2V5O1xufVxuXG5leHBvcnQgY29uc3QgZW5jcnlwdDNyZCA9IChwbGFpbkRhdGE6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGlmICgha2V5U3RvcmUoKSkge1xuICAgIHRocm93IEVycm9yKFwibOG7l2kgY2jGsGEgc2V0dXAga2V5IG3DoyBow7NhXCIpO1xuICB9XG4gIGNvbnN0IGtleSA9IENyeXB0b0VTLmVuYy5IZXgucGFyc2Uoa2V5U3RvcmUoKSk7XG4gIGNvbnN0IGl2ID0gQ3J5cHRvRVMuZW5jLkhleC5wYXJzZShrZXlTdG9yZSgpKTtcbiAgY29uc3QgbW9kZSA9IENyeXB0b0VTLm1vZGUuQ0JDO1xuICBjb25zdCBwYWRkaW5nID0gQ3J5cHRvRVMucGFkLlBrY3M3O1xuICBjb25zdCBvcHRpb25zID0geyBpdjogaXYsIG1vZGU6IG1vZGUsIHBhZGRpbmc6IHBhZGRpbmcgfTtcblxuICByZXR1cm4gQ3J5cHRvRVMuQUVTLmVuY3J5cHQocGxhaW5EYXRhLCBrZXksIG9wdGlvbnMpLnRvU3RyaW5nKCk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVjcnlwdDNyZCA9IChlbmNyeXB0ZWREYXRhOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBpZiAoIWtleVN0b3JlKCkpIHtcbiAgICB0aHJvdyBFcnJvcihcImzhu5dpIGNoxrBhIHNldHVwIGtleSBtw6MgaMOzYVwiKTtcbiAgfVxuICBjb25zdCBrZXkgPSBDcnlwdG9FUy5lbmMuSGV4LnBhcnNlKGtleVN0b3JlKCkpO1xuICBjb25zdCBpdiA9IENyeXB0b0VTLmVuYy5IZXgucGFyc2Uoa2V5U3RvcmUoKSk7XG4gIGNvbnN0IG1vZGUgPSBDcnlwdG9FUy5tb2RlLkNCQztcbiAgY29uc3QgcGFkZGluZyA9IENyeXB0b0VTLnBhZC5Qa2NzNztcbiAgY29uc3Qgb3B0aW9ucyA9IHsgaXY6IGl2LCBtb2RlOiBtb2RlLCBwYWRkaW5nOiBwYWRkaW5nIH07XG5cbiAgcmV0dXJuIENyeXB0b0VTLkFFUy5kZWNyeXB0KGVuY3J5cHRlZERhdGEsIGtleSwgb3B0aW9ucykudG9TdHJpbmcoQ3J5cHRvRVMuZW5jLlV0ZjgpO1xufTsiXX0=
|
package/esm2022/crypto.mjs
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import CryptoES from 'crypto-es';
|
|
2
2
|
let key = '12~@#loqwsxacva(3rdhaq12';
|
|
3
|
+
/**
|
|
4
|
+
* @description Thiết lập key mã hóa
|
|
5
|
+
* @param value key mã hóa, độ dài bằng 24 hoặc 32 ký tự.
|
|
6
|
+
*/
|
|
3
7
|
export const setKeyCrypto = (value) => {
|
|
4
8
|
if (value.length !== 24 && value.length !== 32) {
|
|
5
9
|
throw Error(`key.length = ${value.length}; Key phải là 1 chuỗi dài 24 hoặc 32 ký tự`);
|
|
@@ -34,4 +38,4 @@ export const decrypt = (encryptedData) => {
|
|
|
34
38
|
export const md5 = (plainData) => {
|
|
35
39
|
return CryptoES.MD5(plainData).toString();
|
|
36
40
|
};
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy11aS91dGlscy9zcmMvY3J5cHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUVqQyxJQUFJLEdBQUcsR0FBRywwQkFBMEIsQ0FBQztBQUVyQzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtJQUM1QyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDL0MsTUFBTSxLQUFLLENBQUMsZ0JBQWdCLEtBQUssQ0FBQyxNQUFNLDRDQUE0QyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUNELEdBQUcsR0FBRyxLQUFLLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUU7SUFDcEIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxTQUFpQixFQUFVLEVBQUU7SUFDbkQsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7UUFDaEIsTUFBTSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0MsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDOUMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDL0IsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDbkMsTUFBTSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBRXpELE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUNsRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxhQUFxQixFQUFVLEVBQUU7SUFDdkQsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7UUFDaEIsTUFBTSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0MsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDOUMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDL0IsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDbkMsTUFBTSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBRXpELE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN2RixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxTQUFpQixFQUFFLEVBQUU7SUFDdkMsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQzVDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IENyeXB0b0VTIGZyb20gJ2NyeXB0by1lcyc7XG5cbmxldCBrZXkgPSAnMTJ+QCNsb3F3c3hhY3ZhKDNyZGhhcTEyJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVGhp4bq/dCBs4bqtcCBrZXkgbcOjIGjDs2FcbiAqIEBwYXJhbSB2YWx1ZSBrZXkgbcOjIGjDs2EsIMSR4buZIGTDoGkgYuG6sW5nIDI0IGhv4bq3YyAzMiBrw70gdOG7sS5cbiAqL1xuZXhwb3J0IGNvbnN0IHNldEtleUNyeXB0byA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gIGlmICh2YWx1ZS5sZW5ndGggIT09IDI0ICYmIHZhbHVlLmxlbmd0aCAhPT0gMzIpIHtcbiAgICB0aHJvdyBFcnJvcihga2V5Lmxlbmd0aCA9ICR7dmFsdWUubGVuZ3RofTsgS2V5IHBo4bqjaSBsw6AgMSBjaHXhu5dpIGTDoGkgMjQgaG/hurdjIDMyIGvDvSB04buxYCk7XG4gIH1cbiAga2V5ID0gdmFsdWU7XG59O1xuXG5jb25zdCBrZXlTdG9yZSA9ICgpID0+IHtcbiAgcmV0dXJuIGtleTtcbn1cblxuZXhwb3J0IGNvbnN0IGVuY3J5cHQgPSAocGxhaW5EYXRhOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBpZiAoIWtleVN0b3JlKCkpIHtcbiAgICB0aHJvdyBFcnJvcihcImzhu5dpIGNoxrBhIHNldHVwIGtleSBtw6MgaMOzYVwiKTtcbiAgfVxuICBjb25zdCBrZXkgPSBDcnlwdG9FUy5lbmMuSGV4LnBhcnNlKGtleVN0b3JlKCkpO1xuICBjb25zdCBpdiA9IENyeXB0b0VTLmVuYy5IZXgucGFyc2Uoa2V5U3RvcmUoKSk7XG4gIGNvbnN0IG1vZGUgPSBDcnlwdG9FUy5tb2RlLkNCQztcbiAgY29uc3QgcGFkZGluZyA9IENyeXB0b0VTLnBhZC5Qa2NzNztcbiAgY29uc3Qgb3B0aW9ucyA9IHsgaXY6IGl2LCBtb2RlOiBtb2RlLCBwYWRkaW5nOiBwYWRkaW5nIH07XG5cbiAgcmV0dXJuIENyeXB0b0VTLkFFUy5lbmNyeXB0KHBsYWluRGF0YSwga2V5LCBvcHRpb25zKS50b1N0cmluZygpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlY3J5cHQgPSAoZW5jcnlwdGVkRGF0YTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKCFrZXlTdG9yZSgpKSB7XG4gICAgdGhyb3cgRXJyb3IoXCJs4buXaSBjaMawYSBzZXR1cCBrZXkgbcOjIGjDs2FcIik7XG4gIH1cbiAgY29uc3Qga2V5ID0gQ3J5cHRvRVMuZW5jLkhleC5wYXJzZShrZXlTdG9yZSgpKTtcbiAgY29uc3QgaXYgPSBDcnlwdG9FUy5lbmMuSGV4LnBhcnNlKGtleVN0b3JlKCkpO1xuICBjb25zdCBtb2RlID0gQ3J5cHRvRVMubW9kZS5DQkM7XG4gIGNvbnN0IHBhZGRpbmcgPSBDcnlwdG9FUy5wYWQuUGtjczc7XG4gIGNvbnN0IG9wdGlvbnMgPSB7IGl2OiBpdiwgbW9kZTogbW9kZSwgcGFkZGluZzogcGFkZGluZyB9O1xuXG4gIHJldHVybiBDcnlwdG9FUy5BRVMuZGVjcnlwdChlbmNyeXB0ZWREYXRhLCBrZXksIG9wdGlvbnMpLnRvU3RyaW5nKENyeXB0b0VTLmVuYy5VdGY4KTtcbn07XG5cbmV4cG9ydCBjb25zdCBtZDUgPSAocGxhaW5EYXRhOiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIENyeXB0b0VTLk1ENShwbGFpbkRhdGEpLnRvU3RyaW5nKCk7XG59O1xuXG4iXX0=
|
package/esm2022/date.mjs
ADDED
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { isSignal } from '@angular/core';
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
import "dayjs/locale/en";
|
|
4
|
+
import "dayjs/locale/vi";
|
|
5
|
+
import customParseFormat from 'dayjs/plugin/customParseFormat';
|
|
6
|
+
import localeData from "dayjs/plugin/localeData";
|
|
7
|
+
import timezone from "dayjs/plugin/timezone";
|
|
8
|
+
import updateLocale from 'dayjs/plugin/updateLocale';
|
|
9
|
+
import utc from "dayjs/plugin/utc";
|
|
10
|
+
import { UtilsCache } from './cache';
|
|
11
|
+
dayjs.extend(localeData);
|
|
12
|
+
dayjs.extend(updateLocale);
|
|
13
|
+
dayjs.extend(utc);
|
|
14
|
+
dayjs.extend(timezone);
|
|
15
|
+
dayjs.extend(customParseFormat);
|
|
16
|
+
let timeZoneSetup = "Asia/Ho_Chi_Minh";
|
|
17
|
+
export const setDefaultTimeZone = (localeZone = timeZoneSetup) => {
|
|
18
|
+
timeZoneSetup = localeZone;
|
|
19
|
+
dayjs.tz.setDefault(localeZone);
|
|
20
|
+
};
|
|
21
|
+
let functionFormatDate = undefined;
|
|
22
|
+
export const updateFunctionFormatDate = (functionCustom) => {
|
|
23
|
+
functionFormatDate = functionCustom;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* @description Lấy đối tượng dayjs theo config
|
|
27
|
+
* @param config nếu không có config sẽ trả về đối tượng dayjs là thời gian hiện tại
|
|
28
|
+
* @param config.date thời gian cần lấy
|
|
29
|
+
* @param config.returnDayjsIfConfigDateNotExist true nếu muốn trả về đối tượng dayjs nếu config.date không có
|
|
30
|
+
* @param config.utc true nếu muốn lấy thời gian UTC
|
|
31
|
+
* @param config.formatOfDate định dạng thời gian đang được truyền vào
|
|
32
|
+
*/
|
|
33
|
+
export const getDayjs = (config) => {
|
|
34
|
+
if (!config) {
|
|
35
|
+
return dayjs().tz();
|
|
36
|
+
}
|
|
37
|
+
config.date = !config.date && config.returnDayjsIfConfigDateNotExist ? dayjs().tz() : config.date;
|
|
38
|
+
if (typeof config.date === 'number') {
|
|
39
|
+
config.date = dayjs.unix(config.date);
|
|
40
|
+
}
|
|
41
|
+
if (!config.date) {
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
let { date, utc, formatOfDate } = config;
|
|
45
|
+
while (isSignal(date)) {
|
|
46
|
+
date = date();
|
|
47
|
+
}
|
|
48
|
+
while (isSignal(utc)) {
|
|
49
|
+
utc = utc();
|
|
50
|
+
}
|
|
51
|
+
while (isSignal(formatOfDate)) {
|
|
52
|
+
formatOfDate = formatOfDate();
|
|
53
|
+
}
|
|
54
|
+
if (utc) {
|
|
55
|
+
if (formatOfDate) {
|
|
56
|
+
return dayjs(date, formatOfDate).utc();
|
|
57
|
+
}
|
|
58
|
+
const dateInputIsUTC = (dayjs.isDayjs(date) && date.isUTC()) || (typeof date === 'string' && date.includes('Z'));
|
|
59
|
+
if (dateInputIsUTC) {
|
|
60
|
+
return dayjs(date);
|
|
61
|
+
}
|
|
62
|
+
return dayjs(date).utc();
|
|
63
|
+
}
|
|
64
|
+
if (typeof date === 'string' && !date.includes('Z') && !date.includes('+')) {
|
|
65
|
+
return (formatOfDate ? dayjs.tz(date, formatOfDate, config.localeZone || timeZoneSetup) : dayjs.tz(date, config.localeZone || timeZoneSetup));
|
|
66
|
+
}
|
|
67
|
+
return (formatOfDate ? dayjs(date, formatOfDate) : dayjs(date)).tz();
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* @description Kiểm tra xem hai ngày có khác nhau không (khác ngày trong tuần)
|
|
71
|
+
* @param date1 ngày thứ nhất cần so sánh
|
|
72
|
+
* @param date2 ngày thứ hai cần so sánh
|
|
73
|
+
* @returns true nếu hai ngày khác nhau, false nếu giống nhau hoặc không thể so sánh
|
|
74
|
+
*/
|
|
75
|
+
export const isDifferenceDay = (date1, date2) => {
|
|
76
|
+
if (isDifferenceMonth(date1, date2)) {
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
const day1 = getDayjs({ date: date1 })?.day();
|
|
80
|
+
const day2 = getDayjs({ date: date2 })?.day();
|
|
81
|
+
return day1 !== day2;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* @description Kiểm tra xem hai ngày có khác tháng không
|
|
85
|
+
* @param date1 ngày thứ nhất cần so sánh
|
|
86
|
+
* @param date2 ngày thứ hai cần so sánh
|
|
87
|
+
* @returns true nếu hai ngày khác tháng, false nếu cùng tháng hoặc không thể so sánh
|
|
88
|
+
*/
|
|
89
|
+
export const isDifferenceMonth = (date1, date2) => {
|
|
90
|
+
if (isDifferenceYear(date1, date2)) {
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
const month1 = getDayjs({ date: date1 })?.month();
|
|
94
|
+
const month2 = getDayjs({ date: date2 })?.month();
|
|
95
|
+
return month1 !== month2;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* @description Kiểm tra xem hai ngày có khác năm không
|
|
99
|
+
* @param date1 ngày thứ nhất cần so sánh
|
|
100
|
+
* @param date2 ngày thứ hai cần so sánh
|
|
101
|
+
* @returns true nếu hai ngày khác năm, false nếu cùng năm hoặc không thể so sánh
|
|
102
|
+
*/
|
|
103
|
+
export const isDifferenceYear = (date1, date2) => {
|
|
104
|
+
const year1 = getDayjs({ date: date1 })?.year();
|
|
105
|
+
const year2 = getDayjs({ date: date2 })?.year();
|
|
106
|
+
return year1 !== year2;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* @description Lấy ra chuỗi thời gian hiển thị theo định dạng và ngôn ngữ
|
|
110
|
+
* @param date thời gian cần định dạng
|
|
111
|
+
* @param format định dạng thời gian muốn lấy ra
|
|
112
|
+
* @param lang lấy theo ngôn ngữ
|
|
113
|
+
*/
|
|
114
|
+
export const formatDate = (date, formatOutput = 'YYYY/MM/DD HH:mm', lang, formatInput) => {
|
|
115
|
+
if (!date) {
|
|
116
|
+
return '';
|
|
117
|
+
}
|
|
118
|
+
lang = lang || UtilsCache.getLang();
|
|
119
|
+
if (functionFormatDate) {
|
|
120
|
+
return functionFormatDate(date, formatOutput, lang);
|
|
121
|
+
}
|
|
122
|
+
date = getDayjs({ date, formatOfDate: formatInput }).locale(lang);
|
|
123
|
+
if (lang === 'vi') {
|
|
124
|
+
dayjs.updateLocale('vi', {
|
|
125
|
+
monthsShort: 'Thg 1_Thg 2_Thg 3_Thg 4_Thg 5_Thg 6_Thg 7_Thg 8_Thg 9_Thg 10_Thg 11_Thg 12'.split('_')
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
return date.format(getFormatData(getTypeByFormat(formatOutput), lang)) || '';
|
|
129
|
+
};
|
|
130
|
+
const getTypeByFormat = (format) => {
|
|
131
|
+
if (format === 'dm' || format === 'dmy' || format === 'dmy hm' || format === 'my') {
|
|
132
|
+
return format;
|
|
133
|
+
}
|
|
134
|
+
if (format === 'DD/MM/YYYY' || format === 'YYYY-MM-DD' || format === 'dd/MM/yyyy' || format === 'dd-MM-yyyy' || format === 'dd/mm/yyyy') {
|
|
135
|
+
return 'dmy';
|
|
136
|
+
}
|
|
137
|
+
if (format === 'MM-DD' || format === 'dd/MM' || format === 'dd/mm') {
|
|
138
|
+
return 'dm';
|
|
139
|
+
}
|
|
140
|
+
if (format === 'M/YYYY' || format === 'YYYY-MM' || format === 'MM/yyyy') {
|
|
141
|
+
return 'my';
|
|
142
|
+
}
|
|
143
|
+
if (format === 'YYYY/MM/DD hh:mm:ss' || format === 'dmy hms' || format === 'dd/mm/yyyy hh:mm:ss') {
|
|
144
|
+
return 'dmy hms';
|
|
145
|
+
}
|
|
146
|
+
if (format === 'hh:mm' || format === 'HH:mm') {
|
|
147
|
+
return 'hh:mm';
|
|
148
|
+
}
|
|
149
|
+
if (format === 'hh:mm A' || format === 'HH:mm A') {
|
|
150
|
+
return 'hh:mm A';
|
|
151
|
+
}
|
|
152
|
+
return 'dmy hm';
|
|
153
|
+
};
|
|
154
|
+
const getFormatData = (type, lang) => {
|
|
155
|
+
switch (type) {
|
|
156
|
+
case 'dm':
|
|
157
|
+
if (lang === 'vi') {
|
|
158
|
+
return 'D MMM';
|
|
159
|
+
}
|
|
160
|
+
return 'MMM D';
|
|
161
|
+
case 'dmy':
|
|
162
|
+
if (lang === 'vi') {
|
|
163
|
+
return 'D MMM, YYYY';
|
|
164
|
+
}
|
|
165
|
+
return 'MMM D, YYYY';
|
|
166
|
+
case 'dmy hm':
|
|
167
|
+
if (lang === 'vi') {
|
|
168
|
+
return 'D MMM, YYYY HH:mm';
|
|
169
|
+
}
|
|
170
|
+
return 'MMM D, YYYY HH:mm';
|
|
171
|
+
case 'my':
|
|
172
|
+
if (lang === 'vi') {
|
|
173
|
+
return 'MMM, YYYY';
|
|
174
|
+
}
|
|
175
|
+
return 'MMM YYYY ';
|
|
176
|
+
case 'dmy hms':
|
|
177
|
+
if (lang === 'vi') {
|
|
178
|
+
return 'D MMM, YYYY HH:mm:ss';
|
|
179
|
+
}
|
|
180
|
+
return 'MMM D, YYYY HH:mm:ss';
|
|
181
|
+
case 'hh:mm':
|
|
182
|
+
case 'HH:mm':
|
|
183
|
+
return 'HH:mm';
|
|
184
|
+
case 'hh:mm A':
|
|
185
|
+
case 'HH:mm A':
|
|
186
|
+
return 'HH:mm A';
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMtdWkvdXRpbHMvc3JjL2RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sVUFBVSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pELE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sWUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDckMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN6QixLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQzNCLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN2QixLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7QUFDL0IsSUFBSSxhQUFhLEdBQUcsa0JBQWtCLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxVQUFVLEdBQUcsYUFBYSxFQUFFLEVBQUU7SUFDL0QsYUFBYSxHQUFHLFVBQVUsQ0FBQztJQUMzQixLQUFLLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNsQyxDQUFDLENBQUE7QUFHRCxJQUFJLGtCQUFrQixHQUEwQyxTQUFTLENBQUM7QUFHMUUsTUFBTSxDQUFDLE1BQU0sd0JB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QUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDbEIsT0FBTyxhQUFhLENBQUM7WUFDdkIsQ0FBQztZQUVELE9BQU8sYUFBYSxDQUFDO1FBRXZCLEtBQUssUUFBUTtZQUNYLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNsQixPQUFPLG1CQUFtQixDQUFDO1lBQzdCLENBQUM7WUFFRCxPQUFPLG1CQUFtQixDQUFDO1FBRTdCLEtBQUssSUFBSTtZQUNQLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNsQixPQUFPLFdBQVcsQ0FBQztZQUNyQixDQUFDO1lBRUQsT0FBTyxXQUFXLENBQUM7UUFFckIsS0FBSyxTQUFTO1lBQ1osSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sc0JBQXNCLENBQUM7WUFDaEMsQ0FBQztZQUVELE9BQU8sc0JBQXNCLENBQUM7UUFFaEMsS0FBSyxPQUFPLENBQUM7UUFDYixLQUFLLE9BQU87WUFDVixPQUFPLE9BQU8sQ0FBQztRQUVqQixLQUFLLFNBQVMsQ0FBQztRQUNmLEtBQUssU0FBUztZQUNaLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVFlQRV9PQkpFQ1QgfSBmcm9tICdAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzJztcbmltcG9ydCBkYXlqcywgeyBEYXlqcyB9IGZyb20gJ2RheWpzJztcbmltcG9ydCBcImRheWpzL2xvY2FsZS9lblwiO1xuaW1wb3J0IFwiZGF5anMvbG9jYWxlL3ZpXCI7XG5pbXBvcnQgY3VzdG9tUGFyc2VGb3JtYXQgZnJvbSAnZGF5anMvcGx1Z2luL2N1c3RvbVBhcnNlRm9ybWF0JztcbmltcG9ydCBsb2NhbGVEYXRhIGZyb20gXCJkYXlqcy9wbHVnaW4vbG9jYWxlRGF0YVwiO1xuaW1wb3J0IHRpbWV6b25lIGZyb20gXCJkYXlqcy9wbHVnaW4vdGltZXpvbmVcIjtcbmltcG9ydCB1cGRhdGVMb2NhbGUgZnJvbSAnZGF5anMvcGx1Z2luL3VwZGF0ZUxvY2FsZSc7XG5pbXBvcnQgdXRjIGZyb20gXCJkYXlqcy9wbHVnaW4vdXRjXCI7XG5pbXBvcnQgeyBVdGlsc0NhY2hlIH0gZnJvbSAnLi9jYWNoZSc7XG5kYXlqcy5leHRlbmQobG9jYWxlRGF0YSk7XG5kYXlqcy5leHRlbmQodXBkYXRlTG9jYWxlKTtcbmRheWpzLmV4dGVuZCh1dGMpO1xuZGF5anMuZXh0ZW5kKHRpbWV6b25lKTtcbmRheWpzLmV4dGVuZChjdXN0b21QYXJzZUZvcm1hdClcbmxldCB0aW1lWm9uZVNldHVwID0gXCJBc2lhL0hvX0NoaV9NaW5oXCI7XG5cbmV4cG9ydCBjb25zdCBzZXREZWZhdWx0VGltZVpvbmUgPSAobG9jYWxlWm9uZSA9IHRpbWVab25lU2V0dXApID0+IHtcbiAgdGltZVpvbmVTZXR1cCA9IGxvY2FsZVpvbmU7XG4gIGRheWpzLnR6LnNldERlZmF1bHQobG9jYWxlWm9uZSk7XG59XG5cbmV4cG9ydCB0eXBlIFRZUEVfRlVOQ1RJT05fRk9STUFUX0RBVEUgPSAodGltZTogZGF5anMuQ29uZmlnVHlwZSwgZm9ybWF0T3V0cHV0OiBzdHJpbmcsIGxhbmc/OiBzdHJpbmcpID0+IHN0cmluZztcbmxldCBmdW5jdGlvbkZvcm1hdERhdGU6IFRZUEVfRlVOQ1RJT05fRk9STUFUX0RBVEUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cblxuZXhwb3J0IGNvbnN0IHVwZGF0ZUZ1bmN0aW9uRm9ybWF0RGF0ZSA9IChmdW5jdGlvbkN1c3RvbTogVFlQRV9GVU5DVElPTl9GT1JNQVRfREFURSkgPT4ge1xuICBmdW5jdGlvbkZvcm1hdERhdGUgPSBmdW5jdGlvbkN1c3RvbTtcbn1cbi8qKlxuICAqIEBkZXNjcmlwdGlvbiBM4bqleSDEkeG7kWkgdMaw4bujbmcgZGF5anMgdGhlbyBjb25maWdcbiAgKiBAcGFyYW0gY29uZmlnIG7hur91IGtow7RuZyBjw7MgY29uZmlnIHPhur0gdHLhuqMgduG7gSDEkeG7kWkgdMaw4bujbmcgZGF5anMgbMOgIHRo4budaSBnaWFuIGhp4buHbiB04bqhaVxuICAqIEBwYXJhbSBjb25maWcuZGF0ZSB0aOG7nWkgZ2lhbiBj4bqnbiBs4bqleVxuICAqIEBwYXJhbSBjb25maWcucmV0dXJuRGF5anNJZkNvbmZpZ0RhdGVOb3RFeGlzdCB0cnVlIG7hur91IG114buRbiB0cuG6oyB24buBIMSR4buRaSB0xrDhu6NuZyBkYXlqcyBu4bq/dSBjb25maWcuZGF0ZSBraMO0bmcgY8OzXG4gICogQHBhcmFtIGNvbmZpZy51dGMgdHJ1ZSBu4bq/dSBtdeG7kW4gbOG6pXkgdGjhu51pIGdpYW4gVVRDXG4gICogQHBhcmFtIGNvbmZpZy5mb3JtYXRPZkRhdGUgxJHhu4tuaCBk4bqhbmcgdGjhu51pIGdpYW4gxJFhbmcgxJHGsOG7o2MgdHJ1eeG7gW4gdsOgb1xuKi9cbmV4cG9ydCBjb25zdCBnZXREYXlqcyA9IDxUID0gZGF5anMuRGF5anMgfCB1bmRlZmluZWQ+KGNvbmZpZz86IHsgZGF0ZT86IGRheWpzLkNvbmZpZ1R5cGU7IHV0Yz86IGJvb2xlYW47IGZvcm1hdE9mRGF0ZT86IHN0cmluZzsgcmV0dXJuRGF5anNJZkNvbmZpZ0RhdGVOb3RFeGlzdD86IGJvb2xlYW4sIGxvY2FsZVpvbmU/OiBzdHJpbmcgfSk6IFQgPT4ge1xuICBpZiAoIWNvbmZpZykge1xuICAgIHJldHVybiBkYXlqcygpLnR6KCkgYXMgVDtcbiAgfVxuICBjb25maWcuZGF0ZSA9ICFjb25maWcuZGF0ZSAmJiBjb25maWcucmV0dXJuRGF5anNJZkNvbmZpZ0RhdGVOb3RFeGlzdCA/IGRheWpzKCkudHooKSA6IGNvbmZpZy5kYXRlO1xuICBpZiAodHlwZW9mIGNvbmZpZy5kYXRlID09PSAnbnVtYmVyJykge1xuICAgIGNvbmZpZy5kYXRlID0gZGF5anMudW5peChjb25maWcuZGF0ZSk7XG4gIH1cbiAgaWYgKCFjb25maWcuZGF0ZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQgYXMgVDtcbiAgfVxuICBsZXQgeyBkYXRlLCB1dGMsIGZvcm1hdE9mRGF0ZSB9ID0gY29uZmlnIGFzIFRZUEVfT0JKRUNUO1xuXG4gIHdoaWxlIChpc1NpZ25hbChkYXRlKSkge1xuICAgIGRhdGUgPSBkYXRlKCk7XG4gIH1cbiAgd2hpbGUgKGlzU2lnbmFsKHV0YykpIHtcbiAgICB1dGMgPSB1dGMoKTtcbiAgfVxuICB3aGlsZSAoaXNTaWduYWwoZm9ybWF0T2ZEYXRlKSkge1xuICAgIGZvcm1hdE9mRGF0ZSA9IGZvcm1hdE9mRGF0ZSgpO1xuICB9XG5cbiAgaWYgKHV0Yykge1xuICAgIGlmIChmb3JtYXRPZkRhdGUpIHtcbiAgICAgIHJldHVybiBkYXlqcyhkYXRlLCBmb3JtYXRPZkRhdGUpLnV0YygpIGFzIFQ7XG4gICAgfVxuICAgIGNvbnN0IGRhdGVJbnB1dElzVVRDID0gKGRheWpzLmlzRGF5anMoZGF0ZSkgJiYgZGF0ZS5pc1VUQygpKSB8fCAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnICYmIChkYXRlIGFzIHN0cmluZykuaW5jbHVkZXMoJ1onKSk7XG5cbiAgICBpZiAoZGF0ZUlucHV0SXNVVEMpIHtcbiAgICAgIHJldHVybiBkYXlqcyhkYXRlKSBhcyBUO1xuICAgIH1cblxuICAgIHJldHVybiBkYXlqcyhkYXRlKS51dGMoKSBhcyBUO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJyAmJiAhKGRhdGUgYXMgc3RyaW5nKS5pbmNsdWRlcygnWicpICYmICEoZGF0ZSBhcyBzdHJpbmcpLmluY2x1ZGVzKCcrJykpIHtcbiAgICByZXR1cm4gKGZvcm1hdE9mRGF0ZSA/IGRheWpzLnR6KGRhdGUsIGZvcm1hdE9mRGF0ZSwgY29uZmlnLmxvY2FsZVpvbmUgfHwgdGltZVpvbmVTZXR1cCkgOiBkYXlqcy50eihkYXRlLCBjb25maWcubG9jYWxlWm9uZSB8fCB0aW1lWm9uZVNldHVwKSkgYXMgVDtcbiAgfVxuXG4gIHJldHVybiAoZm9ybWF0T2ZEYXRlID8gZGF5anMoZGF0ZSwgZm9ybWF0T2ZEYXRlKSA6IGRheWpzKGRhdGUpKS50eigpIGFzIFQ7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEtp4buDbSB0cmEgeGVtIGhhaSBuZ8OgeSBjw7Mga2jDoWMgbmhhdSBraMO0bmcgKGtow6FjIG5nw6B5IHRyb25nIHR14bqnbilcbiAqIEBwYXJhbSBkYXRlMSBuZ8OgeSB0aOG7qSBuaOG6pXQgY+G6p24gc28gc8OhbmhcbiAqIEBwYXJhbSBkYXRlMiBuZ8OgeSB0aOG7qSBoYWkgY+G6p24gc28gc8OhbmhcbiAqIEByZXR1cm5zIHRydWUgbuG6v3UgaGFpIG5nw6B5IGtow6FjIG5oYXUsIGZhbHNlIG7hur91IGdp4buRbmcgbmhhdSBob+G6t2Mga2jDtG5nIHRo4buDIHNvIHPDoW5oXG4gKi9cbmV4cG9ydCBjb25zdCBpc0RpZmZlcmVuY2VEYXkgPSAoZGF0ZTE6IGRheWpzLkNvbmZpZ1R5cGUsIGRhdGUyOiBkYXlqcy5Db25maWdUeXBlKSA9PiB7XG4gIGlmIChpc0RpZmZlcmVuY2VNb250aChkYXRlMSwgZGF0ZTIpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgY29uc3QgZGF5MSA9IGdldERheWpzPERheWpzPih7IGRhdGU6IGRhdGUxIH0pPy5kYXkoKTtcbiAgY29uc3QgZGF5MiA9IGdldERheWpzPERheWpzPih7IGRhdGU6IGRhdGUyIH0pPy5kYXkoKTtcbiAgXG4gIHJldHVybiBkYXkxICE9PSBkYXkyO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBLaeG7g20gdHJhIHhlbSBoYWkgbmfDoHkgY8OzIGtow6FjIHRow6FuZyBraMO0bmdcbiAqIEBwYXJhbSBkYXRlMSBuZ8OgeSB0aOG7qSBuaOG6pXQgY+G6p24gc28gc8OhbmhcbiAqIEBwYXJhbSBkYXRlMiBuZ8OgeSB0aOG7qSBoYWkgY+G6p24gc28gc8OhbmhcbiAqIEByZXR1cm5zIHRydWUgbuG6v3UgaGFpIG5nw6B5IGtow6FjIHRow6FuZywgZmFsc2UgbuG6v3UgY8O5bmcgdGjDoW5nIGhv4bq3YyBraMO0bmcgdGjhu4Mgc28gc8OhbmhcbiAqL1xuZXhwb3J0IGNvbnN0IGlzRGlmZmVyZW5jZU1vbnRoID0gKGRhdGUxOiBkYXlqcy5Db25maWdUeXBlLCBkYXRlMjogZGF5anMuQ29uZmlnVHlwZSkgPT4ge1xuICBpZiAoaXNEaWZmZXJlbmNlWWVhcihkYXRlMSwgZGF0ZTIpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgY29uc3QgbW9udGgxID0gZ2V0RGF5anM8RGF5anM+KHsgZGF0ZTogZGF0ZTEgfSk/Lm1vbnRoKCk7XG4gIGNvbnN0IG1vbnRoMiA9IGdldERheWpzPERheWpzPih7IGRhdGU6IGRhdGUyIH0pPy5tb250aCgpO1xuXG4gIHJldHVybiBtb250aDEgIT09IG1vbnRoMjtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gS2nhu4NtIHRyYSB4ZW0gaGFpIG5nw6B5IGPDsyBraMOhYyBuxINtIGtow7RuZ1xuICogQHBhcmFtIGRhdGUxIG5nw6B5IHRo4bupIG5o4bqldCBj4bqnbiBzbyBzw6FuaFxuICogQHBhcmFtIGRhdGUyIG5nw6B5IHRo4bupIGhhaSBj4bqnbiBzbyBzw6FuaFxuICogQHJldHVybnMgdHJ1ZSBu4bq/dSBoYWkgbmfDoHkga2jDoWMgbsSDbSwgZmFsc2UgbuG6v3UgY8O5bmcgbsSDbSBob+G6t2Mga2jDtG5nIHRo4buDIHNvIHPDoW5oXG4gKi9cbmV4cG9ydCBjb25zdCBpc0RpZmZlcmVuY2VZZWFyID0gKGRhdGUxOiBkYXlqcy5Db25maWdUeXBlLCBkYXRlMjogZGF5anMuQ29uZmlnVHlwZSkgPT4ge1xuICBjb25zdCB5ZWFyMSA9IGdldERheWpzPERheWpzPih7IGRhdGU6IGRhdGUxIH0pPy55ZWFyKCk7XG4gIGNvbnN0IHllYXIyID0gZ2V0RGF5anM8RGF5anM+KHsgZGF0ZTogZGF0ZTIgfSk/LnllYXIoKTtcblxuICByZXR1cm4geWVhcjEgIT09IHllYXIyO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBM4bqleSByYSBjaHXhu5dpIHRo4budaSBnaWFuIGhp4buDbiB0aOG7iyB0aGVvIMSR4buLbmggZOG6oW5nIHbDoCBuZ8O0biBuZ+G7r1xuICogQHBhcmFtIGRhdGUgdGjhu51pIGdpYW4gY+G6p24gxJHhu4tuaCBk4bqhbmdcbiAqIEBwYXJhbSBmb3JtYXQgxJHhu4tuaCBk4bqhbmcgdGjhu51pIGdpYW4gbXXhu5FuIGzhuqV5IHJhXG4gKiBAcGFyYW0gbGFuZyBs4bqleSB0aGVvIG5nw7RuIG5n4buvXG4gKi9cbmV4cG9ydCBjb25zdCBmb3JtYXREYXRlID0gKGRhdGU6IGRheWpzLkNvbmZpZ1R5cGUsIGZvcm1hdE91dHB1dCA9ICdZWVlZL01NL0REIEhIOm1tJywgbGFuZz86IHN0cmluZywgZm9ybWF0SW5wdXQ/OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBpZiAoIWRhdGUpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgbGFuZyA9IGxhbmcgfHwgVXRpbHNDYWNoZS5nZXRMYW5nKCkgYXMgc3RyaW5nO1xuICBpZiAoZnVuY3Rpb25Gb3JtYXREYXRlKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uRm9ybWF0RGF0ZShkYXRlLCBmb3JtYXRPdXRwdXQsIGxhbmcpO1xuICB9XG5cbiAgZGF0ZSA9IGdldERheWpzPERheWpzPih7IGRhdGUsIGZvcm1hdE9mRGF0ZTogZm9ybWF0SW5wdXQgfSkubG9jYWxlKGxhbmcpO1xuICBpZiAobGFuZyA9PT0gJ3ZpJykge1xuICAgIGRheWpzLnVwZGF0ZUxvY2FsZSgndmknLCB7XG4gICAgICBtb250aHNTaG9ydDogJ1RoZyAxX1RoZyAyX1RoZyAzX1RoZyA0X1RoZyA1X1RoZyA2X1RoZyA3X1RoZyA4X1RoZyA5X1RoZyAxMF9UaGcgMTFfVGhnIDEyJy5zcGxpdCgnXycpXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZGF0ZS5mb3JtYXQoZ2V0Rm9ybWF0RGF0YShnZXRUeXBlQnlGb3JtYXQoZm9ybWF0T3V0cHV0KSwgbGFuZykpIHx8ICcnO1xufVxuXG5jb25zdCBnZXRUeXBlQnlGb3JtYXQgPSAoZm9ybWF0OiBzdHJpbmcpOiAnZG0nIHwgJ2RteScgfCAnZG15IGhtJyB8ICdteScgfCAnZG15IGhtcycgfCAnaGg6bW0nIHwgJ0hIOm1tJyB8ICdoaDptbSBBJyB8ICdISDptbSBBJyA9PiB7XG4gIGlmIChmb3JtYXQgPT09ICdkbScgfHwgZm9ybWF0ID09PSAnZG15JyB8fCBmb3JtYXQgPT09ICdkbXkgaG0nIHx8IGZvcm1hdCA9PT0gJ215Jykge1xuICAgIHJldHVybiBmb3JtYXQ7XG4gIH1cblxuICBpZiAoZm9ybWF0ID09PSAnREQvTU0vWVlZWScgfHwgZm9ybWF0ID09PSAnWVlZWS1NTS1ERCcgfHwgZm9ybWF0ID09PSAnZGQvTU0veXl5eScgfHwgZm9ybWF0ID09PSAnZGQtTU0teXl5eScgfHwgZm9ybWF0ID09PSAnZGQvbW0veXl5eScpIHtcbiAgICByZXR1cm4gJ2RteSc7XG4gIH1cblxuICBpZiAoZm9ybWF0ID09PSAnTU0tREQnIHx8IGZvcm1hdCA9PT0gJ2RkL01NJyB8fCBmb3JtYXQgPT09ICdkZC9tbScpIHtcbiAgICByZXR1cm4gJ2RtJztcbiAgfVxuXG4gIGlmIChmb3JtYXQgPT09ICdNL1lZWVknIHx8IGZvcm1hdCA9PT0gJ1lZWVktTU0nIHx8IGZvcm1hdCA9PT0gJ01NL3l5eXknKSB7XG4gICAgcmV0dXJuICdteSc7XG4gIH1cblxuICBpZiAoZm9ybWF0ID09PSAnWVlZWS9NTS9ERCBoaDptbTpzcycgfHwgZm9ybWF0ID09PSAnZG15IGhtcycgfHwgZm9ybWF0ID09PSAnZGQvbW0veXl5eSBoaDptbTpzcycpIHtcbiAgICByZXR1cm4gJ2RteSBobXMnO1xuICB9XG5cbiAgaWYgKGZvcm1hdCA9PT0gJ2hoOm1tJyB8fCBmb3JtYXQgPT09ICdISDptbScpIHtcbiAgICByZXR1cm4gJ2hoOm1tJztcbiAgfVxuXG4gIGlmIChmb3JtYXQgPT09ICdoaDptbSBBJyB8fCBmb3JtYXQgPT09ICdISDptbSBBJykge1xuICAgIHJldHVybiAnaGg6bW0gQSc7XG4gIH1cblxuICByZXR1cm4gJ2RteSBobSc7XG59O1xuXG5jb25zdCBnZXRGb3JtYXREYXRhID0gKHR5cGU6ICdkbScgfCAnZG15JyB8ICdkbXkgaG0nIHwgJ215JyB8ICdkbXkgaG1zJyB8ICdoaDptbScgfCAnaGg6bW0gQScgfCAnSEg6bW0nIHwgJ0hIOm1tIEEnLCBsYW5nOiBzdHJpbmcpID0+IHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnZG0nOlxuICAgICAgaWYgKGxhbmcgPT09ICd2aScpIHtcbiAgICAgICAgcmV0dXJuICdEIE1NTSc7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnTU1NIEQnO1xuXG4gICAgY2FzZSAnZG15JzpcbiAgICAgIGlmIChsYW5nID09PSAndmknKSB7XG4gICAgICAgIHJldHVybiAnRCBNTU0sIFlZWVknO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ01NTSBELCBZWVlZJztcblxuICAgIGNhc2UgJ2RteSBobSc6XG4gICAgICBpZiAobGFuZyA9PT0gJ3ZpJykge1xuICAgICAgICByZXR1cm4gJ0QgTU1NLCBZWVlZIEhIOm1tJztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdNTU0gRCwgWVlZWSBISDptbSc7XG5cbiAgICBjYXNlICdteSc6XG4gICAgICBpZiAobGFuZyA9PT0gJ3ZpJykge1xuICAgICAgICByZXR1cm4gJ01NTSwgWVlZWSc7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnTU1NIFlZWVkgJztcblxuICAgIGNhc2UgJ2RteSBobXMnOlxuICAgICAgaWYgKGxhbmcgPT09ICd2aScpIHtcbiAgICAgICAgcmV0dXJuICdEIE1NTSwgWVlZWSBISDptbTpzcyc7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnTU1NIEQsIFlZWVkgSEg6bW06c3MnO1xuXG4gICAgY2FzZSAnaGg6bW0nOlxuICAgIGNhc2UgJ0hIOm1tJzpcbiAgICAgIHJldHVybiAnSEg6bW0nO1xuXG4gICAgY2FzZSAnaGg6bW0gQSc6XG4gICAgY2FzZSAnSEg6bW0gQSc6XG4gICAgICByZXR1cm4gJ0hIOm1tIEEnO1xuICB9XG59O1xuIl19
|