@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
JavaScript
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==