@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
JavaScript
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdoZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovUHJvZ2V0dGkvREFHL3NvcmdlbnRpL2dpdGxhYi10ZXJuaS9jb21tb24tY29tcG9uZW50LWxpYi9wcm9qZWN0cy9wb3J0YWwtY29tbW9uLWNvbXBvbmVudC1saWIvc3JjLyIsInNvdXJjZXMiOlsibGliL2RlcG9zaXRpL2NvbXBvbmVudHMvZGVsZWdoZS9kZWxlZ2hlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEUsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUE0QixPQUFPLEVBQU0sTUFBTSxNQUFNLENBQUM7QUFDN0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFhLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLHVCQUF1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