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.

66 lines 14 kB
import { Component, EventEmitter, Input, Output } from '@angular/core'; import { FormControl, FormGroup } from '@angular/forms'; import { map } from 'rxjs/operators'; import { ComponentOutputStatus } from '../../normalizzazione/component-output-status'; import { ContattoDTO } from '../../models/contatto-dto'; import { MessageService } from '../../services/message.service'; export class ContattiComponent { constructor(msg) { this.msg = msg; this.done = new EventEmitter(); } ngOnInit() { // console.log('[ContattoDTO]', this.contatti); this.form = new FormGroup({}); if (this.recapiti$) { this.initContatto(); } const email = new FormControl({ value: this.contatti.email, disabled: false }); this.form.addControl('email', email); const pec = new FormControl({ value: this.contatti.pec, disabled: false }); this.form.addControl('pec', pec); const telefono = new FormControl({ value: this.contatti.telefono, disabled: false }); this.form.addControl('telefono', telefono); const changes$ = this.form.valueChanges.pipe(map(_ => { const contattoNew = new ContattoDTO(); contattoNew.email = email.value; contattoNew.pec = pec.value; contattoNew.telefono = telefono.value; return ComponentOutputStatus.of(this.form.valid, contattoNew); })); this.form.setValidators(form => { return (!form.get('pec').value && !form.get('email').value) ? { requiredMail: true } : null; }); this.subscription = changes$.subscribe(newContact => this.done.emit(newContact)); } initContatto() { this.listaEmail$ = this.recapiti$.pipe(map(r => r.filter(t => t.tipoRecapito.codice == "EMAIL"))); this.listaPec$ = this.recapiti$.pipe(map(r => r.filter(t => t.tipoRecapito.codice == "PEC"))); this.listaTelefono$ = this.recapiti$.pipe(map(r => r.filter(t => t.tipoRecapito.codice == "PHONE" || t.tipoRecapito.codice == "CELL"))); // console.log('[listaTelefono]', this.listaTelefono); } ngOnDestroy() { this.subscription.unsubscribe(); } ngAfterContentInit() { this.form.updateValueAndValidity({ emitEvent: true }); } } ContattiComponent.decorators = [ { type: Component, args: [{ selector: 'lib-contatti', template: "\t<form [formGroup]=\"form\">\r\n\t\t<div class=\"collapse-body mt-2\">\r\n\t\t\t<div class=\"row\">\r\n\t\t\t\t<div class=\"col-md-4\">\r\n\t\t\t\t\t<mat-form-field>\r\n\t\t\t\t\t\t<mat-label>{{'required' | traduzione}}{{'email-recapito' | traduzione}}</mat-label>\r\n\t\t\t\t\t\t<mat-select formControlName=\"email\">\r\n\t\t\t\t\t\t\t<mat-option [value]=\"null\">{{ 'seleziona' | traduzione }}</mat-option>\r\n\t\t\t\t\t\t\t<mat-option *ngFor=\"let item of listaEmail$ | async\" [value]=\"item.id\">\r\n\t\t\t\t\t\t\t\t{{ item.recapito}}\r\n\t\t\t\t\t\t\t</mat-option>\r\n\t\t\t\t\t\t</mat-select>\r\n\t\t\t\t\t\t<mat-error *ngIf=\"form.controls['email'].invalid\">\r\n\t\t\t\t\t\t\t{{msg.produceMessage('email', form.controls['email']) | traduzione}}\r\n\t\t\t\t\t\t</mat-error>\r\n\t\t\t\t\t\t<mat-hint *infoTip=\"'email-recapito'\"></mat-hint>\r\n\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"col-md-4\">\r\n\t\t\t\t\t<mat-form-field>\r\n\t\t\t\t\t\t<mat-label>{{'required' | traduzione}}{{'pec-recapito' | traduzione}}</mat-label>\r\n\t\t\t\t\t\t<mat-select formControlName=\"pec\">\r\n\t\t\t\t\t\t\t<mat-option [value]=\"null\"> {{ 'seleziona' | traduzione }} </mat-option>\r\n\t\t\t\t\t\t\t<mat-option *ngFor=\"let item of listaPec$ | async\" [value]=\"item.id\">\r\n\t\t\t\t\t\t\t\t{{ item.recapito}}\r\n\t\t\t\t\t\t\t</mat-option>\r\n\t\t\t\t\t\t</mat-select>\r\n\t\t\t\t\t\t<mat-error *ngIf=\"form.controls['pec'].invalid\">\r\n\t\t\t\t\t\t\t{{msg.produceMessage('email', form.controls['pec']) | traduzione }}\r\n\t\t\t\t\t\t</mat-error>\r\n\t\t\t\t\t\t<mat-hint *infoTip=\"'pec-recapito'\"></mat-hint>\r\n\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"col-md-4\">\r\n\t\t\t\t\t<mat-form-field>\r\n\t\t\t\t\t\t<mat-label>{{'telefono-recapito' | traduzione}}</mat-label>\r\n\t\t\t\t\t\t<mat-select formControlName=\"telefono\">\r\n\t\t\t\t\t\t\t<mat-option [value]=\"null\"> {{ 'seleziona' | traduzione }} </mat-option>\r\n\t\t\t\t\t\t\t<mat-option *ngFor=\"let item of listaTelefono$ | async\" [value]=\"item.id\">\r\n\t\t\t\t\t\t\t\t{{ item.recapito}}\r\n\t\t\t\t\t\t\t</mat-option>\r\n\t\t\t\t\t\t</mat-select>\r\n\t\t\t\t\t\t<mat-error *ngIf=\"form.controls['telefono'].invalid\">\r\n\t\t\t\t\t\t\t{{msg.produceMessage('tel', form.controls['telefono']) | traduzione }}\r\n\t\t\t\t\t\t</mat-error>\r\n\t\t\t\t\t\t<mat-hint *infoTip=\"'telefono-recapito'\"></mat-hint>\r\n\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<br><br>\r\n\t\t<div class=\"col-md-12\">\r\n\t\t\t<mat-error *ngIf=\"form.getError('requiredMail')\">\r\n\t\t\t\t{{msg.produceMessage('requiredMail', form) | traduzione }}\r\n\t\t\t</mat-error>\r\n\t\t</div>\r\n\t</form>\r\n", styles: [""] },] } ]; ContattiComponent.ctorParameters = () => [ { type: MessageService } ]; ContattiComponent.propDecorators = { recapiti$: [{ type: Input }], contatti: [{ type: Input }], done: [{ type: Output }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGF0dGkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1Byb2dldHRpL0RBRy9zb3JnZW50aS9naXRsYWItdGVybmkvY29tbW9uLWNvbXBvbmVudC1saWIvcHJvamVjdHMvcG9ydGFsLWNvbW1vbi1jb21wb25lbnQtbGliL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kZXBvc2l0aS9jb21tb24tY29tcG9uZW50L2NvbnRhdHRpL2NvbnRhdHRpLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFRaEUsTUFBTSxPQUFPLGlCQUFpQjtJQWtCN0IsWUFDUyxHQUFtQjtRQUFuQixRQUFHLEdBQUgsR0FBRyxDQUFnQjtRQVY1QixTQUFJLEdBQXFELElBQUksWUFBWSxFQUFzQyxDQUFDO0lBVWhGLENBQUM7SUFFakMsUUFBUTtRQUVQLCtDQUErQztRQUUvQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTlCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDcEI7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxR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Q0FBQztJQUVELFdBQVc7UUFDVixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxrQkFBa0I7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7OztZQXpGRCxTQUFTLFNBQUM7Z0JBQ1YsUUFBUSxFQUFFLGNBQWM7Z0JBQ3hCLGdzRkFBd0M7O2FBRXhDOzs7WUFQUSxjQUFjOzs7d0JBWXJCLEtBQUs7dUJBRUwsS0FBSzttQkFFTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50T3V0cHV0U3RhdHVzIH0gZnJvbSAnLi4vLi4vbm9ybWFsaXp6YXppb25lL2NvbXBvbmVudC1vdXRwdXQtc3RhdHVzJztcclxuaW1wb3J0IHsgQ29udGF0dG9EVE8gfSBmcm9tICcuLi8uLi9tb2RlbHMvY29udGF0dG8tZHRvJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZWNhcGl0byB9IGZyb20gJy4uLy4uL21vZGVscy9wb3J0YWxlL3JlY2FwaXRvJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbGliLWNvbnRhdHRpJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vY29udGF0dGkuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2NvbnRhdHRpLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udGF0dGlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50SW5pdCB7XHJcblxyXG5cdGZvcm06IEZvcm1Hcm91cDtcclxuXHJcblx0QElucHV0KCkgcmVjYXBpdGkkOiBPYnNlcnZhYmxlPEFycmF5PFJlY2FwaXRvPj47XHJcblxyXG5cdEBJbnB1dCgpIGNvbnRhdHRpOiBDb250YXR0b0RUTztcclxuXHJcblx0QE91dHB1dCgpXHJcblx0ZG9uZTogRXZlbnRFbWl0dGVyPENvbXBvbmVudE91dHB1dFN0YXR1czxDb250YXR0b0RUTz4+ID0gbmV3IEV2ZW50RW1pdHRlcjxDb21wb25lbnRPdXRwdXRTdGF0dXM8Q29udGF0dG9EVE8+PigpO1xyXG5cclxuXHRzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcblx0bGlzdGFFbWFpbCQ6IE9ic2VydmFibGU8QXJyYXk8UmVjYXBpdG8+PjtcclxuXHRsaXN0YVBlYyQ6IE9ic2VydmFibGU8QXJyYXk8UmVjYXBpdG8+PjtcclxuXHRsaXN0YVRlbGVmb25vJDogT2JzZXJ2YWJsZTxBcnJheTxSZWNhcGl0bz4+O1xyXG5cclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIG1zZzogTWVzc2FnZVNlcnZpY2UpIHsgfVxyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHJcblx0XHQvLyBjb25zb2xlLmxvZygnW0NvbnRhdHRvRFRPXScsIHRoaXMuY29udGF0dGkpO1xyXG5cclxuXHRcdHRoaXMuZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuXHRcdGlmICh0aGlzLnJlY2FwaXRpJCkge1xyXG5cdFx0XHR0aGlzLmluaXRDb250YXR0bygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGVtYWlsID0gbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IHRoaXMuY29udGF0dGkuZW1haWwsIGRpc2FibGVkOiBmYWxzZSB9KTtcclxuXHRcdHRoaXMuZm9ybS5hZGRDb250cm9sKCdlbWFpbCcsIGVtYWlsKTtcclxuXHJcblx0XHRjb25zdCBwZWMgPSBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogdGhpcy5jb250YXR0aS5wZWMsIGRpc2FibGVkOiBmYWxzZSB9KTtcclxuXHRcdHRoaXMuZm9ybS5hZGRDb250cm9sKCdwZWMnLCBwZWMpO1xyXG5cclxuXHRcdGNvbnN0IHRlbGVmb25vID0gbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IHRoaXMuY29udGF0dGkudGVsZWZvbm8sIGRpc2FibGVkOiBmYWxzZSB9KTtcclxuXHRcdHRoaXMuZm9ybS5hZGRDb250cm9sKCd0ZWxlZm9ubycsIHRlbGVmb25vKTtcclxuXHJcblx0XHRjb25zdCBjaGFuZ2VzJCA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMucGlwZShcclxuXHRcdFx0bWFwKF8gPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGNvbnRhdHRvTmV3ID0gbmV3IENvbnRhdHRvRFRPKCk7XHJcblx0XHRcdFx0Y29udGF0dG9OZXcuZW1haWwgPSBlbWFpbC52YWx1ZTtcclxuXHRcdFx0XHRjb250YXR0b05ldy5wZWMgPSBwZWMudmFsdWU7XHJcblx0XHRcdFx0Y29udGF0dG9OZXcudGVsZWZvbm8gPSB0ZWxlZm9uby52YWx1ZTtcclxuXHRcdFx0XHRyZXR1cm4gQ29tcG9uZW50T3V0cHV0U3RhdHVzLm9mKFxyXG5cdFx0XHRcdFx0dGhpcy5mb3JtLnZhbGlkLCBjb250YXR0b05ldyk7XHJcblx0XHRcdH0pKTtcclxuXHJcblx0XHR0aGlzLmZvcm0uc2V0VmFsaWRhdG9ycyhmb3JtID0+IHtcclxuXHRcdFx0cmV0dXJuICghZm9ybS5nZXQoJ3BlYycpLnZhbHVlICYmICFmb3JtLmdldCgnZW1haWwnKS52YWx1ZSkgP1xyXG5cdFx0XHRcdHsgcmVxdWlyZWRNYWlsOiB0cnVlIH0gOiBudWxsO1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0dGhpcy5zdWJzY3JpcHRpb24gPSBjaGFuZ2VzJC5zdWJzY3JpYmUobmV3Q29udGFjdCA9PiB0aGlzLmRvbmUuZW1pdChuZXdDb250YWN0KSk7XHJcblx0fVxyXG5cclxuXHRpbml0Q29udGF0dG8oKSB7XHJcblxyXG5cdFx0dGhpcy5saXN0YUVtYWlsJCA9IHRoaXMucmVjYXBpdGkkLnBpcGUoXHJcblx0XHRcdG1hcChyID0+IHIuZmlsdGVyKHQgPT4gdC50aXBvUmVjYXBpdG8uY29kaWNlID09IFwiRU1BSUxcIikpXHJcblx0XHQpO1xyXG5cclxuXHRcdHRoaXMubGlzdGFQZWMkID0gdGhpcy5yZWNhcGl0aSQucGlwZShcclxuXHRcdFx0bWFwKHIgPT4gci5maWx0ZXIodCA9PiB0LnRpcG9SZWNhcGl0by5jb2RpY2UgPT0gXCJQRUNcIikpXHJcblx0XHQpO1xyXG5cclxuXHRcdHRoaXMubGlzdGFUZWxlZm9ubyQgPSB0aGlzLnJlY2FwaXRpJC5waXBlKFxyXG5cdFx0XHRtYXAociA9PiByLmZpbHRlcihcclxuXHRcdFx0XHR0ID0+XHJcblx0XHRcdFx0XHR0LnRpcG9SZWNhcGl0by5jb2RpY2UgPT0gXCJQSE9ORVwiIHx8XHJcblx0XHRcdFx0XHR0LnRpcG9SZWNhcGl0by5jb2RpY2UgPT0gXCJDRUxMXCIpXHJcblx0XHRcdClcclxuXHRcdCk7XHJcblx0XHQvLyBjb25zb2xlLmxvZygnW2xpc3RhVGVsZWZvbm9dJywgdGhpcy5saXN0YVRlbGVmb25vKTtcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuXHR9XHJcblxyXG5cdG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMuZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG5cdH1cclxufVxyXG4iXX0=