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.

155 lines 26.2 kB
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==