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