@infordata-web/portal-common-component-lib
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.0.14.
155 lines • 26.2 kB
JavaScript
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
import { MatPaginator } from '@angular/material/paginator';
import { MatTableDataSource } from '@angular/material/table';
import { Subject } from 'rxjs';
import { shareReplay } from 'rxjs/operators';
import { PersonaFisicaBaseDTO } from '../../models/persona-fisica-base-dto';
import { ComponentOutputStatus } from '../../normalizzazione/component-output-status';
import { DelegheService } from '../../services/deleghe-services/deleghe.service';
export class RicercaPfComponent {
constructor(delegheService) {
this.delegheService = delegheService;
this.done = new EventEmitter();
this.resetForm = new Subject();
this.codiceFiscale = "";
this.cognome = "";
this.nome = "";
this.offset = 0;
this.pageNumber = 0;
this.pageSize = 5;
this.paged = true;
this.viewIntPf = false;
this.viewResultTable = false;
this.resLenPf = 0;
this.validationFormPF = false;
this.displayedColumns = [
'codiceFiscale',
'nome',
'cognome',
'seleziona'
];
}
ngOnInit() {
}
infoPfReady(inFoPfStatus) {
// console.log('[infoPfReady]', inFoPfStatus);
this.validationFormPF = inFoPfStatus.status;
if (inFoPfStatus.output.codFiscale != undefined) {
this.codiceFiscale = inFoPfStatus === null || inFoPfStatus === void 0 ? void 0 : inFoPfStatus.output.codFiscale.toUpperCase().trim();
}
if (inFoPfStatus.output.cognome != undefined) {
this.cognome = inFoPfStatus === null || inFoPfStatus === void 0 ? void 0 : inFoPfStatus.output.cognome.toUpperCase().trim();
}
if (inFoPfStatus.output.nome != undefined) {
this.nome = inFoPfStatus === null || inFoPfStatus === void 0 ? void 0 : inFoPfStatus.output.nome.toUpperCase().trim();
}
}
getListaPf() {
this.listaPf = '';
this.dataSource = new MatTableDataSource(this.listaPf);
const pf = new PersonaFisicaBaseDTO();
pf.codiceFiscale = this.codiceFiscale;
pf.cognome = this.cognome;
pf.nome = this.nome;
// this.delegheService.getListaPfPaged(this.pageSize, this.pageNumber, pf);
if (pf.codiceFiscale != "" && pf.cognome == "" && pf.nome == "") {
console.log("[Ricerca Anagrafe Tributaria]");
this.delegheService.getPersonaFiscaleCodiceFiscale(pf.codiceFiscale).pipe(
// pluck("datiPersonaFisica")
)
.subscribe((res) => {
console.log('[pg]', res);
this.listaPf = res;
console.log('[listaPf]', this.listaPf);
if (this.listaPf) {
this.showNoResults = false;
this.viewIntPf = true;
this.viewResultTable = true;
// this.dataSource = new MatTableDataSource(this.listaPg['content']);
this.dataSource = new MatTableDataSource([this.listaPf]);
// this.dataSource = new MatTableDataSource([res]);
// this.dataSource.paginator = this.paginator;
// this.resLenPg = res['content'].length;
this.resLenPf = 1;
}
else {
this.showNoResults = true;
this.viewIntPf = false;
this.viewResultTable = false;
this.resLenPf = 0;
}
}, err => {
// console.log('[errore - getListaPfPaged]', err);
this.showNoResults = true;
this.viewIntPf = false;
this.viewResultTable = false;
this.resLenPf = 0;
});
}
else {
console.log("[Ricerca Sul Portale]");
this.personaFisica$ = this.delegheService.getListaPfPaged(this.pageSize, this.pageNumber, pf)
.pipe(shareReplay());
this.pfSubscription = this.personaFisica$.pipe(
// pluck("datiPersonaFisica")
).subscribe((res) => {
console.log('[pf]', res);
this.listaPf = res;
if (this.listaPf) {
this.showNoResults = false;
this.viewIntPf = true;
this.viewResultTable = true;
this.dataSource = new MatTableDataSource(this.listaPf['content']);
this.dataSource.paginator = this.paginator;
this.resLenPf = res['content'].length;
}
else {
this.viewIntPf = false;
this.viewResultTable = false;
this.showNoResults = true;
this.resLenPf = 0;
}
}, err => {
// console.log('[errore - getListaPfPaged]', err);
this.viewIntPf = false;
this.viewResultTable = false;
this.showNoResults = true;
this.resLenPf = 0;
});
}
}
pulisciForm() {
this.resetForm.next(true);
this.viewResultTable = false;
this.dataSource = new MatTableDataSource(null);
this.viewIntPf = false;
// console.log('[pulisciForm - resetForm]', this.resetForm);
}
areSearchParameterValid() {
return (this.validationFormPF &&
(this.codiceFiscale != "" ||
this.cognome != "" ||
this.nome != ""));
}
personaFisicaSelected(row) {
// console.log('[PersonaFisica]', row);
this.done.emit(ComponentOutputStatus.of(true, row.datiPersonaFisica));
}
}
RicercaPfComponent.decorators = [
{ type: Component, args: [{
selector: 'lib-ricerca-pf',
template: "<!-- <p>ricerca-pf works!</p> -->\r\n<!-- <div class=\"row\">\r\n\t<div class=\"col-12\">\r\n\t\t<p class=\"h6\"> {{'ricerca-nel-portale-dag' | traduzione}} </p>\r\n\t</div>\r\n</div> -->\r\n<div class=\"row\">\r\n\t<div class=\"col-12\">\r\n\t\t<p class=\"mt-3\">{{'spiegazione' | traduzione }}</p>\r\n\t</div>\r\n</div>\r\n<!-- <lib-info-pf\r\n\t[namespace]=\"namespace\"\r\n\t(done)=\"infoPfReady($event)\"\r\n\t[readOnly]=\"false\"\r\n\t[resetForm]=\"resetForm\"\r\n\t[validatorFormControl]=\"false\"\r\n>\r\n</lib-info-pf> -->\r\n<lib-pf\r\n\t(done)=\"infoPfReady($event)\"\r\n\t[resetForm]=\"resetForm\"\r\n>\r\n</lib-pf>\r\n<div class=\"col-12\">\r\n\t<div class=\"float-right mt-4\">\r\n\t\t<button \r\n\t\t\t(click)=\"pulisciForm();\"\r\n\t\t\tmat-stroked-button color=\"primary\"\r\n\t\t\tclass=\"mr-3\"\r\n\t\t\t[disabled]=\"!areSearchParameterValid()\"\r\n\t\t> {{'pulisci' | traduzione | uppercase}}\r\n\t\t</button>\r\n\t\t<button\r\n\t\t\t(click)=\"getListaPf();\"\r\n\t\t\tmat-flat-button color=\"primary\"\r\n\t\t\t[disabled]=\"!areSearchParameterValid()\"\r\n\t\t> {{'ricerca' | traduzione | uppercase}}\r\n\t\t</button>\r\n\t</div>\r\n</div>\r\n<br>\r\n<br>\r\n<div class=\"col-12\">\r\n\t<ng-container>\r\n\t\t<div class=\"col-md-12 mt-3\">\r\n\t\t\t<div *ngIf=\"showNoResults\">\r\n\t\t\t\t<p>\r\n\t\t\t\t{{'nessuno-risultato' | traduzione}}\r\n\t\t\t\t</p>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div *ngIf=\"viewIntPf\" class=\"mb-5\">\r\n\t\t\t<div class=\"col-md-12 mt-3\">\r\n\t\t\t\t<mat-chip-list>\r\n\t\t\t\t\t<p class=\"mr-3 mb-0\">{{'totale-risultati' | traduzione }} : {{resLenPf}}</p>\r\n\t\t\t\t</mat-chip-list>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div [hidden]=\"!viewResultTable\">\r\n\t\t\t<mat-table\r\n\t\t\t\tmat-table\r\n\t\t\t\t[dataSource]=\"dataSource\"\r\n\t\t\t\tclass=\"mat-elevation-z8 mt-3 border\">\r\n\r\n\t\t\t\t<!-- Codice Fiscale Column -->\r\n\t\t\t\t<ng-container matColumnDef=\"codiceFiscale\">\r\n\t\t\t\t\t<mat-header-cell *matHeaderCellDef> {{'codice-fiscale' | traduzione }} </mat-header-cell>\r\n\t\t\t\t\t<mat-cell *matCellDef=\"let element\"> {{element.datiPersonaFisica.codiceFiscale}} </mat-cell>\r\n\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t<!-- Nome Column -->\r\n\t\t\t\t<ng-container matColumnDef=\"nome\">\r\n\t\t\t\t\t<mat-header-cell *matHeaderCellDef> {{'nome' | traduzione }} </mat-header-cell>\r\n\t\t\t\t\t<mat-cell *matCellDef=\"let element\"> {{element.datiPersonaFisica.nome}} </mat-cell>\r\n\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t<!-- Cognome Column -->\r\n\t\t\t\t<ng-container matColumnDef=\"cognome\">\r\n\t\t\t\t\t<mat-header-cell *matHeaderCellDef> {{'cognome' | traduzione }} </mat-header-cell>\r\n\t\t\t\t\t<mat-cell *matCellDef=\"let element\"> {{element.datiPersonaFisica.cognome}} </mat-cell>\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t\r\n\t\t\t\t<!-- Selezione Column -->\r\n\t\t\t\t<ng-container matColumnDef=\"seleziona\">\r\n\t\t\t\t\t<mat-header-cell *matHeaderCellDef> {{'seleziona' | traduzione}} </mat-header-cell>\r\n\t\t\t\t\t<mat-cell *matCellDef=\"let element\"> \r\n\t\t\t\t\t\t<button (click)=\"personaFisicaSelected(element)\" mat-flat-button color=\"primary\">\r\n\t\t\t\t\t\t\t{{'seleziona' | traduzione}}\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</mat-cell>\r\n\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t<mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\r\n\t\t\t\t<mat-row *matRowDef=\"let row; columns: displayedColumns\"></mat-row>\r\n\r\n\t\t\t</mat-table>\r\n\t\t\t<mat-paginator [pageSizeOptions]=\"[5, 10, 20]\" showFirstLastButtons></mat-paginator>\r\n\t\t</div>\r\n\t</ng-container>\r\n</div>",
styles: [".mat-paginator{background:#fff}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{color:rgba(0,0,0,.54)}.mat-paginator-decrement,.mat-paginator-increment{border-right:2px solid rgba(0,0,0,.54);border-top:2px solid rgba(0,0,0,.54)}.mat-paginator-first,.mat-paginator-last{border-top:2px solid rgba(0,0,0,.54)}.mat-icon-button[disabled] .mat-paginator-decrement,.mat-icon-button[disabled] .mat-paginator-first,.mat-icon-button[disabled] .mat-paginator-increment,.mat-icon-button[disabled] .mat-paginator-last{border-color:rgba(0,0,0,.38)}"]
},] }
];
RicercaPfComponent.ctorParameters = () => [
{ type: DelegheService }
];
RicercaPfComponent.propDecorators = {
namespace: [{ type: Input }],
readOnly: [{ type: Input }],
done: [{ type: Output }],
paginator: [{ type: ViewChild, args: [MatPaginator, { static: true },] }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljZXJjYS1wZi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovUHJvZ2V0dGkvREFHL3NvcmdlbnRpL2dpdGxhYi10ZXJuaS9jb21tb24tY29tcG9uZW50LWxpYi9wcm9qZWN0cy9wb3J0YWwtY29tbW9uLWNvbXBvbmVudC1saWIvc3JjLyIsInNvdXJjZXMiOlsibGliL2RlcG9zaXRpL2NvbW1vbi1jb21wb25lbnQvcmljZXJjYS1wZi9yaWNlcmNhLXBmLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsWUFBWSxFQUFhLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQU9qRixNQUFNLE9BQU8sa0JBQWtCO0lBNkM5QixZQUNTLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQXJDdkMsU0FBSSxHQUVBLElBQUksWUFBWSxFQUE0QyxDQUFDO1FBRWpFLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBS25DLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBQzNCLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUlsQixXQUFNLEdBQVcsQ0FBQyxDQUFDO1FB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O0lBQzdELENBQUM7SUFFRCx1QkFBdUI7UUFDdEIsT0FBTyxDQUNOLElBQUksQ0FBQyxnQkFBZ0I7WUFDckIsQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRTtnQkFDbEIsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FDakIsQ0FBQztJQUNILENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxHQUFrQjtRQUN2Qyx1Q0FBdUM7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7OztZQWhMRCxTQUFTLFNBQUM7Z0JBQ1YsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsK2lIQUEwQzs7YUFFMUM7OztZQU5RLGNBQWM7Ozt3QkFTckIsS0FBSzt1QkFHTCxLQUFLO21CQUdMLE1BQU07d0JBMEJOLFNBQVMsU0FBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvciwgUGFnZUV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEluZm9BbmFncmFmaWNoZVBGRFRPIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2luZm8tYW5hZ3JhZmljaGUtcGYnO1xyXG5pbXBvcnQgeyBQZXJzb25hRmlzaWNhQmFzZURUTyB9IGZyb20gJy4uLy4uL21vZGVscy9wZXJzb25hLWZpc2ljYS1iYXNlLWR0byc7XHJcbmltcG9ydCB7IERhdGlQZXJzb25hRmlzaWNhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3BvcnRhbGUvZGF0aS1wZXJzb25hLWZpc2ljYSc7XHJcbmltcG9ydCB7IFBlcnNvbmFGaXNpY2EgfSBmcm9tICcuLi8uLi9tb2RlbHMvcG9ydGFsZS9wZXJzb25hLWZpc2ljYS1tb2RlbCc7XHJcbmltcG9ydCB7IENvbXBvbmVudE91dHB1dFN0YXR1cyB9IGZyb20gJy4uLy4uL25vcm1hbGl6emF6aW9uZS9jb21wb25lbnQtb3V0cHV0LXN0YXR1cyc7XHJcbmltcG9ydCB7IERlbGVnaGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGVsZWdoZS1zZXJ2aWNlcy9kZWxlZ2hlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdsaWItcmljZXJjYS1wZicsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3JpY2VyY2EtcGYuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL3JpY2VyY2EtcGYuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSaWNlcmNhUGZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuXHRASW5wdXQoKVxyXG5cdG5hbWVzcGFjZTogc3RyaW5nO1xyXG5cclxuXHRASW5wdXQoKVxyXG5cdHJlYWRPbmx5OiBib29sZWFuO1xyXG5cclxuXHRAT3V0cHV0KClcclxuXHRkb25lOiBFdmVudEVtaXR0ZXI8XHJcblx0XHRDb21wb25lbnRPdXRwdXRTdGF0dXM8RGF0aVBlcnNvbmFGaXNpY2E+XHJcblx0PiA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tcG9uZW50T3V0cHV0U3RhdHVzPERhdGlQZXJzb25hRmlzaWNhPj4oKTtcclxuXHJcblx0cmVzZXRGb3JtID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuXHJcblx0cGVyc29uYUZpc2ljYSQ6IE9ic2VydmFibGU8UGVyc29uYUZpc2ljYT47XHJcblx0cGZTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcblx0Y29kaWNlRmlzY2FsZTogc3RyaW5nID0gXCJcIjtcclxuXHRjb2dub21lOiBzdHJpbmcgPSBcIlwiO1xyXG5cdG5vbWU6IHN0cmluZyA9IFwiXCI7XHJcblxyXG5cdGRhdGFTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxhbnk+O1xyXG5cdGxpc3RhUGY7XHJcblx0b2Zmc2V0OiBudW1iZXIgPSAwO1xyXG5cdHBhZ2VOdW1iZXI6IG51bWJlciA9IDA7XHJcblx0cGFnZVNpemU6IG51bWJlciA9IDU7XHJcblx0cGFnZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cdHNob3dOb1Jlc3VsdHM6IGJvb2xlYW47XHJcblx0dmlld0ludFBmOiBib29sZWFuID0gZmFsc2U7XHJcblx0dmlld1Jlc3VsdFRhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblx0cmVzTGVuUGYgPSAwO1xyXG5cdHZhbGlkYXRpb25Gb3JtUEY6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0QFZpZXdDaGlsZChNYXRQYWdpbmF0b3IsIHsgc3RhdGljOiB0cnVlIH0pIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xyXG5cclxuXHRwYWdlRXZlbnQ6IFBhZ2VFdmVudDtcclxuXHJcblx0ZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbXHJcblx0XHQnY29kaWNlRmlzY2FsZScsXHJcblx0XHQnbm9tZScsXHJcblx0XHQnY29nbm9tZScsXHJcblx0XHQnc2VsZXppb25hJ1xyXG5cdF07XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBkZWxlZ2hlU2VydmljZTogRGVsZWdoZVNlcnZpY2UsXHJcblx0KSB7IH1cclxuXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0fVxyXG5cclxuXHRpbmZvUGZSZWFkeShpbkZvUGZTdGF0dXM6IENvbXBvbmVudE91dHB1dFN0YXR1czxJbmZvQW5hZ3JhZmljaGVQRkRUTz4pIHtcclxuXHRcdC8vIGNvbnNvbGUubG9nKCdbaW5mb1BmUmVhZHldJywgaW5Gb1BmU3RhdHVzKTtcclxuXHRcdHRoaXMudmFsaWRhdGlvbkZvcm1QRiA9IGluRm9QZlN0YXR1cy5zdGF0dXM7XHJcblxyXG5cdFx0aWYgKGluRm9QZlN0YXR1cy5vdXRwdXQuY29kRmlzY2FsZSAhPSB1bmRlZmluZWQpIHtcclxuXHRcdFx0dGhpcy5jb2RpY2VGaXNjYWxlID0gaW5Gb1BmU3RhdHVzPy5vdXRwdXQuY29kRmlzY2FsZS50b1VwcGVyQ2FzZSgpLnRyaW0oKTtcclxuXHRcdH1cclxuXHRcdGlmIChpbkZvUGZTdGF0dXMub3V0cHV0LmNvZ25vbWUgIT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHRoaXMuY29nbm9tZSA9IGluRm9QZlN0YXR1cz8ub3V0cHV0LmNvZ25vbWUudG9VcHBlckNhc2UoKS50cmltKCk7XHJcblx0XHR9XHJcblx0XHRpZiAoaW5Gb1BmU3RhdHVzLm91dHB1dC5ub21lICE9IHVuZGVmaW5lZCkge1xyXG5cdFx0XHR0aGlzLm5vbWUgPSBpbkZvUGZTdGF0dXM/Lm91dHB1dC5ub21lLnRvVXBwZXJDYXNlKCkudHJpbSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Z2V0TGlzdGFQZigpIHtcclxuXHRcdHRoaXMubGlzdGFQZiA9ICcnO1xyXG5cdFx0dGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSh0aGlzLmxpc3RhUGYpO1xyXG5cclxuXHRcdGNvbnN0IHBmID0gbmV3IFBlcnNvbmFGaXNpY2FCYXNlRFRPKCk7XHJcblx0XHRwZi5jb2RpY2VGaXNjYWxlID0gdGhpcy5jb2RpY2VGaXNjYWxlO1xyXG5cdFx0cGYuY29nbm9tZSA9IHRoaXMuY29nbm9tZTtcclxuXHRcdHBmLm5vbWUgPSB0aGlzLm5vbWU7XHJcblxyXG5cdFx0Ly8gdGhpcy5kZWxlZ2hlU2VydmljZS5nZXRMaXN0YVBmUGFnZWQodGhpcy5wYWdlU2l6ZSwgdGhpcy5wYWdlTnVtYmVyLCBwZik7XHJcblxyXG5cdFx0aWYgKHBmLmNvZGljZUZpc2NhbGUgIT0gXCJcIiAmJiBwZi5jb2dub21lID09IFwiXCIgJiYgcGYubm9tZSA9PSBcIlwiKSB7XHJcblx0XHRcdGNvbnNvbGUubG9nKFwiW1JpY2VyY2EgQW5hZ3JhZmUgVHJpYnV0YXJpYV1cIik7XHJcblx0XHRcdHRoaXMuZGVsZWdoZVNlcnZpY2UuZ2V0UGVyc29uYUZpc2NhbGVDb2RpY2VGaXNjYWxlKHBmLmNvZGljZUZpc2NhbGUpLnBpcGUoXHJcblx0XHRcdFx0Ly8gcGx1Y2soXCJkYXRpUGVyc29uYUZpc2ljYVwiKVxyXG5cdFx0XHQpXHJcblx0XHRcdFx0LnN1YnNjcmliZShcclxuXHRcdFx0XHRcdChyZXM6IFBlcnNvbmFGaXNpY2EpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ1twZ10nLCByZXMpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLmxpc3RhUGYgPSByZXM7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdbbGlzdGFQZl0nLCB0aGlzLmxpc3RhUGYpO1xyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5saXN0YVBmKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5zaG93Tm9SZXN1bHRzID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy52aWV3SW50UGYgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMudmlld1Jlc3VsdFRhYmxlID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHQvLyB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKHRoaXMubGlzdGFQZ1snY29udGVudCddKTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKFt0aGlzLmxpc3RhUGZdKTtcclxuXHRcdFx0XHRcdFx0XHQvLyB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKFtyZXNdKTtcclxuXHRcdFx0XHRcdFx0XHQvLyB0aGlzLmRhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XHJcblx0XHRcdFx0XHRcdFx0Ly8gdGhpcy5yZXNMZW5QZyA9IHJlc1snY29udGVudCddLmxlbmd0aDtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnJlc0xlblBmID0gMTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnNob3dOb1Jlc3VsdHMgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMudmlld0ludFBmID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy52aWV3UmVzdWx0VGFibGUgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnJlc0xlblBmID0gMDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGVyciA9PiB7XHJcblx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdbZXJyb3JlIC0gZ2V0TGlzdGFQZlBhZ2VkXScsIGVycik7XHJcblx0XHRcdFx0XHRcdHRoaXMuc2hvd05vUmVzdWx0cyA9IHRydWU7XHJcblx0XHRcdFx0XHRcdHRoaXMudmlld0ludFBmID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdHRoaXMudmlld1Jlc3VsdFRhYmxlID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdHRoaXMucmVzTGVuUGYgPSAwO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdClcclxuXHRcdH1cclxuXHRcdGVsc2Uge1xyXG5cdFx0XHRjb25zb2xlLmxvZyhcIltSaWNlcmNhIFN1bCBQb3J0YWxlXVwiKTtcclxuXHJcblx0XHRcdHRoaXMucGVyc29uYUZpc2ljYSQgPSB0aGlzLmRlbGVnaGVTZXJ2aWNlLmdldExpc3RhUGZQYWdlZCh0aGlzLnBhZ2VTaXplLCB0aGlzLnBhZ2VOdW1iZXIsIHBmKVxyXG5cdFx0XHRcdC5waXBlKHNoYXJlUmVwbGF5KCkpO1xyXG5cclxuXHRcdFx0dGhpcy5wZlN1YnNjcmlwdGlvbiA9IHRoaXMucGVyc29uYUZpc2ljYSQucGlwZShcclxuXHRcdFx0XHQvLyBwbHVjayhcImRhdGlQZXJzb25hRmlzaWNhXCIpXHJcblx0XHRcdCkuc3Vic2NyaWJlKFxyXG5cdFx0XHRcdChyZXM6IFBlcnNvbmFGaXNpY2EpID0+IHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdbcGZdJywgcmVzKTtcclxuXHRcdFx0XHRcdHRoaXMubGlzdGFQZiA9IHJlcztcclxuXHRcdFx0XHRcdGlmICh0aGlzLmxpc3RhUGYpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5zaG93Tm9SZXN1bHRzID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdHRoaXMudmlld0ludFBmID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0dGhpcy52aWV3UmVzdWx0VGFibGUgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHR0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKHRoaXMubGlzdGFQZlsnY29udGVudCddKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5kYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnJlc0xlblBmID0gcmVzWydjb250ZW50J10ubGVuZ3RoO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0dGhpcy52aWV3SW50UGYgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy52aWV3UmVzdWx0VGFibGUgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5zaG93Tm9SZXN1bHRzID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5yZXNMZW5QZiA9IDA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRlcnIgPT4ge1xyXG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ1tlcnJvcmUgLSBnZXRMaXN0YVBmUGFnZWRdJywgZXJyKTtcclxuXHRcdFx0XHRcdHRoaXMudmlld0ludFBmID0gZmFsc2U7XHJcblx0XHRcdFx0XHR0aGlzLnZpZXdSZXN1bHRUYWJsZSA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0dGhpcy5zaG93Tm9SZXN1bHRzID0gdHJ1ZTtcclxuXHRcdFx0XHRcdHRoaXMucmVzTGVuUGYgPSAwO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0KVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHVsaXNjaUZvcm0oKSB7XHJcblx0XHR0aGlzLnJlc2V0Rm9ybS5uZXh0KHRydWUpO1xyXG5cdFx0dGhpcy52aWV3UmVzdWx0VGFibGUgPSBmYWxzZTtcclxuXHRcdHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UobnVsbCk7XHJcblx0XHR0aGlzLnZpZXdJbnRQZiA9IGZhbHNlO1xyXG5cdFx0Ly8gY29uc29sZS5sb2coJ1twdWxpc2NpRm9ybSAtIHJlc2V0Rm9ybV0nLCB0aGlzLnJlc2V0Rm9ybSk7XHJcblx0fVxyXG5cclxuXHRhcmVTZWFyY2hQYXJhbWV0ZXJWYWxpZCgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiAoXHJcblx0XHRcdHRoaXMudmFsaWRhdGlvbkZvcm1QRiAmJlxyXG5cdFx0XHQodGhpcy5jb2RpY2VGaXNjYWxlICE9IFwiXCIgfHxcclxuXHRcdFx0XHR0aGlzLmNvZ25vbWUgIT0gXCJcIiB8fFxyXG5cdFx0XHRcdHRoaXMubm9tZSAhPSBcIlwiKVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHBlcnNvbmFGaXNpY2FTZWxlY3RlZChyb3c6IFBlcnNvbmFGaXNpY2EpIHtcclxuXHRcdC8vIGNvbnNvbGUubG9nKCdbUGVyc29uYUZpc2ljYV0nLCByb3cpO1xyXG5cdFx0dGhpcy5kb25lLmVtaXQoQ29tcG9uZW50T3V0cHV0U3RhdHVzLm9mKHRydWUsIHJvdy5kYXRpUGVyc29uYUZpc2ljYSkpO1xyXG5cdH1cclxufSJdfQ==