@seniorsistemas/yms-integration 1.30.1 → 1.30.2
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/bundles/seniorsistemas-yms-integration.umd.js +17 -12
- package/bundles/seniorsistemas-yms-integration.umd.js.map +1 -1
- package/bundles/seniorsistemas-yms-integration.umd.min.js +1 -1
- package/bundles/seniorsistemas-yms-integration.umd.min.js.map +1 -1
- package/esm2015/src/erp-senior/components/nota-form/nota-form.component.js +21 -18
- package/esm5/src/erp-senior/components/nota-form/nota-form.component.js +21 -18
- package/fesm2015/seniorsistemas-yms-integration.js +17 -12
- package/fesm2015/seniorsistemas-yms-integration.js.map +1 -1
- package/fesm5/seniorsistemas-yms-integration.js +17 -12
- package/fesm5/seniorsistemas-yms-integration.js.map +1 -1
- package/package.json +1 -1
- package/seniorsistemas-yms-integration.metadata.json +1 -1
- package/src/erp-senior/components/nota-form/nota-form.component.d.ts +3 -6
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
import * as tslib_1 from "tslib";
|
|
2
2
|
import { VerificaNotafiscal } from '../../core/verifica-nota-fiscal/verificaNotaFiscal';
|
|
3
3
|
import { Component } from "@angular/core";
|
|
4
|
-
import { FormBuilder, FormControl, FormGroup } from "@angular/forms";
|
|
4
|
+
import { FormBuilder, FormControl, FormGroup, Validators } from "@angular/forms";
|
|
5
5
|
import { ConfirmationService, DynamicDialogConfig, DynamicDialogRef } from "primeng/api";
|
|
6
|
-
import { Subject } from "rxjs";
|
|
7
|
-
import { finalize, takeUntil } from "rxjs/operators";
|
|
6
|
+
import { Subject, of } from "rxjs";
|
|
7
|
+
import { catchError, finalize, takeUntil } from "rxjs/operators";
|
|
8
8
|
import { NotaValidatorService } from "../../core/nota-validator.service";
|
|
9
|
-
import { MessageService } from "primeng/components/common/messageservice";
|
|
10
|
-
import { TranslateService } from "@ngx-translate/core";
|
|
11
9
|
let NotaFormComponent = class NotaFormComponent {
|
|
12
|
-
constructor(fb, notaValidatorService, dialogConfig, confirmationService, dialogRef, verificaNotaFiscal
|
|
10
|
+
constructor(fb, notaValidatorService, dialogConfig, confirmationService, dialogRef, verificaNotaFiscal) {
|
|
13
11
|
this.notaValidatorService = notaValidatorService;
|
|
14
12
|
this.dialogConfig = dialogConfig;
|
|
15
13
|
this.confirmationService = confirmationService;
|
|
16
14
|
this.dialogRef = dialogRef;
|
|
17
15
|
this.verificaNotaFiscal = verificaNotaFiscal;
|
|
18
|
-
this.messageService = messageService;
|
|
19
|
-
this.translate = translate;
|
|
20
16
|
this.loading = false;
|
|
21
17
|
this.botaoDesabilitado = false;
|
|
18
|
+
this.disabled = true;
|
|
22
19
|
this.unsubscribe$ = new Subject();
|
|
23
20
|
this.validateNotaFiscal = (response) => {
|
|
21
|
+
const chaveNotaFiscal = this.formGroup.get("chaveNotaFiscal").value;
|
|
22
|
+
if (chaveNotaFiscal.length === 0) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
this.disabled = false;
|
|
24
26
|
if (!response || !response.documentos[0]) {
|
|
25
27
|
return;
|
|
26
28
|
}
|
|
@@ -54,10 +56,10 @@ let NotaFormComponent = class NotaFormComponent {
|
|
|
54
56
|
return !!chave || !!serie || !!numero ? null : { erroMultiplosCampos: true };
|
|
55
57
|
};
|
|
56
58
|
this.formGroup = fb.group({
|
|
57
|
-
chaveNotaFiscal: [undefined],
|
|
58
|
-
serieNotaFiscal: [undefined],
|
|
59
|
-
serieLegalNotaFiscal: [undefined],
|
|
60
|
-
numeroNotaFiscal: [undefined],
|
|
59
|
+
chaveNotaFiscal: [undefined, Validators.required],
|
|
60
|
+
serieNotaFiscal: [undefined, Validators.required],
|
|
61
|
+
serieLegalNotaFiscal: [undefined, Validators.required],
|
|
62
|
+
numeroNotaFiscal: [undefined, Validators.required],
|
|
61
63
|
}, { validators: this.camposPreenchidosValidation });
|
|
62
64
|
}
|
|
63
65
|
ngOnInit() {
|
|
@@ -100,7 +102,10 @@ let NotaFormComponent = class NotaFormComponent {
|
|
|
100
102
|
chaveDocumento: (chaveNotaFiscal || "").replace(/\s/g, ""),
|
|
101
103
|
filialId: this.filialId
|
|
102
104
|
})
|
|
103
|
-
.pipe(takeUntil(this.unsubscribe$),
|
|
105
|
+
.pipe(takeUntil(this.unsubscribe$), catchError(() => {
|
|
106
|
+
this.disabled = false;
|
|
107
|
+
return of(null);
|
|
108
|
+
}), finalize(() => this.loading = false))
|
|
104
109
|
.subscribe(this.validateNotaFiscal);
|
|
105
110
|
this.botaoDesabilitado = false;
|
|
106
111
|
}
|
|
@@ -158,7 +163,7 @@ let NotaFormComponent = class NotaFormComponent {
|
|
|
158
163
|
};
|
|
159
164
|
NotaFormComponent = tslib_1.__decorate([
|
|
160
165
|
Component({
|
|
161
|
-
template: "<form [formGroup]=\"formGroup\">\n <div class=\"ui-g ui-fluid\" *sLoadingState=\"loading\">\n <div class=\"ui-g-12\">\n <label for=\"chaveNotaFiscal\">{{'yms.erp.recebimento_chave_nota_fiscal' | translate}}</label>\n <input\n id=\"chaveNotaFiscal\"\n trim\n pInputText\n type=\"text\"\n formControlName=\"chaveNotaFiscal\"\n (blur)=\"onBlurNotaFiscal()\"\n >\n <s-control-errors
|
|
166
|
+
template: "<form [formGroup]=\"formGroup\">\n <div class=\"ui-g ui-fluid\" *sLoadingState=\"loading\">\n <div class=\"ui-g-12 required\">\n <label for=\"chaveNotaFiscal\">{{'yms.erp.recebimento_chave_nota_fiscal' | translate}}</label>\n <input\n id=\"chaveNotaFiscal\"\n trim\n pInputText\n type=\"text\"\n formControlName=\"chaveNotaFiscal\"\n (blur)=\"onBlurNotaFiscal()\"\n >\n <s-control-errors\n [control]=\"formGroup.controls.chaveNotaFiscal\"\n [errorMessages]=\"{ errorChaveNota: 'yms.erp.produto_nota_error_detail' | translate }\">\n </s-control-errors>\n </div>\n <div class=\"ui-g-12 required\" [attr.data-hidden]=\"disabled\">\n <label for=\"serieNotaFiscal\">{{'yms.erp.recebimento_serie_nota_fiscal' | translate}}</label>\n <input pInputText type=\"text\" formControlName=\"serieNotaFiscal\">\n <s-control-errors\n [control]=\"formGroup.controls['serieNotaFiscal']\"\n [errorMessages]=\"{ required: 'yms.erp.error_required' | translate }\">\n </s-control-errors>\n </div>\n <div class=\"ui-g-12 required\" [attr.data-hidden]=\"disabled\">\n <label for=\"serieLegalNotaFiscal\">{{'yms.erp.recebimento_serie_legal_nota_fiscal' | translate}}</label>\n <input pInputText type=\"text\" formControlName=\"serieLegalNotaFiscal\">\n <s-control-errors\n [control]=\"formGroup.controls['serieLegalNotaFiscal']\"\n [errorMessages]=\"{ required: 'yms.erp.error_required' | translate }\">\n </s-control-errors>\n </div>\n <div class=\"ui-g-12 required\" [attr.data-hidden]=\"disabled\">\n <label for=\"numeroNotaFiscal\">{{'yms.erp.recebimento_numero_nota_fiscal' | translate}}</label>\n <input pInputText type=\"text\" formControlName=\"numeroNotaFiscal\">\n <s-control-errors\n [control]=\"formGroup.controls['numeroNotaFiscal']\"\n [errorMessages]=\"{ required: 'yms.erp.error_required' | translate }\">\n </s-control-errors>\n </div>\n </div>\n\n <s-control-errors [control]=\"formGroup\" [errorMessages]=\"{ erroMultiplosCampos: 'yms.erp.nota_fiscal_no_value' | translate }\"></s-control-errors>\n\n <s-button label=\"Cancelar\" (onClick)=\"close()\" priority=\"link\"></s-button>\n <s-button label=\"Salvar\" [disabled]=\"botaoDesabilitado || disabled\" (onClick)=\"save()\"></s-button>\n</form>\n\n<p-confirmDialog appendTo=\"body\"></p-confirmDialog>",
|
|
162
167
|
providers: [ConfirmationService]
|
|
163
168
|
}),
|
|
164
169
|
tslib_1.__metadata("design:paramtypes", [FormBuilder,
|
|
@@ -166,9 +171,7 @@ NotaFormComponent = tslib_1.__decorate([
|
|
|
166
171
|
DynamicDialogConfig,
|
|
167
172
|
ConfirmationService,
|
|
168
173
|
DynamicDialogRef,
|
|
169
|
-
VerificaNotafiscal
|
|
170
|
-
MessageService,
|
|
171
|
-
TranslateService])
|
|
174
|
+
VerificaNotafiscal])
|
|
172
175
|
], NotaFormComponent);
|
|
173
176
|
export { NotaFormComponent };
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90YS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy95bXMtaW50ZWdyYXRpb24vIiwic291cmNlcyI6WyJzcmMvZXJwLXNlbmlvci9jb21wb25lbnRzL25vdGEtZm9ybS9ub3RhLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQW1CLFdBQVcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFpQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckQsT0FBTyxFQUFFLG9CQUFvQixFQUE4QixNQUFNLG1DQUFtQyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU12RCxJQUFhLGlCQUFpQixHQUE5QixNQUFhLGlCQUFpQjtJQVkxQixZQUNJLEVBQWUsRUFDUCxvQkFBMEMsRUFDMUMsWUFBaUMsRUFDakMsbUJBQXdDLEVBQ3hDLFNBQTJCLEVBQzNCLGtCQUFzQyxFQUN0QyxjQUE4QixFQUM5QixTQUEyQjtRQU4zQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FB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Q0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRU8sMEJBQTBCO1FBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3JELENBQUM7Q0FDSixDQUFBO0FBak1ZLGlCQUFpQjtJQUw3QixTQUFTLENBQUM7UUFDUCx3MERBQXlDO1FBQ3pDLFNBQVMsRUFBRSxDQUFFLG1CQUFtQixDQUFFO0tBQ3JDLENBQUM7NkNBZVUsV0FBVztRQUNlLG9CQUFvQjtRQUM1QixtQkFBbUI7UUFDWixtQkFBbUI7UUFDN0IsZ0JBQWdCO1FBQ1Asa0JBQWtCO1FBQ3RCLGNBQWM7UUFDbkIsZ0JBQWdCO0dBcEI5QixpQkFBaUIsQ0FpTTdCO1NBak1ZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlcmlmaWNhTm90YWZpc2NhbCB9IGZyb20gJy4uLy4uL2NvcmUvdmVyaWZpY2Etbm90YS1maXNjYWwvdmVyaWZpY2FOb3RhRmlzY2FsJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIER5bmFtaWNEaWFsb2dDb25maWcsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgZmluYWxpemUsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgUGVzc29hIH0gZnJvbSBcIi4uLy4uL2NvcmUvZW50aXRpZXMvcGVzc29hL3Blc3NvYVwiO1xuaW1wb3J0IHsgUHJvZHV0byB9IGZyb20gXCIuLi8uLi9jb3JlL2VudGl0aWVzL3Byb2R1dG8vcHJvZHV0b1wiO1xuaW1wb3J0IHsgTm90YVZhbGlkYXRvclNlcnZpY2UsIFBlc3F1aXNhckRvY3VtZW50b1Jlc3BvbnNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvbm90YS12YWxpZGF0b3Iuc2VydmljZVwiO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwicHJpbWVuZy9jb21wb25lbnRzL2NvbW1vbi9tZXNzYWdlc2VydmljZVwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vbm90YS1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFsgQ29uZmlybWF0aW9uU2VydmljZSBdXG59KVxuXG5leHBvcnQgY2xhc3MgTm90YUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gICAgbG9hZGluZyA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBmaWxpYWxJZDogc3RyaW5nO1xuICAgIHByaXZhdGUgZm9ybmVjZWRvcjogUGVzc29hO1xuICAgIHByaXZhdGUgcHJvZHV0bzogUHJvZHV0bztcbiAgICBwcml2YXRlIGZvcm5lY2Vkb3JOb3Rhc1Rva2VuczogYW55O1xuICAgIHByaXZhdGUgY29udHJhdG9zOiBhbnk7XG4gICAgYm90YW9EZXNhYmlsaXRhZG8gPSBmYWxzZTtcbiAgICBcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGZiOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSBub3RhVmFsaWRhdG9yU2VydmljZTogTm90YVZhbGlkYXRvclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nQ29uZmlnOiBEeW5hbWljRGlhbG9nQ29uZmlnLFxuICAgICAgICBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nUmVmOiBEeW5hbWljRGlhbG9nUmVmLFxuICAgICAgICBwcml2YXRlIHZlcmlmaWNhTm90YUZpc2NhbDogVmVyaWZpY2FOb3RhZmlzY2FsLFxuICAgICAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG5cbiAgICApIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSBmYi5ncm91cCh7XG4gICAgICAgICAgICBjaGF2ZU5vdGFGaXNjYWw6IFsgdW5kZWZpbmVkIF0sXG4gICAgICAgICAgICBzZXJpZU5vdGFGaXNjYWw6IFsgdW5kZWZpbmVkIF0sXG4gICAgICAgICAgICBzZXJpZUxlZ2FsTm90YUZpc2NhbDogWyB1bmRlZmluZWQgXSxcbiAgICAgICAgICAgIG51bWVyb05vdGFGaXNjYWw6IFsgdW5kZWZpbmVkIF0sXG4gICAgICAgIH0sIHsgdmFsaWRhdG9yczogdGhpcy5jYW1wb3NQcmVlbmNoaWRvc1ZhbGlkYXRpb24gfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZmlsaWFsSWQgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhLmZpbGlhbC5pZDtcbiAgICAgICAgdGhpcy5mb3JuZWNlZG9yID0gdGhpcy5kaWFsb2dDb25maWcuZGF0YS5mb3JuZWNlZG9yO1xuICAgICAgICB0aGlzLnByb2R1dG8gPSB0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhLnByb2R1dG87XG4gICAgICAgIHRoaXMuZm9ybmVjZWRvck5vdGFzVG9rZW5zID0gdGhpcy5kaWFsb2dDb25maWcuZGF0YS5mb3JuZWNlZG9yTm90YXNUb2tlbnM7XG4gICAgICAgIHRoaXMuY29udHJhdG9zID0gdGhpcy5kaWFsb2dDb25maWcuZGF0YS5jb250cmF0b3M7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBzYXZlKCkge1xuICAgICAgICBjb25zdCBjaGF2ZU5vdGFGaXNjYWwgPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJjaGF2ZU5vdGFGaXNjYWxcIikudmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMudmVyaWZpY2FOb3RhRmlzY2FsLnZlcmlmaWNhU2VOb3RhRmlzY2FsRXN0YUR1cGxpY2FkYShjaGF2ZU5vdGFGaXNjYWwsIHRoaXMuY29udHJhdG9zLCB0aGlzLmZvcm5lY2Vkb3JOb3Rhc1Rva2VucykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY2hhdmVOb3RhRmlzY2FsKSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZUVycm9yQ2hhdmVOb3RhKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLnZhbGlkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHModGhpcy5mb3JtR3JvdXApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5oYWJpbGl0YUNhbXBvc05vdGFGaXNjYWwoKTtcblxuICAgICAgICB0aGlzLmNsb3NlKHRoaXMuZm9ybUdyb3VwLnZhbHVlKTtcbiAgICB9XG5cbiAgICBjbG9zZShkYXRhPzogYW55KSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGRhdGEpO1xuICAgIH1cblxuICAgIG9uQmx1ck5vdGFGaXNjYWwoKSB7XG4gICAgICAgIGNvbnN0IGNoYXZlTm90YUZpc2NhbCA9IHRoaXMuZm9ybUdyb3VwLmdldChcImNoYXZlTm90YUZpc2NhbFwiKS52YWx1ZTtcblxuICAgICAgICBpZiAodGhpcy52ZXJpZmljYU5vdGFGaXNjYWwudmVyaWZpY2FTZU5vdGFGaXNjYWxFc3RhRHVwbGljYWRhKGNoYXZlTm90YUZpc2NhbCwgdGhpcy5jb250cmF0b3MsIHRoaXMuZm9ybmVjZWRvck5vdGFzVG9rZW5zKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIHRoaXMuYm90YW9EZXNhYmlsaXRhZG8gPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZW1vdmVFcnJvckNoYXZlTm90YSgpO1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMubm90YVZhbGlkYXRvclNlcnZpY2UucGVzcXVpc2FyRG9jdW1lbnRvVmFsaWRhTm90YUVtVXNvKHtcbiAgICAgICAgICAgIGNoYXZlRG9jdW1lbnRvOiAoY2hhdmVOb3RhRmlzY2FsIHx8IFwiXCIpLnJlcGxhY2UoL1xccy9nLCBcIlwiKSxcbiAgICAgICAgICAgIGZpbGlhbElkOiB0aGlzLmZpbGlhbElkXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksIGZpbmFsaXplKCgpID0+IHRoaXMubG9hZGluZyA9IGZhbHNlKSlcbiAgICAgICAgLnN1YnNjcmliZSh0aGlzLnZhbGlkYXRlTm90YUZpc2NhbCk7XG5cbiAgICAgICAgICB0aGlzLmJvdGFvRGVzYWJpbGl0YWRvID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZU5vdGFGaXNjYWwgPSAocmVzcG9uc2U6IFBlc3F1aXNhckRvY3VtZW50b1Jlc3BvbnNlKSA9PiB7ICAgICBcbiAgICAgICAgaWYgKCFyZXNwb25zZSB8fCAhcmVzcG9uc2UuZG9jdW1lbnRvc1swXSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBjb25zdCB2YWx1ZSA9IHJlc3BvbnNlLmRvY3VtZW50b3NbMF07XG5cbiAgICAgICAgaWYgKCF0aGlzLnZhbGlkYVByb2R1dG9OYU5vdGFGaXNjYWwodmFsdWUuaXRlbnMpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBub3RhRmlzY2FsID0geyBcbiAgICAgICAgICAgIGNoYXZlOiB0aGlzLmZvcm1Hcm91cC5nZXQoXCJjaGF2ZU5vdGFGaXNjYWxcIikudmFsdWUsIFxuICAgICAgICAgICAgc2VyaWU6IHZhbHVlLnNlcmllLCBcbiAgICAgICAgICAgIHNlcmllTGVnYWw6IHZhbHVlLnNlcmllTGVnYWwsIFxuICAgICAgICAgICAgbnVtZXJvOiB2YWx1ZS5udW1lcm8sXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKCF0aGlzLmZvcm5lY2Vkb3IpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VBbmRSZXR1cm5Ob3RhKG5vdGFGaXNjYWwsIHZhbHVlLmZvcm5lY2Vkb3IsIHZhbHVlLm9yaWdlbU1lcmNhZG9yaWEpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEhKHZhbHVlLmZvcm5lY2Vkb3IgfHwge2lkOiB1bmRlZmluZWR9KS5pZCAmJiAodmFsdWUuZm9ybmVjZWRvci5pZCAhPT0gdGhpcy5mb3JuZWNlZG9yLmlkKSkge1xuICAgICAgICAgICAgdGhpcy5jb25maXJtQW5kQWRkTm92b0Zvcm5lY2Vkb3Iobm90YUZpc2NhbCwgdmFsdWUuZm9ybmVjZWRvciwgdmFsdWUub3JpZ2VtTWVyY2Fkb3JpYSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJzZXJpZU5vdGFGaXNjYWxcIikuc2V0VmFsdWUodmFsdWUuc2VyaWUpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJzZXJpZUxlZ2FsTm90YUZpc2NhbFwiKS5zZXRWYWx1ZSh2YWx1ZS5zZXJpZUxlZ2FsKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwibnVtZXJvTm90YUZpc2NhbFwiKS5zZXRWYWx1ZSh2YWx1ZS5udW1lcm8pO1xuXG4gICAgICAgIHRoaXMuZGVzYWJpbGl0YUNhbXBvc05vdGFGaXNjYWwoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYVByb2R1dG9OYU5vdGFGaXNjYWwocHJvZHV0b3Mpe1xuICAgICAgICBpZiAocHJvZHV0b3MgIT0gbnVsbCAmJiBwcm9kdXRvcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBsZXQgcHJvZHV0byA9IHByb2R1dG9zWzBdLnByb2R1dG87XG5cbiAgICAgICAgICAgIGlmICghIXByb2R1dG8gJiYgISF0aGlzLnByb2R1dG8gJiYgKHByb2R1dG8uaWQgIT09IHRoaXMucHJvZHV0by5pZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEVycm9ySWZQcm9kdXRvSXNEaWZmZXJlbnQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgXG4gICAgcHJpdmF0ZSBjb25maXJtQW5kQWRkTm92b0Zvcm5lY2Vkb3IoaW5mb05vdGE6IHsgY2hhdmU6IHN0cmluZywgc2VyaWU6IHN0cmluZywgc2VyaWVMZWdhbDogc3RyaW5nLCBudW1lcm86IG51bWJlciB9LCBmb3JuZWNlZG9yOiBhbnksIG9yaWdlbU1lcmNhZG9yaWE6IGFueSkge1xuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XG4gICAgICAgICAgICBoZWFkZXI6ICdPIGZvcm5lY2Vkb3IgdmluY3VsYWRvIGEgbm90YSBuw6NvIMOpIG8gbWVzbW8gcXVlIG8gc2VsZWNpb25hZG8nLFxuICAgICAgICAgICAgbWVzc2FnZTogJ08gZm9ybmVjZWRvciB2aW5jdWxhZG8gYSBub3RhIG7Do28gw6kgbyBtZXNtbyBxdWUgbyBzZWxlY2lvbmFkby4gRGVzZWphIGFkaWNpb25hciB1bSBub3ZvIGZvcm5lY2Vkb3Igb3UgY2FuY2VsYXIgYSBvcGVyYcOnw6NvPycsXG4gICAgICAgICAgICBhY2NlcHRMYWJlbDogJ0FkaWNpb25hciB1bSBub3ZvIGZvcm5lY2Vkb3InLFxuICAgICAgICAgICAgcmVqZWN0TGFiZWw6ICdDYW5jZWxhciBvcGVyYcOnw6NvJyxcbiAgICAgICAgICAgIGFjY2VwdDogKCkgPT4gdGhpcy5jbG9zZUFuZFJldHVybk5vdGEoaW5mb05vdGEsIGZvcm5lY2Vkb3IsIG9yaWdlbU1lcmNhZG9yaWEpLFxuICAgICAgICAgICAgcmVqZWN0OiAoKSA9PiB0aGlzLmZvcm1Hcm91cC5nZXQoXCJjaGF2ZU5vdGFGaXNjYWxcIikuc2V0VmFsdWUodW5kZWZpbmVkKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZEVycm9ySWZQcm9kdXRvSXNEaWZmZXJlbnQoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcImNoYXZlTm90YUZpc2NhbFwiKS5zZXRFcnJvcnMoeyBlcnJvckNoYXZlTm90YTogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUVycm9yQ2hhdmVOb3RhKCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJjaGF2ZU5vdGFGaXNjYWxcIikuc2V0RXJyb3JzKG51bGwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xvc2VBbmRSZXR1cm5Ob3RhKGluZm9Ob3RhOiB7IGNoYXZlOiBzdHJpbmcsIHNlcmllOiBzdHJpbmcsIHNlcmllTGVnYWw6IHN0cmluZywgbnVtZXJvOiBudW1iZXIgfSwgZm9ybmVjZWRvcjogYW55LCBvcmlnZW1NZXJjYWRvcmlhOiBhbnkpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoeyBhZGRGb3JuZWNlZG9yOiB0cnVlLCBpbmZvTm90YSwgZm9ybmVjZWRvciwgb3JpZ2VtTWVyY2Fkb3JpYSB9KVxuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVBbGxGb3JtRmllbGRzKGZvcm1Hcm91cDogRm9ybUdyb3VwKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChmaWVsZCk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sLm1hcmtBc0RpcnR5KHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhjb250cm9sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgZm9ybUdyb3VwLm1hcmtBc0RpcnR5KHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYW1wb3NQcmVlbmNoaWRvc1ZhbGlkYXRpb246IFZhbGlkYXRvckZuID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgICAgY29uc3QgY2hhdmUgPSBjb250cm9sLmdldChcImNoYXZlTm90YUZpc2NhbFwiKS52YWx1ZTtcbiAgICAgICAgY29uc3Qgc2VyaWUgPSBjb250cm9sLmdldChcInNlcmllTm90YUZpc2NhbFwiKS52YWx1ZTtcbiAgICAgICAgY29uc3QgbnVtZXJvID0gY29udHJvbC5nZXQoXCJudW1lcm9Ob3RhRmlzY2FsXCIpLnZhbHVlO1xuXG4gICAgICAgIHJldHVybiAhIWNoYXZlIHx8ICEhc2VyaWUgfHwgISFudW1lcm8gPyBudWxsIDogeyBlcnJvTXVsdGlwbG9zQ2FtcG9zOiB0cnVlIH07XG4gICAgfTtcblxuICAgIHByaXZhdGUgaGFiaWxpdGFDYW1wb3NOb3RhRmlzY2FsKCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJzZXJpZU5vdGFGaXNjYWxcIikuZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcInNlcmllTGVnYWxOb3RhRmlzY2FsXCIpLmVuYWJsZSgpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJudW1lcm9Ob3RhRmlzY2FsXCIpLmVuYWJsZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzYWJpbGl0YUNhbXBvc05vdGFGaXNjYWwoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcInNlcmllTm90YUZpc2NhbFwiKS5kaXNhYmxlKCk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcInNlcmllTGVnYWxOb3RhRmlzY2FsXCIpLmRpc2FibGUoKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwibnVtZXJvTm90YUZpc2NhbFwiKS5kaXNhYmxlKCk7XG4gICAgfVxufSJdfQ==
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90YS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy95bXMtaW50ZWdyYXRpb24vIiwic291cmNlcyI6WyJzcmMvZXJwLXNlbmlvci9jb21wb25lbnRzL25vdGEtZm9ybS9ub3RhLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQW1CLFdBQVcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFpQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqSSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekYsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakUsT0FBTyxFQUFFLG9CQUFvQixFQUE4QixNQUFNLG1DQUFtQyxDQUFDO0FBT3JHLElBQWEsaUJBQWlCLEdBQTlCLE1BQWEsaUJBQWlCO0lBYTFCLFlBQ0ksRUFBZSxFQUNQLG9CQUEwQyxFQUMxQyxZQUFpQyxFQUNqQyxtQkFBd0MsRUFDeEMsU0FBMkIsRUFDbEIsa0JBQXNDO1FBSi9DLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDbEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQWpCM0QsWUFBTyxHQUFHLEtBQUssQ0FBQztRQU9oQixzQkFBaUIsR0FBRyxLQUFLLENB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QUFDLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBVU8sd0JBQXdCO1FBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFTywwQkFBMEI7UUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDckQsQ0FBQztDQUNKLENBQUE7QUExTVksaUJBQWlCO0lBTDdCLFNBQVMsQ0FBQztRQUNQLHdxRkFBeUM7UUFDekMsU0FBUyxFQUFFLENBQUUsbUJBQW1CLENBQUU7S0FDckMsQ0FBQzs2Q0FnQlUsV0FBVztRQUNlLG9CQUFvQjtRQUM1QixtQkFBbUI7UUFDWixtQkFBbUI7UUFDN0IsZ0JBQWdCO1FBQ0Usa0JBQWtCO0dBbkJsRCxpQkFBaUIsQ0EwTTdCO1NBMU1ZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlcmlmaWNhTm90YWZpc2NhbCB9IGZyb20gJy4uLy4uL2NvcmUvdmVyaWZpY2Etbm90YS1maXNjYWwvdmVyaWZpY2FOb3RhRmlzY2FsJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIER5bmFtaWNEaWFsb2dDb25maWcsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcbmltcG9ydCB7IFN1YmplY3QsIG9mIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbmFsaXplLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IFBlc3NvYSB9IGZyb20gXCIuLi8uLi9jb3JlL2VudGl0aWVzL3Blc3NvYS9wZXNzb2FcIjtcbmltcG9ydCB7IFByb2R1dG8gfSBmcm9tIFwiLi4vLi4vY29yZS9lbnRpdGllcy9wcm9kdXRvL3Byb2R1dG9cIjtcbmltcG9ydCB7IE5vdGFWYWxpZGF0b3JTZXJ2aWNlLCBQZXNxdWlzYXJEb2N1bWVudG9SZXNwb25zZSB9IGZyb20gXCIuLi8uLi9jb3JlL25vdGEtdmFsaWRhdG9yLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICcuL25vdGEtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbIENvbmZpcm1hdGlvblNlcnZpY2UgXVxufSlcblxuZXhwb3J0IGNsYXNzIE5vdGFGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICAgIGxvYWRpbmcgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgZmlsaWFsSWQ6IHN0cmluZztcbiAgICBwcml2YXRlIGZvcm5lY2Vkb3I6IFBlc3NvYTtcbiAgICBwcml2YXRlIHByb2R1dG86IFByb2R1dG87XG4gICAgcHJpdmF0ZSBmb3JuZWNlZG9yTm90YXNUb2tlbnM6IGFueTtcbiAgICBwcml2YXRlIGNvbnRyYXRvczogYW55O1xuICAgIGJvdGFvRGVzYWJpbGl0YWRvID0gZmFsc2U7XG4gICAgZGlzYWJsZWQgPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBmYjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgbm90YVZhbGlkYXRvclNlcnZpY2U6IE5vdGFWYWxpZGF0b3JTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ0NvbmZpZzogRHluYW1pY0RpYWxvZ0NvbmZpZyxcbiAgICAgICAgcHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ1JlZjogRHluYW1pY0RpYWxvZ1JlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB2ZXJpZmljYU5vdGFGaXNjYWw6IFZlcmlmaWNhTm90YWZpc2NhbFxuXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwID0gZmIuZ3JvdXAoe1xuICAgICAgICAgICAgY2hhdmVOb3RhRmlzY2FsOiBbIHVuZGVmaW5lZCwgVmFsaWRhdG9ycy5yZXF1aXJlZCBdLFxuICAgICAgICAgICAgc2VyaWVOb3RhRmlzY2FsOiBbIHVuZGVmaW5lZCwgVmFsaWRhdG9ycy5yZXF1aXJlZCBdLFxuICAgICAgICAgICAgc2VyaWVMZWdhbE5vdGFGaXNjYWw6IFsgdW5kZWZpbmVkLCBWYWxpZGF0b3JzLnJlcXVpcmVkIF0sXG4gICAgICAgICAgICBudW1lcm9Ob3RhRmlzY2FsOiBbIHVuZGVmaW5lZCwgVmFsaWRhdG9ycy5yZXF1aXJlZCBdLFxuICAgICAgICB9LCB7IHZhbGlkYXRvcnM6IHRoaXMuY2FtcG9zUHJlZW5jaGlkb3NWYWxpZGF0aW9uIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmZpbGlhbElkID0gdGhpcy5kaWFsb2dDb25maWcuZGF0YS5maWxpYWwuaWQ7XG4gICAgICAgIHRoaXMuZm9ybmVjZWRvciA9IHRoaXMuZGlhbG9nQ29uZmlnLmRhdGEuZm9ybmVjZWRvcjtcbiAgICAgICAgdGhpcy5wcm9kdXRvID0gdGhpcy5kaWFsb2dDb25maWcuZGF0YS5wcm9kdXRvO1xuICAgICAgICB0aGlzLmZvcm5lY2Vkb3JOb3Rhc1Rva2VucyA9IHRoaXMuZGlhbG9nQ29uZmlnLmRhdGEuZm9ybmVjZWRvck5vdGFzVG9rZW5zO1xuICAgICAgICB0aGlzLmNvbnRyYXRvcyA9IHRoaXMuZGlhbG9nQ29uZmlnLmRhdGEuY29udHJhdG9zO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgc2F2ZSgpIHtcbiAgICAgICAgY29uc3QgY2hhdmVOb3RhRmlzY2FsID0gdGhpcy5mb3JtR3JvdXAuZ2V0KFwiY2hhdmVOb3RhRmlzY2FsXCIpLnZhbHVlO1xuXG4gICAgICAgIGlmICh0aGlzLnZlcmlmaWNhTm90YUZpc2NhbC52ZXJpZmljYVNlTm90YUZpc2NhbEVzdGFEdXBsaWNhZGEoY2hhdmVOb3RhRmlzY2FsLCB0aGlzLmNvbnRyYXRvcywgdGhpcy5mb3JuZWNlZG9yTm90YXNUb2tlbnMpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWNoYXZlTm90YUZpc2NhbCkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVFcnJvckNoYXZlTm90YSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKHRoaXMuZm9ybUdyb3VwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaGFiaWxpdGFDYW1wb3NOb3RhRmlzY2FsKCk7XG5cbiAgICAgICAgdGhpcy5jbG9zZSh0aGlzLmZvcm1Hcm91cC52YWx1ZSk7XG4gICAgfVxuXG4gICAgY2xvc2UoZGF0YT86IGFueSkge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShkYXRhKTtcbiAgICB9XG5cbiAgICBvbkJsdXJOb3RhRmlzY2FsKCkge1xuICAgICAgICBjb25zdCBjaGF2ZU5vdGFGaXNjYWwgPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJjaGF2ZU5vdGFGaXNjYWxcIikudmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMudmVyaWZpY2FOb3RhRmlzY2FsLnZlcmlmaWNhU2VOb3RhRmlzY2FsRXN0YUR1cGxpY2FkYShjaGF2ZU5vdGFGaXNjYWwsIHRoaXMuY29udHJhdG9zLCB0aGlzLmZvcm5lY2Vkb3JOb3Rhc1Rva2VucykpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB0aGlzLmJvdGFvRGVzYWJpbGl0YWRvID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVtb3ZlRXJyb3JDaGF2ZU5vdGEoKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLm5vdGFWYWxpZGF0b3JTZXJ2aWNlLnBlc3F1aXNhckRvY3VtZW50b1ZhbGlkYU5vdGFFbVVzbyh7XG4gICAgICAgICAgICBjaGF2ZURvY3VtZW50bzogKGNoYXZlTm90YUZpc2NhbCB8fCBcIlwiKS5yZXBsYWNlKC9cXHMvZywgXCJcIiksXG4gICAgICAgICAgICBmaWxpYWxJZDogdGhpcy5maWxpYWxJZFxuICAgICAgICB9KVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgfSksZmluYWxpemUoKCkgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2UpKVxuICAgICAgICAuc3Vic2NyaWJlKHRoaXMudmFsaWRhdGVOb3RhRmlzY2FsKTtcblxuICAgICAgICAgIHRoaXMuYm90YW9EZXNhYmlsaXRhZG8gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlTm90YUZpc2NhbCA9IChyZXNwb25zZTogUGVzcXVpc2FyRG9jdW1lbnRvUmVzcG9uc2UpID0+IHsgICAgIFxuICAgICAgICBjb25zdCBjaGF2ZU5vdGFGaXNjYWwgPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJjaGF2ZU5vdGFGaXNjYWxcIikudmFsdWU7XG4gICAgICAgIGlmIChjaGF2ZU5vdGFGaXNjYWwubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgICAgIGlmICghcmVzcG9uc2UgfHwgIXJlc3BvbnNlLmRvY3VtZW50b3NbMF0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgY29uc3QgdmFsdWUgPSByZXNwb25zZS5kb2N1bWVudG9zWzBdO1xuXG4gICAgICAgIGlmICghdGhpcy52YWxpZGFQcm9kdXRvTmFOb3RhRmlzY2FsKHZhbHVlLml0ZW5zKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgbm90YUZpc2NhbCA9IHsgXG4gICAgICAgICAgICBjaGF2ZTogdGhpcy5mb3JtR3JvdXAuZ2V0KFwiY2hhdmVOb3RhRmlzY2FsXCIpLnZhbHVlLCBcbiAgICAgICAgICAgIHNlcmllOiB2YWx1ZS5zZXJpZSwgXG4gICAgICAgICAgICBzZXJpZUxlZ2FsOiB2YWx1ZS5zZXJpZUxlZ2FsLCBcbiAgICAgICAgICAgIG51bWVybzogdmFsdWUubnVtZXJvLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghdGhpcy5mb3JuZWNlZG9yKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlQW5kUmV0dXJuTm90YShub3RhRmlzY2FsLCB2YWx1ZS5mb3JuZWNlZG9yLCB2YWx1ZS5vcmlnZW1NZXJjYWRvcmlhKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghISh2YWx1ZS5mb3JuZWNlZG9yIHx8IHtpZDogdW5kZWZpbmVkfSkuaWQgJiYgKHZhbHVlLmZvcm5lY2Vkb3IuaWQgIT09IHRoaXMuZm9ybmVjZWRvci5pZCkpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlybUFuZEFkZE5vdm9Gb3JuZWNlZG9yKG5vdGFGaXNjYWwsIHZhbHVlLmZvcm5lY2Vkb3IsIHZhbHVlLm9yaWdlbU1lcmNhZG9yaWEpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwic2VyaWVOb3RhRmlzY2FsXCIpLnNldFZhbHVlKHZhbHVlLnNlcmllKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwic2VyaWVMZWdhbE5vdGFGaXNjYWxcIikuc2V0VmFsdWUodmFsdWUuc2VyaWVMZWdhbCk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcIm51bWVyb05vdGFGaXNjYWxcIikuc2V0VmFsdWUodmFsdWUubnVtZXJvKTtcblxuICAgICAgICB0aGlzLmRlc2FiaWxpdGFDYW1wb3NOb3RhRmlzY2FsKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGFQcm9kdXRvTmFOb3RhRmlzY2FsKHByb2R1dG9zKXtcbiAgICAgICAgaWYgKHByb2R1dG9zICE9IG51bGwgJiYgcHJvZHV0b3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGV0IHByb2R1dG8gPSBwcm9kdXRvc1swXS5wcm9kdXRvO1xuXG4gICAgICAgICAgICBpZiAoISFwcm9kdXRvICYmICEhdGhpcy5wcm9kdXRvICYmIChwcm9kdXRvLmlkICE9PSB0aGlzLnByb2R1dG8uaWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRFcnJvcklmUHJvZHV0b0lzRGlmZmVyZW50KCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIFxuICAgIHByaXZhdGUgY29uZmlybUFuZEFkZE5vdm9Gb3JuZWNlZG9yKGluZm9Ob3RhOiB7IGNoYXZlOiBzdHJpbmcsIHNlcmllOiBzdHJpbmcsIHNlcmllTGVnYWw6IHN0cmluZywgbnVtZXJvOiBudW1iZXIgfSwgZm9ybmVjZWRvcjogYW55LCBvcmlnZW1NZXJjYWRvcmlhOiBhbnkpIHtcbiAgICAgICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgICAgICAgaGVhZGVyOiAnTyBmb3JuZWNlZG9yIHZpbmN1bGFkbyBhIG5vdGEgbsOjbyDDqSBvIG1lc21vIHF1ZSBvIHNlbGVjaW9uYWRvJyxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdPIGZvcm5lY2Vkb3IgdmluY3VsYWRvIGEgbm90YSBuw6NvIMOpIG8gbWVzbW8gcXVlIG8gc2VsZWNpb25hZG8uIERlc2VqYSBhZGljaW9uYXIgdW0gbm92byBmb3JuZWNlZG9yIG91IGNhbmNlbGFyIGEgb3BlcmHDp8Ojbz8nLFxuICAgICAgICAgICAgYWNjZXB0TGFiZWw6ICdBZGljaW9uYXIgdW0gbm92byBmb3JuZWNlZG9yJyxcbiAgICAgICAgICAgIHJlamVjdExhYmVsOiAnQ2FuY2VsYXIgb3BlcmHDp8OjbycsXG4gICAgICAgICAgICBhY2NlcHQ6ICgpID0+IHRoaXMuY2xvc2VBbmRSZXR1cm5Ob3RhKGluZm9Ob3RhLCBmb3JuZWNlZG9yLCBvcmlnZW1NZXJjYWRvcmlhKSxcbiAgICAgICAgICAgIHJlamVjdDogKCkgPT4gdGhpcy5mb3JtR3JvdXAuZ2V0KFwiY2hhdmVOb3RhRmlzY2FsXCIpLnNldFZhbHVlKHVuZGVmaW5lZClcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRFcnJvcklmUHJvZHV0b0lzRGlmZmVyZW50KCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJjaGF2ZU5vdGFGaXNjYWxcIikuc2V0RXJyb3JzKHsgZXJyb3JDaGF2ZU5vdGE6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVFcnJvckNoYXZlTm90YSgpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwiY2hhdmVOb3RhRmlzY2FsXCIpLnNldEVycm9ycyhudWxsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlQW5kUmV0dXJuTm90YShpbmZvTm90YTogeyBjaGF2ZTogc3RyaW5nLCBzZXJpZTogc3RyaW5nLCBzZXJpZUxlZ2FsOiBzdHJpbmcsIG51bWVybzogbnVtYmVyIH0sIGZvcm5lY2Vkb3I6IGFueSwgb3JpZ2VtTWVyY2Fkb3JpYTogYW55KSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHsgYWRkRm9ybmVjZWRvcjogdHJ1ZSwgaW5mb05vdGEsIGZvcm5lY2Vkb3IsIG9yaWdlbU1lcmNhZG9yaWEgfSlcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtR3JvdXA6IEZvcm1Hcm91cCkge1xuICAgICAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGQpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoY29udHJvbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZvcm1Hcm91cC5tYXJrQXNEaXJ0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FtcG9zUHJlZW5jaGlkb3NWYWxpZGF0aW9uOiBWYWxpZGF0b3JGbiA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAgIGNvbnN0IGNoYXZlID0gY29udHJvbC5nZXQoXCJjaGF2ZU5vdGFGaXNjYWxcIikudmFsdWU7XG4gICAgICAgIGNvbnN0IHNlcmllID0gY29udHJvbC5nZXQoXCJzZXJpZU5vdGFGaXNjYWxcIikudmFsdWU7XG4gICAgICAgIGNvbnN0IG51bWVybyA9IGNvbnRyb2wuZ2V0KFwibnVtZXJvTm90YUZpc2NhbFwiKS52YWx1ZTtcblxuICAgICAgICByZXR1cm4gISFjaGF2ZSB8fCAhIXNlcmllIHx8ICEhbnVtZXJvID8gbnVsbCA6IHsgZXJyb011bHRpcGxvc0NhbXBvczogdHJ1ZSB9O1xuICAgIH07XG5cbiAgICBwcml2YXRlIGhhYmlsaXRhQ2FtcG9zTm90YUZpc2NhbCgpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwic2VyaWVOb3RhRmlzY2FsXCIpLmVuYWJsZSgpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJzZXJpZUxlZ2FsTm90YUZpc2NhbFwiKS5lbmFibGUoKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwibnVtZXJvTm90YUZpc2NhbFwiKS5lbmFibGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc2FiaWxpdGFDYW1wb3NOb3RhRmlzY2FsKCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJzZXJpZU5vdGFGaXNjYWxcIikuZGlzYWJsZSgpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJzZXJpZUxlZ2FsTm90YUZpc2NhbFwiKS5kaXNhYmxlKCk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcIm51bWVyb05vdGFGaXNjYWxcIikuZGlzYWJsZSgpO1xuICAgIH1cbn0iXX0=
|
|
@@ -1,27 +1,29 @@
|
|
|
1
1
|
import * as tslib_1 from "tslib";
|
|
2
2
|
import { VerificaNotafiscal } from '../../core/verifica-nota-fiscal/verificaNotaFiscal';
|
|
3
3
|
import { Component } from "@angular/core";
|
|
4
|
-
import { FormBuilder, FormControl, FormGroup } from "@angular/forms";
|
|
4
|
+
import { FormBuilder, FormControl, FormGroup, Validators } from "@angular/forms";
|
|
5
5
|
import { ConfirmationService, DynamicDialogConfig, DynamicDialogRef } from "primeng/api";
|
|
6
|
-
import { Subject } from "rxjs";
|
|
7
|
-
import { finalize, takeUntil } from "rxjs/operators";
|
|
6
|
+
import { Subject, of } from "rxjs";
|
|
7
|
+
import { catchError, finalize, takeUntil } from "rxjs/operators";
|
|
8
8
|
import { NotaValidatorService } from "../../core/nota-validator.service";
|
|
9
|
-
import { MessageService } from "primeng/components/common/messageservice";
|
|
10
|
-
import { TranslateService } from "@ngx-translate/core";
|
|
11
9
|
var NotaFormComponent = /** @class */ (function () {
|
|
12
|
-
function NotaFormComponent(fb, notaValidatorService, dialogConfig, confirmationService, dialogRef, verificaNotaFiscal
|
|
10
|
+
function NotaFormComponent(fb, notaValidatorService, dialogConfig, confirmationService, dialogRef, verificaNotaFiscal) {
|
|
13
11
|
var _this = this;
|
|
14
12
|
this.notaValidatorService = notaValidatorService;
|
|
15
13
|
this.dialogConfig = dialogConfig;
|
|
16
14
|
this.confirmationService = confirmationService;
|
|
17
15
|
this.dialogRef = dialogRef;
|
|
18
16
|
this.verificaNotaFiscal = verificaNotaFiscal;
|
|
19
|
-
this.messageService = messageService;
|
|
20
|
-
this.translate = translate;
|
|
21
17
|
this.loading = false;
|
|
22
18
|
this.botaoDesabilitado = false;
|
|
19
|
+
this.disabled = true;
|
|
23
20
|
this.unsubscribe$ = new Subject();
|
|
24
21
|
this.validateNotaFiscal = function (response) {
|
|
22
|
+
var chaveNotaFiscal = _this.formGroup.get("chaveNotaFiscal").value;
|
|
23
|
+
if (chaveNotaFiscal.length === 0) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
_this.disabled = false;
|
|
25
27
|
if (!response || !response.documentos[0]) {
|
|
26
28
|
return;
|
|
27
29
|
}
|
|
@@ -55,10 +57,10 @@ var NotaFormComponent = /** @class */ (function () {
|
|
|
55
57
|
return !!chave || !!serie || !!numero ? null : { erroMultiplosCampos: true };
|
|
56
58
|
};
|
|
57
59
|
this.formGroup = fb.group({
|
|
58
|
-
chaveNotaFiscal: [undefined],
|
|
59
|
-
serieNotaFiscal: [undefined],
|
|
60
|
-
serieLegalNotaFiscal: [undefined],
|
|
61
|
-
numeroNotaFiscal: [undefined],
|
|
60
|
+
chaveNotaFiscal: [undefined, Validators.required],
|
|
61
|
+
serieNotaFiscal: [undefined, Validators.required],
|
|
62
|
+
serieLegalNotaFiscal: [undefined, Validators.required],
|
|
63
|
+
numeroNotaFiscal: [undefined, Validators.required],
|
|
62
64
|
}, { validators: this.camposPreenchidosValidation });
|
|
63
65
|
}
|
|
64
66
|
NotaFormComponent.prototype.ngOnInit = function () {
|
|
@@ -102,7 +104,10 @@ var NotaFormComponent = /** @class */ (function () {
|
|
|
102
104
|
chaveDocumento: (chaveNotaFiscal || "").replace(/\s/g, ""),
|
|
103
105
|
filialId: this.filialId
|
|
104
106
|
})
|
|
105
|
-
.pipe(takeUntil(this.unsubscribe$),
|
|
107
|
+
.pipe(takeUntil(this.unsubscribe$), catchError(function () {
|
|
108
|
+
_this.disabled = false;
|
|
109
|
+
return of(null);
|
|
110
|
+
}), finalize(function () { return _this.loading = false; }))
|
|
106
111
|
.subscribe(this.validateNotaFiscal);
|
|
107
112
|
this.botaoDesabilitado = false;
|
|
108
113
|
};
|
|
@@ -161,7 +166,7 @@ var NotaFormComponent = /** @class */ (function () {
|
|
|
161
166
|
};
|
|
162
167
|
NotaFormComponent = tslib_1.__decorate([
|
|
163
168
|
Component({
|
|
164
|
-
template: "<form [formGroup]=\"formGroup\">\n <div class=\"ui-g ui-fluid\" *sLoadingState=\"loading\">\n <div class=\"ui-g-12\">\n <label for=\"chaveNotaFiscal\">{{'yms.erp.recebimento_chave_nota_fiscal' | translate}}</label>\n <input\n id=\"chaveNotaFiscal\"\n trim\n pInputText\n type=\"text\"\n formControlName=\"chaveNotaFiscal\"\n (blur)=\"onBlurNotaFiscal()\"\n >\n <s-control-errors
|
|
169
|
+
template: "<form [formGroup]=\"formGroup\">\n <div class=\"ui-g ui-fluid\" *sLoadingState=\"loading\">\n <div class=\"ui-g-12 required\">\n <label for=\"chaveNotaFiscal\">{{'yms.erp.recebimento_chave_nota_fiscal' | translate}}</label>\n <input\n id=\"chaveNotaFiscal\"\n trim\n pInputText\n type=\"text\"\n formControlName=\"chaveNotaFiscal\"\n (blur)=\"onBlurNotaFiscal()\"\n >\n <s-control-errors\n [control]=\"formGroup.controls.chaveNotaFiscal\"\n [errorMessages]=\"{ errorChaveNota: 'yms.erp.produto_nota_error_detail' | translate }\">\n </s-control-errors>\n </div>\n <div class=\"ui-g-12 required\" [attr.data-hidden]=\"disabled\">\n <label for=\"serieNotaFiscal\">{{'yms.erp.recebimento_serie_nota_fiscal' | translate}}</label>\n <input pInputText type=\"text\" formControlName=\"serieNotaFiscal\">\n <s-control-errors\n [control]=\"formGroup.controls['serieNotaFiscal']\"\n [errorMessages]=\"{ required: 'yms.erp.error_required' | translate }\">\n </s-control-errors>\n </div>\n <div class=\"ui-g-12 required\" [attr.data-hidden]=\"disabled\">\n <label for=\"serieLegalNotaFiscal\">{{'yms.erp.recebimento_serie_legal_nota_fiscal' | translate}}</label>\n <input pInputText type=\"text\" formControlName=\"serieLegalNotaFiscal\">\n <s-control-errors\n [control]=\"formGroup.controls['serieLegalNotaFiscal']\"\n [errorMessages]=\"{ required: 'yms.erp.error_required' | translate }\">\n </s-control-errors>\n </div>\n <div class=\"ui-g-12 required\" [attr.data-hidden]=\"disabled\">\n <label for=\"numeroNotaFiscal\">{{'yms.erp.recebimento_numero_nota_fiscal' | translate}}</label>\n <input pInputText type=\"text\" formControlName=\"numeroNotaFiscal\">\n <s-control-errors\n [control]=\"formGroup.controls['numeroNotaFiscal']\"\n [errorMessages]=\"{ required: 'yms.erp.error_required' | translate }\">\n </s-control-errors>\n </div>\n </div>\n\n <s-control-errors [control]=\"formGroup\" [errorMessages]=\"{ erroMultiplosCampos: 'yms.erp.nota_fiscal_no_value' | translate }\"></s-control-errors>\n\n <s-button label=\"Cancelar\" (onClick)=\"close()\" priority=\"link\"></s-button>\n <s-button label=\"Salvar\" [disabled]=\"botaoDesabilitado || disabled\" (onClick)=\"save()\"></s-button>\n</form>\n\n<p-confirmDialog appendTo=\"body\"></p-confirmDialog>",
|
|
165
170
|
providers: [ConfirmationService]
|
|
166
171
|
}),
|
|
167
172
|
tslib_1.__metadata("design:paramtypes", [FormBuilder,
|
|
@@ -169,11 +174,9 @@ var NotaFormComponent = /** @class */ (function () {
|
|
|
169
174
|
DynamicDialogConfig,
|
|
170
175
|
ConfirmationService,
|
|
171
176
|
DynamicDialogRef,
|
|
172
|
-
VerificaNotafiscal
|
|
173
|
-
MessageService,
|
|
174
|
-
TranslateService])
|
|
177
|
+
VerificaNotafiscal])
|
|
175
178
|
], NotaFormComponent);
|
|
176
179
|
return NotaFormComponent;
|
|
177
180
|
}());
|
|
178
181
|
export { NotaFormComponent };
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90YS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy95bXMtaW50ZWdyYXRpb24vIiwic291cmNlcyI6WyJzcmMvZXJwLXNlbmlvci9jb21wb25lbnRzL25vdGEtZm9ybS9ub3RhLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQW1CLFdBQVcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFpQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckQsT0FBTyxFQUFFLG9CQUFvQixFQUE4QixNQUFNLG1DQUFtQyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU12RDtJQVlJLDJCQUNJLEVBQWUsRUFDUCxvQkFBMEMsRUFDMUMsWUFBaUMsRUFDakMsbUJBQXdDLEVBQ3hDLFNBQTJCLEVBQzNCLGtCQUFzQyxFQUN0QyxjQUE4QixFQUM5QixTQUEyQjtRQVJ2QyxpQkFpQkM7UUFmVyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLHVCQUFrQixHQUFsQixr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TSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFTyxzREFBMEIsR0FBbEM7UUFDSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBaE1RLGlCQUFpQjtRQUw3QixTQUFTLENBQUM7WUFDUCx3MERBQXlDO1lBQ3pDLFNBQVMsRUFBRSxDQUFFLG1CQUFtQixDQUFFO1NBQ3JDLENBQUM7aURBZVUsV0FBVztZQUNlLG9CQUFvQjtZQUM1QixtQkFBbUI7WUFDWixtQkFBbUI7WUFDN0IsZ0JBQWdCO1lBQ1Asa0JBQWtCO1lBQ3RCLGNBQWM7WUFDbkIsZ0JBQWdCO09BcEI5QixpQkFBaUIsQ0FpTTdCO0lBQUQsd0JBQUM7Q0FBQSxBQWpNRCxJQWlNQztTQWpNWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWZXJpZmljYU5vdGFmaXNjYWwgfSBmcm9tICcuLi8uLi9jb3JlL3ZlcmlmaWNhLW5vdGEtZmlzY2FsL3ZlcmlmaWNhTm90YUZpc2NhbCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBEeW5hbWljRGlhbG9nQ29uZmlnLCBEeW5hbWljRGlhbG9nUmVmIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGZpbmFsaXplLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IFBlc3NvYSB9IGZyb20gXCIuLi8uLi9jb3JlL2VudGl0aWVzL3Blc3NvYS9wZXNzb2FcIjtcbmltcG9ydCB7IFByb2R1dG8gfSBmcm9tIFwiLi4vLi4vY29yZS9lbnRpdGllcy9wcm9kdXRvL3Byb2R1dG9cIjtcbmltcG9ydCB7IE5vdGFWYWxpZGF0b3JTZXJ2aWNlLCBQZXNxdWlzYXJEb2N1bWVudG9SZXNwb25zZSB9IGZyb20gXCIuLi8uLi9jb3JlL25vdGEtdmFsaWRhdG9yLnNlcnZpY2VcIjtcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcInByaW1lbmcvY29tcG9uZW50cy9jb21tb24vbWVzc2FnZXNlcnZpY2VcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICcuL25vdGEtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbIENvbmZpcm1hdGlvblNlcnZpY2UgXVxufSlcblxuZXhwb3J0IGNsYXNzIE5vdGFGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICAgIGxvYWRpbmcgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgZmlsaWFsSWQ6IHN0cmluZztcbiAgICBwcml2YXRlIGZvcm5lY2Vkb3I6IFBlc3NvYTtcbiAgICBwcml2YXRlIHByb2R1dG86IFByb2R1dG87XG4gICAgcHJpdmF0ZSBmb3JuZWNlZG9yTm90YXNUb2tlbnM6IGFueTtcbiAgICBwcml2YXRlIGNvbnRyYXRvczogYW55O1xuICAgIGJvdGFvRGVzYWJpbGl0YWRvID0gZmFsc2U7XG4gICAgXG4gICAgcHJpdmF0ZSByZWFkb25seSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBmYjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgbm90YVZhbGlkYXRvclNlcnZpY2U6IE5vdGFWYWxpZGF0b3JTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ0NvbmZpZzogRHluYW1pY0RpYWxvZ0NvbmZpZyxcbiAgICAgICAgcHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ1JlZjogRHluYW1pY0RpYWxvZ1JlZixcbiAgICAgICAgcHJpdmF0ZSB2ZXJpZmljYU5vdGFGaXNjYWw6IFZlcmlmaWNhTm90YWZpc2NhbCxcbiAgICAgICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwID0gZmIuZ3JvdXAoe1xuICAgICAgICAgICAgY2hhdmVOb3RhRmlzY2FsOiBbIHVuZGVmaW5lZCBdLFxuICAgICAgICAgICAgc2VyaWVOb3RhRmlzY2FsOiBbIHVuZGVmaW5lZCBdLFxuICAgICAgICAgICAgc2VyaWVMZWdhbE5vdGFGaXNjYWw6IFsgdW5kZWZpbmVkIF0sXG4gICAgICAgICAgICBudW1lcm9Ob3RhRmlzY2FsOiBbIHVuZGVmaW5lZCBdLFxuICAgICAgICB9LCB7IHZhbGlkYXRvcnM6IHRoaXMuY2FtcG9zUHJlZW5jaGlkb3NWYWxpZGF0aW9uIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmZpbGlhbElkID0gdGhpcy5kaWFsb2dDb25maWcuZGF0YS5maWxpYWwuaWQ7XG4gICAgICAgIHRoaXMuZm9ybmVjZWRvciA9IHRoaXMuZGlhbG9nQ29uZmlnLmRhdGEuZm9ybmVjZWRvcjtcbiAgICAgICAgdGhpcy5wcm9kdXRvID0gdGhpcy5kaWFsb2dDb25maWcuZGF0YS5wcm9kdXRvO1xuICAgICAgICB0aGlzLmZvcm5lY2Vkb3JOb3Rhc1Rva2VucyA9IHRoaXMuZGlhbG9nQ29uZmlnLmRhdGEuZm9ybmVjZWRvck5vdGFzVG9rZW5zO1xuICAgICAgICB0aGlzLmNvbnRyYXRvcyA9IHRoaXMuZGlhbG9nQ29uZmlnLmRhdGEuY29udHJhdG9zO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgc2F2ZSgpIHtcbiAgICAgICAgY29uc3QgY2hhdmVOb3RhRmlzY2FsID0gdGhpcy5mb3JtR3JvdXAuZ2V0KFwiY2hhdmVOb3RhRmlzY2FsXCIpLnZhbHVlO1xuXG4gICAgICAgIGlmICh0aGlzLnZlcmlmaWNhTm90YUZpc2NhbC52ZXJpZmljYVNlTm90YUZpc2NhbEVzdGFEdXBsaWNhZGEoY2hhdmVOb3RhRmlzY2FsLCB0aGlzLmNvbnRyYXRvcywgdGhpcy5mb3JuZWNlZG9yTm90YXNUb2tlbnMpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWNoYXZlTm90YUZpc2NhbCkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVFcnJvckNoYXZlTm90YSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKHRoaXMuZm9ybUdyb3VwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaGFiaWxpdGFDYW1wb3NOb3RhRmlzY2FsKCk7XG5cbiAgICAgICAgdGhpcy5jbG9zZSh0aGlzLmZvcm1Hcm91cC52YWx1ZSk7XG4gICAgfVxuXG4gICAgY2xvc2UoZGF0YT86IGFueSkge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShkYXRhKTtcbiAgICB9XG5cbiAgICBvbkJsdXJOb3RhRmlzY2FsKCkge1xuICAgICAgICBjb25zdCBjaGF2ZU5vdGFGaXNjYWwgPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJjaGF2ZU5vdGFGaXNjYWxcIikudmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMudmVyaWZpY2FOb3RhRmlzY2FsLnZlcmlmaWNhU2VOb3RhRmlzY2FsRXN0YUR1cGxpY2FkYShjaGF2ZU5vdGFGaXNjYWwsIHRoaXMuY29udHJhdG9zLCB0aGlzLmZvcm5lY2Vkb3JOb3Rhc1Rva2VucykpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB0aGlzLmJvdGFvRGVzYWJpbGl0YWRvID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVtb3ZlRXJyb3JDaGF2ZU5vdGEoKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLm5vdGFWYWxpZGF0b3JTZXJ2aWNlLnBlc3F1aXNhckRvY3VtZW50b1ZhbGlkYU5vdGFFbVVzbyh7XG4gICAgICAgICAgICBjaGF2ZURvY3VtZW50bzogKGNoYXZlTm90YUZpc2NhbCB8fCBcIlwiKS5yZXBsYWNlKC9cXHMvZywgXCJcIiksXG4gICAgICAgICAgICBmaWxpYWxJZDogdGhpcy5maWxpYWxJZFxuICAgICAgICB9KVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLCBmaW5hbGl6ZSgoKSA9PiB0aGlzLmxvYWRpbmcgPSBmYWxzZSkpXG4gICAgICAgIC5zdWJzY3JpYmUodGhpcy52YWxpZGF0ZU5vdGFGaXNjYWwpO1xuXG4gICAgICAgICAgdGhpcy5ib3Rhb0Rlc2FiaWxpdGFkbyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVOb3RhRmlzY2FsID0gKHJlc3BvbnNlOiBQZXNxdWlzYXJEb2N1bWVudG9SZXNwb25zZSkgPT4geyAgICAgXG4gICAgICAgIGlmICghcmVzcG9uc2UgfHwgIXJlc3BvbnNlLmRvY3VtZW50b3NbMF0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgY29uc3QgdmFsdWUgPSByZXNwb25zZS5kb2N1bWVudG9zWzBdO1xuXG4gICAgICAgIGlmICghdGhpcy52YWxpZGFQcm9kdXRvTmFOb3RhRmlzY2FsKHZhbHVlLml0ZW5zKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgbm90YUZpc2NhbCA9IHsgXG4gICAgICAgICAgICBjaGF2ZTogdGhpcy5mb3JtR3JvdXAuZ2V0KFwiY2hhdmVOb3RhRmlzY2FsXCIpLnZhbHVlLCBcbiAgICAgICAgICAgIHNlcmllOiB2YWx1ZS5zZXJpZSwgXG4gICAgICAgICAgICBzZXJpZUxlZ2FsOiB2YWx1ZS5zZXJpZUxlZ2FsLCBcbiAgICAgICAgICAgIG51bWVybzogdmFsdWUubnVtZXJvLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghdGhpcy5mb3JuZWNlZG9yKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlQW5kUmV0dXJuTm90YShub3RhRmlzY2FsLCB2YWx1ZS5mb3JuZWNlZG9yLCB2YWx1ZS5vcmlnZW1NZXJjYWRvcmlhKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghISh2YWx1ZS5mb3JuZWNlZG9yIHx8IHtpZDogdW5kZWZpbmVkfSkuaWQgJiYgKHZhbHVlLmZvcm5lY2Vkb3IuaWQgIT09IHRoaXMuZm9ybmVjZWRvci5pZCkpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlybUFuZEFkZE5vdm9Gb3JuZWNlZG9yKG5vdGFGaXNjYWwsIHZhbHVlLmZvcm5lY2Vkb3IsIHZhbHVlLm9yaWdlbU1lcmNhZG9yaWEpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwic2VyaWVOb3RhRmlzY2FsXCIpLnNldFZhbHVlKHZhbHVlLnNlcmllKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwic2VyaWVMZWdhbE5vdGFGaXNjYWxcIikuc2V0VmFsdWUodmFsdWUuc2VyaWVMZWdhbCk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcIm51bWVyb05vdGFGaXNjYWxcIikuc2V0VmFsdWUodmFsdWUubnVtZXJvKTtcblxuICAgICAgICB0aGlzLmRlc2FiaWxpdGFDYW1wb3NOb3RhRmlzY2FsKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGFQcm9kdXRvTmFOb3RhRmlzY2FsKHByb2R1dG9zKXtcbiAgICAgICAgaWYgKHByb2R1dG9zICE9IG51bGwgJiYgcHJvZHV0b3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGV0IHByb2R1dG8gPSBwcm9kdXRvc1swXS5wcm9kdXRvO1xuXG4gICAgICAgICAgICBpZiAoISFwcm9kdXRvICYmICEhdGhpcy5wcm9kdXRvICYmIChwcm9kdXRvLmlkICE9PSB0aGlzLnByb2R1dG8uaWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRFcnJvcklmUHJvZHV0b0lzRGlmZmVyZW50KCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIFxuICAgIHByaXZhdGUgY29uZmlybUFuZEFkZE5vdm9Gb3JuZWNlZG9yKGluZm9Ob3RhOiB7IGNoYXZlOiBzdHJpbmcsIHNlcmllOiBzdHJpbmcsIHNlcmllTGVnYWw6IHN0cmluZywgbnVtZXJvOiBudW1iZXIgfSwgZm9ybmVjZWRvcjogYW55LCBvcmlnZW1NZXJjYWRvcmlhOiBhbnkpIHtcbiAgICAgICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgICAgICAgaGVhZGVyOiAnTyBmb3JuZWNlZG9yIHZpbmN1bGFkbyBhIG5vdGEgbsOjbyDDqSBvIG1lc21vIHF1ZSBvIHNlbGVjaW9uYWRvJyxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdPIGZvcm5lY2Vkb3IgdmluY3VsYWRvIGEgbm90YSBuw6NvIMOpIG8gbWVzbW8gcXVlIG8gc2VsZWNpb25hZG8uIERlc2VqYSBhZGljaW9uYXIgdW0gbm92byBmb3JuZWNlZG9yIG91IGNhbmNlbGFyIGEgb3BlcmHDp8Ojbz8nLFxuICAgICAgICAgICAgYWNjZXB0TGFiZWw6ICdBZGljaW9uYXIgdW0gbm92byBmb3JuZWNlZG9yJyxcbiAgICAgICAgICAgIHJlamVjdExhYmVsOiAnQ2FuY2VsYXIgb3BlcmHDp8OjbycsXG4gICAgICAgICAgICBhY2NlcHQ6ICgpID0+IHRoaXMuY2xvc2VBbmRSZXR1cm5Ob3RhKGluZm9Ob3RhLCBmb3JuZWNlZG9yLCBvcmlnZW1NZXJjYWRvcmlhKSxcbiAgICAgICAgICAgIHJlamVjdDogKCkgPT4gdGhpcy5mb3JtR3JvdXAuZ2V0KFwiY2hhdmVOb3RhRmlzY2FsXCIpLnNldFZhbHVlKHVuZGVmaW5lZClcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRFcnJvcklmUHJvZHV0b0lzRGlmZmVyZW50KCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJjaGF2ZU5vdGFGaXNjYWxcIikuc2V0RXJyb3JzKHsgZXJyb3JDaGF2ZU5vdGE6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVFcnJvckNoYXZlTm90YSgpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwiY2hhdmVOb3RhRmlzY2FsXCIpLnNldEVycm9ycyhudWxsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlQW5kUmV0dXJuTm90YShpbmZvTm90YTogeyBjaGF2ZTogc3RyaW5nLCBzZXJpZTogc3RyaW5nLCBzZXJpZUxlZ2FsOiBzdHJpbmcsIG51bWVybzogbnVtYmVyIH0sIGZvcm5lY2Vkb3I6IGFueSwgb3JpZ2VtTWVyY2Fkb3JpYTogYW55KSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHsgYWRkRm9ybmVjZWRvcjogdHJ1ZSwgaW5mb05vdGEsIGZvcm5lY2Vkb3IsIG9yaWdlbU1lcmNhZG9yaWEgfSlcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtR3JvdXA6IEZvcm1Hcm91cCkge1xuICAgICAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGQpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoY29udHJvbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZvcm1Hcm91cC5tYXJrQXNEaXJ0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FtcG9zUHJlZW5jaGlkb3NWYWxpZGF0aW9uOiBWYWxpZGF0b3JGbiA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAgIGNvbnN0IGNoYXZlID0gY29udHJvbC5nZXQoXCJjaGF2ZU5vdGFGaXNjYWxcIikudmFsdWU7XG4gICAgICAgIGNvbnN0IHNlcmllID0gY29udHJvbC5nZXQoXCJzZXJpZU5vdGFGaXNjYWxcIikudmFsdWU7XG4gICAgICAgIGNvbnN0IG51bWVybyA9IGNvbnRyb2wuZ2V0KFwibnVtZXJvTm90YUZpc2NhbFwiKS52YWx1ZTtcblxuICAgICAgICByZXR1cm4gISFjaGF2ZSB8fCAhIXNlcmllIHx8ICEhbnVtZXJvID8gbnVsbCA6IHsgZXJyb011bHRpcGxvc0NhbXBvczogdHJ1ZSB9O1xuICAgIH07XG5cbiAgICBwcml2YXRlIGhhYmlsaXRhQ2FtcG9zTm90YUZpc2NhbCgpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwic2VyaWVOb3RhRmlzY2FsXCIpLmVuYWJsZSgpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJzZXJpZUxlZ2FsTm90YUZpc2NhbFwiKS5lbmFibGUoKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwibnVtZXJvTm90YUZpc2NhbFwiKS5lbmFibGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc2FiaWxpdGFDYW1wb3NOb3RhRmlzY2FsKCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJzZXJpZU5vdGFGaXNjYWxcIikuZGlzYWJsZSgpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJzZXJpZUxlZ2FsTm90YUZpc2NhbFwiKS5kaXNhYmxlKCk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcIm51bWVyb05vdGFGaXNjYWxcIikuZGlzYWJsZSgpO1xuICAgIH1cbn0iXX0=
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90YS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy95bXMtaW50ZWdyYXRpb24vIiwic291cmNlcyI6WyJzcmMvZXJwLXNlbmlvci9jb21wb25lbnRzL25vdGEtZm9ybS9ub3RhLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQW1CLFdBQVcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFpQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqSSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekYsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakUsT0FBTyxFQUFFLG9CQUFvQixFQUE4QixNQUFNLG1DQUFtQyxDQUFDO0FBT3JHO0lBYUksMkJBQ0ksRUFBZSxFQUNQLG9CQUEwQyxFQUMxQyxZQUFpQyxFQUNqQyxtQkFBd0MsRUFDeEMsU0FBMkIsRUFDbEIsa0JBQXNDO1FBTjNELGlCQWVDO1FBYlcseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUNsQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBakIzRCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBT2hCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixhQUFRLEdBQUcs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YWwgfSBmcm9tICcuLi8uLi9jb3JlL3ZlcmlmaWNhLW5vdGEtZmlzY2FsL3ZlcmlmaWNhTm90YUZpc2NhbCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBEeW5hbWljRGlhbG9nQ29uZmlnLCBEeW5hbWljRGlhbG9nUmVmIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5pbXBvcnQgeyBTdWJqZWN0LCBvZiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBQZXNzb2EgfSBmcm9tIFwiLi4vLi4vY29yZS9lbnRpdGllcy9wZXNzb2EvcGVzc29hXCI7XG5pbXBvcnQgeyBQcm9kdXRvIH0gZnJvbSBcIi4uLy4uL2NvcmUvZW50aXRpZXMvcHJvZHV0by9wcm9kdXRvXCI7XG5pbXBvcnQgeyBOb3RhVmFsaWRhdG9yU2VydmljZSwgUGVzcXVpc2FyRG9jdW1lbnRvUmVzcG9uc2UgfSBmcm9tIFwiLi4vLi4vY29yZS9ub3RhLXZhbGlkYXRvci5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnLi9ub3RhLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogWyBDb25maXJtYXRpb25TZXJ2aWNlIF1cbn0pXG5cbmV4cG9ydCBjbGFzcyBOb3RhRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgICBsb2FkaW5nID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGZpbGlhbElkOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBmb3JuZWNlZG9yOiBQZXNzb2E7XG4gICAgcHJpdmF0ZSBwcm9kdXRvOiBQcm9kdXRvO1xuICAgIHByaXZhdGUgZm9ybmVjZWRvck5vdGFzVG9rZW5zOiBhbnk7XG4gICAgcHJpdmF0ZSBjb250cmF0b3M6IGFueTtcbiAgICBib3Rhb0Rlc2FiaWxpdGFkbyA9IGZhbHNlO1xuICAgIGRpc2FibGVkID0gdHJ1ZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZmI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIG5vdGFWYWxpZGF0b3JTZXJ2aWNlOiBOb3RhVmFsaWRhdG9yU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dDb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcsXG4gICAgICAgIHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dSZWY6IER5bmFtaWNEaWFsb2dSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdmVyaWZpY2FOb3RhRmlzY2FsOiBWZXJpZmljYU5vdGFmaXNjYWxcblxuICAgICkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IGZiLmdyb3VwKHtcbiAgICAgICAgICAgIGNoYXZlTm90YUZpc2NhbDogWyB1bmRlZmluZWQsIFZhbGlkYXRvcnMucmVxdWlyZWQgXSxcbiAgICAgICAgICAgIHNlcmllTm90YUZpc2NhbDogWyB1bmRlZmluZWQsIFZhbGlkYXRvcnMucmVxdWlyZWQgXSxcbiAgICAgICAgICAgIHNlcmllTGVnYWxOb3RhRmlzY2FsOiBbIHVuZGVmaW5lZCwgVmFsaWRhdG9ycy5yZXF1aXJlZCBdLFxuICAgICAgICAgICAgbnVtZXJvTm90YUZpc2NhbDogWyB1bmRlZmluZWQsIFZhbGlkYXRvcnMucmVxdWlyZWQgXSxcbiAgICAgICAgfSwgeyB2YWxpZGF0b3JzOiB0aGlzLmNhbXBvc1ByZWVuY2hpZG9zVmFsaWRhdGlvbiB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5maWxpYWxJZCA9IHRoaXMuZGlhbG9nQ29uZmlnLmRhdGEuZmlsaWFsLmlkO1xuICAgICAgICB0aGlzLmZvcm5lY2Vkb3IgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhLmZvcm5lY2Vkb3I7XG4gICAgICAgIHRoaXMucHJvZHV0byA9IHRoaXMuZGlhbG9nQ29uZmlnLmRhdGEucHJvZHV0bztcbiAgICAgICAgdGhpcy5mb3JuZWNlZG9yTm90YXNUb2tlbnMgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhLmZvcm5lY2Vkb3JOb3Rhc1Rva2VucztcbiAgICAgICAgdGhpcy5jb250cmF0b3MgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhLmNvbnRyYXRvcztcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHNhdmUoKSB7XG4gICAgICAgIGNvbnN0IGNoYXZlTm90YUZpc2NhbCA9IHRoaXMuZm9ybUdyb3VwLmdldChcImNoYXZlTm90YUZpc2NhbFwiKS52YWx1ZTtcblxuICAgICAgICBpZiAodGhpcy52ZXJpZmljYU5vdGFGaXNjYWwudmVyaWZpY2FTZU5vdGFGaXNjYWxFc3RhRHVwbGljYWRhKGNoYXZlTm90YUZpc2NhbCwgdGhpcy5jb250cmF0b3MsIHRoaXMuZm9ybmVjZWRvck5vdGFzVG9rZW5zKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjaGF2ZU5vdGFGaXNjYWwpIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlRXJyb3JDaGF2ZU5vdGEoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5mb3JtR3JvdXAudmFsaWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyh0aGlzLmZvcm1Hcm91cCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmhhYmlsaXRhQ2FtcG9zTm90YUZpc2NhbCgpO1xuXG4gICAgICAgIHRoaXMuY2xvc2UodGhpcy5mb3JtR3JvdXAudmFsdWUpO1xuICAgIH1cblxuICAgIGNsb3NlKGRhdGE/OiBhbnkpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoZGF0YSk7XG4gICAgfVxuXG4gICAgb25CbHVyTm90YUZpc2NhbCgpIHtcbiAgICAgICAgY29uc3QgY2hhdmVOb3RhRmlzY2FsID0gdGhpcy5mb3JtR3JvdXAuZ2V0KFwiY2hhdmVOb3RhRmlzY2FsXCIpLnZhbHVlO1xuXG4gICAgICAgIGlmICh0aGlzLnZlcmlmaWNhTm90YUZpc2NhbC52ZXJpZmljYVNlTm90YUZpc2NhbEVzdGFEdXBsaWNhZGEoY2hhdmVOb3RhRmlzY2FsLCB0aGlzLmNvbnRyYXRvcywgdGhpcy5mb3JuZWNlZG9yTm90YXNUb2tlbnMpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgdGhpcy5ib3Rhb0Rlc2FiaWxpdGFkbyA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlbW92ZUVycm9yQ2hhdmVOb3RhKCk7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5ub3RhVmFsaWRhdG9yU2VydmljZS5wZXNxdWlzYXJEb2N1bWVudG9WYWxpZGFOb3RhRW1Vc28oe1xuICAgICAgICAgICAgY2hhdmVEb2N1bWVudG86IChjaGF2ZU5vdGFGaXNjYWwgfHwgXCJcIikucmVwbGFjZSgvXFxzL2csIFwiXCIpLFxuICAgICAgICAgICAgZmlsaWFsSWQ6IHRoaXMuZmlsaWFsSWRcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICAgIH0pLGZpbmFsaXplKCgpID0+IHRoaXMubG9hZGluZyA9IGZhbHNlKSlcbiAgICAgICAgLnN1YnNjcmliZSh0aGlzLnZhbGlkYXRlTm90YUZpc2NhbCk7XG5cbiAgICAgICAgICB0aGlzLmJvdGFvRGVzYWJpbGl0YWRvID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZU5vdGFGaXNjYWwgPSAocmVzcG9uc2U6IFBlc3F1aXNhckRvY3VtZW50b1Jlc3BvbnNlKSA9PiB7ICAgICBcbiAgICAgICAgY29uc3QgY2hhdmVOb3RhRmlzY2FsID0gdGhpcy5mb3JtR3JvdXAuZ2V0KFwiY2hhdmVOb3RhRmlzY2FsXCIpLnZhbHVlO1xuICAgICAgICBpZiAoY2hhdmVOb3RhRmlzY2FsLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgICAgICBpZiAoIXJlc3BvbnNlIHx8ICFyZXNwb25zZS5kb2N1bWVudG9zWzBdKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGNvbnN0IHZhbHVlID0gcmVzcG9uc2UuZG9jdW1lbnRvc1swXTtcblxuICAgICAgICBpZiAoIXRoaXMudmFsaWRhUHJvZHV0b05hTm90YUZpc2NhbCh2YWx1ZS5pdGVucykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5vdGFGaXNjYWwgPSB7IFxuICAgICAgICAgICAgY2hhdmU6IHRoaXMuZm9ybUdyb3VwLmdldChcImNoYXZlTm90YUZpc2NhbFwiKS52YWx1ZSwgXG4gICAgICAgICAgICBzZXJpZTogdmFsdWUuc2VyaWUsIFxuICAgICAgICAgICAgc2VyaWVMZWdhbDogdmFsdWUuc2VyaWVMZWdhbCwgXG4gICAgICAgICAgICBudW1lcm86IHZhbHVlLm51bWVybyxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoIXRoaXMuZm9ybmVjZWRvcikge1xuICAgICAgICAgICAgdGhpcy5jbG9zZUFuZFJldHVybk5vdGEobm90YUZpc2NhbCwgdmFsdWUuZm9ybmVjZWRvciwgdmFsdWUub3JpZ2VtTWVyY2Fkb3JpYSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoISEodmFsdWUuZm9ybmVjZWRvciB8fCB7aWQ6IHVuZGVmaW5lZH0pLmlkICYmICh2YWx1ZS5mb3JuZWNlZG9yLmlkICE9PSB0aGlzLmZvcm5lY2Vkb3IuaWQpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1BbmRBZGROb3ZvRm9ybmVjZWRvcihub3RhRmlzY2FsLCB2YWx1ZS5mb3JuZWNlZG9yLCB2YWx1ZS5vcmlnZW1NZXJjYWRvcmlhKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcInNlcmllTm90YUZpc2NhbFwiKS5zZXRWYWx1ZSh2YWx1ZS5zZXJpZSk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcInNlcmllTGVnYWxOb3RhRmlzY2FsXCIpLnNldFZhbHVlKHZhbHVlLnNlcmllTGVnYWwpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJudW1lcm9Ob3RhRmlzY2FsXCIpLnNldFZhbHVlKHZhbHVlLm51bWVybyk7XG5cbiAgICAgICAgdGhpcy5kZXNhYmlsaXRhQ2FtcG9zTm90YUZpc2NhbCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhUHJvZHV0b05hTm90YUZpc2NhbChwcm9kdXRvcyl7XG4gICAgICAgIGlmIChwcm9kdXRvcyAhPSBudWxsICYmIHByb2R1dG9zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGxldCBwcm9kdXRvID0gcHJvZHV0b3NbMF0ucHJvZHV0bztcblxuICAgICAgICAgICAgaWYgKCEhcHJvZHV0byAmJiAhIXRoaXMucHJvZHV0byAmJiAocHJvZHV0by5pZCAhPT0gdGhpcy5wcm9kdXRvLmlkKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkRXJyb3JJZlByb2R1dG9Jc0RpZmZlcmVudCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBcbiAgICBwcml2YXRlIGNvbmZpcm1BbmRBZGROb3ZvRm9ybmVjZWRvcihpbmZvTm90YTogeyBjaGF2ZTogc3RyaW5nLCBzZXJpZTogc3RyaW5nLCBzZXJpZUxlZ2FsOiBzdHJpbmcsIG51bWVybzogbnVtYmVyIH0sIGZvcm5lY2Vkb3I6IGFueSwgb3JpZ2VtTWVyY2Fkb3JpYTogYW55KSB7XG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZS5jb25maXJtKHtcbiAgICAgICAgICAgIGhlYWRlcjogJ08gZm9ybmVjZWRvciB2aW5jdWxhZG8gYSBub3RhIG7Do28gw6kgbyBtZXNtbyBxdWUgbyBzZWxlY2lvbmFkbycsXG4gICAgICAgICAgICBtZXNzYWdlOiAnTyBmb3JuZWNlZG9yIHZpbmN1bGFkbyBhIG5vdGEgbsOjbyDDqSBvIG1lc21vIHF1ZSBvIHNlbGVjaW9uYWRvLiBEZXNlamEgYWRpY2lvbmFyIHVtIG5vdm8gZm9ybmVjZWRvciBvdSBjYW5jZWxhciBhIG9wZXJhw6fDo28/JyxcbiAgICAgICAgICAgIGFjY2VwdExhYmVsOiAnQWRpY2lvbmFyIHVtIG5vdm8gZm9ybmVjZWRvcicsXG4gICAgICAgICAgICByZWplY3RMYWJlbDogJ0NhbmNlbGFyIG9wZXJhw6fDo28nLFxuICAgICAgICAgICAgYWNjZXB0OiAoKSA9PiB0aGlzLmNsb3NlQW5kUmV0dXJuTm90YShpbmZvTm90YSwgZm9ybmVjZWRvciwgb3JpZ2VtTWVyY2Fkb3JpYSksXG4gICAgICAgICAgICByZWplY3Q6ICgpID0+IHRoaXMuZm9ybUdyb3VwLmdldChcImNoYXZlTm90YUZpc2NhbFwiKS5zZXRWYWx1ZSh1bmRlZmluZWQpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkRXJyb3JJZlByb2R1dG9Jc0RpZmZlcmVudCgpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwiY2hhdmVOb3RhRmlzY2FsXCIpLnNldEVycm9ycyh7IGVycm9yQ2hhdmVOb3RhOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlRXJyb3JDaGF2ZU5vdGEoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcImNoYXZlTm90YUZpc2NhbFwiKS5zZXRFcnJvcnMobnVsbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZUFuZFJldHVybk5vdGEoaW5mb05vdGE6IHsgY2hhdmU6IHN0cmluZywgc2VyaWU6IHN0cmluZywgc2VyaWVMZWdhbDogc3RyaW5nLCBudW1lcm86IG51bWJlciB9LCBmb3JuZWNlZG9yOiBhbnksIG9yaWdlbU1lcmNhZG9yaWE6IGFueSkge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7IGFkZEZvcm5lY2Vkb3I6IHRydWUsIGluZm9Ob3RhLCBmb3JuZWNlZG9yLCBvcmlnZW1NZXJjYWRvcmlhIH0pXG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUFsbEZvcm1GaWVsZHMoZm9ybUdyb3VwOiBGb3JtR3JvdXApIHtcbiAgICAgICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZpZWxkKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKGNvbnRyb2wpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBmb3JtR3JvdXAubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbXBvc1ByZWVuY2hpZG9zVmFsaWRhdGlvbjogVmFsaWRhdG9yRm4gPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgICBjb25zdCBjaGF2ZSA9IGNvbnRyb2wuZ2V0KFwiY2hhdmVOb3RhRmlzY2FsXCIpLnZhbHVlO1xuICAgICAgICBjb25zdCBzZXJpZSA9IGNvbnRyb2wuZ2V0KFwic2VyaWVOb3RhRmlzY2FsXCIpLnZhbHVlO1xuICAgICAgICBjb25zdCBudW1lcm8gPSBjb250cm9sLmdldChcIm51bWVyb05vdGFGaXNjYWxcIikudmFsdWU7XG5cbiAgICAgICAgcmV0dXJuICEhY2hhdmUgfHwgISFzZXJpZSB8fCAhIW51bWVybyA/IG51bGwgOiB7IGVycm9NdWx0aXBsb3NDYW1wb3M6IHRydWUgfTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBoYWJpbGl0YUNhbXBvc05vdGFGaXNjYWwoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcInNlcmllTm90YUZpc2NhbFwiKS5lbmFibGUoKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwic2VyaWVMZWdhbE5vdGFGaXNjYWxcIikuZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcIm51bWVyb05vdGFGaXNjYWxcIikuZW5hYmxlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXNhYmlsaXRhQ2FtcG9zTm90YUZpc2NhbCgpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwic2VyaWVOb3RhRmlzY2FsXCIpLmRpc2FibGUoKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwic2VyaWVMZWdhbE5vdGFGaXNjYWxcIikuZGlzYWJsZSgpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJudW1lcm9Ob3RhRmlzY2FsXCIpLmRpc2FibGUoKTtcbiAgICB9XG59Il19
|
|
@@ -4690,18 +4690,22 @@ NotaValidatorService = __decorate([
|
|
|
4690
4690
|
], NotaValidatorService);
|
|
4691
4691
|
|
|
4692
4692
|
let NotaFormComponent = class NotaFormComponent {
|
|
4693
|
-
constructor(fb, notaValidatorService, dialogConfig, confirmationService, dialogRef, verificaNotaFiscal
|
|
4693
|
+
constructor(fb, notaValidatorService, dialogConfig, confirmationService, dialogRef, verificaNotaFiscal) {
|
|
4694
4694
|
this.notaValidatorService = notaValidatorService;
|
|
4695
4695
|
this.dialogConfig = dialogConfig;
|
|
4696
4696
|
this.confirmationService = confirmationService;
|
|
4697
4697
|
this.dialogRef = dialogRef;
|
|
4698
4698
|
this.verificaNotaFiscal = verificaNotaFiscal;
|
|
4699
|
-
this.messageService = messageService;
|
|
4700
|
-
this.translate = translate;
|
|
4701
4699
|
this.loading = false;
|
|
4702
4700
|
this.botaoDesabilitado = false;
|
|
4701
|
+
this.disabled = true;
|
|
4703
4702
|
this.unsubscribe$ = new Subject();
|
|
4704
4703
|
this.validateNotaFiscal = (response) => {
|
|
4704
|
+
const chaveNotaFiscal = this.formGroup.get("chaveNotaFiscal").value;
|
|
4705
|
+
if (chaveNotaFiscal.length === 0) {
|
|
4706
|
+
return;
|
|
4707
|
+
}
|
|
4708
|
+
this.disabled = false;
|
|
4705
4709
|
if (!response || !response.documentos[0]) {
|
|
4706
4710
|
return;
|
|
4707
4711
|
}
|
|
@@ -4735,10 +4739,10 @@ let NotaFormComponent = class NotaFormComponent {
|
|
|
4735
4739
|
return !!chave || !!serie || !!numero ? null : { erroMultiplosCampos: true };
|
|
4736
4740
|
};
|
|
4737
4741
|
this.formGroup = fb.group({
|
|
4738
|
-
chaveNotaFiscal: [undefined],
|
|
4739
|
-
serieNotaFiscal: [undefined],
|
|
4740
|
-
serieLegalNotaFiscal: [undefined],
|
|
4741
|
-
numeroNotaFiscal: [undefined],
|
|
4742
|
+
chaveNotaFiscal: [undefined, Validators.required],
|
|
4743
|
+
serieNotaFiscal: [undefined, Validators.required],
|
|
4744
|
+
serieLegalNotaFiscal: [undefined, Validators.required],
|
|
4745
|
+
numeroNotaFiscal: [undefined, Validators.required],
|
|
4742
4746
|
}, { validators: this.camposPreenchidosValidation });
|
|
4743
4747
|
}
|
|
4744
4748
|
ngOnInit() {
|
|
@@ -4781,7 +4785,10 @@ let NotaFormComponent = class NotaFormComponent {
|
|
|
4781
4785
|
chaveDocumento: (chaveNotaFiscal || "").replace(/\s/g, ""),
|
|
4782
4786
|
filialId: this.filialId
|
|
4783
4787
|
})
|
|
4784
|
-
.pipe(takeUntil(this.unsubscribe$),
|
|
4788
|
+
.pipe(takeUntil(this.unsubscribe$), catchError(() => {
|
|
4789
|
+
this.disabled = false;
|
|
4790
|
+
return of(null);
|
|
4791
|
+
}), finalize(() => this.loading = false))
|
|
4785
4792
|
.subscribe(this.validateNotaFiscal);
|
|
4786
4793
|
this.botaoDesabilitado = false;
|
|
4787
4794
|
}
|
|
@@ -4839,7 +4846,7 @@ let NotaFormComponent = class NotaFormComponent {
|
|
|
4839
4846
|
};
|
|
4840
4847
|
NotaFormComponent = __decorate([
|
|
4841
4848
|
Component({
|
|
4842
|
-
template: "<form [formGroup]=\"formGroup\">\n <div class=\"ui-g ui-fluid\" *sLoadingState=\"loading\">\n <div class=\"ui-g-12\">\n <label for=\"chaveNotaFiscal\">{{'yms.erp.recebimento_chave_nota_fiscal' | translate}}</label>\n <input\n id=\"chaveNotaFiscal\"\n trim\n pInputText\n type=\"text\"\n formControlName=\"chaveNotaFiscal\"\n (blur)=\"onBlurNotaFiscal()\"\n >\n <s-control-errors
|
|
4849
|
+
template: "<form [formGroup]=\"formGroup\">\n <div class=\"ui-g ui-fluid\" *sLoadingState=\"loading\">\n <div class=\"ui-g-12 required\">\n <label for=\"chaveNotaFiscal\">{{'yms.erp.recebimento_chave_nota_fiscal' | translate}}</label>\n <input\n id=\"chaveNotaFiscal\"\n trim\n pInputText\n type=\"text\"\n formControlName=\"chaveNotaFiscal\"\n (blur)=\"onBlurNotaFiscal()\"\n >\n <s-control-errors\n [control]=\"formGroup.controls.chaveNotaFiscal\"\n [errorMessages]=\"{ errorChaveNota: 'yms.erp.produto_nota_error_detail' | translate }\">\n </s-control-errors>\n </div>\n <div class=\"ui-g-12 required\" [attr.data-hidden]=\"disabled\">\n <label for=\"serieNotaFiscal\">{{'yms.erp.recebimento_serie_nota_fiscal' | translate}}</label>\n <input pInputText type=\"text\" formControlName=\"serieNotaFiscal\">\n <s-control-errors\n [control]=\"formGroup.controls['serieNotaFiscal']\"\n [errorMessages]=\"{ required: 'yms.erp.error_required' | translate }\">\n </s-control-errors>\n </div>\n <div class=\"ui-g-12 required\" [attr.data-hidden]=\"disabled\">\n <label for=\"serieLegalNotaFiscal\">{{'yms.erp.recebimento_serie_legal_nota_fiscal' | translate}}</label>\n <input pInputText type=\"text\" formControlName=\"serieLegalNotaFiscal\">\n <s-control-errors\n [control]=\"formGroup.controls['serieLegalNotaFiscal']\"\n [errorMessages]=\"{ required: 'yms.erp.error_required' | translate }\">\n </s-control-errors>\n </div>\n <div class=\"ui-g-12 required\" [attr.data-hidden]=\"disabled\">\n <label for=\"numeroNotaFiscal\">{{'yms.erp.recebimento_numero_nota_fiscal' | translate}}</label>\n <input pInputText type=\"text\" formControlName=\"numeroNotaFiscal\">\n <s-control-errors\n [control]=\"formGroup.controls['numeroNotaFiscal']\"\n [errorMessages]=\"{ required: 'yms.erp.error_required' | translate }\">\n </s-control-errors>\n </div>\n </div>\n\n <s-control-errors [control]=\"formGroup\" [errorMessages]=\"{ erroMultiplosCampos: 'yms.erp.nota_fiscal_no_value' | translate }\"></s-control-errors>\n\n <s-button label=\"Cancelar\" (onClick)=\"close()\" priority=\"link\"></s-button>\n <s-button label=\"Salvar\" [disabled]=\"botaoDesabilitado || disabled\" (onClick)=\"save()\"></s-button>\n</form>\n\n<p-confirmDialog appendTo=\"body\"></p-confirmDialog>",
|
|
4843
4850
|
providers: [ConfirmationService]
|
|
4844
4851
|
}),
|
|
4845
4852
|
__metadata("design:paramtypes", [FormBuilder,
|
|
@@ -4847,9 +4854,7 @@ NotaFormComponent = __decorate([
|
|
|
4847
4854
|
DynamicDialogConfig,
|
|
4848
4855
|
ConfirmationService,
|
|
4849
4856
|
DynamicDialogRef,
|
|
4850
|
-
VerificaNotafiscal
|
|
4851
|
-
MessageService$1,
|
|
4852
|
-
TranslateService])
|
|
4857
|
+
VerificaNotafiscal])
|
|
4853
4858
|
], NotaFormComponent);
|
|
4854
4859
|
|
|
4855
4860
|
let TrimDirective = class TrimDirective {
|