@acorex/core 7.0.41 → 7.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/index.d.ts +5 -5
- package/config/public-api.d.ts +1 -1
- package/config/src/configs.d.ts +9 -9
- package/dateTime/index.d.ts +5 -5
- package/dateTime/public-api.d.ts +5 -5
- package/dateTime/src/datetime.class.d.ts +100 -100
- package/dateTime/src/datetime.module.d.ts +8 -8
- package/dateTime/src/datetime.pipe.d.ts +8 -8
- package/dateTime/src/georgian.calendar.d.ts +20 -20
- package/dateTime/src/jalali.calendar.d.ts +35 -35
- package/{esm2020 → esm2022}/acorex-core.mjs +4 -4
- package/{esm2020 → esm2022}/config/acorex-core-config.mjs +4 -4
- package/{esm2020 → esm2022}/config/public-api.mjs +1 -1
- package/esm2022/config/src/configs.mjs +25 -0
- package/{esm2020 → esm2022}/dateTime/acorex-core-dateTime.mjs +4 -4
- package/{esm2020 → esm2022}/dateTime/public-api.mjs +5 -5
- package/esm2022/dateTime/src/datetime.class.mjs +295 -0
- package/esm2022/dateTime/src/datetime.module.mjs +40 -0
- package/esm2022/dateTime/src/datetime.pipe.mjs +27 -0
- package/esm2022/dateTime/src/georgian.calendar.mjs +187 -0
- package/esm2022/dateTime/src/jalali.calendar.mjs +357 -0
- package/{esm2020 → esm2022}/events/acorex-core-events.mjs +4 -4
- package/{esm2020 → esm2022}/events/public-api.mjs +1 -1
- package/esm2022/events/src/event.service.mjs +35 -0
- package/{esm2020 → esm2022}/file/acorex-core-file.mjs +4 -4
- package/{esm2020 → esm2022}/file/public-api.mjs +4 -4
- package/esm2022/file/src/file-download-ref.class.mjs +13 -0
- package/esm2022/file/src/file-download-result.class.mjs +47 -0
- package/esm2022/file/src/file-upload-ref.class.mjs +13 -0
- package/esm2022/file/src/file.service.mjs +103 -0
- package/{esm2020 → esm2022}/http/acorex-core-http.mjs +4 -4
- package/{esm2020 → esm2022}/http/public-api.mjs +5 -5
- package/{esm2020 → esm2022}/http/src/http-error.class.mjs +1 -1
- package/{esm2020 → esm2022}/http/src/http-events.interceptor.mjs +2 -2
- package/{esm2020 → esm2022}/http/src/http-request.class.mjs +1 -1
- package/esm2022/http/src/http-result.class.mjs +25 -0
- package/esm2022/http/src/http.module.mjs +30 -0
- package/esm2022/http/src/http.service.mjs +152 -0
- package/{esm2020 → esm2022}/image/acorex-core-image.mjs +4 -4
- package/{esm2020 → esm2022}/image/public-api.mjs +1 -1
- package/esm2022/image/src/image.service.mjs +44 -0
- package/{esm2020 → esm2022}/pipes/acorex-core-pipes.mjs +4 -4
- package/{esm2020 → esm2022}/pipes/public-api.mjs +2 -2
- package/esm2022/pipes/src/pipes.module.mjs +20 -0
- package/{esm2020 → esm2022}/pipes/src/safe.pipe.mjs +32 -30
- package/{esm2020 → esm2022}/platform/acorex-core-platform.mjs +4 -4
- package/{esm2020 → esm2022}/platform/public-api.mjs +1 -1
- package/esm2022/platform/src/platform.service.mjs +152 -0
- package/{esm2020 → esm2022}/public-api.mjs +4 -4
- package/{esm2020 → esm2022}/translation/acorex-core-translation.mjs +4 -4
- package/{esm2020 → esm2022}/translation/public-api.mjs +3 -3
- package/esm2022/translation/src/translation.module.mjs +19 -0
- package/esm2022/translation/src/translator.mjs +44 -0
- package/esm2022/translation/src/translator.pipe.mjs +16 -0
- package/{esm2020 → esm2022}/utils/acorex-core-utils.mjs +4 -4
- package/{esm2020 → esm2022}/utils/public-api.mjs +5 -5
- package/{esm2020 → esm2022}/utils/src/color-util.mjs +114 -114
- package/{esm2020 → esm2022}/utils/src/drawing-util.mjs +29 -29
- package/{esm2020 → esm2022}/utils/src/html-util.mjs +15 -15
- package/{esm2020 → esm2022}/utils/src/object-util.mjs +38 -38
- package/{esm2020 → esm2022}/utils/src/string-util.mjs +18 -18
- package/events/index.d.ts +5 -5
- package/events/public-api.d.ts +1 -1
- package/events/src/event.service.d.ts +9 -9
- package/{fesm2015 → fesm2022}/acorex-core-config.mjs +23 -24
- package/{fesm2015 → fesm2022}/acorex-core-config.mjs.map +1 -1
- package/{fesm2015 → fesm2022}/acorex-core-dateTime.mjs +882 -880
- package/{fesm2020 → fesm2022}/acorex-core-dateTime.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/acorex-core-events.mjs +32 -35
- package/fesm2022/acorex-core-events.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/acorex-core-file.mjs +162 -159
- package/{fesm2020 → fesm2022}/acorex-core-file.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/acorex-core-http.mjs +190 -184
- package/{fesm2020 → fesm2022}/acorex-core-http.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/acorex-core-image.mjs +41 -42
- package/{fesm2020 → fesm2022}/acorex-core-image.mjs.map +1 -1
- package/{fesm2015 → fesm2022}/acorex-core-pipes.mjs +41 -41
- package/fesm2022/acorex-core-pipes.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/acorex-core-platform.mjs +147 -154
- package/fesm2022/acorex-core-platform.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/acorex-core-translation.mjs +64 -65
- package/{fesm2020 → fesm2022}/acorex-core-translation.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/acorex-core-utils.mjs +209 -210
- package/{fesm2015 → fesm2022}/acorex-core.mjs +5 -6
- package/file/index.d.ts +5 -5
- package/file/public-api.d.ts +4 -4
- package/file/src/file-download-ref.class.d.ts +6 -6
- package/file/src/file-download-result.class.d.ts +8 -8
- package/file/src/file-upload-ref.class.d.ts +5 -5
- package/file/src/file.service.d.ts +18 -18
- package/http/index.d.ts +5 -5
- package/http/public-api.d.ts +5 -5
- package/http/src/http-error.class.d.ts +7 -7
- package/http/src/http-events.interceptor.d.ts +10 -10
- package/http/src/http-request.class.d.ts +14 -14
- package/http/src/http-result.class.d.ts +11 -11
- package/http/src/http.module.d.ts +8 -8
- package/http/src/http.service.d.ts +23 -23
- package/image/index.d.ts +5 -5
- package/image/public-api.d.ts +1 -1
- package/image/src/image.service.d.ts +12 -12
- package/index.d.ts +5 -5
- package/package.json +39 -65
- package/pipes/index.d.ts +5 -5
- package/pipes/public-api.d.ts +2 -2
- package/pipes/src/pipes.module.d.ts +8 -8
- package/pipes/src/safe.pipe.d.ts +10 -10
- package/platform/index.d.ts +5 -5
- package/platform/public-api.d.ts +1 -1
- package/platform/src/platform.service.d.ts +26 -26
- package/public-api.d.ts +1 -1
- package/translation/index.d.ts +5 -5
- package/translation/public-api.d.ts +3 -3
- package/translation/src/translation.module.d.ts +7 -7
- package/translation/src/translator.d.ts +11 -11
- package/translation/src/translator.pipe.d.ts +7 -7
- package/utils/index.d.ts +5 -5
- package/utils/public-api.d.ts +5 -5
- package/utils/src/color-util.d.ts +23 -23
- package/utils/src/drawing-util.d.ts +18 -18
- package/utils/src/html-util.d.ts +4 -4
- package/utils/src/object-util.d.ts +4 -4
- package/utils/src/string-util.d.ts +6 -6
- package/esm2020/config/src/configs.mjs +0 -24
- package/esm2020/dateTime/src/datetime.class.mjs +0 -288
- package/esm2020/dateTime/src/datetime.module.mjs +0 -39
- package/esm2020/dateTime/src/datetime.pipe.mjs +0 -26
- package/esm2020/dateTime/src/georgian.calendar.mjs +0 -189
- package/esm2020/dateTime/src/jalali.calendar.mjs +0 -359
- package/esm2020/events/src/event.service.mjs +0 -36
- package/esm2020/file/src/file-download-ref.class.mjs +0 -12
- package/esm2020/file/src/file-download-result.class.mjs +0 -46
- package/esm2020/file/src/file-upload-ref.class.mjs +0 -12
- package/esm2020/file/src/file.service.mjs +0 -101
- package/esm2020/http/src/http-result.class.mjs +0 -21
- package/esm2020/http/src/http.module.mjs +0 -29
- package/esm2020/http/src/http.service.mjs +0 -148
- package/esm2020/image/src/image.service.mjs +0 -43
- package/esm2020/pipes/src/pipes.module.mjs +0 -19
- package/esm2020/platform/src/platform.service.mjs +0 -157
- package/esm2020/translation/src/translation.module.mjs +0 -18
- package/esm2020/translation/src/translator.mjs +0 -43
- package/esm2020/translation/src/translator.pipe.mjs +0 -15
- package/fesm2015/acorex-core-dateTime.mjs.map +0 -1
- package/fesm2015/acorex-core-events.mjs +0 -44
- package/fesm2015/acorex-core-events.mjs.map +0 -1
- package/fesm2015/acorex-core-file.mjs +0 -176
- package/fesm2015/acorex-core-file.mjs.map +0 -1
- package/fesm2015/acorex-core-http.mjs +0 -203
- package/fesm2015/acorex-core-http.mjs.map +0 -1
- package/fesm2015/acorex-core-image.mjs +0 -54
- package/fesm2015/acorex-core-image.mjs.map +0 -1
- package/fesm2015/acorex-core-pipes.mjs.map +0 -1
- package/fesm2015/acorex-core-platform.mjs +0 -165
- package/fesm2015/acorex-core-platform.mjs.map +0 -1
- package/fesm2015/acorex-core-translation.mjs +0 -81
- package/fesm2015/acorex-core-translation.mjs.map +0 -1
- package/fesm2015/acorex-core-utils.mjs +0 -227
- package/fesm2020/acorex-core-config.mjs +0 -32
- package/fesm2020/acorex-core-config.mjs.map +0 -1
- package/fesm2020/acorex-core-dateTime.mjs +0 -899
- package/fesm2020/acorex-core-events.mjs.map +0 -1
- package/fesm2020/acorex-core-pipes.mjs +0 -54
- package/fesm2020/acorex-core-pipes.mjs.map +0 -1
- package/fesm2020/acorex-core-platform.mjs.map +0 -1
- package/fesm2020/acorex-core-utils.mjs.map +0 -1
- package/fesm2020/acorex-core.mjs +0 -12
- package/fesm2020/acorex-core.mjs.map +0 -1
- /package/{fesm2015 → fesm2022}/acorex-core-utils.mjs.map +0 -0
- /package/{fesm2015 → fesm2022}/acorex-core.mjs.map +0 -0
@@ -1,115 +1,115 @@
|
|
1
|
-
import tinycolor from 'tinycolor2';
|
2
|
-
import tinygradient from 'tinygradient';
|
3
|
-
export class AXColorUtil {
|
4
|
-
static to(color, mode) {
|
5
|
-
const _color = tinycolor(color);
|
6
|
-
switch (mode) {
|
7
|
-
case 'rgba':
|
8
|
-
;
|
9
|
-
return _color.toRgb();
|
10
|
-
case 'hsla':
|
11
|
-
return _color.toHsl();
|
12
|
-
case 'hsva':
|
13
|
-
return _color.toHsv();
|
14
|
-
default:
|
15
|
-
return _color.toHex();
|
16
|
-
}
|
17
|
-
}
|
18
|
-
;
|
19
|
-
static toString(color, mode = null) {
|
20
|
-
const _color = tinycolor(color);
|
21
|
-
switch (mode) {
|
22
|
-
case 'rgba':
|
23
|
-
return _color.toRgbString();
|
24
|
-
case 'hsla':
|
25
|
-
return _color.toHslString();
|
26
|
-
case 'hsva':
|
27
|
-
return _color.toHsvString();
|
28
|
-
case 'hsva':
|
29
|
-
return _color.toHsvString();
|
30
|
-
case 'hex':
|
31
|
-
{
|
32
|
-
const rgba = _color.toRgb();
|
33
|
-
return rgba.a != 1 ? _color.toHex8String() : _color.toHexString();
|
34
|
-
}
|
35
|
-
default:
|
36
|
-
{
|
37
|
-
if (typeof color == 'string') {
|
38
|
-
if (color.toLowerCase().startsWith("#"))
|
39
|
-
return this.toString(color, "hex");
|
40
|
-
else
|
41
|
-
return this.toString(color, "rgba");
|
42
|
-
}
|
43
|
-
else {
|
44
|
-
return this.toString(color, "rgba");
|
45
|
-
}
|
46
|
-
}
|
47
|
-
}
|
48
|
-
}
|
49
|
-
;
|
50
|
-
static isValid(color) {
|
51
|
-
const _color = tinycolor(color);
|
52
|
-
return _color.isValid();
|
53
|
-
}
|
54
|
-
;
|
55
|
-
static mix(baseColor, hex, percentage) {
|
56
|
-
return tinycolor.mix(baseColor, hex, percentage).toString('rgb');
|
57
|
-
}
|
58
|
-
static multiply(color1, color2) {
|
59
|
-
let rgb1 = tinycolor(color1).toRgb();
|
60
|
-
let rgb2 = tinycolor(color2).toRgb();
|
61
|
-
rgb1.b = Math.floor(rgb1.b * rgb2.b / 255);
|
62
|
-
rgb1.g = Math.floor(rgb1.g * rgb2.g / 255);
|
63
|
-
rgb1.r = Math.floor(rgb1.r * rgb2.r / 255);
|
64
|
-
return tinycolor('rgb ' + rgb1.r + ' ' + rgb1.g + ' ' + rgb1.b).toString('rgb');
|
65
|
-
}
|
66
|
-
static contrastToWhite(color) {
|
67
|
-
return tinycolor.readability("#fff", color);
|
68
|
-
}
|
69
|
-
;
|
70
|
-
static lighten(hex, percentage) {
|
71
|
-
return tinycolor(hex).lighten(percentage);
|
72
|
-
}
|
73
|
-
static darken(hex, percentage) {
|
74
|
-
return tinycolor(hex).darken(percentage);
|
75
|
-
}
|
76
|
-
static brighten(hex, percentage) {
|
77
|
-
return tinycolor(hex).brighten(percentage);
|
78
|
-
}
|
79
|
-
static saturate(hex, percentage) {
|
80
|
-
return tinycolor(hex).saturate(percentage);
|
81
|
-
}
|
82
|
-
static desaturate(hex, percentage) {
|
83
|
-
return tinycolor(hex).getLuminance();
|
84
|
-
}
|
85
|
-
static equal(color1, color2) {
|
86
|
-
return tinycolor.equals(color1, color2);
|
87
|
-
}
|
88
|
-
static gradient(values) {
|
89
|
-
return tinygradient([...values]);
|
90
|
-
}
|
91
|
-
static xyToRgb(vX, vY) {
|
92
|
-
vY = vY || 0.00000000001;
|
93
|
-
const Y = 1;
|
94
|
-
const X = (Y / vY) * vX;
|
95
|
-
const Z = (Y / vY) * (1 - vX - vY);
|
96
|
-
// Convert to RGB using Wide RGB D65 conversion.
|
97
|
-
let rgb = [
|
98
|
-
X * 1.656492 - Y * 0.354851 - Z * 0.255038,
|
99
|
-
-X * 0.707196 + Y * 1.655397 + Z * 0.036152,
|
100
|
-
X * 0.051713 - Y * 0.121364 + Z * 1.011530
|
101
|
-
];
|
102
|
-
// Apply reverse gamma correction.
|
103
|
-
rgb = rgb.map(x => x <= 0.0031308 ? 12.92 * x : (1.0 + 0.055) * Math.pow(x, 1.0 / 2.4) - 0.055);
|
104
|
-
// Bring all negative components to zero.
|
105
|
-
rgb = rgb.map(x => Math.max(0, x));
|
106
|
-
// If one component is greater than 1, weight components by that value.
|
107
|
-
const max = Math.max(...rgb);
|
108
|
-
if (max > 1) {
|
109
|
-
rgb = rgb.map(x => x / max);
|
110
|
-
}
|
111
|
-
rgb = rgb.map(x => Math.round(x * 255));
|
112
|
-
return 'rgb(' + rgb.join(',') + ')';
|
113
|
-
}
|
114
|
-
}
|
1
|
+
import tinycolor from 'tinycolor2';
|
2
|
+
import tinygradient from 'tinygradient';
|
3
|
+
export class AXColorUtil {
|
4
|
+
static to(color, mode) {
|
5
|
+
const _color = tinycolor(color);
|
6
|
+
switch (mode) {
|
7
|
+
case 'rgba':
|
8
|
+
;
|
9
|
+
return _color.toRgb();
|
10
|
+
case 'hsla':
|
11
|
+
return _color.toHsl();
|
12
|
+
case 'hsva':
|
13
|
+
return _color.toHsv();
|
14
|
+
default:
|
15
|
+
return _color.toHex();
|
16
|
+
}
|
17
|
+
}
|
18
|
+
;
|
19
|
+
static toString(color, mode = null) {
|
20
|
+
const _color = tinycolor(color);
|
21
|
+
switch (mode) {
|
22
|
+
case 'rgba':
|
23
|
+
return _color.toRgbString();
|
24
|
+
case 'hsla':
|
25
|
+
return _color.toHslString();
|
26
|
+
case 'hsva':
|
27
|
+
return _color.toHsvString();
|
28
|
+
case 'hsva':
|
29
|
+
return _color.toHsvString();
|
30
|
+
case 'hex':
|
31
|
+
{
|
32
|
+
const rgba = _color.toRgb();
|
33
|
+
return rgba.a != 1 ? _color.toHex8String() : _color.toHexString();
|
34
|
+
}
|
35
|
+
default:
|
36
|
+
{
|
37
|
+
if (typeof color == 'string') {
|
38
|
+
if (color.toLowerCase().startsWith("#"))
|
39
|
+
return this.toString(color, "hex");
|
40
|
+
else
|
41
|
+
return this.toString(color, "rgba");
|
42
|
+
}
|
43
|
+
else {
|
44
|
+
return this.toString(color, "rgba");
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}
|
48
|
+
}
|
49
|
+
;
|
50
|
+
static isValid(color) {
|
51
|
+
const _color = tinycolor(color);
|
52
|
+
return _color.isValid();
|
53
|
+
}
|
54
|
+
;
|
55
|
+
static mix(baseColor, hex, percentage) {
|
56
|
+
return tinycolor.mix(baseColor, hex, percentage).toString('rgb');
|
57
|
+
}
|
58
|
+
static multiply(color1, color2) {
|
59
|
+
let rgb1 = tinycolor(color1).toRgb();
|
60
|
+
let rgb2 = tinycolor(color2).toRgb();
|
61
|
+
rgb1.b = Math.floor(rgb1.b * rgb2.b / 255);
|
62
|
+
rgb1.g = Math.floor(rgb1.g * rgb2.g / 255);
|
63
|
+
rgb1.r = Math.floor(rgb1.r * rgb2.r / 255);
|
64
|
+
return tinycolor('rgb ' + rgb1.r + ' ' + rgb1.g + ' ' + rgb1.b).toString('rgb');
|
65
|
+
}
|
66
|
+
static contrastToWhite(color) {
|
67
|
+
return tinycolor.readability("#fff", color);
|
68
|
+
}
|
69
|
+
;
|
70
|
+
static lighten(hex, percentage) {
|
71
|
+
return tinycolor(hex).lighten(percentage);
|
72
|
+
}
|
73
|
+
static darken(hex, percentage) {
|
74
|
+
return tinycolor(hex).darken(percentage);
|
75
|
+
}
|
76
|
+
static brighten(hex, percentage) {
|
77
|
+
return tinycolor(hex).brighten(percentage);
|
78
|
+
}
|
79
|
+
static saturate(hex, percentage) {
|
80
|
+
return tinycolor(hex).saturate(percentage);
|
81
|
+
}
|
82
|
+
static desaturate(hex, percentage) {
|
83
|
+
return tinycolor(hex).getLuminance();
|
84
|
+
}
|
85
|
+
static equal(color1, color2) {
|
86
|
+
return tinycolor.equals(color1, color2);
|
87
|
+
}
|
88
|
+
static gradient(values) {
|
89
|
+
return tinygradient([...values]);
|
90
|
+
}
|
91
|
+
static xyToRgb(vX, vY) {
|
92
|
+
vY = vY || 0.00000000001;
|
93
|
+
const Y = 1;
|
94
|
+
const X = (Y / vY) * vX;
|
95
|
+
const Z = (Y / vY) * (1 - vX - vY);
|
96
|
+
// Convert to RGB using Wide RGB D65 conversion.
|
97
|
+
let rgb = [
|
98
|
+
X * 1.656492 - Y * 0.354851 - Z * 0.255038,
|
99
|
+
-X * 0.707196 + Y * 1.655397 + Z * 0.036152,
|
100
|
+
X * 0.051713 - Y * 0.121364 + Z * 1.011530
|
101
|
+
];
|
102
|
+
// Apply reverse gamma correction.
|
103
|
+
rgb = rgb.map(x => x <= 0.0031308 ? 12.92 * x : (1.0 + 0.055) * Math.pow(x, 1.0 / 2.4) - 0.055);
|
104
|
+
// Bring all negative components to zero.
|
105
|
+
rgb = rgb.map(x => Math.max(0, x));
|
106
|
+
// If one component is greater than 1, weight components by that value.
|
107
|
+
const max = Math.max(...rgb);
|
108
|
+
if (max > 1) {
|
109
|
+
rgb = rgb.map(x => x / max);
|
110
|
+
}
|
111
|
+
rgb = rgb.map(x => Math.round(x * 255));
|
112
|
+
return 'rgb(' + rgb.join(',') + ')';
|
113
|
+
}
|
114
|
+
}
|
115
115
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL3V0aWxzL3NyYy9jb2xvci11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sU0FBeUIsTUFBTSxZQUFZLENBQUM7QUFDbkQsT0FBTyxZQUFZLE1BQU0sY0FBYyxDQUFBO0FBSXZDLE1BQU0sT0FBTyxXQUFXO0lBR3BCLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBb0IsRUFBRSxJQUFpQjtRQUU3QyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDL0IsUUFBUSxJQUFJLEVBQUU7WUFDVixLQUFLLE1BQU07Z0JBQUUsQ0FBQztnQkFDVixPQUFPLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMxQixLQUFLLE1BQU07Z0JBQ1AsT0FBTyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUIsS0FBSyxNQUFNO2dCQUNQLE9BQU8sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzFCO2dCQUNJLE9BQU8sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzdCO0lBQ0wsQ0FBQztJQUFBLENBQUM7SUFFRixNQUFNLENBQUMsUUFBUSxDQUFDLEtBQW9CLEVBQUUsT0FBb0IsSUFBSTtRQUMxRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDL0IsUUFBUSxJQUFJLEVBQUU7WUFDVixLQUFLLE1BQU07Z0JBQ1AsT0FBTyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDaEMsS0FBSyxNQUFNO2dCQUNQLE9BQU8sTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2hDLEtBQUssTUFBTTtnQkFDUCxPQUFPLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNoQyxLQUFLLE1BQU07Z0JBQ1AsT0FBTyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDaEMsS0FBSyxLQUFLO2dCQUNOO29CQUNJLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDNUIsT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7aUJBQ3JFO1lBQ0w7Z0JBQ0k7b0JBQ0ksSUFBSSxPQUFPLEtBQUssSUFBSSxRQUFRLEVBQUU7d0JBQzFCLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7NEJBQ25DLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7OzRCQUVuQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO3FCQUMzQzt5QkFDSTt3QkFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO3FCQUN2QztpQkFDSjtTQUNSO0lBQ0wsQ0FBQztJQUFBLENBQUM7SUFFRixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQW9CO1FBQy9CLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMvQixPQUFPLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBQUEsQ0FBQztJQUVGLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBd0IsRUFBRSxHQUFrQixFQUFFLFVBQWtCO1FBQ3ZFLE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFxQixFQUFFLE1BQXFCO1FBQ3hELElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNyQyxJQUFJLElBQUksR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDM0MsT0FBTyxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBb0I7UUFDdkMsT0FBTyxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQUEsQ0FBQztJQUVGLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBa0IsRUFBRSxVQUFtQjtRQUNsRCxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDN0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBa0IsRUFBRSxVQUFtQjtRQUNqRCxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBa0IsRUFBRSxVQUFtQjtRQUNuRCxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBa0IsRUFBRSxVQUFtQjtRQUNuRCxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBa0IsRUFBRSxVQUFtQjtRQUNyRCxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUN4QyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFxQixFQUFFLE1BQXFCO1FBQ3JELE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBNkM7UUFDekQsT0FBTyxZQUFZLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUE7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUU7UUFDakIsRUFBRSxHQUFHLEVBQUUsSUFBSSxhQUFhLENBQUM7UUFDekIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1osTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUVuQyxnREFBZ0Q7UUFDaEQsSUFBSSxHQUFHLEdBQUc7WUFDTixDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxHQUFHLFFBQVE7WUFDMUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxHQUFHLFFBQVE7WUFDM0MsQ0FBQyxHQUFHLFFBQVEsR0FBRyxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsR0FBRyxRQUFRO1NBQzdDLENBQUM7UUFFRixrQ0FBa0M7UUFDbEMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDZCxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUM5RSxDQUFDO1FBRUYseUNBQXlDO1FBQ3pDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVuQyx1RUFBdUU7UUFDdkUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRTtZQUNULEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1NBQy9CO1FBRUQsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXhDLE9BQU8sTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ3hDLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEFYQ29sb3JNb2RlID0gJ3JnYmEnIHwgJ2hleCcgfCAnaHNsYScgfCAnaHN2YSc7XHJcblxyXG5pbXBvcnQgdGlueWNvbG9yLCB7IENvbG9ySW5wdXQgfSBmcm9tICd0aW55Y29sb3IyJztcclxuaW1wb3J0IHRpbnlncmFkaWVudCBmcm9tICd0aW55Z3JhZGllbnQnXHJcblxyXG5leHBvcnQgdHlwZSBBWENvbG9yRm9ybWF0ID0gQ29sb3JJbnB1dDtcclxuXHJcbmV4cG9ydCBjbGFzcyBBWENvbG9yVXRpbCB7XHJcblxyXG5cclxuICAgIHN0YXRpYyB0byhjb2xvcjogQVhDb2xvckZvcm1hdCwgbW9kZTogQVhDb2xvck1vZGUpOiBBWENvbG9yRm9ybWF0IHtcclxuXHJcbiAgICAgICAgY29uc3QgX2NvbG9yID0gdGlueWNvbG9yKGNvbG9yKVxyXG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xyXG4gICAgICAgICAgICBjYXNlICdyZ2JhJzogO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9jb2xvci50b1JnYigpO1xyXG4gICAgICAgICAgICBjYXNlICdoc2xhJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiBfY29sb3IudG9Ic2woKTtcclxuICAgICAgICAgICAgY2FzZSAnaHN2YSc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbG9yLnRvSHN2KCk7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbG9yLnRvSGV4KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBzdGF0aWMgdG9TdHJpbmcoY29sb3I6IEFYQ29sb3JGb3JtYXQsIG1vZGU6IEFYQ29sb3JNb2RlID0gbnVsbCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgX2NvbG9yID0gdGlueWNvbG9yKGNvbG9yKVxyXG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xyXG4gICAgICAgICAgICBjYXNlICdyZ2JhJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiBfY29sb3IudG9SZ2JTdHJpbmcoKTtcclxuICAgICAgICAgICAgY2FzZSAnaHNsYSc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbG9yLnRvSHNsU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIGNhc2UgJ2hzdmEnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9jb2xvci50b0hzdlN0cmluZygpO1xyXG4gICAgICAgICAgICBjYXNlICdoc3ZhJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiBfY29sb3IudG9Ic3ZTdHJpbmcoKTtcclxuICAgICAgICAgICAgY2FzZSAnaGV4JzpcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZ2JhID0gX2NvbG9yLnRvUmdiKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJnYmEuYSAhPSAxID8gX2NvbG9yLnRvSGV4OFN0cmluZygpIDogX2NvbG9yLnRvSGV4U3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb2xvciA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29sb3IudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKFwiI1wiKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvU3RyaW5nKGNvbG9yLCBcImhleFwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9TdHJpbmcoY29sb3IsIFwicmdiYVwiKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvU3RyaW5nKGNvbG9yLCBcInJnYmFcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgc3RhdGljIGlzVmFsaWQoY29sb3I6IEFYQ29sb3JGb3JtYXQpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBfY29sb3IgPSB0aW55Y29sb3IoY29sb3IpXHJcbiAgICAgICAgcmV0dXJuIF9jb2xvci5pc1ZhbGlkKCk7XHJcbiAgICB9O1xyXG5cclxuICAgIHN0YXRpYyBtaXgoYmFzZUNvbG9yOiBBWENvbG9yRm9ybWF0LCBoZXg6IEFYQ29sb3JGb3JtYXQsIHBlcmNlbnRhZ2U6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRpbnljb2xvci5taXgoYmFzZUNvbG9yLCBoZXgsIHBlcmNlbnRhZ2UpLnRvU3RyaW5nKCdyZ2InKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgbXVsdGlwbHkoY29sb3IxOiBBWENvbG9yRm9ybWF0LCBjb2xvcjI6IEFYQ29sb3JGb3JtYXQpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCByZ2IxID0gdGlueWNvbG9yKGNvbG9yMSkudG9SZ2IoKTtcclxuICAgICAgICBsZXQgcmdiMiA9IHRpbnljb2xvcihjb2xvcjIpLnRvUmdiKCk7XHJcbiAgICAgICAgcmdiMS5iID0gTWF0aC5mbG9vcihyZ2IxLmIgKiByZ2IyLmIgLyAyNTUpO1xyXG4gICAgICAgIHJnYjEuZyA9IE1hdGguZmxvb3IocmdiMS5nICogcmdiMi5nIC8gMjU1KTtcclxuICAgICAgICByZ2IxLnIgPSBNYXRoLmZsb29yKHJnYjEuciAqIHJnYjIuciAvIDI1NSk7XHJcbiAgICAgICAgcmV0dXJuIHRpbnljb2xvcigncmdiICcgKyByZ2IxLnIgKyAnICcgKyByZ2IxLmcgKyAnICcgKyByZ2IxLmIpLnRvU3RyaW5nKCdyZ2InKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgY29udHJhc3RUb1doaXRlKGNvbG9yOiBBWENvbG9yRm9ybWF0KTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGlueWNvbG9yLnJlYWRhYmlsaXR5KFwiI2ZmZlwiLCBjb2xvcik7XHJcbiAgICB9O1xyXG5cclxuICAgIHN0YXRpYyBsaWdodGVuKGhleDogQVhDb2xvckZvcm1hdCwgcGVyY2VudGFnZT86IG51bWJlcikge1xyXG4gICAgICAgIHJldHVybiB0aW55Y29sb3IoaGV4KS5saWdodGVuKHBlcmNlbnRhZ2UpXHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGRhcmtlbihoZXg6IEFYQ29sb3JGb3JtYXQsIHBlcmNlbnRhZ2U/OiBudW1iZXIpIHtcclxuICAgICAgICByZXR1cm4gdGlueWNvbG9yKGhleCkuZGFya2VuKHBlcmNlbnRhZ2UpXHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGJyaWdodGVuKGhleDogQVhDb2xvckZvcm1hdCwgcGVyY2VudGFnZT86IG51bWJlcikge1xyXG4gICAgICAgIHJldHVybiB0aW55Y29sb3IoaGV4KS5icmlnaHRlbihwZXJjZW50YWdlKVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBzYXR1cmF0ZShoZXg6IEFYQ29sb3JGb3JtYXQsIHBlcmNlbnRhZ2U/OiBudW1iZXIpIHtcclxuICAgICAgICByZXR1cm4gdGlueWNvbG9yKGhleCkuc2F0dXJhdGUocGVyY2VudGFnZSlcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZGVzYXR1cmF0ZShoZXg6IEFYQ29sb3JGb3JtYXQsIHBlcmNlbnRhZ2U/OiBudW1iZXIpIHtcclxuICAgICAgICByZXR1cm4gdGlueWNvbG9yKGhleCkuZ2V0THVtaW5hbmNlKClcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZXF1YWwoY29sb3IxOiBBWENvbG9yRm9ybWF0LCBjb2xvcjI6IEFYQ29sb3JGb3JtYXQpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGlueWNvbG9yLmVxdWFscyhjb2xvcjEsIGNvbG9yMik7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdyYWRpZW50KHZhbHVlczogYW55W10gfCB7IGNvbG9yOiBhbnksIHBvczogbnVtYmVyIH1bXSk6IHRpbnlncmFkaWVudC5JbnN0YW5jZSB7XHJcbiAgICAgICAgcmV0dXJuIHRpbnlncmFkaWVudChbLi4udmFsdWVzXSlcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgeHlUb1JnYih2WCwgdlkpOiBzdHJpbmcge1xyXG4gICAgICAgIHZZID0gdlkgfHwgMC4wMDAwMDAwMDAwMTtcclxuICAgICAgICBjb25zdCBZID0gMTtcclxuICAgICAgICBjb25zdCBYID0gKFkgLyB2WSkgKiB2WDtcclxuICAgICAgICBjb25zdCBaID0gKFkgLyB2WSkgKiAoMSAtIHZYIC0gdlkpO1xyXG5cclxuICAgICAgICAvLyBDb252ZXJ0IHRvIFJHQiB1c2luZyBXaWRlIFJHQiBENjUgY29udmVyc2lvbi5cclxuICAgICAgICBsZXQgcmdiID0gW1xyXG4gICAgICAgICAgICBYICogMS42NTY0OTIgLSBZICogMC4zNTQ4NTEgLSBaICogMC4yNTUwMzgsXHJcbiAgICAgICAgICAgIC1YICogMC43MDcxOTYgKyBZICogMS42NTUzOTcgKyBaICogMC4wMzYxNTIsXHJcbiAgICAgICAgICAgIFggKiAwLjA1MTcxMyAtIFkgKiAwLjEyMTM2NCArIFogKiAxLjAxMTUzMFxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIC8vIEFwcGx5IHJldmVyc2UgZ2FtbWEgY29ycmVjdGlvbi5cclxuICAgICAgICByZ2IgPSByZ2IubWFwKHggPT5cclxuICAgICAgICAgICAgeCA8PSAwLjAwMzEzMDggPyAxMi45MiAqIHggOiAoMS4wICsgMC4wNTUpICogTWF0aC5wb3coeCwgMS4wIC8gMi40KSAtIDAuMDU1XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgLy8gQnJpbmcgYWxsIG5lZ2F0aXZlIGNvbXBvbmVudHMgdG8gemVyby5cclxuICAgICAgICByZ2IgPSByZ2IubWFwKHggPT4gTWF0aC5tYXgoMCwgeCkpO1xyXG5cclxuICAgICAgICAvLyBJZiBvbmUgY29tcG9uZW50IGlzIGdyZWF0ZXIgdGhhbiAxLCB3ZWlnaHQgY29tcG9uZW50cyBieSB0aGF0IHZhbHVlLlxyXG4gICAgICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KC4uLnJnYik7XHJcbiAgICAgICAgaWYgKG1heCA+IDEpIHtcclxuICAgICAgICAgICAgcmdiID0gcmdiLm1hcCh4ID0+IHggLyBtYXgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmdiID0gcmdiLm1hcCh4ID0+IE1hdGgucm91bmQoeCAqIDI1NSkpO1xyXG5cclxuICAgICAgICByZXR1cm4gJ3JnYignICsgcmdiLmpvaW4oJywnKSArICcpJztcclxuICAgIH1cclxuXHJcbn0iXX0=
|
@@ -1,30 +1,30 @@
|
|
1
|
-
// @dynamic
|
2
|
-
export class AXDrawingUtil {
|
3
|
-
static collision(a, b) {
|
4
|
-
const ac = a.getBoundingClientRect();
|
5
|
-
const bc = b.getBoundingClientRect();
|
6
|
-
if (ac.left < bc.left + bc.width && ac.left + ac.width > bc.left &&
|
7
|
-
ac.top < bc.top + bc.height && ac.top + ac.height > bc.top) {
|
8
|
-
return true;
|
9
|
-
}
|
10
|
-
else {
|
11
|
-
return false;
|
12
|
-
}
|
13
|
-
}
|
14
|
-
static isInElementBound(pos, element) {
|
15
|
-
const elBound = element.getBoundingClientRect();
|
16
|
-
return AXDrawingUtil.isInRecPoint(pos, {
|
17
|
-
left: elBound.x,
|
18
|
-
width: elBound.width,
|
19
|
-
top: elBound.y,
|
20
|
-
height: elBound.height
|
21
|
-
});
|
22
|
-
}
|
23
|
-
static isInRecPoint(pos, rec) {
|
24
|
-
return pos.x >= rec.left && pos.x <= (rec.left + rec.width) && pos.y >= rec.top && (pos.y <= (rec.top + rec.height));
|
25
|
-
}
|
26
|
-
static convertRemToPixels(rem) {
|
27
|
-
return rem * parseFloat(getComputedStyle(document.documentElement).fontSize);
|
28
|
-
}
|
29
|
-
}
|
1
|
+
// @dynamic
|
2
|
+
export class AXDrawingUtil {
|
3
|
+
static collision(a, b) {
|
4
|
+
const ac = a.getBoundingClientRect();
|
5
|
+
const bc = b.getBoundingClientRect();
|
6
|
+
if (ac.left < bc.left + bc.width && ac.left + ac.width > bc.left &&
|
7
|
+
ac.top < bc.top + bc.height && ac.top + ac.height > bc.top) {
|
8
|
+
return true;
|
9
|
+
}
|
10
|
+
else {
|
11
|
+
return false;
|
12
|
+
}
|
13
|
+
}
|
14
|
+
static isInElementBound(pos, element) {
|
15
|
+
const elBound = element.getBoundingClientRect();
|
16
|
+
return AXDrawingUtil.isInRecPoint(pos, {
|
17
|
+
left: elBound.x,
|
18
|
+
width: elBound.width,
|
19
|
+
top: elBound.y,
|
20
|
+
height: elBound.height
|
21
|
+
});
|
22
|
+
}
|
23
|
+
static isInRecPoint(pos, rec) {
|
24
|
+
return pos.x >= rec.left && pos.x <= (rec.left + rec.width) && pos.y >= rec.top && (pos.y <= (rec.top + rec.height));
|
25
|
+
}
|
26
|
+
static convertRemToPixels(rem) {
|
27
|
+
return rem * parseFloat(getComputedStyle(document.documentElement).fontSize);
|
28
|
+
}
|
29
|
+
}
|
30
30
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2luZy11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvdXRpbHMvc3JjL2RyYXdpbmctdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhQSxXQUFXO0FBQ1gsTUFBTSxPQUFPLGFBQWE7SUFDdEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFjLEVBQUUsQ0FBYztRQUMzQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNyQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUVyQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsSUFBSTtZQUM1RCxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRTtZQUM1RCxPQUFPLElBQUksQ0FBQztTQUNmO2FBQ0k7WUFDRCxPQUFPLEtBQUssQ0FBQztTQUNoQjtJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsR0FBWSxFQUFFLE9BQW9CO1FBQ3RELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2hELE9BQU8sYUFBYSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUU7WUFDbkMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2YsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNkLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtTQUN6QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFZLEVBQUUsR0FBK0I7UUFDN0QsT0FBTyxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3pILENBQUM7SUFFRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsR0FBVztRQUNqQyxPQUFPLEdBQUcsR0FBRyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQVhQb2ludCB7XHJcbiAgICB4OiBudW1iZXI7XHJcbiAgICB5OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhCb3VuZGluZ0NsaWVudFJlY3Qge1xyXG4gICAgbGVmdD86IG51bWJlcjtcclxuICAgIHRvcD86IG51bWJlcjtcclxuICAgIHdpZHRoPzogbnVtYmVyO1xyXG4gICAgaGVpZ2h0PzogbnVtYmVyO1xyXG4gICAgYm90dG9tPzogbnVtYmVyO1xyXG4gICAgcmlnaHQ/OiBudW1iZXI7XHJcbn1cclxuLy8gQGR5bmFtaWNcclxuZXhwb3J0IGNsYXNzIEFYRHJhd2luZ1V0aWwge1xyXG4gICAgc3RhdGljIGNvbGxpc2lvbihhOiBIVE1MRWxlbWVudCwgYjogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBhYyA9IGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgY29uc3QgYmMgPSBiLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cclxuICAgICAgICBpZiAoYWMubGVmdCA8IGJjLmxlZnQgKyBiYy53aWR0aCAmJiBhYy5sZWZ0ICsgYWMud2lkdGggPiBiYy5sZWZ0ICYmXHJcbiAgICAgICAgICAgIGFjLnRvcCA8IGJjLnRvcCArIGJjLmhlaWdodCAmJiBhYy50b3AgKyBhYy5oZWlnaHQgPiBiYy50b3ApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc0luRWxlbWVudEJvdW5kKHBvczogQVhQb2ludCwgZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBlbEJvdW5kID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICByZXR1cm4gQVhEcmF3aW5nVXRpbC5pc0luUmVjUG9pbnQocG9zLCB7XHJcbiAgICAgICAgICAgIGxlZnQ6IGVsQm91bmQueCxcclxuICAgICAgICAgICAgd2lkdGg6IGVsQm91bmQud2lkdGgsXHJcbiAgICAgICAgICAgIHRvcDogZWxCb3VuZC55LFxyXG4gICAgICAgICAgICBoZWlnaHQ6IGVsQm91bmQuaGVpZ2h0XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzSW5SZWNQb2ludChwb3M6IEFYUG9pbnQsIHJlYzogQVhCb3VuZGluZ0NsaWVudFJlY3QgfCBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gcG9zLnggPj0gcmVjLmxlZnQgJiYgcG9zLnggPD0gKHJlYy5sZWZ0ICsgcmVjLndpZHRoKSAmJiBwb3MueSA+PSByZWMudG9wICYmIChwb3MueSA8PSAocmVjLnRvcCArIHJlYy5oZWlnaHQpKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgY29udmVydFJlbVRvUGl4ZWxzKHJlbTogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gcmVtICogcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuZm9udFNpemUpO1xyXG4gICAgfVxyXG5cclxufSJdfQ==
|
@@ -1,16 +1,16 @@
|
|
1
|
-
// @dynamic
|
2
|
-
export class AXHtmlUtil {
|
3
|
-
static focusElement(element) {
|
4
|
-
const list = ['button', 'input', '[href]', 'select', 'textarea', '[tabindex]'].map(c => c + ':not([tabindex="-1"])');
|
5
|
-
const focusable = element.querySelector(list.join(', '));
|
6
|
-
if (focusable) {
|
7
|
-
focusable.focus();
|
8
|
-
return focusable;
|
9
|
-
}
|
10
|
-
return null;
|
11
|
-
}
|
12
|
-
static hasFocus(element) {
|
13
|
-
return element.matches(':focus-within') || element.matches(':focus');
|
14
|
-
}
|
15
|
-
}
|
1
|
+
// @dynamic
|
2
|
+
export class AXHtmlUtil {
|
3
|
+
static focusElement(element) {
|
4
|
+
const list = ['button', 'input', '[href]', 'select', 'textarea', '[tabindex]'].map(c => c + ':not([tabindex="-1"])');
|
5
|
+
const focusable = element.querySelector(list.join(', '));
|
6
|
+
if (focusable) {
|
7
|
+
focusable.focus();
|
8
|
+
return focusable;
|
9
|
+
}
|
10
|
+
return null;
|
11
|
+
}
|
12
|
+
static hasFocus(element) {
|
13
|
+
return element.matches(':focus-within') || element.matches(':focus');
|
14
|
+
}
|
15
|
+
}
|
16
16
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvdXRpbHMvc3JjL2h0bWwtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxXQUFXO0FBQ1gsTUFBTSxPQUFPLFVBQVU7SUFDbkIsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFvQjtRQUNwQyxNQUFNLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLHVCQUF1QixDQUFDLENBQUM7UUFDckgsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxTQUFTLEVBQUU7WUFDWCxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbEIsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBR0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFvQjtRQUVoQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6RSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgQVhIdG1sVXRpbCB7XHJcbiAgICBzdGF0aWMgZm9jdXNFbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQge1xyXG4gICAgICAgIGNvbnN0IGxpc3QgPSBbJ2J1dHRvbicsICdpbnB1dCcsICdbaHJlZl0nLCAnc2VsZWN0JywgJ3RleHRhcmVhJywgJ1t0YWJpbmRleF0nXS5tYXAoYyA9PiBjICsgJzpub3QoW3RhYmluZGV4PVwiLTFcIl0pJyk7XHJcbiAgICAgICAgY29uc3QgZm9jdXNhYmxlID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihsaXN0LmpvaW4oJywgJykpO1xyXG4gICAgICAgIGlmIChmb2N1c2FibGUpIHtcclxuICAgICAgICAgICAgZm9jdXNhYmxlLmZvY3VzKCk7XHJcbiAgICAgICAgICAgIHJldHVybiBmb2N1c2FibGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBzdGF0aWMgaGFzRm9jdXMoZWxlbWVudDogSFRNTEVsZW1lbnQpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQubWF0Y2hlcygnOmZvY3VzLXdpdGhpbicpIHx8IGVsZW1lbnQubWF0Y2hlcygnOmZvY3VzJyk7XHJcbiAgICB9XHJcbn0iXX0=
|
@@ -1,39 +1,39 @@
|
|
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
|
-
}
|
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
39
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS91dGlscy9zcmMvb2JqZWN0LXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsV0FBVztBQUNYLE1BQU0sT0FBTyxZQUFZO0lBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBUTtRQUN6QixPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN4RCxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHO1FBQ2YsSUFBSSxJQUFJLENBQUM7UUFDVCxtREFBbUQ7UUFDbkQsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLFFBQVEsS0FBSyxPQUFPLEdBQUcsRUFBRTtZQUFFLE9BQU8sR0FBRyxDQUFDO1NBQUU7UUFDM0QsY0FBYztRQUNkLElBQUksR0FBRyxZQUFZLElBQUksRUFBRTtZQUNyQixJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQzVCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxlQUFlO1FBQ2YsSUFBSSxHQUFHLFlBQVksS0FBSyxFQUFFO1lBQ3RCLElBQUksR0FBRyxFQUFFLENBQUM7WUFDVixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUM1QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMzQztZQUNELE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxnQkFBZ0I7UUFDaEIsSUFBSSxHQUFHLFlBQVksTUFBTSxFQUFFO1lBQ3ZCLElBQUksR0FBRyxFQUFFLENBQUM7WUFDVixLQUFLLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRTtnQkFDcEIsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUFFO2FBQ25GO1lBQ0QsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztJQUN0RSxDQUFDO0NBZ0RKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQGR5bmFtaWNcclxuZXhwb3J0IGNsYXNzIEFYT2JqZWN0VXRpbCB7XHJcbiAgICBzdGF0aWMgZGVlcEpTT05DbG9uZShvYmo6IGFueSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIG9iaiA/IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob2JqKSkgOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBkZWVwQ29weShvYmopIHtcclxuICAgICAgICBsZXQgY29weTtcclxuICAgICAgICAvLyBIYW5kbGUgdGhlIDMgc2ltcGxlIHR5cGVzLCBhbmQgbnVsbCBvciB1bmRlZmluZWRcclxuICAgICAgICBpZiAobnVsbCA9PSBvYmogfHwgJ29iamVjdCcgIT09IHR5cGVvZiBvYmopIHsgcmV0dXJuIG9iajsgfVxyXG4gICAgICAgIC8vIEhhbmRsZSBEYXRlXHJcbiAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICAgICAgY29weSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgICAgIGNvcHkuc2V0VGltZShvYmouZ2V0VGltZSgpKTtcclxuICAgICAgICAgICAgcmV0dXJuIGNvcHk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEhhbmRsZSBBcnJheVxyXG4gICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICBjb3B5ID0gW107XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBvYmoubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGNvcHlbaV0gPSBBWE9iamVjdFV0aWwuZGVlcENvcHkob2JqW2ldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gY29weTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gSGFuZGxlIE9iamVjdFxyXG4gICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBPYmplY3QpIHtcclxuICAgICAgICAgICAgY29weSA9IHt9O1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGF0dHIgaW4gb2JqKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGF0dHIpKSB7IGNvcHlbYXR0cl0gPSBBWE9iamVjdFV0aWwuZGVlcENvcHkob2JqW2F0dHJdKTsgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBjb3B5O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBjb3B5IG9iaiEgSXRzIHR5cGUgaXNuXFwndCBzdXBwb3J0ZWQuJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gc3RhdGljIGZldGNoUHJvcChvYmosIHByb3A6IHN0cmluZykge1xyXG4gICAgLy8gICAgIGlmICh0eXBlb2Ygb2JqID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgLy8gICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIGNvbnN0IGluZGV4ID0gcHJvcC5pbmRleE9mKCcuJyk7XHJcblxyXG4gICAgLy8gICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAvLyAgICAgICAgIHJldHVybiBBWE9iamVjdFV0aWwuZmV0Y2hQcm9wKG9ialtwcm9wLnN1YnN0cmluZygwLCBpbmRleCldLCBwcm9wLnN1YnN0cihpbmRleCArIDEpKTtcclxuICAgIC8vICAgICB9XHJcblxyXG4gICAgLy8gICAgIHJldHVybiBvYmpbcHJvcF07XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gc3RhdGljIGdldFByb3BCeVBhdGgob2JqLCBwYXRoLCBkZWZhdWx0VmFsPykge1xyXG4gICAgLy8gICAgIHBhdGggPSBwYXRoXHJcbiAgICAvLyAgICAgICAgIC5yZXBsYWNlKC9cXFsvZywgJy4nKVxyXG4gICAgLy8gICAgICAgICAucmVwbGFjZSgvXS9nLCAnJylcclxuICAgIC8vICAgICAgICAgLnNwbGl0KCcuJyk7XHJcblxyXG4gICAgLy8gICAgIHBhdGguZm9yRWFjaCgobGV2ZWwpID0+IHtcclxuICAgIC8vICAgICAgICAgaWYgKG9iaikge1xyXG4gICAgLy8gICAgICAgICAgICAgb2JqID0gb2JqW2xldmVsXTtcclxuICAgIC8vICAgICAgICAgfVxyXG4gICAgLy8gICAgIH0pO1xyXG5cclxuICAgIC8vICAgICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcclxuICAgIC8vICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWw7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIHJldHVybiBvYmo7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gc3RhdGljIHNldFByb3BCeVBhdGgob2JqLCBwYXRoLCB2YWx1ZSkge1xyXG4gICAgLy8gICAgIGlmIChPYmplY3Qob2JqKSAhPT0gb2JqKSB7IHJldHVybiBvYmo7IH0gLy8gV2hlbiBvYmogaXMgbm90IGFuIG9iamVjdFxyXG4gICAgLy8gICAgIC8vIElmIG5vdCB5ZXQgYW4gYXJyYXksIGdldCB0aGUga2V5cyBmcm9tIHRoZSBzdHJpbmctcGF0aFxyXG4gICAgLy8gICAgIGlmICghQXJyYXkuaXNBcnJheShwYXRoKSkgeyBwYXRoID0gcGF0aC50b1N0cmluZygpLm1hdGNoKC9bXi5bXFxdXSsvZykgfHwgW107IH1cclxuICAgIC8vICAgICBwYXRoLnNsaWNlKDAsIC0xKS5yZWR1Y2UoKGEsIGMsIGkpID0+IC8vIEl0ZXJhdGUgYWxsIG9mIHRoZW0gZXhjZXB0IHRoZSBsYXN0IG9uZVxyXG4gICAgLy8gICAgICAgICBPYmplY3QoYVtjXSkgPT09IGFbY10gLy8gRG9lcyB0aGUga2V5IGV4aXN0IGFuZCBpcyBpdHMgdmFsdWUgYW4gb2JqZWN0P1xyXG4gICAgLy8gICAgICAgICAgICAgLy8gWWVzOiB0aGVuIGZvbGxvdyB0aGF0IHBhdGhcclxuICAgIC8vICAgICAgICAgICAgID8gYVtjXVxyXG4gICAgLy8gICAgICAgICAgICAgLy8gTm86IGNyZWF0ZSB0aGUga2V5LiBJcyB0aGUgbmV4dCBrZXkgYSBwb3RlbnRpYWwgYXJyYXktaW5kZXg/XHJcbiAgICAvLyAgICAgICAgICAgICA6IGFbY10gPSBNYXRoLmFicyhwYXRoW2kgKyAxXSkgPj4gMCA9PT0gK3BhdGhbaSArIDFdXHJcbiAgICAvLyAgICAgICAgICAgICAgICAgPyBbXSAvLyBZZXM6IGFzc2lnbiBhIG5ldyBhcnJheSBvYmplY3RcclxuICAgIC8vICAgICAgICAgICAgICAgICA6IHt9LCAvLyBObzogYXNzaWduIGEgbmV3IHBsYWluIG9iamVjdFxyXG4gICAgLy8gICAgICAgICBvYmopW3BhdGhbcGF0aC5sZW5ndGggLSAxXV0gPSB2YWx1ZTsgLy8gRmluYWxseSBhc3NpZ24gdGhlIHZhbHVlIHRvIHRoZSBsYXN0IGtleVxyXG4gICAgLy8gICAgIHJldHVybiBvYmo7IC8vIFJldHVybiB0aGUgdG9wLWxldmVsIG9iamVjdCB0byBhbGxvdyBjaGFpbmluZ1xyXG4gICAgLy8gfVxyXG59Il19
|
@@ -1,19 +1,19 @@
|
|
1
|
-
// @dynamic
|
2
|
-
export class AXStringUtil {
|
3
|
-
static getWordBoundsAtPosition(str, position) {
|
4
|
-
const isSpace = (c) => /[^a-zA-Z0-9]+/i.test(c);
|
5
|
-
let start = position - 1;
|
6
|
-
while (start >= 0 && !isSpace(str[start])) {
|
7
|
-
start -= 1;
|
8
|
-
}
|
9
|
-
start = Math.max(0, start + 1);
|
10
|
-
const leftSideString = str.slice(start).match(/[a-zA-Z0-9]+/i);
|
11
|
-
start += leftSideString.index;
|
12
|
-
let end = start + leftSideString[0].length;
|
13
|
-
return {
|
14
|
-
start,
|
15
|
-
end
|
16
|
-
};
|
17
|
-
}
|
18
|
-
}
|
1
|
+
// @dynamic
|
2
|
+
export class AXStringUtil {
|
3
|
+
static getWordBoundsAtPosition(str, position) {
|
4
|
+
const isSpace = (c) => /[^a-zA-Z0-9]+/i.test(c);
|
5
|
+
let start = position - 1;
|
6
|
+
while (start >= 0 && !isSpace(str[start])) {
|
7
|
+
start -= 1;
|
8
|
+
}
|
9
|
+
start = Math.max(0, start + 1);
|
10
|
+
const leftSideString = str.slice(start).match(/[a-zA-Z0-9]+/i);
|
11
|
+
start += leftSideString.index;
|
12
|
+
let end = start + leftSideString[0].length;
|
13
|
+
return {
|
14
|
+
start,
|
15
|
+
end
|
16
|
+
};
|
17
|
+
}
|
18
|
+
}
|
19
19
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS91dGlscy9zcmMvc3RyaW5nLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsV0FBVztBQUNYLE1BQU0sT0FBTyxZQUFZO0lBRXJCLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxHQUFXLEVBQUUsUUFBZ0I7UUFDeEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRCxJQUFJLEtBQUssR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBRXpCLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUN2QyxLQUFLLElBQUksQ0FBQyxDQUFDO1NBQ2Q7UUFDRCxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sY0FBYyxHQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25FLEtBQUssSUFBSSxjQUFjLENBQUMsS0FBSyxDQUFDO1FBQzlCLElBQUksR0FBRyxHQUFHLEtBQUssR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQzNDLE9BQU87WUFDSCxLQUFLO1lBQ0wsR0FBRztTQUNOLENBQUM7SUFDTixDQUFDO0NBTUoiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgQVhTdHJpbmdVdGlsIHtcclxuXHJcbiAgICBzdGF0aWMgZ2V0V29yZEJvdW5kc0F0UG9zaXRpb24oc3RyOiBzdHJpbmcsIHBvc2l0aW9uOiBudW1iZXIpOiB7IHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyIH0ge1xyXG4gICAgICAgIGNvbnN0IGlzU3BhY2UgPSAoYykgPT4gL1teYS16QS1aMC05XSsvaS50ZXN0KGMpO1xyXG4gICAgICAgIGxldCBzdGFydCA9IHBvc2l0aW9uIC0gMTtcclxuXHJcbiAgICAgICAgd2hpbGUgKHN0YXJ0ID49IDAgJiYgIWlzU3BhY2Uoc3RyW3N0YXJ0XSkpIHtcclxuICAgICAgICAgICAgc3RhcnQgLT0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgc3RhcnQgPSBNYXRoLm1heCgwLCBzdGFydCArIDEpO1xyXG4gICAgICAgIGNvbnN0IGxlZnRTaWRlU3RyaW5nOmFueSA9IHN0ci5zbGljZShzdGFydCkubWF0Y2goL1thLXpBLVowLTldKy9pKTtcclxuICAgICAgICBzdGFydCArPSBsZWZ0U2lkZVN0cmluZy5pbmRleDtcclxuICAgICAgICBsZXQgZW5kID0gc3RhcnQgKyBsZWZ0U2lkZVN0cmluZ1swXS5sZW5ndGg7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgc3RhcnQsXHJcbiAgICAgICAgICAgIGVuZFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxufSJdfQ==
|
package/events/index.d.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
/**
|
2
|
-
* Generated bundle index. Do not edit.
|
3
|
-
*/
|
4
|
-
/// <amd-module name="@acorex/core/events" />
|
5
|
-
export * from './public-api';
|
1
|
+
/**
|
2
|
+
* Generated bundle index. Do not edit.
|
3
|
+
*/
|
4
|
+
/// <amd-module name="@acorex/core/events" />
|
5
|
+
export * from './public-api';
|
package/events/public-api.d.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export * from './src/event.service';
|
1
|
+
export * from './src/event.service';
|
@@ -1,9 +1,9 @@
|
|
1
|
-
import * as i0 from "@angular/core";
|
2
|
-
export declare class AXEventService {
|
3
|
-
private list;
|
4
|
-
broadcast(key: string, options?: any): void;
|
5
|
-
on(key: string, callback: (options?: any) => void): void;
|
6
|
-
destroy(key: string, callback: (options?: any) => void): void;
|
7
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AXEventService, never>;
|
8
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<AXEventService>;
|
9
|
-
}
|
1
|
+
import * as i0 from "@angular/core";
|
2
|
+
export declare class AXEventService {
|
3
|
+
private list;
|
4
|
+
broadcast(key: string, options?: any): void;
|
5
|
+
on(key: string, callback: (options?: any) => void): void;
|
6
|
+
destroy(key: string, callback: (options?: any) => void): void;
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXEventService, never>;
|
8
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXEventService>;
|
9
|
+
}
|
@@ -1,32 +1,31 @@
|
|
1
1
|
import { set, merge, get } from 'lodash-es';
|
2
2
|
import { Subject } from 'rxjs';
|
3
3
|
|
4
|
-
// @dynamic
|
5
|
-
class AXConfig {
|
6
|
-
static
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
4
|
+
// @dynamic
|
5
|
+
class AXConfig {
|
6
|
+
static dataModel = {};
|
7
|
+
static dataChangeSubject = new Subject();
|
8
|
+
static get onChange() {
|
9
|
+
return AXConfig.dataChangeSubject.asObservable();
|
10
|
+
}
|
11
|
+
static set(arg1, arg2) {
|
12
|
+
if (arg1 && typeof arg1 == 'string') {
|
13
|
+
set(AXConfig.dataModel, arg1, arg2);
|
14
|
+
AXConfig.dataChangeSubject.next(AXConfig.dataModel);
|
15
|
+
}
|
16
|
+
if (arg1 && typeof arg1 == 'object') {
|
17
|
+
merge(AXConfig.dataModel, arg1);
|
18
|
+
AXConfig.dataChangeSubject.next(AXConfig.dataModel);
|
19
|
+
}
|
20
|
+
}
|
21
|
+
static get(path, defaultValue) {
|
22
|
+
return get(AXConfig.dataModel, path, defaultValue);
|
23
|
+
}
|
24
|
+
}
|
25
25
|
|
26
|
-
/**
|
27
|
-
* Generated bundle index. Do not edit.
|
26
|
+
/**
|
27
|
+
* Generated bundle index. Do not edit.
|
28
28
|
*/
|
29
29
|
|
30
30
|
export { AXConfig };
|
31
31
|
//# sourceMappingURL=acorex-core-config.mjs.map
|
32
|
-
//# sourceMappingURL=acorex-core-config.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-core-config.mjs","sources":["../../../../projects/acorex/core/config/src/configs.ts","../../../../projects/acorex/core/config/acorex-core-config.ts"],"sourcesContent":["import { get, set, merge } from 'lodash-es';\r\nimport { Subject, Observable } from 'rxjs';\r\n\r\n// @dynamic\r\nexport class AXConfig {\r\n private static dataModel: any = {};\r\n private static dataChangeSubject = new Subject<any>();\r\n\r\n static get onChange(): Observable<any> {\r\n return AXConfig.dataChangeSubject.asObservable();\r\n }\r\n\r\n static set(config: any): void;\r\n static set(path: string, value?: any): void;\r\n static set(arg1?: any, arg2?: any): void {\r\n if (arg1 && typeof arg1 == 'string') {\r\n set(AXConfig.dataModel, arg1, arg2);\r\n AXConfig.dataChangeSubject.next(AXConfig.dataModel);\r\n }\r\n if (arg1 && typeof arg1 == 'object') {\r\n merge(AXConfig.dataModel, arg1);\r\n AXConfig.dataChangeSubject.next(AXConfig.dataModel);\r\n }\r\n }\r\n\r\n static get(path: string, defaultValue?: any): any {\r\n return get(AXConfig.dataModel, path, defaultValue);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAGA;
|
1
|
+
{"version":3,"file":"acorex-core-config.mjs","sources":["../../../../projects/acorex/core/config/src/configs.ts","../../../../projects/acorex/core/config/acorex-core-config.ts"],"sourcesContent":["import { get, set, merge } from 'lodash-es';\r\nimport { Subject, Observable } from 'rxjs';\r\n\r\n// @dynamic\r\nexport class AXConfig {\r\n private static dataModel: any = {};\r\n private static dataChangeSubject = new Subject<any>();\r\n\r\n static get onChange(): Observable<any> {\r\n return AXConfig.dataChangeSubject.asObservable();\r\n }\r\n\r\n static set(config: any): void;\r\n static set(path: string, value?: any): void;\r\n static set(arg1?: any, arg2?: any): void {\r\n if (arg1 && typeof arg1 == 'string') {\r\n set(AXConfig.dataModel, arg1, arg2);\r\n AXConfig.dataChangeSubject.next(AXConfig.dataModel);\r\n }\r\n if (arg1 && typeof arg1 == 'object') {\r\n merge(AXConfig.dataModel, arg1);\r\n AXConfig.dataChangeSubject.next(AXConfig.dataModel);\r\n }\r\n }\r\n\r\n static get(path: string, defaultValue?: any): any {\r\n return get(AXConfig.dataModel, path, defaultValue);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAGA;AACA,MAAa,QAAQ,CAAA;AACX,IAAA,OAAO,SAAS,GAAQ,EAAE,CAAC;AAC3B,IAAA,OAAO,iBAAiB,GAAG,IAAI,OAAO,EAAO,CAAC;AAEtD,IAAA,WAAW,QAAQ,GAAA;AACjB,QAAA,OAAO,QAAQ,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;KAClD;AAID,IAAA,OAAO,GAAG,CAAC,IAAU,EAAE,IAAU,EAAA;AAC/B,QAAA,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE;YACnC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACpC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACrD,SAAA;AACD,QAAA,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE;AACnC,YAAA,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAChC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACrD,SAAA;KACF;AAED,IAAA,OAAO,GAAG,CAAC,IAAY,EAAE,YAAkB,EAAA;QACzC,OAAO,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;KACpD;;;AC3BH;;AAEG;;;;"}
|