lib-portal-angular 0.0.65 → 0.0.66
Sign up to get free protection for your applications and to get access to all the features.
@@ -27,6 +27,9 @@ export class InputComponent {
|
|
27
27
|
this.onlyNumbers = false;
|
28
28
|
this.validateInput = false;
|
29
29
|
this.labelFontWeight = 400;
|
30
|
+
this.useMoneyMask = false; // Para ativar/desativar a máscara de moeda
|
31
|
+
this.currencyCode = 'BRL'; // Código da moeda
|
32
|
+
this.displayCurrencySymbol = true; // Exibir ou não o símbolo da moeda
|
30
33
|
this.inputEvent = new EventEmitter();
|
31
34
|
this.changeEvent = new EventEmitter();
|
32
35
|
this.focusEvent = new EventEmitter();
|
@@ -47,14 +50,12 @@ export class InputComponent {
|
|
47
50
|
onInput(event) {
|
48
51
|
const inputElement = event.target;
|
49
52
|
let inputValue = inputElement.value;
|
50
|
-
|
51
|
-
|
53
|
+
// Aplica máscara de números se necessário
|
54
|
+
if (this.onlyNumbers && !(this.useCpfMask || this.useCnpjMask || this.useCepMask || this.useMoneyMask)) {
|
55
|
+
inputValue = inputValue.replace(/\D/g, ''); // Remove todos os não numéricos
|
52
56
|
}
|
53
|
-
|
54
|
-
|
55
|
-
this.inputEvent.emit(event);
|
56
|
-
// Validar imediatamente após o último caractere numérico para CPF, CNPJ ou CEP
|
57
|
-
const numericValue = this.value.replace(/\D/g, ''); // Remove todos os caracteres não numéricos
|
57
|
+
// Validação imediata para CPF, CNPJ ou CEP
|
58
|
+
const numericValue = inputValue.replace(/\D/g, ''); // Remove todos os caracteres não numéricos
|
58
59
|
if (this.validateInput) {
|
59
60
|
if (this.useCpfMask && numericValue.length === 11 && !this.validateCpf(numericValue)) {
|
60
61
|
this.clearAndShowValidationError('CPF inválido. Por favor, insira um CPF correto.');
|
@@ -66,6 +67,40 @@ export class InputComponent {
|
|
66
67
|
this.clearAndShowValidationError('CEP inválido. Por favor, insira um CEP correto.');
|
67
68
|
}
|
68
69
|
}
|
70
|
+
// Máscara de moeda
|
71
|
+
if (this.useMoneyMask) {
|
72
|
+
const numericValue = inputValue.replace(/\D/g, ''); // Remove todos os não numéricos
|
73
|
+
const formattedValue = this.formatMoney(numericValue); // Formata como dinheiro ou número decimal
|
74
|
+
inputElement.value = formattedValue;
|
75
|
+
this.value = formattedValue;
|
76
|
+
}
|
77
|
+
else {
|
78
|
+
this.value = inputValue;
|
79
|
+
}
|
80
|
+
// Atualiza o valor e emite o evento de mudança
|
81
|
+
this.onChangeCallback(this.value);
|
82
|
+
this.inputEvent.emit(event);
|
83
|
+
}
|
84
|
+
formatMoney(value) {
|
85
|
+
if (!value)
|
86
|
+
return ''; // Se o valor estiver vazio, retorna uma string vazia
|
87
|
+
const numericValue = parseFloat(value) / 100;
|
88
|
+
// Verifica se deve exibir o símbolo da moeda ou não
|
89
|
+
if (this.displayCurrencySymbol) {
|
90
|
+
// Formata como moeda
|
91
|
+
return new Intl.NumberFormat('pt-BR', {
|
92
|
+
style: 'currency',
|
93
|
+
currency: this.currencyCode
|
94
|
+
}).format(numericValue);
|
95
|
+
}
|
96
|
+
else {
|
97
|
+
// Formata como número decimal, sem o símbolo da moeda
|
98
|
+
return new Intl.NumberFormat('pt-BR', {
|
99
|
+
style: 'decimal',
|
100
|
+
minimumFractionDigits: 2,
|
101
|
+
maximumFractionDigits: 2
|
102
|
+
}).format(numericValue);
|
103
|
+
}
|
69
104
|
}
|
70
105
|
onKeyDown(event) {
|
71
106
|
if (this.onlyNumbers && !/^\d$/.test(event.key) && event.key !== 'Backspace' && event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') {
|
@@ -187,7 +222,7 @@ export class InputComponent {
|
|
187
222
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
188
223
|
}
|
189
224
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputComponent, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
190
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: InputComponent, selector: "argenta-custom-input", inputs: { label: "label", placeholder: "placeholder", id: "id", type: "type", disabled: "disabled", readonly: "readonly", maxlength: "maxlength", minlength: "minlength", required: "required", pattern: "pattern", autofocus: "autofocus", useCpfMask: "useCpfMask", useCnpjMask: "useCnpjMask", useCepMask: "useCepMask", onlyNumbers: "onlyNumbers", validateInput: "validateInput", labelFontWeight: "labelFontWeight", permissions: "permissions" }, outputs: { inputEvent: "inputEvent", changeEvent: "changeEvent", focusEvent: "focusEvent", blurEvent: "blurEvent", keyupEvent: "keyupEvent", keydownEvent: "keydownEvent", keypressEvent: "keypressEvent" }, providers: [
|
225
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: InputComponent, selector: "argenta-custom-input", inputs: { label: "label", placeholder: "placeholder", id: "id", type: "type", disabled: "disabled", readonly: "readonly", maxlength: "maxlength", minlength: "minlength", required: "required", pattern: "pattern", autofocus: "autofocus", useCpfMask: "useCpfMask", useCnpjMask: "useCnpjMask", useCepMask: "useCepMask", onlyNumbers: "onlyNumbers", validateInput: "validateInput", labelFontWeight: "labelFontWeight", permissions: "permissions", useMoneyMask: "useMoneyMask", currencyCode: "currencyCode", displayCurrencySymbol: "displayCurrencySymbol" }, outputs: { inputEvent: "inputEvent", changeEvent: "changeEvent", focusEvent: "focusEvent", blurEvent: "blurEvent", keyupEvent: "keyupEvent", keydownEvent: "keydownEvent", keypressEvent: "keypressEvent" }, providers: [
|
191
226
|
{
|
192
227
|
provide: NG_VALUE_ACCESSOR,
|
193
228
|
useExisting: forwardRef(() => InputComponent),
|
@@ -240,6 +275,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
240
275
|
type: Input
|
241
276
|
}], permissions: [{
|
242
277
|
type: Input
|
278
|
+
}], useMoneyMask: [{
|
279
|
+
type: Input
|
280
|
+
}], currencyCode: [{
|
281
|
+
type: Input
|
282
|
+
}], displayCurrencySymbol: [{
|
283
|
+
type: Input
|
243
284
|
}], inputEvent: [{
|
244
285
|
type: Output
|
245
286
|
}], changeEvent: [{
|
@@ -255,4 +296,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
255
296
|
}], keypressEvent: [{
|
256
297
|
type: Output
|
257
298
|
}] } });
|
258
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGliLXBvcnRhbC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9pbXB1dC9pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWItcG9ydGFsLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2ltcHV0L2lucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZILE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFpQnpFLE1BQU0sT0FBTyxjQUFjO0lBcUN6QixZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQXBDbkMsVUFBSyxHQUFXLGVBQWUsQ0FBQztRQUNoQyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixPQUFFLEdBQVcsU0FBUyxDQUFDO1FBQ3ZCLFNBQUksR0FBVyxNQUFNLENBQUM7UUFDdEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBQ2hDLGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBQ2hDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsWUFBTyxHQUFrQixJQUFJLENBQUM7UUFDOUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0Isa0JBQWEs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QUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqRixTQUFTLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzVCLElBQUksU0FBUyxLQUFLLEVBQUUsSUFBSSxTQUFTLEtBQUssRUFBRTtZQUFFLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDeEQsSUFBSSxTQUFTLEtBQUssUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDL0QsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNSLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQUUsR0FBRyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsRixTQUFTLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzVCLElBQUksU0FBUyxLQUFLLEVBQUUsSUFBSSxTQUFTLEtBQUssRUFBRTtZQUFFLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDeEQsT0FBTyxTQUFTLEtBQUssUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFZO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxFQUFFO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDckMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDN0IsSUFBSSxPQUFPLEdBQUcs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QWIxQixTQUFTOytCQUNFLHNCQUFzQixhQUdyQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUM7NEJBQzdDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNO2tHQUd0QyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXV0aC1zZXJ2aWNlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcmdlbnRhLWN1c3RvbS1pbnB1dCcsXG4gIHN0eWxlVXJsczogWycuL2lucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnRGVmYXVsdCBMYWJlbCc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgaWQ6IHN0cmluZyA9ICdpbnB1dElkJztcbiAgQElucHV0KCkgdHlwZTogc3RyaW5nID0gJ3RleHQnO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtYXhsZW5ndGg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBtaW5sZW5ndGg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwYXR0ZXJuOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgYXV0b2ZvY3VzOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHVzZUNwZk1hc2s6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgdXNlQ25wak1hc2s6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgdXNlQ2VwTWFzazogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBvbmx5TnVtYmVyczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB2YWxpZGF0ZUlucHV0OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxhYmVsRm9udFdlaWdodDogbnVtYmVyID0gNDAwO1xuICBASW5wdXQoKSBwZXJtaXNzaW9uczogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG5cbiAgQE91dHB1dCgpIGlucHV0RXZlbnQ6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuICBAT3V0cHV0KCkgY2hhbmdlRXZlbnQ6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuICBAT3V0cHV0KCkgZm9jdXNFdmVudDogRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuICBAT3V0cHV0KCkgYmx1ckV2ZW50OiBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBrZXl1cEV2ZW50OiBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBrZXlkb3duRXZlbnQ6IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4oKTtcbiAgQE91dHB1dCgpIGtleXByZXNzRXZlbnQ6IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4oKTtcblxuICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7IH07XG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSAoKSA9PiB7IH07XG5cbiAgdmFsdWU6IHN0cmluZyA9ICcnO1xuICBzaG93RXJyb3JNb2RhbDogYm9vbGVhbiA9IGZhbHNlO1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSkgeyB9XG5cbiAgZ2V0SW5wdXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMub25seU51bWJlcnMgPyAndGVsJyA6IHRoaXMudHlwZTtcbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgbGV0IGlucHV0VmFsdWUgPSBpbnB1dEVsZW1lbnQudmFsdWU7XG5cbiAgICBpZiAoKHRoaXMub25seU51bWJlcnMpICYmICEodGhpcy51c2VDcGZNYXNrIHx8IHRoaXMudXNlQ25wak1hc2sgfHwgdGhpcy51c2VDZXBNYXNrKSkge1xuICAgICAgaW5wdXRWYWx1ZSA9IGlucHV0VmFsdWUucmVwbGFjZSgvXFxEL2csICcnKTtcbiAgICB9XG5cbiAgICB0aGlzLnZhbHVlID0gaW5wdXRWYWx1ZTtcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5pbnB1dEV2ZW50LmVtaXQoZXZlbnQpO1xuXG4gICAgLy8gVmFsaWRhciBpbWVkaWF0YW1lbnRlIGFww7NzIG8gw7psdGltbyBjYXJhY3RlcmUgbnVtw6lyaWNvIHBhcmEgQ1BGLCBDTlBKIG91IENFUFxuICAgIGNvbnN0IG51bWVyaWNWYWx1ZSA9IHRoaXMudmFsdWUucmVwbGFjZSgvXFxEL2csICcnKTsgLy8gUmVtb3ZlIHRvZG9zIG9zIGNhcmFjdGVyZXMgbsOjbyBudW3DqXJpY29zXG4gICAgaWYgKHRoaXMudmFsaWRhdGVJbnB1dCkge1xuICAgICAgaWYgKHRoaXMudXNlQ3BmTWFzayAmJiBudW1lcmljVmFsdWUubGVuZ3RoID09PSAxMSAmJiAhdGhpcy52YWxpZGF0ZUNwZihudW1lcmljVmFsdWUpKSB7XG4gICAgICAgIHRoaXMuY2xlYXJBbmRTaG93VmFsaWRhdGlvbkVycm9yKCdDUEYgaW52w6FsaWRvLiBQb3IgZmF2b3IsIGluc2lyYSB1bSBDUEYgY29ycmV0by4nKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy51c2VDbnBqTWFzayAmJiBudW1lcmljVmFsdWUubGVuZ3RoID09PSAxNCAmJiAhdGhpcy52YWxpZGF0ZUNucGoobnVtZXJpY1ZhbHVlKSkge1xuICAgICAgICB0aGlzLmNsZWFyQW5kU2hvd1ZhbGlkYXRpb25FcnJvcignQ05QSiBpbnbDoWxpZG8uIFBvciBmYXZvciwgaW5zaXJhIHVtIENOUEogY29ycmV0by4nKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy51c2VDZXBNYXNrICYmIG51bWVyaWNWYWx1ZS5sZW5ndGggPT09IDggJiYgIXRoaXMudmFsaWRhdGVDZXAobnVtZXJpY1ZhbHVlKSkge1xuICAgICAgICB0aGlzLmNsZWFyQW5kU2hvd1ZhbGlkYXRpb25FcnJvcignQ0VQIGludsOhbGlkby4gUG9yIGZhdm9yLCBpbnNpcmEgdW0gQ0VQIGNvcnJldG8uJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMub25seU51bWJlcnMgJiYgIS9eXFxkJC8udGVzdChldmVudC5rZXkpICYmIGV2ZW50LmtleSAhPT0gJ0JhY2tzcGFjZScgJiYgZXZlbnQua2V5ICE9PSAnQXJyb3dMZWZ0JyAmJiBldmVudC5rZXkgIT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBvbkNoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCBudW1lcmljVmFsdWUgPSB0aGlzLnZhbHVlLnJlcGxhY2UoL1xcRC9nLCAnJyk7IC8vIFJlbW92ZSB0b2RvcyBvcyBjYXJhY3RlcmVzIG7Do28gbnVtw6lyaWNvc1xuICAgIC8vIFZhbGlkYcOnw6NvIHRhbWLDqW0gb2NvcnJlIG5vIGJsdXIgcGFyYSBjYXNvcyBvbmRlIG8gaW5wdXQgbsOjbyBlc3TDoSBjb21wbGV0b1xuICAgIGlmICh0aGlzLnZhbGlkYXRlSW5wdXQpIHtcbiAgICAgIGlmICh0aGlzLnVzZUNwZk1hc2sgJiYgIXRoaXMudmFsaWRhdGVDcGYobnVtZXJpY1ZhbHVlKSkge1xuICAgICAgICB0aGlzLmNsZWFyQW5kU2hvd1ZhbGlkYXRpb25FcnJvcignQ1BGIGludsOhbGlkby4gUG9yIGZhdm9yLCBpbnNpcmEgdW0gQ1BGIGNvcnJldG8uJyk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudXNlQ25wak1hc2sgJiYgIXRoaXMudmFsaWRhdGVDbnBqKG51bWVyaWNWYWx1ZSkpIHtcbiAgICAgICAgdGhpcy5jbGVhckFuZFNob3dWYWxpZGF0aW9uRXJyb3IoJ0NOUEogaW52w6FsaWRvLiBQb3IgZmF2b3IsIGluc2lyYSB1bSBDTlBKIGNvcnJldG8uJyk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudXNlQ2VwTWFzayAmJiAhdGhpcy52YWxpZGF0ZUNlcChudW1lcmljVmFsdWUpKSB7XG4gICAgICAgIHRoaXMuY2xlYXJBbmRTaG93VmFsaWRhdGlvbkVycm9yKCdDRVAgaW52w6FsaWRvLiBQb3IgZmF2b3IsIGluc2lyYSB1bSBDRVAgY29ycmV0by4nKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jaGFuZ2VFdmVudC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHZhbGlkYXRlQ3BmKGNwZjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKGNwZi5sZW5ndGggIT09IDExIHx8IC9eKFxcZClcXDErJC8udGVzdChjcGYpKSByZXR1cm4gZmFsc2U7XG4gICAgbGV0IHN1bSA9IDAsIHJlbWFpbmRlcjtcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8PSA5OyBpKyspIHN1bSArPSBwYXJzZUludChjcGYuc3Vic3RyaW5nKGkgLSAxLCBpKSkgKiAoMTEgLSBpKTtcbiAgICByZW1haW5kZXIgPSAoc3VtICogMTApICUgMTE7XG4gICAgaWYgKHJlbWFpbmRlciA9PT0gMTAgfHwgcmVtYWluZGVyID09PSAxMSkgcmVtYWluZGVyID0gMDtcbiAgICBpZiAocmVtYWluZGVyICE9PSBwYXJzZUludChjcGYuc3Vic3RyaW5nKDksIDEwKSkpIHJldHVybiBmYWxzZTtcbiAgICBzdW0gPSAwO1xuICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IDEwOyBpKyspIHN1bSArPSBwYXJzZUludChjcGYuc3Vic3RyaW5nKGkgLSAxLCBpKSkgKiAoMTIgLSBpKTtcbiAgICByZW1haW5kZXIgPSAoc3VtICogMTApICUgMTE7XG4gICAgaWYgKHJlbWFpbmRlciA9PT0gMTAgfHwgcmVtYWluZGVyID09PSAxMSkgcmVtYWluZGVyID0gMDtcbiAgICByZXR1cm4gcmVtYWluZGVyID09PSBwYXJzZUludChjcGYuc3Vic3RyaW5nKDEwLCAxMSkpO1xuICB9XG5cbiAgdmFsaWRhdGVDbnBqKGNucGo6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmIChjbnBqLmxlbmd0aCAhPT0gMTQpIHJldHVybiBmYWxzZTtcbiAgICBsZXQgbGVuZ3RoID0gY25wai5sZW5ndGggLSAyO1xuICAgIGxldCBudW1iZXJzID0gY25wai5zdWJzdHJpbmcoMCwgbGVuZ3RoKTtcbiAgICBsZXQgZGlnaXRzID0gY25wai5zdWJzdHJpbmcobGVuZ3RoKTtcbiAgICBsZXQgc3VtID0gMCwgcG9zID0gbGVuZ3RoIC0gNztcbiAgICBmb3IgKGxldCBpID0gbGVuZ3RoOyBpID49IDE7IGktLSkge1xuICAgICAgc3VtICs9IHBhcnNlSW50KG51bWJlcnMuY2hhckF0KGxlbmd0aCAtIGkpKSAqIHBvcy0tO1xuICAgICAgaWYgKHBvcyA8IDIpIHBvcyA9IDk7XG4gICAgfVxuICAgIGxldCByZXN1bHQgPSBzdW0gJSAxMSA8IDIgPyAwIDogMTEgLSBzdW0gJSAxMTtcbiAgICBpZiAocmVzdWx0ICE9PSBwYXJzZUludChkaWdpdHMuY2hhckF0KDApKSkgcmV0dXJuIGZhbHNlO1xuICAgIGxlbmd0aCA9IGxlbmd0aCArIDE7XG4gICAgbnVtYmVycyA9IGNucGouc3Vic3RyaW5nKDAsIGxlbmd0aCk7XG4gICAgc3VtID0gMDtcbiAgICBwb3MgPSBsZW5ndGggLSA3O1xuICAgIGZvciAobGV0IGkgPSBsZW5ndGg7IGkgPj0gMTsgaS0tKSB7XG4gICAgICBzdW0gKz0gcGFyc2VJbnQobnVtYmVycy5jaGFyQXQobGVuZ3RoIC0gaSkpICogcG9zLS07XG4gICAgICBpZiAocG9zIDwgMikgcG9zID0gOTtcbiAgICB9XG4gICAgcmVzdWx0ID0gc3VtICUgMTEgPCAyID8gMCA6IDExIC0gc3VtICUgMTE7XG4gICAgcmV0dXJuIHJlc3VsdCA9PT0gcGFyc2VJbnQoZGlnaXRzLmNoYXJBdCgxKSk7XG4gIH1cblxuICB2YWxpZGF0ZUNlcChjZXA6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAvXlxcZHs4fSQvLnRlc3QoY2VwKTsgLy8gVmFsaWRhIGFwZW5hcyBuw7ptZXJvcywgc2VtIGNvbnNpZGVyYXIgYSBtw6FzY2FyYVxuICB9XG5cbiAgY2xlYXJBbmRTaG93VmFsaWRhdGlvbkVycm9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSAnJzsgLy8gTGltcGEgbyB2YWxvciBkbyBuZ01vZGVsXG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMudmFsdWUpOyAvLyBBdHVhbGl6YSBvIG5nTW9kZWwgY29tIG8gdmFsb3IgbGltcG9cbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgdGhpcy5zaG93RXJyb3JNb2RhbCA9IHRydWU7XG4gIH1cblxuICBjbG9zZU1vZGFsKCkge1xuICAgIHRoaXMuc2hvd0Vycm9yTW9kYWwgPSBmYWxzZTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICcnO1xuICB9XG5cbiAgb25Gb2N1cyhldmVudDogRm9jdXNFdmVudCkge1xuICAgIHRoaXMuZm9jdXNFdmVudC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uQmx1cihldmVudDogRm9jdXNFdmVudCkge1xuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLmJsdXJFdmVudC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIGhhc1Blcm1pc3Npb24oKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnBlcm1pc3Npb25zIHx8IHRoaXMucGVybWlzc2lvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuaGFzUGVybWlzc2lvbih0aGlzLnBlcm1pc3Npb25zKTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignUGVybWlzc2lvbiBlcnJvcjonLCBlcnJvci5tZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1Vua25vd24gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHBlcm1pc3Npb24gY2hlY2snKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJoYXNQZXJtaXNzaW9uKClcIiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgPGxhYmVsIFtmb3JdPVwiaWRcIiBbbmdDbGFzc109XCInbGFiZWwtc3R5bGVzJ1wiPnt7IGxhYmVsIH19PC9sYWJlbD5cbiAgPGlucHV0IFt0eXBlXT1cImdldElucHV0VHlwZSgpXCJcbiAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGN1c3RvbS1pbnB1dFwiXG4gICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgICAgICAoa2V5dXApPVwia2V5dXBFdmVudC5lbWl0KCRldmVudClcIlxuICAgICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgICAgICAgKGtleXByZXNzKT1cImtleXByZXNzRXZlbnQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgW2F0dHIubWF4bGVuZ3RoXT1cIm1heGxlbmd0aFwiXG4gICAgICAgICBbYXR0ci5taW5sZW5ndGhdPVwibWlubGVuZ3RoXCJcbiAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICBbYXR0ci5wYXR0ZXJuXT1cInBhdHRlcm5cIlxuICAgICAgICAgW2F1dG9mb2N1c109XCJhdXRvZm9jdXNcIlxuICAgICAgICAgW2NwZk1hc2tdPVwidXNlQ3BmTWFza1wiICBcbiAgICAgICAgIFtjbnBqTWFza109XCJ1c2VDbnBqTWFza1wiIFxuICAgICAgICAgW2NlcE1hc2tdPVwidXNlQ2VwTWFza1wiPlxuXG4gIDwhLS0gTW9kYWwgcGFyYSBleGliaXIgbWVuc2FnZW5zIGRlIGVycm8gLS0+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1vdmVybGF5XCIgKm5nSWY9XCJzaG93RXJyb3JNb2RhbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImNsb3NlXCIgKGNsaWNrKT1cImNsb3NlTW9kYWwoKVwiPiZ0aW1lczs8L3NwYW4+XG4gICAgICA8cD57eyBlcnJvck1lc3NhZ2UgfX08L3A+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLW9rXCIgKGNsaWNrKT1cImNsb3NlTW9kYWwoKVwiPk9LPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGliLXBvcnRhbC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9pbXB1dC9pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWItcG9ydGFsLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2ltcHV0L2lucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZILE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFpQnpFLE1BQU0sT0FBTyxjQUFjO0lBeUN6QixZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQXhDbkMsVUFBSyxHQUFXLGVBQWUsQ0FBQztRQUNoQyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixPQUFFLEdBQVcsU0FBUyxDQUFDO1FBQ3ZCLFNBQUksR0FBVyxNQUFNLENBQUM7UUFDdEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBQ2hDLGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBQ2hDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsWUFBTyxHQUFrQixJQUFJLENBQUM7UUFDOUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0Isa0JBQWEs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ZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXV0aC1zZXJ2aWNlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcmdlbnRhLWN1c3RvbS1pbnB1dCcsXG4gIHN0eWxlVXJsczogWycuL2lucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnRGVmYXVsdCBMYWJlbCc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgaWQ6IHN0cmluZyA9ICdpbnB1dElkJztcbiAgQElucHV0KCkgdHlwZTogc3RyaW5nID0gJ3RleHQnO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtYXhsZW5ndGg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBtaW5sZW5ndGg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwYXR0ZXJuOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgYXV0b2ZvY3VzOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHVzZUNwZk1hc2s6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgdXNlQ25wak1hc2s6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgdXNlQ2VwTWFzazogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBvbmx5TnVtYmVyczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB2YWxpZGF0ZUlucHV0OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxhYmVsRm9udFdlaWdodDogbnVtYmVyID0gNDAwO1xuICBASW5wdXQoKSBwZXJtaXNzaW9uczogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHVzZU1vbmV5TWFzazogYm9vbGVhbiA9IGZhbHNlOyAvLyBQYXJhIGF0aXZhci9kZXNhdGl2YXIgYSBtw6FzY2FyYSBkZSBtb2VkYVxuICBASW5wdXQoKSBjdXJyZW5jeUNvZGU6IHN0cmluZyA9ICdCUkwnOyAvLyBDw7NkaWdvIGRhIG1vZWRhXG4gIEBJbnB1dCgpIGRpc3BsYXlDdXJyZW5jeVN5bWJvbDogYm9vbGVhbiA9IHRydWU7IC8vIEV4aWJpciBvdSBuw6NvIG8gc8OtbWJvbG8gZGEgbW9lZGFcblxuXG4gIEBPdXRwdXQoKSBpbnB1dEV2ZW50OiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgQE91dHB1dCgpIGNoYW5nZUV2ZW50OiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgQE91dHB1dCgpIGZvY3VzRXZlbnQ6IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcbiAgQE91dHB1dCgpIGJsdXJFdmVudDogRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuICBAT3V0cHV0KCkga2V5dXBFdmVudDogRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xuICBAT3V0cHV0KCkga2V5ZG93bkV2ZW50OiBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBrZXlwcmVzc0V2ZW50OiBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gKCkgPT4geyB9O1xuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gKCkgPT4geyB9O1xuXG4gIHZhbHVlOiBzdHJpbmcgPSAnJztcbiAgc2hvd0Vycm9yTW9kYWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnJztcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UpIHsgfVxuXG4gIGdldElucHV0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm9ubHlOdW1iZXJzID8gJ3RlbCcgOiB0aGlzLnR5cGU7XG4gIH1cblxuICBvbklucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGxldCBpbnB1dFZhbHVlID0gaW5wdXRFbGVtZW50LnZhbHVlO1xuXG4gICAgLy8gQXBsaWNhIG3DoXNjYXJhIGRlIG7Dum1lcm9zIHNlIG5lY2Vzc8OhcmlvXG4gICAgaWYgKHRoaXMub25seU51bWJlcnMgJiYgISh0aGlzLnVzZUNwZk1hc2sgfHwgdGhpcy51c2VDbnBqTWFzayB8fCB0aGlzLnVzZUNlcE1hc2sgfHwgdGhpcy51c2VNb25leU1hc2spKSB7XG4gICAgICBpbnB1dFZhbHVlID0gaW5wdXRWYWx1ZS5yZXBsYWNlKC9cXEQvZywgJycpOyAvLyBSZW1vdmUgdG9kb3Mgb3MgbsOjbyBudW3DqXJpY29zXG4gICAgfVxuXG4gICAgLy8gVmFsaWRhw6fDo28gaW1lZGlhdGEgcGFyYSBDUEYsIENOUEogb3UgQ0VQXG4gICAgY29uc3QgbnVtZXJpY1ZhbHVlID0gaW5wdXRWYWx1ZS5yZXBsYWNlKC9cXEQvZywgJycpOyAvLyBSZW1vdmUgdG9kb3Mgb3MgY2FyYWN0ZXJlcyBuw6NvIG51bcOpcmljb3NcbiAgICBpZiAodGhpcy52YWxpZGF0ZUlucHV0KSB7XG4gICAgICBpZiAodGhpcy51c2VDcGZNYXNrICYmIG51bWVyaWNWYWx1ZS5sZW5ndGggPT09IDExICYmICF0aGlzLnZhbGlkYXRlQ3BmKG51bWVyaWNWYWx1ZSkpIHtcbiAgICAgICAgdGhpcy5jbGVhckFuZFNob3dWYWxpZGF0aW9uRXJyb3IoJ0NQRiBpbnbDoWxpZG8uIFBvciBmYXZvciwgaW5zaXJhIHVtIENQRiBjb3JyZXRvLicpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnVzZUNucGpNYXNrICYmIG51bWVyaWNWYWx1ZS5sZW5ndGggPT09IDE0ICYmICF0aGlzLnZhbGlkYXRlQ25waihudW1lcmljVmFsdWUpKSB7XG4gICAgICAgIHRoaXMuY2xlYXJBbmRTaG93VmFsaWRhdGlvbkVycm9yKCdDTlBKIGludsOhbGlkby4gUG9yIGZhdm9yLCBpbnNpcmEgdW0gQ05QSiBjb3JyZXRvLicpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnVzZUNlcE1hc2sgJiYgbnVtZXJpY1ZhbHVlLmxlbmd0aCA9PT0gOCAmJiAhdGhpcy52YWxpZGF0ZUNlcChudW1lcmljVmFsdWUpKSB7XG4gICAgICAgIHRoaXMuY2xlYXJBbmRTaG93VmFsaWRhdGlvbkVycm9yKCdDRVAgaW52w6FsaWRvLiBQb3IgZmF2b3IsIGluc2lyYSB1bSBDRVAgY29ycmV0by4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNw6FzY2FyYSBkZSBtb2VkYVxuICAgIGlmICh0aGlzLnVzZU1vbmV5TWFzaykge1xuICAgICAgY29uc3QgbnVtZXJpY1ZhbHVlID0gaW5wdXRWYWx1ZS5yZXBsYWNlKC9cXEQvZywgJycpOyAvLyBSZW1vdmUgdG9kb3Mgb3MgbsOjbyBudW3DqXJpY29zXG4gICAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHRoaXMuZm9ybWF0TW9uZXkobnVtZXJpY1ZhbHVlKTsgLy8gRm9ybWF0YSBjb21vIGRpbmhlaXJvIG91IG7Dum1lcm8gZGVjaW1hbFxuICAgICAgaW5wdXRFbGVtZW50LnZhbHVlID0gZm9ybWF0dGVkVmFsdWU7XG4gICAgICB0aGlzLnZhbHVlID0gZm9ybWF0dGVkVmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWUgPSBpbnB1dFZhbHVlO1xuICAgIH1cblxuICAgIC8vIEF0dWFsaXphIG8gdmFsb3IgZSBlbWl0ZSBvIGV2ZW50byBkZSBtdWRhbsOnYVxuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLmlucHV0RXZlbnQuZW1pdChldmVudCk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdE1vbmV5KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghdmFsdWUpIHJldHVybiAnJzsgLy8gU2UgbyB2YWxvciBlc3RpdmVyIHZhemlvLCByZXRvcm5hIHVtYSBzdHJpbmcgdmF6aWFcblxuICAgIGNvbnN0IG51bWVyaWNWYWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpIC8gMTAwO1xuXG4gICAgLy8gVmVyaWZpY2Egc2UgZGV2ZSBleGliaXIgbyBzw61tYm9sbyBkYSBtb2VkYSBvdSBuw6NvXG4gICAgaWYgKHRoaXMuZGlzcGxheUN1cnJlbmN5U3ltYm9sKSB7XG4gICAgICAvLyBGb3JtYXRhIGNvbW8gbW9lZGFcbiAgICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQoJ3B0LUJSJywge1xuICAgICAgICBzdHlsZTogJ2N1cnJlbmN5JyxcbiAgICAgICAgY3VycmVuY3k6IHRoaXMuY3VycmVuY3lDb2RlXG4gICAgICB9KS5mb3JtYXQobnVtZXJpY1ZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRm9ybWF0YSBjb21vIG7Dum1lcm8gZGVjaW1hbCwgc2VtIG8gc8OtbWJvbG8gZGEgbW9lZGFcbiAgICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQoJ3B0LUJSJywge1xuICAgICAgICBzdHlsZTogJ2RlY2ltYWwnLFxuICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDIsXG4gICAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMlxuICAgICAgfSkuZm9ybWF0KG51bWVyaWNWYWx1ZSk7XG4gICAgfVxuICB9XG5cblxuXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLm9ubHlOdW1iZXJzICYmICEvXlxcZCQvLnRlc3QoZXZlbnQua2V5KSAmJiBldmVudC5rZXkgIT09ICdCYWNrc3BhY2UnICYmIGV2ZW50LmtleSAhPT0gJ0Fycm93TGVmdCcgJiYgZXZlbnQua2V5ICE9PSAnQXJyb3dSaWdodCcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgb25DaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgbnVtZXJpY1ZhbHVlID0gdGhpcy52YWx1ZS5yZXBsYWNlKC9cXEQvZywgJycpOyAvLyBSZW1vdmUgdG9kb3Mgb3MgY2FyYWN0ZXJlcyBuw6NvIG51bcOpcmljb3NcbiAgICAvLyBWYWxpZGHDp8OjbyB0YW1iw6ltIG9jb3JyZSBubyBibHVyIHBhcmEgY2Fzb3Mgb25kZSBvIGlucHV0IG7Do28gZXN0w6EgY29tcGxldG9cbiAgICBpZiAodGhpcy52YWxpZGF0ZUlucHV0KSB7XG4gICAgICBpZiAodGhpcy51c2VDcGZNYXNrICYmICF0aGlzLnZhbGlkYXRlQ3BmKG51bWVyaWNWYWx1ZSkpIHtcbiAgICAgICAgdGhpcy5jbGVhckFuZFNob3dWYWxpZGF0aW9uRXJyb3IoJ0NQRiBpbnbDoWxpZG8uIFBvciBmYXZvciwgaW5zaXJhIHVtIENQRiBjb3JyZXRvLicpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnVzZUNucGpNYXNrICYmICF0aGlzLnZhbGlkYXRlQ25waihudW1lcmljVmFsdWUpKSB7XG4gICAgICAgIHRoaXMuY2xlYXJBbmRTaG93VmFsaWRhdGlvbkVycm9yKCdDTlBKIGludsOhbGlkby4gUG9yIGZhdm9yLCBpbnNpcmEgdW0gQ05QSiBjb3JyZXRvLicpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnVzZUNlcE1hc2sgJiYgIXRoaXMudmFsaWRhdGVDZXAobnVtZXJpY1ZhbHVlKSkge1xuICAgICAgICB0aGlzLmNsZWFyQW5kU2hvd1ZhbGlkYXRpb25FcnJvcignQ0VQIGludsOhbGlkby4gUG9yIGZhdm9yLCBpbnNpcmEgdW0gQ0VQIGNvcnJldG8uJyk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2hhbmdlRXZlbnQuZW1pdChldmVudCk7XG4gIH1cblxuICB2YWxpZGF0ZUNwZihjcGY6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmIChjcGYubGVuZ3RoICE9PSAxMSB8fCAvXihcXGQpXFwxKyQvLnRlc3QoY3BmKSkgcmV0dXJuIGZhbHNlO1xuICAgIGxldCBzdW0gPSAwLCByZW1haW5kZXI7XG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gOTsgaSsrKSBzdW0gKz0gcGFyc2VJbnQoY3BmLnN1YnN0cmluZyhpIC0gMSwgaSkpICogKDExIC0gaSk7XG4gICAgcmVtYWluZGVyID0gKHN1bSAqIDEwKSAlIDExO1xuICAgIGlmIChyZW1haW5kZXIgPT09IDEwIHx8IHJlbWFpbmRlciA9PT0gMTEpIHJlbWFpbmRlciA9IDA7XG4gICAgaWYgKHJlbWFpbmRlciAhPT0gcGFyc2VJbnQoY3BmLnN1YnN0cmluZyg5LCAxMCkpKSByZXR1cm4gZmFsc2U7XG4gICAgc3VtID0gMDtcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8PSAxMDsgaSsrKSBzdW0gKz0gcGFyc2VJbnQoY3BmLnN1YnN0cmluZyhpIC0gMSwgaSkpICogKDEyIC0gaSk7XG4gICAgcmVtYWluZGVyID0gKHN1bSAqIDEwKSAlIDExO1xuICAgIGlmIChyZW1haW5kZXIgPT09IDEwIHx8IHJlbWFpbmRlciA9PT0gMTEpIHJlbWFpbmRlciA9IDA7XG4gICAgcmV0dXJuIHJlbWFpbmRlciA9PT0gcGFyc2VJbnQoY3BmLnN1YnN0cmluZygxMCwgMTEpKTtcbiAgfVxuXG4gIHZhbGlkYXRlQ25waihjbnBqOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoY25wai5sZW5ndGggIT09IDE0KSByZXR1cm4gZmFsc2U7XG4gICAgbGV0IGxlbmd0aCA9IGNucGoubGVuZ3RoIC0gMjtcbiAgICBsZXQgbnVtYmVycyA9IGNucGouc3Vic3RyaW5nKDAsIGxlbmd0aCk7XG4gICAgbGV0IGRpZ2l0cyA9IGNucGouc3Vic3RyaW5nKGxlbmd0aCk7XG4gICAgbGV0IHN1bSA9IDAsIHBvcyA9IGxlbmd0aCAtIDc7XG4gICAgZm9yIChsZXQgaSA9IGxlbmd0aDsgaSA+PSAxOyBpLS0pIHtcbiAgICAgIHN1bSArPSBwYXJzZUludChudW1iZXJzLmNoYXJBdChsZW5ndGggLSBpKSkgKiBwb3MtLTtcbiAgICAgIGlmIChwb3MgPCAyKSBwb3MgPSA5O1xuICAgIH1cbiAgICBsZXQgcmVzdWx0ID0gc3VtICUgMTEgPCAyID8gMCA6IDExIC0gc3VtICUgMTE7XG4gICAgaWYgKHJlc3VsdCAhPT0gcGFyc2VJbnQoZGlnaXRzLmNoYXJBdCgwKSkpIHJldHVybiBmYWxzZTtcbiAgICBsZW5ndGggPSBsZW5ndGggKyAxO1xuICAgIG51bWJlcnMgPSBjbnBqLnN1YnN0cmluZygwLCBsZW5ndGgpO1xuICAgIHN1bSA9IDA7XG4gICAgcG9zID0gbGVuZ3RoIC0gNztcbiAgICBmb3IgKGxldCBpID0gbGVuZ3RoOyBpID49IDE7IGktLSkge1xuICAgICAgc3VtICs9IHBhcnNlSW50KG51bWJlcnMuY2hhckF0KGxlbmd0aCAtIGkpKSAqIHBvcy0tO1xuICAgICAgaWYgKHBvcyA8IDIpIHBvcyA9IDk7XG4gICAgfVxuICAgIHJlc3VsdCA9IHN1bSAlIDExIDwgMiA/IDAgOiAxMSAtIHN1bSAlIDExO1xuICAgIHJldHVybiByZXN1bHQgPT09IHBhcnNlSW50KGRpZ2l0cy5jaGFyQXQoMSkpO1xuICB9XG5cbiAgdmFsaWRhdGVDZXAoY2VwOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gL15cXGR7OH0kLy50ZXN0KGNlcCk7IC8vIFZhbGlkYSBhcGVuYXMgbsO6bWVyb3MsIHNlbSBjb25zaWRlcmFyIGEgbcOhc2NhcmFcbiAgfVxuXG4gIGNsZWFyQW5kU2hvd1ZhbGlkYXRpb25FcnJvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gJyc7IC8vIExpbXBhIG8gdmFsb3IgZG8gbmdNb2RlbFxuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLnZhbHVlKTsgLy8gQXR1YWxpemEgbyBuZ01vZGVsIGNvbSBvIHZhbG9yIGxpbXBvXG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgIHRoaXMuc2hvd0Vycm9yTW9kYWwgPSB0cnVlO1xuICB9XG5cbiAgY2xvc2VNb2RhbCgpIHtcbiAgICB0aGlzLnNob3dFcnJvck1vZGFsID0gZmFsc2U7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcbiAgfVxuXG4gIG9uRm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICB0aGlzLmZvY3VzRXZlbnQuZW1pdChldmVudCk7XG4gIH1cblxuICBvbkJsdXIoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5ibHVyRXZlbnQuZW1pdChldmVudCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBoYXNQZXJtaXNzaW9uKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5wZXJtaXNzaW9ucyB8fCB0aGlzLnBlcm1pc3Npb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmhhc1Blcm1pc3Npb24odGhpcy5wZXJtaXNzaW9ucyk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1Blcm1pc3Npb24gZXJyb3I6JywgZXJyb3IubWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdVbmtub3duIGVycm9yIG9jY3VycmVkIGR1cmluZyBwZXJtaXNzaW9uIGNoZWNrJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiaGFzUGVybWlzc2lvbigpXCIgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gIDxsYWJlbCBbZm9yXT1cImlkXCIgW25nQ2xhc3NdPVwiJ2xhYmVsLXN0eWxlcydcIj57eyBsYWJlbCB9fTwvbGFiZWw+XG4gIDxpbnB1dCBbdHlwZV09XCJnZXRJbnB1dFR5cGUoKVwiXG4gICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBjdXN0b20taW5wdXRcIlxuICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxuICAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxuICAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxuICAgICAgICAgKGtleXVwKT1cImtleXVwRXZlbnQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICAgIChrZXlwcmVzcyk9XCJrZXlwcmVzc0V2ZW50LmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxuICAgICAgICAgW2F0dHIubWlubGVuZ3RoXT1cIm1pbmxlbmd0aFwiXG4gICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgW2F0dHIucGF0dGVybl09XCJwYXR0ZXJuXCJcbiAgICAgICAgIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICAgICAgIFtjcGZNYXNrXT1cInVzZUNwZk1hc2tcIiAgXG4gICAgICAgICBbY25wak1hc2tdPVwidXNlQ25wak1hc2tcIiBcbiAgICAgICAgIFtjZXBNYXNrXT1cInVzZUNlcE1hc2tcIj5cblxuICA8IS0tIE1vZGFsIHBhcmEgZXhpYmlyIG1lbnNhZ2VucyBkZSBlcnJvIC0tPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtb3ZlcmxheVwiICpuZ0lmPVwic2hvd0Vycm9yTW9kYWxcIj5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjbG9zZVwiIChjbGljayk9XCJjbG9zZU1vZGFsKClcIj4mdGltZXM7PC9zcGFuPlxuICAgICAgPHA+e3sgZXJyb3JNZXNzYWdlIH19PC9wPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1va1wiIChjbGljayk9XCJjbG9zZU1vZGFsKClcIj5PSzwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
@@ -1429,6 +1429,9 @@ class InputComponent {
|
|
1429
1429
|
this.onlyNumbers = false;
|
1430
1430
|
this.validateInput = false;
|
1431
1431
|
this.labelFontWeight = 400;
|
1432
|
+
this.useMoneyMask = false; // Para ativar/desativar a máscara de moeda
|
1433
|
+
this.currencyCode = 'BRL'; // Código da moeda
|
1434
|
+
this.displayCurrencySymbol = true; // Exibir ou não o símbolo da moeda
|
1432
1435
|
this.inputEvent = new EventEmitter();
|
1433
1436
|
this.changeEvent = new EventEmitter();
|
1434
1437
|
this.focusEvent = new EventEmitter();
|
@@ -1449,14 +1452,12 @@ class InputComponent {
|
|
1449
1452
|
onInput(event) {
|
1450
1453
|
const inputElement = event.target;
|
1451
1454
|
let inputValue = inputElement.value;
|
1452
|
-
|
1453
|
-
|
1455
|
+
// Aplica máscara de números se necessário
|
1456
|
+
if (this.onlyNumbers && !(this.useCpfMask || this.useCnpjMask || this.useCepMask || this.useMoneyMask)) {
|
1457
|
+
inputValue = inputValue.replace(/\D/g, ''); // Remove todos os não numéricos
|
1454
1458
|
}
|
1455
|
-
|
1456
|
-
|
1457
|
-
this.inputEvent.emit(event);
|
1458
|
-
// Validar imediatamente após o último caractere numérico para CPF, CNPJ ou CEP
|
1459
|
-
const numericValue = this.value.replace(/\D/g, ''); // Remove todos os caracteres não numéricos
|
1459
|
+
// Validação imediata para CPF, CNPJ ou CEP
|
1460
|
+
const numericValue = inputValue.replace(/\D/g, ''); // Remove todos os caracteres não numéricos
|
1460
1461
|
if (this.validateInput) {
|
1461
1462
|
if (this.useCpfMask && numericValue.length === 11 && !this.validateCpf(numericValue)) {
|
1462
1463
|
this.clearAndShowValidationError('CPF inválido. Por favor, insira um CPF correto.');
|
@@ -1468,6 +1469,40 @@ class InputComponent {
|
|
1468
1469
|
this.clearAndShowValidationError('CEP inválido. Por favor, insira um CEP correto.');
|
1469
1470
|
}
|
1470
1471
|
}
|
1472
|
+
// Máscara de moeda
|
1473
|
+
if (this.useMoneyMask) {
|
1474
|
+
const numericValue = inputValue.replace(/\D/g, ''); // Remove todos os não numéricos
|
1475
|
+
const formattedValue = this.formatMoney(numericValue); // Formata como dinheiro ou número decimal
|
1476
|
+
inputElement.value = formattedValue;
|
1477
|
+
this.value = formattedValue;
|
1478
|
+
}
|
1479
|
+
else {
|
1480
|
+
this.value = inputValue;
|
1481
|
+
}
|
1482
|
+
// Atualiza o valor e emite o evento de mudança
|
1483
|
+
this.onChangeCallback(this.value);
|
1484
|
+
this.inputEvent.emit(event);
|
1485
|
+
}
|
1486
|
+
formatMoney(value) {
|
1487
|
+
if (!value)
|
1488
|
+
return ''; // Se o valor estiver vazio, retorna uma string vazia
|
1489
|
+
const numericValue = parseFloat(value) / 100;
|
1490
|
+
// Verifica se deve exibir o símbolo da moeda ou não
|
1491
|
+
if (this.displayCurrencySymbol) {
|
1492
|
+
// Formata como moeda
|
1493
|
+
return new Intl.NumberFormat('pt-BR', {
|
1494
|
+
style: 'currency',
|
1495
|
+
currency: this.currencyCode
|
1496
|
+
}).format(numericValue);
|
1497
|
+
}
|
1498
|
+
else {
|
1499
|
+
// Formata como número decimal, sem o símbolo da moeda
|
1500
|
+
return new Intl.NumberFormat('pt-BR', {
|
1501
|
+
style: 'decimal',
|
1502
|
+
minimumFractionDigits: 2,
|
1503
|
+
maximumFractionDigits: 2
|
1504
|
+
}).format(numericValue);
|
1505
|
+
}
|
1471
1506
|
}
|
1472
1507
|
onKeyDown(event) {
|
1473
1508
|
if (this.onlyNumbers && !/^\d$/.test(event.key) && event.key !== 'Backspace' && event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') {
|
@@ -1589,7 +1624,7 @@ class InputComponent {
|
|
1589
1624
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
1590
1625
|
}
|
1591
1626
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputComponent, deps: [{ token: AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
1592
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: InputComponent, selector: "argenta-custom-input", inputs: { label: "label", placeholder: "placeholder", id: "id", type: "type", disabled: "disabled", readonly: "readonly", maxlength: "maxlength", minlength: "minlength", required: "required", pattern: "pattern", autofocus: "autofocus", useCpfMask: "useCpfMask", useCnpjMask: "useCnpjMask", useCepMask: "useCepMask", onlyNumbers: "onlyNumbers", validateInput: "validateInput", labelFontWeight: "labelFontWeight", permissions: "permissions" }, outputs: { inputEvent: "inputEvent", changeEvent: "changeEvent", focusEvent: "focusEvent", blurEvent: "blurEvent", keyupEvent: "keyupEvent", keydownEvent: "keydownEvent", keypressEvent: "keypressEvent" }, providers: [
|
1627
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: InputComponent, selector: "argenta-custom-input", inputs: { label: "label", placeholder: "placeholder", id: "id", type: "type", disabled: "disabled", readonly: "readonly", maxlength: "maxlength", minlength: "minlength", required: "required", pattern: "pattern", autofocus: "autofocus", useCpfMask: "useCpfMask", useCnpjMask: "useCnpjMask", useCepMask: "useCepMask", onlyNumbers: "onlyNumbers", validateInput: "validateInput", labelFontWeight: "labelFontWeight", permissions: "permissions", useMoneyMask: "useMoneyMask", currencyCode: "currencyCode", displayCurrencySymbol: "displayCurrencySymbol" }, outputs: { inputEvent: "inputEvent", changeEvent: "changeEvent", focusEvent: "focusEvent", blurEvent: "blurEvent", keyupEvent: "keyupEvent", keydownEvent: "keydownEvent", keypressEvent: "keypressEvent" }, providers: [
|
1593
1628
|
{
|
1594
1629
|
provide: NG_VALUE_ACCESSOR,
|
1595
1630
|
useExisting: forwardRef(() => InputComponent),
|
@@ -1642,6 +1677,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
1642
1677
|
type: Input
|
1643
1678
|
}], permissions: [{
|
1644
1679
|
type: Input
|
1680
|
+
}], useMoneyMask: [{
|
1681
|
+
type: Input
|
1682
|
+
}], currencyCode: [{
|
1683
|
+
type: Input
|
1684
|
+
}], displayCurrencySymbol: [{
|
1685
|
+
type: Input
|
1645
1686
|
}], inputEvent: [{
|
1646
1687
|
type: Output
|
1647
1688
|
}], changeEvent: [{
|