@acorex/core 6.5.23 → 6.5.27

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 (143) hide show
  1. package/karma.conf.js +32 -0
  2. package/ng-package.json +10 -0
  3. package/package.json +12 -32
  4. package/src/lib/classes/base-page.class.ts +29 -0
  5. package/src/lib/classes/color.class.ts +61 -0
  6. package/src/lib/classes/datetime.class.ts +373 -0
  7. package/src/lib/classes/menu.class.ts +37 -0
  8. package/{lib/classes/navigator.class.d.ts → src/lib/classes/navigator.class.ts} +1 -1
  9. package/{lib/classes/popup.class.d.ts → src/lib/classes/popup.class.ts} +2 -0
  10. package/src/lib/classes/promise.class.ts +25 -0
  11. package/src/lib/classes/select.class.ts +7 -0
  12. package/src/lib/core.module.ts +21 -0
  13. package/src/lib/error/error.module.ts +13 -0
  14. package/src/lib/error/error.service.ts +23 -0
  15. package/src/lib/error/index.ts +3 -0
  16. package/{lib/events/keyboard.d.ts → src/lib/events/keyboard.ts} +3 -0
  17. package/{lib/http/http-error.class.d.ts → src/lib/http/http-error.class.ts} +2 -2
  18. package/{lib/http/http-events.interceptor.d.ts → src/lib/http/http-events.interceptor.ts} +7 -3
  19. package/{lib/http/http-request.class.d.ts → src/lib/http/http-request.class.ts} +5 -5
  20. package/src/lib/http/http-result.class.ts +34 -0
  21. package/src/lib/http/http.module.ts +25 -0
  22. package/src/lib/http/http.service.ts +159 -0
  23. package/{esm2020 → src}/lib/locale/en.json +6 -6
  24. package/{esm2020 → src}/lib/locale/fa.json +7 -7
  25. package/src/lib/pipe/datetime.pipe.ts +20 -0
  26. package/src/lib/pipe/htmlToText.pipe.ts +18 -0
  27. package/src/lib/platform/index.ts +1 -0
  28. package/src/lib/platform/platform.service.ts +223 -0
  29. package/src/lib/services/config.ts +36 -0
  30. package/src/lib/services/event.service.ts +31 -0
  31. package/src/lib/services/navigator.service.ts +8 -0
  32. package/src/lib/services/storage.service.ts +11 -0
  33. package/src/lib/translator/translator.module.ts +19 -0
  34. package/src/lib/translator/translator.pipe.ts +22 -0
  35. package/src/lib/translator/translator.service.ts +19 -0
  36. package/src/lib/translator/translator.ts +31 -0
  37. package/src/lib/utils/array/array-util.ts +140 -0
  38. package/src/lib/utils/html/html-util.ts +264 -0
  39. package/src/lib/utils/html/html.module.ts +11 -0
  40. package/src/lib/utils/math/math-util.ts +5 -0
  41. package/src/lib/utils/object/object-util.ts +87 -0
  42. package/src/lib/utils/render/on-demand-preload-strategy.service.ts +25 -0
  43. package/src/lib/utils/render/render.service.ts +110 -0
  44. package/src/lib/utils/render/rendering.module.ts +25 -0
  45. package/src/lib/utils/scroll/scroll.directive.ts +35 -0
  46. package/src/lib/utils/scroll/scroll.module.ts +11 -0
  47. package/src/lib/utils/separator/separator.module.ts +11 -0
  48. package/src/lib/utils/separator/separator.pipe.ts +27 -0
  49. package/{public-api.d.ts → src/public-api.ts} +10 -0
  50. package/src/test.ts +28 -0
  51. package/tsconfig.lib.json +25 -0
  52. package/tsconfig.lib.prod.json +6 -0
  53. package/tsconfig.spec.json +18 -0
  54. package/tslint.json +17 -0
  55. package/acorex-core.d.ts +0 -5
  56. package/esm2020/acorex-core.mjs +0 -5
  57. package/esm2020/lib/classes/base-page.class.mjs +0 -28
  58. package/esm2020/lib/classes/color.class.mjs +0 -49
  59. package/esm2020/lib/classes/datetime.class.mjs +0 -314
  60. package/esm2020/lib/classes/menu.class.mjs +0 -27
  61. package/esm2020/lib/classes/navigator.class.mjs +0 -2
  62. package/esm2020/lib/classes/popup.class.mjs +0 -2
  63. package/esm2020/lib/classes/promise.class.mjs +0 -19
  64. package/esm2020/lib/classes/sectionlist.class.mjs +0 -2
  65. package/esm2020/lib/classes/select.class.mjs +0 -3
  66. package/esm2020/lib/core.module.mjs +0 -27
  67. package/esm2020/lib/error/error.class.mjs +0 -2
  68. package/esm2020/lib/error/error.module.mjs +0 -19
  69. package/esm2020/lib/error/error.service.mjs +0 -21
  70. package/esm2020/lib/events/keyboard.mjs +0 -2
  71. package/esm2020/lib/http/http-error.class.mjs +0 -2
  72. package/esm2020/lib/http/http-events.interceptor.mjs +0 -3
  73. package/esm2020/lib/http/http-request.class.mjs +0 -2
  74. package/esm2020/lib/http/http-result.class.mjs +0 -21
  75. package/esm2020/lib/http/http.module.mjs +0 -37
  76. package/esm2020/lib/http/http.service.mjs +0 -145
  77. package/esm2020/lib/pipe/datetime.pipe.mjs +0 -25
  78. package/esm2020/lib/pipe/htmlToText.pipe.mjs +0 -25
  79. package/esm2020/lib/platform/index.mjs +0 -2
  80. package/esm2020/lib/platform/platform.service.mjs +0 -150
  81. package/esm2020/lib/services/config.mjs +0 -29
  82. package/esm2020/lib/services/event.service.mjs +0 -36
  83. package/esm2020/lib/services/navigator.service.mjs +0 -10
  84. package/esm2020/lib/services/storage.service.mjs +0 -16
  85. package/esm2020/lib/translator/translator.mjs +0 -26
  86. package/esm2020/lib/translator/translator.module.mjs +0 -25
  87. package/esm2020/lib/translator/translator.pipe.mjs +0 -24
  88. package/esm2020/lib/translator/translator.service.mjs +0 -21
  89. package/esm2020/lib/utils/array/array-util.mjs +0 -133
  90. package/esm2020/lib/utils/html/html-util.mjs +0 -192
  91. package/esm2020/lib/utils/html/html.module.mjs +0 -19
  92. package/esm2020/lib/utils/math/math-util.mjs +0 -6
  93. package/esm2020/lib/utils/object/object-util.mjs +0 -83
  94. package/esm2020/lib/utils/render/on-demand-preload-strategy.service.mjs +0 -20
  95. package/esm2020/lib/utils/render/render.service.mjs +0 -103
  96. package/esm2020/lib/utils/render/rendering.module.mjs +0 -35
  97. package/esm2020/lib/utils/scroll/scroll.directive.mjs +0 -54
  98. package/esm2020/lib/utils/scroll/scroll.module.mjs +0 -19
  99. package/esm2020/lib/utils/separator/separator.module.mjs +0 -19
  100. package/esm2020/lib/utils/separator/separator.pipe.mjs +0 -33
  101. package/esm2020/public-api.mjs +0 -44
  102. package/fesm2015/acorex-core.mjs +0 -2274
  103. package/fesm2015/acorex-core.mjs.map +0 -1
  104. package/fesm2020/acorex-core.mjs +0 -2270
  105. package/fesm2020/acorex-core.mjs.map +0 -1
  106. package/lib/classes/base-page.class.d.ts +0 -13
  107. package/lib/classes/color.class.d.ts +0 -17
  108. package/lib/classes/datetime.class.d.ts +0 -63
  109. package/lib/classes/menu.class.d.ts +0 -34
  110. package/lib/classes/promise.class.d.ts +0 -7
  111. package/lib/classes/select.class.d.ts +0 -7
  112. package/lib/core.module.d.ts +0 -9
  113. package/lib/error/error.module.d.ts +0 -7
  114. package/lib/error/error.service.d.ts +0 -13
  115. package/lib/http/http-result.class.d.ts +0 -11
  116. package/lib/http/http.module.d.ts +0 -10
  117. package/lib/http/http.service.d.ts +0 -23
  118. package/lib/pipe/datetime.pipe.d.ts +0 -8
  119. package/lib/pipe/htmlToText.pipe.d.ts +0 -7
  120. package/lib/platform/index.d.ts +0 -1
  121. package/lib/platform/platform.service.d.ts +0 -26
  122. package/lib/services/config.d.ts +0 -9
  123. package/lib/services/event.service.d.ts +0 -9
  124. package/lib/services/navigator.service.d.ts +0 -8
  125. package/lib/services/storage.service.d.ts +0 -7
  126. package/lib/translator/translator.d.ts +0 -9
  127. package/lib/translator/translator.module.d.ts +0 -8
  128. package/lib/translator/translator.pipe.d.ts +0 -8
  129. package/lib/translator/translator.service.d.ts +0 -8
  130. package/lib/utils/array/array-util.d.ts +0 -6
  131. package/lib/utils/html/html-util.d.ts +0 -62
  132. package/lib/utils/html/html.module.d.ts +0 -8
  133. package/lib/utils/math/math-util.d.ts +0 -3
  134. package/lib/utils/object/object-util.d.ts +0 -7
  135. package/lib/utils/render/on-demand-preload-strategy.service.d.ts +0 -10
  136. package/lib/utils/render/render.service.d.ts +0 -18
  137. package/lib/utils/render/rendering.module.d.ts +0 -8
  138. package/lib/utils/scroll/scroll.directive.d.ts +0 -18
  139. package/lib/utils/scroll/scroll.module.d.ts +0 -8
  140. package/lib/utils/separator/separator.module.d.ts +0 -8
  141. package/lib/utils/separator/separator.pipe.d.ts +0 -8
  142. /package/{lib/classes/sectionlist.class.d.ts → src/lib/classes/sectionlist.class.ts} +0 -0
  143. /package/{lib/error/error.class.d.ts → src/lib/error/error.class.ts} +0 -0
@@ -1,21 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { AXTranslator } from './translator';
3
- import * as i0 from "@angular/core";
4
- export class AXTranslatorService {
5
- load(lang, value) {
6
- AXTranslator.load(lang, value);
7
- }
8
- use(lang) {
9
- AXTranslator.use(lang);
10
- }
11
- get(key, lang) {
12
- return AXTranslator.get(lang, lang);
13
- }
14
- }
15
- AXTranslatorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTranslatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16
- AXTranslatorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTranslatorService, providedIn: 'platform' });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXTranslatorService, decorators: [{
18
- type: Injectable,
19
- args: [{ providedIn: 'platform' }]
20
- }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvc3JjL2xpYi90cmFuc2xhdG9yL3RyYW5zbGF0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRzVDLE1BQU0sT0FBTyxtQkFBbUI7SUFFckIsSUFBSSxDQUFDLElBQVksRUFBRSxLQUFVO1FBQ2hDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxHQUFHLENBQUMsSUFBWTtRQUNuQixZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTSxHQUFHLENBQUMsR0FBVyxFQUFFLElBQWE7UUFDakMsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDOztpSEFaUSxtQkFBbUI7cUhBQW5CLG1CQUFtQixjQUROLFVBQVU7NEZBQ3ZCLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYVHJhbnNsYXRvciB9IGZyb20gJy4vdHJhbnNsYXRvcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdwbGF0Zm9ybScgfSlcclxuZXhwb3J0IGNsYXNzIEFYVHJhbnNsYXRvclNlcnZpY2Uge1xyXG5cclxuICAgIHB1YmxpYyBsb2FkKGxhbmc6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgICAgIEFYVHJhbnNsYXRvci5sb2FkKGxhbmcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdXNlKGxhbmc6IHN0cmluZykge1xyXG4gICAgICAgIEFYVHJhbnNsYXRvci51c2UobGFuZyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldChrZXk6IHN0cmluZywgbGFuZz86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIEFYVHJhbnNsYXRvci5nZXQobGFuZywgbGFuZyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==
@@ -1,133 +0,0 @@
1
- import { AXFetchProp } from '../object/object-util';
2
- // @dynamic
3
- export class AXArrayUtil {
4
- static pickRandom(array) {
5
- return array[Math.floor(Math.random() * array.length)];
6
- }
7
- static insert(array, index, ...rest) {
8
- array.splice.apply(array, [index, 0].concat(Array.prototype.slice.call(rest, 1)));
9
- return array;
10
- }
11
- static range(min, max) {
12
- return new Array(max - min).fill(1).map((d, i) => i);
13
- }
14
- static filter(array, filters) {
15
- if (filters == null || filters.length === 0) {
16
- return array;
17
- }
18
- const lamda = (item) => {
19
- let result = true;
20
- for (const key in filters) {
21
- if (filters.hasOwnProperty(key)) {
22
- const f = filters[key];
23
- if (f !== 'AND') {
24
- const vals = [];
25
- const mt = f.field.match(/\[\:(.*?)\]/);
26
- if (mt && mt.length > 1) {
27
- const p1 = f.field.replace(mt[0], '');
28
- const p2 = mt[1];
29
- const prop = AXFetchProp(item, p1);
30
- if (prop instanceof Array && prop.length) {
31
- vals.push(...prop.map(m => (AXFetchProp(m, p2))));
32
- }
33
- else {
34
- result = false;
35
- }
36
- }
37
- else {
38
- vals.push(AXFetchProp(item, f.field));
39
- }
40
- for (const j in vals) {
41
- if (vals.hasOwnProperty(j)) {
42
- let v1 = vals[j];
43
- const v2 = f.value;
44
- if (f.dataType === 'string') {
45
- v1 = v1.toString();
46
- switch (f.condition) {
47
- case 'equal':
48
- result = (v1 && v2) && v1.toLowerCase() === v2.toLowerCase();
49
- break;
50
- case 'not-equal':
51
- result = !((v1 && v2) && v1.toLowerCase() === v2.toLowerCase());
52
- break;
53
- case 'contains':
54
- result = ((v1 && v2) && (v1.toLowerCase().includes(v2.toLowerCase())));
55
- break;
56
- case 'not-contains':
57
- result = !((v1 && v2) && (v1.toLowerCase().includes(v2.toLowerCase())));
58
- break;
59
- case 'start-with':
60
- result = ((v1 && v2) && (v1.toLowerCase().startsWith(v2.toLowerCase())));
61
- break;
62
- case 'end-with':
63
- result = ((v1 && v2) && (v1.toLowerCase().endsWith(v2.toLowerCase())));
64
- break;
65
- case 'is-empty':
66
- result = v1 == null || v1 === undefined;
67
- break;
68
- case 'is-not-empty':
69
- result = !(v1 == null || v1 === undefined);
70
- break;
71
- default:
72
- console.error('The condition is not defined');
73
- result = false;
74
- }
75
- }
76
- else if (f.dataType === 'date') {
77
- }
78
- else if (f.dataType === 'number') {
79
- v1 = Number(v1);
80
- switch (f.condition) {
81
- case 'equal':
82
- result = v1 === v2;
83
- break;
84
- case 'not-equal':
85
- result = v1 !== v2;
86
- break;
87
- case 'contains':
88
- result = v2 && v2 instanceof Array && v2.includes(v1);
89
- break;
90
- case 'less-than':
91
- result = v1 < v2;
92
- break;
93
- case 'less-than-equal':
94
- result = v1 <= v2;
95
- break;
96
- case 'greater-than':
97
- result = v1 > v2;
98
- break;
99
- case 'greater-than-equal':
100
- result = v1 >= v2;
101
- break;
102
- case 'is-empty':
103
- result = v1 == null || v1 === undefined;
104
- break;
105
- case 'is-not-empty':
106
- result = !(v1 == null || v1 === undefined);
107
- break;
108
- default:
109
- console.error('The condition is not defined');
110
- result = false;
111
- }
112
- }
113
- else {
114
- console.error('The datatype is not supported');
115
- result = false;
116
- }
117
- if (result) {
118
- break;
119
- }
120
- }
121
- }
122
- }
123
- if (!result) {
124
- return false;
125
- }
126
- }
127
- }
128
- return true;
129
- };
130
- return array.filter(lamda);
131
- }
132
- }
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL3NyYy9saWIvdXRpbHMvYXJyYXkvYXJyYXktdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQsV0FBVztBQUNYLE1BQU0sT0FBTyxXQUFXO0lBR3BCLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBWTtRQUMxQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBR0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFZLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSTtRQUN0QyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQVcsRUFBRSxHQUFXO1FBQ2pDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFZLEVBQUUsT0FBYztRQUN0QyxJQUFJLE9BQU8sSUFBSSxJQUFJLElBQUksT0FBTyxDQUFDLE1BQU0sS0FB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QU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEZldGNoUHJvcCB9IGZyb20gJy4uL29iamVjdC9vYmplY3QtdXRpbCc7XHJcblxyXG4vLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgQVhBcnJheVV0aWwge1xyXG5cclxuXHJcbiAgICBzdGF0aWMgcGlja1JhbmRvbShhcnJheTogYW55W10pOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBhcnJheVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBhcnJheS5sZW5ndGgpXTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc3RhdGljIGluc2VydChhcnJheTogYW55W10sIGluZGV4LCAuLi5yZXN0KSB7XHJcbiAgICAgICAgYXJyYXkuc3BsaWNlLmFwcGx5KGFycmF5LCBbaW5kZXgsIDBdLmNvbmNhdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChyZXN0LCAxKSkpO1xyXG4gICAgICAgIHJldHVybiBhcnJheTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgcmFuZ2UobWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogbnVtYmVyW10ge1xyXG4gICAgICAgIHJldHVybiBuZXcgQXJyYXkobWF4IC0gbWluKS5maWxsKDEpLm1hcCgoZCwgaSkgPT4gaSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGZpbHRlcihhcnJheTogYW55W10sIGZpbHRlcnM6IGFueVtdKTogYW55W10ge1xyXG4gICAgICAgIGlmIChmaWx0ZXJzID09IG51bGwgfHwgZmlsdGVycy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGFycmF5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBsYW1kYSA9IChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCByZXN1bHQgPSB0cnVlO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBmaWx0ZXJzKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVycy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZiA9IGZpbHRlcnNba2V5XTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZiAhPT0gJ0FORCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFscyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtdCA9IGYuZmllbGQubWF0Y2goL1xcW1xcOiguKj8pXFxdLyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtdCAmJiBtdC5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwMSA9IGYuZmllbGQucmVwbGFjZShtdFswXSwgJycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcDIgPSBtdFsxXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb3AgPSBBWEZldGNoUHJvcChpdGVtLCBwMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvcCBpbnN0YW5jZW9mIEFycmF5ICYmIHByb3AubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFscy5wdXNoKC4uLnByb3AubWFwKG0gPT4gKEFYRmV0Y2hQcm9wKG0sIHAyKSkpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxzLnB1c2goQVhGZXRjaFByb3AoaXRlbSwgZi5maWVsZCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgaiBpbiB2YWxzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFscy5oYXNPd25Qcm9wZXJ0eShqKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2MSA9IHZhbHNbal07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdjIgPSBmLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmLmRhdGFUeXBlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MSA9IHYxLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZi5jb25kaXRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2VxdWFsJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAodjEgJiYgdjIpICYmIHYxLnRvTG93ZXJDYXNlKCkgPT09IHYyLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdub3QtZXF1YWwnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9ICEoKHYxICYmIHYyKSAmJiB2MS50b0xvd2VyQ2FzZSgpID09PSB2Mi50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NvbnRhaW5zJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAoKHYxICYmIHYyKSAmJiAodjEudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh2Mi50b0xvd2VyQ2FzZSgpKSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnbm90LWNvbnRhaW5zJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAhKCh2MSAmJiB2MikgJiYgKHYxLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModjIudG9Mb3dlckNhc2UoKSkpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N0YXJ0LXdpdGgnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9ICgodjEgJiYgdjIpICYmICh2MS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgodjIudG9Mb3dlckNhc2UoKSkpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2VuZC13aXRoJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAoKHYxICYmIHYyKSAmJiAodjEudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCh2Mi50b0xvd2VyQ2FzZSgpKSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnaXMtZW1wdHknOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHYxID09IG51bGwgfHwgdjEgPT09IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2lzLW5vdC1lbXB0eSc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gISh2MSA9PSBudWxsIHx8IHYxID09PSB1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdUaGUgY29uZGl0aW9uIGlzIG5vdCBkZWZpbmVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGYuZGF0YVR5cGUgPT09ICdkYXRlJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZi5kYXRhVHlwZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEgPSBOdW1iZXIodjEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGYuY29uZGl0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdlcXVhbCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdjEgPT09IHYyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnbm90LWVxdWFsJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB2MSAhPT0gdjI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdjb250YWlucyc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdjIgJiYgdjIgaW5zdGFuY2VvZiBBcnJheSAmJiB2Mi5pbmNsdWRlcyh2MSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdsZXNzLXRoYW4nOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHYxIDwgdjI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdsZXNzLXRoYW4tZXF1YWwnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHYxIDw9IHYyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnZ3JlYXRlci10aGFuJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB2MSA+IHYyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnZ3JlYXRlci10aGFuLWVxdWFsJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB2MSA+PSB2MjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2lzLWVtcHR5JzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB2MSA9PSBudWxsIHx8IHYxID09PSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdpcy1ub3QtZW1wdHknOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9ICEodjEgPT0gbnVsbCB8fCB2MSA9PT0gdW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignVGhlIGNvbmRpdGlvbiBpcyBub3QgZGVmaW5lZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignVGhlIGRhdGF0eXBlIGlzIG5vdCBzdXBwb3J0ZWQnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gYXJyYXkuZmlsdGVyKGxhbWRhKTtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG4iXX0=
@@ -1,192 +0,0 @@
1
- import { AXMathUtil } from '../math/math-util';
2
- export class AXPoint {
3
- constructor(x, y) {
4
- this.x = x;
5
- this.y = y;
6
- }
7
- }
8
- export class AXClientRec {
9
- constructor(rec) {
10
- this._left = rec.left;
11
- this._top = rec.top;
12
- this._width = rec.width;
13
- this._height = rec.height;
14
- this._right = this._left + this._width;
15
- this._bottom = this._top + this._height;
16
- }
17
- get left() {
18
- return this._left;
19
- }
20
- set left(v) {
21
- this._left = v;
22
- }
23
- get top() {
24
- return this._top;
25
- }
26
- set top(v) {
27
- this._top = v;
28
- }
29
- get right() {
30
- return this._right;
31
- }
32
- set right(v) {
33
- this._right = v;
34
- }
35
- get bottom() {
36
- return this._bottom;
37
- }
38
- set bottom(v) {
39
- this._bottom = v;
40
- }
41
- get width() {
42
- return this._width;
43
- }
44
- set width(v) {
45
- this._width = v;
46
- }
47
- get height() {
48
- return this._height;
49
- }
50
- set height(v) {
51
- this._height = v;
52
- }
53
- intersect(rec) {
54
- return (this.left < rec.left + rec.width &&
55
- this.left + this.width > rec.left &&
56
- this.top < rec.top + rec.height &&
57
- this.top + this.height > rec.top);
58
- }
59
- }
60
- // @dynamic
61
- export class AXHtmlUtil {
62
- static getBoundingRectPoint(el, placement) {
63
- const rec = el.getBoundingClientRect();
64
- const width = el.offsetWidth;
65
- const height = el.offsetHeight;
66
- switch (placement) {
67
- case 'top-start':
68
- return new AXPoint(rec.left, rec.top);
69
- case 'top-middle':
70
- return new AXPoint(rec.left + (width / 2), rec.top);
71
- case 'top-end':
72
- return new AXPoint(rec.left + (width), rec.top);
73
- case 'center-end':
74
- return new AXPoint(rec.left + (width), rec.top + (height / 2));
75
- case 'bottom-end':
76
- return new AXPoint(rec.left + (width), rec.top + (height));
77
- case 'bottom-middle':
78
- return new AXPoint(rec.left + (width / 2), rec.top + (height));
79
- case 'bottom-start':
80
- return new AXPoint(rec.left, rec.top + (height));
81
- case 'center-start':
82
- return new AXPoint(rec.left, rec.top + (height / 2));
83
- default:
84
- return new AXPoint(rec.left + (width / 2), rec.top + (height));
85
- }
86
- }
87
- static isInRecPoint(pos, rec) {
88
- return pos.x >= rec.left && pos.x <= (rec.left + rec.width) && pos.y >= rec.top && (pos.y <= (rec.top + rec.height));
89
- }
90
- // static isOverLap(rec1: AXClientRecCtor, rec2: AXClientRecCtor): boolean {
91
- // const r1: AXClientRec = new AXClientRec(rec1);
92
- // const r2: AXClientRec = new AXClientRec(rec2);
93
- // return ;
94
- // }
95
- static isInElementBound(pos, element) {
96
- const elBound = element.getBoundingClientRect();
97
- return AXHtmlUtil.isInRecPoint(pos, {
98
- left: elBound.left,
99
- width: elBound.width,
100
- top: elBound.top,
101
- height: elBound.height
102
- });
103
- }
104
- static getDimensions() {
105
- let winW = 630;
106
- let winH = 460;
107
- if (document.body && document.body.offsetWidth) {
108
- winW = document.body.offsetWidth;
109
- winH = document.body.offsetHeight;
110
- }
111
- if (document.compatMode === 'CSS1Compat' && document.documentElement && document.documentElement.offsetWidth) {
112
- winW = document.documentElement.offsetWidth;
113
- winH = document.documentElement.offsetHeight;
114
- }
115
- if (window.innerWidth && window.innerHeight) {
116
- winW = window.innerWidth;
117
- winH = window.innerHeight;
118
- }
119
- return { width: winW, height: winH };
120
- }
121
- static getOffsetRight(elem) {
122
- let element = elem;
123
- const width = element.offsetWidth;
124
- let right = 0;
125
- while (element.offsetParent) {
126
- right += element.offsetLeft;
127
- element = element.offsetParent;
128
- }
129
- right += element.offsetLeft;
130
- right = AXHtmlUtil.getDimensions().width - right;
131
- right -= width;
132
- return right;
133
- }
134
- static getUID() {
135
- return 'el-' + AXMathUtil.randomRange(1000000000, 9999999999).toString();
136
- }
137
- static getRelatedPosition(source, placement, target, alignment) {
138
- const result = { x: 0, y: 0 };
139
- const sourcePos = AXHtmlUtil.getBoundingRectPoint(source, placement);
140
- let top = 0;
141
- let left = 0;
142
- switch (alignment) {
143
- case 'top-start':
144
- top = sourcePos.y;
145
- left = sourcePos.x;
146
- break;
147
- case 'top-middle':
148
- top = sourcePos.y;
149
- left = sourcePos.x - target.offsetWidth / 2;
150
- break;
151
- case 'top-end':
152
- top = sourcePos.y;
153
- left = sourcePos.x - target.offsetWidth;
154
- break;
155
- case 'center-end':
156
- top = sourcePos.y - target.offsetHeight / 2;
157
- left = sourcePos.x - target.offsetWidth;
158
- break;
159
- case 'bottom-end':
160
- top = sourcePos.y - target.offsetHeight;
161
- left = sourcePos.x - target.offsetWidth;
162
- break;
163
- case 'bottom-middle':
164
- top = sourcePos.y - target.offsetHeight;
165
- left = sourcePos.x - target.offsetWidth / 2;
166
- break;
167
- case 'bottom-start':
168
- top = sourcePos.y - target.offsetHeight;
169
- left = sourcePos.x;
170
- break;
171
- case 'center-start':
172
- top = sourcePos.y - target.offsetHeight / 2;
173
- left = sourcePos.x;
174
- break;
175
- }
176
- result.y = top;
177
- result.x = left;
178
- return result;
179
- }
180
- static collision(a, b) {
181
- const ac = a.getBoundingClientRect();
182
- const bc = b.getBoundingClientRect();
183
- if (ac.left < bc.left + bc.width && ac.left + ac.width > bc.left &&
184
- ac.top < bc.top + bc.height && ac.top + ac.height > bc.top) {
185
- return true;
186
- }
187
- else {
188
- return false;
189
- }
190
- }
191
- }
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvc3JjL2xpYi91dGlscy9odG1sL2h0bWwtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUEyQi9DLE1BQU0sT0FBTyxPQUFPO0lBQ2xCLFlBQW1CLENBQVMsRUFBUyxDQUFTO1FBQTNCLE1BQUMsR0FBRCxDQUFDLENBQVE7UUFBUyxNQUFDLEdBQUQsQ0FBQyxDQUFRO0lBQzlDLENBQUM7Q0FDRjtBQVVELE1BQU0sT0FBTyxXQUFXO0lBMER0QixZQUFZLEdBQW9CO1FBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUMxQyxDQUFDO0lBN0RELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBVyxJQUFJLENBQUMsQ0FBUztRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBSUQsSUFBVyxHQUFHO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUFXLEdBQUcsQ0FBQyxDQUFTO1FBQ3RC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RSxDQUFjO1FBQzdDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRXJDLElBQUksRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxJQUFJO1lBQzlELEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQzVELE9BQU8sSUFBSSxDQUFDO1NBQ2I7YUFDSTtZQUNILE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWE1hdGhVdGlsIH0gZnJvbSAnLi4vbWF0aC9tYXRoLXV0aWwnO1xyXG5cclxuZXhwb3J0IHR5cGUgQVhQbGFjZW1lbnQgPVxyXG4gIHwgJ3RvcC1zdGFydCdcclxuICB8ICd0b3AtbWlkZGxlJ1xyXG4gIHwgJ3RvcC1lbmQnXHJcbiAgfCAnY2VudGVyLXN0YXJ0J1xyXG4gIHwgJ2NlbnRlci1lbmQnXHJcbiAgfCAnYm90dG9tLXN0YXJ0J1xyXG4gIHwgJ2JvdHRvbS1taWRkbGUnXHJcbiAgfCAnYm90dG9tLWVuZCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYSVBvaW50IHtcclxuICB4OiBudW1iZXI7XHJcbiAgeTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYQ29ubmVjdGVkUG9zaXRpb24ge1xyXG4gIG9yaWdpblg6ICdzdGFydCcgfCAnY2VudGVyJyB8ICdlbmQnO1xyXG4gIG9yaWdpblk6ICd0b3AnIHwgJ2NlbnRlcicgfCAnYm90dG9tJztcclxuICBvdmVybGF5WDogJ3N0YXJ0JyB8ICdjZW50ZXInIHwgJ2VuZCc7XHJcbiAgb3ZlcmxheVk6ICd0b3AnIHwgJ2NlbnRlcicgfCAnYm90dG9tJztcclxuICB3ZWlnaHQ/OiBudW1iZXI7XHJcbiAgb2Zmc2V0WD86IG51bWJlcjtcclxuICBvZmZzZXRZPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhQb2ludCBpbXBsZW1lbnRzIEFYSVBvaW50IHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgeDogbnVtYmVyLCBwdWJsaWMgeTogbnVtYmVyKSB7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYQ2xpZW50UmVjQ3RvciB7XHJcbiAgbGVmdD86IG51bWJlcjtcclxuICB0b3A/OiBudW1iZXI7XHJcbiAgd2lkdGg/OiBudW1iZXI7XHJcbiAgaGVpZ2h0PzogbnVtYmVyO1xyXG4gIGJvdHRvbT86IG51bWJlcjtcclxuICByaWdodD86IG51bWJlcjtcclxufVxyXG5leHBvcnQgY2xhc3MgQVhDbGllbnRSZWMgaW1wbGVtZW50cyBBWENsaWVudFJlY0N0b3Ige1xyXG5cclxuXHJcbiAgcHJpdmF0ZSBfbGVmdDogbnVtYmVyO1xyXG4gIHB1YmxpYyBnZXQgbGVmdCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xlZnQ7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgbGVmdCh2OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2xlZnQgPSB2O1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgX3RvcDogbnVtYmVyO1xyXG4gIHB1YmxpYyBnZXQgdG9wKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fdG9wO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHRvcCh2OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3RvcCA9IHY7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBfcmlnaHQ6IG51bWJlcjtcclxuICBwdWJsaWMgZ2V0IHJpZ2h0KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmlnaHQ7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgcmlnaHQodjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9yaWdodCA9IHY7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBfYm90dG9tOiBudW1iZXI7XHJcbiAgcHVibGljIGdldCBib3R0b20oKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9ib3R0b207XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgYm90dG9tKHY6IG51bWJlcikge1xyXG4gICAgdGhpcy5fYm90dG9tID0gdjtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgcHJpdmF0ZSBfd2lkdGg6IG51bWJlcjtcclxuICBwdWJsaWMgZ2V0IHdpZHRoKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fd2lkdGg7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgd2lkdGgodjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl93aWR0aCA9IHY7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBfaGVpZ2h0OiBudW1iZXI7XHJcbiAgcHVibGljIGdldCBoZWlnaHQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9oZWlnaHQ7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgaGVpZ2h0KHY6IG51bWJlcikge1xyXG4gICAgdGhpcy5faGVpZ2h0ID0gdjtcclxuICB9XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihyZWM6IEFYQ2xpZW50UmVjQ3Rvcikge1xyXG4gICAgdGhpcy5fbGVmdCA9IHJlYy5sZWZ0O1xyXG4gICAgdGhpcy5fdG9wID0gcmVjLnRvcDtcclxuICAgIHRoaXMuX3dpZHRoID0gcmVjLndpZHRoO1xyXG4gICAgdGhpcy5faGVpZ2h0ID0gcmVjLmhlaWdodDtcclxuICAgIHRoaXMuX3JpZ2h0ID0gdGhpcy5fbGVmdCArIHRoaXMuX3dpZHRoO1xyXG4gICAgdGhpcy5fYm90dG9tID0gdGhpcy5fdG9wICsgdGhpcy5faGVpZ2h0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGludGVyc2VjdChyZWM6IEFYQ2xpZW50UmVjQ3Rvcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICh0aGlzLmxlZnQgPCByZWMubGVmdCArIHJlYy53aWR0aCAmJlxyXG4gICAgICB0aGlzLmxlZnQgKyB0aGlzLndpZHRoID4gcmVjLmxlZnQgJiZcclxuICAgICAgdGhpcy50b3AgPCByZWMudG9wICsgcmVjLmhlaWdodCAmJlxyXG4gICAgICB0aGlzLnRvcCArIHRoaXMuaGVpZ2h0ID4gcmVjLnRvcCk7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuLy8gQGR5bmFtaWNcclxuZXhwb3J0IGNsYXNzIEFYSHRtbFV0aWwge1xyXG4gIHN0YXRpYyBnZXRCb3VuZGluZ1JlY3RQb2ludChlbDogSFRNTEVsZW1lbnQsIHBsYWNlbWVudDogQVhQbGFjZW1lbnQpOiBBWFBvaW50IHtcclxuICAgIGNvbnN0IHJlYyA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBlbC5vZmZzZXRXaWR0aDtcclxuICAgIGNvbnN0IGhlaWdodCA9IGVsLm9mZnNldEhlaWdodDtcclxuICAgIHN3aXRjaCAocGxhY2VtZW50KSB7XHJcbiAgICAgIGNhc2UgJ3RvcC1zdGFydCc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBBWFBvaW50KHJlYy5sZWZ0LCByZWMudG9wKTtcclxuICAgICAgY2FzZSAndG9wLW1pZGRsZSc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBBWFBvaW50KHJlYy5sZWZ0ICsgKHdpZHRoIC8gMiksIHJlYy50b3ApO1xyXG4gICAgICBjYXNlICd0b3AtZW5kJzpcclxuICAgICAgICByZXR1cm4gbmV3IEFYUG9pbnQocmVjLmxlZnQgKyAod2lkdGgpLCByZWMudG9wKTtcclxuICAgICAgY2FzZSAnY2VudGVyLWVuZCc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBBWFBvaW50KHJlYy5sZWZ0ICsgKHdpZHRoKSwgcmVjLnRvcCArIChoZWlnaHQgLyAyKSk7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbS1lbmQnOlxyXG4gICAgICAgIHJldHVybiBuZXcgQVhQb2ludChyZWMubGVmdCArICh3aWR0aCksIHJlYy50b3AgKyAoaGVpZ2h0KSk7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbS1taWRkbGUnOlxyXG4gICAgICAgIHJldHVybiBuZXcgQVhQb2ludChyZWMubGVmdCArICh3aWR0aCAvIDIpLCByZWMudG9wICsgKGhlaWdodCkpO1xyXG4gICAgICBjYXNlICdib3R0b20tc3RhcnQnOlxyXG4gICAgICAgIHJldHVybiBuZXcgQVhQb2ludChyZWMubGVmdCwgcmVjLnRvcCArIChoZWlnaHQpKTtcclxuICAgICAgY2FzZSAnY2VudGVyLXN0YXJ0JzpcclxuICAgICAgICByZXR1cm4gbmV3IEFYUG9pbnQocmVjLmxlZnQsIHJlYy50b3AgKyAoaGVpZ2h0IC8gMikpO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBuZXcgQVhQb2ludChyZWMubGVmdCArICh3aWR0aCAvIDIpLCByZWMudG9wICsgKGhlaWdodCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGlzSW5SZWNQb2ludChwb3M6IEFYSVBvaW50LCByZWM6IEFYQ2xpZW50UmVjQ3Rvcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHBvcy54ID49IHJlYy5sZWZ0ICYmIHBvcy54IDw9IChyZWMubGVmdCArIHJlYy53aWR0aCkgJiYgcG9zLnkgPj0gcmVjLnRvcCAmJiAocG9zLnkgPD0gKHJlYy50b3AgKyByZWMuaGVpZ2h0KSk7XHJcbiAgfVxyXG5cclxuICAvLyBzdGF0aWMgaXNPdmVyTGFwKHJlYzE6IEFYQ2xpZW50UmVjQ3RvciwgcmVjMjogQVhDbGllbnRSZWNDdG9yKTogYm9vbGVhbiB7XHJcbiAgLy8gICBjb25zdCByMTogQVhDbGllbnRSZWMgPSBuZXcgQVhDbGllbnRSZWMocmVjMSk7XHJcbiAgLy8gICBjb25zdCByMjogQVhDbGllbnRSZWMgPSBuZXcgQVhDbGllbnRSZWMocmVjMik7XHJcblxyXG4gIC8vICAgcmV0dXJuIDtcclxuICAvLyB9XHJcblxyXG4gIHN0YXRpYyBpc0luRWxlbWVudEJvdW5kKHBvczogQVhJUG9pbnQsIGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBlbEJvdW5kID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIHJldHVybiBBWEh0bWxVdGlsLmlzSW5SZWNQb2ludChwb3MsIHtcclxuICAgICAgbGVmdDogZWxCb3VuZC5sZWZ0LFxyXG4gICAgICB3aWR0aDogZWxCb3VuZC53aWR0aCxcclxuICAgICAgdG9wOiBlbEJvdW5kLnRvcCxcclxuICAgICAgaGVpZ2h0OiBlbEJvdW5kLmhlaWdodFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0RGltZW5zaW9ucygpOiB7IHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyIH0ge1xyXG4gICAgbGV0IHdpblcgPSA2MzA7XHJcbiAgICBsZXQgd2luSCA9IDQ2MDtcclxuICAgIGlmIChkb2N1bWVudC5ib2R5ICYmIGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGgpIHtcclxuICAgICAgd2luVyA9IGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGg7XHJcbiAgICAgIHdpbkggPSBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDtcclxuICAgIH1cclxuICAgIGlmIChkb2N1bWVudC5jb21wYXRNb2RlID09PSAnQ1NTMUNvbXBhdCcgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRXaWR0aCkge1xyXG4gICAgICB3aW5XID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgICB3aW5IID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgIH1cclxuICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCAmJiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcclxuICAgICAgd2luVyA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgICB3aW5IID0gd2luZG93LmlubmVySGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHsgd2lkdGg6IHdpblcsIGhlaWdodDogd2luSCB9O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldE9mZnNldFJpZ2h0KGVsZW06IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcclxuICAgIGxldCBlbGVtZW50ID0gZWxlbTtcclxuICAgIGNvbnN0IHdpZHRoID0gZWxlbWVudC5vZmZzZXRXaWR0aDtcclxuICAgIGxldCByaWdodCA9IDA7XHJcbiAgICB3aGlsZSAoZWxlbWVudC5vZmZzZXRQYXJlbnQpIHtcclxuICAgICAgcmlnaHQgKz0gZWxlbWVudC5vZmZzZXRMZWZ0O1xyXG4gICAgICBlbGVtZW50ID0gZWxlbWVudC5vZmZzZXRQYXJlbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICB9XHJcbiAgICByaWdodCArPSBlbGVtZW50Lm9mZnNldExlZnQ7XHJcbiAgICByaWdodCA9IEFYSHRtbFV0aWwuZ2V0RGltZW5zaW9ucygpLndpZHRoIC0gcmlnaHQ7XHJcbiAgICByaWdodCAtPSB3aWR0aDtcclxuICAgIHJldHVybiByaWdodDtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRVSUQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnZWwtJyArIEFYTWF0aFV0aWwucmFuZG9tUmFuZ2UoMTAwMDAwMDAwMCwgOTk5OTk5OTk5OSkudG9TdHJpbmcoKTtcclxuICB9XHJcblxyXG5cclxuICBzdGF0aWMgZ2V0UmVsYXRlZFBvc2l0aW9uKHNvdXJjZTogSFRNTEVsZW1lbnQsIHBsYWNlbWVudDogQVhQbGFjZW1lbnQsIHRhcmdldDogSFRNTEVsZW1lbnQsIGFsaWdubWVudDogQVhQbGFjZW1lbnQpOiBBWElQb2ludCB7XHJcbiAgICBjb25zdCByZXN1bHQ6IEFYSVBvaW50ID0geyB4OiAwLCB5OiAwIH07XHJcblxyXG4gICAgY29uc3Qgc291cmNlUG9zOiBBWFBvaW50ID0gQVhIdG1sVXRpbC5nZXRCb3VuZGluZ1JlY3RQb2ludChzb3VyY2UsIHBsYWNlbWVudCk7XHJcblxyXG5cclxuICAgIGxldCB0b3A6IG51bWJlciA9IDA7XHJcbiAgICBsZXQgbGVmdDogbnVtYmVyID0gMDtcclxuICAgIHN3aXRjaCAoYWxpZ25tZW50KSB7XHJcbiAgICAgIGNhc2UgJ3RvcC1zdGFydCc6XHJcbiAgICAgICAgdG9wID0gc291cmNlUG9zLnk7XHJcbiAgICAgICAgbGVmdCA9IHNvdXJjZVBvcy54O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0b3AtbWlkZGxlJzpcclxuICAgICAgICB0b3AgPSBzb3VyY2VQb3MueTtcclxuICAgICAgICBsZWZ0ID0gc291cmNlUG9zLnggLSB0YXJnZXQub2Zmc2V0V2lkdGggLyAyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0b3AtZW5kJzpcclxuICAgICAgICB0b3AgPSBzb3VyY2VQb3MueTtcclxuICAgICAgICBsZWZ0ID0gc291cmNlUG9zLnggLSB0YXJnZXQub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2NlbnRlci1lbmQnOlxyXG4gICAgICAgIHRvcCA9IHNvdXJjZVBvcy55IC0gdGFyZ2V0Lm9mZnNldEhlaWdodCAvIDI7XHJcbiAgICAgICAgbGVmdCA9IHNvdXJjZVBvcy54IC0gdGFyZ2V0Lm9mZnNldFdpZHRoO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20tZW5kJzpcclxuICAgICAgICB0b3AgPSBzb3VyY2VQb3MueSAtIHRhcmdldC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgICAgbGVmdCA9IHNvdXJjZVBvcy54IC0gdGFyZ2V0Lm9mZnNldFdpZHRoO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20tbWlkZGxlJzpcclxuICAgICAgICB0b3AgPSBzb3VyY2VQb3MueSAtIHRhcmdldC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgICAgbGVmdCA9IHNvdXJjZVBvcy54IC0gdGFyZ2V0Lm9mZnNldFdpZHRoIC8gMjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnYm90dG9tLXN0YXJ0JzpcclxuICAgICAgICB0b3AgPSBzb3VyY2VQb3MueSAtIHRhcmdldC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgICAgbGVmdCA9IHNvdXJjZVBvcy54O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdjZW50ZXItc3RhcnQnOlxyXG4gICAgICAgIHRvcCA9IHNvdXJjZVBvcy55IC0gdGFyZ2V0Lm9mZnNldEhlaWdodCAvIDI7XHJcbiAgICAgICAgbGVmdCA9IHNvdXJjZVBvcy54O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmVzdWx0LnkgPSB0b3A7XHJcbiAgICByZXN1bHQueCA9IGxlZnQ7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcblxyXG4gIHN0YXRpYyBjb2xsaXNpb24oYTogSFRNTEVsZW1lbnQsIGI6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBhYyA9IGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCBiYyA9IGIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG4gICAgaWYgKGFjLmxlZnQgPCBiYy5sZWZ0ICsgYmMud2lkdGggJiYgYWMubGVmdCArIGFjLndpZHRoID4gYmMubGVmdCAmJlxyXG4gICAgICBhYy50b3AgPCBiYy50b3AgKyBiYy5oZWlnaHQgJiYgYWMudG9wICsgYWMuaGVpZ2h0ID4gYmMudG9wKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -1,19 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { AXHtmlToTextPipe } from '../../pipe/htmlToText.pipe';
4
- import * as i0 from "@angular/core";
5
- export class AXHtmlModule {
6
- }
7
- AXHtmlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXHtmlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- AXHtmlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXHtmlModule, declarations: [AXHtmlToTextPipe], imports: [CommonModule], exports: [AXHtmlToTextPipe] });
9
- AXHtmlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXHtmlModule, providers: [], imports: [[CommonModule]] });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXHtmlModule, decorators: [{
11
- type: NgModule,
12
- args: [{
13
- declarations: [AXHtmlToTextPipe],
14
- imports: [CommonModule],
15
- exports: [AXHtmlToTextPipe],
16
- providers: []
17
- }]
18
- }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvbGliL3V0aWxzL2h0bWwvaHRtbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBUTlELE1BQU0sT0FBTyxZQUFZOzswR0FBWixZQUFZOzJHQUFaLFlBQVksaUJBTFIsZ0JBQWdCLGFBQ3JCLFlBQVksYUFDWixnQkFBZ0I7MkdBR2YsWUFBWSxhQUZaLEVBQUUsWUFGSixDQUFDLFlBQVksQ0FBQzs0RkFJWixZQUFZO2tCQU54QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUNoQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFYSHRtbFRvVGV4dFBpcGUgfSBmcm9tICcuLi8uLi9waXBlL2h0bWxUb1RleHQucGlwZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0FYSHRtbFRvVGV4dFBpcGVdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtBWEh0bWxUb1RleHRQaXBlXSxcclxuICBwcm92aWRlcnM6IFtdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWEh0bWxNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -1,6 +0,0 @@
1
- export class AXMathUtil {
2
- static randomRange(min, max) {
3
- return Math.floor(Math.random() * (max - min + 1) + min);
4
- }
5
- }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvc3JjL2xpYi91dGlscy9tYXRoL21hdGgtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sVUFBVTtJQUNuQixNQUFNLENBQUMsV0FBVyxDQUFDLEdBQVcsRUFBRSxHQUFXO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQzdELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBBWE1hdGhVdGlsIHtcclxuICAgIHN0YXRpYyByYW5kb21SYW5nZShtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluICsgMSkgKyBtaW4pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,83 +0,0 @@
1
- // @dynamic
2
- export class AXObjectUtil {
3
- static deepJSONClone(obj) {
4
- return obj ? JSON.parse(JSON.stringify(obj)) : null;
5
- }
6
- static deepCopy(obj) {
7
- let copy;
8
- // Handle the 3 simple types, and null or undefined
9
- if (null == obj || 'object' !== typeof obj) {
10
- return obj;
11
- }
12
- // Handle Date
13
- if (obj instanceof Date) {
14
- copy = new Date();
15
- copy.setTime(obj.getTime());
16
- return copy;
17
- }
18
- // Handle Array
19
- if (obj instanceof Array) {
20
- copy = [];
21
- for (let i = 0, len = obj.length; i < len; i++) {
22
- copy[i] = AXObjectUtil.deepCopy(obj[i]);
23
- }
24
- return copy;
25
- }
26
- // Handle Object
27
- if (obj instanceof Object) {
28
- copy = {};
29
- for (const attr in obj) {
30
- if (obj.hasOwnProperty(attr)) {
31
- copy[attr] = AXObjectUtil.deepCopy(obj[attr]);
32
- }
33
- }
34
- return copy;
35
- }
36
- throw new Error('Unable to copy obj! Its type isn\'t supported.');
37
- }
38
- }
39
- export function AXFetchProp(obj, prop) {
40
- if (typeof obj === 'undefined') {
41
- return false;
42
- }
43
- const index = prop.indexOf('.');
44
- if (index > -1) {
45
- return AXFetchProp(obj[prop.substring(0, index)], prop.substr(index + 1));
46
- }
47
- return obj[prop];
48
- }
49
- export function getPropByPath(obj, path, defaultVal) {
50
- path = path
51
- .replace(/\[/g, '.')
52
- .replace(/]/g, '')
53
- .split('.');
54
- path.forEach((level) => {
55
- if (obj) {
56
- obj = obj[level];
57
- }
58
- });
59
- if (obj === undefined) {
60
- return defaultVal;
61
- }
62
- return obj;
63
- }
64
- export function setPropByPath(obj, path, value) {
65
- if (Object(obj) !== obj) {
66
- return obj;
67
- } // When obj is not an object
68
- // If not yet an array, get the keys from the string-path
69
- if (!Array.isArray(path)) {
70
- path = path.toString().match(/[^.[\]]+/g) || [];
71
- }
72
- path.slice(0, -1).reduce((a, c, i) => // Iterate all of them except the last one
73
- Object(a[c]) === a[c] // Does the key exist and is its value an object?
74
- // Yes: then follow that path
75
- ? a[c]
76
- // No: create the key. Is the next key a potential array-index?
77
- : a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1]
78
- ? [] // Yes: assign a new array object
79
- : {}, // No: assign a new plain object
80
- obj)[path[path.length - 1]] = value; // Finally assign the value to the last key
81
- return obj[path[0]]; // Return the top-level object to allow chaining
82
- }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvbGliL3V0aWxzL29iamVjdC9vYmplY3QtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxXQUFXO0FBQ1gsTUFBTSxPQUFPLFlBQVk7SUFDckIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFRO1FBQ3pCLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3hELENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUc7UUFDZixJQUFJLElBQUksQ0FBQztRQUNULG1EQUFtRDtRQUNuRCxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksUUFBUSxLQUFLLE9BQU8sR0FBRyxFQUFFO1lBQUUsT0FBTyxHQUFHLENBQUM7U0FBRTtRQUMzRCxjQUFjO1FBQ2QsSUFBSSxHQUFHLFlBQVksSUFBSSxFQUFFO1lBQ3JCLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELGVBQWU7UUFDZixJQUFJLEdBQUcsWUFBWSxLQUFLLEVBQUU7WUFDdEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNWLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzVDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFD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QUMsQ0FBQztZQUNoRCxDQUFDLENBQUMsRUFBRSxDQUFDLGlDQUFpQztZQUN0QyxDQUFDLENBQUMsRUFBRSxFQUFFLGdDQUFnQztJQUM5QyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLDJDQUEyQztJQUNwRixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdEQUFnRDtBQUN6RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQGR5bmFtaWNcclxuZXhwb3J0IGNsYXNzIEFYT2JqZWN0VXRpbCB7XHJcbiAgICBzdGF0aWMgZGVlcEpTT05DbG9uZShvYmo6IGFueSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIG9iaiA/IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob2JqKSkgOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBkZWVwQ29weShvYmopIHtcclxuICAgICAgICBsZXQgY29weTtcclxuICAgICAgICAvLyBIYW5kbGUgdGhlIDMgc2ltcGxlIHR5cGVzLCBhbmQgbnVsbCBvciB1bmRlZmluZWRcclxuICAgICAgICBpZiAobnVsbCA9PSBvYmogfHwgJ29iamVjdCcgIT09IHR5cGVvZiBvYmopIHsgcmV0dXJuIG9iajsgfVxyXG4gICAgICAgIC8vIEhhbmRsZSBEYXRlXHJcbiAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICAgICAgY29weSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgICAgIGNvcHkuc2V0VGltZShvYmouZ2V0VGltZSgpKTtcclxuICAgICAgICAgICAgcmV0dXJuIGNvcHk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEhhbmRsZSBBcnJheVxyXG4gICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICBjb3B5ID0gW107XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBvYmoubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGNvcHlbaV0gPSBBWE9iamVjdFV0aWwuZGVlcENvcHkob2JqW2ldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gY29weTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gSGFuZGxlIE9iamVjdFxyXG4gICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBPYmplY3QpIHtcclxuICAgICAgICAgICAgY29weSA9IHt9O1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGF0dHIgaW4gb2JqKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGF0dHIpKSB7IGNvcHlbYXR0cl0gPSBBWE9iamVjdFV0aWwuZGVlcENvcHkob2JqW2F0dHJdKTsgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBjb3B5O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBjb3B5IG9iaiEgSXRzIHR5cGUgaXNuXFwndCBzdXBwb3J0ZWQuJyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBBWEZldGNoUHJvcChvYmosIHByb3A6IHN0cmluZykge1xyXG4gICAgaWYgKHR5cGVvZiBvYmogPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaW5kZXggPSBwcm9wLmluZGV4T2YoJy4nKTtcclxuXHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgIHJldHVybiBBWEZldGNoUHJvcChvYmpbcHJvcC5zdWJzdHJpbmcoMCwgaW5kZXgpXSwgcHJvcC5zdWJzdHIoaW5kZXggKyAxKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9ialtwcm9wXTtcclxufVxyXG5cclxuXHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb3BCeVBhdGgob2JqLCBwYXRoLCBkZWZhdWx0VmFsPykge1xyXG4gICAgcGF0aCA9IHBhdGhcclxuICAgICAgICAucmVwbGFjZSgvXFxbL2csICcuJylcclxuICAgICAgICAucmVwbGFjZSgvXS9nLCAnJylcclxuICAgICAgICAuc3BsaXQoJy4nKTtcclxuXHJcbiAgICBwYXRoLmZvckVhY2goKGxldmVsKSA9PiB7XHJcbiAgICAgICAgaWYgKG9iaikge1xyXG4gICAgICAgICAgICBvYmogPSBvYmpbbGV2ZWxdO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChvYmogPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHJldHVybiBkZWZhdWx0VmFsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9iajtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHNldFByb3BCeVBhdGgob2JqLCBwYXRoLCB2YWx1ZSkge1xyXG4gICAgaWYgKE9iamVjdChvYmopICE9PSBvYmopIHsgcmV0dXJuIG9iajsgfSAvLyBXaGVuIG9iaiBpcyBub3QgYW4gb2JqZWN0XHJcbiAgICAvLyBJZiBub3QgeWV0IGFuIGFycmF5LCBnZXQgdGhlIGtleXMgZnJvbSB0aGUgc3RyaW5nLXBhdGhcclxuICAgIGlmICghQXJyYXkuaXNBcnJheShwYXRoKSkgeyBwYXRoID0gcGF0aC50b1N0cmluZygpLm1hdGNoKC9bXi5bXFxdXSsvZykgfHwgW107IH1cclxuICAgIHBhdGguc2xpY2UoMCwgLTEpLnJlZHVjZSgoYSwgYywgaSkgPT4gLy8gSXRlcmF0ZSBhbGwgb2YgdGhlbSBleGNlcHQgdGhlIGxhc3Qgb25lXHJcbiAgICAgICAgT2JqZWN0KGFbY10pID09PSBhW2NdIC8vIERvZXMgdGhlIGtleSBleGlzdCBhbmQgaXMgaXRzIHZhbHVlIGFuIG9iamVjdD9cclxuICAgICAgICAgICAgLy8gWWVzOiB0aGVuIGZvbGxvdyB0aGF0IHBhdGhcclxuICAgICAgICAgICAgPyBhW2NdXHJcbiAgICAgICAgICAgIC8vIE5vOiBjcmVhdGUgdGhlIGtleS4gSXMgdGhlIG5leHQga2V5IGEgcG90ZW50aWFsIGFycmF5LWluZGV4P1xyXG4gICAgICAgICAgICA6IGFbY10gPSBNYXRoLmFicyhwYXRoW2kgKyAxXSkgPj4gMCA9PT0gK3BhdGhbaSArIDFdXHJcbiAgICAgICAgICAgICAgICA/IFtdIC8vIFllczogYXNzaWduIGEgbmV3IGFycmF5IG9iamVjdFxyXG4gICAgICAgICAgICAgICAgOiB7fSwgLy8gTm86IGFzc2lnbiBhIG5ldyBwbGFpbiBvYmplY3RcclxuICAgICAgICBvYmopW3BhdGhbcGF0aC5sZW5ndGggLSAxXV0gPSB2YWx1ZTsgLy8gRmluYWxseSBhc3NpZ24gdGhlIHZhbHVlIHRvIHRoZSBsYXN0IGtleVxyXG4gICAgcmV0dXJuIG9ialtwYXRoWzBdXTsgLy8gUmV0dXJuIHRoZSB0b3AtbGV2ZWwgb2JqZWN0IHRvIGFsbG93IGNoYWluaW5nXHJcbn1cclxuXHJcblxyXG4iXX0=
@@ -1,20 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { AXHtmlUtil } from '../html/html-util';
4
- import * as i0 from "@angular/core";
5
- export class AXOnDemandPreloadService {
6
- constructor() {
7
- this.subject = new Subject();
8
- this.tmp = AXHtmlUtil.getUID();
9
- }
10
- startPreload(routePath) {
11
- const slices = [];
12
- this.subject.next(routePath);
13
- }
14
- }
15
- AXOnDemandPreloadService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXOnDemandPreloadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16
- AXOnDemandPreloadService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXOnDemandPreloadService });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXOnDemandPreloadService, decorators: [{
18
- type: Injectable
19
- }], ctorParameters: function () { return []; } });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib24tZGVtYW5kLXByZWxvYWQtc3RyYXRlZ3kuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL3NyYy9saWIvdXRpbHMvcmVuZGVyL29uLWRlbWFuZC1wcmVsb2FkLXN0cmF0ZWd5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFrQixNQUFNLE1BQU0sQ0FBQztBQUUvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBTS9DLE1BQU0sT0FBTyx3QkFBd0I7SUFJbkM7UUFIQSxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUk5QixJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQWlCO1FBQzVCLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUc1QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQixDQUFDOztzSEFiVSx3QkFBd0I7MEhBQXhCLHdCQUF3Qjs0RkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJlbG9hZGluZ1N0cmF0ZWd5LCBSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFYSHRtbFV0aWwgfSBmcm9tICcuLi9odG1sL2h0bWwtdXRpbCc7XHJcblxyXG5cclxuXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBWE9uRGVtYW5kUHJlbG9hZFNlcnZpY2Uge1xyXG4gIHN1YmplY3QgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcbiAgdG1wOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy50bXAgPSBBWEh0bWxVdGlsLmdldFVJRCgpO1xyXG4gIH1cclxuXHJcbiAgc3RhcnRQcmVsb2FkKHJvdXRlUGF0aDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBzbGljZXM6IHN0cmluZ1tdID0gW107XHJcbiAgIFxyXG5cclxuICAgIHRoaXMuc3ViamVjdC5uZXh0KHJvdXRlUGF0aCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==