UNPKG

@infordata-web/portal-common-component-lib

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.0.14.

90 lines • 15.7 kB
import { Component, EventEmitter, Input, Output } from '@angular/core'; import { FormControl, FormGroup } from '@angular/forms'; import { map } from 'rxjs/operators'; import { PersonaGiuridicaDTO } from '../../../models/persona-giuridica-dto'; import { ComponentOutputStatus } from '../../../normalizzazione/component-output-status'; import { MessageService } from '../../../services/message.service'; import { ValidationService } from '../../../services/validation.service'; export class PgComponent { constructor(msg) { this.msg = msg; this.showRagioneSociale = true; this.showPartitaIVA = true; this.done = new EventEmitter(); } ngOnInit() { this.form = new FormGroup({}); if (this.resetForm) { this.subscription = this.resetForm.subscribe(val => val ? this.pulisciForm() : ""); } const codiceFiscale = new FormControl({ value: '', disabled: false }, //TOLTO controllo per dare la possiibilità di inserimento anche della ditta individuale // [ // // Validators.required, // ValidationService.pattern( // ValidationService.partitaIva, // "partitaIVAInvalida" // ), // ] [ValidationService.pattern(ValidationService._codiceFiscalePiva, "cfInvalidoFormalmente") ]); this.form.addControl("codiceFiscale", codiceFiscale); if (this.showRagioneSociale) { const ragioneSociale = new FormControl({ value: '', disabled: false }); this.form.addControl("ragioneSociale", ragioneSociale); } if (this.showPartitaIVA) { const partitaIVA = new FormControl({ value: '', disabled: false }, [ // Validators.required, ValidationService.pattern( // ValidationService.partitaIvaMaxLen2, // "partitaIVAMaxLen2" ValidationService.partitaIva, "partitaIVAInvalida"), ]); this.form.addControl("partitaIVA", partitaIVA); } const changes$ = this.form.valueChanges.pipe(map((_) => { var _a, _b; const newSocieta = new PersonaGiuridicaDTO(); newSocieta.codiceFiscale = this.form.controls["codiceFiscale"].value; newSocieta.ragioneSociale = (_a = this.form.controls["ragioneSociale"]) === null || _a === void 0 ? void 0 : _a.value; newSocieta.partitaIVA = (_b = this.form.controls["partitaIVA"]) === null || _b === void 0 ? void 0 : _b.value; return ComponentOutputStatus.of(this.form.valid, newSocieta); })); this.form.setValidators(form => { return (!form.get('codiceFiscale').value && (this.showPartitaIVA && !form.get('partitaIVA').value)) ? { requiredPG: true } : null; }); this.subscription = changes$.subscribe((_) => this.done.emit(_)); } ngOnDestroy() { if (this.subscription) { this.subscription.unsubscribe(); } } pulisciForm() { const keys = Object.keys(this.form.value); keys.forEach(key => { const control = this.form.get(key); control.setValue(""); }); } } PgComponent.decorators = [ { type: Component, args: [{ selector: 'lib-pg', template: "<div [formGroup]=\"form\">\r\n\t<div class=\"row\">\r\n\t\t<div class=\"col-md-4\">\r\n\t\t\t<mat-form-field>\r\n\t\t\t\t<!-- <input matInput placeholder=\"{{'required' | traduzione}} {{'codice-fiscale' | traduzione}}\" -->\r\n\t\t\t\t<input matInput placeholder=\"{{'codice-fiscale' | traduzione}}\"\r\n\t\t\t\t\tformControlName=\"codiceFiscale\" maxlength=\"16\" >\r\n\t\t\t\t<mat-error *ngIf=\"form.controls['codiceFiscale'].invalid\">\r\n\t\t\t\t\t{{msg.produceMessage('codiceFiscaleInvalido', form.controls[ 'codiceFiscale']) | traduzione }}\r\n\t\t\t\t</mat-error>\r\n\t\t\t\t<mat-hint *infoTip=\"'codice-fiscale'\"></mat-hint>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t\t<div class=\"col-md-4\" *ngIf=\"showRagioneSociale\">\r\n <mat-form-field>\r\n\t\t\t\t<!-- <input matInput placeholder=\"{{'required' | traduzione}}{{'ragione-sociale' | traduzione}}\" -->\r\n\t\t\t\t<input matInput placeholder=\"{{'ragione-sociale' | traduzione}}\"\r\n\t\t\t\t\tformControlName=\"ragioneSociale\">\r\n\t\t\t\t<mat-error *ngIf=\"form.controls['ragioneSociale'].invalid\">\r\n\t\t\t\t\t{{msg.produceMessage('obbligatorio', form.controls['ragioneSociale']) | traduzione }}\r\n\t\t\t\t</mat-error>\r\n\t\t\t\t<mat-hint *infoTip=\"'ragione-sociale'\"></mat-hint>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t\t<div class=\"col-md-4\" *ngIf=\"showPartitaIVA\">\r\n\t\t\t<mat-form-field>\r\n\t\t\t\t<!-- <input matInput placeholder=\"{{'required' | traduzione}}{{'partita-iva' | traduzione}}\" -->\r\n\t\t\t\t<input matInput placeholder=\"{{'partita-iva' | traduzione}}\"\r\n\t\t\t\t\tformControlName=\"partitaIVA\">\r\n\t\t\t\t<mat-error *ngIf=\"form.controls['partitaIVA'].invalid\">\r\n\t\t\t\t\t{{msg.produceMessage('partitaIVAInvalida', form.controls['partitaIVA']) | traduzione }}\r\n\t\t\t\t\t<!-- {{msg.produceMessage('partitaIVAMaxLen2', form.controls['partitaIVA']) | traduzione }} -->\r\n\t\t\t\t</mat-error>\r\n\t\t\t\t<mat-hint *infoTip=\"'partita-iva'\"></mat-hint>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n <div class=\"col-md-12\">\r\n <mat-error *ngIf=\"form.getError('requiredPG')\">\r\n {{msg.produceMessage('requiredPG', form) | traduzione }}\r\n </mat-error>\r\n </div>\r\n\t</div>\r\n</div>\r\n", styles: [""] },] } ]; PgComponent.ctorParameters = () => [ { type: MessageService } ]; PgComponent.propDecorators = { resetForm: [{ type: Input }], showRagioneSociale: [{ type: Input }], showPartitaIVA: [{ type: Input }], done: [{ type: Output }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2dldHRpL0RBRy9zb3JnZW50aS9naXRsYWItc29mdHdhcmVmYWN0b3J5L2NvbW1vbi1jb21wb25lbnQtbGliL3Byb2plY3RzL3BvcnRhbC1jb21tb24tY29tcG9uZW50LWxpYi9zcmMvIiwic291cmNlcyI6WyJsaWIvZGVwb3NpdGkvY29tbW9uLWNvbXBvbmVudC9yaWNlcmNhLXBnL3BnL3BnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQWtCLFdBQVcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDMUUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBT3ZFLE1BQU0sT0FBTyxXQUFXO0lBbUJ2QixZQUFtQixHQUFtQjtRQUFuQixRQUFHLEdBQUgsR0FBRyxDQUFnQjtRQVh0Qyx1QkFBa0IsR0FBWSxJQUFJLENBQUM7UUFHbkMsbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFHL0IsU0FBSSxHQUE2RCxJQUFJLFlBQVksRUFBOEMsQ0FBQztJQU1oSSxDQUFDO0lBRUQsUUFBUTtRQUVQLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFOUIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FDbEQsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2hDO1FBRUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxXQUFXLENBQ3BDLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFDO1FBQzVCLHVGQUF1RjtRQUN2RixJQUFJO1FBQ0osMkJBQTJCO1FBQzNCLDhCQUE4QjtRQUM5QixrQ0FBa0M7UUFDbEMseUJBQXlCO1FBQ3pCLE1BQU07UUFDTixJQUFJO1FBQ0osQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQ3hCLGlCQUFpQixDQUFDLGtCQUFrQixFQUNwQyx1QkFBdUIsQ0FDdkI7U0FDRCxDQUNELENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFckQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDNUIsTUFBTSxjQUFjLEdBQUcsSUFBSSxXQUFXLENBQ3JDLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFDLENBSTVCLENBQUM7WUFFRixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLENBQUMsQ0FBQztTQUN2RDtRQUVELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN4QixNQUFNLFVBQVUsR0FBRyxJQUFJLFdBQVcsQ0FDakMsRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUMsRUFDNUI7Z0JBQ0MsdUJBQXVCO2dCQUN2QixpQkFBaUIsQ0FBQyxPQUFPO2dCQUN4Qix1Q0FBdUM7Z0JBQ3ZDLHNCQUFzQjtnQkFDdEIsaUJBQWlCLENBQUMsVUFBVSxFQUM1QixvQkFBb0IsQ0FDcEI7YUFDRCxDQUNELENBQUM7WUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDL0M7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFOztZQUNULE1BQU0sVUFBVSxHQUFHLElBQUksbUJBQW1CLEVBQUUsQ0FBQztZQUM3QyxVQUFVLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUNyRSxVQUFVLENBQUMsY0FBYyxTQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLDBDQUFFLEtBQUssQ0FBQztZQUN4RSxVQUFVLENBQUMsVUFBVSxTQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQywwQ0FBRSxLQUFLLENBQUM7WUFDaEUsT0FBTyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzlCLE9BQU8sQ0FDTixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQzFGLENBQUMsQ0FBQztnQkFDRixFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUM7Z0JBQ2xCLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDVCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2hDO0lBQ0YsQ0FBQztJQUVELFdBQVc7UUFDVixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNsQixNQUFNLE9BQU8sR0FBb0IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OztZQWxIRCxTQUFTLFNBQUM7Z0JBQ1YsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLCt1RUFBa0M7O2FBRWxDOzs7WUFQTyxjQUFjOzs7d0JBWXBCLEtBQUs7aUNBR0wsS0FBSzs2QkFHTCxLQUFLO21CQUdMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7U3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtQZXJzb25hR2l1cmlkaWNhRFRPfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcGVyc29uYS1naXVyaWRpY2EtZHRvJztcclxuaW1wb3J0IHtDb21wb25lbnRPdXRwdXRTdGF0dXN9IGZyb20gJy4uLy4uLy4uL25vcm1hbGl6emF6aW9uZS9jb21wb25lbnQtb3V0cHV0LXN0YXR1cyc7XHJcbmltcG9ydCB7TWVzc2FnZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7VmFsaWRhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3ZhbGlkYXRpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2xpYi1wZycsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3BnLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9wZy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFBnQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuXHRmb3JtOiBGb3JtR3JvdXA7XHJcblxyXG5cdEBJbnB1dCgpXHJcblx0cmVzZXRGb3JtOiBTdWJqZWN0PGJvb2xlYW4+O1xyXG5cclxuXHRASW5wdXQoKVxyXG5cdHNob3dSYWdpb25lU29jaWFsZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG5cdEBJbnB1dCgpXHJcblx0c2hvd1BhcnRpdGFJVkE6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuXHRAT3V0cHV0KClcclxuXHRkb25lOiBFdmVudEVtaXR0ZXI8Q29tcG9uZW50T3V0cHV0U3RhdHVzPFBlcnNvbmFHaXVyaWRpY2FEVE8+PiA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tcG9uZW50T3V0cHV0U3RhdHVzPFBlcnNvbmFHaXVyaWRpY2FEVE8+PigpO1xyXG5cclxuXHRzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcblxyXG5cdGNvbnN0cnVjdG9yKHB1YmxpYyBtc2c6IE1lc3NhZ2VTZXJ2aWNlKSB7XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcblx0XHR0aGlzLmZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHJcblx0XHRpZiAodGhpcy5yZXNldEZvcm0pIHtcclxuXHRcdFx0dGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnJlc2V0Rm9ybS5zdWJzY3JpYmUodmFsID0+XHJcblx0XHRcdFx0dmFsID8gdGhpcy5wdWxpc2NpRm9ybSgpIDogXCJcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgY29kaWNlRmlzY2FsZSA9IG5ldyBGb3JtQ29udHJvbChcclxuXHRcdFx0e3ZhbHVlOiAnJywgZGlzYWJsZWQ6IGZhbHNlfSxcclxuXHRcdFx0Ly9UT0xUTyBjb250cm9sbG8gcGVyIGRhcmUgbGEgcG9zc2lpYmlsaXTDoCBkaSBpbnNlcmltZW50byBhbmNoZSBkZWxsYSBkaXR0YSBpbmRpdmlkdWFsZVxyXG5cdFx0XHQvLyBbXHJcblx0XHRcdC8vIFx0Ly8gVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuXHRcdFx0Ly8gXHRWYWxpZGF0aW9uU2VydmljZS5wYXR0ZXJuKFxyXG5cdFx0XHQvLyBcdFx0VmFsaWRhdGlvblNlcnZpY2UucGFydGl0YUl2YSxcclxuXHRcdFx0Ly8gXHRcdFwicGFydGl0YUlWQUludmFsaWRhXCJcclxuXHRcdFx0Ly8gXHQpLFxyXG5cdFx0XHQvLyBdXHJcblx0XHRcdFtWYWxpZGF0aW9uU2VydmljZS5wYXR0ZXJuKFxyXG5cdFx0XHRcdFx0VmFsaWRhdGlvblNlcnZpY2UuX2NvZGljZUZpc2NhbGVQaXZhLFxyXG5cdFx0XHRcdFx0XCJjZkludmFsaWRvRm9ybWFsbWVudGVcIlxyXG5cdFx0XHRcdClcclxuXHRcdFx0XVxyXG5cdFx0KTtcclxuXHRcdHRoaXMuZm9ybS5hZGRDb250cm9sKFwiY29kaWNlRmlzY2FsZVwiLCBjb2RpY2VGaXNjYWxlKTtcclxuXHJcblx0XHRpZiAodGhpcy5zaG93UmFnaW9uZVNvY2lhbGUpIHtcclxuXHRcdFx0Y29uc3QgcmFnaW9uZVNvY2lhbGUgPSBuZXcgRm9ybUNvbnRyb2woXHJcblx0XHRcdFx0e3ZhbHVlOiAnJywgZGlzYWJsZWQ6IGZhbHNlfSxcclxuXHRcdFx0XHQvLyBbXHJcblx0XHRcdFx0Ly8gXHRWYWxpZGF0b3JzLnJlcXVpcmVkXHJcblx0XHRcdFx0Ly8gXVxyXG5cdFx0XHQpO1xyXG5cclxuXHRcdFx0dGhpcy5mb3JtLmFkZENvbnRyb2woXCJyYWdpb25lU29jaWFsZVwiLCByYWdpb25lU29jaWFsZSk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMuc2hvd1BhcnRpdGFJVkEpIHtcclxuXHRcdFx0Y29uc3QgcGFydGl0YUlWQSA9IG5ldyBGb3JtQ29udHJvbChcclxuXHRcdFx0XHR7dmFsdWU6ICcnLCBkaXNhYmxlZDogZmFsc2V9LFxyXG5cdFx0XHRcdFtcclxuXHRcdFx0XHRcdC8vIFZhbGlkYXRvcnMucmVxdWlyZWQsXHJcblx0XHRcdFx0XHRWYWxpZGF0aW9uU2VydmljZS5wYXR0ZXJuKFxyXG5cdFx0XHRcdFx0XHQvLyBWYWxpZGF0aW9uU2VydmljZS5wYXJ0aXRhSXZhTWF4TGVuMixcclxuXHRcdFx0XHRcdFx0Ly8gXCJwYXJ0aXRhSVZBTWF4TGVuMlwiXHJcblx0XHRcdFx0XHRcdFZhbGlkYXRpb25TZXJ2aWNlLnBhcnRpdGFJdmEsXHJcblx0XHRcdFx0XHRcdFwicGFydGl0YUlWQUludmFsaWRhXCJcclxuXHRcdFx0XHRcdCksXHJcblx0XHRcdFx0XVxyXG5cdFx0XHQpO1xyXG5cdFx0XHR0aGlzLmZvcm0uYWRkQ29udHJvbChcInBhcnRpdGFJVkFcIiwgcGFydGl0YUlWQSk7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgY2hhbmdlcyQgPSB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoXHJcblx0XHRcdG1hcCgoXykgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IG5ld1NvY2lldGEgPSBuZXcgUGVyc29uYUdpdXJpZGljYURUTygpO1xyXG5cdFx0XHRcdG5ld1NvY2lldGEuY29kaWNlRmlzY2FsZSA9IHRoaXMuZm9ybS5jb250cm9sc1tcImNvZGljZUZpc2NhbGVcIl0udmFsdWU7XHJcblx0XHRcdFx0bmV3U29jaWV0YS5yYWdpb25lU29jaWFsZSA9IHRoaXMuZm9ybS5jb250cm9sc1tcInJhZ2lvbmVTb2NpYWxlXCJdPy52YWx1ZTtcclxuXHRcdFx0XHRuZXdTb2NpZXRhLnBhcnRpdGFJVkEgPSB0aGlzLmZvcm0uY29udHJvbHNbXCJwYXJ0aXRhSVZBXCJdPy52YWx1ZTtcclxuXHRcdFx0XHRyZXR1cm4gQ29tcG9uZW50T3V0cHV0U3RhdHVzLm9mKHRoaXMuZm9ybS52YWxpZCwgbmV3U29jaWV0YSk7XHJcblx0XHRcdH0pXHJcblx0XHQpO1xyXG5cclxuXHRcdHRoaXMuZm9ybS5zZXRWYWxpZGF0b3JzKGZvcm0gPT4ge1xyXG5cdFx0XHRyZXR1cm4gKFxyXG5cdFx0XHRcdCFmb3JtLmdldCgnY29kaWNlRmlzY2FsZScpLnZhbHVlICYmICh0aGlzLnNob3dQYXJ0aXRhSVZBICYmICFmb3JtLmdldCgncGFydGl0YUlWQScpLnZhbHVlKVxyXG5cdFx0XHQpID9cclxuXHRcdFx0XHR7cmVxdWlyZWRQRzogdHJ1ZX1cclxuXHRcdFx0XHQ6IG51bGw7XHJcblx0XHR9KTtcclxuXHJcblx0XHR0aGlzLnN1YnNjcmlwdGlvbiA9IGNoYW5nZXMkLnN1YnNjcmliZSgoXykgPT4gdGhpcy5kb25lLmVtaXQoXykpO1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuXHRcdFx0dGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHB1bGlzY2lGb3JtKCkge1xyXG5cdFx0Y29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuZm9ybS52YWx1ZSk7XHJcblx0XHRrZXlzLmZvckVhY2goa2V5ID0+IHtcclxuXHRcdFx0Y29uc3QgY29udHJvbDogQWJzdHJhY3RDb250cm9sID0gdGhpcy5mb3JtLmdldChrZXkpO1xyXG5cdFx0XHRjb250cm9sLnNldFZhbHVlKFwiXCIpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxufVxyXG4iXX0=