@infordata-web/portal-common-component-lib
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.0.14.
161 lines • 26.7 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 { PersonaGiuridicaDTO } from '../../models/persona-giuridica-dto';
import { ComponentOutputStatus } from '../../normalizzazione/component-output-status';
import { DelegheService } from '../../services/deleghe-services/deleghe.service';
export class RicercaPgComponent {
constructor(delegheService) {
this.delegheService = delegheService;
this.showRagioneSociale = true;
this.showPartitaIVA = true;
// @Output()
// personaGiuridicaSelezionata: EventEmitter<PersonaGiuridica> = new EventEmitter<PersonaGiuridica>();
this.done = new EventEmitter();
this.resetForm = new Subject();
this.codiceFiscale = "";
this.ragioneSociale = "";
this.partitaIVA = "";
this.offset = 0;
this.pageNumber = 0;
this.pageSize = 5;
this.paged = true;
this.viewIntPg = false;
this.viewResultTable = false;
this.resLenPg = 0;
this.validationFormPG = false;
this.displayedColumns = [
'ragioneSociale',
'pIva',
'codFiscale',
'seleziona'
];
}
ngOnInit() {
}
personaGiuridicaReady(pgStatus) {
var _a, _b;
// console.log("[personaGiuridicaReady]", pgStatus);
this.validationFormPG = pgStatus.status;
if (pgStatus.output.codiceFiscale != undefined) {
this.codiceFiscale = pgStatus === null || pgStatus === void 0 ? void 0 : pgStatus.output.codiceFiscale.toUpperCase().trim();
}
if (((_a = pgStatus.output) === null || _a === void 0 ? void 0 : _a.ragioneSociale) != undefined) {
this.ragioneSociale = pgStatus === null || pgStatus === void 0 ? void 0 : pgStatus.output.ragioneSociale.toUpperCase().trim();
}
if (((_b = pgStatus.output) === null || _b === void 0 ? void 0 : _b.partitaIVA) != undefined) {
this.partitaIVA = pgStatus === null || pgStatus === void 0 ? void 0 : pgStatus.output.partitaIVA.toUpperCase().trim();
}
//TODO
// this.changesPersonaGiuridica$.next(
// pgStatus.mapValue(pg => (rap: LegaleRappresentanteDTO) => rap.datiSocieta = pg)
// );
}
getListaPg() {
this.listaPg = '';
this.dataSource = new MatTableDataSource(this.listaPg);
const pg = new PersonaGiuridicaDTO();
pg.codiceFiscale = this.codiceFiscale;
pg.ragioneSociale = this.ragioneSociale;
pg.partitaIVA = this.partitaIVA;
if (pg.codiceFiscale != "" && pg.partitaIVA == "" && pg.ragioneSociale == "") {
console.log("[Ricerca Anagrafe Tributaria]");
this.delegheService.getPersonaGiuridicaCodiceFiscale(pg.codiceFiscale).pipe(
// pluck("datiPersonaGiuridica")
)
.subscribe((res) => {
console.log('[pg]', res);
this.listaPg = res;
// console.log('[listaPg]', this.listaPg);
if (this.listaPg) {
this.showNoResults = false;
this.viewIntPg = true;
this.viewResultTable = true;
// this.dataSource = new MatTableDataSource(this.listaPg['content']);
this.dataSource = new MatTableDataSource([this.listaPg]);
// this.dataSource = new MatTableDataSource([res]);
// this.dataSource.paginator = this.paginator;
// this.resLenPg = res['content'].length;
this.resLenPg = 1;
}
else {
this.showNoResults = true;
this.viewIntPg = false;
this.viewResultTable = false;
this.resLenPg = 0;
}
}, err => {
// console.log('[errore - getListaPfPaged]', err);
this.showNoResults = true;
this.viewIntPg = false;
this.viewResultTable = false;
this.resLenPg = 0;
});
}
else {
console.log("[Ricerca Sul Portale]");
this.delegheService.getListaPgPaged(this.pageSize, this.pageNumber, pg).subscribe((res) => {
console.log('[pg]', res);
this.listaPg = res;
// console.log('[listaPg]', this.listaPg);
if (this.listaPg) {
this.showNoResults = false;
this.viewIntPg = true;
this.viewResultTable = true;
this.dataSource = new MatTableDataSource(this.listaPg['content']);
this.dataSource.paginator = this.paginator;
this.resLenPg = res['content'].length;
}
else {
this.showNoResults = true;
this.viewIntPg = false;
this.viewResultTable = false;
this.resLenPg = 0;
}
}, err => {
// console.log('[errore - getListaPfPaged]', err);
this.showNoResults = true;
this.viewIntPg = false;
this.viewResultTable = false;
this.resLenPg = 0;
});
}
}
pulisciForm() {
this.resetForm.next(true);
this.viewResultTable = false;
this.dataSource = new MatTableDataSource(null);
this.viewIntPg = false;
// console.log('[pulisciForm - resetForm]', this.resetForm);
}
areSearchParameterValid() {
return (this.validationFormPG &&
(this.codiceFiscale != "" ||
this.ragioneSociale != "" ||
this.partitaIVA != ""));
}
personaGiuridicaSelected(row) {
// console.log('[PersonaGiuridica]', row);
this.done.emit(ComponentOutputStatus.of(true, row));
}
}
RicercaPgComponent.decorators = [
{ type: Component, args: [{
selector: 'lib-ricerca-pg',
template: "<!-- <p>ricerca-pg 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-persona-giuridica\r\n\t(done)=\"personaGiuridicaReady($event)\"\r\n\t[namespace]=\"namespace\"\r\n\t[resetForm]=\"resetForm\"\r\n\t[validatorFormControl]=\"false\"\r\n>\r\n</lib-persona-giuridica> -->\r\n<lib-pg\r\n\t(done)=\"personaGiuridicaReady($event)\"\r\n\t[resetForm]=\"resetForm\"\r\n\t[showPartitaIVA]=\"showPartitaIVA\"\r\n\t[showRagioneSociale]=\"showRagioneSociale\"\r\n>\r\n</lib-pg>\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)=\"getListaPg();\"\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\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=\"viewIntPg\" 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 }} : {{resLenPg}}</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 mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z8 mt-3 border\">\r\n\r\n\t\t\t\t<!-- Ragione Sociale Column -->\r\n\t\t\t\t<ng-container matColumnDef=\"ragioneSociale\">\r\n\t\t\t\t\t<mat-header-cell *matHeaderCellDef> {{'ragione-sociale' | traduzione }} </mat-header-cell>\r\n\t\t\t\t\t<mat-cell *matCellDef=\"let element\"> {{element.datiPersonaGiuridica.ragioneSociale}} </mat-cell>\r\n\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t<!-- PIVA Column -->\r\n\t\t\t\t<ng-container matColumnDef=\"pIva\">\r\n\t\t\t\t\t<mat-header-cell *matHeaderCellDef> {{'pIva' | traduzione }} </mat-header-cell>\r\n\t\t\t\t\t<mat-cell *matCellDef=\"let element\"> {{element.datiPersonaGiuridica.partitaIVA}} </mat-cell>\r\n\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t<!-- Codice Fiscale Column -->\r\n\t\t\t\t<ng-container matColumnDef=\"codFiscale\">\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.datiPersonaGiuridica.codiceFiscale}} </mat-cell>\r\n\t\t\t\t</ng-container>\r\n\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)=\"personaGiuridicaSelected(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>\r\n",
styles: [".mat-header-cell{background-color:#dce9f5;color:#092644!important;font-weight:600}.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)}"]
},] }
];
RicercaPgComponent.ctorParameters = () => [
{ type: DelegheService }
];
RicercaPgComponent.propDecorators = {
namespace: [{ type: Input }],
readOnly: [{ type: Input }],
showRagioneSociale: [{ type: Input }],
showPartitaIVA: [{ type: Input }],
done: [{ type: Output }],
paginator: [{ type: ViewChild, args: [MatPaginator, { static: true },] }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljZXJjYS1wZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiQzovUHJvZ2V0dGkvREFHL3NvcmdlbnRpL2dpdGxhYi1zb2Z0d2FyZWZhY3RvcnkvY29tbW9uLWNvbXBvbmVudC1saWIvcHJvamVjdHMvcG9ydGFsLWNvbW1vbi1jb21wb25lbnQtbGliL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kZXBvc2l0aS9jb21tb24tY29tcG9uZW50L3JpY2VyY2EtcGcvcmljZXJjYS1wZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFDLFlBQVksRUFBWSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFdkUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDcEYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBTy9FLE1BQU0sT0FBTyxrQkFBa0I7SUFtRDlCLFlBQ1MsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBM0N2Qyx1QkFBa0IsR0FBWSxJQUFJLENBQUM7UUFHbkMsbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFFL0IsWUFBWTtRQUNaLHNHQUFzRztRQUd0RyxTQUFJLEdBRUEsSUFBSSxZQUFZLEVBQTJDLENBQUM7UUFFaEUsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFFbkMsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0IsbUJBQWMsR0FBVyxFQUFFLENBQUM7UUFDNUIsZUFB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QUFDLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRTtnQkFDeEIsSUFBSSxDQUFDLGNBQWMsSUFBSSxFQUFFO2dCQUN6QixJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVELHdCQUF3QixDQUFDLEdBQXFCO1FBQzdDLDBDQUEwQztRQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQzs7O1lBbkxELFNBQVMsU0FBQztnQkFDVixRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQixxcUhBQTBDOzthQUUxQzs7O1lBTk8sY0FBYzs7O3dCQVNwQixLQUFLO3VCQUdMLEtBQUs7aUNBR0wsS0FBSzs2QkFHTCxLQUFLO21CQU1MLE1BQU07d0JBdUJOLFNBQVMsU0FBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge01hdFBhZ2luYXRvciwgUGFnZUV2ZW50fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQge01hdFRhYmxlRGF0YVNvdXJjZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1BlcnNvbmFHaXVyaWRpY2FEVE99IGZyb20gJy4uLy4uL21vZGVscy9wZXJzb25hLWdpdXJpZGljYS1kdG8nO1xyXG5pbXBvcnQge1BlcnNvbmFHaXVyaWRpY2F9IGZyb20gJy4uLy4uL21vZGVscy9wb3J0YWxlL3BlcnNvbmEtZ2l1cmlkaWNhLW1vZGVsJztcclxuaW1wb3J0IHtDb21wb25lbnRPdXRwdXRTdGF0dXN9IGZyb20gJy4uLy4uL25vcm1hbGl6emF6aW9uZS9jb21wb25lbnQtb3V0cHV0LXN0YXR1cyc7XHJcbmltcG9ydCB7RGVsZWdoZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RlbGVnaGUtc2VydmljZXMvZGVsZWdoZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbGliLXJpY2VyY2EtcGcnLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9yaWNlcmNhLXBnLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9yaWNlcmNhLXBnLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmljZXJjYVBnQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcblx0QElucHV0KClcclxuXHRuYW1lc3BhY2U6IHN0cmluZztcclxuXHJcblx0QElucHV0KClcclxuXHRyZWFkT25seTogYm9vbGVhbjtcclxuXHJcblx0QElucHV0KClcclxuXHRzaG93UmFnaW9uZVNvY2lhbGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuXHRASW5wdXQoKVxyXG5cdHNob3dQYXJ0aXRhSVZBOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcblx0Ly8gQE91dHB1dCgpXHJcblx0Ly8gcGVyc29uYUdpdXJpZGljYVNlbGV6aW9uYXRhOiBFdmVudEVtaXR0ZXI8UGVyc29uYUdpdXJpZGljYT4gPSBuZXcgRXZlbnRFbWl0dGVyPFBlcnNvbmFHaXVyaWRpY2E+KCk7XHJcblxyXG5cdEBPdXRwdXQoKVxyXG5cdGRvbmU6IEV2ZW50RW1pdHRlcjxcclxuXHRcdENvbXBvbmVudE91dHB1dFN0YXR1czxQZXJzb25hR2l1cmlkaWNhPlxyXG5cdD4gPSBuZXcgRXZlbnRFbWl0dGVyPENvbXBvbmVudE91dHB1dFN0YXR1czxQZXJzb25hR2l1cmlkaWNhPj4oKTtcclxuXHJcblx0cmVzZXRGb3JtID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuXHJcblx0Y29kaWNlRmlzY2FsZTogc3RyaW5nID0gXCJcIjtcclxuXHRyYWdpb25lU29jaWFsZTogc3RyaW5nID0gXCJcIjtcclxuXHRwYXJ0aXRhSVZBOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuXHRkYXRhU291cmNlOiBNYXRUYWJsZURhdGFTb3VyY2U8YW55PjtcclxuXHRsaXN0YVBnO1xyXG5cdG9mZnNldDogbnVtYmVyID0gMDtcclxuXHRwYWdlTnVtYmVyOiBudW1iZXIgPSAwO1xyXG5cdHBhZ2VTaXplOiBudW1iZXIgPSA1O1xyXG5cdHBhZ2VkOiBib29sZWFuID0gdHJ1ZTtcclxuXHRzaG93Tm9SZXN1bHRzOiBib29sZWFuO1xyXG5cdHZpZXdJbnRQZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdHZpZXdSZXN1bHRUYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdHJlc0xlblBnID0gMDtcclxuXHR2YWxpZGF0aW9uRm9ybVBHOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yLCB7IHN0YXRpYzogdHJ1ZSB9KSBwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcclxuXHJcblx0cGFnZUV2ZW50OiBQYWdlRXZlbnQ7XHJcblxyXG5cdGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW1xyXG5cdFx0J3JhZ2lvbmVTb2NpYWxlJyxcclxuXHRcdCdwSXZhJyxcclxuXHRcdCdjb2RGaXNjYWxlJyxcclxuXHRcdCdzZWxlemlvbmEnXHJcblx0XTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIGRlbGVnaGVTZXJ2aWNlOiBEZWxlZ2hlU2VydmljZSxcclxuXHQpIHsgfVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHR9XHJcblxyXG5cdHBlcnNvbmFHaXVyaWRpY2FSZWFkeShwZ1N0YXR1czogQ29tcG9uZW50T3V0cHV0U3RhdHVzPFBlcnNvbmFHaXVyaWRpY2FEVE8+KSB7XHJcblx0XHQvLyBjb25zb2xlLmxvZyhcIltwZXJzb25hR2l1cmlkaWNhUmVhZHldXCIsIHBnU3RhdHVzKTtcclxuXHRcdHRoaXMudmFsaWRhdGlvbkZvcm1QRyA9IHBnU3RhdHVzLnN0YXR1cztcclxuXHJcblx0XHRpZiAocGdTdGF0dXMub3V0cHV0LmNvZGljZUZpc2NhbGUgIT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHRoaXMuY29kaWNlRmlzY2FsZSA9IHBnU3RhdHVzPy5vdXRwdXQuY29kaWNlRmlzY2FsZS50b1VwcGVyQ2FzZSgpLnRyaW0oKTtcclxuXHRcdH1cclxuXHRcdGlmIChwZ1N0YXR1cy5vdXRwdXQ/LnJhZ2lvbmVTb2NpYWxlICE9IHVuZGVmaW5lZCkge1xyXG5cdFx0XHR0aGlzLnJhZ2lvbmVTb2NpYWxlID0gcGdTdGF0dXM/Lm91dHB1dC5yYWdpb25lU29jaWFsZS50b1VwcGVyQ2FzZSgpLnRyaW0oKTtcclxuXHRcdH1cclxuXHRcdGlmIChwZ1N0YXR1cy5vdXRwdXQ/LnBhcnRpdGFJVkEgIT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHRoaXMucGFydGl0YUlWQSA9IHBnU3RhdHVzPy5vdXRwdXQucGFydGl0YUlWQS50b1VwcGVyQ2FzZSgpLnRyaW0oKTtcclxuXHRcdH1cclxuXHJcblx0XHQvL1RPRE9cclxuXHRcdC8vIHRoaXMuY2hhbmdlc1BlcnNvbmFHaXVyaWRpY2EkLm5leHQoXHJcblx0XHQvLyBcdHBnU3RhdHVzLm1hcFZhbHVlKHBnID0+IChyYXA6IExlZ2FsZVJhcHByZXNlbnRhbnRlRFRPKSA9PiByYXAuZGF0aVNvY2lldGEgPSBwZylcclxuXHRcdC8vICk7XHJcblx0fVxyXG5cclxuXHRnZXRMaXN0YVBnKCkge1xyXG5cdFx0dGhpcy5saXN0YVBnID0gJyc7XHJcblx0XHR0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKHRoaXMubGlzdGFQZyk7XHJcblxyXG5cdFx0Y29uc3QgcGcgPSBuZXcgUGVyc29uYUdpdXJpZGljYURUTygpO1xyXG5cdFx0cGcuY29kaWNlRmlzY2FsZSA9IHRoaXMuY29kaWNlRmlzY2FsZTtcclxuXHRcdHBnLnJhZ2lvbmVTb2NpYWxlID0gdGhpcy5yYWdpb25lU29jaWFsZTtcclxuXHRcdHBnLnBhcnRpdGFJVkEgPSB0aGlzLnBhcnRpdGFJVkE7XHJcblxyXG5cdFx0aWYgKHBnLmNvZGljZUZpc2NhbGUgIT0gXCJcIiAmJiBwZy5wYXJ0aXRhSVZBID09IFwiXCIgJiYgcGcucmFnaW9uZVNvY2lhbGUgPT0gXCJcIikge1xyXG5cdFx0XHRjb25zb2xlLmxvZyhcIltSaWNlcmNhIEFuYWdyYWZlIFRyaWJ1dGFyaWFdXCIpO1xyXG5cdFx0XHR0aGlzLmRlbGVnaGVTZXJ2aWNlLmdldFBlcnNvbmFHaXVyaWRpY2FDb2RpY2VGaXNjYWxlKHBnLmNvZGljZUZpc2NhbGUpLnBpcGUoXHJcblx0XHRcdFx0Ly8gcGx1Y2soXCJkYXRpUGVyc29uYUdpdXJpZGljYVwiKVxyXG5cdFx0XHQpXHJcblx0XHRcdFx0LnN1YnNjcmliZShcclxuXHRcdFx0XHRcdChyZXM6IFBlcnNvbmFHaXVyaWRpY2EpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ1twZ10nLCByZXMpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLmxpc3RhUGcgPSByZXM7XHJcblx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdbbGlzdGFQZ10nLCB0aGlzLmxpc3RhUGcpO1xyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5saXN0YVBnKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5zaG93Tm9SZXN1bHRzID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy52aWV3SW50UGcgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMudmlld1Jlc3VsdFRhYmxlID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHQvLyB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKHRoaXMubGlzdGFQZ1snY29udGVudCddKTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKFt0aGlzLmxpc3RhUGddKTtcclxuXHRcdFx0XHRcdFx0XHQvLyB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKFtyZXNdKTtcclxuXHRcdFx0XHRcdFx0XHQvLyB0aGlzLmRhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XHJcblx0XHRcdFx0XHRcdFx0Ly8gdGhpcy5yZXNMZW5QZyA9IHJlc1snY29udGVudCddLmxlbmd0aDtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnJlc0xlblBnID0gMTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnNob3dOb1Jlc3VsdHMgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMudmlld0ludFBnID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy52aWV3UmVzdWx0VGFibGUgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnJlc0xlblBnID0gMDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGVyciA9PiB7XHJcblx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdbZXJyb3JlIC0gZ2V0TGlzdGFQZlBhZ2VkXScsIGVycik7XHJcblx0XHRcdFx0XHRcdHRoaXMuc2hvd05vUmVzdWx0cyA9IHRydWU7XHJcblx0XHRcdFx0XHRcdHRoaXMudmlld0ludFBnID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdHRoaXMudmlld1Jlc3VsdFRhYmxlID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdHRoaXMucmVzTGVuUGcgPSAwO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdClcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNvbnNvbGUubG9nKFwiW1JpY2VyY2EgU3VsIFBvcnRhbGVdXCIpO1xyXG5cdFx0XHR0aGlzLmRlbGVnaGVTZXJ2aWNlLmdldExpc3RhUGdQYWdlZCh0aGlzLnBhZ2VTaXplLCB0aGlzLnBhZ2VOdW1iZXIsIHBnKS5zdWJzY3JpYmUoXHJcblx0XHRcdFx0KHJlczogUGVyc29uYUdpdXJpZGljYSkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ1twZ10nLCByZXMpO1xyXG5cdFx0XHRcdFx0dGhpcy5saXN0YVBnID0gcmVzO1xyXG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ1tsaXN0YVBnXScsIHRoaXMubGlzdGFQZyk7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5saXN0YVBnKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc2hvd05vUmVzdWx0cyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnZpZXdJbnRQZyA9IHRydWU7XHJcblx0XHRcdFx0XHRcdHRoaXMudmlld1Jlc3VsdFRhYmxlID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSh0aGlzLmxpc3RhUGdbJ2NvbnRlbnQnXSk7XHJcblx0XHRcdFx0XHRcdHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcclxuXHRcdFx0XHRcdFx0dGhpcy5yZXNMZW5QZyA9IHJlc1snY29udGVudCddLmxlbmd0aDtcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc2hvd05vUmVzdWx0cyA9IHRydWU7XHJcblx0XHRcdFx0XHRcdHRoaXMudmlld0ludFBnID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdHRoaXMudmlld1Jlc3VsdFRhYmxlID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdHRoaXMucmVzTGVuUGcgPSAwO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0ZXJyID0+IHtcclxuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdbZXJyb3JlIC0gZ2V0TGlzdGFQZlBhZ2VkXScsIGVycik7XHJcblx0XHRcdFx0XHR0aGlzLnNob3dOb1Jlc3VsdHMgPSB0cnVlO1xyXG5cdFx0XHRcdFx0dGhpcy52aWV3SW50UGcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdHRoaXMudmlld1Jlc3VsdFRhYmxlID0gZmFsc2U7XHJcblx0XHRcdFx0XHR0aGlzLnJlc0xlblBnID0gMDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdClcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHB1bGlzY2lGb3JtKCkge1xyXG5cdFx0dGhpcy5yZXNldEZvcm0ubmV4dCh0cnVlKTtcclxuXHRcdHRoaXMudmlld1Jlc3VsdFRhYmxlID0gZmFsc2U7XHJcblx0XHR0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKG51bGwpO1xyXG5cdFx0dGhpcy52aWV3SW50UGcgPSBmYWxzZTtcclxuXHRcdC8vIGNvbnNvbGUubG9nKCdbcHVsaXNjaUZvcm0gLSByZXNldEZvcm1dJywgdGhpcy5yZXNldEZvcm0pO1xyXG5cdH1cclxuXHJcblx0YXJlU2VhcmNoUGFyYW1ldGVyVmFsaWQoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gKFxyXG5cdFx0XHR0aGlzLnZhbGlkYXRpb25Gb3JtUEcgJiZcclxuXHRcdFx0KHRoaXMuY29kaWNlRmlzY2FsZSAhPSBcIlwiIHx8XHJcblx0XHRcdFx0dGhpcy5yYWdpb25lU29jaWFsZSAhPSBcIlwiIHx8XHJcblx0XHRcdFx0dGhpcy5wYXJ0aXRhSVZBICE9IFwiXCIpXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cGVyc29uYUdpdXJpZGljYVNlbGVjdGVkKHJvdzogUGVyc29uYUdpdXJpZGljYSkge1xyXG5cdFx0Ly8gY29uc29sZS5sb2coJ1tQZXJzb25hR2l1cmlkaWNhXScsIHJvdyk7XHJcblx0XHR0aGlzLmRvbmUuZW1pdChDb21wb25lbnRPdXRwdXRTdGF0dXMub2YodHJ1ZSwgcm93KSk7XHJcblx0fVxyXG59XHJcbiJdfQ==