@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.3 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljZXJjYS1wZi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiQzovUHJvZ2V0dGkvREFHL3NvcmdlbnRpL2dpdGxhYi1zb2Z0d2FyZWZhY3RvcnkvY29tbW9uLWNvbXBvbmVudC1saWIvcHJvamVjdHMvcG9ydGFsLWNvbW1vbi1jb21wb25lbnQtbGliL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kZXBvc2l0aS9jb21tb24tY29tcG9uZW50L3JpY2VyY2EtcGYvcmljZXJjYS1wZi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFlBQVksRUFBYSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUc1RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saURBQWlELENBQUM7QUFPakYsTUFBTSxPQUFPLGtCQUFrQjtJQTZDOUIsWUFDUyxjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFyQ3ZDLFNBQUksR0FFQSxJQUFJLFlBQVksRUFBNEMsQ0FBQztRQUVqRSxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUtuQyxrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUMzQixZQUFPLEdBQVcsRUFBRSxDQUFDO1FBQ3JCLFNBQUksR0FBVyxFQUFFLENBQUM7UUFJbEIsV0FBTSxHQUFXLENB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Q3ZCLDREQUE0RDtJQUM3RCxDQUFDO0lBRUQsdUJBQXVCO1FBQ3RCLE9BQU8sQ0FDTixJQUFJLENBQUMsZ0JBQWdCO1lBQ3JCLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFO2dCQUN4QixJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQ2pCLENBQUM7SUFDSCxDQUFDO0lBRUQscUJBQXFCLENBQUMsR0FBa0I7UUFDdkMsdUNBQXVDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDOzs7WUFoTEQsU0FBUyxTQUFDO2dCQUNWLFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLCtpSEFBMEM7O2FBRTFDOzs7WUFOUSxjQUFjOzs7d0JBU3JCLEtBQUs7dUJBR0wsS0FBSzttQkFHTCxNQUFNO3dCQTBCTixTQUFTLFNBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IsIFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBJbmZvQW5hZ3JhZmljaGVQRkRUTyB9IGZyb20gJy4uLy4uL21vZGVscy9pbmZvLWFuYWdyYWZpY2hlLXBmJztcclxuaW1wb3J0IHsgUGVyc29uYUZpc2ljYUJhc2VEVE8gfSBmcm9tICcuLi8uLi9tb2RlbHMvcGVyc29uYS1maXNpY2EtYmFzZS1kdG8nO1xyXG5pbXBvcnQgeyBEYXRpUGVyc29uYUZpc2ljYSB9IGZyb20gJy4uLy4uL21vZGVscy9wb3J0YWxlL2RhdGktcGVyc29uYS1maXNpY2EnO1xyXG5pbXBvcnQgeyBQZXJzb25hRmlzaWNhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3BvcnRhbGUvcGVyc29uYS1maXNpY2EtbW9kZWwnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRPdXRwdXRTdGF0dXMgfSBmcm9tICcuLi8uLi9ub3JtYWxpenphemlvbmUvY29tcG9uZW50LW91dHB1dC1zdGF0dXMnO1xyXG5pbXBvcnQgeyBEZWxlZ2hlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RlbGVnaGUtc2VydmljZXMvZGVsZWdoZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbGliLXJpY2VyY2EtcGYnLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9yaWNlcmNhLXBmLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9yaWNlcmNhLXBmLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmljZXJjYVBmQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcblx0QElucHV0KClcclxuXHRuYW1lc3BhY2U6IHN0cmluZztcclxuXHJcblx0QElucHV0KClcclxuXHRyZWFkT25seTogYm9vbGVhbjtcclxuXHJcblx0QE91dHB1dCgpXHJcblx0ZG9uZTogRXZlbnRFbWl0dGVyPFxyXG5cdFx0Q29tcG9uZW50T3V0cHV0U3RhdHVzPERhdGlQZXJzb25hRmlzaWNhPlxyXG5cdD4gPSBuZXcgRXZlbnRFbWl0dGVyPENvbXBvbmVudE91dHB1dFN0YXR1czxEYXRpUGVyc29uYUZpc2ljYT4+KCk7XHJcblxyXG5cdHJlc2V0Rm9ybSA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcblxyXG5cdHBlcnNvbmFGaXNpY2EkOiBPYnNlcnZhYmxlPFBlcnNvbmFGaXNpY2E+O1xyXG5cdHBmU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG5cdGNvZGljZUZpc2NhbGU6IHN0cmluZyA9IFwiXCI7XHJcblx0Y29nbm9tZTogc3RyaW5nID0gXCJcIjtcclxuXHRub21lOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuXHRkYXRhU291cmNlOiBNYXRUYWJsZURhdGFTb3VyY2U8YW55PjtcclxuXHRsaXN0YVBmO1xyXG5cdG9mZnNldDogbnVtYmVyID0gMDtcclxuXHRwYWdlTnVtYmVyOiBudW1iZXIgPSAwO1xyXG5cdHBhZ2VTaXplOiBudW1iZXIgPSA1O1xyXG5cdHBhZ2VkOiBib29sZWFuID0gdHJ1ZTtcclxuXHRzaG93Tm9SZXN1bHRzOiBib29sZWFuO1xyXG5cdHZpZXdJbnRQZjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdHZpZXdSZXN1bHRUYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdHJlc0xlblBmID0gMDtcclxuXHR2YWxpZGF0aW9uRm9ybVBGOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yLCB7IHN0YXRpYzogdHJ1ZSB9KSBwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcclxuXHJcblx0cGFnZUV2ZW50OiBQYWdlRXZlbnQ7XHJcblxyXG5cdGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW1xyXG5cdFx0J2NvZGljZUZpc2NhbGUnLFxyXG5cdFx0J25vbWUnLFxyXG5cdFx0J2NvZ25vbWUnLFxyXG5cdFx0J3NlbGV6aW9uYSdcclxuXHRdO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgZGVsZWdoZVNlcnZpY2U6IERlbGVnaGVTZXJ2aWNlLFxyXG5cdCkgeyB9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdH1cclxuXHJcblx0aW5mb1BmUmVhZHkoaW5Gb1BmU3RhdHVzOiBDb21wb25lbnRPdXRwdXRTdGF0dXM8SW5mb0FuYWdyYWZpY2hlUEZEVE8+KSB7XHJcblx0XHQvLyBjb25zb2xlLmxvZygnW2luZm9QZlJlYWR5XScsIGluRm9QZlN0YXR1cyk7XHJcblx0XHR0aGlzLnZhbGlkYXRpb25Gb3JtUEYgPSBpbkZvUGZTdGF0dXMuc3RhdHVzO1xyXG5cclxuXHRcdGlmIChpbkZvUGZTdGF0dXMub3V0cHV0LmNvZEZpc2NhbGUgIT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHRoaXMuY29kaWNlRmlzY2FsZSA9IGluRm9QZlN0YXR1cz8ub3V0cHV0LmNvZEZpc2NhbGUudG9VcHBlckNhc2UoKS50cmltKCk7XHJcblx0XHR9XHJcblx0XHRpZiAoaW5Gb1BmU3RhdHVzLm91dHB1dC5jb2dub21lICE9IHVuZGVmaW5lZCkge1xyXG5cdFx0XHR0aGlzLmNvZ25vbWUgPSBpbkZvUGZTdGF0dXM/Lm91dHB1dC5jb2dub21lLnRvVXBwZXJDYXNlKCkudHJpbSgpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGluRm9QZlN0YXR1cy5vdXRwdXQubm9tZSAhPSB1bmRlZmluZWQpIHtcclxuXHRcdFx0dGhpcy5ub21lID0gaW5Gb1BmU3RhdHVzPy5vdXRwdXQubm9tZS50b1VwcGVyQ2FzZSgpLnRyaW0oKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGdldExpc3RhUGYoKSB7XHJcblx0XHR0aGlzLmxpc3RhUGYgPSAnJztcclxuXHRcdHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UodGhpcy5saXN0YVBmKTtcclxuXHJcblx0XHRjb25zdCBwZiA9IG5ldyBQZXJzb25hRmlzaWNhQmFzZURUTygpO1xyXG5cdFx0cGYuY29kaWNlRmlzY2FsZSA9IHRoaXMuY29kaWNlRmlzY2FsZTtcclxuXHRcdHBmLmNvZ25vbWUgPSB0aGlzLmNvZ25vbWU7XHJcblx0XHRwZi5ub21lID0gdGhpcy5ub21lO1xyXG5cclxuXHRcdC8vIHRoaXMuZGVsZWdoZVNlcnZpY2UuZ2V0TGlzdGFQZlBhZ2VkKHRoaXMucGFnZVNpemUsIHRoaXMucGFnZU51bWJlciwgcGYpO1xyXG5cclxuXHRcdGlmIChwZi5jb2RpY2VGaXNjYWxlICE9IFwiXCIgJiYgcGYuY29nbm9tZSA9PSBcIlwiICYmIHBmLm5vbWUgPT0gXCJcIikge1xyXG5cdFx0XHRjb25zb2xlLmxvZyhcIltSaWNlcmNhIEFuYWdyYWZlIFRyaWJ1dGFyaWFdXCIpO1xyXG5cdFx0XHR0aGlzLmRlbGVnaGVTZXJ2aWNlLmdldFBlcnNvbmFGaXNjYWxlQ29kaWNlRmlzY2FsZShwZi5jb2RpY2VGaXNjYWxlKS5waXBlKFxyXG5cdFx0XHRcdC8vIHBsdWNrKFwiZGF0aVBlcnNvbmFGaXNpY2FcIilcclxuXHRcdFx0KVxyXG5cdFx0XHRcdC5zdWJzY3JpYmUoXHJcblx0XHRcdFx0XHQocmVzOiBQZXJzb25hRmlzaWNhKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdbcGddJywgcmVzKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5saXN0YVBmID0gcmVzO1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnW2xpc3RhUGZdJywgdGhpcy5saXN0YVBmKTtcclxuXHRcdFx0XHRcdFx0aWYgKHRoaXMubGlzdGFQZikge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc2hvd05vUmVzdWx0cyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMudmlld0ludFBmID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnZpZXdSZXN1bHRUYWJsZSA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0Ly8gdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSh0aGlzLmxpc3RhUGdbJ2NvbnRlbnQnXSk7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZShbdGhpcy5saXN0YVBmXSk7XHJcblx0XHRcdFx0XHRcdFx0Ly8gdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZShbcmVzXSk7XHJcblx0XHRcdFx0XHRcdFx0Ly8gdGhpcy5kYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xyXG5cdFx0XHRcdFx0XHRcdC8vIHRoaXMucmVzTGVuUGcgPSByZXNbJ2NvbnRlbnQnXS5sZW5ndGg7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5yZXNMZW5QZiA9IDE7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5zaG93Tm9SZXN1bHRzID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnZpZXdJbnRQZiA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMudmlld1Jlc3VsdFRhYmxlID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5yZXNMZW5QZiA9IDA7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRlcnIgPT4ge1xyXG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZygnW2Vycm9yZSAtIGdldExpc3RhUGZQYWdlZF0nLCBlcnIpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNob3dOb1Jlc3VsdHMgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnZpZXdJbnRQZiA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnZpZXdSZXN1bHRUYWJsZSA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnJlc0xlblBmID0gMDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHQpXHJcblx0XHR9XHJcblx0XHRlbHNlIHtcclxuXHRcdFx0Y29uc29sZS5sb2coXCJbUmljZXJjYSBTdWwgUG9ydGFsZV1cIik7XHJcblxyXG5cdFx0XHR0aGlzLnBlcnNvbmFGaXNpY2EkID0gdGhpcy5kZWxlZ2hlU2VydmljZS5nZXRMaXN0YVBmUGFnZWQodGhpcy5wYWdlU2l6ZSwgdGhpcy5wYWdlTnVtYmVyLCBwZilcclxuXHRcdFx0XHQucGlwZShzaGFyZVJlcGxheSgpKTtcclxuXHJcblx0XHRcdHRoaXMucGZTdWJzY3JpcHRpb24gPSB0aGlzLnBlcnNvbmFGaXNpY2EkLnBpcGUoXHJcblx0XHRcdFx0Ly8gcGx1Y2soXCJkYXRpUGVyc29uYUZpc2ljYVwiKVxyXG5cdFx0XHQpLnN1YnNjcmliZShcclxuXHRcdFx0XHQocmVzOiBQZXJzb25hRmlzaWNhKSA9PiB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnW3BmXScsIHJlcyk7XHJcblx0XHRcdFx0XHR0aGlzLmxpc3RhUGYgPSByZXM7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5saXN0YVBmKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc2hvd05vUmVzdWx0cyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnZpZXdJbnRQZiA9IHRydWU7XHJcblx0XHRcdFx0XHRcdHRoaXMudmlld1Jlc3VsdFRhYmxlID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSh0aGlzLmxpc3RhUGZbJ2NvbnRlbnQnXSk7XHJcblx0XHRcdFx0XHRcdHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcclxuXHRcdFx0XHRcdFx0dGhpcy5yZXNMZW5QZiA9IHJlc1snY29udGVudCddLmxlbmd0aDtcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdHRoaXMudmlld0ludFBmID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdHRoaXMudmlld1Jlc3VsdFRhYmxlID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdHRoaXMuc2hvd05vUmVzdWx0cyA9IHRydWU7XHJcblx0XHRcdFx0XHRcdHRoaXMucmVzTGVuUGYgPSAwO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0ZXJyID0+IHtcclxuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdbZXJyb3JlIC0gZ2V0TGlzdGFQZlBhZ2VkXScsIGVycik7XHJcblx0XHRcdFx0XHR0aGlzLnZpZXdJbnRQZiA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0dGhpcy52aWV3UmVzdWx0VGFibGUgPSBmYWxzZTtcclxuXHRcdFx0XHRcdHRoaXMuc2hvd05vUmVzdWx0cyA9IHRydWU7XHJcblx0XHRcdFx0XHR0aGlzLnJlc0xlblBmID0gMDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdClcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHB1bGlzY2lGb3JtKCkge1xyXG5cdFx0dGhpcy5yZXNldEZvcm0ubmV4dCh0cnVlKTtcclxuXHRcdHRoaXMudmlld1Jlc3VsdFRhYmxlID0gZmFsc2U7XHJcblx0XHR0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKG51bGwpO1xyXG5cdFx0dGhpcy52aWV3SW50UGYgPSBmYWxzZTtcclxuXHRcdC8vIGNvbnNvbGUubG9nKCdbcHVsaXNjaUZvcm0gLSByZXNldEZvcm1dJywgdGhpcy5yZXNldEZvcm0pO1xyXG5cdH1cclxuXHJcblx0YXJlU2VhcmNoUGFyYW1ldGVyVmFsaWQoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gKFxyXG5cdFx0XHR0aGlzLnZhbGlkYXRpb25Gb3JtUEYgJiZcclxuXHRcdFx0KHRoaXMuY29kaWNlRmlzY2FsZSAhPSBcIlwiIHx8XHJcblx0XHRcdFx0dGhpcy5jb2dub21lICE9IFwiXCIgfHxcclxuXHRcdFx0XHR0aGlzLm5vbWUgIT0gXCJcIilcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRwZXJzb25hRmlzaWNhU2VsZWN0ZWQocm93OiBQZXJzb25hRmlzaWNhKSB7XHJcblx0XHQvLyBjb25zb2xlLmxvZygnW1BlcnNvbmFGaXNpY2FdJywgcm93KTtcclxuXHRcdHRoaXMuZG9uZS5lbWl0KENvbXBvbmVudE91dHB1dFN0YXR1cy5vZih0cnVlLCByb3cuZGF0aVBlcnNvbmFGaXNpY2EpKTtcclxuXHR9XHJcbn0iXX0=