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.

569 lines 102 kB
import { SelectionModel } from '@angular/cdk/collections'; import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core'; import { FormControl, FormGroup, Validators } from '@angular/forms'; import * as moment from 'moment'; import { Subject } from 'rxjs'; import { map, pluck, shareReplay, tap } from 'rxjs/operators'; import { CodiceTipiRichiedente } from '../../constants/tipi-richiedente'; import { InfoAnagrafichePFDTO } from '../../models/info-anagrafiche-pf'; import { InfoNascitaPFDTO } from '../../models/info-nascita-pf.dto'; import { NaturaRichiedenteDTO } from '../../models/natura-richiedente.dto'; import { nuovaPFBase, PersonaFisicaBaseDTO } from '../../models/persona-fisica-base-dto'; import { PersonaFisicaDTO } from '../../models/persona-fisica-dto'; import { nuovaPGBase, PersonaGiuridicaBaseDTO } from '../../models/persona-giuridica-base-dto'; import { PersonaGiuridicaDTO } from '../../models/persona-giuridica-dto'; import { RappresentanteDTO } from '../../models/rappresentante-dto'; import { ComponentOutputStatus } from '../../normalizzazione/component-output-status'; import { DelegheService } from '../../services/deleghe-services/deleghe.service'; import { MessageService } from '../../services/message.service'; import { UtenteService } from '../../services/utente/utente.service'; import { ComponentReducer } from '../../utils/component-reducer'; import { coalesce } from '../../utils/fnutils'; import { Modals } from '../../utils/modals'; function log(text, value) { console.log(text, value); } export class DelegheComponent { constructor(delegheService, modals, msg, utenteService, ref) { this.delegheService = delegheService; this.modals = modals; this.msg = msg; this.utenteService = utenteService; this.ref = ref; this.nextStep = new EventEmitter(); this.previousStep = new EventEmitter(); this.salvaBozza = new EventEmitter(); this.isGeneralContractor = new EventEmitter(); this.displayedColumns = ['tipo', 'indirizzo', 'seleziona']; this.CODICE_LEGALE = "LEGALE"; this.direction = "both-ways"; this.isFinal = false; this.defaultDeleghe = false; this.showComponentPF = false; this.showComponentPG = false; this.isSearching = false; this.formControlGeneralContractor = false; this.flagDelegaSeStesso = false; this.changesPersonaFisica$ = new Subject(); this.changesPersonaGiuridica$ = new Subject(); this.validazioneeSede = false; this.couldBeDittaIndividuale = true; } ngOnInit() { var _a; this.utente = this.utenteService.getUtente(); console.log('[DelegheComponent] - Utente', this.utente); this.tipologiaDeposito$ .subscribe(deposito => { console.log('[tipologiaDeposito$]', deposito); //TODO if (deposito.codice == "CDE") { this.formControlGeneralContractor = true; } this.codiceTipoDeposito = deposito.codice; }); //TODO const richiedenteSubscription = this.tipologieRichiedenti$ // .pipe( // pluck("residenza")) .subscribe(richiedente => { console.log('[NaturaRichiedenteDTO]', richiedente); if (this.rappresentanza) { let selectedItem = richiedente.find(r => r.codice == this.rappresentanza.codiceDelega); if (selectedItem) { this.couldBeDittaIndividuale = selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.dittaIndividuale; } } }, _ => { // this.modals.failure([ // "recupero.natura.failure" // ], []); }); this.form = new FormGroup({}); let valid = true; if (!this.rappresentanza) { this.initRappresentante(); valid = false; } else { this.idSedeSelezionata = this.rappresentanza.idSedeSelezionata; if (this.rappresentanza.nuovaPersona) { this.isNew = true; this.delega = 'nuovo'; if (this.rappresentanza.tipoRappresentante == "PF") { this.listaDelegheDefault = [nuovaPFBase()]; this.showComponentPF = true; log("showComponentPF", this.showComponentPF); } else { this.listaDelegheDefault = [nuovaPGBase()]; this.showComponentPG = true; } this.defaultDeleghe = true; this.listaDeleghe = []; const richiedenteSubscription = this.tipologieRichiedenti$.pipe(map(r => r.filter(t => t.codice == this.rappresentanza.codiceDelega))).subscribe(richiedente => { const filterByTipoRichiedente = (tipiRichiedente) => tipiRichiedente.filter(tr => tr.codTipoDelega == richiedente[0].codice); if (this.isPersonaFisica(richiedente[0].tipoPersona)) { this.deleghe$.pipe(pluck("personeFisiche"), map(filterByTipoRichiedente)). subscribe((res) => { if (res.length > 0) { this.listaDeleghe = [...res, ...this.listaDeleghe]; } // console.log('[ListaDeleghe - personeFisiche ]', this.listaDeleghe); }); } if (this.isPersonaGiuridica(richiedente[0].tipoPersona)) { this.deleghe$.pipe(pluck("personeGiuridiche"), map(filterByTipoRichiedente)). subscribe((res) => { if (res.length > 0) { if (this.listaDeleghe.length > 0) { this.listaDeleghe = [...res, ...this.listaDeleghe]; } else { this.listaDeleghe = [...res]; } } }); } if (richiedente[0].tipoPersona.length > 1) { if (this.rappresentanza.tipoRappresentante == "PF") { this.listaDeleghe = [...this.listaDeleghe, nuovaPFBase(), nuovaPGBase()]; } else { this.listaDeleghe = [...this.listaDeleghe, nuovaPGBase(), nuovaPFBase()]; } } else { if (richiedente[0].tipoPersona.find(element => element == "PF")) { this.listaDeleghe = [...this.listaDeleghe, nuovaPFBase()]; } else { this.listaDeleghe = [...this.listaDeleghe, nuovaPGBase()]; } } this.listaDelegheDefault = [this.listaDeleghe.find(el => el.idPersona == "nuovo")]; this.deleghe.setValue(this.listaDelegheDefault[0]); richiedenteSubscription.unsubscribe(); }, _ => { }); } } this.nsDanteCausa = "nsRapprDc"; this.nsTutore = "nsRapprTut"; this.nsLegale = "nsRapprLeg"; this.namespaceInfoPf = this.nsTutore + "PFinfoPF"; this.nspg = this.nsLegale + "pg"; if ((_a = this === null || this === void 0 ? void 0 : this.rappresentanza) === null || _a === void 0 ? void 0 : _a.codiceDelega) { const initalTipoRichiedente = this.fromIdAndTipo(this.rappresentanza.codiceDelega, this.rappresentanza.tipoRappresentante); this.tipoRichiedente = new FormControl({ value: initalTipoRichiedente, disabled: false }, [Validators.required]); } else { this.tipoRichiedente = new FormControl({ value: null, disabled: false }, [Validators.required]); } this.form.addControl("tipoRichiedente", this.tipoRichiedente); this.deleghe = new FormControl({ value: '', disabled: false }, // { value: this.defaultDeleghe ? this.listaDelegheDefault[0] : '', disabled: false }, [Validators.required]); this.form.addControl("deleghe", this.deleghe); this.generalContractor = new FormControl({ value: this.generalContractorValue, disabled: false }); this.form.addControl('generalContractor', this.generalContractor); this.selection = new SelectionModel(false, []); const selected = new FormControl({ value: '', disabled: false }); this.form.addControl('selected', selected); if (this.tipoRichiedente.value != undefined && !this.rappresentanza.nuovaPersona && this.tipoRichiedente.value != CodiceTipiRichiedente.CODICE_ME_MEDESIMO) { const richiedenteSubscription = this.tipologieRichiedenti$.pipe(map(r => r.filter(t => t.codice == this.rappresentanza.codiceDelega)), tap((tipo) => { console.log('initDeleghe:', tipo[0]); this.initDeleghe(tipo[0]); })).subscribe(richiedente => { if (this.isPersonaFisica(richiedente[0].tipoPersona)) { this.personaFisicaBase = this.initPersonaFisica(this.rappresentanza.idPersona); } if (this.isPersonaGiuridica(richiedente[0].tipoPersona)) { this.personaGiuridicaBase = this.initPersonaGiuridica(this.rappresentanza.idPersona); } richiedenteSubscription.unsubscribe(); }, _ => { }); } this.tipoRichiedente$ = this.tipoRichiedente.valueChanges.pipe(tap(_ => { this.deleghe.setValue(null); this.resetValidation(); this.flagDelegaSeStesso = false; this.ref.detectChanges(); }), tap((tipo) => { var _a; if (tipo.codice != CodiceTipiRichiedente.CODICE_ME_MEDESIMO) { this.initDeleghe(tipo); this.rappresentanza.idSedeSelezionata = null; } else { this.resetDeleghe(); this.rappresentanza.idPersona = (_a = this.utente) === null || _a === void 0 ? void 0 : _a.idPersonaFisica; this.rappresentanza.tipoRappresentante = "PF"; } }), shareReplay()); const changesDelega$ = this.deleghe.valueChanges.pipe(map(delega => { return ComponentOutputStatus.of(true, rappresentanza => { if (delega != undefined && delega != null) { this.delega = delega.idPersona; if (!this.defaultDeleghe) { this.setDelega(delega); } else { this.defaultDeleghe = false; } this.flagDelegaSeStesso = false; this.ref.detectChanges(); rappresentanza.idPersona = delega.idPersona != 'nuovo' ? delega.idPersona : null; } }); })); const tipoRichiedenteChanges$ = this.tipoRichiedente$.pipe(map((tipoRichiedente) => { return ComponentOutputStatus.of(this.tipoRichiedente.valid, (rap) => { // rap.tipoRappresentante = tipoRichiedente.descrizione; rap.codiceDelega = tipoRichiedente.codice; }); })); const rappresentante$ = ComponentReducer.reducer4(tipoRichiedenteChanges$, changesDelega$, this.changesPersonaFisica$, this.changesPersonaGiuridica$, (richiedente) => { let isValid; if (coalesce(richiedente, '')('codiceDelega').valueOf() != CodiceTipiRichiedente.CODICE_ME_MEDESIMO) { if (this.delega == 'nuovo') { isValid = (this.rappresentanza.personaFisica != null || this.rappresentanza.personaGiuridica != null) && this.deleghe.value && !this.flagDelegaSeStesso; } else { // isValid = this.rappresentanza.idPersona != null && this.deleghe.value; isValid = richiedente.idPersona != null && this.deleghe.value && !this.flagDelegaSeStesso; } } else { isValid = true; } this.ref.detectChanges(); return isValid; }, ComponentOutputStatus.of(valid, this.rappresentanza)); rappresentante$.subscribe((delegante) => { console.log("[DelegheComponent] rappresentanza", delegante); this.isFormValid = delegante.status; }); } resetValidation() { this.changesPersonaFisica$.next(ComponentOutputStatus.of(true, (personaFisica) => (rap) => { })); this.changesPersonaGiuridica$.next(ComponentOutputStatus.of(true, (personaGiuridica) => (rap) => { })); } forward(_) { this.nextStep.emit(this.rappresentanza); } onSalvaBozza($event) { this.salvaBozza.emit(this.rappresentanza); } backward($event) { this.previousStep.emit(this.rappresentanza); } complete($event) { } initRappresentante() { this.rappresentanza = new RappresentanteDTO(); } ngOnDestroy() { if (this.tipoRichiedenteSub) { this.tipoRichiedenteSub.unsubscribe(); } if (this.$selected) { this.$selected.unsubscribe(); } } setDelega(persona) { this.delega = persona.idPersona; this.resetDeleghe(); this.showComponentPF = false; this.showComponentPG = false; if (persona.cognome) { if (persona.idPersona != "nuovo") { this.getPersonaFisica(persona.idPersona); } else { this.mapperPersonaFisica(null); setTimeout(() => this.showComponentPF = true, 0); } } if (persona.ragioneSociale) { if (persona.idPersona != "nuovo") { this.getPersonaGiuridica(persona.idPersona); } else { this.mapperPersonaGiuridica(null); setTimeout(() => this.showComponentPG = true, 0); } } } hasSelecteDelegante() { return this.deleghe.value; } viewDeleghe() { return (coalesce(this.tipoRichiedente.value, '')('codice').valueOf() === "" || coalesce(this.tipoRichiedente.value, '')('codice').valueOf() === CodiceTipiRichiedente.CODICE_ME_MEDESIMO); } getPersonaFisica(id) { this.resetValidation(); this.rappresentanza.idSedeSelezionata = null; this.showComponentPF = false; this.personaFisica$ = this.delegheService.getPersona(id) .pipe(shareReplay()); this.pfSubscription = this.personaFisica$.pipe().subscribe((pf) => { var _a, _b; this.mapperPersonaFisica(pf.datiPersonaFisica); this.personaFisica = pf.datiPersonaFisica; this.rappresentanza.idPersona = id; this.rappresentanza.tipoRappresentante = "PF"; this.rappresentanza.codiceRegione = (_b = (_a = pf === null || pf === void 0 ? void 0 : pf.residenza) === null || _a === void 0 ? void 0 : _a.regione) === null || _b === void 0 ? void 0 : _b.sigla; this.showComponentPF = true; this.showComponentPG = false; }, _ => { }); } getPersonaGiuridica(id) { this.resetValidation(); this.rappresentanza.idSedeSelezionata = null; this.showComponentPG = false; this.personaGiuridica$ = this.delegheService.getDatiSocieta(id) .pipe(shareReplay()); this.pgSubscription = this.personaGiuridica$.pipe().subscribe((pg) => { var _a, _b, _c; this.form.get('selected').setValue(''); this.mapperPersonaGiuridica(pg); this.personaGiuridica = pg; this.rappresentanza.idPersona = id; this.rappresentanza.tipoRappresentante = "PG"; this.showComponentPG = true; this.showComponentPF = false; if ((pg === null || pg === void 0 ? void 0 : pg.sedi) != undefined) { const sede = pg.sedi.filter(sedeLegale => sedeLegale.tipoSede.codice === "LEGALE"); this.rappresentanza.codiceRegione = (_c = (_b = (_a = sede[0]) === null || _a === void 0 ? void 0 : _a.indirizzo) === null || _b === void 0 ? void 0 : _b.regione) === null || _c === void 0 ? void 0 : _c.sigla; } this.ref.detectChanges(); }, _ => { }); } isPersonaFisica(tipoPersona) { let isValid; if (tipoPersona.find(element => element == "PF")) { isValid = true; } else { isValid = false; } return isValid; } isPersonaGiuridica(tipoPersona) { let isValid; if (tipoPersona.find(element => element == "PG")) { isValid = true; } else { isValid = false; } return isValid; } initDeleghe(tipoRichiedente) { this.listaDeleghe = []; console.log('tipoRichiedente:', tipoRichiedente); this.couldBeDittaIndividuale = tipoRichiedente === null || tipoRichiedente === void 0 ? void 0 : tipoRichiedente.dittaIndividuale; const filterByTipoRichiedente = (tipiRichiedente) => tipiRichiedente.filter(tr => tr.codTipoDelega == tipoRichiedente.codice); if (this.isPersonaFisica(tipoRichiedente.tipoPersona)) { this.deleghe$.pipe(pluck("personeFisiche"), map(filterByTipoRichiedente)). subscribe((res) => { this.listaDeleghe = [...res, nuovaPFBase()]; this.deleghe.setValue(this.listaDeleghe.find(el => el.idPersona == this.rappresentanza.idPersona)); }); } if (this.isPersonaGiuridica(tipoRichiedente.tipoPersona)) { this.deleghe$.pipe(pluck("personeGiuridiche"), map(filterByTipoRichiedente)). subscribe((res) => { if (this.listaDeleghe.length > 0) { this.listaDeleghe = this.listaDeleghe.reduce((acc, currentValue, index) => { if (this.listaDeleghe.length - 1 == index) { acc.push(...res, nuovaPGBase()); } return acc; }, this.listaDeleghe); } else { this.listaDeleghe = [...res, nuovaPGBase()]; } this.deleghe.setValue(this.listaDeleghe.find(el => el.idPersona == this.rappresentanza.idPersona)); }); } } resetDeleghe() { this.rappresentanza.idPersona = null; this.rappresentanza.nuovaPersona = false; this.rappresentanza.personaFisica = null; this.rappresentanza.personaGiuridica = null; this.rappresentanza.tipoRappresentante = null; this.personaGiuridica = null; this.personaGiuridica$ = null; this.personaFisica = null; } mapperPersonaFisica(datiPersona) { var _a, _b; const personaFisica = new PersonaFisicaDTO(); const infoAnagrafiche = new InfoAnagrafichePFDTO(); personaFisica.infoAnagrafiche = infoAnagrafiche; const infoNascita = new InfoNascitaPFDTO(); personaFisica.infoNascita = infoNascita; if (datiPersona) { infoAnagrafiche.codFiscale = datiPersona.codiceFiscale; infoAnagrafiche.cognome = datiPersona.cognome; infoAnagrafiche.nome = datiPersona.nome; personaFisica.infoAnagrafiche = infoAnagrafiche; infoNascita.comuneNascita = (_a = datiPersona.comuneNascita) === null || _a === void 0 ? void 0 : _a.codiceCatastale; infoNascita.provinciaNascita = (_b = datiPersona.provinciaNascita) === null || _b === void 0 ? void 0 : _b.sigla; infoNascita.dataNascita = moment(datiPersona.dataNascita, "DD/MM/YYYY").toDate(); personaFisica.infoNascita = infoNascita; } this.rappresentanza.personaFisica = personaFisica; } initPersonaFisica(id) { let personaFisica = new PersonaFisicaBaseDTO(); this.showComponentPF = false; this.personaFisica$ = this.delegheService.getPersona(id) .pipe(shareReplay()); this.pfSubscription = this.personaFisica$.pipe(pluck("datiPersonaFisica")).subscribe((pf) => { this.mapperPersonaFisica(pf); this.rappresentanza.idPersona = id; personaFisica.codTipoDelega = this.rappresentanza.codiceDelega; personaFisica.codiceFiscale = pf.codiceFiscale; personaFisica.cognome = pf.cognome; personaFisica.nome = pf.nome; personaFisica.idPersona = pf.id; this.showComponentPF = true; this.showComponentPG = false; }, _ => { }); return personaFisica; } initPersonaGiuridica(id) { let personaGiuridica = new PersonaGiuridicaBaseDTO(); this.showComponentPG = false; this.personaGiuridica$ = this.delegheService.getDatiSocieta(id) .pipe(shareReplay()); this.pgSubscription = this.personaGiuridica$.pipe().subscribe((pg) => { this.mapperPersonaGiuridica(pg); personaGiuridica.codTipoDelega = this.rappresentanza.codiceDelega; personaGiuridica.codiceFiscale = pg.datiPersonaGiuridica.codiceFiscale; personaGiuridica.ragioneSociale = pg.datiPersonaGiuridica.ragioneSociale; personaGiuridica.pIva = pg.datiPersonaGiuridica.partitaIVA; personaGiuridica.idPersona = pg.datiPersonaGiuridica.id; this.rappresentanza.idPersona = id; this.showComponentPG = true; this.showComponentPF = false; this.deleghe.setValue(this.listaDeleghe.find(el => el.idPersona == personaGiuridica.idPersona)); }, _ => { }); return personaGiuridica; } mapperPersonaGiuridica(datiPersona) { // console.log('[mapperPersonaGiuridica]', datiPersona); const personaGiuridica = new PersonaGiuridicaDTO(); if (datiPersona) { personaGiuridica.codiceFiscale = datiPersona.datiPersonaGiuridica.codiceFiscale; personaGiuridica.ragioneSociale = datiPersona.datiPersonaGiuridica.ragioneSociale; personaGiuridica.partitaIVA = datiPersona.datiPersonaGiuridica.partitaIVA; personaGiuridica.idPersonaGiuridica = datiPersona.datiPersonaGiuridica.id; personaGiuridica.sedi = datiPersona.sedi; } this.rappresentanza.personaGiuridica = personaGiuridica; } personaFisicaReady(personaFisicaStatus) { console.log('[personaFisicaReady]', personaFisicaStatus); this.resetValidation(); this.rappresentanza.idSedeSelezionata = null; this.changesPersonaFisica$.next(personaFisicaStatus.mapValue((personaFisica) => (rap) => { var _a, _b, _c; this.rappresentanza.idPersona = personaFisica.id; rap.personaFisica = personaFisica; if (this.delega == "nuovo") { rap.codiceRegione = personaFisica.infoAnagrafiche.codiceRegione; rap.nuovaPersona = true; } (rap.tipoRappresentante = "PF"); if (((_a = this.utente) === null || _a === void 0 ? void 0 : _a.codiceFiscale) === ((_c = (_b = personaFisica === null || personaFisica === void 0 ? void 0 : personaFisica.infoAnagrafiche) === null || _b === void 0 ? void 0 : _b.codFiscale) === null || _c === void 0 ? void 0 : _c.toUpperCase())) { this.flagDelegaSeStesso = true; } else { this.flagDelegaSeStesso = false; } this.ref.detectChanges(); })); } personaGiuridicaReady(personaGiuridicaStatus) { console.log("[personaGiuridicaReady]", personaGiuridicaStatus); this.resetValidation(); this.flagDelegaSeStesso = false; this.changesPersonaGiuridica$.next(personaGiuridicaStatus.mapValue(personaGiuridica => (rap) => { var _a; rap.personaGiuridica = personaGiuridica; rap.tipoRappresentante = "PG"; this.rappresentanza.idSedeSelezionata = null; this.rappresentanza.idPersona = personaGiuridica.idPersonaGiuridica; if (((_a = personaGiuridica === null || personaGiuridica === void 0 ? void 0 : personaGiuridica.sedi) === null || _a === void 0 ? void 0 : _a.length) > 0) { this.rappresentanza.idSedeSelezionata = personaGiuridica.sedi[0].id; } if (this.delega == "nuovo") { this.isValidSedi = personaGiuridicaStatus.status; rap.nuovaPersona = true; rap.codiceRegione = personaGiuridica.codiceRegione; } this.ref.detectChanges(); })); } richiedenteComparator(m1, m2) { return (m1 || {}).codice == (m2 || {}).codice; } delegheComparator(m1, m2) { return (m1 || {}).codTipoDelega == (m2 || {}).codTipoDelega; } fromIdAndTipo(codice, tipoNaturaRichiedente) { const naturaRichiedente = new NaturaRichiedenteDTO(); naturaRichiedente.codice = codice; naturaRichiedente.descrizione = tipoNaturaRichiedente; return naturaRichiedente; } onChangeGeneralContractor(event) { this.isGeneralContractor.emit(event.checked); } } DelegheComponent.decorators = [ { type: Component, args: [{ selector: 'lib-deleghe', template: "<div class=\"mt-3 mb-5\" [formGroup]=\"form\">\r\n\t<mat-card>\r\n\t\t<h3 class=\"h5 mb-0\">\r\n\t\t\t<info-tip-label label=\"tipo-richiedente\"></info-tip-label>\r\n\t\t</h3>\r\n\t\t<div class=\"row\">\r\n\r\n\t\t\t<div class=\"col-md-8\">\r\n\t\t\t\t<mat-form-field>\r\n\t\t\t\t\t<mat-label>{{'required' | traduzione}}{{'tipo-soggetto' | traduzione}}</mat-label>\r\n\t\t\t\t\t<mat-select placeholder=\"{{'seleziona' | traduzione}}\" formControlName=\"tipoRichiedente\"\r\n\t\t\t\t\t\t\t\t\t\t\t[compareWith]=\"richiedenteComparator\">\r\n\t\t\t\t\t\t<mat-option *ngFor=\"let tipoRichiedenteTipo of tipologieRichiedenti$ | async\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t[value]=\"tipoRichiedenteTipo\">\r\n\t\t\t\t\t\t\t{{ tipoRichiedenteTipo.descrizione }}\r\n\t\t\t\t\t\t</mat-option>\r\n\t\t\t\t\t</mat-select>\r\n\t\t\t\t\t<mat-error *ngIf=\"form.touched && form.controls[ 'tipoRichiedente'].invalid\">\r\n\t\t\t\t\t\t{{msg.produceMessage('obbligatorio', form.controls['tipoRichiedente']) | traduzione}}\r\n\t\t\t\t\t</mat-error>\r\n\t\t\t\t\t<mat-hint *infoTip=\"'tipo-soggetto'\"></mat-hint>\r\n\t\t\t\t</mat-form-field>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"row\" *ngIf=\"!viewDeleghe()\">\r\n\t\t\t<div class=\"col-md-8\">\r\n\t\t\t\t<mat-form-field>\r\n\t\t\t\t\t<mat-label>{{'required' | traduzione}}{{'deleghe-rappresentante' | traduzione }}</mat-label>\r\n\t\t\t\t\t<mat-select placeholder=\"{{'seleziona' | traduzione}}\" formControlName=\"deleghe\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<mat-option *ngFor=\"let item of listaDeleghe\" [value]=\"item\">\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"item.ragioneSociale else templatePersonaFisica\">\r\n\t\t\t\t\t\t\t\t{{item.idPersona === 'nuovo' ? (item.ragioneSociale | traduzione) : item.ragioneSociale}}\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t<ng-template #templatePersonaFisica>\r\n\t\t\t\t\t\t\t\t{{(item.idPersona === 'nuovo' ? (item.nome + ' ' + (item.cognome | traduzione)) : (item.nome + ' ' + item.cognome))}}\r\n\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t</mat-option>\r\n\t\t\t\t\t</mat-select>\r\n\t\t\t\t\t<mat-error *ngIf=\"form.controls['deleghe'].invalid\">\r\n\t\t\t\t\t\t{{msg.produceMessage('obbligatorio', form.controls['deleghe']) | traduzione}}\r\n\t\t\t\t\t</mat-error>\r\n\t\t\t\t\t<mat-hint *infoTip=\"'deleghe-rappresentante'\"></mat-hint>\r\n\t\t\t\t</mat-form-field>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<br>\r\n\t</mat-card>\r\n\t<div class=\"mt-4\"></div>\r\n\t<mat-expansion-panel class=\"panel\" *ngIf=\"hasSelecteDelegante() && !viewDeleghe()\" [expanded]=\"true\">\r\n\t\t<mat-expansion-panel-header [collapsedHeight]=\"'48px'\" [expandedHeight]=\"'48px'\" class=\"custom-header\">\r\n\t\t\t<mat-panel-title>\r\n\t\t\t\t<h3 class=\"h5 mb-0\">\r\n\t\t\t\t\t<info-tip-label label=\"tipologia-rappresentante-{{codiceTipoDeposito}}\"></info-tip-label>\r\n\t\t\t\t</h3>\r\n\t\t\t</mat-panel-title>\r\n\t\t</mat-expansion-panel-header>\r\n\t\t<div class=\"mt-4\"></div>\r\n\t\t<div *ngIf=\"formControlGeneralContractor\" class=\"col-md-4\">\r\n\t\t\t<div class=\"row\">\r\n\t\t\t\t<mat-checkbox formControlName=\"generalContractor\" (change)=\"onChangeGeneralContractor($event)\">\r\n\t\t\t\t\t<info-tip-label label=\"general-contractor\"></info-tip-label>\r\n\t\t\t\t</mat-checkbox>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<lib-persona-fisica\r\n\t\t\t*ngIf=\"showComponentPF\"\r\n\t\t\t(done)=\"personaFisicaReady($event)\"\r\n\t\t\t[nazioni]=\"nazioni\"\r\n\t\t\t[province]=\"province\"\r\n\t\t\t[namespace]=\"namespaceInfoPf\"\r\n\t\t\t[infoPersonaFisica]=\"rappresentanza?.personaFisica\"\r\n\t\t\t[idDelega]=\"rappresentanza?.idPersona\"\r\n\t\t\t[validatorFormControl]=\"true\"\r\n\t\t\t[nuovaPersona]=\"isNew\"\r\n\t\t>\r\n\t\t</lib-persona-fisica>\r\n\r\n\t\t<lib-persona-giuridica\r\n\t\t\t*ngIf=\"showComponentPG\"\r\n\t\t\t(done)=\"personaGiuridicaReady($event)\"\r\n\t\t\t[namespace]=\"nspg\"\r\n\t\t\t[datisocieta]=\"rappresentanza?.personaGiuridica\"\r\n\t\t\t[validatorFormControl]=\"true\"\r\n\t\t\t[gestioneSedi]=\"true\"\r\n\t\t\t[idSedeSelezionata]=\"idSedeSelezionata\"\r\n\t\t\t[personaGiuridicaFromDeleghe$]=\"personaGiuridica$\"\r\n\t\t\t[couldBeDittaIndividuale]=\"couldBeDittaIndividuale\"\r\n\t\t>\r\n\t\t</lib-persona-giuridica>\r\n\t</mat-expansion-panel>\r\n\t<div class=\"collapse-body mt-2\">\r\n\t\t<div class=\"col-md-12\">\r\n\t\t\t<mat-error *ngIf=\"flagDelegaSeStesso\">\r\n\t\t\t\t{{'validation-tipo-ricorrente' | traduzione }}\r\n\t\t\t</mat-error>\r\n\t\t</div>\r\n\t</div>\r\n\t<div class=\"mt-4\"></div>\r\n\t<lib-stepper-navigator\r\n\t\t[form]=\"form\"\r\n\t\t[direction]=\"direction\"\r\n\t\t[isFinal]=\"isFinal\"\r\n\t\t[isContainerValid]=\"isFormValid\"\r\n\t\t(goForward)=\"forward($event)\"\r\n\t\t(goBackward)=\"backward($event)\"\r\n\t\t(salvaBozza)=\"onSalvaBozza($event)\"\r\n\t\t(complete)=\"complete($event)\"\r\n\t>\r\n\t</lib-stepper-navigator>\r\n</div>\r\n", styles: [".mat-card{border-radius:0!important;border-top:5px solid #0a2644}.divider{background-color:#737373;height:1px;width:100%}.mat-form-field-appearance-fill .mat-form-field-flex{background-color:#fff!important}.mat-select-value{max-width:100%;width:100%!important}"] },] } ]; DelegheComponent.ctorParameters = () => [ { type: DelegheService }, { type: Modals }, { type: MessageService }, { type: UtenteService }, { type: ChangeDetectorRef } ]; DelegheComponent.propDecorators = { rappresentanza: [{ type: Input }], province: [{ type: Input }], nazioni: [{ type: Input }], tipologieRichiedenti$: [{ type: Input }], deleghe$: [{ type: Input }], tipologiaDeposito$: [{ type: Input }], generalContractorValue: [{ type: Input }], nextStep: [{ type: Output }], previousStep: [{ type: Output }], salvaBozza: [{ type: Output }], isGeneralContractor: [{ type: Output }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdoZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovUHJvZ2V0dGkvREFHL3NvcmdlbnRpL2dpdGxhYi10ZXJuaS9jb21tb24tY29tcG9uZW50LWxpYi9wcm9qZWN0cy9wb3J0YWwtY29tbW9uLWNvbXBvbmVudC1saWIvc3JjLyIsInNvdXJjZXMiOlsibGliL2RlcG9zaXRpL2NvbXBvbmVudHMvZGVsZWdoZS9kZWxlZ2hlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEUsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUE0QixPQUFPLEVBQU0sTUFBTSxNQUFNLENBQUM7QUFDN0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFhLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFNekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QyxTQUFTLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSztJQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBTUQsTUFBTSxPQUFPLGdCQUFnQjtJQW9HNUIsWUFDUyxjQUE4QixFQUM5QixNQUFjLEVBQ2QsR0FBbUIsRUFDbkIsYUFBNEIsRUFDNUIsR0FBc0I7UUFKdEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxRQUFHLEdBQUgsR0FBRyxDQUFnQjtRQUNuQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQS9FL0IsYUFBUSxHQUFvQyxJQUFJLFlBQVksRUFFekQsQ0FBQztRQUdKLGlCQUFZLEdBQW9DLElBQUksWUFBWSxFQUU3RCxDQUFDO1FBR0osZUFBVSxHQUFvQyxJQUFJLFlBQVksRUFFM0QsQ0FBQztRQUVhLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFNbkUscUJBQWdCLEdBQWEsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBR2hFLGtCQUFhLEdBQUcsUUFBUSxDQUFBO1FBR3hCLGNBQVMsR0FBVyxXQUFXLENBQUM7UUFDaEMsWUFBTyxHQUFZLEtBQUssQ0FBQztRQWV6QixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUtoQyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUU3QixpQ0FBNEIsR0FBWSxLQUFLLENBQUM7UUFLOUMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBRXBDLDBCQUFxQixHQUFHLElBQUksT0FBTyxFQUVoQyxDQUFDO1FBRUosNkJBQXdCLEdBQUcsSUFBSSxPQUFPLEVBRW5DLENBQUM7UUFLSixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFHbEMsNEJBQXVCLEdBQVcsSUFBSSxDQUFDO0lBUW5DLENBQUM7SUFFTCxRQUFROztRQUVQLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUU3QyxPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV4RCxJQUFJLENBQUMsa0JBQWtCO2FBQ3JCLFNBQVMsQ0FDVCxRQUFRLENBQUMsRUFBRTtZQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDOUMsTUFBTTtZQUNOLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxLQUFLLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUM7YUFDekM7WUFDRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUMzQyxDQUFDLENBQ0QsQ0FBQztRQUVILE1BQU07UUFDTixNQUFNLHVCQUF1QixHQUFHLElBQUksQ0FBQyxxQkFBcUI7WUFDekQsU0FBUztZQUNULHVCQUF1QjthQUN0QixTQUFTLENBQ1QsV0FBVyxDQUFDLEVBQUU7WUFDYixPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ25ELElBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDdEIsSUFBSSxZQUFZLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDdkYsSUFBRyxZQUFZLEVBQUU7b0JBQ2xCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxZQUFZLGFBQVosWUFBWSx1QkFBWixZQUFZLENBQUUsZ0JBQWdCLENBQUM7aUJBQzVEO2FBQ0Y7UUFDRixDQUFDLEVBQ0QsQ0FBQyxDQUFDLEVBQUU7WUFDSCx3QkFBd0I7WUFDeEIsNkJBQTZCO1lBQzdCLFVBQVU7UUFDWCxDQUFDLENBQ0QsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFOUIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzFCLEtBQUssR0FBRyxLQUFLLENBQUM7U0FDZDthQUFNO1lBQ04sSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUM7WUFDL0QsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRTtnQkFDckMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDO2dCQUV0QixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLElBQUksSUFBSSxFQUFFO29CQUNuRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO29CQUMzQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztvQkFDNUIsR0FBRyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztpQkFDN0M7cUJBQU07b0JBQ04sSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztvQkFDM0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7aUJBQzVCO2dCQUVELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO2dCQUUzQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztnQkFFdkIsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUM5RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQ3JFLENBQUMsU0FBUyxDQUNWLFdBQVcsQ0FBQyxFQUFFO29CQUdiLE1BQU0sdUJBQXVCLEdBQzVCLENBQUMsZUFBc0UsRUFBRSxFQUFFLENBQzFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsYUFBYSxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFFMUUsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRTt3QkFDckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2pCLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxFQUN2QixHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FDNUI7NEJBQ0EsU0FBUyxDQUFDLENBQUMsR0FBZ0MsRUFBRSxFQUFFOzRCQUM5QyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dDQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7NkJBQ25EOzRCQUNELHNFQUFzRTt3QkFDdkUsQ0FBQyxDQUFDLENBQUM7cUJBQ0o7b0JBRUQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFO3dCQUN4RCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDakIsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEVBQzFCLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUM1Qjs0QkFDQSxTQUFTLENBQUMsQ0FBQyxHQUFtQyxFQUFFLEVBQUU7NEJBQ2pELElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0NBQ25CLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29DQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7aUNBQ25EO3FDQUFNO29DQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO2lDQUM3Qjs2QkFDRDt3QkFDRixDQUFDLENBQUMsQ0FBQztxQkFDSjtvQkFFRCxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTt3QkFDMUMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixJQUFJLElBQUksRUFBRTs0QkFDbkQsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO3lCQUN6RTs2QkFBTTs0QkFDTixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7eUJBQ3pFO3FCQUNEO3lCQUFNO3dCQUNOLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEVBQUU7NEJBQ2hFLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQzt5QkFDMUQ7NkJBQU07NEJBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO3lCQUMxRDtxQkFDRDtvQkFDRCxJQUFJLENBQUMsbUJBQW1CLEdBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQztvQkFDaEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBRXJFLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUN2QyxDQUFDLEVBQ0QsQ0FBQyxDQUFDLEVBQUU7Z0JBRUosQ0FBQyxDQUNELENBQUM7YUFDRjtTQUNEO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7UUFFN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUNsRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBRWpDLFVBQUcsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLGNBQWMsMENBQUUsWUFBWSxFQUFFO1lBQ3RDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDM0gsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLFdBQVcsQ0FDckMsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUNqRCxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FDckIsQ0FBQztTQUNGO2FBQ0k7WUFDSixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksV0FBVyxDQUNyQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUNoQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FDckIsQ0FBQztTQUNGO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQzdCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO1FBQzlCLHNGQUFzRjtRQUN0RixDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FDckIsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksV0FBVyxDQUN2QyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFbEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBTSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUUzQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxJQUFJLFNBQVM7WUFDMUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVk7WUFDakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLElBQUkscUJBQXFCLENBQUMsa0JBQWtCLEVBQUU7WUFFeEUsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUM5RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQ3JFLEdBQUcsQ0FBQyxDQUFDLElBQWlDLEVBQUUsRUFBRTtnQkFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQ0YsQ0FBQyxTQUFTLENBQ1YsV0FBVyxDQUFDLEVBQUU7Z0JBRWIsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRTtvQkFDckQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUMvRTtnQkFFRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUU7b0JBQ3hELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDckY7Z0JBQ0QsdUJBQXVCLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkMsQ0FBQyxFQUNELENBQUMsQ0FBQyxFQUFFO1lBRUosQ0FBQyxDQUNELENBQUM7U0FFRjtRQUVELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQzdELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsSUFBMEIsRUFBRSxFQUFFOztZQUNsQyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUkscUJBQXFCLENBQUMsa0JBQWtCLEVBQUU7Z0JBQzVELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO2FBQzdDO2lCQUFNO2dCQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLFNBQUcsSUFBSSxDQUFDLE1BQU0sMENBQUUsZUFBZSxDQUFDO2dCQUM3RCxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQzthQUU5QztRQUNGLENBQUMsQ0FBQyxFQUNGLFdBQVcsRUFBRSxDQUNiLENBQUM7UUFFRixNQUFNLGNBQWMsR0FDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUM3QixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDWixPQUFPLHFCQUFxQixDQUFDLEVBQUUsQ0FDOUIsSUFBSSxFQUNKLGNBQWMsQ0FBQyxFQUFFO2dCQUNoQixJQUFJLE1BQU0sSUFBSSxTQUFTLElBQUksTUFBTSxJQUFJLElBQUksRUFBRTtvQkFDMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO29CQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTt3QkFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztxQkFDdkI7eUJBQU07d0JBQ04sSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7cUJBQzVCO29CQUNELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7b0JBQ3pCLGNBQWMsQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztpQkFDakY7WUFDRixDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUNGLENBQUM7UUFFSCxNQUFNLHVCQUF1QixHQUV4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUM5QixHQUFHLENBQUMsQ0FBQyxlQUFxQyxFQUFFLEVBQUU7WUFDN0MsT0FBTyxxQkFBcUIsQ0FBQyxFQUFFLENBQzlCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUMxQixDQUFDLEdBQXNCLEVBQUUsRUFBRTtnQkFDMUIsd0RBQXdEO2dCQUN4RCxHQUFHLENBQUMsWUFBWSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUM7WUFDM0MsQ0FBQyxDQUNELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDRixDQUFDO1FBR0YsTUFBTSxlQUFlLEdBRWhCLGdCQUFnQixDQUFDLFFBQVEsQ0FDN0IsdUJBQXVCLEVBQ3ZCLGNBQWMsRUFDZCxJQUFJLENBQUMscUJBQXFCLEVBQzFCLElBQUksQ0FBQyx3QkFBd0IsRUFDN0IsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNmLElBQUksT0FBZ0IsQ0FBQztZQUVyQixJQUFJLFFBQVEsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUkscUJBQXFCLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3BHLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLEVBQUU7b0JBQzNCLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxJQUFJLElBQUk7d0JBQ25ELElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDO3dCQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztpQkFDaEQ7cUJBQU07b0JBQ04seUVBQXlFO29CQUN6RSxPQUFPO3dCQUNOLFdBQVcsQ0FBQyxTQUFTLElBQUksSUFBSTs0QkFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLOzRCQUNsQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQTtpQkFDekI7YUFDRDtpQkFBTTtnQkFDTixPQUFPLEdBQUcsSUFBSSxDQUFDO2FBQ2Y7WUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sT0FBTyxDQUFDO1FBRWhCLENBQUMsRUFDRCxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FDcEQsQ0FBQztRQUVGLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUVKLENBQUM7SUFDRCxlQUFlO1FBQ2QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FDOUIscUJBQXFCLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFzQixFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FDbEYsQ0FBQztRQUNGLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQ2pDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFzQixFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FDckYsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsQ0FBTTtRQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQVc7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXLElBQUksQ0FBQztJQUV6QixrQkFBa0I7UUFDakIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELFdBQVc7UUFDVixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUM1QixJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEM7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUM3QjtJQUNGLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBWTtRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFFaEMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBRTdCLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUNwQixJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksT0FBTyxFQUFFO2dCQUNqQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ3pDO2lCQUNJO2dCQUNKLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0IsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ2pEO1NBQ0Q7UUFFRCxJQUFJLE9BQU8sQ0FBQyxjQUFjLEVBQUU7WUFDM0IsSUFBSSxPQUFPLENBQUMsU0FBUyxJQUFJLE9BQU8sRUFBRTtnQkFDakMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUM1QztpQkFDSTtnQkFDSixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2xDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNqRDtTQUNEO0lBQ0YsQ0FBQztJQUNNLG1CQUFtQjtRQUN6QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFTSxXQUFXO1FBQ2pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRTtZQUMxRSxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUsscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBVTtRQUMxQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDN0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFFN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7YUFDdEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFdEIsSUFB