@libs-ui/utils 0.2.306 → 0.2.308-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/communicate-micro.d.ts +1 -1
  2. package/dangerous-object.d.ts +75 -0
  3. package/date.d.ts +9 -9
  4. package/esm2022/base64.mjs +2 -2
  5. package/esm2022/cache.mjs +17 -14
  6. package/esm2022/color.mjs +66 -14
  7. package/esm2022/communicate-micro.mjs +20 -16
  8. package/esm2022/constants.mjs +1 -1
  9. package/esm2022/crypto-3rd.mjs +3 -3
  10. package/esm2022/crypto.mjs +3 -3
  11. package/esm2022/dangerous-object.mjs +143 -0
  12. package/esm2022/date.mjs +15 -15
  13. package/esm2022/dom.mjs +5 -13
  14. package/esm2022/download.mjs +3 -3
  15. package/esm2022/file.mjs +22 -11
  16. package/esm2022/format-number.mjs +9 -6
  17. package/esm2022/format-text.mjs +13 -15
  18. package/esm2022/function-check-embed-frame.mjs +1 -1
  19. package/esm2022/get-smart-axis-scale.mjs +10 -10
  20. package/esm2022/helpers.mjs +119 -38
  21. package/esm2022/http-params.mjs +2 -2
  22. package/esm2022/index.mjs +2 -1
  23. package/esm2022/inject-token.mjs +2 -2
  24. package/esm2022/key-cache.mjs +6 -6
  25. package/esm2022/key-code.mjs +1 -1
  26. package/esm2022/language.mjs +28 -28
  27. package/esm2022/pattern.mjs +1 -1
  28. package/esm2022/random.mjs +2 -2
  29. package/esm2022/two-way-signal-object.mjs +32 -20
  30. package/esm2022/uri.mjs +9 -6
  31. package/esm2022/url-search-params.mjs +13 -11
  32. package/esm2022/uuid.mjs +2 -2
  33. package/esm2022/xss-filter.mjs +1 -1
  34. package/fesm2022/libs-ui-utils.mjs +646 -346
  35. package/fesm2022/libs-ui-utils.mjs.map +1 -1
  36. package/file.d.ts +1 -1
  37. package/format-text.d.ts +1 -1
  38. package/helpers.d.ts +53 -4
  39. package/http-params.d.ts +1 -1
  40. package/index.d.ts +1 -0
  41. package/inject-token.d.ts +1 -1
  42. package/package.json +2 -2
  43. package/uri.d.ts +1 -1
@@ -1,10 +1,10 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Subject, filter, fromEvent, takeUntil } from "rxjs";
3
- import { decrypt, encrypt } from "./crypto";
4
- import { decrypt3rd, encrypt3rd } from "./crypto-3rd";
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";
2
+ import { Subject, filter, fromEvent, takeUntil } from 'rxjs';
3
+ import { decrypt, encrypt } from './crypto';
4
+ import { decrypt3rd, encrypt3rd } from './crypto-3rd';
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
8
  export class UtilsCommunicateMicroKeyGlobal {
9
9
  static KEY_MESSAGE_MODAL = 'LIBS_UI_MODEL_EVENT';
10
10
  }
@@ -20,7 +20,9 @@ export class UtilsCommunicateMicro {
20
20
  if (!this.subs.get(COMMUNICATE_MICRO_KEY_GET_ALL_MESSAGE)) {
21
21
  this.subs.set(COMMUNICATE_MICRO_KEY_GET_ALL_MESSAGE, UtilsCommunicateMicro.allMessageSub);
22
22
  }
23
- fromEvent(currentWindow, 'message').pipe(takeUntil(onDestroy)).subscribe(e => {
23
+ fromEvent(currentWindow, 'message')
24
+ .pipe(takeUntil(onDestroy))
25
+ .subscribe((e) => {
24
26
  const event = { data: { ...e.data } };
25
27
  const data = event.data;
26
28
  const type = data.type;
@@ -48,7 +50,9 @@ export class UtilsCommunicateMicro {
48
50
  this.allMessageSub.next(event);
49
51
  }
50
52
  });
51
- UtilsCommunicateMicro.GetMessage(UtilsCache.typeKeyClearLocalStorage).pipe(filter(e => e.data.response !== UtilsCache.idService), takeUntil(onDestroy)).subscribe(() => {
53
+ UtilsCommunicateMicro.GetMessage(UtilsCache.typeKeyClearLocalStorage)
54
+ .pipe(filter((e) => e.data.response !== UtilsCache.idService), takeUntil(onDestroy))
55
+ .subscribe(() => {
52
56
  console.log('clear all cache by event');
53
57
  UtilsCache.ClearAll();
54
58
  });
@@ -57,10 +61,10 @@ export class UtilsCommunicateMicro {
57
61
  data = this.convertData(data);
58
62
  try {
59
63
  if (isEmbedFrame()) {
60
- window?.parent?.postMessage(data, "*");
64
+ window?.parent?.postMessage(data, '*');
61
65
  return;
62
66
  }
63
- window?.top?.postMessage(data, "*");
67
+ window?.top?.postMessage(data, '*');
64
68
  }
65
69
  catch (error) {
66
70
  console.log(error);
@@ -68,8 +72,8 @@ export class UtilsCommunicateMicro {
68
72
  }
69
73
  static PostMessageToChildren(data) {
70
74
  data = this.convertData(data);
71
- const iframes = document.querySelectorAll("iframe");
72
- Array.from(iframes).forEach(iframe => {
75
+ const iframes = document.querySelectorAll('iframe');
76
+ Array.from(iframes).forEach((iframe) => {
73
77
  iframe?.contentWindow?.postMessage(data, '*');
74
78
  });
75
79
  }
@@ -107,7 +111,7 @@ export class UtilsCommunicateMicro {
107
111
  }
108
112
  static GetMessage(messageType) {
109
113
  if (!this.initdEvent) {
110
- throw Error("chưa khơi tạo hàm lắng nghe sự kiện, gọi UtilsCommunicateMicro.initEvent(window) tại root component");
114
+ throw Error('chưa khơi tạo hàm lắng nghe sự kiện, gọi UtilsCommunicateMicro.initEvent(window) tại root component');
111
115
  }
112
116
  if (typeof messageType === 'string') {
113
117
  let sub = this.subs.get(messageType);
@@ -135,11 +139,11 @@ export class UtilsCommunicateMicro {
135
139
  return sub;
136
140
  }
137
141
  static initSubject(subRoot, messageType) {
138
- messageType.forEach(key => {
139
- this.GetMessage(key).subscribe(e => {
142
+ messageType.forEach((key) => {
143
+ this.GetMessage(key).subscribe((e) => {
140
144
  subRoot.next(e);
141
145
  });
142
146
  });
143
147
  }
144
148
  }
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbXVuaWNhdGUtbWljcm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzLXVpL3V0aWxzL3NyYy9jb21tdW5pY2F0ZS1taWNyby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNyQyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkcsTUFBTSxPQUFPLDhCQUE4QjtJQUNsQyxNQUFNLENBQUMsaUJBQWlCLEdBQUcscUJBQXFCLENBQUM7O0FBRzFELE1BQU0sT0FBTyxxQkFBcUI7SUFDeEIsTUFBTSxDQUFDLFVBQVUsQ0FBVztJQUM1QixNQUFNLENBQUMsSUFBSSxHQUF1QyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzVELE1BQU0sQ0FBQyxhQUFhLEdBQTBCLElBQUksT0FBTyxFQUFFLENBQUM7SUFFN0QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFxQixFQUFFLFNBQXdCO1FBQ3JFLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLHFDQUFxQyxDQUFDLEVBQUUsQ0FBQztZQUMxRCxJQUFJLENBQUMsSUFB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ZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IFN1YmplY3QsIGZpbHRlciwgZnJvbUV2ZW50LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgZGVjcnlwdCwgZW5jcnlwdCB9IGZyb20gXCIuL2NyeXB0b1wiO1xuaW1wb3J0IHsgZGVjcnlwdDNyZCwgZW5jcnlwdDNyZCB9IGZyb20gXCIuL2NyeXB0by0zcmRcIjtcbmltcG9ydCB7IGlzRW1iZWRGcmFtZSB9IGZyb20gXCIuL2Z1bmN0aW9uLWNoZWNrLWVtYmVkLWZyYW1lXCI7XG5pbXBvcnQgeyBVdGlsc0NhY2hlIH0gZnJvbSBcIi4vY2FjaGVcIjtcbmltcG9ydCB7IENPTU1VTklDQVRFX01JQ1JPX0tFWV9HRVRfQUxMX01FU1NBR0UsIENPTU1VTklDQVRFX01JQ1JPX1BSRUZJWF9UWVBFIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5leHBvcnQgY2xhc3MgVXRpbHNDb21tdW5pY2F0ZU1pY3JvS2V5R2xvYmFsIHtcbiAgcHVibGljIHN0YXRpYyBLRVlfTUVTU0FHRV9NT0RBTCA9ICdMSUJTX1VJX01PREVMX0VWRU5UJztcbn1cblxuZXhwb3J0IGNsYXNzIFV0aWxzQ29tbXVuaWNhdGVNaWNybyB7XG4gIHByaXZhdGUgc3RhdGljIGluaXRkRXZlbnQ/OiBib29sZWFuO1xuICBwcml2YXRlIHN0YXRpYyBzdWJzOiBNYXA8c3RyaW5nLCBTdWJqZWN0PE1lc3NhZ2VFdmVudD4+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIHN0YXRpYyBhbGxNZXNzYWdlU3ViOiBTdWJqZWN0PE1lc3NhZ2VFdmVudD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHB1YmxpYyBzdGF0aWMgaW5pdEV2ZW50KGN1cnJlbnRXaW5kb3c6IFdpbmRvdywgb25EZXN0cm95OiBTdWJqZWN0PHZvaWQ+KSB7XG4gICAgaWYgKHRoaXMuaW5pdGRFdmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmluaXRkRXZlbnQgPSB0cnVlO1xuICAgIGlmICghdGhpcy5zdWJzLmdldChDT01NVU5JQ0FURV9NSUNST19LRVlfR0VUX0FMTF9NRVNTQUdFKSkge1xuICAgICAgdGhpcy5zdWJzLnNldChDT01NVU5JQ0FURV9NSUNST19LRVlfR0VUX0FMTF9NRVNTQUdFLCBVdGlsc0NvbW11bmljYXRlTWljcm8uYWxsTWVzc2FnZVN1Yik7XG4gICAgfVxuXG4gICAgZnJvbUV2ZW50PE1lc3NhZ2VFdmVudD4oY3VycmVudFdpbmRvdywgJ21lc3NhZ2UnKS5waXBlKHRha2VVbnRpbChvbkRlc3Ryb3kpKS5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICBjb25zdCBldmVudCA9IHsgZGF0YTogeyAuLi5lLmRhdGEgfSB9IGFzIE1lc3NhZ2VFdmVudDtcblxuICAgICAgY29uc3QgZGF0YSA9IGV2ZW50LmRhdGE7XG4gICAgICBjb25zdCB0eXBlID0gZGF0YS50eXBlO1xuXG4gICAgICBpZiAoIXR5cGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxsTWVzc2FnZVN1Yi5uZXh0KGV2ZW50KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHN1YiA9IFV0aWxzQ29tbXVuaWNhdGVNaWNyby5HZXRNZXNzYWdlKHR5cGUpO1xuXG4gICAgICBpZiAoIXR5cGUgfHwgIWRhdGEucmVzcG9uc2UpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGUuaW5jbHVkZXMoQ09NTVVOSUNBVEVfTUlDUk9fUFJFRklYX1RZUEUpKSB7XG5cbiAgICAgICAgICBkYXRhLnJlc3BvbnNlID0gSlNPTi5wYXJzZShkZWNyeXB0M3JkKGRhdGEucmVzcG9uc2UpKTtcbiAgICAgICAgICBzdWIubmV4dChldmVudCk7XG4gICAgICAgICAgdGhpcy5hbGxNZXNzYWdlU3ViLm5leHQoZXZlbnQpO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRhdGEucmVzcG9uc2UgPSBKU09OLnBhcnNlKGRlY3J5cHQoZGF0YS5yZXNwb25zZSkpO1xuICAgICAgICBzdWIubmV4dChldmVudCk7XG4gICAgICAgIHRoaXMuYWxsTWVzc2FnZVN1Yi5uZXh0KGV2ZW50KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgICAgc3ViLm5leHQoZXZlbnQpO1xuICAgICAgICB0aGlzLmFsbE1lc3NhZ2VTdWIubmV4dChldmVudCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBVdGlsc0NvbW11bmljYXRlTWljcm8uR2V0TWVzc2FnZShVdGlsc0NhY2hlLnR5cGVLZXlDbGVhckxvY2FsU3RvcmFnZSkucGlwZShmaWx0ZXIoZSA9PiBlLmRhdGEucmVzcG9uc2UgIT09IFV0aWxzQ2FjaGUuaWRTZXJ2aWNlKSwgdGFrZVVudGlsKG9uRGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnY2xlYXIgYWxsIGNhY2hlIGJ5IGV2ZW50Jyk7XG4gICAgICBVdGlsc0NhY2hlLkNsZWFyQWxsKCk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgUG9zdE1lc3NhZ2VUb1BhcmVudChkYXRhOiBhbnkpIHtcbiAgICBkYXRhID0gdGhpcy5jb252ZXJ0RGF0YShkYXRhKTtcbiAgICB0cnkge1xuICAgICAgaWYgKGlzRW1iZWRGcmFtZSgpKSB7XG4gICAgICAgIHdpbmRvdz8ucGFyZW50Py5wb3N0TWVzc2FnZShkYXRhLCBcIipcIik7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB3aW5kb3c/LnRvcD8ucG9zdE1lc3NhZ2UoZGF0YSwgXCIqXCIpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIFBvc3RNZXNzYWdlVG9DaGlsZHJlbihkYXRhOiBhbnkpIHtcbiAgICBkYXRhID0gdGhpcy5jb252ZXJ0RGF0YShkYXRhKTtcbiAgICBjb25zdCBpZnJhbWVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcImlmcmFtZVwiKTtcblxuICAgIEFycmF5LmZyb20oaWZyYW1lcykuZm9yRWFjaChpZnJhbWUgPT4ge1xuICAgICAgaWZyYW1lPy5jb250ZW50V2luZG93Py5wb3N0TWVzc2FnZShkYXRhLCAnKicpO1xuICAgIH0pO1xuXG4gIH1cblxuICBzdGF0aWMgUG9zdE1lc3NhZ2VUb09wZW5lcihkYXRhOiBhbnkpIHtcbiAgICBpZiAoIXdpbmRvdy5vcGVuZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZGF0YSA9IHRoaXMuY29udmVydERhdGEoZGF0YSk7XG5cbiAgICB3aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKGRhdGEsICcqJyk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjb252ZXJ0RGF0YShkYXRhOiBhbnkpIHtcbiAgICBpZiAoIWRhdGEgfHwgIWRhdGEudHlwZSB8fCAhZGF0YS5yZXNwb25zZSkge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGRhdGEgPSB7IC4uLmRhdGEgfTtcbiAgICBjb25zdCB0eXBlID0gZGF0YS50eXBlO1xuXG4gICAgaWYgKHR5cGUuaW5jbHVkZXMoQ09NTVVOSUNBVEVfTUlDUk9fUFJFRklYX1RZUEUpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBKU09OLnBhcnNlKGRlY3J5cHQzcmQoZGF0YS5yZXNwb25zZSkpO1xuXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfSBjYXRjaCAoXykge1xuICAgICAgICBkYXRhLnJlc3BvbnNlID0gZW5jcnlwdDNyZChKU09OLnN0cmluZ2lmeShkYXRhLnJlc3BvbnNlKSk7XG5cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9XG5cbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIEpTT04ucGFyc2UoZGVjcnlwdChkYXRhLnJlc3BvbnNlKSk7XG5cbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgIGRhdGEucmVzcG9uc2UgPSBlbmNyeXB0KEpTT04uc3RyaW5naWZ5KGRhdGEucmVzcG9uc2UpKTtcblxuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIEdldE1lc3NhZ2UobWVzc2FnZVR5cGU6IHN0cmluZyB8IEFycmF5PHN0cmluZz4pOiBTdWJqZWN0PE1lc3NhZ2VFdmVudD4ge1xuICAgIGlmICghdGhpcy5pbml0ZEV2ZW50KSB7XG4gICAgICB0aHJvdyBFcnJvcihcImNoxrBhIGtoxqFpIHThuqFvIGjDoG0gbOG6r25nIG5naGUgc+G7sSBraeG7h24sIGfhu41pIFV0aWxzQ29tbXVuaWNhdGVNaWNyby5pbml0RXZlbnQod2luZG93KSB04bqhaSByb290IGNvbXBvbmVudFwiKVxuICAgIH1cbiAgICBpZiAodHlwZW9mIG1lc3NhZ2VUeXBlID09PSAnc3RyaW5nJykge1xuICAgICAgbGV0IHN1YiA9IHRoaXMuc3Vicy5nZXQobWVzc2FnZVR5cGUpO1xuXG4gICAgICBpZiAoIXN1Yikge1xuICAgICAgICBzdWIgPSBuZXcgU3ViamVjdCgpO1xuICAgICAgICB0aGlzLnN1YnMuc2V0KG1lc3NhZ2VUeXBlLCBzdWIpO1xuXG4gICAgICAgIHJldHVybiBzdWI7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzdWI7XG4gICAgfVxuICAgIGlmICghQXJyYXkuaXNBcnJheShtZXNzYWdlVHlwZSkgfHwgIW1lc3NhZ2VUeXBlLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtZXNzYWdlIHR5cGUgZW1wdHknKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VUeXBlLmxlbmd0aCA9PT0gMSkge1xuICAgICAgcmV0dXJuIHRoaXMuR2V0TWVzc2FnZShtZXNzYWdlVHlwZVswXSk7XG4gICAgfVxuICAgIGNvbnN0IHR5cGVzID0gbWVzc2FnZVR5cGUuc29ydCgpLmpvaW4oJzsnKTtcblxuICAgIGxldCBzdWIgPSB0aGlzLnN1YnMuZ2V0KHR5cGVzKTtcblxuICAgIGlmIChzdWIpIHtcbiAgICAgIHJldHVybiBzdWI7XG4gICAgfVxuXG4gICAgc3ViID0gbmV3IFN1YmplY3QoKTtcbiAgICB0aGlzLnN1YnMuc2V0KHR5cGVzLCBzdWIpO1xuICAgIHRoaXMuaW5pdFN1YmplY3Qoc3ViLCBtZXNzYWdlVHlwZSk7XG5cbiAgICByZXR1cm4gc3ViO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaW5pdFN1YmplY3Qoc3ViUm9vdDogU3ViamVjdDxNZXNzYWdlRXZlbnQ+LCBtZXNzYWdlVHlwZTogQXJyYXk8c3RyaW5nPikge1xuICAgIG1lc3NhZ2VUeXBlLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIHRoaXMuR2V0TWVzc2FnZShrZXkpLnN1YnNjcmliZShlID0+IHtcbiAgICAgICAgc3ViUm9vdC5uZXh0KGUpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbXVuaWNhdGUtbWljcm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzLXVpL3V0aWxzL3NyYy9jb21tdW5pY2F0ZS1taWNyby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNyQyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkcsTUFBTSxPQUFPLDhCQUE4QjtJQUNsQyxNQUFNLENBQUMsaUJBQWlCLEdBQUcscUJBQXFCLENBQUM7O0FBRzFELE1BQU0sT0FBTyxxQkFBcUI7SUFDeEIsTUFBTSxDQUFDLFVBQVUsQ0FBVztJQUM1QixNQUFNLENBQUMsSUFBSSxHQUF1QyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzVELE1BQU0sQ0FBQyxhQUFhLEdBQTBCLElBQUksT0FBTyxFQUFFLENBQUM7SUFFN0QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFxQixFQUFFLFNBQXdCO1FBQ3JFLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLHFDQUFxQyxDQUFDLEVBQUUsQ0FBQztZQUMxRCxJQUFJLENBQUMsSUFB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LENBQUMsQ0FBQztJQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBTdWJqZWN0LCBmaWx0ZXIsIGZyb21FdmVudCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWNyeXB0LCBlbmNyeXB0IH0gZnJvbSAnLi9jcnlwdG8nO1xuaW1wb3J0IHsgZGVjcnlwdDNyZCwgZW5jcnlwdDNyZCB9IGZyb20gJy4vY3J5cHRvLTNyZCc7XG5pbXBvcnQgeyBpc0VtYmVkRnJhbWUgfSBmcm9tICcuL2Z1bmN0aW9uLWNoZWNrLWVtYmVkLWZyYW1lJztcbmltcG9ydCB7IFV0aWxzQ2FjaGUgfSBmcm9tICcuL2NhY2hlJztcbmltcG9ydCB7IENPTU1VTklDQVRFX01JQ1JPX0tFWV9HRVRfQUxMX01FU1NBR0UsIENPTU1VTklDQVRFX01JQ1JPX1BSRUZJWF9UWVBFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuZXhwb3J0IGNsYXNzIFV0aWxzQ29tbXVuaWNhdGVNaWNyb0tleUdsb2JhbCB7XG4gIHB1YmxpYyBzdGF0aWMgS0VZX01FU1NBR0VfTU9EQUwgPSAnTElCU19VSV9NT0RFTF9FVkVOVCc7XG59XG5cbmV4cG9ydCBjbGFzcyBVdGlsc0NvbW11bmljYXRlTWljcm8ge1xuICBwcml2YXRlIHN0YXRpYyBpbml0ZEV2ZW50PzogYm9vbGVhbjtcbiAgcHJpdmF0ZSBzdGF0aWMgc3ViczogTWFwPHN0cmluZywgU3ViamVjdDxNZXNzYWdlRXZlbnQ+PiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSBzdGF0aWMgYWxsTWVzc2FnZVN1YjogU3ViamVjdDxNZXNzYWdlRXZlbnQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwdWJsaWMgc3RhdGljIGluaXRFdmVudChjdXJyZW50V2luZG93OiBXaW5kb3csIG9uRGVzdHJveTogU3ViamVjdDx2b2lkPikge1xuICAgIGlmICh0aGlzLmluaXRkRXZlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbml0ZEV2ZW50ID0gdHJ1ZTtcbiAgICBpZiAoIXRoaXMuc3Vicy5nZXQoQ09NTVVOSUNBVEVfTUlDUk9fS0VZX0dFVF9BTExfTUVTU0FHRSkpIHtcbiAgICAgIHRoaXMuc3Vicy5zZXQoQ09NTVVOSUNBVEVfTUlDUk9fS0VZX0dFVF9BTExfTUVTU0FHRSwgVXRpbHNDb21tdW5pY2F0ZU1pY3JvLmFsbE1lc3NhZ2VTdWIpO1xuICAgIH1cblxuICAgIGZyb21FdmVudDxNZXNzYWdlRXZlbnQ+KGN1cnJlbnRXaW5kb3csICdtZXNzYWdlJylcbiAgICAgIC5waXBlKHRha2VVbnRpbChvbkRlc3Ryb3kpKVxuICAgICAgLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICBjb25zdCBldmVudCA9IHsgZGF0YTogeyAuLi5lLmRhdGEgfSB9IGFzIE1lc3NhZ2VFdmVudDtcblxuICAgICAgICBjb25zdCBkYXRhID0gZXZlbnQuZGF0YTtcbiAgICAgICAgY29uc3QgdHlwZSA9IGRhdGEudHlwZTtcblxuICAgICAgICBpZiAoIXR5cGUpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5hbGxNZXNzYWdlU3ViLm5leHQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN1YiA9IFV0aWxzQ29tbXVuaWNhdGVNaWNyby5HZXRNZXNzYWdlKHR5cGUpO1xuXG4gICAgICAgIGlmICghdHlwZSB8fCAhZGF0YS5yZXNwb25zZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmICh0eXBlLmluY2x1ZGVzKENPTU1VTklDQVRFX01JQ1JPX1BSRUZJWF9UWVBFKSkge1xuICAgICAgICAgICAgZGF0YS5yZXNwb25zZSA9IEpTT04ucGFyc2UoZGVjcnlwdDNyZChkYXRhLnJlc3BvbnNlKSk7XG4gICAgICAgICAgICBzdWIubmV4dChldmVudCk7XG4gICAgICAgICAgICB0aGlzLmFsbE1lc3NhZ2VTdWIubmV4dChldmVudCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgZGF0YS5yZXNwb25zZSA9IEpTT04ucGFyc2UoZGVjcnlwdChkYXRhLnJlc3BvbnNlKSk7XG4gICAgICAgICAgc3ViLm5leHQoZXZlbnQpO1xuICAgICAgICAgIHRoaXMuYWxsTWVzc2FnZVN1Yi5uZXh0KGV2ZW50KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgICAgICAgc3ViLm5leHQoZXZlbnQpO1xuICAgICAgICAgIHRoaXMuYWxsTWVzc2FnZVN1Yi5uZXh0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBVdGlsc0NvbW11bmljYXRlTWljcm8uR2V0TWVzc2FnZShVdGlsc0NhY2hlLnR5cGVLZXlDbGVhckxvY2FsU3RvcmFnZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGUpID0+IGUuZGF0YS5yZXNwb25zZSAhPT0gVXRpbHNDYWNoZS5pZFNlcnZpY2UpLFxuICAgICAgICB0YWtlVW50aWwob25EZXN0cm95KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdjbGVhciBhbGwgY2FjaGUgYnkgZXZlbnQnKTtcbiAgICAgICAgVXRpbHNDYWNoZS5DbGVhckFsbCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBzdGF0aWMgUG9zdE1lc3NhZ2VUb1BhcmVudChkYXRhOiBhbnkpIHtcbiAgICBkYXRhID0gdGhpcy5jb252ZXJ0RGF0YShkYXRhKTtcbiAgICB0cnkge1xuICAgICAgaWYgKGlzRW1iZWRGcmFtZSgpKSB7XG4gICAgICAgIHdpbmRvdz8ucGFyZW50Py5wb3N0TWVzc2FnZShkYXRhLCAnKicpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgd2luZG93Py50b3A/LnBvc3RNZXNzYWdlKGRhdGEsICcqJyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgUG9zdE1lc3NhZ2VUb0NoaWxkcmVuKGRhdGE6IGFueSkge1xuICAgIGRhdGEgPSB0aGlzLmNvbnZlcnREYXRhKGRhdGEpO1xuICAgIGNvbnN0IGlmcmFtZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpZnJhbWUnKTtcblxuICAgIEFycmF5LmZyb20oaWZyYW1lcykuZm9yRWFjaCgoaWZyYW1lKSA9PiB7XG4gICAgICBpZnJhbWU/LmNvbnRlbnRXaW5kb3c/LnBvc3RNZXNzYWdlKGRhdGEsICcqJyk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgUG9zdE1lc3NhZ2VUb09wZW5lcihkYXRhOiBhbnkpIHtcbiAgICBpZiAoIXdpbmRvdy5vcGVuZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZGF0YSA9IHRoaXMuY29udmVydERhdGEoZGF0YSk7XG5cbiAgICB3aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKGRhdGEsICcqJyk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjb252ZXJ0RGF0YShkYXRhOiBhbnkpIHtcbiAgICBpZiAoIWRhdGEgfHwgIWRhdGEudHlwZSB8fCAhZGF0YS5yZXNwb25zZSkge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGRhdGEgPSB7IC4uLmRhdGEgfTtcbiAgICBjb25zdCB0eXBlID0gZGF0YS50eXBlO1xuXG4gICAgaWYgKHR5cGUuaW5jbHVkZXMoQ09NTVVOSUNBVEVfTUlDUk9fUFJFRklYX1RZUEUpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBKU09OLnBhcnNlKGRlY3J5cHQzcmQoZGF0YS5yZXNwb25zZSkpO1xuXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfSBjYXRjaCAoXykge1xuICAgICAgICBkYXRhLnJlc3BvbnNlID0gZW5jcnlwdDNyZChKU09OLnN0cmluZ2lmeShkYXRhLnJlc3BvbnNlKSk7XG5cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBKU09OLnBhcnNlKGRlY3J5cHQoZGF0YS5yZXNwb25zZSkpO1xuXG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9IGNhdGNoIChfKSB7XG4gICAgICBkYXRhLnJlc3BvbnNlID0gZW5jcnlwdChKU09OLnN0cmluZ2lmeShkYXRhLnJlc3BvbnNlKSk7XG5cbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBHZXRNZXNzYWdlKG1lc3NhZ2VUeXBlOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+KTogU3ViamVjdDxNZXNzYWdlRXZlbnQ+IHtcbiAgICBpZiAoIXRoaXMuaW5pdGRFdmVudCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ2NoxrBhIGtoxqFpIHThuqFvIGjDoG0gbOG6r25nIG5naGUgc+G7sSBraeG7h24sIGfhu41pIFV0aWxzQ29tbXVuaWNhdGVNaWNyby5pbml0RXZlbnQod2luZG93KSB04bqhaSByb290IGNvbXBvbmVudCcpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG1lc3NhZ2VUeXBlID09PSAnc3RyaW5nJykge1xuICAgICAgbGV0IHN1YiA9IHRoaXMuc3Vicy5nZXQobWVzc2FnZVR5cGUpO1xuXG4gICAgICBpZiAoIXN1Yikge1xuICAgICAgICBzdWIgPSBuZXcgU3ViamVjdCgpO1xuICAgICAgICB0aGlzLnN1YnMuc2V0KG1lc3NhZ2VUeXBlLCBzdWIpO1xuXG4gICAgICAgIHJldHVybiBzdWI7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzdWI7XG4gICAgfVxuICAgIGlmICghQXJyYXkuaXNBcnJheShtZXNzYWdlVHlwZSkgfHwgIW1lc3NhZ2VUeXBlLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtZXNzYWdlIHR5cGUgZW1wdHknKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VUeXBlLmxlbmd0aCA9PT0gMSkge1xuICAgICAgcmV0dXJuIHRoaXMuR2V0TWVzc2FnZShtZXNzYWdlVHlwZVswXSk7XG4gICAgfVxuICAgIGNvbnN0IHR5cGVzID0gbWVzc2FnZVR5cGUuc29ydCgpLmpvaW4oJzsnKTtcblxuICAgIGxldCBzdWIgPSB0aGlzLnN1YnMuZ2V0KHR5cGVzKTtcblxuICAgIGlmIChzdWIpIHtcbiAgICAgIHJldHVybiBzdWI7XG4gICAgfVxuXG4gICAgc3ViID0gbmV3IFN1YmplY3QoKTtcbiAgICB0aGlzLnN1YnMuc2V0KHR5cGVzLCBzdWIpO1xuICAgIHRoaXMuaW5pdFN1YmplY3Qoc3ViLCBtZXNzYWdlVHlwZSk7XG5cbiAgICByZXR1cm4gc3ViO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaW5pdFN1YmplY3Qoc3ViUm9vdDogU3ViamVjdDxNZXNzYWdlRXZlbnQ+LCBtZXNzYWdlVHlwZTogQXJyYXk8c3RyaW5nPikge1xuICAgIG1lc3NhZ2VUeXBlLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgdGhpcy5HZXRNZXNzYWdlKGtleSkuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgIHN1YlJvb3QubmV4dChlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -8,4 +8,4 @@ export const CHARACTER_DATA_EMPTY = '__';
8
8
  export const DEFAULT_START_PAGE_0 = 'defaultStartPage0';
9
9
  export const COMMUNICATE_MICRO_PREFIX_TYPE = '3RD_INTEGRATE_MICRO_SITE_';
10
10
  export const COMMUNICATE_MICRO_KEY_GET_ALL_MESSAGE = 'MICRO_SITES_ALL_MESSAGE';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy11aS91dGlscy9zcmMvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLDBCQUEwQixDQUFDO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLDRCQUE0QixDQUFDO0FBQ3ZFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLG9DQUFvQyxDQUFDO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLG9DQUFvQyxDQUFDO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLHFDQUFxQyxDQUFDO0FBQzlFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLHFDQUFxQyxDQUFDO0FBQzlFLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRywyQkFBMkIsQ0FBQztBQUN6RSxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBFUlJPUl9NRVNTQUdFX0VNUFRZX1ZBTElEID0gJ2kxOG5fdmFsaWRfZW1wdHlfbWVzc2FnZSc7XG5leHBvcnQgY29uc3QgRVJST1JfTUVTU0FHRV9QQVRURU5fVkFMSUQgPSAnaTE4bl92YWxpZF9wYXR0ZXJuX21lc3NhZ2UnO1xuZXhwb3J0IGNvbnN0IEVSUk9SX01FU1NBR0VfTUlOX1ZBTElEID0gJ2kxOG5fbWVzc2FnZV9lcnJvcl9pbnB1dF9taW5fdmFsdWUnO1xuZXhwb3J0IGNvbnN0IEVSUk9SX01FU1NBR0VfTUFYX1ZBTElEID0gJ2kxOG5fbWVzc2FnZV9lcnJvcl9pbnB1dF9tYXhfdmFsdWUnO1xuZXhwb3J0IGNvbnN0IEVSUk9SX01FU1NBR0VfTUlOX0xFTkdUSCA9ICdpMThuX21lc3NhZ2VfZXJyb3JfaW5wdXRfbWluX2xlbmd0aCc7XG5leHBvcnQgY29uc3QgRVJST1JfTUVTU0FHRV9NQVhfTEVOR1RIID0gJ2kxOG5fbWVzc2FnZV9lcnJvcl9pbnB1dF9tYXhfbGVuZ3RoJztcbmV4cG9ydCBjb25zdCBDSEFSQUNURVJfREFUQV9FTVBUWSA9ICdfXyc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9TVEFSVF9QQUdFXzAgPSAnZGVmYXVsdFN0YXJ0UGFnZTAnO1xuZXhwb3J0IGNvbnN0IENPTU1VTklDQVRFX01JQ1JPX1BSRUZJWF9UWVBFID0gJzNSRF9JTlRFR1JBVEVfTUlDUk9fU0lURV8nO1xuZXhwb3J0IGNvbnN0IENPTU1VTklDQVRFX01JQ1JPX0tFWV9HRVRfQUxMX01FU1NBR0UgPSAnTUlDUk9fU0lURVNfQUxMX01FU1NBR0UnOyJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy11aS91dGlscy9zcmMvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLDBCQUEwQixDQUFDO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLDRCQUE0QixDQUFDO0FBQ3ZFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLG9DQUFvQyxDQUFDO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLG9DQUFvQyxDQUFDO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLHFDQUFxQyxDQUFDO0FBQzlFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLHFDQUFxQyxDQUFDO0FBQzlFLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRywyQkFBMkIsQ0FBQztBQUN6RSxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBFUlJPUl9NRVNTQUdFX0VNUFRZX1ZBTElEID0gJ2kxOG5fdmFsaWRfZW1wdHlfbWVzc2FnZSc7XG5leHBvcnQgY29uc3QgRVJST1JfTUVTU0FHRV9QQVRURU5fVkFMSUQgPSAnaTE4bl92YWxpZF9wYXR0ZXJuX21lc3NhZ2UnO1xuZXhwb3J0IGNvbnN0IEVSUk9SX01FU1NBR0VfTUlOX1ZBTElEID0gJ2kxOG5fbWVzc2FnZV9lcnJvcl9pbnB1dF9taW5fdmFsdWUnO1xuZXhwb3J0IGNvbnN0IEVSUk9SX01FU1NBR0VfTUFYX1ZBTElEID0gJ2kxOG5fbWVzc2FnZV9lcnJvcl9pbnB1dF9tYXhfdmFsdWUnO1xuZXhwb3J0IGNvbnN0IEVSUk9SX01FU1NBR0VfTUlOX0xFTkdUSCA9ICdpMThuX21lc3NhZ2VfZXJyb3JfaW5wdXRfbWluX2xlbmd0aCc7XG5leHBvcnQgY29uc3QgRVJST1JfTUVTU0FHRV9NQVhfTEVOR1RIID0gJ2kxOG5fbWVzc2FnZV9lcnJvcl9pbnB1dF9tYXhfbGVuZ3RoJztcbmV4cG9ydCBjb25zdCBDSEFSQUNURVJfREFUQV9FTVBUWSA9ICdfXyc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9TVEFSVF9QQUdFXzAgPSAnZGVmYXVsdFN0YXJ0UGFnZTAnO1xuZXhwb3J0IGNvbnN0IENPTU1VTklDQVRFX01JQ1JPX1BSRUZJWF9UWVBFID0gJzNSRF9JTlRFR1JBVEVfTUlDUk9fU0lURV8nO1xuZXhwb3J0IGNvbnN0IENPTU1VTklDQVRFX01JQ1JPX0tFWV9HRVRfQUxMX01FU1NBR0UgPSAnTUlDUk9fU0lURVNfQUxMX01FU1NBR0UnO1xuIl19
@@ -15,7 +15,7 @@ const keyStore = () => {
15
15
  };
16
16
  export const encrypt3rd = (plainData) => {
17
17
  if (!keyStore()) {
18
- throw Error("lỗi chưa setup key mã hóa");
18
+ throw Error('lỗi chưa setup key mã hóa');
19
19
  }
20
20
  const key = CryptoES.enc.Hex.parse(keyStore());
21
21
  const iv = CryptoES.enc.Hex.parse(keyStore());
@@ -26,7 +26,7 @@ export const encrypt3rd = (plainData) => {
26
26
  };
27
27
  export const decrypt3rd = (encryptedData) => {
28
28
  if (!keyStore()) {
29
- throw Error("lỗi chưa setup key mã hóa");
29
+ throw Error('lỗi chưa setup key mã hóa');
30
30
  }
31
31
  const key = CryptoES.enc.Hex.parse(keyStore());
32
32
  const iv = CryptoES.enc.Hex.parse(keyStore());
@@ -35,4 +35,4 @@ export const decrypt3rd = (encryptedData) => {
35
35
  const options = { iv: iv, mode: mode, padding: padding };
36
36
  return CryptoES.AES.decrypt(encryptedData, key, options).toString(CryptoES.enc.Utf8);
37
37
  };
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLTNyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMtdWkvdXRpbHMvc3JjL2NyeXB0by0zcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBRWpDLElBQUksR0FBRyxHQUFHLDBCQUEwQixDQUFDO0FBRXJDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFO0lBQy9DLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUMvQyxNQUFNLEtBQUssQ0FBQyxnQkFBZ0IsS0FBSyxDQUFDLE1BQU0sNENBQTRDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBQ0QsR0FBRyxHQUFHLEtBQUssQ0FBQztBQUNkLENBQUMsQ0FBQztBQUdGLE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRTtJQUNwQixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLFNBQWlCLEVBQVUsRUFBRTtJQUN0RCxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUNoQixNQUFNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMvQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM5QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUMvQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztJQUNuQyxNQUFNLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFFekQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLGFBQXFCLEVBQVUsRUFBRTtJQUMxRCxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUNoQixNQUFNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMvQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM5QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUMvQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztJQUNuQyxNQUFNLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFFekQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3ZGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IENyeXB0b0VTIGZyb20gJ2NyeXB0by1lcyc7XG5cbmxldCBrZXkgPSAnMTJ+QCNsb3F3c3hhY3ZhKDNyZGhhcTEyJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVGhp4bq/dCBs4bqtcCBrZXkgbcOjIGjDs2FcbiAqIEBwYXJhbSB2YWx1ZSBrZXkgbcOjIGjDs2EsIMSR4buZIGTDoGkgYuG6sW5nIDI0IGhv4bq3YyAzMiBrw70gdOG7sS5cbiAqL1xuZXhwb3J0IGNvbnN0IHNldEtleUNyeXB0bzNyZCA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gIGlmICh2YWx1ZS5sZW5ndGggIT09IDI0ICYmIHZhbHVlLmxlbmd0aCAhPT0gMzIpIHtcbiAgICB0aHJvdyBFcnJvcihga2V5Lmxlbmd0aCA9ICR7dmFsdWUubGVuZ3RofTsgS2V5IHBo4bqjaSBsw6AgMSBjaHXhu5dpIGTDoGkgMjQgaG/hurdjIDMyIGvDvSB04buxYCk7XG4gIH1cbiAga2V5ID0gdmFsdWU7XG59O1xuXG5cbmNvbnN0IGtleVN0b3JlID0gKCkgPT4ge1xuICByZXR1cm4ga2V5O1xufVxuXG5leHBvcnQgY29uc3QgZW5jcnlwdDNyZCA9IChwbGFpbkRhdGE6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGlmICgha2V5U3RvcmUoKSkge1xuICAgIHRocm93IEVycm9yKFwibOG7l2kgY2jGsGEgc2V0dXAga2V5IG3DoyBow7NhXCIpO1xuICB9XG4gIGNvbnN0IGtleSA9IENyeXB0b0VTLmVuYy5IZXgucGFyc2Uoa2V5U3RvcmUoKSk7XG4gIGNvbnN0IGl2ID0gQ3J5cHRvRVMuZW5jLkhleC5wYXJzZShrZXlTdG9yZSgpKTtcbiAgY29uc3QgbW9kZSA9IENyeXB0b0VTLm1vZGUuQ0JDO1xuICBjb25zdCBwYWRkaW5nID0gQ3J5cHRvRVMucGFkLlBrY3M3O1xuICBjb25zdCBvcHRpb25zID0geyBpdjogaXYsIG1vZGU6IG1vZGUsIHBhZGRpbmc6IHBhZGRpbmcgfTtcblxuICByZXR1cm4gQ3J5cHRvRVMuQUVTLmVuY3J5cHQocGxhaW5EYXRhLCBrZXksIG9wdGlvbnMpLnRvU3RyaW5nKCk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVjcnlwdDNyZCA9IChlbmNyeXB0ZWREYXRhOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBpZiAoIWtleVN0b3JlKCkpIHtcbiAgICB0aHJvdyBFcnJvcihcImzhu5dpIGNoxrBhIHNldHVwIGtleSBtw6MgaMOzYVwiKTtcbiAgfVxuICBjb25zdCBrZXkgPSBDcnlwdG9FUy5lbmMuSGV4LnBhcnNlKGtleVN0b3JlKCkpO1xuICBjb25zdCBpdiA9IENyeXB0b0VTLmVuYy5IZXgucGFyc2Uoa2V5U3RvcmUoKSk7XG4gIGNvbnN0IG1vZGUgPSBDcnlwdG9FUy5tb2RlLkNCQztcbiAgY29uc3QgcGFkZGluZyA9IENyeXB0b0VTLnBhZC5Qa2NzNztcbiAgY29uc3Qgb3B0aW9ucyA9IHsgaXY6IGl2LCBtb2RlOiBtb2RlLCBwYWRkaW5nOiBwYWRkaW5nIH07XG5cbiAgcmV0dXJuIENyeXB0b0VTLkFFUy5kZWNyeXB0KGVuY3J5cHRlZERhdGEsIGtleSwgb3B0aW9ucykudG9TdHJpbmcoQ3J5cHRvRVMuZW5jLlV0ZjgpO1xufTsiXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLTNyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMtdWkvdXRpbHMvc3JjL2NyeXB0by0zcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBRWpDLElBQUksR0FBRyxHQUFHLDBCQUEwQixDQUFDO0FBRXJDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFO0lBQy9DLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUMvQyxNQUFNLEtBQUssQ0FBQyxnQkFBZ0IsS0FBSyxDQUFDLE1BQU0sNENBQTRDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBQ0QsR0FBRyxHQUFHLEtBQUssQ0FBQztBQUNkLENBQUMsQ0FBQztBQUVGLE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRTtJQUNwQixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLFNBQWlCLEVBQVUsRUFBRTtJQUN0RCxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUNoQixNQUFNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMvQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM5QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUMvQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztJQUNuQyxNQUFNLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFFekQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLGFBQXFCLEVBQVUsRUFBRTtJQUMxRCxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUNoQixNQUFNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMvQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM5QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUMvQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztJQUNuQyxNQUFNLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFFekQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3ZGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDcnlwdG9FUyBmcm9tICdjcnlwdG8tZXMnO1xuXG5sZXQga2V5ID0gJzEyfkAjbG9xd3N4YWN2YSgzcmRoYXExMic7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFRoaeG6v3QgbOG6rXAga2V5IG3DoyBow7NhXG4gKiBAcGFyYW0gdmFsdWUga2V5IG3DoyBow7NhLCDEkeG7mSBkw6BpIGLhurFuZyAyNCBob+G6t2MgMzIga8O9IHThu7EuXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRLZXlDcnlwdG8zcmQgPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICBpZiAodmFsdWUubGVuZ3RoICE9PSAyNCAmJiB2YWx1ZS5sZW5ndGggIT09IDMyKSB7XG4gICAgdGhyb3cgRXJyb3IoYGtleS5sZW5ndGggPSAke3ZhbHVlLmxlbmd0aH07IEtleSBwaOG6o2kgbMOgIDEgY2h14buXaSBkw6BpIDI0IGhv4bq3YyAzMiBrw70gdOG7sWApO1xuICB9XG4gIGtleSA9IHZhbHVlO1xufTtcblxuY29uc3Qga2V5U3RvcmUgPSAoKSA9PiB7XG4gIHJldHVybiBrZXk7XG59O1xuXG5leHBvcnQgY29uc3QgZW5jcnlwdDNyZCA9IChwbGFpbkRhdGE6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGlmICgha2V5U3RvcmUoKSkge1xuICAgIHRocm93IEVycm9yKCds4buXaSBjaMawYSBzZXR1cCBrZXkgbcOjIGjDs2EnKTtcbiAgfVxuICBjb25zdCBrZXkgPSBDcnlwdG9FUy5lbmMuSGV4LnBhcnNlKGtleVN0b3JlKCkpO1xuICBjb25zdCBpdiA9IENyeXB0b0VTLmVuYy5IZXgucGFyc2Uoa2V5U3RvcmUoKSk7XG4gIGNvbnN0IG1vZGUgPSBDcnlwdG9FUy5tb2RlLkNCQztcbiAgY29uc3QgcGFkZGluZyA9IENyeXB0b0VTLnBhZC5Qa2NzNztcbiAgY29uc3Qgb3B0aW9ucyA9IHsgaXY6IGl2LCBtb2RlOiBtb2RlLCBwYWRkaW5nOiBwYWRkaW5nIH07XG5cbiAgcmV0dXJuIENyeXB0b0VTLkFFUy5lbmNyeXB0KHBsYWluRGF0YSwga2V5LCBvcHRpb25zKS50b1N0cmluZygpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlY3J5cHQzcmQgPSAoZW5jcnlwdGVkRGF0YTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKCFrZXlTdG9yZSgpKSB7XG4gICAgdGhyb3cgRXJyb3IoJ2zhu5dpIGNoxrBhIHNldHVwIGtleSBtw6MgaMOzYScpO1xuICB9XG4gIGNvbnN0IGtleSA9IENyeXB0b0VTLmVuYy5IZXgucGFyc2Uoa2V5U3RvcmUoKSk7XG4gIGNvbnN0IGl2ID0gQ3J5cHRvRVMuZW5jLkhleC5wYXJzZShrZXlTdG9yZSgpKTtcbiAgY29uc3QgbW9kZSA9IENyeXB0b0VTLm1vZGUuQ0JDO1xuICBjb25zdCBwYWRkaW5nID0gQ3J5cHRvRVMucGFkLlBrY3M3O1xuICBjb25zdCBvcHRpb25zID0geyBpdjogaXYsIG1vZGU6IG1vZGUsIHBhZGRpbmc6IHBhZGRpbmcgfTtcblxuICByZXR1cm4gQ3J5cHRvRVMuQUVTLmRlY3J5cHQoZW5jcnlwdGVkRGF0YSwga2V5LCBvcHRpb25zKS50b1N0cmluZyhDcnlwdG9FUy5lbmMuVXRmOCk7XG59O1xuIl19
@@ -15,7 +15,7 @@ const keyStore = () => {
15
15
  };
16
16
  export const encrypt = (plainData) => {
17
17
  if (!keyStore()) {
18
- throw Error("lỗi chưa setup key mã hóa");
18
+ throw Error('lỗi chưa setup key mã hóa');
19
19
  }
20
20
  const key = CryptoES.enc.Hex.parse(keyStore());
21
21
  const iv = CryptoES.enc.Hex.parse(keyStore());
@@ -26,7 +26,7 @@ export const encrypt = (plainData) => {
26
26
  };
27
27
  export const decrypt = (encryptedData) => {
28
28
  if (!keyStore()) {
29
- throw Error("lỗi chưa setup key mã hóa");
29
+ throw Error('lỗi chưa setup key mã hóa');
30
30
  }
31
31
  const key = CryptoES.enc.Hex.parse(keyStore());
32
32
  const iv = CryptoES.enc.Hex.parse(keyStore());
@@ -38,4 +38,4 @@ export const decrypt = (encryptedData) => {
38
38
  export const md5 = (plainData) => {
39
39
  return CryptoES.MD5(plainData).toString();
40
40
  };
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy11aS91dGlscy9zcmMvY3J5cHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUVqQyxJQUFJLEdBQUcsR0FBRywwQkFBMEIsQ0FBQztBQUVyQzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtJQUM1QyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDL0MsTUFBTSxLQUFLLENBQUMsZ0JBQWdCLEtBQUssQ0FBQyxNQUFNLDRDQUE0QyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUNELEdBQUcsR0FBRyxLQUFLLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUU7SUFDcEIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxTQUFpQixFQUFVLEVBQUU7SUFDbkQsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7UUFDaEIsTUFBTSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0MsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDOUMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDL0IsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDbkMsTUFBTSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBRXpELE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUNsRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxhQUFxQixFQUFVLEVBQUU7SUFDdkQsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7UUFDaEIsTUFBTSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0MsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDOUMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDL0IsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDbkMsTUFBTSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBRXpELE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN2RixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxTQUFpQixFQUFFLEVBQUU7SUFDdkMsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQzVDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IENyeXB0b0VTIGZyb20gJ2NyeXB0by1lcyc7XG5cbmxldCBrZXkgPSAnMTJ+QCNsb3F3c3hhY3ZhKDNyZGhhcTEyJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVGhp4bq/dCBs4bqtcCBrZXkgbcOjIGjDs2FcbiAqIEBwYXJhbSB2YWx1ZSBrZXkgbcOjIGjDs2EsIMSR4buZIGTDoGkgYuG6sW5nIDI0IGhv4bq3YyAzMiBrw70gdOG7sS5cbiAqL1xuZXhwb3J0IGNvbnN0IHNldEtleUNyeXB0byA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gIGlmICh2YWx1ZS5sZW5ndGggIT09IDI0ICYmIHZhbHVlLmxlbmd0aCAhPT0gMzIpIHtcbiAgICB0aHJvdyBFcnJvcihga2V5Lmxlbmd0aCA9ICR7dmFsdWUubGVuZ3RofTsgS2V5IHBo4bqjaSBsw6AgMSBjaHXhu5dpIGTDoGkgMjQgaG/hurdjIDMyIGvDvSB04buxYCk7XG4gIH1cbiAga2V5ID0gdmFsdWU7XG59O1xuXG5jb25zdCBrZXlTdG9yZSA9ICgpID0+IHtcbiAgcmV0dXJuIGtleTtcbn1cblxuZXhwb3J0IGNvbnN0IGVuY3J5cHQgPSAocGxhaW5EYXRhOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBpZiAoIWtleVN0b3JlKCkpIHtcbiAgICB0aHJvdyBFcnJvcihcImzhu5dpIGNoxrBhIHNldHVwIGtleSBtw6MgaMOzYVwiKTtcbiAgfVxuICBjb25zdCBrZXkgPSBDcnlwdG9FUy5lbmMuSGV4LnBhcnNlKGtleVN0b3JlKCkpO1xuICBjb25zdCBpdiA9IENyeXB0b0VTLmVuYy5IZXgucGFyc2Uoa2V5U3RvcmUoKSk7XG4gIGNvbnN0IG1vZGUgPSBDcnlwdG9FUy5tb2RlLkNCQztcbiAgY29uc3QgcGFkZGluZyA9IENyeXB0b0VTLnBhZC5Qa2NzNztcbiAgY29uc3Qgb3B0aW9ucyA9IHsgaXY6IGl2LCBtb2RlOiBtb2RlLCBwYWRkaW5nOiBwYWRkaW5nIH07XG5cbiAgcmV0dXJuIENyeXB0b0VTLkFFUy5lbmNyeXB0KHBsYWluRGF0YSwga2V5LCBvcHRpb25zKS50b1N0cmluZygpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlY3J5cHQgPSAoZW5jcnlwdGVkRGF0YTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKCFrZXlTdG9yZSgpKSB7XG4gICAgdGhyb3cgRXJyb3IoXCJs4buXaSBjaMawYSBzZXR1cCBrZXkgbcOjIGjDs2FcIik7XG4gIH1cbiAgY29uc3Qga2V5ID0gQ3J5cHRvRVMuZW5jLkhleC5wYXJzZShrZXlTdG9yZSgpKTtcbiAgY29uc3QgaXYgPSBDcnlwdG9FUy5lbmMuSGV4LnBhcnNlKGtleVN0b3JlKCkpO1xuICBjb25zdCBtb2RlID0gQ3J5cHRvRVMubW9kZS5DQkM7XG4gIGNvbnN0IHBhZGRpbmcgPSBDcnlwdG9FUy5wYWQuUGtjczc7XG4gIGNvbnN0IG9wdGlvbnMgPSB7IGl2OiBpdiwgbW9kZTogbW9kZSwgcGFkZGluZzogcGFkZGluZyB9O1xuXG4gIHJldHVybiBDcnlwdG9FUy5BRVMuZGVjcnlwdChlbmNyeXB0ZWREYXRhLCBrZXksIG9wdGlvbnMpLnRvU3RyaW5nKENyeXB0b0VTLmVuYy5VdGY4KTtcbn07XG5cbmV4cG9ydCBjb25zdCBtZDUgPSAocGxhaW5EYXRhOiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIENyeXB0b0VTLk1ENShwbGFpbkRhdGEpLnRvU3RyaW5nKCk7XG59O1xuXG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy11aS91dGlscy9zcmMvY3J5cHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUVqQyxJQUFJLEdBQUcsR0FBRywwQkFBMEIsQ0FBQztBQUVyQzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtJQUM1QyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDL0MsTUFBTSxLQUFLLENBQUMsZ0JBQWdCLEtBQUssQ0FBQyxNQUFNLDRDQUE0QyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUNELEdBQUcsR0FBRyxLQUFLLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUU7SUFDcEIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxTQUFpQixFQUFVLEVBQUU7SUFDbkQsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7UUFDaEIsTUFBTSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0MsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDOUMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDL0IsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDbkMsTUFBTSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBRXpELE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUNsRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxhQUFxQixFQUFVLEVBQUU7SUFDdkQsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7UUFDaEIsTUFBTSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0MsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDOUMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDL0IsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDbkMsTUFBTSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBRXpELE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN2RixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxTQUFpQixFQUFFLEVBQUU7SUFDdkMsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQzVDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDcnlwdG9FUyBmcm9tICdjcnlwdG8tZXMnO1xuXG5sZXQga2V5ID0gJzEyfkAjbG9xd3N4YWN2YSgzcmRoYXExMic7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFRoaeG6v3QgbOG6rXAga2V5IG3DoyBow7NhXG4gKiBAcGFyYW0gdmFsdWUga2V5IG3DoyBow7NhLCDEkeG7mSBkw6BpIGLhurFuZyAyNCBob+G6t2MgMzIga8O9IHThu7EuXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRLZXlDcnlwdG8gPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICBpZiAodmFsdWUubGVuZ3RoICE9PSAyNCAmJiB2YWx1ZS5sZW5ndGggIT09IDMyKSB7XG4gICAgdGhyb3cgRXJyb3IoYGtleS5sZW5ndGggPSAke3ZhbHVlLmxlbmd0aH07IEtleSBwaOG6o2kgbMOgIDEgY2h14buXaSBkw6BpIDI0IGhv4bq3YyAzMiBrw70gdOG7sWApO1xuICB9XG4gIGtleSA9IHZhbHVlO1xufTtcblxuY29uc3Qga2V5U3RvcmUgPSAoKSA9PiB7XG4gIHJldHVybiBrZXk7XG59O1xuXG5leHBvcnQgY29uc3QgZW5jcnlwdCA9IChwbGFpbkRhdGE6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGlmICgha2V5U3RvcmUoKSkge1xuICAgIHRocm93IEVycm9yKCds4buXaSBjaMawYSBzZXR1cCBrZXkgbcOjIGjDs2EnKTtcbiAgfVxuICBjb25zdCBrZXkgPSBDcnlwdG9FUy5lbmMuSGV4LnBhcnNlKGtleVN0b3JlKCkpO1xuICBjb25zdCBpdiA9IENyeXB0b0VTLmVuYy5IZXgucGFyc2Uoa2V5U3RvcmUoKSk7XG4gIGNvbnN0IG1vZGUgPSBDcnlwdG9FUy5tb2RlLkNCQztcbiAgY29uc3QgcGFkZGluZyA9IENyeXB0b0VTLnBhZC5Qa2NzNztcbiAgY29uc3Qgb3B0aW9ucyA9IHsgaXY6IGl2LCBtb2RlOiBtb2RlLCBwYWRkaW5nOiBwYWRkaW5nIH07XG5cbiAgcmV0dXJuIENyeXB0b0VTLkFFUy5lbmNyeXB0KHBsYWluRGF0YSwga2V5LCBvcHRpb25zKS50b1N0cmluZygpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlY3J5cHQgPSAoZW5jcnlwdGVkRGF0YTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKCFrZXlTdG9yZSgpKSB7XG4gICAgdGhyb3cgRXJyb3IoJ2zhu5dpIGNoxrBhIHNldHVwIGtleSBtw6MgaMOzYScpO1xuICB9XG4gIGNvbnN0IGtleSA9IENyeXB0b0VTLmVuYy5IZXgucGFyc2Uoa2V5U3RvcmUoKSk7XG4gIGNvbnN0IGl2ID0gQ3J5cHRvRVMuZW5jLkhleC5wYXJzZShrZXlTdG9yZSgpKTtcbiAgY29uc3QgbW9kZSA9IENyeXB0b0VTLm1vZGUuQ0JDO1xuICBjb25zdCBwYWRkaW5nID0gQ3J5cHRvRVMucGFkLlBrY3M3O1xuICBjb25zdCBvcHRpb25zID0geyBpdjogaXYsIG1vZGU6IG1vZGUsIHBhZGRpbmc6IHBhZGRpbmcgfTtcblxuICByZXR1cm4gQ3J5cHRvRVMuQUVTLmRlY3J5cHQoZW5jcnlwdGVkRGF0YSwga2V5LCBvcHRpb25zKS50b1N0cmluZyhDcnlwdG9FUy5lbmMuVXRmOCk7XG59O1xuXG5leHBvcnQgY29uc3QgbWQ1ID0gKHBsYWluRGF0YTogc3RyaW5nKSA9PiB7XG4gIHJldHVybiBDcnlwdG9FUy5NRDUocGxhaW5EYXRhKS50b1N0cmluZygpO1xufTtcbiJdfQ==
@@ -0,0 +1,143 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { HttpParams } from '@angular/common/http';
3
+ import { TemplateRef, ElementRef } from '@angular/core';
4
+ import dayjs from 'dayjs';
5
+ import { Observable } from 'rxjs';
6
+ /**
7
+ * Danh sách các constructor name nguy hiểm
8
+ */
9
+ const DANGEROUS_CONSTRUCTOR_NAMES = ['Window', 'Document', 'HTMLDocument', 'HTMLElement', 'Element', 'Node', 'Location', 'Navigator', 'Screen', 'History', 'Storage', 'Console', 'Performance'];
10
+ /**
11
+ * Kiểm tra xem đối tượng có phải là browser global object không
12
+ */
13
+ export const isBrowserGlobalObject = (obj) => {
14
+ if (obj === null || typeof obj !== 'object') {
15
+ return false;
16
+ }
17
+ return obj instanceof Window || obj instanceof Document || obj === window || obj === document || obj === globalThis;
18
+ };
19
+ /**
20
+ * Kiểm tra xem đối tượng có phải là DOM object không
21
+ */
22
+ export const isDOMObject = (obj) => {
23
+ if (obj === null || typeof obj !== 'object') {
24
+ return false;
25
+ }
26
+ return obj instanceof HTMLElement || obj instanceof Node || obj instanceof Element;
27
+ };
28
+ /**
29
+ * Kiểm tra xem đối tượng có phải là browser API object không
30
+ */
31
+ export const isBrowserAPIObject = (obj) => {
32
+ if (obj === null || typeof obj !== 'object' || typeof window === 'undefined') {
33
+ return false;
34
+ }
35
+ return obj === window.location || obj === window.navigator || obj === window.screen || obj === window.history || obj === window.localStorage || obj === window.sessionStorage || obj === window.console || obj === window.performance;
36
+ };
37
+ /**
38
+ * Kiểm tra constructor name có nằm trong danh sách nguy hiểm không
39
+ */
40
+ export const hasDangerousConstructorName = (obj) => {
41
+ if (obj === null || typeof obj !== 'object') {
42
+ return false;
43
+ }
44
+ const constructorName = obj.constructor?.name;
45
+ return constructorName && DANGEROUS_CONSTRUCTOR_NAMES.includes(constructorName);
46
+ };
47
+ /**
48
+ * Kiểm tra xem đối tượng có phải là DOM object hoặc browser object nguy hiểm không
49
+ * Những đối tượng này có thể gây ra circular reference và maximum call stack
50
+ */
51
+ export const isDangerousObject = (obj) => {
52
+ if (obj === null || typeof obj !== 'object') {
53
+ return false;
54
+ }
55
+ return isBrowserGlobalObject(obj) || isDOMObject(obj) || isBrowserAPIObject(obj) || hasDangerousConstructorName(obj);
56
+ };
57
+ /**
58
+ * Kiểm tra đối tượng có phải là Angular/Framework object không
59
+ */
60
+ export const isFrameworkObject = (obj) => {
61
+ if (obj === null || typeof obj !== 'object') {
62
+ return false;
63
+ }
64
+ return obj instanceof TemplateRef || obj instanceof ElementRef;
65
+ };
66
+ /**
67
+ * Kiểm tra đối tượng có phải là File/Blob object không
68
+ */
69
+ export const isFileObject = (obj) => {
70
+ if (obj === null || typeof obj !== 'object') {
71
+ return false;
72
+ }
73
+ return obj instanceof File || obj instanceof Blob || Object.prototype.toString.call(obj) === '[object File]';
74
+ };
75
+ /**
76
+ * Kiểm tra đối tượng có phải là Built-in object không
77
+ */
78
+ export const isBuiltInObject = (obj) => {
79
+ if (obj === null || typeof obj !== 'object') {
80
+ return false;
81
+ }
82
+ return obj instanceof Date || obj instanceof RegExp || obj instanceof HttpParams;
83
+ };
84
+ /**
85
+ * Kiểm tra đối tượng có phải là Async object không
86
+ */
87
+ export const isAsyncObject = (obj) => {
88
+ if (obj === null || typeof obj !== 'object') {
89
+ return false;
90
+ }
91
+ return obj instanceof Promise || obj instanceof Observable;
92
+ };
93
+ /**
94
+ * Kiểm tra đối tượng có phải là Special object cần bỏ qua không
95
+ * Bao gồm: Framework objects, File objects, Built-in objects, Async objects
96
+ */
97
+ export const isSpecialObject = (obj) => {
98
+ return isFrameworkObject(obj) || isFileObject(obj) || isBuiltInObject(obj) || isAsyncObject(obj);
99
+ };
100
+ /**
101
+ * Kiểm tra đối tượng có phải là dayjs object không
102
+ */
103
+ export const isDayjsObject = (obj) => {
104
+ return dayjs.isDayjs(obj);
105
+ };
106
+ /**
107
+ * Kiểm tra đối tượng có phải là object cần bỏ qua trong quá trình convert không
108
+ */
109
+ export const isSkippableObject = (obj) => {
110
+ return isDangerousObject(obj) || isSpecialObject(obj);
111
+ };
112
+ /**
113
+ * Kiểm tra đối tượng có phải là Map object không
114
+ */
115
+ export const isMapObject = (obj) => {
116
+ return obj instanceof Map;
117
+ };
118
+ /**
119
+ * Kiểm tra đối tượng có phải là Set object không
120
+ */
121
+ export const isSetObject = (obj) => {
122
+ return obj instanceof Set;
123
+ };
124
+ /**
125
+ * Kiểm tra đối tượng có phải là Array object không
126
+ */
127
+ export const isArrayObject = (obj) => {
128
+ return Array.isArray(obj);
129
+ };
130
+ /**
131
+ * Kiểm tra đối tượng có phải là object cần trả về nguyên trạng không
132
+ * Bao gồm: dangerous objects, special objects, dayjs objects
133
+ */
134
+ export const isReturnAsIsObject = (obj) => {
135
+ return isSkippableObject(obj) || isDayjsObject(obj);
136
+ };
137
+ /**
138
+ * Kiểm tra xem đối tượng có an toàn để clone/convert không
139
+ */
140
+ export const isSafeToProcess = (obj) => {
141
+ return !isDangerousObject(obj);
142
+ };
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFuZ2Vyb3VzLW9iamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMtdWkvdXRpbHMvc3JjL2Rhbmdlcm91cy1vYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RCxPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEM7O0dBRUc7QUFDSCxNQUFNLDJCQUEyQixHQUFHLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFVLENBQUM7QUFFek07O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEdBQVEsRUFBb0UsRUFBRTtJQUNsSCxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDNUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsT0FBTyxHQUFHLFlBQVksTUFBTSxJQUFJLEdBQUcsWUFBWSxRQUFRLElBQUksR0FBRyxLQUFLLE1BQU0sSUFBSSxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxVQUFVLENBQUM7QUFDdEgsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFRLEVBQXVDLEVBQUU7SUFDM0UsSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxD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QUFXLEdBQUcsQ0FBVSxHQUFRLEVBQWlCLEVBQUU7SUFDOUQsT0FBTyxHQUFHLFlBQVksR0FBRyxDQUFDO0FBQzVCLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQVUsR0FBUSxFQUFtQixFQUFFO0lBQ2xFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEdBQVEsRUFBVyxFQUFFO0lBQ3RELE9BQU8saUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3RELENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBUSxFQUFXLEVBQUU7SUFDbkQsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2pDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBUZW1wbGF0ZVJlZiwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGRheWpzLCB7IERheWpzIH0gZnJvbSAnZGF5anMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIERhbmggc8OhY2ggY8OhYyBjb25zdHJ1Y3RvciBuYW1lIG5ndXkgaGnhu4NtXG4gKi9cbmNvbnN0IERBTkdFUk9VU19DT05TVFJVQ1RPUl9OQU1FUyA9IFsnV2luZG93JywgJ0RvY3VtZW50JywgJ0hUTUxEb2N1bWVudCcsICdIVE1MRWxlbWVudCcsICdFbGVtZW50JywgJ05vZGUnLCAnTG9jYXRpb24nLCAnTmF2aWdhdG9yJywgJ1NjcmVlbicsICdIaXN0b3J5JywgJ1N0b3JhZ2UnLCAnQ29uc29sZScsICdQZXJmb3JtYW5jZSddIGFzIGNvbnN0O1xuXG4vKipcbiAqIEtp4buDbSB0cmEgeGVtIMSR4buRaSB0xrDhu6NuZyBjw7MgcGjhuqNpIGzDoCBicm93c2VyIGdsb2JhbCBvYmplY3Qga2jDtG5nXG4gKi9cbmV4cG9ydCBjb25zdCBpc0Jyb3dzZXJHbG9iYWxPYmplY3QgPSAob2JqOiBhbnkpOiBvYmogaXMgV2luZG93IHwgRG9jdW1lbnQgfCBXaW5kb3cgfCBEb2N1bWVudCB8IHR5cGVvZiBnbG9iYWxUaGlzID0+IHtcbiAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gb2JqIGluc3RhbmNlb2YgV2luZG93IHx8IG9iaiBpbnN0YW5jZW9mIERvY3VtZW50IHx8IG9iaiA9PT0gd2luZG93IHx8IG9iaiA9PT0gZG9jdW1lbnQgfHwgb2JqID09PSBnbG9iYWxUaGlzO1xufTtcblxuLyoqXG4gKiBLaeG7g20gdHJhIHhlbSDEkeG7kWkgdMaw4bujbmcgY8OzIHBo4bqjaSBsw6AgRE9NIG9iamVjdCBraMO0bmdcbiAqL1xuZXhwb3J0IGNvbnN0IGlzRE9NT2JqZWN0ID0gKG9iajogYW55KTogb2JqIGlzIEhUTUxFbGVtZW50IHwgTm9kZSB8IEVsZW1lbnQgPT4ge1xuICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBvYmogaW5zdGFuY2VvZiBIVE1MRWxlbWVudCB8fCBvYmogaW5zdGFuY2VvZiBOb2RlIHx8IG9iaiBpbnN0YW5jZW9mIEVsZW1lbnQ7XG59O1xuXG4vKipcbiAqIEtp4buDbSB0cmEgeGVtIMSR4buRaSB0xrDhu6NuZyBjw7MgcGjhuqNpIGzDoCBicm93c2VyIEFQSSBvYmplY3Qga2jDtG5nXG4gKi9cbmV4cG9ydCBjb25zdCBpc0Jyb3dzZXJBUElPYmplY3QgPSAob2JqOiBhbnkpOiBib29sZWFuID0+IHtcbiAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSAnb2JqZWN0JyB8fCB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gb2JqID09PSB3aW5kb3cubG9jYXRpb24gfHwgb2JqID09PSB3aW5kb3cubmF2aWdhdG9yIHx8IG9iaiA9PT0gd2luZG93LnNjcmVlbiB8fCBvYmogPT09IHdpbmRvdy5oaXN0b3J5IHx8IG9iaiA9PT0gd2luZG93LmxvY2FsU3RvcmFnZSB8fCBvYmogPT09IHdpbmRvdy5zZXNzaW9uU3RvcmFnZSB8fCBvYmogPT09IHdpbmRvdy5jb25zb2xlIHx8IG9iaiA9PT0gd2luZG93LnBlcmZvcm1hbmNlO1xufTtcblxuLyoqXG4gKiBLaeG7g20gdHJhIGNvbnN0cnVjdG9yIG5hbWUgY8OzIG7hurFtIHRyb25nIGRhbmggc8OhY2ggbmd1eSBoaeG7g20ga2jDtG5nXG4gKi9cbmV4cG9ydCBjb25zdCBoYXNEYW5nZXJvdXNDb25zdHJ1Y3Rvck5hbWUgPSAob2JqOiBhbnkpOiBib29sZWFuID0+IHtcbiAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBjb25zdHJ1Y3Rvck5hbWUgPSBvYmouY29uc3RydWN0b3I/Lm5hbWU7XG4gIHJldHVybiBjb25zdHJ1Y3Rvck5hbWUgJiYgREFOR0VST1VTX0NPTlNUUlVDVE9SX05BTUVTLmluY2x1ZGVzKGNvbnN0cnVjdG9yTmFtZSBhcyBhbnkpO1xufTtcblxuLyoqXG4gKiBLaeG7g20gdHJhIHhlbSDEkeG7kWkgdMaw4bujbmcgY8OzIHBo4bqjaSBsw6AgRE9NIG9iamVjdCBob+G6t2MgYnJvd3NlciBvYmplY3Qgbmd1eSBoaeG7g20ga2jDtG5nXG4gKiBOaOG7r25nIMSR4buRaSB0xrDhu6NuZyBuw6B5IGPDsyB0aOG7gyBnw6J5IHJhIGNpcmN1bGFyIHJlZmVyZW5jZSB2w6AgbWF4aW11bSBjYWxsIHN0YWNrXG4gKi9cbmV4cG9ydCBjb25zdCBpc0Rhbmdlcm91c09iamVjdCA9IChvYmo6IGFueSk6IGJvb2xlYW4gPT4ge1xuICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGlzQnJvd3Nlckdsb2JhbE9iamVjdChvYmopIHx8IGlzRE9NT2JqZWN0KG9iaikgfHwgaXNCcm93c2VyQVBJT2JqZWN0KG9iaikgfHwgaGFzRGFuZ2Vyb3VzQ29uc3RydWN0b3JOYW1lKG9iaik7XG59O1xuXG4vKipcbiAqIEtp4buDbSB0cmEgxJHhu5FpIHTGsOG7o25nIGPDsyBwaOG6o2kgbMOgIEFuZ3VsYXIvRnJhbWV3b3JrIG9iamVjdCBraMO0bmdcbiAqL1xuZXhwb3J0IGNvbnN0IGlzRnJhbWV3b3JrT2JqZWN0ID0gPFQgPSBhbnk+KG9iajogYW55KTogb2JqIGlzIFRlbXBsYXRlUmVmPFQ+IHwgRWxlbWVudFJlZjxUPiA9PiB7XG4gIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmIHx8IG9iaiBpbnN0YW5jZW9mIEVsZW1lbnRSZWY7XG59O1xuXG4vKipcbiAqIEtp4buDbSB0cmEgxJHhu5FpIHTGsOG7o25nIGPDsyBwaOG6o2kgbMOgIEZpbGUvQmxvYiBvYmplY3Qga2jDtG5nXG4gKi9cbmV4cG9ydCBjb25zdCBpc0ZpbGVPYmplY3QgPSAob2JqOiBhbnkpOiBvYmogaXMgRmlsZSB8IEJsb2IgPT4ge1xuICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBvYmogaW5zdGFuY2VvZiBGaWxlIHx8IG9iaiBpbnN0YW5jZW9mIEJsb2IgfHwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikgPT09ICdbb2JqZWN0IEZpbGVdJztcbn07XG5cbi8qKlxuICogS2nhu4NtIHRyYSDEkeG7kWkgdMaw4bujbmcgY8OzIHBo4bqjaSBsw6AgQnVpbHQtaW4gb2JqZWN0IGtow7RuZ1xuICovXG5leHBvcnQgY29uc3QgaXNCdWlsdEluT2JqZWN0ID0gKG9iajogYW55KTogb2JqIGlzIERhdGUgfCBSZWdFeHAgfCBIdHRwUGFyYW1zID0+IHtcbiAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gb2JqIGluc3RhbmNlb2YgRGF0ZSB8fCBvYmogaW5zdGFuY2VvZiBSZWdFeHAgfHwgb2JqIGluc3RhbmNlb2YgSHR0cFBhcmFtcztcbn07XG5cbi8qKlxuICogS2nhu4NtIHRyYSDEkeG7kWkgdMaw4bujbmcgY8OzIHBo4bqjaSBsw6AgQXN5bmMgb2JqZWN0IGtow7RuZ1xuICovXG5leHBvcnQgY29uc3QgaXNBc3luY09iamVjdCA9IDxUID0gYW55PihvYmo6IGFueSk6IG9iaiBpcyBQcm9taXNlPFQ+IHwgT2JzZXJ2YWJsZTxUPiA9PiB7XG4gIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIFByb21pc2UgfHwgb2JqIGluc3RhbmNlb2YgT2JzZXJ2YWJsZTtcbn07XG5cbi8qKlxuICogS2nhu4NtIHRyYSDEkeG7kWkgdMaw4bujbmcgY8OzIHBo4bqjaSBsw6AgU3BlY2lhbCBvYmplY3QgY+G6p24gYuG7jyBxdWEga2jDtG5nXG4gKiBCYW8gZ+G7k206IEZyYW1ld29yayBvYmplY3RzLCBGaWxlIG9iamVjdHMsIEJ1aWx0LWluIG9iamVjdHMsIEFzeW5jIG9iamVjdHNcbiAqL1xuZXhwb3J0IGNvbnN0IGlzU3BlY2lhbE9iamVjdCA9IChvYmo6IGFueSk6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gaXNGcmFtZXdvcmtPYmplY3Qob2JqKSB8fCBpc0ZpbGVPYmplY3Qob2JqKSB8fCBpc0J1aWx0SW5PYmplY3Qob2JqKSB8fCBpc0FzeW5jT2JqZWN0KG9iaik7XG59O1xuXG4vKipcbiAqIEtp4buDbSB0cmEgxJHhu5FpIHTGsOG7o25nIGPDsyBwaOG6o2kgbMOgIGRheWpzIG9iamVjdCBraMO0bmdcbiAqL1xuZXhwb3J0IGNvbnN0IGlzRGF5anNPYmplY3QgPSAob2JqOiBhbnkpOiBvYmogaXMgRGF5anMgPT4ge1xuICByZXR1cm4gZGF5anMuaXNEYXlqcyhvYmopO1xufTtcblxuLyoqXG4gKiBLaeG7g20gdHJhIMSR4buRaSB0xrDhu6NuZyBjw7MgcGjhuqNpIGzDoCBvYmplY3QgY+G6p24gYuG7jyBxdWEgdHJvbmcgcXXDoSB0csOsbmggY29udmVydCBraMO0bmdcbiAqL1xuZXhwb3J0IGNvbnN0IGlzU2tpcHBhYmxlT2JqZWN0ID0gKG9iajogYW55KTogYm9vbGVhbiA9PiB7XG4gIHJldHVybiBpc0Rhbmdlcm91c09iamVjdChvYmopIHx8IGlzU3BlY2lhbE9iamVjdChvYmopO1xufTtcblxuLyoqXG4gKiBLaeG7g20gdHJhIMSR4buRaSB0xrDhu6NuZyBjw7MgcGjhuqNpIGzDoCBNYXAgb2JqZWN0IGtow7RuZ1xuICovXG5leHBvcnQgY29uc3QgaXNNYXBPYmplY3QgPSA8VCA9IGFueT4ob2JqOiBhbnkpOiBvYmogaXMgTWFwPHN0cmluZywgVD4gPT4ge1xuICByZXR1cm4gb2JqIGluc3RhbmNlb2YgTWFwO1xufTtcblxuLyoqXG4gKiBLaeG7g20gdHJhIMSR4buRaSB0xrDhu6NuZyBjw7MgcGjhuqNpIGzDoCBTZXQgb2JqZWN0IGtow7RuZ1xuICovXG5leHBvcnQgY29uc3QgaXNTZXRPYmplY3QgPSA8VCA9IGFueT4ob2JqOiBhbnkpOiBvYmogaXMgU2V0PFQ+ID0+IHtcbiAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIFNldDtcbn07XG5cbi8qKlxuICogS2nhu4NtIHRyYSDEkeG7kWkgdMaw4bujbmcgY8OzIHBo4bqjaSBsw6AgQXJyYXkgb2JqZWN0IGtow7RuZ1xuICovXG5leHBvcnQgY29uc3QgaXNBcnJheU9iamVjdCA9IDxUID0gYW55PihvYmo6IGFueSk6IG9iaiBpcyBBcnJheTxUPiA9PiB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KG9iaik7XG59O1xuXG4vKipcbiAqIEtp4buDbSB0cmEgxJHhu5FpIHTGsOG7o25nIGPDsyBwaOG6o2kgbMOgIG9iamVjdCBj4bqnbiB0cuG6oyB24buBIG5ndXnDqm4gdHLhuqFuZyBraMO0bmdcbiAqIEJhbyBn4buTbTogZGFuZ2Vyb3VzIG9iamVjdHMsIHNwZWNpYWwgb2JqZWN0cywgZGF5anMgb2JqZWN0c1xuICovXG5leHBvcnQgY29uc3QgaXNSZXR1cm5Bc0lzT2JqZWN0ID0gKG9iajogYW55KTogYm9vbGVhbiA9PiB7XG4gIHJldHVybiBpc1NraXBwYWJsZU9iamVjdChvYmopIHx8IGlzRGF5anNPYmplY3Qob2JqKTtcbn07XG5cbi8qKlxuICogS2nhu4NtIHRyYSB4ZW0gxJHhu5FpIHTGsOG7o25nIGPDsyBhbiB0b8OgbiDEkeG7gyBjbG9uZS9jb252ZXJ0IGtow7RuZ1xuICovXG5leHBvcnQgY29uc3QgaXNTYWZlVG9Qcm9jZXNzID0gKG9iajogYW55KTogYm9vbGVhbiA9PiB7XG4gIHJldHVybiAhaXNEYW5nZXJvdXNPYmplY3Qob2JqKTtcbn07XG4iXX0=
package/esm2022/date.mjs CHANGED
@@ -1,19 +1,19 @@
1
1
  import { isSignal } from '@angular/core';
2
2
  import dayjs from 'dayjs';
3
- import "dayjs/locale/en";
4
- import "dayjs/locale/vi";
3
+ import 'dayjs/locale/en';
4
+ import 'dayjs/locale/vi';
5
5
  import customParseFormat from 'dayjs/plugin/customParseFormat';
6
- import localeData from "dayjs/plugin/localeData";
7
- import timezone from "dayjs/plugin/timezone";
6
+ import localeData from 'dayjs/plugin/localeData';
7
+ import timezone from 'dayjs/plugin/timezone';
8
8
  import updateLocale from 'dayjs/plugin/updateLocale';
9
- import utc from "dayjs/plugin/utc";
9
+ import utc from 'dayjs/plugin/utc';
10
10
  import { UtilsCache } from './cache';
11
11
  dayjs.extend(localeData);
12
12
  dayjs.extend(updateLocale);
13
13
  dayjs.extend(utc);
14
14
  dayjs.extend(timezone);
15
15
  dayjs.extend(customParseFormat);
16
- let timeZoneSetup = "Asia/Ho_Chi_Minh";
16
+ let timeZoneSetup = 'Asia/Ho_Chi_Minh';
17
17
  export const setDefaultTimeZone = (localeZone = timeZoneSetup) => {
18
18
  timeZoneSetup = localeZone;
19
19
  dayjs.tz.setDefault(localeZone);
@@ -23,13 +23,13 @@ export const updateFunctionFormatDate = (functionCustom) => {
23
23
  functionFormatDate = functionCustom;
24
24
  };
25
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
- */
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
33
  export const getDayjs = (config) => {
34
34
  if (!config) {
35
35
  return dayjs().tz();
@@ -122,7 +122,7 @@ export const formatDate = (date, formatOutput = 'YYYY/MM/DD HH:mm', lang, format
122
122
  date = getDayjs({ date, formatOfDate: formatInput }).locale(lang);
123
123
  if (lang === 'vi') {
124
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('_')
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
126
  });
127
127
  }
128
128
  return date.format(getFormatData(getTypeByFormat(formatOutput), lang)) || '';
@@ -186,4 +186,4 @@ const getFormatData = (type, lang) => {
186
186
  return 'HH:mm A';
187
187
  }
188
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
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMtdWkvdXRpbHMvc3JjL2RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sVUFBVSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pELE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sWUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDckMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN6QixLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQzNCLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN2QixLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDaEMsSUFBSSxhQUFhLEdBQUcsa0JBQWtCLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxVQUFVLEdBQUcsYUFBYSxFQUFFLEVBQUU7SUFDL0QsYUFBYSxHQUFHLFVBQVUsQ0FBQztJQUMzQixLQUFLLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNsQyxDQUFDLENBQUM7QUFHRixJQUFJLGtCQUFrQixHQUEwQyxTQUFTLENBQUM7QUFFMUUsTUFBTSxDQUFDLE1BQU0sd0JB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QUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDbEIsT0FBTyxhQUFhLENBQUM7WUFDdkIsQ0FBQztZQUVELE9BQU8sYUFBYSxDQUFDO1FBRXZCLEtBQUssUUFBUTtZQUNYLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNsQixPQUFPLG1CQUFtQixDQUFDO1lBQzdCLENBQUM7WUFFRCxPQUFPLG1CQUFtQixDQUFDO1FBRTdCLEtBQUssSUFBSTtZQUNQLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNsQixPQUFPLFdBQVcsQ0FBQztZQUNyQixDQUFDO1lBRUQsT0FBTyxXQUFXLENBQUM7UUFFckIsS0FBSyxTQUFTO1lBQ1osSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sc0JBQXNCLENBQUM7WUFDaEMsQ0FBQztZQUVELE9BQU8sc0JBQXNCLENBQUM7UUFFaEMsS0FBSyxPQUFPLENBQUM7UUFDYixLQUFLLE9BQU87WUFDVixPQUFPLE9BQU8sQ0FBQztRQUVqQixLQUFLLFNBQVMsQ0FBQztRQUNmLEtBQUssU0FBUztZQUNaLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVFlQRV9PQkpFQ1QgfSBmcm9tICdAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzJztcbmltcG9ydCBkYXlqcywgeyBEYXlqcyB9IGZyb20gJ2RheWpzJztcbmltcG9ydCAnZGF5anMvbG9jYWxlL2VuJztcbmltcG9ydCAnZGF5anMvbG9jYWxlL3ZpJztcbmltcG9ydCBjdXN0b21QYXJzZUZvcm1hdCBmcm9tICdkYXlqcy9wbHVnaW4vY3VzdG9tUGFyc2VGb3JtYXQnO1xuaW1wb3J0IGxvY2FsZURhdGEgZnJvbSAnZGF5anMvcGx1Z2luL2xvY2FsZURhdGEnO1xuaW1wb3J0IHRpbWV6b25lIGZyb20gJ2RheWpzL3BsdWdpbi90aW1lem9uZSc7XG5pbXBvcnQgdXBkYXRlTG9jYWxlIGZyb20gJ2RheWpzL3BsdWdpbi91cGRhdGVMb2NhbGUnO1xuaW1wb3J0IHV0YyBmcm9tICdkYXlqcy9wbHVnaW4vdXRjJztcbmltcG9ydCB7IFV0aWxzQ2FjaGUgfSBmcm9tICcuL2NhY2hlJztcbmRheWpzLmV4dGVuZChsb2NhbGVEYXRhKTtcbmRheWpzLmV4dGVuZCh1cGRhdGVMb2NhbGUpO1xuZGF5anMuZXh0ZW5kKHV0Yyk7XG5kYXlqcy5leHRlbmQodGltZXpvbmUpO1xuZGF5anMuZXh0ZW5kKGN1c3RvbVBhcnNlRm9ybWF0KTtcbmxldCB0aW1lWm9uZVNldHVwID0gJ0FzaWEvSG9fQ2hpX01pbmgnO1xuXG5leHBvcnQgY29uc3Qgc2V0RGVmYXVsdFRpbWVab25lID0gKGxvY2FsZVpvbmUgPSB0aW1lWm9uZVNldHVwKSA9PiB7XG4gIHRpbWVab25lU2V0dXAgPSBsb2NhbGVab25lO1xuICBkYXlqcy50ei5zZXREZWZhdWx0KGxvY2FsZVpvbmUpO1xufTtcblxuZXhwb3J0IHR5cGUgVFlQRV9GVU5DVElPTl9GT1JNQVRfREFURSA9ICh0aW1lOiBkYXlqcy5Db25maWdUeXBlLCBmb3JtYXRPdXRwdXQ6IHN0cmluZywgbGFuZz86IHN0cmluZykgPT4gc3RyaW5nO1xubGV0IGZ1bmN0aW9uRm9ybWF0RGF0ZTogVFlQRV9GVU5DVElPTl9GT1JNQVRfREFURSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZUZ1bmN0aW9uRm9ybWF0RGF0ZSA9IChmdW5jdGlvbkN1c3RvbTogVFlQRV9GVU5DVElPTl9GT1JNQVRfREFURSkgPT4ge1xuICBmdW5jdGlvbkZvcm1hdERhdGUgPSBmdW5jdGlvbkN1c3RvbTtcbn07XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBM4bqleSDEkeG7kWkgdMaw4bujbmcgZGF5anMgdGhlbyBjb25maWdcbiAqIEBwYXJhbSBjb25maWcgbuG6v3Uga2jDtG5nIGPDsyBjb25maWcgc+G6vSB0cuG6oyB24buBIMSR4buRaSB0xrDhu6NuZyBkYXlqcyBsw6AgdGjhu51pIGdpYW4gaGnhu4duIHThuqFpXG4gKiBAcGFyYW0gY29uZmlnLmRhdGUgdGjhu51pIGdpYW4gY+G6p24gbOG6pXlcbiAqIEBwYXJhbSBjb25maWcucmV0dXJuRGF5anNJZkNvbmZpZ0RhdGVOb3RFeGlzdCB0cnVlIG7hur91IG114buRbiB0cuG6oyB24buBIMSR4buRaSB0xrDhu6NuZyBkYXlqcyBu4bq/dSBjb25maWcuZGF0ZSBraMO0bmcgY8OzXG4gKiBAcGFyYW0gY29uZmlnLnV0YyB0cnVlIG7hur91IG114buRbiBs4bqleSB0aOG7nWkgZ2lhbiBVVENcbiAqIEBwYXJhbSBjb25maWcuZm9ybWF0T2ZEYXRlIMSR4buLbmggZOG6oW5nIHRo4budaSBnaWFuIMSRYW5nIMSRxrDhu6NjIHRydXnhu4FuIHbDoG9cbiAqL1xuZXhwb3J0IGNvbnN0IGdldERheWpzID0gPFQgPSBkYXlqcy5EYXlqcyB8IHVuZGVmaW5lZD4oY29uZmlnPzogeyBkYXRlPzogZGF5anMuQ29uZmlnVHlwZTsgdXRjPzogYm9vbGVhbjsgZm9ybWF0T2ZEYXRlPzogc3RyaW5nOyByZXR1cm5EYXlqc0lmQ29uZmlnRGF0ZU5vdEV4aXN0PzogYm9vbGVhbjsgbG9jYWxlWm9uZT86IHN0cmluZyB9KTogVCA9PiB7XG4gIGlmICghY29uZmlnKSB7XG4gICAgcmV0dXJuIGRheWpzKCkudHooKSBhcyBUO1xuICB9XG4gIGNvbmZpZy5kYXRlID0gIWNvbmZpZy5kYXRlICYmIGNvbmZpZy5yZXR1cm5EYXlqc0lmQ29uZmlnRGF0ZU5vdEV4aXN0ID8gZGF5anMoKS50eigpIDogY29uZmlnLmRhdGU7XG4gIGlmICh0eXBlb2YgY29uZmlnLmRhdGUgPT09ICdudW1iZXInKSB7XG4gICAgY29uZmlnLmRhdGUgPSBkYXlqcy51bml4KGNvbmZpZy5kYXRlKTtcbiAgfVxuICBpZiAoIWNvbmZpZy5kYXRlKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZCBhcyBUO1xuICB9XG4gIGxldCB7IGRhdGUsIHV0YywgZm9ybWF0T2ZEYXRlIH0gPSBjb25maWcgYXMgVFlQRV9PQkpFQ1Q7XG5cbiAgd2hpbGUgKGlzU2lnbmFsKGRhdGUpKSB7XG4gICAgZGF0ZSA9IGRhdGUoKTtcbiAgfVxuICB3aGlsZSAoaXNTaWduYWwodXRjKSkge1xuICAgIHV0YyA9IHV0YygpO1xuICB9XG4gIHdoaWxlIChpc1NpZ25hbChmb3JtYXRPZkRhdGUpKSB7XG4gICAgZm9ybWF0T2ZEYXRlID0gZm9ybWF0T2ZEYXRlKCk7XG4gIH1cblxuICBpZiAodXRjKSB7XG4gICAgaWYgKGZvcm1hdE9mRGF0ZSkge1xuICAgICAgcmV0dXJuIGRheWpzKGRhdGUsIGZvcm1hdE9mRGF0ZSkudXRjKCkgYXMgVDtcbiAgICB9XG4gICAgY29uc3QgZGF0ZUlucHV0SXNVVEMgPSAoZGF5anMuaXNEYXlqcyhkYXRlKSAmJiBkYXRlLmlzVVRDKCkpIHx8ICh0eXBlb2YgZGF0ZSA9PT0gJ3N0cmluZycgJiYgKGRhdGUgYXMgc3RyaW5nKS5pbmNsdWRlcygnWicpKTtcblxuICAgIGlmIChkYXRlSW5wdXRJc1VUQykge1xuICAgICAgcmV0dXJuIGRheWpzKGRhdGUpIGFzIFQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRheWpzKGRhdGUpLnV0YygpIGFzIFQ7XG4gIH1cblxuICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnICYmICEoZGF0ZSBhcyBzdHJpbmcpLmluY2x1ZGVzKCdaJykgJiYgIShkYXRlIGFzIHN0cmluZykuaW5jbHVkZXMoJysnKSkge1xuICAgIHJldHVybiAoZm9ybWF0T2ZEYXRlID8gZGF5anMudHooZGF0ZSwgZm9ybWF0T2ZEYXRlLCBjb25maWcubG9jYWxlWm9uZSB8fCB0aW1lWm9uZVNldHVwKSA6IGRheWpzLnR6KGRhdGUsIGNvbmZpZy5sb2NhbGVab25lIHx8IHRpbWVab25lU2V0dXApKSBhcyBUO1xuICB9XG5cbiAgcmV0dXJuIChmb3JtYXRPZkRhdGUgPyBkYXlqcyhkYXRlLCBmb3JtYXRPZkRhdGUpIDogZGF5anMoZGF0ZSkpLnR6KCkgYXMgVDtcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEtp4buDbSB0cmEgeGVtIGhhaSBuZ8OgeSBjw7Mga2jDoWMgbmhhdSBraMO0bmcgKGtow6FjIG5nw6B5IHRyb25nIHR14bqnbilcbiAqIEBwYXJhbSBkYXRlMSBuZ8OgeSB0aOG7qSBuaOG6pXQgY+G6p24gc28gc8OhbmhcbiAqIEBwYXJhbSBkYXRlMiBuZ8OgeSB0aOG7qSBoYWkgY+G6p24gc28gc8OhbmhcbiAqIEByZXR1cm5zIHRydWUgbuG6v3UgaGFpIG5nw6B5IGtow6FjIG5oYXUsIGZhbHNlIG7hur91IGdp4buRbmcgbmhhdSBob+G6t2Mga2jDtG5nIHRo4buDIHNvIHPDoW5oXG4gKi9cbmV4cG9ydCBjb25zdCBpc0RpZmZlcmVuY2VEYXkgPSAoZGF0ZTE6IGRheWpzLkNvbmZpZ1R5cGUsIGRhdGUyOiBkYXlqcy5Db25maWdUeXBlKSA9PiB7XG4gIGlmIChpc0RpZmZlcmVuY2VNb250aChkYXRlMSwgZGF0ZTIpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgY29uc3QgZGF5MSA9IGdldERheWpzPERheWpzPih7IGRhdGU6IGRhdGUxIH0pPy5kYXkoKTtcbiAgY29uc3QgZGF5MiA9IGdldERheWpzPERheWpzPih7IGRhdGU6IGRhdGUyIH0pPy5kYXkoKTtcblxuICByZXR1cm4gZGF5MSAhPT0gZGF5Mjtcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEtp4buDbSB0cmEgeGVtIGhhaSBuZ8OgeSBjw7Mga2jDoWMgdGjDoW5nIGtow7RuZ1xuICogQHBhcmFtIGRhdGUxIG5nw6B5IHRo4bupIG5o4bqldCBj4bqnbiBzbyBzw6FuaFxuICogQHBhcmFtIGRhdGUyIG5nw6B5IHRo4bupIGhhaSBj4bqnbiBzbyBzw6FuaFxuICogQHJldHVybnMgdHJ1ZSBu4bq/dSBoYWkgbmfDoHkga2jDoWMgdGjDoW5nLCBmYWxzZSBu4bq/dSBjw7luZyB0aMOhbmcgaG/hurdjIGtow7RuZyB0aOG7gyBzbyBzw6FuaFxuICovXG5leHBvcnQgY29uc3QgaXNEaWZmZXJlbmNlTW9udGggPSAoZGF0ZTE6IGRheWpzLkNvbmZpZ1R5cGUsIGRhdGUyOiBkYXlqcy5Db25maWdUeXBlKSA9PiB7XG4gIGlmIChpc0RpZmZlcmVuY2VZZWFyKGRhdGUxLCBkYXRlMikpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBjb25zdCBtb250aDEgPSBnZXREYXlqczxEYXlqcz4oeyBkYXRlOiBkYXRlMSB9KT8ubW9udGgoKTtcbiAgY29uc3QgbW9udGgyID0gZ2V0RGF5anM8RGF5anM+KHsgZGF0ZTogZGF0ZTIgfSk/Lm1vbnRoKCk7XG5cbiAgcmV0dXJuIG1vbnRoMSAhPT0gbW9udGgyO1xufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gS2nhu4NtIHRyYSB4ZW0gaGFpIG5nw6B5IGPDsyBraMOhYyBuxINtIGtow7RuZ1xuICogQHBhcmFtIGRhdGUxIG5nw6B5IHRo4bupIG5o4bqldCBj4bqnbiBzbyBzw6FuaFxuICogQHBhcmFtIGRhdGUyIG5nw6B5IHRo4bupIGhhaSBj4bqnbiBzbyBzw6FuaFxuICogQHJldHVybnMgdHJ1ZSBu4bq/dSBoYWkgbmfDoHkga2jDoWMgbsSDbSwgZmFsc2UgbuG6v3UgY8O5bmcgbsSDbSBob+G6t2Mga2jDtG5nIHRo4buDIHNvIHPDoW5oXG4gKi9cbmV4cG9ydCBjb25zdCBpc0RpZmZlcmVuY2VZZWFyID0gKGRhdGUxOiBkYXlqcy5Db25maWdUeXBlLCBkYXRlMjogZGF5anMuQ29uZmlnVHlwZSkgPT4ge1xuICBjb25zdCB5ZWFyMSA9IGdldERheWpzPERheWpzPih7IGRhdGU6IGRhdGUxIH0pPy55ZWFyKCk7XG4gIGNvbnN0IHllYXIyID0gZ2V0RGF5anM8RGF5anM+KHsgZGF0ZTogZGF0ZTIgfSk/LnllYXIoKTtcblxuICByZXR1cm4geWVhcjEgIT09IHllYXIyO1xufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gTOG6pXkgcmEgY2h14buXaSB0aOG7nWkgZ2lhbiBoaeG7g24gdGjhu4sgdGhlbyDEkeG7i25oIGThuqFuZyB2w6AgbmfDtG4gbmfhu69cbiAqIEBwYXJhbSBkYXRlIHRo4budaSBnaWFuIGPhuqduIMSR4buLbmggZOG6oW5nXG4gKiBAcGFyYW0gZm9ybWF0IMSR4buLbmggZOG6oW5nIHRo4budaSBnaWFuIG114buRbiBs4bqleSByYVxuICogQHBhcmFtIGxhbmcgbOG6pXkgdGhlbyBuZ8O0biBuZ+G7r1xuICovXG5leHBvcnQgY29uc3QgZm9ybWF0RGF0ZSA9IChkYXRlOiBkYXlqcy5Db25maWdUeXBlLCBmb3JtYXRPdXRwdXQgPSAnWVlZWS9NTS9ERCBISDptbScsIGxhbmc/OiBzdHJpbmcsIGZvcm1hdElucHV0Pzogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKCFkYXRlKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIGxhbmcgPSBsYW5nIHx8IChVdGlsc0NhY2hlLmdldExhbmcoKSBhcyBzdHJpbmcpO1xuICBpZiAoZnVuY3Rpb25Gb3JtYXREYXRlKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uRm9ybWF0RGF0ZShkYXRlLCBmb3JtYXRPdXRwdXQsIGxhbmcpO1xuICB9XG5cbiAgZGF0ZSA9IGdldERheWpzPERheWpzPih7IGRhdGUsIGZvcm1hdE9mRGF0ZTogZm9ybWF0SW5wdXQgfSkubG9jYWxlKGxhbmcpO1xuICBpZiAobGFuZyA9PT0gJ3ZpJykge1xuICAgIGRheWpzLnVwZGF0ZUxvY2FsZSgndmknLCB7XG4gICAgICBtb250aHNTaG9ydDogJ1RoZyAxX1RoZyAyX1RoZyAzX1RoZyA0X1RoZyA1X1RoZyA2X1RoZyA3X1RoZyA4X1RoZyA5X1RoZyAxMF9UaGcgMTFfVGhnIDEyJy5zcGxpdCgnXycpLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGRhdGUuZm9ybWF0KGdldEZvcm1hdERhdGEoZ2V0VHlwZUJ5Rm9ybWF0KGZvcm1hdE91dHB1dCksIGxhbmcpKSB8fCAnJztcbn07XG5cbmNvbnN0IGdldFR5cGVCeUZvcm1hdCA9IChmb3JtYXQ6IHN0cmluZyk6ICdkbScgfCAnZG15JyB8ICdkbXkgaG0nIHwgJ215JyB8ICdkbXkgaG1zJyB8ICdoaDptbScgfCAnSEg6bW0nIHwgJ2hoOm1tIEEnIHwgJ0hIOm1tIEEnID0+IHtcbiAgaWYgKGZvcm1hdCA9PT0gJ2RtJyB8fCBmb3JtYXQgPT09ICdkbXknIHx8IGZvcm1hdCA9PT0gJ2RteSBobScgfHwgZm9ybWF0ID09PSAnbXknKSB7XG4gICAgcmV0dXJuIGZvcm1hdDtcbiAgfVxuXG4gIGlmIChmb3JtYXQgPT09ICdERC9NTS9ZWVlZJyB8fCBmb3JtYXQgPT09ICdZWVlZLU1NLUREJyB8fCBmb3JtYXQgPT09ICdkZC9NTS95eXl5JyB8fCBmb3JtYXQgPT09ICdkZC1NTS15eXl5JyB8fCBmb3JtYXQgPT09ICdkZC9tbS95eXl5Jykge1xuICAgIHJldHVybiAnZG15JztcbiAgfVxuXG4gIGlmIChmb3JtYXQgPT09ICdNTS1ERCcgfHwgZm9ybWF0ID09PSAnZGQvTU0nIHx8IGZvcm1hdCA9PT0gJ2RkL21tJykge1xuICAgIHJldHVybiAnZG0nO1xuICB9XG5cbiAgaWYgKGZvcm1hdCA9PT0gJ00vWVlZWScgfHwgZm9ybWF0ID09PSAnWVlZWS1NTScgfHwgZm9ybWF0ID09PSAnTU0veXl5eScpIHtcbiAgICByZXR1cm4gJ215JztcbiAgfVxuXG4gIGlmIChmb3JtYXQgPT09ICdZWVlZL01NL0REIGhoOm1tOnNzJyB8fCBmb3JtYXQgPT09ICdkbXkgaG1zJyB8fCBmb3JtYXQgPT09ICdkZC9tbS95eXl5IGhoOm1tOnNzJykge1xuICAgIHJldHVybiAnZG15IGhtcyc7XG4gIH1cblxuICBpZiAoZm9ybWF0ID09PSAnaGg6bW0nIHx8IGZvcm1hdCA9PT0gJ0hIOm1tJykge1xuICAgIHJldHVybiAnaGg6bW0nO1xuICB9XG5cbiAgaWYgKGZvcm1hdCA9PT0gJ2hoOm1tIEEnIHx8IGZvcm1hdCA9PT0gJ0hIOm1tIEEnKSB7XG4gICAgcmV0dXJuICdoaDptbSBBJztcbiAgfVxuXG4gIHJldHVybiAnZG15IGhtJztcbn07XG5cbmNvbnN0IGdldEZvcm1hdERhdGEgPSAodHlwZTogJ2RtJyB8ICdkbXknIHwgJ2RteSBobScgfCAnbXknIHwgJ2RteSBobXMnIHwgJ2hoOm1tJyB8ICdoaDptbSBBJyB8ICdISDptbScgfCAnSEg6bW0gQScsIGxhbmc6IHN0cmluZykgPT4ge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdkbSc6XG4gICAgICBpZiAobGFuZyA9PT0gJ3ZpJykge1xuICAgICAgICByZXR1cm4gJ0QgTU1NJztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdNTU0gRCc7XG5cbiAgICBjYXNlICdkbXknOlxuICAgICAgaWYgKGxhbmcgPT09ICd2aScpIHtcbiAgICAgICAgcmV0dXJuICdEIE1NTSwgWVlZWSc7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnTU1NIEQsIFlZWVknO1xuXG4gICAgY2FzZSAnZG15IGhtJzpcbiAgICAgIGlmIChsYW5nID09PSAndmknKSB7XG4gICAgICAgIHJldHVybiAnRCBNTU0sIFlZWVkgSEg6bW0nO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ01NTSBELCBZWVlZIEhIOm1tJztcblxuICAgIGNhc2UgJ215JzpcbiAgICAgIGlmIChsYW5nID09PSAndmknKSB7XG4gICAgICAgIHJldHVybiAnTU1NLCBZWVlZJztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdNTU0gWVlZWSAnO1xuXG4gICAgY2FzZSAnZG15IGhtcyc6XG4gICAgICBpZiAobGFuZyA9PT0gJ3ZpJykge1xuICAgICAgICByZXR1cm4gJ0QgTU1NLCBZWVlZIEhIOm1tOnNzJztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdNTU0gRCwgWVlZWSBISDptbTpzcyc7XG5cbiAgICBjYXNlICdoaDptbSc6XG4gICAgY2FzZSAnSEg6bW0nOlxuICAgICAgcmV0dXJuICdISDptbSc7XG5cbiAgICBjYXNlICdoaDptbSBBJzpcbiAgICBjYXNlICdISDptbSBBJzpcbiAgICAgIHJldHVybiAnSEg6bW0gQSc7XG4gIH1cbn07XG4iXX0=