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.

90 lines • 15.7 kB
import { Component, EventEmitter, Input, Output } from '@angular/core'; import { FormControl, FormGroup } from '@angular/forms'; import { map } from 'rxjs/operators'; import { PersonaGiuridicaDTO } from '../../../models/persona-giuridica-dto'; import { ComponentOutputStatus } from '../../../normalizzazione/component-output-status'; import { MessageService } from '../../../services/message.service'; import { ValidationService } from '../../../services/validation.service'; export class PgComponent { constructor(msg) { this.msg = msg; this.showRagioneSociale = true; this.showPartitaIVA = true; this.done = new EventEmitter(); } ngOnInit() { this.form = new FormGroup({}); if (this.resetForm) { this.subscription = this.resetForm.subscribe(val => val ? this.pulisciForm() : ""); } const codiceFiscale = new FormControl({ value: '', disabled: false }, //TOLTO controllo per dare la possiibilità di inserimento anche della ditta individuale // [ // // Validators.required, // ValidationService.pattern( // ValidationService.partitaIva, // "partitaIVAInvalida" // ), // ] [ValidationService.pattern(ValidationService._codiceFiscalePiva, "cfInvalidoFormalmente") ]); this.form.addControl("codiceFiscale", codiceFiscale); if (this.showRagioneSociale) { const ragioneSociale = new FormControl({ value: '', disabled: false }); this.form.addControl("ragioneSociale", ragioneSociale); } if (this.showPartitaIVA) { const partitaIVA = new FormControl({ value: '', disabled: false }, [ // Validators.required, ValidationService.pattern( // ValidationService.partitaIvaMaxLen2, // "partitaIVAMaxLen2" ValidationService.partitaIva, "partitaIVAInvalida"), ]); this.form.addControl("partitaIVA", partitaIVA); } const changes$ = this.form.valueChanges.pipe(map((_) => { var _a, _b; const newSocieta = new PersonaGiuridicaDTO(); newSocieta.codiceFiscale = this.form.controls["codiceFiscale"].value; newSocieta.ragioneSociale = (_a = this.form.controls["ragioneSociale"]) === null || _a === void 0 ? void 0 : _a.value; newSocieta.partitaIVA = (_b = this.form.controls["partitaIVA"]) === null || _b === void 0 ? void 0 : _b.value; return ComponentOutputStatus.of(this.form.valid, newSocieta); })); this.form.setValidators(form => { return (!form.get('codiceFiscale').value && (this.showPartitaIVA && !form.get('partitaIVA').value)) ? { requiredPG: true } : null; }); this.subscription = changes$.subscribe((_) => this.done.emit(_)); } ngOnDestroy() { if (this.subscription) { this.subscription.unsubscribe(); } } pulisciForm() { const keys = Object.keys(this.form.value); keys.forEach(key => { const control = this.form.get(key); control.setValue(""); }); } } PgComponent.decorators = [ { type: Component, args: [{ selector: 'lib-pg', template: "<div [formGroup]=\"form\">\r\n\t<div class=\"row\">\r\n\t\t<div class=\"col-md-4\">\r\n\t\t\t<mat-form-field>\r\n\t\t\t\t<!-- <input matInput placeholder=\"{{'required' | traduzione}} {{'codice-fiscale' | traduzione}}\" -->\r\n\t\t\t\t<input matInput placeholder=\"{{'codice-fiscale' | traduzione}}\"\r\n\t\t\t\t\tformControlName=\"codiceFiscale\" maxlength=\"16\" >\r\n\t\t\t\t<mat-error *ngIf=\"form.controls['codiceFiscale'].invalid\">\r\n\t\t\t\t\t{{msg.produceMessage('codiceFiscaleInvalido', form.controls[ 'codiceFiscale']) | traduzione }}\r\n\t\t\t\t</mat-error>\r\n\t\t\t\t<mat-hint *infoTip=\"'codice-fiscale'\"></mat-hint>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t\t<div class=\"col-md-4\" *ngIf=\"showRagioneSociale\">\r\n <mat-form-field>\r\n\t\t\t\t<!-- <input matInput placeholder=\"{{'required' | traduzione}}{{'ragione-sociale' | traduzione}}\" -->\r\n\t\t\t\t<input matInput placeholder=\"{{'ragione-sociale' | traduzione}}\"\r\n\t\t\t\t\tformControlName=\"ragioneSociale\">\r\n\t\t\t\t<mat-error *ngIf=\"form.controls['ragioneSociale'].invalid\">\r\n\t\t\t\t\t{{msg.produceMessage('obbligatorio', form.controls['ragioneSociale']) | traduzione }}\r\n\t\t\t\t</mat-error>\r\n\t\t\t\t<mat-hint *infoTip=\"'ragione-sociale'\"></mat-hint>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t\t<div class=\"col-md-4\" *ngIf=\"showPartitaIVA\">\r\n\t\t\t<mat-form-field>\r\n\t\t\t\t<!-- <input matInput placeholder=\"{{'required' | traduzione}}{{'partita-iva' | traduzione}}\" -->\r\n\t\t\t\t<input matInput placeholder=\"{{'partita-iva' | traduzione}}\"\r\n\t\t\t\t\tformControlName=\"partitaIVA\">\r\n\t\t\t\t<mat-error *ngIf=\"form.controls['partitaIVA'].invalid\">\r\n\t\t\t\t\t{{msg.produceMessage('partitaIVAInvalida', form.controls['partitaIVA']) | traduzione }}\r\n\t\t\t\t\t<!-- {{msg.produceMessage('partitaIVAMaxLen2', form.controls['partitaIVA']) | traduzione }} -->\r\n\t\t\t\t</mat-error>\r\n\t\t\t\t<mat-hint *infoTip=\"'partita-iva'\"></mat-hint>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n <div class=\"col-md-12\">\r\n <mat-error *ngIf=\"form.getError('requiredPG')\">\r\n {{msg.produceMessage('requiredPG', form) | traduzione }}\r\n </mat-error>\r\n </div>\r\n\t</div>\r\n</div>\r\n", styles: [""] },] } ]; PgComponent.ctorParameters = () => [ { type: MessageService } ]; PgComponent.propDecorators = { resetForm: [{ type: Input }], showRagioneSociale: [{ type: Input }], showPartitaIVA: [{ type: Input }], done: [{ type: Output }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1Byb2dldHRpL0RBRy9zb3JnZW50aS9naXRsYWItdGVybmkvY29tbW9uLWNvbXBvbmVudC1saWIvcHJvamVjdHMvcG9ydGFsLWNvbW1vbi1jb21wb25lbnQtbGliL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kZXBvc2l0aS9jb21tb24tY29tcG9uZW50L3JpY2VyY2EtcGcvcGcvcGcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBa0IsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXZFLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUN2RixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDakUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFPdkUsTUFBTSxPQUFPLFdBQVc7SUFtQnZCLFlBQW1CLEdBQW1CO1FBQW5CLFFBQUcsR0FBSCxHQUFHLENBQWdCO1FBWHRDLHVCQUFrQixHQUFZLElBQUksQ0FBQztRQUduQyxtQkFBYyxHQUFZLElBQUksQ0FBQztRQUcvQixTQUFJLEdBQTZELElBQUksWUFBWSxFQUE4QyxDQUFDO0lBTWhJLENBQUM7SUFFRCxRQUFRO1FBRVAsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU5QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMs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LElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxXQUFXO1FBQ1YsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDaEM7SUFDRixDQUFDO0lBRUQsV0FBVztRQUNWLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2xCLE1BQU0sT0FBTyxHQUFvQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwRCxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs7O1lBbEhELFNBQVMsU0FBQztnQkFDVixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsK3VFQUFrQzs7YUFFbEM7OztZQVBPLGNBQWM7Ozt3QkFZcEIsS0FBSztpQ0FHTCxLQUFLOzZCQUdMLEtBQUs7bUJBR0wsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge1BlcnNvbmFHaXVyaWRpY2FEVE99IGZyb20gJy4uLy4uLy4uL21vZGVscy9wZXJzb25hLWdpdXJpZGljYS1kdG8nO1xyXG5pbXBvcnQge0NvbXBvbmVudE91dHB1dFN0YXR1c30gZnJvbSAnLi4vLi4vLi4vbm9ybWFsaXp6YXppb25lL2NvbXBvbmVudC1vdXRwdXQtc3RhdHVzJztcclxuaW1wb3J0IHtNZXNzYWdlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWVzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtWYWxpZGF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdmFsaWRhdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbGliLXBnJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vcGcuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL3BnLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG5cdGZvcm06IEZvcm1Hcm91cDtcclxuXHJcblx0QElucHV0KClcclxuXHRyZXNldEZvcm06IFN1YmplY3Q8Ym9vbGVhbj47XHJcblxyXG5cdEBJbnB1dCgpXHJcblx0c2hvd1JhZ2lvbmVTb2NpYWxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcblx0QElucHV0KClcclxuXHRzaG93UGFydGl0YUlWQTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG5cdEBPdXRwdXQoKVxyXG5cdGRvbmU6IEV2ZW50RW1pdHRlcjxDb21wb25lbnRPdXRwdXRTdGF0dXM8UGVyc29uYUdpdXJpZGljYURUTz4+ID0gbmV3IEV2ZW50RW1pdHRlcjxDb21wb25lbnRPdXRwdXRTdGF0dXM8UGVyc29uYUdpdXJpZGljYURUTz4+KCk7XHJcblxyXG5cdHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuXHJcblx0Y29uc3RydWN0b3IocHVibGljIG1zZzogTWVzc2FnZVNlcnZpY2UpIHtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuXHRcdHRoaXMuZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuXHRcdGlmICh0aGlzLnJlc2V0Rm9ybSkge1xyXG5cdFx0XHR0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMucmVzZXRGb3JtLnN1YnNjcmliZSh2YWwgPT5cclxuXHRcdFx0XHR2YWwgPyB0aGlzLnB1bGlzY2lGb3JtKCkgOiBcIlwiKTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBjb2RpY2VGaXNjYWxlID0gbmV3IEZvcm1Db250cm9sKFxyXG5cdFx0XHR7dmFsdWU6ICcnLCBkaXNhYmxlZDogZmFsc2V9LFxyXG5cdFx0XHQvL1RPTFRPIGNvbnRyb2xsbyBwZXIgZGFyZSBsYSBwb3NzaWliaWxpdMOgIGRpIGluc2VyaW1lbnRvIGFuY2hlIGRlbGxhIGRpdHRhIGluZGl2aWR1YWxlXHJcblx0XHRcdC8vIFtcclxuXHRcdFx0Ly8gXHQvLyBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG5cdFx0XHQvLyBcdFZhbGlkYXRpb25TZXJ2aWNlLnBhdHRlcm4oXHJcblx0XHRcdC8vIFx0XHRWYWxpZGF0aW9uU2VydmljZS5wYXJ0aXRhSXZhLFxyXG5cdFx0XHQvLyBcdFx0XCJwYXJ0aXRhSVZBSW52YWxpZGFcIlxyXG5cdFx0XHQvLyBcdCksXHJcblx0XHRcdC8vIF1cclxuXHRcdFx0W1ZhbGlkYXRpb25TZXJ2aWNlLnBhdHRlcm4oXHJcblx0XHRcdFx0XHRWYWxpZGF0aW9uU2VydmljZS5fY29kaWNlRmlzY2FsZVBpdmEsXHJcblx0XHRcdFx0XHRcImNmSW52YWxpZG9Gb3JtYWxtZW50ZVwiXHJcblx0XHRcdFx0KVxyXG5cdFx0XHRdXHJcblx0XHQpO1xyXG5cdFx0dGhpcy5mb3JtLmFkZENvbnRyb2woXCJjb2RpY2VGaXNjYWxlXCIsIGNvZGljZUZpc2NhbGUpO1xyXG5cclxuXHRcdGlmICh0aGlzLnNob3dSYWdpb25lU29jaWFsZSkge1xyXG5cdFx0XHRjb25zdCByYWdpb25lU29jaWFsZSA9IG5ldyBGb3JtQ29udHJvbChcclxuXHRcdFx0XHR7dmFsdWU6ICcnLCBkaXNhYmxlZDogZmFsc2V9LFxyXG5cdFx0XHRcdC8vIFtcclxuXHRcdFx0XHQvLyBcdFZhbGlkYXRvcnMucmVxdWlyZWRcclxuXHRcdFx0XHQvLyBdXHJcblx0XHRcdCk7XHJcblxyXG5cdFx0XHR0aGlzLmZvcm0uYWRkQ29udHJvbChcInJhZ2lvbmVTb2NpYWxlXCIsIHJhZ2lvbmVTb2NpYWxlKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5zaG93UGFydGl0YUlWQSkge1xyXG5cdFx0XHRjb25zdCBwYXJ0aXRhSVZBID0gbmV3IEZvcm1Db250cm9sKFxyXG5cdFx0XHRcdHt2YWx1ZTogJycsIGRpc2FibGVkOiBmYWxzZX0sXHJcblx0XHRcdFx0W1xyXG5cdFx0XHRcdFx0Ly8gVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuXHRcdFx0XHRcdFZhbGlkYXRpb25TZXJ2aWNlLnBhdHRlcm4oXHJcblx0XHRcdFx0XHRcdC8vIFZhbGlkYXRpb25TZXJ2aWNlLnBhcnRpdGFJdmFNYXhMZW4yLFxyXG5cdFx0XHRcdFx0XHQvLyBcInBhcnRpdGFJVkFNYXhMZW4yXCJcclxuXHRcdFx0XHRcdFx0VmFsaWRhdGlvblNlcnZpY2UucGFydGl0YUl2YSxcclxuXHRcdFx0XHRcdFx0XCJwYXJ0aXRhSVZBSW52YWxpZGFcIlxyXG5cdFx0XHRcdFx0KSxcclxuXHRcdFx0XHRdXHJcblx0XHRcdCk7XHJcblx0XHRcdHRoaXMuZm9ybS5hZGRDb250cm9sKFwicGFydGl0YUlWQVwiLCBwYXJ0aXRhSVZBKTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBjaGFuZ2VzJCA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMucGlwZShcclxuXHRcdFx0bWFwKChfKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgbmV3U29jaWV0YSA9IG5ldyBQZXJzb25hR2l1cmlkaWNhRFRPKCk7XHJcblx0XHRcdFx0bmV3U29jaWV0YS5jb2RpY2VGaXNjYWxlID0gdGhpcy5mb3JtLmNvbnRyb2xzW1wiY29kaWNlRmlzY2FsZVwiXS52YWx1ZTtcclxuXHRcdFx0XHRuZXdTb2NpZXRhLnJhZ2lvbmVTb2NpYWxlID0gdGhpcy5mb3JtLmNvbnRyb2xzW1wicmFnaW9uZVNvY2lhbGVcIl0/LnZhbHVlO1xyXG5cdFx0XHRcdG5ld1NvY2lldGEucGFydGl0YUlWQSA9IHRoaXMuZm9ybS5jb250cm9sc1tcInBhcnRpdGFJVkFcIl0/LnZhbHVlO1xyXG5cdFx0XHRcdHJldHVybiBDb21wb25lbnRPdXRwdXRTdGF0dXMub2YodGhpcy5mb3JtLnZhbGlkLCBuZXdTb2NpZXRhKTtcclxuXHRcdFx0fSlcclxuXHRcdCk7XHJcblxyXG5cdFx0dGhpcy5mb3JtLnNldFZhbGlkYXRvcnMoZm9ybSA9PiB7XHJcblx0XHRcdHJldHVybiAoXHJcblx0XHRcdFx0IWZvcm0uZ2V0KCdjb2RpY2VGaXNjYWxlJykudmFsdWUgJiYgKHRoaXMuc2hvd1BhcnRpdGFJVkEgJiYgIWZvcm0uZ2V0KCdwYXJ0aXRhSVZBJykudmFsdWUpXHJcblx0XHRcdCkgP1xyXG5cdFx0XHRcdHtyZXF1aXJlZFBHOiB0cnVlfVxyXG5cdFx0XHRcdDogbnVsbDtcclxuXHRcdH0pO1xyXG5cclxuXHRcdHRoaXMuc3Vic2NyaXB0aW9uID0gY2hhbmdlcyQuc3Vic2NyaWJlKChfKSA9PiB0aGlzLmRvbmUuZW1pdChfKSk7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xyXG5cdFx0XHR0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHVsaXNjaUZvcm0oKSB7XHJcblx0XHRjb25zdCBrZXlzID0gT2JqZWN0LmtleXModGhpcy5mb3JtLnZhbHVlKTtcclxuXHRcdGtleXMuZm9yRWFjaChrZXkgPT4ge1xyXG5cdFx0XHRjb25zdCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KGtleSk7XHJcblx0XHRcdGNvbnRyb2wuc2V0VmFsdWUoXCJcIik7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG59XHJcbiJdfQ==