rd-outer-component 0.0.9 → 0.0.11
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/esm2020/lib/decorators/index.mjs +2 -0
- package/esm2020/lib/decorators/search-debounce.decorator.mjs +46 -0
- package/esm2020/lib/modules/custom-input/custom-input.component.mjs +58 -67
- package/esm2020/lib/modules/custom-input-amount/custom-input-amount.component.mjs +27 -26
- package/esm2020/lib/modules/custom-select/custom-select.component.mjs +2 -2
- package/esm2020/lib/modules/custom-textarea/custom-textarea.component.mjs +176 -0
- package/esm2020/lib/modules/custom-textarea/custom-textarea.module.mjs +20 -0
- package/esm2020/lib/modules/custom-textarea/index.mjs +3 -0
- package/esm2020/public-api.mjs +3 -1
- package/fesm2015/rd-outer-component.mjs +368 -141
- package/fesm2015/rd-outer-component.mjs.map +1 -1
- package/fesm2020/rd-outer-component.mjs +360 -140
- package/fesm2020/rd-outer-component.mjs.map +1 -1
- package/lib/decorators/index.d.ts +1 -0
- package/lib/decorators/search-debounce.decorator.d.ts +1 -0
- package/lib/modules/custom-input/custom-input.component.d.ts +3 -3
- package/lib/modules/custom-input-amount/custom-input-amount.component.d.ts +4 -4
- package/lib/modules/custom-textarea/custom-textarea.component.d.ts +41 -0
- package/lib/modules/custom-textarea/custom-textarea.module.d.ts +10 -0
- package/lib/modules/custom-textarea/index.d.ts +2 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './search-debounce.decorator';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtbGliL3NyYy9saWIvZGVjb3JhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gtZGVib3VuY2UuZGVjb3JhdG9yJztcbiJdfQ==
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Subject, isObservable, of } from 'rxjs';
|
|
2
|
+
import { debounceTime, filter, switchMap } from 'rxjs/operators';
|
|
3
|
+
// this 是绑定到组件列的实例
|
|
4
|
+
export function DebounceSearch(milliseconds = 300, queryMinLength = 0, queryMaxLength) {
|
|
5
|
+
return function (target, propertyKey, descriptor) {
|
|
6
|
+
const originalMethod = descriptor.value;
|
|
7
|
+
descriptor.value = function (...args) {
|
|
8
|
+
const subjectKey = `__debounceSubject__${propertyKey}`;
|
|
9
|
+
const _this = this;
|
|
10
|
+
if (!_this[subjectKey]) {
|
|
11
|
+
_this[subjectKey] = new Subject();
|
|
12
|
+
_this[subjectKey]
|
|
13
|
+
.pipe(debounceTime(milliseconds),
|
|
14
|
+
// distinctUntilChanged(),
|
|
15
|
+
filter((query) => {
|
|
16
|
+
let showQuery = true;
|
|
17
|
+
if (!query)
|
|
18
|
+
return true;
|
|
19
|
+
if (queryMinLength && queryMaxLength) {
|
|
20
|
+
showQuery =
|
|
21
|
+
query.length >= queryMinLength &&
|
|
22
|
+
query.length <= queryMaxLength;
|
|
23
|
+
}
|
|
24
|
+
else if (queryMinLength) {
|
|
25
|
+
showQuery = query.length >= queryMinLength;
|
|
26
|
+
}
|
|
27
|
+
else if (queryMaxLength) {
|
|
28
|
+
showQuery = query.length <= queryMaxLength;
|
|
29
|
+
}
|
|
30
|
+
return showQuery;
|
|
31
|
+
}), switchMap((query) => {
|
|
32
|
+
const result = originalMethod.apply(this, [
|
|
33
|
+
query,
|
|
34
|
+
...args.slice(1),
|
|
35
|
+
]);
|
|
36
|
+
// Wrap result in an observable if it's not already one
|
|
37
|
+
return isObservable(result) ? result : of(result);
|
|
38
|
+
}))
|
|
39
|
+
.subscribe((result) => result);
|
|
40
|
+
}
|
|
41
|
+
_this[subjectKey].next(...args);
|
|
42
|
+
};
|
|
43
|
+
return descriptor;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRlYm91bmNlLmRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1saWIvc3JjL2xpYi9kZWNvcmF0b3JzL3NlYXJjaC1kZWJvdW5jZS5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpFLGtCQUFrQjtBQUNsQixNQUFNLFVBQVUsY0FBYyxDQUM1QixlQUF1QixHQUFHLEVBQzFCLGNBQWMsR0FBRyxDQUFDLEVBQ2xCLGNBQXVCO0lBRXZCLE9BQU8sVUFDTCxNQUFXLEVBQ1gsV0FBbUIsRUFDbkIsVUFBOEI7UUFFOUIsTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUV4QyxVQUFVLENBQUMsS0FBSyxHQUFHLFVBQVUsR0FBRyxJQUFXO1lBQ3pDLE1BQU0sVUFBVSxHQUFHLHNCQUFzQixXQUFXLEVBQUUsQ0FBQztZQUN2RCxNQUFNLEtBQUssR0FBRyxJQUFXLENBQUM7WUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDdEIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7Z0JBRXZDLEtBQUssQ0FBQyxVQUFVLENBQUM7cUJBQ2QsSUFBSSxDQUNILFlBQVksQ0FBQyxZQUFZLENBQUM7Z0JBQzFCLDBCQUEwQjtnQkFDMUIsTUFBTSxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7b0JBQ3BCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQztvQkFDckIsSUFBSSxDQUFDLEtBQUs7d0JBQUUsT0FBTyxJQUFJLENBQUM7b0JBQ3hCLElBQUksY0FBYyxJQUFJLGNBQWMsRUFBRTt3QkFDcEMsU0FBUzs0QkFDUCxLQUFLLENBQUMsTUFBTSxJQUFJLGNBQWM7Z0NBQzlCLEtBQUssQ0FBQyxNQUFNLElBQUksY0FBYyxDQUFDO3FCQUNsQzt5QkFBTSxJQUFJLGNBQWMsRUFBRTt3QkFDekIsU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksY0FBYyxDQUFDO3FCQUM1Qzt5QkFBTSxJQUFJLGNBQWMsRUFBRTt3QkFDekIsU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksY0FBYyxDQUFDO3FCQUM1QztvQkFDRCxPQUFPLFNBQVMsQ0FBQztnQkFDbkIsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ2xCLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO3dCQUN4QyxLQUFLO3dCQUNMLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7cUJBQ2pCLENBQUMsQ0FBQztvQkFFSCx1REFBdUQ7b0JBQ3ZELE9BQU8sWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDcEQsQ0FBQyxDQUFDLENBQ0g7cUJBQ0EsU0FBUyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN2QztZQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUM7UUFFRixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCwgaXNPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLy8gdGhpcyDmmK/nu5HlrprliLDnu4Tku7bliJfnmoTlrp7kvotcbmV4cG9ydCBmdW5jdGlvbiBEZWJvdW5jZVNlYXJjaChcbiAgbWlsbGlzZWNvbmRzOiBudW1iZXIgPSAzMDAsXG4gIHF1ZXJ5TWluTGVuZ3RoID0gMCxcbiAgcXVlcnlNYXhMZW5ndGg/OiBudW1iZXJcbikge1xuICByZXR1cm4gZnVuY3Rpb24gKFxuICAgIHRhcmdldDogYW55LFxuICAgIHByb3BlcnR5S2V5OiBzdHJpbmcsXG4gICAgZGVzY3JpcHRvcjogUHJvcGVydHlEZXNjcmlwdG9yXG4gICkge1xuICAgIGNvbnN0IG9yaWdpbmFsTWV0aG9kID0gZGVzY3JpcHRvci52YWx1ZTtcblxuICAgIGRlc2NyaXB0b3IudmFsdWUgPSBmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcbiAgICAgIGNvbnN0IHN1YmplY3RLZXkgPSBgX19kZWJvdW5jZVN1YmplY3RfXyR7cHJvcGVydHlLZXl9YDtcbiAgICAgIGNvbnN0IF90aGlzID0gdGhpcyBhcyBhbnk7XG4gICAgICBpZiAoIV90aGlzW3N1YmplY3RLZXldKSB7XG4gICAgICAgIF90aGlzW3N1YmplY3RLZXldID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gICAgICAgIF90aGlzW3N1YmplY3RLZXldXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUobWlsbGlzZWNvbmRzKSxcbiAgICAgICAgICAgIC8vIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICBmaWx0ZXIoKHF1ZXJ5OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgbGV0IHNob3dRdWVyeSA9IHRydWU7XG4gICAgICAgICAgICAgIGlmICghcXVlcnkpIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICBpZiAocXVlcnlNaW5MZW5ndGggJiYgcXVlcnlNYXhMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBzaG93UXVlcnkgPVxuICAgICAgICAgICAgICAgICAgcXVlcnkubGVuZ3RoID49IHF1ZXJ5TWluTGVuZ3RoICYmXG4gICAgICAgICAgICAgICAgICBxdWVyeS5sZW5ndGggPD0gcXVlcnlNYXhMZW5ndGg7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAocXVlcnlNaW5MZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBzaG93UXVlcnkgPSBxdWVyeS5sZW5ndGggPj0gcXVlcnlNaW5MZW5ndGg7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAocXVlcnlNYXhMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBzaG93UXVlcnkgPSBxdWVyeS5sZW5ndGggPD0gcXVlcnlNYXhMZW5ndGg7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIHNob3dRdWVyeTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc3dpdGNoTWFwKChxdWVyeSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBvcmlnaW5hbE1ldGhvZC5hcHBseSh0aGlzLCBbXG4gICAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgICAgLi4uYXJncy5zbGljZSgxKSxcbiAgICAgICAgICAgICAgXSk7XG5cbiAgICAgICAgICAgICAgLy8gV3JhcCByZXN1bHQgaW4gYW4gb2JzZXJ2YWJsZSBpZiBpdCdzIG5vdCBhbHJlYWR5IG9uZVxuICAgICAgICAgICAgICByZXR1cm4gaXNPYnNlcnZhYmxlKHJlc3VsdCkgPyByZXN1bHQgOiBvZihyZXN1bHQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHJlc3VsdCk7XG4gICAgICB9XG5cbiAgICAgIF90aGlzW3N1YmplY3RLZXldLm5leHQoLi4uYXJncyk7XG4gICAgfTtcblxuICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICB9O1xufVxuIl19
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Component, EventEmitter, forwardRef, Input, Output, } from '@angular/core';
|
|
2
2
|
import { NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
|
|
3
|
+
import Big from 'big.js';
|
|
4
|
+
import { formatBigNumber } from '../../utils/big-number';
|
|
3
5
|
import * as i0 from "@angular/core";
|
|
4
6
|
import * as i1 from "@angular/common";
|
|
5
7
|
import * as i2 from "@angular/forms";
|
|
@@ -7,22 +9,34 @@ import * as i3 from "ng-zorro-antd/input";
|
|
|
7
9
|
import * as i4 from "ngx-mask";
|
|
8
10
|
export class CustomInputComponent {
|
|
9
11
|
get currentErrorMessage() {
|
|
10
|
-
if (!this.errors)
|
|
12
|
+
if (!this.control?.errors)
|
|
11
13
|
return '';
|
|
12
|
-
const firstError = Object.keys(this.errors)[0];
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
const firstError = Object.keys(this.control?.errors || {})[0];
|
|
15
|
+
const msg = this.errorMessages[firstError];
|
|
16
|
+
switch (firstError) {
|
|
17
|
+
case 'required':
|
|
18
|
+
return msg || `Please enter ${this.label.toLowerCase()}`;
|
|
19
|
+
case 'min':
|
|
20
|
+
return (msg ||
|
|
21
|
+
`${this.label} cannot be less than the minimum value ${formatBigNumber(this.min)}`);
|
|
22
|
+
case 'max':
|
|
23
|
+
return (msg ||
|
|
24
|
+
`${this.label} cannot exceed the maximum value ${formatBigNumber(this.max)}`);
|
|
25
|
+
case 'precision':
|
|
26
|
+
return (msg || `The maximum number of decimal places is ${this.maskNumber}`);
|
|
27
|
+
case 'minLength':
|
|
28
|
+
return (msg ||
|
|
29
|
+
`Length cannot be less than the minimum length ${this.minLength}`);
|
|
30
|
+
case 'maxLength':
|
|
31
|
+
return (msg || `Length cannot exceed the maximum length ${this.maxLength}`);
|
|
32
|
+
case 'custom':
|
|
33
|
+
return this.control?.errors['custom'] || 'Validation failed';
|
|
34
|
+
default:
|
|
35
|
+
return this.errorMessages[firstError] || 'Validation failed';
|
|
15
36
|
}
|
|
16
|
-
if (firstError === 'minLength' && !this.errorMessages?.['minLength']) {
|
|
17
|
-
return `Length cannot be less than the minimum length ${this.minLength}`;
|
|
18
|
-
}
|
|
19
|
-
if (firstError === 'maxLength' && !this.errorMessages?.['maxLength']) {
|
|
20
|
-
return `Length cannot exceed the maximum length ${this.maxLength}`;
|
|
21
|
-
}
|
|
22
|
-
return this.errorMessages[firstError] || 'Validation failed';
|
|
23
37
|
}
|
|
24
38
|
get showError() {
|
|
25
|
-
return this.
|
|
39
|
+
return (!!this.control?.invalid && (this.control?.touched || this.control?.dirty));
|
|
26
40
|
}
|
|
27
41
|
constructor(cdr) {
|
|
28
42
|
this.cdr = cdr;
|
|
@@ -32,8 +46,8 @@ export class CustomInputComponent {
|
|
|
32
46
|
this.disabled = true;
|
|
33
47
|
this.maskNumber = 6;
|
|
34
48
|
this.maskType = 'text';
|
|
35
|
-
this.required = false;
|
|
36
49
|
this.type = 'text';
|
|
50
|
+
this.required = false;
|
|
37
51
|
this.errorMessages = {
|
|
38
52
|
pattern: 'Invalid format',
|
|
39
53
|
custom: 'Validation failed',
|
|
@@ -48,11 +62,10 @@ export class CustomInputComponent {
|
|
|
48
62
|
this.onTouched = () => { };
|
|
49
63
|
this.control = null;
|
|
50
64
|
this.onValidatorChange = () => { };
|
|
51
|
-
this.errors = null;
|
|
52
65
|
}
|
|
53
66
|
writeValue(value) {
|
|
54
|
-
this.value = value;
|
|
55
|
-
this.
|
|
67
|
+
this.value = value || '';
|
|
68
|
+
this.cdr.markForCheck();
|
|
56
69
|
}
|
|
57
70
|
registerOnChange(fn) {
|
|
58
71
|
this.onChange = fn;
|
|
@@ -60,6 +73,9 @@ export class CustomInputComponent {
|
|
|
60
73
|
registerOnTouched(fn) {
|
|
61
74
|
this.onTouched = fn;
|
|
62
75
|
}
|
|
76
|
+
registerOnValidatorChange(fn) {
|
|
77
|
+
this.onValidatorChange = fn;
|
|
78
|
+
}
|
|
63
79
|
setDisabledState(isDisabled) {
|
|
64
80
|
this.disabled = isDisabled;
|
|
65
81
|
this.cdr.markForCheck();
|
|
@@ -69,59 +85,41 @@ export class CustomInputComponent {
|
|
|
69
85
|
this.touched = true;
|
|
70
86
|
this.onTouched();
|
|
71
87
|
this.blur.emit();
|
|
72
|
-
// 在失焦时重新验证
|
|
73
|
-
if (this.control) {
|
|
74
|
-
const errors = this.validate(this.control);
|
|
75
|
-
this.control.setErrors(errors);
|
|
76
|
-
if (this.onValidatorChange) {
|
|
77
|
-
this.onValidatorChange();
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
88
|
this.cdr.markForCheck();
|
|
81
89
|
}
|
|
82
90
|
handleValueChange(value) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
else {
|
|
88
|
-
currValue = value?.trim() || value;
|
|
89
|
-
}
|
|
90
|
-
this.value = currValue;
|
|
91
|
-
this.onChange(currValue);
|
|
92
|
-
this.valueChange.emit(currValue);
|
|
93
|
-
// 标记为已触摸
|
|
94
|
-
this.touched = true;
|
|
95
|
-
this.onTouched();
|
|
96
|
-
// 手动触发验证
|
|
97
|
-
if (this.control) {
|
|
98
|
-
// 设置错误状态
|
|
99
|
-
const errors = this.validate(this.control);
|
|
100
|
-
this.control.setErrors(errors);
|
|
101
|
-
// 通知验证器变化
|
|
102
|
-
if (this.onValidatorChange) {
|
|
103
|
-
this.onValidatorChange();
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
this.cdr.markForCheck();
|
|
91
|
+
const cleanedValue = this.maskType === 'amount' ? value.replace(/,/g, '') : value.trim();
|
|
92
|
+
this.value = cleanedValue;
|
|
93
|
+
this.onChange(cleanedValue);
|
|
94
|
+
this.valueChange.emit(cleanedValue);
|
|
107
95
|
}
|
|
108
|
-
// TODO: QX兼容angular原生校验
|
|
109
96
|
validate(control) {
|
|
110
|
-
if (
|
|
111
|
-
|
|
97
|
+
if (control) {
|
|
98
|
+
this.control = control;
|
|
99
|
+
}
|
|
112
100
|
const errors = {};
|
|
113
101
|
let value;
|
|
114
102
|
if (this.maskType === 'amount') {
|
|
115
103
|
value = control?.value?.replace(/,/g, '');
|
|
104
|
+
try {
|
|
105
|
+
const bigValue = new Big(value);
|
|
106
|
+
if (this.min && !Number.isNaN(this.min) && bigValue.lt(this.min)) {
|
|
107
|
+
errors['min'] = { min: this.min, actual: value };
|
|
108
|
+
}
|
|
109
|
+
if (this.max && !Number.isNaN(this.max) && bigValue.gt(this.max)) {
|
|
110
|
+
errors['max'] = { max: this.max, actual: value };
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
errors['invalid'] = true;
|
|
115
|
+
}
|
|
116
116
|
}
|
|
117
117
|
else {
|
|
118
118
|
value = control?.value?.trim();
|
|
119
119
|
}
|
|
120
|
-
// 必填验证
|
|
121
120
|
if (this.required && !value) {
|
|
122
121
|
errors['required'] = true;
|
|
123
122
|
}
|
|
124
|
-
// 长度验证
|
|
125
123
|
if (value && typeof value === 'string') {
|
|
126
124
|
if (this.minLength && value.length < this.minLength) {
|
|
127
125
|
errors['minLength'] = {
|
|
@@ -136,7 +134,6 @@ export class CustomInputComponent {
|
|
|
136
134
|
};
|
|
137
135
|
}
|
|
138
136
|
}
|
|
139
|
-
// 正则验证
|
|
140
137
|
if (this.pattern && value) {
|
|
141
138
|
const pattern = this.pattern instanceof RegExp
|
|
142
139
|
? this.pattern
|
|
@@ -145,23 +142,17 @@ export class CustomInputComponent {
|
|
|
145
142
|
errors['pattern'] = { requiredPattern: pattern, actualValue: value };
|
|
146
143
|
}
|
|
147
144
|
}
|
|
148
|
-
// 自定义验证
|
|
149
145
|
if (this.customValidator) {
|
|
150
146
|
const customErrors = this.customValidator(control);
|
|
151
147
|
if (customErrors) {
|
|
152
148
|
Object.assign(errors, customErrors);
|
|
153
149
|
}
|
|
154
150
|
}
|
|
155
|
-
|
|
156
|
-
// 手动设置控件错误
|
|
157
|
-
if (this.errors) {
|
|
158
|
-
control.setErrors(this.errors);
|
|
159
|
-
}
|
|
160
|
-
return this.errors;
|
|
151
|
+
return Object.keys(errors).length > 0 ? errors : null;
|
|
161
152
|
}
|
|
162
153
|
}
|
|
163
154
|
CustomInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
164
|
-
CustomInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CustomInputComponent, selector: "app-rd-input", inputs: { label: "label", symbol: "symbol", name: "name", disabled: "disabled", maskNumber: "maskNumber", maskType: "maskType", required: "required", min: "min", max: "max", minLength: "minLength", maxLength: "maxLength", pattern: "pattern", customValidator: "customValidator",
|
|
155
|
+
CustomInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CustomInputComponent, selector: "app-rd-input", inputs: { label: "label", symbol: "symbol", name: "name", disabled: "disabled", maskNumber: "maskNumber", maskType: "maskType", type: "type", required: "required", min: "min", max: "max", minLength: "minLength", maxLength: "maxLength", pattern: "pattern", customValidator: "customValidator", errorMessages: "errorMessages" }, outputs: { valueChange: "valueChange", focus: "focus", blur: "blur" }, providers: [
|
|
165
156
|
{
|
|
166
157
|
provide: NG_VALUE_ACCESSOR,
|
|
167
158
|
useExisting: forwardRef(() => CustomInputComponent),
|
|
@@ -172,7 +163,7 @@ CustomInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
|
|
|
172
163
|
useExisting: forwardRef(() => CustomInputComponent),
|
|
173
164
|
multi: true,
|
|
174
165
|
},
|
|
175
|
-
], ngImport: i0, template: "<div>\n <div
|
|
166
|
+
], ngImport: i0, template: "<div>\n <div\n class=\"form-item form-item-p-deal\"\n [ngClass]=\"{ disabled: disabled, error: showError }\"\n >\n <input\n nz-input\n nzBorderless\n placeholder=\" \"\n [name]=\"name\"\n [type]=\"type\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"handleValueChange($event)\"\n (blur)=\"onBlur()\"\n [allowNegativeNumbers]=\"true\"\n [dropSpecialCharacters]=\"false\"\n [mask]=\"maskType === 'amount' ? 'separator.' + maskNumber : ''\"\n [thousandSeparator]=\"maskType === 'amount' ? ',' : ''\"\n class=\"form-item-input\"\n />\n <div class=\"form-item-label\">{{ label }}</div>\n </div>\n <div *ngIf=\"showError\" class=\"form-item-error\">\n <img src=\"/assets/img/icon/icon-error.svg\" />\n {{ currentErrorMessage }}\n </div>\n</div>\n", styles: [":host .form-item-p-deal{padding:0!important}\n", ".form-item{position:relative;border-radius:4px;padding:2px 6px;border:1px solid #e5e7eb;background-color:#fff;width:100%;margin-top:16px;height:64px}.form-item .form-item-select-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;pointer-events:none}.form-item-label{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#6b7280;transition:all .3s ease;pointer-events:none;z-index:1;font-size:14px;font-weight:500}.form-item-input{color:#030712;font-size:14px;width:100%;font-weight:500;padding:18px 16px}.form-item-input:focus,.form-item-input:not(:placeholder-shown){top:10px}.form-item .form-item-input:focus~.form-item-label,.form-item .form-item-input:not(:placeholder-shown)~.form-item-label{top:16px;font-size:12px}.form-item-select{width:100%}.form-item-select ::ng-deep .ant-select-selection-item{color:#030712;font-size:14px;font-weight:500}.form-item.selected .form-item-label{top:16px;font-size:12px}.form-item.selected .form-item-select{top:10px}.form-item.disabled{background-color:#f3f4f6;border-color:#d1d5db}.form-item.disabled .form-item-label,.form-item.disabled .form-item-input{color:#9ca3af}.form-item.disabled ::ng-deep .ant-select-selection-item{color:#9ca3af}.form-item.error{border-color:#e51c36}.form-item-check{position:relative;background-color:#fff;width:100%;margin-top:16px}.form-item-error{color:#d2152e;font-size:12px;font-weight:500;display:flex;align-items:center;gap:4px;margin-top:4px}.form-item-error img{width:16px}.form-number-item{position:relative;border-radius:12px;padding:12px 6px;background-color:#fff;border:1px solid #e5e7eb;width:100%;margin-top:16px}.form-number-item .item-label{color:#6b7280;font-size:12px;padding:0 12px;font-weight:500}.form-number-item .item-content{display:flex;align-items:center;font-size:32px;font-weight:600;line-height:48px;color:#9ca3af}.form-number-item .item-content-value{flex:1;font-size:32px;font-weight:600;line-height:48px;color:#030712;border:none}.form-number-item .item-content-value:focus,.form-number-item .item-content-value:active,.form-number-item .item-content-value:hover{outline:none;box-shadow:none}.form-number-item .item-content-value ::ng-deep .ant-input-number-handler-wrap{display:none}.form-number-item .item-content-value ::ng-deep .ant-input-number-input{font-size:32px;font-weight:600;line-height:48px}.form-number-item .item-content-value ::ng-deep .ant-input-number-input::placeholder{color:#9ca3af}.form-number-item .item-content-symbol{flex-shrink:0}.form-number-item ::ng-deep .item-warning{font-weight:500;font-size:12px;color:#6b7280;margin-top:4px;padding:0 12px}.form-number-item.disabled{background-color:#f3f4f6;border-color:#d1d5db}.form-number-item.disabled .item-label,.form-number-item.disabled .item-content-value{color:#9ca3af}.form-number-item.error{border-color:#e51c36}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "directive", type: i4.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }] });
|
|
176
167
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomInputComponent, decorators: [{
|
|
177
168
|
type: Component,
|
|
178
169
|
args: [{ selector: 'app-rd-input', providers: [
|
|
@@ -186,7 +177,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
186
177
|
useExisting: forwardRef(() => CustomInputComponent),
|
|
187
178
|
multi: true,
|
|
188
179
|
},
|
|
189
|
-
], template: "<div>\n <div
|
|
180
|
+
], template: "<div>\n <div\n class=\"form-item form-item-p-deal\"\n [ngClass]=\"{ disabled: disabled, error: showError }\"\n >\n <input\n nz-input\n nzBorderless\n placeholder=\" \"\n [name]=\"name\"\n [type]=\"type\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"handleValueChange($event)\"\n (blur)=\"onBlur()\"\n [allowNegativeNumbers]=\"true\"\n [dropSpecialCharacters]=\"false\"\n [mask]=\"maskType === 'amount' ? 'separator.' + maskNumber : ''\"\n [thousandSeparator]=\"maskType === 'amount' ? ',' : ''\"\n class=\"form-item-input\"\n />\n <div class=\"form-item-label\">{{ label }}</div>\n </div>\n <div *ngIf=\"showError\" class=\"form-item-error\">\n <img src=\"/assets/img/icon/icon-error.svg\" />\n {{ currentErrorMessage }}\n </div>\n</div>\n", styles: [":host .form-item-p-deal{padding:0!important}\n", ".form-item{position:relative;border-radius:4px;padding:2px 6px;border:1px solid #e5e7eb;background-color:#fff;width:100%;margin-top:16px;height:64px}.form-item .form-item-select-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;pointer-events:none}.form-item-label{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#6b7280;transition:all .3s ease;pointer-events:none;z-index:1;font-size:14px;font-weight:500}.form-item-input{color:#030712;font-size:14px;width:100%;font-weight:500;padding:18px 16px}.form-item-input:focus,.form-item-input:not(:placeholder-shown){top:10px}.form-item .form-item-input:focus~.form-item-label,.form-item .form-item-input:not(:placeholder-shown)~.form-item-label{top:16px;font-size:12px}.form-item-select{width:100%}.form-item-select ::ng-deep .ant-select-selection-item{color:#030712;font-size:14px;font-weight:500}.form-item.selected .form-item-label{top:16px;font-size:12px}.form-item.selected .form-item-select{top:10px}.form-item.disabled{background-color:#f3f4f6;border-color:#d1d5db}.form-item.disabled .form-item-label,.form-item.disabled .form-item-input{color:#9ca3af}.form-item.disabled ::ng-deep .ant-select-selection-item{color:#9ca3af}.form-item.error{border-color:#e51c36}.form-item-check{position:relative;background-color:#fff;width:100%;margin-top:16px}.form-item-error{color:#d2152e;font-size:12px;font-weight:500;display:flex;align-items:center;gap:4px;margin-top:4px}.form-item-error img{width:16px}.form-number-item{position:relative;border-radius:12px;padding:12px 6px;background-color:#fff;border:1px solid #e5e7eb;width:100%;margin-top:16px}.form-number-item .item-label{color:#6b7280;font-size:12px;padding:0 12px;font-weight:500}.form-number-item .item-content{display:flex;align-items:center;font-size:32px;font-weight:600;line-height:48px;color:#9ca3af}.form-number-item .item-content-value{flex:1;font-size:32px;font-weight:600;line-height:48px;color:#030712;border:none}.form-number-item .item-content-value:focus,.form-number-item .item-content-value:active,.form-number-item .item-content-value:hover{outline:none;box-shadow:none}.form-number-item .item-content-value ::ng-deep .ant-input-number-handler-wrap{display:none}.form-number-item .item-content-value ::ng-deep .ant-input-number-input{font-size:32px;font-weight:600;line-height:48px}.form-number-item .item-content-value ::ng-deep .ant-input-number-input::placeholder{color:#9ca3af}.form-number-item .item-content-symbol{flex-shrink:0}.form-number-item ::ng-deep .item-warning{font-weight:500;font-size:12px;color:#6b7280;margin-top:4px;padding:0 12px}.form-number-item.disabled{background-color:#f3f4f6;border-color:#d1d5db}.form-number-item.disabled .item-label,.form-number-item.disabled .item-content-value{color:#9ca3af}.form-number-item.error{border-color:#e51c36}\n"] }]
|
|
190
181
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { label: [{
|
|
191
182
|
type: Input
|
|
192
183
|
}], symbol: [{
|
|
@@ -199,6 +190,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
199
190
|
type: Input
|
|
200
191
|
}], maskType: [{
|
|
201
192
|
type: Input
|
|
193
|
+
}], type: [{
|
|
194
|
+
type: Input
|
|
202
195
|
}], required: [{
|
|
203
196
|
type: Input
|
|
204
197
|
}], min: [{
|
|
@@ -213,8 +206,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
213
206
|
type: Input
|
|
214
207
|
}], customValidator: [{
|
|
215
208
|
type: Input
|
|
216
|
-
}], type: [{
|
|
217
|
-
type: Input
|
|
218
209
|
}], errorMessages: [{
|
|
219
210
|
type: Input
|
|
220
211
|
}], valueChange: [{
|
|
@@ -224,4 +215,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
224
215
|
}], blur: [{
|
|
225
216
|
type: Output
|
|
226
217
|
}] } });
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1saWIvc3JjL2xpYi9tb2R1bGVzL2N1c3RvbS1pbnB1dC9jdXN0b20taW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWxpYi9zcmMvbGliL21vZHVsZXMvY3VzdG9tLWlucHV0L2N1c3RvbS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixHQUlsQixNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFzQnhCLE1BQU0sT0FBTyxvQkFBb0I7SUFtQy9CLElBQUksbUJBQW1CO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRTVCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9DLElBQUksVUFBVSxLQUFLLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNsRSxPQUFPLGdCQUFnQixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7U0FDbkQ7UUFDRCxJQUFJLFVBQVUsS0FBSyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDcEUsT0FBTyxpREFBaUQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQzFFO1FBQ0QsSUFBSSxVQUFVLEtBQUssV0FBVyxJQUFJ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T0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjt3R0FHUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUtJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxuICBWYWxpZGF0b3JGbixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcmQtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4vY3VzdG9tLWlucHV0LmNvbXBvbmVudC5zY3NzJyxcbiAgICAnLi4vLi4vYXNzZXRzL3Njc3MvZm9ybS1pdGVtLnNjc3MnLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEN1c3RvbUlucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEN1c3RvbUlucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgc3ltYm9sID0gJyc7XG4gIEBJbnB1dCgpIG5hbWUgPSAnJztcbiAgQElucHV0KCkgZGlzYWJsZWQgPSB0cnVlO1xuICBASW5wdXQoKSBtYXNrTnVtYmVyID0gNjtcbiAgQElucHV0KCkgbWFza1R5cGU6ICdhbW91bnQnIHwgJ3RleHQnID0gJ3RleHQnO1xuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBtaW4/OiBudW1iZXI7XG4gIEBJbnB1dCgpIG1heD86IG51bWJlcjtcbiAgQElucHV0KCkgbWluTGVuZ3RoPzogbnVtYmVyO1xuICBASW5wdXQoKSBtYXhMZW5ndGg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHBhdHRlcm4/OiBzdHJpbmcgfCBSZWdFeHA7XG4gIEBJbnB1dCgpIGN1c3RvbVZhbGlkYXRvcj86IFZhbGlkYXRvckZuO1xuICBASW5wdXQoKSB0eXBlOiAncGFzc3dvcmQnIHwgJ3RleHQnID0gJ3RleHQnO1xuXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgcGF0dGVybjogJ0ludmFsaWQgZm9ybWF0JyxcbiAgICBjdXN0b206ICdWYWxpZGF0aW9uIGZhaWxlZCcsXG4gIH07XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBmb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgdmFsdWU6IHN0cmluZyA9ICcnO1xuICBpc0ZvY3VzZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSB0b3VjaGVkID0gZmFsc2U7XG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgb25WYWxpZGF0b3JDaGFuZ2U6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcblxuICBnZXQgY3VycmVudEVycm9yTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5lcnJvcnMpIHJldHVybiAnJztcblxuICAgIGNvbnN0IGZpcnN0RXJyb3IgPSBPYmplY3Qua2V5cyh0aGlzLmVycm9ycylbMF07XG4gICAgaWYgKGZpcnN0RXJyb3IgPT09ICdyZXF1aXJlZCcgJiYgIXRoaXMuZXJyb3JNZXNzYWdlcz8uWydyZXF1aXJlZCddKSB7XG4gICAgICByZXR1cm4gYFBsZWFzZSBlbnRlciAke3RoaXMubGFiZWwudG9Mb3dlckNhc2UoKX1gO1xuICAgIH1cbiAgICBpZiAoZmlyc3RFcnJvciA9PT0gJ21pbkxlbmd0aCcgJiYgIXRoaXMuZXJyb3JNZXNzYWdlcz8uWydtaW5MZW5ndGgnXSkge1xuICAgICAgcmV0dXJuIGBMZW5ndGggY2Fubm90IGJlIGxlc3MgdGhhbiB0aGUgbWluaW11bSBsZW5ndGggJHt0aGlzLm1pbkxlbmd0aH1gO1xuICAgIH1cbiAgICBpZiAoZmlyc3RFcnJvciA9PT0gJ21heExlbmd0aCcgJiYgIXRoaXMuZXJyb3JNZXNzYWdlcz8uWydtYXhMZW5ndGgnXSkge1xuICAgICAgcmV0dXJuIGBMZW5ndGggY2Fubm90IGV4Y2VlZCB0aGUgbWF4aW11bSBsZW5ndGggJHt0aGlzLm1heExlbmd0aH1gO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5lcnJvck1lc3NhZ2VzW2ZpcnN0RXJyb3JdIHx8ICdWYWxpZGF0aW9uIGZhaWxlZCc7XG4gIH1cblxuICBnZXQgc2hvd0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRvdWNoZWQgJiYgISF0aGlzLmVycm9ycztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy52YWxpZGF0ZShudWxsKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgdGhpcy5ibHVyLmVtaXQoKTtcblxuICAgIC8vIOWcqOWkseeEpuaXtumHjeaWsOmqjOivgVxuICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IHRoaXMudmFsaWRhdGUodGhpcy5jb250cm9sKTtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRFcnJvcnMoZXJyb3JzKTtcblxuICAgICAgaWYgKHRoaXMub25WYWxpZGF0b3JDaGFuZ2UpIHtcbiAgICAgICAgdGhpcy5vblZhbGlkYXRvckNoYW5nZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgaGFuZGxlVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGxldCBjdXJyVmFsdWU7XG4gICAgaWYgKHRoaXMubWFza1R5cGUgPT09ICdhbW91bnQnKSB7XG4gICAgICBjdXJyVmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC8sL2csICcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY3VyclZhbHVlID0gdmFsdWU/LnRyaW0oKSB8fCB2YWx1ZTtcbiAgICB9XG4gICAgdGhpcy52YWx1ZSA9IGN1cnJWYWx1ZTtcbiAgICB0aGlzLm9uQ2hhbmdlKGN1cnJWYWx1ZSk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGN1cnJWYWx1ZSk7XG5cbiAgICAvLyDmoIforrDkuLrlt7Lop6bmkbhcbiAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG5cbiAgICAvLyDmiYvliqjop6blj5Hpqozor4FcbiAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAvLyDorr7nva7plJnor6/nirbmgIFcbiAgICAgIGNvbnN0IGVycm9ycyA9IHRoaXMudmFsaWRhdGUodGhpcy5jb250cm9sKTtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRFcnJvcnMoZXJyb3JzKTtcblxuICAgICAgLy8g6YCa55+l6aqM6K+B5Zmo5Y+Y5YyWXG4gICAgICBpZiAodGhpcy5vblZhbGlkYXRvckNoYW5nZSkge1xuICAgICAgICB0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvLyBUT0RPOiBRWOWFvOWuuWFuZ3VsYXLljp/nlJ/moKHpqoxcbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAoIWNvbnRyb2wpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzID0ge307XG4gICAgbGV0IHZhbHVlO1xuICAgIGlmICh0aGlzLm1hc2tUeXBlID09PSAnYW1vdW50Jykge1xuICAgICAgdmFsdWUgPSBjb250cm9sPy52YWx1ZT8ucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gY29udHJvbD8udmFsdWU/LnRyaW0oKTtcbiAgICB9XG5cbiAgICAvLyDlv4Xloavpqozor4FcbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdmFsdWUpIHtcbiAgICAgIGVycm9yc1sncmVxdWlyZWQnXSA9IHRydWU7XG4gICAgfVxuXG4gICAgLy8g6ZW/5bqm6aqM6K+BXG4gICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmICh0aGlzLm1pbkxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPCB0aGlzLm1pbkxlbmd0aCkge1xuICAgICAgICBlcnJvcnNbJ21pbkxlbmd0aCddID0ge1xuICAgICAgICAgIHJlcXVpcmVkTGVuZ3RoOiB0aGlzLm1pbkxlbmd0aCxcbiAgICAgICAgICBhY3R1YWxMZW5ndGg6IHZhbHVlLmxlbmd0aCxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm1heExlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPiB0aGlzLm1heExlbmd0aCkge1xuICAgICAgICBlcnJvcnNbJ21heExlbmd0aCddID0ge1xuICAgICAgICAgIHJlcXVpcmVkTGVuZ3RoOiB0aGlzLm1heExlbmd0aCxcbiAgICAgICAgICBhY3R1YWxMZW5ndGg6IHZhbHVlLmxlbmd0aCxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyDmraPliJnpqozor4FcbiAgICBpZiAodGhpcy5wYXR0ZXJuICYmIHZhbHVlKSB7XG4gICAgICBjb25zdCBwYXR0ZXJuID1cbiAgICAgICAgdGhpcy5wYXR0ZXJuIGluc3RhbmNlb2YgUmVnRXhwXG4gICAgICAgICAgPyB0aGlzLnBhdHRlcm5cbiAgICAgICAgICA6IG5ldyBSZWdFeHAodGhpcy5wYXR0ZXJuKTtcbiAgICAgIGlmICghcGF0dGVybi50ZXN0KHZhbHVlKSkge1xuICAgICAgICBlcnJvcnNbJ3BhdHRlcm4nXSA9IHsgcmVxdWlyZWRQYXR0ZXJuOiBwYXR0ZXJuLCBhY3R1YWxWYWx1ZTogdmFsdWUgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyDoh6rlrprkuYnpqozor4FcbiAgICBpZiAodGhpcy5jdXN0b21WYWxpZGF0b3IpIHtcbiAgICAgIGNvbnN0IGN1c3RvbUVycm9ycyA9IHRoaXMuY3VzdG9tVmFsaWRhdG9yKGNvbnRyb2wpO1xuICAgICAgaWYgKGN1c3RvbUVycm9ycykge1xuICAgICAgICBPYmplY3QuYXNzaWduKGVycm9ycywgY3VzdG9tRXJyb3JzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmVycm9ycyA9IE9iamVjdC5rZXlzKGVycm9ycykubGVuZ3RoID4gMCA/IGVycm9ycyA6IG51bGw7XG5cbiAgICAvLyDmiYvliqjorr7nva7mjqfku7bplJnor69cbiAgICBpZiAodGhpcy5lcnJvcnMpIHtcbiAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKHRoaXMuZXJyb3JzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5lcnJvcnM7XG4gIH1cbn1cbiIsIjxkaXY+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWl0ZW1cIiBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBkaXNhYmxlZCwgZXJyb3I6IHNob3dFcnJvciB9XCI+XG4gICAgPGlucHV0XG4gICAgICBuei1pbnB1dFxuICAgICAgbnpCb3JkZXJsZXNzXG4gICAgICBwbGFjZWhvbGRlcj1cIiBcIlxuICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImhhbmRsZVZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgW2FsbG93TmVnYXRpdmVOdW1iZXJzXT1cInRydWVcIlxuICAgICAgW2Ryb3BTcGVjaWFsQ2hhcmFjdGVyc109XCJmYWxzZVwiXG4gICAgICBbbWFza109XCJtYXNrVHlwZSA9PT0gJ2Ftb3VudCcgPyAnc2VwYXJhdG9yLicgKyBtYXNrTnVtYmVyIDogJydcIlxuICAgICAgW3Rob3VzYW5kU2VwYXJhdG9yXT1cIm1hc2tUeXBlID09PSAnYW1vdW50JyA/ICcsJyA6ICcnXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1pdGVtLWlucHV0XCJcbiAgICAvPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWl0ZW0tbGFiZWxcIj57eyBsYWJlbCB9fTwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInNob3dFcnJvclwiIGNsYXNzPVwiZm9ybS1pdGVtLWVycm9yXCI+XG4gICAgPGltZyBzcmM9XCIvYXNzZXRzL2ltZy9pY29uL2ljb24tZXJyb3Iuc3ZnXCIgLz5cbiAgICB7eyBjdXJyZW50RXJyb3JNZXNzYWdlIH19XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1saWIvc3JjL2xpYi9tb2R1bGVzL2N1c3RvbS1pbnB1dC9jdXN0b20taW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWxpYi9zcmMvbGliL21vZHVsZXMvY3VzdG9tLWlucHV0L2N1c3RvbS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixHQUlsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sR0FBRyxNQUFNLFFBQVEsQ0FBQztBQUN6QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQXNCekQsTUFBTSxPQUFPLG9CQUFvQjtJQWlDL0IsSUFBSSxtQkFBbUI7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3JDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFOUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUzQyxRQUFRLFVBQVUsRUFBRTtZQUNsQixLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxHQUFHLElBQUksZ0JBQWdCLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUMzRCxLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxDQUNMLEdBQUc7b0JBQ0gsR0FDRSxJQUFJLENBQUMsS0FDUCwwQ0FBMEMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUN0RSxDQUFDO1lBQ0osS0FBSyxLQUFLO2dCQUNSLE9BQU8sQ0FDTCxHQUFHO29CQUNILEdBQUcsSUFBSSxDQUFDLEtBQUssb0NBQW9DLGVBQWUsQ0FDOUQsSUFBSSxDQUFDLEdBQUcsQ0FDVCxFQUFFLENBQ0osQ0FBQztZQUNKLEtBQUssV0FBVztnQkFDZCxPQUFPLENBQ0wsR0FBRyxJQUFJLDJDQUEyQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQ3BFLENBQUM7WUFDSixLQUFLLFdBQVc7Z0JBQ2QsT0FBTyxDQUNMLEdBQUc7b0JBQ0gsaURBQWlELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FDbEUsQ0FBQztZQUNKLEtBQUssV0FBVztnQkFDZCxPQUFPLENBQ0wsR0FBRyxJQUFJLDJDQUEyQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQ25FLENBQUM7WUFDSixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxtQkFBbUIsQ0FBQztZQUMvRDtnQkFDRSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksbUJBQW1CLENBQUM7U0FDaEU7SUFDSCxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxDQUNMLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQzFFLENBQUM7SUFDSixDQUFDO0lBRUQsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFqRmpDLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixhQUFRLEdBQXNCLE1BQU0sQ0FBQztRQUNyQyxTQUFJLEdBQXdCLE1BQU0sQ0FBQztRQUNuQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBUWpCLGtCQUFhLEdBQThCO1lBQ2xELE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsTUFBTSxFQUFFLG1CQUFtQjtTQUM1QixDQUFDO1FBRVEsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3pDLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2pDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTFDLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNWLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsYUFBUSxHQUE0QixHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDN0MsY0FBUyxHQUFlLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUNqQyxZQUFPLEdBQTJCLElBQUksQ0FBQztRQUN2QyxzQkFBaUIsR0FBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFtREosQ0FBQztJQUU5QyxVQUFVLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBMkI7UUFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELHlCQUF5QixDQUFDLEVBQWM7UUFDdEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQWE7UUFDN0IsTUFBTSxZQUFZLEdBQ2hCLElBQUksQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RFLElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUErQjtRQUN0QyxJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1NBQ3hCO1FBRUQsTUFBTSxNQUFNLEdBQXFCLEVBQUUsQ0FBQztRQUNwQyxJQUFJLEtBQUssQ0FBQztRQUNWLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUU7WUFDOUIsS0FBSyxHQUFHLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUUxQyxJQUFJO2dCQUNGLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDaEUsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO2lCQUNsRDtnQkFDRCxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDaEUsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO2lCQUNsRDthQUNGO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzthQUMxQjtTQUNGO2FBQU07WUFDTCxLQUFLLEdBQUcsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUNoQztRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUMzQixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQzNCO1FBRUQsSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQ3RDLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ25ELE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRztvQkFDcEIsY0FBYyxFQUFFLElBQUksQ0FBQyxTQUFTO29CQUM5QixZQUFZLEVBQUUsS0FBSyxDQUFDLE1BQU07aUJBQzNCLENBQUM7YUFDSDtZQUNELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ25ELE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRztvQkFDcEIsY0FBYyxFQUFFLElBQUksQ0FBQyxTQUFTO29CQUM5QixZQUFZLEVBQUUsS0FBSyxDQUFDLE1BQU07aUJBQzNCLENBQUM7YUFDSDtTQUNGO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRTtZQUN6QixNQUFNLE9BQU8sR0FDWCxJQUFJLENBQUMsT0FBTyxZQUFZLE1BQU07Z0JBQzVCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTztnQkFDZCxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN4QixNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQzthQUN0RTtTQUNGO1FBRUQsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBUSxDQUFDLENBQUM7WUFDcEQsSUFBSSxZQUFZLEVBQUU7Z0JBQ2hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO2FBQ3JDO1NBQ0Y7UUFFRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDeEQsQ0FBQzs7a0hBeExVLG9CQUFvQjtzR0FBcEIsb0JBQW9CLG9iQWJwQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO1lBQ25ELEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRDtZQUNFLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFDbkQsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLDBCQ3RDSCw4MUJBNEJBOzRGRFlhLG9CQUFvQjtrQkFwQmhDLFNBQVM7K0JBQ0UsY0FBYyxhQU1iO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3dHQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBS0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRvckZuLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgQmlnIGZyb20gJ2JpZy5qcyc7XG5pbXBvcnQgeyBmb3JtYXRCaWdOdW1iZXIgfSBmcm9tICcuLi8uLi91dGlscy9iaWctbnVtYmVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXJkLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW1xuICAgICcuL2N1c3RvbS1pbnB1dC5jb21wb25lbnQuc2NzcycsXG4gICAgJy4uLy4uL2Fzc2V0cy9zY3NzL2Zvcm0taXRlbS5zY3NzJyxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDdXN0b21JbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDdXN0b21JbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21JbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHN5bWJvbCA9ICcnO1xuICBASW5wdXQoKSBuYW1lID0gJyc7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gdHJ1ZTtcbiAgQElucHV0KCkgbWFza051bWJlciA9IDY7XG4gIEBJbnB1dCgpIG1hc2tUeXBlOiAnYW1vdW50JyB8ICd0ZXh0JyA9ICd0ZXh0JztcbiAgQElucHV0KCkgdHlwZTogJ3Bhc3N3b3JkJyB8ICd0ZXh0JyA9ICd0ZXh0JztcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgbWluPzogbnVtYmVyO1xuICBASW5wdXQoKSBtYXg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIG1pbkxlbmd0aD86IG51bWJlcjtcbiAgQElucHV0KCkgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBASW5wdXQoKSBwYXR0ZXJuPzogc3RyaW5nIHwgUmVnRXhwO1xuICBASW5wdXQoKSBjdXN0b21WYWxpZGF0b3I/OiBWYWxpZGF0b3JGbjtcblxuICBASW5wdXQoKSBlcnJvck1lc3NhZ2VzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgIHBhdHRlcm46ICdJbnZhbGlkIGZvcm1hdCcsXG4gICAgY3VzdG9tOiAnVmFsaWRhdGlvbiBmYWlsZWQnLFxuICB9O1xuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgZm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHZhbHVlOiBzdHJpbmcgPSAnJztcbiAgaXNGb2N1c2VkID0gZmFsc2U7XG4gIHByaXZhdGUgdG91Y2hlZCA9IGZhbHNlO1xuICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBwcml2YXRlIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG9uVmFsaWRhdG9yQ2hhbmdlOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgZ2V0IGN1cnJlbnRFcnJvck1lc3NhZ2UoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuY29udHJvbD8uZXJyb3JzKSByZXR1cm4gJyc7XG4gICAgY29uc3QgZmlyc3RFcnJvciA9IE9iamVjdC5rZXlzKHRoaXMuY29udHJvbD8uZXJyb3JzIHx8IHt9KVswXTtcblxuICAgIGNvbnN0IG1zZyA9IHRoaXMuZXJyb3JNZXNzYWdlc1tmaXJzdEVycm9yXTtcblxuICAgIHN3aXRjaCAoZmlyc3RFcnJvcikge1xuICAgICAgY2FzZSAncmVxdWlyZWQnOlxuICAgICAgICByZXR1cm4gbXNnIHx8IGBQbGVhc2UgZW50ZXIgJHt0aGlzLmxhYmVsLnRvTG93ZXJDYXNlKCl9YDtcbiAgICAgIGNhc2UgJ21pbic6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbXNnIHx8XG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICB0aGlzLmxhYmVsXG4gICAgICAgICAgfSBjYW5ub3QgYmUgbGVzcyB0aGFuIHRoZSBtaW5pbXVtIHZhbHVlICR7Zm9ybWF0QmlnTnVtYmVyKHRoaXMubWluKX1gXG4gICAgICAgICk7XG4gICAgICBjYXNlICdtYXgnOlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIG1zZyB8fFxuICAgICAgICAgIGAke3RoaXMubGFiZWx9IGNhbm5vdCBleGNlZWQgdGhlIG1heGltdW0gdmFsdWUgJHtmb3JtYXRCaWdOdW1iZXIoXG4gICAgICAgICAgICB0aGlzLm1heFxuICAgICAgICAgICl9YFxuICAgICAgICApO1xuICAgICAgY2FzZSAncHJlY2lzaW9uJzpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtc2cgfHwgYFRoZSBtYXhpbXVtIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyBpcyAke3RoaXMubWFza051bWJlcn1gXG4gICAgICAgICk7XG4gICAgICBjYXNlICdtaW5MZW5ndGgnOlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIG1zZyB8fFxuICAgICAgICAgIGBMZW5ndGggY2Fubm90IGJlIGxlc3MgdGhhbiB0aGUgbWluaW11bSBsZW5ndGggJHt0aGlzLm1pbkxlbmd0aH1gXG4gICAgICAgICk7XG4gICAgICBjYXNlICdtYXhMZW5ndGgnOlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIG1zZyB8fCBgTGVuZ3RoIGNhbm5vdCBleGNlZWQgdGhlIG1heGltdW0gbGVuZ3RoICR7dGhpcy5tYXhMZW5ndGh9YFxuICAgICAgICApO1xuICAgICAgY2FzZSAnY3VzdG9tJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbD8uZXJyb3JzWydjdXN0b20nXSB8fCAnVmFsaWRhdGlvbiBmYWlsZWQnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JNZXNzYWdlc1tmaXJzdEVycm9yXSB8fCAnVmFsaWRhdGlvbiBmYWlsZWQnO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzaG93RXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhdGhpcy5jb250cm9sPy5pbnZhbGlkICYmICh0aGlzLmNvbnRyb2w/LnRvdWNoZWQgfHwgdGhpcy5jb250cm9sPy5kaXJ0eSlcbiAgICApO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZSB8fCAnJztcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgdGhpcy50b3VjaGVkID0gdHJ1ZTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMuYmx1ci5lbWl0KCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBoYW5kbGVWYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY2xlYW5lZFZhbHVlID1cbiAgICAgIHRoaXMubWFza1R5cGUgPT09ICdhbW91bnQnID8gdmFsdWUucmVwbGFjZSgvLC9nLCAnJykgOiB2YWx1ZS50cmltKCk7XG4gICAgdGhpcy52YWx1ZSA9IGNsZWFuZWRWYWx1ZTtcbiAgICB0aGlzLm9uQ2hhbmdlKGNsZWFuZWRWYWx1ZSk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGNsZWFuZWRWYWx1ZSk7XG4gIH1cblxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmIChjb250cm9sKSB7XG4gICAgICB0aGlzLmNvbnRyb2wgPSBjb250cm9sO1xuICAgIH1cblxuICAgIGNvbnN0IGVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IHt9O1xuICAgIGxldCB2YWx1ZTtcbiAgICBpZiAodGhpcy5tYXNrVHlwZSA9PT0gJ2Ftb3VudCcpIHtcbiAgICAgIHZhbHVlID0gY29udHJvbD8udmFsdWU/LnJlcGxhY2UoLywvZywgJycpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBiaWdWYWx1ZSA9IG5ldyBCaWcodmFsdWUpO1xuICAgICAgICBpZiAodGhpcy5taW4gJiYgIU51bWJlci5pc05hTih0aGlzLm1pbikgJiYgYmlnVmFsdWUubHQodGhpcy5taW4pKSB7XG4gICAgICAgICAgZXJyb3JzWydtaW4nXSA9IHsgbWluOiB0aGlzLm1pbiwgYWN0dWFsOiB2YWx1ZSB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1heCAmJiAhTnVtYmVyLmlzTmFOKHRoaXMubWF4KSAmJiBiaWdWYWx1ZS5ndCh0aGlzLm1heCkpIHtcbiAgICAgICAgICBlcnJvcnNbJ21heCddID0geyBtYXg6IHRoaXMubWF4LCBhY3R1YWw6IHZhbHVlIH07XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGVycm9yc1snaW52YWxpZCddID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUgPSBjb250cm9sPy52YWx1ZT8udHJpbSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnJlcXVpcmVkICYmICF2YWx1ZSkge1xuICAgICAgZXJyb3JzWydyZXF1aXJlZCddID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKHRoaXMubWluTGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA8IHRoaXMubWluTGVuZ3RoKSB7XG4gICAgICAgIGVycm9yc1snbWluTGVuZ3RoJ10gPSB7XG4gICAgICAgICAgcmVxdWlyZWRMZW5ndGg6IHRoaXMubWluTGVuZ3RoLFxuICAgICAgICAgIGFjdHVhbExlbmd0aDogdmFsdWUubGVuZ3RoLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMubWF4TGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA+IHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICAgIGVycm9yc1snbWF4TGVuZ3RoJ10gPSB7XG4gICAgICAgICAgcmVxdWlyZWRMZW5ndGg6IHRoaXMubWF4TGVuZ3RoLFxuICAgICAgICAgIGFjdHVhbExlbmd0aDogdmFsdWUubGVuZ3RoLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnBhdHRlcm4gJiYgdmFsdWUpIHtcbiAgICAgIGNvbnN0IHBhdHRlcm4gPVxuICAgICAgICB0aGlzLnBhdHRlcm4gaW5zdGFuY2VvZiBSZWdFeHBcbiAgICAgICAgICA/IHRoaXMucGF0dGVyblxuICAgICAgICAgIDogbmV3IFJlZ0V4cCh0aGlzLnBhdHRlcm4pO1xuICAgICAgaWYgKCFwYXR0ZXJuLnRlc3QodmFsdWUpKSB7XG4gICAgICAgIGVycm9yc1sncGF0dGVybiddID0geyByZXF1aXJlZFBhdHRlcm46IHBhdHRlcm4sIGFjdHVhbFZhbHVlOiB2YWx1ZSB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmN1c3RvbVZhbGlkYXRvcikge1xuICAgICAgY29uc3QgY3VzdG9tRXJyb3JzID0gdGhpcy5jdXN0b21WYWxpZGF0b3IoY29udHJvbCEpO1xuICAgICAgaWYgKGN1c3RvbUVycm9ycykge1xuICAgICAgICBPYmplY3QuYXNzaWduKGVycm9ycywgY3VzdG9tRXJyb3JzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZXJyb3JzKS5sZW5ndGggPiAwID8gZXJyb3JzIDogbnVsbDtcbiAgfVxufVxuIiwiPGRpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZm9ybS1pdGVtIGZvcm0taXRlbS1wLWRlYWxcIlxuICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IGRpc2FibGVkLCBlcnJvcjogc2hvd0Vycm9yIH1cIlxuICA+XG4gICAgPGlucHV0XG4gICAgICBuei1pbnB1dFxuICAgICAgbnpCb3JkZXJsZXNzXG4gICAgICBwbGFjZWhvbGRlcj1cIiBcIlxuICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImhhbmRsZVZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgW2FsbG93TmVnYXRpdmVOdW1iZXJzXT1cInRydWVcIlxuICAgICAgW2Ryb3BTcGVjaWFsQ2hhcmFjdGVyc109XCJmYWxzZVwiXG4gICAgICBbbWFza109XCJtYXNrVHlwZSA9PT0gJ2Ftb3VudCcgPyAnc2VwYXJhdG9yLicgKyBtYXNrTnVtYmVyIDogJydcIlxuICAgICAgW3Rob3VzYW5kU2VwYXJhdG9yXT1cIm1hc2tUeXBlID09PSAnYW1vdW50JyA/ICcsJyA6ICcnXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1pdGVtLWlucHV0XCJcbiAgICAvPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWl0ZW0tbGFiZWxcIj57eyBsYWJlbCB9fTwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInNob3dFcnJvclwiIGNsYXNzPVwiZm9ybS1pdGVtLWVycm9yXCI+XG4gICAgPGltZyBzcmM9XCIvYXNzZXRzL2ltZy9pY29uL2ljb24tZXJyb3Iuc3ZnXCIgLz5cbiAgICB7eyBjdXJyZW50RXJyb3JNZXNzYWdlIH19XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -20,8 +20,8 @@ export class CustomInputAmountComponent {
|
|
|
20
20
|
invalid: 'Please enter a valid number',
|
|
21
21
|
};
|
|
22
22
|
this.valueChange = new EventEmitter();
|
|
23
|
-
this.inputValue = '';
|
|
24
|
-
this.value = '';
|
|
23
|
+
this.inputValue = '';
|
|
24
|
+
this.value = '';
|
|
25
25
|
this.touched = false;
|
|
26
26
|
this.control = null;
|
|
27
27
|
this.errors = null;
|
|
@@ -30,31 +30,29 @@ export class CustomInputAmountComponent {
|
|
|
30
30
|
this.onValidatorChange = () => { };
|
|
31
31
|
}
|
|
32
32
|
get currentErrorMessage() {
|
|
33
|
-
if (!this.errors)
|
|
33
|
+
if (!this.control?.errors)
|
|
34
34
|
return '';
|
|
35
|
-
const firstError = Object.keys(this.errors)[0];
|
|
35
|
+
const firstError = Object.keys(this.control?.errors || {})[0];
|
|
36
|
+
const msg = this.errorMessages[firstError];
|
|
36
37
|
switch (firstError) {
|
|
37
38
|
case 'required':
|
|
38
|
-
return
|
|
39
|
-
`Please enter ${this.label.toLowerCase()}`);
|
|
39
|
+
return msg || `Please enter ${this.label.toLowerCase()}`;
|
|
40
40
|
case 'min':
|
|
41
|
-
return (
|
|
42
|
-
`${this.label} cannot be less than
|
|
41
|
+
return (msg ||
|
|
42
|
+
`${this.label} cannot be less than ${formatBigNumber(this.min)}`);
|
|
43
43
|
case 'max':
|
|
44
|
-
return (this.
|
|
45
|
-
`${this.label} cannot exceed the maximum value ${formatBigNumber(this.max)}`);
|
|
44
|
+
return (msg || `${this.label} cannot exceed ${formatBigNumber(this.max)}`);
|
|
46
45
|
case 'precision':
|
|
47
|
-
return
|
|
48
|
-
`The maximum number of decimal places is ${this.nzPrecision}`);
|
|
46
|
+
return msg || `Maximum decimal places is ${this.nzPrecision}`;
|
|
49
47
|
default:
|
|
50
|
-
return
|
|
48
|
+
return msg || 'Validation failed';
|
|
51
49
|
}
|
|
52
50
|
}
|
|
53
51
|
get showError() {
|
|
54
|
-
return this.
|
|
52
|
+
return (!!this.control?.invalid && (this.control?.touched || this.control?.dirty));
|
|
55
53
|
}
|
|
56
|
-
handleValueChange(
|
|
57
|
-
const rawValue =
|
|
54
|
+
handleValueChange(raw) {
|
|
55
|
+
const rawValue = raw.replace(/,/g, '');
|
|
58
56
|
// 处理输入的值,转换成 Big.js 格式
|
|
59
57
|
this.value = numberToBig(rawValue, this.nzPrecision);
|
|
60
58
|
// 更新绑定值
|
|
@@ -93,7 +91,9 @@ export class CustomInputAmountComponent {
|
|
|
93
91
|
this.onValidatorChange = fn;
|
|
94
92
|
}
|
|
95
93
|
validate(control) {
|
|
96
|
-
|
|
94
|
+
if (control) {
|
|
95
|
+
this.control = control;
|
|
96
|
+
}
|
|
97
97
|
const errors = {};
|
|
98
98
|
const value = this.value;
|
|
99
99
|
if (this.required && !value) {
|
|
@@ -108,20 +108,21 @@ export class CustomInputAmountComponent {
|
|
|
108
108
|
if (this.max && !Number.isNaN(this.max) && bigValue.gt(this.max)) {
|
|
109
109
|
errors['max'] = { max: this.max, actual: value };
|
|
110
110
|
}
|
|
111
|
+
const decimalPlaces = value.split('.')[1]?.length || 0;
|
|
112
|
+
if (decimalPlaces > this.nzPrecision) {
|
|
113
|
+
errors['precision'] = true;
|
|
114
|
+
}
|
|
111
115
|
}
|
|
112
|
-
catch (
|
|
116
|
+
catch (e) {
|
|
113
117
|
errors['invalid'] = true;
|
|
114
118
|
}
|
|
115
119
|
}
|
|
116
|
-
|
|
117
|
-
if (this.errors) {
|
|
118
|
-
control.setErrors(this.errors);
|
|
119
|
-
}
|
|
120
|
-
return this.errors;
|
|
120
|
+
return Object.keys(errors).length > 0 ? errors : null;
|
|
121
121
|
}
|
|
122
122
|
writeValue(value) {
|
|
123
|
-
|
|
124
|
-
this.
|
|
123
|
+
const v = value?.toString() ?? '';
|
|
124
|
+
this.value = v;
|
|
125
|
+
this.inputValue = v;
|
|
125
126
|
this.cdr.markForCheck();
|
|
126
127
|
}
|
|
127
128
|
}
|
|
@@ -173,4 +174,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
173
174
|
}], valueChange: [{
|
|
174
175
|
type: Output
|
|
175
176
|
}] } });
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWlucHV0LWFtb3VudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtbGliL3NyYy9saWIvbW9kdWxlcy9jdXN0b20taW5wdXQtYW1vdW50L2N1c3RvbS1pbnB1dC1hbW91bnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWxpYi9zcmMvbGliL21vZHVsZXMvY3VzdG9tLWlucHV0LWFtb3VudC9jdXN0b20taW5wdXQtYW1vdW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxhQUFhLEVBQ2IsaUJBQWlCLEdBR2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFDO0FBQ3pCLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQXNCdEUsTUFBTSxPQUFPLDBCQUEwQjtJQTBCckMsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUF2QmpDLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR2pCLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQ3hCLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIsa0JBQWEsR0FBOEI7WUFDbEQsT0FBTyxFQUFFLDZCQUE2QjtTQUN2QyxDQUFDO1FBRVEsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRW5ELGVBQVUsR0FBVyxFQUFFLENBQUMsQ0FBQyxTQUFT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QTBCOzRHQUExQiwwQkFBMEIsbVJBYjFCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7WUFDekQsS0FBSyxFQUFFLElBQUk7U0FDWjtRQUNEO1lBQ0UsT0FBTyxFQUFFLGFBQWE7WUFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztZQUN6RCxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsMEJDckNILG83QkErQkE7NEZEUWEsMEJBQTBCO2tCQXBCdEMsU0FBUzsrQkFDRSxxQkFBcUIsYUFNcEI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMkJBQTJCLENBQUM7NEJBQ3pELEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQzs0QkFDekQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7d0dBS1EsS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUlJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IEJpZyBmcm9tICdiaWcuanMnO1xuaW1wb3J0IHsgZm9ybWF0QmlnTnVtYmVyLCBudW1iZXJUb0JpZyB9IGZyb20gJy4uLy4uL3V0aWxzL2JpZy1udW1iZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcmQtaW5wdXQtYW1vdW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1pbnB1dC1hbW91bnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi9jdXN0b20taW5wdXQtYW1vdW50LmNvbXBvbmVudC5zY3NzJyxcbiAgICAnLi4vLi4vYXNzZXRzL3Njc3MvZm9ybS1pdGVtLnNjc3MnLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEN1c3RvbUlucHV0QW1vdW50Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEN1c3RvbUlucHV0QW1vdW50Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbUlucHV0QW1vdW50Q29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvclxue1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHN5bWJvbCA9ICcnO1xuICBASW5wdXQoKSBuYW1lID0gJyc7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1pbj86IG51bWJlcjtcbiAgQElucHV0KCkgbWF4PzogbnVtYmVyO1xuICBASW5wdXQoKSBuelByZWNpc2lvbjogbnVtYmVyID0gNjtcbiAgQElucHV0KCkgcmVxdWlyZWQgPSB0cnVlO1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2VzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgIGludmFsaWQ6ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBudW1iZXInLFxuICB9O1xuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGlucHV0VmFsdWU6IHN0cmluZyA9ICcnOyAvLyDnu5HlrprliLDovpPlhaXmoYZcbiAgcHJpdmF0ZSB2YWx1ZTogc3RyaW5nID0gJyc7IC8vIOWGhemDqOWAvO+8jOWni+e7iOS7pSBzdHJpbmcg5b2i5byP5a2Y5YKoXG4gIHByaXZhdGUgdG91Y2hlZCA9IGZhbHNlO1xuICBwcml2YXRlIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwgPSBudWxsO1xuICBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcbiAgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBwcml2YXRlIG9uVmFsaWRhdG9yQ2hhbmdlOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIGdldCBjdXJyZW50RXJyb3JNZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmVycm9ycykgcmV0dXJuICcnO1xuXG4gICAgY29uc3QgZmlyc3RFcnJvciA9IE9iamVjdC5rZXlzKHRoaXMuZXJyb3JzKVswXTtcbiAgICBzd2l0Y2ggKGZpcnN0RXJyb3IpIHtcbiAgICAgIGNhc2UgJ3JlcXVpcmVkJzpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZXM/LlsncmVxdWlyZWQnXSB8fFxuICAgICAgICAgIGBQbGVhc2UgZW50ZXIgJHt0aGlzLmxhYmVsLnRvTG93ZXJDYXNlKCl9YFxuICAgICAgICApO1xuICAgICAgY2FzZSAnbWluJzpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZXM/LlsnbWluJ10gfHxcbiAgICAgICAgICBgJHtcbiAgICAgICAgICAgIHRoaXMubGFiZWxcbiAgICAgICAgICB9IGNhbm5vdCBiZSBsZXNzIHRoYW4gdGhlIG1pbmltdW0gdmFsdWUgJHtmb3JtYXRCaWdOdW1iZXIodGhpcy5taW4pfWBcbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ21heCc6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzPy5bJ21heCddIHx8XG4gICAgICAgICAgYCR7dGhpcy5sYWJlbH0gY2Fubm90IGV4Y2VlZCB0aGUgbWF4aW11bSB2YWx1ZSAke2Zvcm1hdEJpZ051bWJlcihcbiAgICAgICAgICAgIHRoaXMubWF4XG4gICAgICAgICAgKX1gXG4gICAgICAgICk7XG4gICAgICBjYXNlICdwcmVjaXNpb24nOlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcz8uWydwcmVjaXNpb24nXSB8fFxuICAgICAgICAgIGBUaGUgbWF4aW11bSBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgaXMgJHt0aGlzLm56UHJlY2lzaW9ufWBcbiAgICAgICAgKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0aGlzLmVycm9yTWVzc2FnZXNbZmlyc3RFcnJvcl0gfHwgJ1ZhbGlkYXRpb24gZmFpbGVkJztcbiAgICB9XG4gIH1cblxuICBnZXQgc2hvd0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRvdWNoZWQgJiYgISF0aGlzLmVycm9ycztcbiAgfVxuXG4gIGhhbmRsZVZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCByYXdWYWx1ZSA9IHZhbHVlLnJlcGxhY2UoLywvZywgJycpO1xuXG4gICAgLy8g5aSE55CG6L6T5YWl55qE5YC877yM6L2s5o2i5oiQIEJpZy5qcyDmoLzlvI9cbiAgICB0aGlzLnZhbHVlID0gbnVtYmVyVG9CaWcocmF3VmFsdWUsIHRoaXMubnpQcmVjaXNpb24pO1xuXG4gICAgLy8g5pu05paw57uR5a6a5YC8XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG5cbiAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG5cbiAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICBjb25zdCBlcnJvcnMgPSB0aGlzLnZhbGlkYXRlKHRoaXMuY29udHJvbCk7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKGVycm9ycyk7XG4gICAgICB0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy50b3VjaGVkID0gdHJ1ZTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IHRoaXMudmFsaWRhdGUodGhpcy5jb250cm9sKTtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRFcnJvcnMoZXJyb3JzKTtcbiAgICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UoKTtcbiAgICB9XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICB0aGlzLmNvbnRyb2wgPSBjb250cm9sO1xuICAgIGNvbnN0IGVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IHt9O1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZTtcblxuICAgIGlmICh0aGlzLnJlcXVpcmVkICYmICF2YWx1ZSkge1xuICAgICAgZXJyb3JzWydyZXF1aXJlZCddID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGJpZ1ZhbHVlID0gbmV3IEJpZyh2YWx1ZSk7XG4gICAgICAgIGlmICh0aGlzLm1pbiAmJiAhTnVtYmVyLmlzTmFOKHRoaXMubWluKSAmJiBiaWdWYWx1ZS5sdCh0aGlzLm1pbikpIHtcbiAgICAgICAgICBlcnJvcnNbJ21pbiddID0geyBtaW46IHRoaXMubWluLCBhY3R1YWw6IHZhbHVlIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubWF4ICYmICFOdW1iZXIuaXNOYU4odGhpcy5tYXgpICYmIGJpZ1ZhbHVlLmd0KHRoaXMubWF4KSkge1xuICAgICAgICAgIGVycm9yc1snbWF4J10gPSB7IG1heDogdGhpcy5tYXgsIGFjdHVhbDogdmFsdWUgfTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgZXJyb3JzWydpbnZhbGlkJ10gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZXJyb3JzID0gT2JqZWN0LmtleXMoZXJyb3JzKS5sZW5ndGggPiAwID8gZXJyb3JzIDogbnVsbDtcbiAgICBpZiAodGhpcy5lcnJvcnMpIHtcbiAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKHRoaXMuZXJyb3JzKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JzO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxkaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImZvcm0tbnVtYmVyLWl0ZW1cIlxuICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IGRpc2FibGVkLCBlcnJvcjogc2hvd0Vycm9yIH1cIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cIml0ZW0tbGFiZWxcIj57eyBsYWJlbCB9fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvbnRlbnRcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICBuei1pbnB1dFxuICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJzAnXCJcbiAgICAgICAgW21hc2tdPVwiJ3NlcGFyYXRvci4nICsgbnpQcmVjaXNpb25cIlxuICAgICAgICBbdGhvdXNhbmRTZXBhcmF0b3JdPVwiJywnXCJcbiAgICAgICAgW2FsbG93TmVnYXRpdmVOdW1iZXJzXT1cInRydWVcIlxuICAgICAgICBbZHJvcFNwZWNpYWxDaGFyYWN0ZXJzXT1cImZhbHNlXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJpbnB1dFZhbHVlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiaGFuZGxlVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgICAgY2xhc3M9XCJpdGVtLWNvbnRlbnQtdmFsdWVcIlxuICAgICAgLz5cbiAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvbnRlbnQtc3ltYm9sXCI+e3sgc3ltYm9sIH19PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInNob3dFcnJvclwiIGNsYXNzPVwiZm9ybS1pdGVtLWVycm9yXCI+XG4gICAgPGltZyBzcmM9XCIvYXNzZXRzL2ltZy9pY29uL2ljb24tZXJyb3Iuc3ZnXCIgLz5cbiAgICB7eyBjdXJyZW50RXJyb3JNZXNzYWdlIH19XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWlucHV0LWFtb3VudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtbGliL3NyYy9saWIvbW9kdWxlcy9jdXN0b20taW5wdXQtYW1vdW50L2N1c3RvbS1pbnB1dC1hbW91bnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWxpYi9zcmMvbGliL21vZHVsZXMvY3VzdG9tLWlucHV0LWFtb3VudC9jdXN0b20taW5wdXQtYW1vdW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxhQUFhLEVBQ2IsaUJBQWlCLEdBR2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFDO0FBQ3pCLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQXNCdEUsTUFBTSxPQUFPLDBCQUEwQjtJQTRCckMsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUF6QmpDLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsYUFBUSxHQUFHLElBQUksQ0FBQztRQUVoQixrQkFBYSxHQUE4QjtZQUNsRCxPQUFPLEVBQUUsNkJBQTZCO1NBQ3ZDLENBQUM7UUFFUSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFbkQsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUNoQixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsWUFBTyxHQUEyQixJQUFJLENBQUM7UUFDL0MsV0FBTSxHQUE0QixJQUFJLENBQUM7UUFFL0IsYUFBUSxHQUE0QixHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDN0MsY0FBUyxHQUFlLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUNqQyxzQkFBaUIsR0FBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFFSixDQUFDO0lBRTlDLElBQUksbUJBQW1CO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU07WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFM0MsUUFBUSxVQUFVLEVBQUU7WUFDbEIsS0FBSyxVQUFVO2dCQUNiLE9BQU8sR0FBRyxJQUFJLGdCQUFnQixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDM0QsS0FBSyxLQUFLO2dCQUNSLE9BQU8sQ0FDTCxHQUFHO29CQUNILEdBQUcsSUFBSSxDQUFDLEtBQUssd0JBQXdCLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FDakUsQ0FBQztZQUNKLEtBQUssS0FBSztnQkFDUixPQUFPLENBQ0wsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssa0JBQWtCLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FDbEUsQ0FBQztZQUNKLEtBQUssV0FBVztnQkFDZCxPQUFPLEdBQUcsSUFBSSw2QkFBNkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2hFO2dCQUNFLE9BQU8sR0FBRyxJQUFJLG1CQUFtQixDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sQ0FDTCxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUMxRSxDQUFDO0lBQ0osQ0FBQztJQUVELGlCQUFpQixDQUFDLEdBQVc7UUFDM0IsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFdkMsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFckQsUUFBUTtRQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVsQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFakIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzFCO1FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDMUI7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUEyQjtRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBYztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQseUJBQXlCLENBQUMsRUFBYztRQUN0QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxRQUFRLENBQUMsT0FBd0I7UUFDL0IsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztTQUN4QjtRQUNELE1BQU0sTUFBTSxHQUFxQixFQUFFLENBQUM7UUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUV6QixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDM0IsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQztTQUMzQjtRQUVELElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSTtnQkFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFaEMsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ2hFLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztpQkFDbEQ7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ2hFLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztpQkFDbEQ7Z0JBRUQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO2dCQUN2RCxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFO29CQUNwQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDO2lCQUM1QjthQUNGO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzthQUMxQjtTQUNGO1FBRUQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3hELENBQUM7SUFFRCxVQUFVLENBQUMsS0FBNkI7UUFDdEMsTUFBTSxDQUFDLEdBQUcsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQzs7d0hBckpVLDBCQUEwQjs0R0FBMUIsMEJBQTBCLG1SQWIxQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDO1lBQ3pELEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRDtZQUNFLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7WUFDekQsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLDBCQ3JDSCxvN0JBK0JBOzRGRFFhLDBCQUEwQjtrQkFwQnRDLFNBQVM7K0JBQ0UscUJBQXFCLGFBTXBCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDJCQUEyQixDQUFDOzRCQUN6RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMkJBQTJCLENBQUM7NEJBQ3pELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3dHQUtRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFJSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCBCaWcgZnJvbSAnYmlnLmpzJztcbmltcG9ydCB7IGZvcm1hdEJpZ051bWJlciwgbnVtYmVyVG9CaWcgfSBmcm9tICcuLi8uLi91dGlscy9iaWctbnVtYmVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXJkLWlucHV0LWFtb3VudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20taW5wdXQtYW1vdW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4vY3VzdG9tLWlucHV0LWFtb3VudC5jb21wb25lbnQuc2NzcycsXG4gICAgJy4uLy4uL2Fzc2V0cy9zY3NzL2Zvcm0taXRlbS5zY3NzJyxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDdXN0b21JbnB1dEFtb3VudENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDdXN0b21JbnB1dEFtb3VudENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21JbnB1dEFtb3VudENvbXBvbmVudFxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3JcbntcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgQElucHV0KCkgc3ltYm9sID0gJyc7XG4gIEBJbnB1dCgpIG5hbWUgPSAnJztcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgbWluPzogbnVtYmVyO1xuICBASW5wdXQoKSBtYXg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIG56UHJlY2lzaW9uID0gNjtcbiAgQElucHV0KCkgcmVxdWlyZWQgPSB0cnVlO1xuXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgaW52YWxpZDogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIG51bWJlcicsXG4gIH07XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgaW5wdXRWYWx1ZTogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgdmFsdWU6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIHRvdWNoZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsID0gbnVsbDtcbiAgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBvblZhbGlkYXRvckNoYW5nZTogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBnZXQgY3VycmVudEVycm9yTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5jb250cm9sPy5lcnJvcnMpIHJldHVybiAnJztcbiAgICBjb25zdCBmaXJzdEVycm9yID0gT2JqZWN0LmtleXModGhpcy5jb250cm9sPy5lcnJvcnMgfHwge30pWzBdO1xuICAgIGNvbnN0IG1zZyA9IHRoaXMuZXJyb3JNZXNzYWdlc1tmaXJzdEVycm9yXTtcblxuICAgIHN3aXRjaCAoZmlyc3RFcnJvcikge1xuICAgICAgY2FzZSAncmVxdWlyZWQnOlxuICAgICAgICByZXR1cm4gbXNnIHx8IGBQbGVhc2UgZW50ZXIgJHt0aGlzLmxhYmVsLnRvTG93ZXJDYXNlKCl9YDtcbiAgICAgIGNhc2UgJ21pbic6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbXNnIHx8XG4gICAgICAgICAgYCR7dGhpcy5sYWJlbH0gY2Fubm90IGJlIGxlc3MgdGhhbiAke2Zvcm1hdEJpZ051bWJlcih0aGlzLm1pbil9YFxuICAgICAgICApO1xuICAgICAgY2FzZSAnbWF4JzpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtc2cgfHwgYCR7dGhpcy5sYWJlbH0gY2Fubm90IGV4Y2VlZCAke2Zvcm1hdEJpZ051bWJlcih0aGlzLm1heCl9YFxuICAgICAgICApO1xuICAgICAgY2FzZSAncHJlY2lzaW9uJzpcbiAgICAgICAgcmV0dXJuIG1zZyB8fCBgTWF4aW11bSBkZWNpbWFsIHBsYWNlcyBpcyAke3RoaXMubnpQcmVjaXNpb259YDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBtc2cgfHwgJ1ZhbGlkYXRpb24gZmFpbGVkJztcbiAgICB9XG4gIH1cblxuICBnZXQgc2hvd0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhIXRoaXMuY29udHJvbD8uaW52YWxpZCAmJiAodGhpcy5jb250cm9sPy50b3VjaGVkIHx8IHRoaXMuY29udHJvbD8uZGlydHkpXG4gICAgKTtcbiAgfVxuXG4gIGhhbmRsZVZhbHVlQ2hhbmdlKHJhdzogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgcmF3VmFsdWUgPSByYXcucmVwbGFjZSgvLC9nLCAnJyk7XG5cbiAgICAvLyDlpITnkIbovpPlhaXnmoTlgLzvvIzovazmjaLmiJAgQmlnLmpzIOagvOW8j1xuICAgIHRoaXMudmFsdWUgPSBudW1iZXJUb0JpZyhyYXdWYWx1ZSwgdGhpcy5uelByZWNpc2lvbik7XG5cbiAgICAvLyDmm7TmlrDnu5HlrprlgLxcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcblxuICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcblxuICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IHRoaXMudmFsaWRhdGUodGhpcy5jb250cm9sKTtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRFcnJvcnMoZXJyb3JzKTtcbiAgICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgY29uc3QgZXJyb3JzID0gdGhpcy52YWxpZGF0ZSh0aGlzLmNvbnRyb2wpO1xuICAgICAgdGhpcy5jb250cm9sLnNldEVycm9ycyhlcnJvcnMpO1xuICAgICAgdGhpcy5vblZhbGlkYXRvckNoYW5nZSgpO1xuICAgIH1cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblZhbGlkYXRvckNoYW5nZSA9IGZuO1xuICB9XG5cbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmIChjb250cm9sKSB7XG4gICAgICB0aGlzLmNvbnRyb2wgPSBjb250cm9sO1xuICAgIH1cbiAgICBjb25zdCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgPSB7fTtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWU7XG5cbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdmFsdWUpIHtcbiAgICAgIGVycm9yc1sncmVxdWlyZWQnXSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBiaWdWYWx1ZSA9IG5ldyBCaWcodmFsdWUpO1xuXG4gICAgICAgIGlmICh0aGlzLm1pbiAmJiAhTnVtYmVyLmlzTmFOKHRoaXMubWluKSAmJiBiaWdWYWx1ZS5sdCh0aGlzLm1pbikpIHtcbiAgICAgICAgICBlcnJvcnNbJ21pbiddID0geyBtaW46IHRoaXMubWluLCBhY3R1YWw6IHZhbHVlIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubWF4ICYmICFOdW1iZXIuaXNOYU4odGhpcy5tYXgpICYmIGJpZ1ZhbHVlLmd0KHRoaXMubWF4KSkge1xuICAgICAgICAgIGVycm9yc1snbWF4J10gPSB7IG1heDogdGhpcy5tYXgsIGFjdHVhbDogdmFsdWUgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlY2ltYWxQbGFjZXMgPSB2YWx1ZS5zcGxpdCgnLicpWzFdPy5sZW5ndGggfHwgMDtcbiAgICAgICAgaWYgKGRlY2ltYWxQbGFjZXMgPiB0aGlzLm56UHJlY2lzaW9uKSB7XG4gICAgICAgICAgZXJyb3JzWydwcmVjaXNpb24nXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgZXJyb3JzWydpbnZhbGlkJ10gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhlcnJvcnMpLmxlbmd0aCA+IDAgPyBlcnJvcnMgOiBudWxsO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgIGNvbnN0IHYgPSB2YWx1ZT8udG9TdHJpbmcoKSA/PyAnJztcbiAgICB0aGlzLnZhbHVlID0gdjtcbiAgICB0aGlzLmlucHV0VmFsdWUgPSB2O1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8ZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmb3JtLW51bWJlci1pdGVtXCJcbiAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBkaXNhYmxlZCwgZXJyb3I6IHNob3dFcnJvciB9XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJpdGVtLWxhYmVsXCI+e3sgbGFiZWwgfX08L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb250ZW50XCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgbnotaW5wdXRcbiAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIicwJ1wiXG4gICAgICAgIFttYXNrXT1cIidzZXBhcmF0b3IuJyArIG56UHJlY2lzaW9uXCJcbiAgICAgICAgW3Rob3VzYW5kU2VwYXJhdG9yXT1cIicsJ1wiXG4gICAgICAgIFthbGxvd05lZ2F0aXZlTnVtYmVyc109XCJ0cnVlXCJcbiAgICAgICAgW2Ryb3BTcGVjaWFsQ2hhcmFjdGVyc109XCJmYWxzZVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRWYWx1ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImhhbmRsZVZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAgIGNsYXNzPVwiaXRlbS1jb250ZW50LXZhbHVlXCJcbiAgICAgIC8+XG4gICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb250ZW50LXN5bWJvbFwiPnt7IHN5bWJvbCB9fTwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJzaG93RXJyb3JcIiBjbGFzcz1cImZvcm0taXRlbS1lcnJvclwiPlxuICAgIDxpbWcgc3JjPVwiL2Fzc2V0cy9pbWcvaWNvbi9pY29uLWVycm9yLnN2Z1wiIC8+XG4gICAge3sgY3VycmVudEVycm9yTWVzc2FnZSB9fVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|