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.

89 lines 14 kB
import { Component, EventEmitter, Input, Output } from '@angular/core'; import { FormControl, FormGroup } from '@angular/forms'; import { BehaviorSubject } from 'rxjs'; import { tap } from 'rxjs/operators'; import { StradaDTO } from '../../models/strada-dto'; import { ComponentOutputStatus } from '../../normalizzazione/component-output-status'; import { MessageService } from '../../services/message.service'; import { TerritorioService } from '../../services/territorio/territorio-service'; export class StradaComponent { constructor(msg, territorio) { this.msg = msg; this.territorio = territorio; this.done = new EventEmitter(); } ngOnInit() { this.form = new FormGroup({}); if (!this.strada) { this.initStrada(); } const stradaIndirizzo = new FormControl({ value: this.strada.inidirizzo, disabled: this.viewOnly }, c => { if (this.viewOnly) return {}; return String(c.value).trim().length > 0 ? {} : { required: true }; }); this.form.addControl('stradaIndirizzo', stradaIndirizzo); const stradaCivico = new FormControl({ value: this.strada.civico, disabled: this.viewOnly }, c => { if (this.viewOnly) return {}; return String(c.value).trim().length > 0 ? {} : { required: true }; }); this.form.addControl('stradaCivico', stradaCivico); const stradaOut = new StradaDTO; stradaOut.inidirizzo = stradaIndirizzo.value; stradaOut.civico = stradaCivico.value; this.changes$ = new BehaviorSubject(ComponentOutputStatus.of(false, stradaOut)); this.subScriptionChange = this.form.valueChanges.pipe(tap(valueChange => { const stradaOut = new StradaDTO(); stradaOut.inidirizzo = valueChange.stradaIndirizzo; stradaOut.civico = valueChange.stradaCivico; return this.changes$.next(ComponentOutputStatus.of( /* this.form.valid && */ stradaOut.inidirizzo != null // && stradaOut.tipoToponimo != null && stradaOut.civico != null, stradaOut)); })).subscribe(); this.subscription = this.changes$.subscribe(x => { this.done.emit(x); console.log("changes$", x); }); this.changes$.next(ComponentOutputStatus.of( /* this.form.valid && */ stradaOut.inidirizzo != null // && stradaOut.tipoToponimo != null && stradaOut.civico != null, stradaOut)); } initStrada() { this.strada = new StradaDTO(); } ngOnDestroy() { this.subscription.unsubscribe(); this.subScriptionChange.unsubscribe(); } ngAfterContentInit() { if (this.strada.inidirizzo != null && this.strada.tipoToponimo != null && this.strada.civico != null) { this.form.updateValueAndValidity({ emitEvent: true }); } } } StradaComponent.decorators = [ { type: Component, args: [{ selector: 'lib-strada', template: "<form [formGroup]=\"form\">\r\n\t<div class=\"row my-2\">\r\n\t\t<div class=\"col-md-8\">\r\n\t\t\t<mat-form-field>\r\n\t\t\t\t<input matInput placeholder=\"{{'required' | traduzione}}{{'indirizzo' | traduzione}}\"\r\n\t\t\t\t\tformControlName=\"stradaIndirizzo\">\r\n\t\t\t\t<mat-error *ngIf=\"form.touched && form.controls['stradaIndirizzo'].invalid\">\r\n\t\t\t\t\t{{msg.produceMessage('obbligatorio', form.controls[ 'stradaIndirizzo']) | traduzione}}\r\n\t\t\t\t</mat-error>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\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}}{{'civico' | traduzione}}\"\r\n\t\t\t\t\tformControlName=\"stradaCivico\">\r\n\t\t\t\t<mat-error *ngIf=\"form.touched && form.controls['stradaCivico'].invalid\">\r\n\t\t\t\t\t{{msg.produceMessage('obbligatorio', form.controls['stradaCivico']) | traduzione}}\r\n\t\t\t\t</mat-error>\r\n\t\t\t</mat-form-field>\r\n\t\t</div>\r\n\t</div>\r\n</form>", styles: [""] },] } ]; StradaComponent.ctorParameters = () => [ { type: MessageService }, { type: TerritorioService } ]; StradaComponent.propDecorators = { viewOnly: [{ type: Input }], strada: [{ type: Input }], done: [{ type: Output }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyYWRhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9nZXR0aS9EQUcvc29yZ2VudGkvZ2l0bGFiLXRlcm5pL2NvbW1vbi1jb21wb25lbnQtbGliL3Byb2plY3RzL3BvcnRhbC1jb21tb24tY29tcG9uZW50LWxpYi9zcmMvIiwic291cmNlcyI6WyJsaWIvZGVwb3NpdGkvY29tbW9uLWNvbXBvbmVudC9zdHJhZGEvc3RyYWRhLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQWMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUE0QixNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQU8sR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQU9qRixNQUFNLE9BQU8sZUFBZTtJQWtCM0IsWUFDUyxHQUFtQixFQUNuQixVQUE2QjtRQUQ3QixRQUFHLEdBQUgsR0FBRyxDQUFnQjtRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQVR0QyxTQUFJLEdBQW1ELElBQUksWUFBWSxFQUFvQyxDQUFDO0lBU2xFLENBQUM7SUFFM0MsUUFBUTtRQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDakIs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d0M7ZUFDckMsU0FBUyxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQ3ZDLENBQUM7SUFDSCxDQUFDO0lBQ0QsVUFBVTtRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxrQkFBa0I7UUFDakIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRTtZQUNyRyxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDdEQ7SUFDRixDQUFDOzs7WUEzRkQsU0FBUyxTQUFDO2dCQUNWLFFBQVEsRUFBRSxZQUFZO2dCQUN0QiwyK0JBQXNDOzthQUV0Qzs7O1lBUFEsY0FBYztZQUNkLGlCQUFpQjs7O3VCQVd4QixLQUFLO3FCQUVMLEtBQUs7bUJBSUwsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3RyYWRhRFRPIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3N0cmFkYS1kdG8nO1xyXG5pbXBvcnQgeyBDb21wb25lbnRPdXRwdXRTdGF0dXMgfSBmcm9tICcuLi8uLi9ub3JtYWxpenphemlvbmUvY29tcG9uZW50LW91dHB1dC1zdGF0dXMnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFRlcnJpdG9yaW9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGVycml0b3Jpby90ZXJyaXRvcmlvLXNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdsaWItc3RyYWRhJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vc3RyYWRhLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9zdHJhZGEuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdHJhZGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50SW5pdCB7XHJcblxyXG5cdGZvcm06IEZvcm1Hcm91cDtcclxuXHJcblx0QElucHV0KClcclxuXHR2aWV3T25seTogYm9vbGVhbjtcclxuXHRASW5wdXQoKVxyXG5cdHN0cmFkYTogU3RyYWRhRFRPO1xyXG5cdGR1Z3MkOiBPYnNlcnZhYmxlPEFycmF5PHN0cmluZz4+O1xyXG5cclxuXHRAT3V0cHV0KClcclxuXHRkb25lOiBFdmVudEVtaXR0ZXI8Q29tcG9uZW50T3V0cHV0U3RhdHVzPFN0cmFkYURUTz4+ID0gbmV3IEV2ZW50RW1pdHRlcjxDb21wb25lbnRPdXRwdXRTdGF0dXM8U3RyYWRhRFRPPj4oKTtcclxuXHJcblx0Y2hhbmdlcyQ6IEJlaGF2aW9yU3ViamVjdDxDb21wb25lbnRPdXRwdXRTdGF0dXM8U3RyYWRhRFRPPj5cclxuXHJcblx0c3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblx0c3ViU2NyaXB0aW9uQ2hhbmdlOiBTdWJzY3JpcHRpb247XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBtc2c6IE1lc3NhZ2VTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSB0ZXJyaXRvcmlvOiBUZXJyaXRvcmlvU2VydmljZSkgeyB9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0dGhpcy5mb3JtID0gbmV3IEZvcm1Hcm91cCh7fSlcclxuXHRcdGlmICghdGhpcy5zdHJhZGEpIHtcclxuXHRcdFx0dGhpcy5pbml0U3RyYWRhKCk7XHJcblx0XHR9XHJcblx0XHRjb25zdCBzdHJhZGFJbmRpcml6em8gPSBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogdGhpcy5zdHJhZGEuaW5pZGlyaXp6bywgZGlzYWJsZWQ6IHRoaXMudmlld09ubHkgfSwgYyA9PiB7XHJcblx0XHRcdGlmICh0aGlzLnZpZXdPbmx5KSByZXR1cm4ge307XHJcblx0XHRcdHJldHVybiBTdHJpbmcoYy52YWx1ZSkudHJpbSgpLmxlbmd0aCA+IDBcclxuXHRcdFx0XHQ/IHt9XHJcblx0XHRcdFx0OiB7IHJlcXVpcmVkOiB0cnVlIH07XHJcblx0XHR9KTtcclxuXHRcdHRoaXMuZm9ybS5hZGRDb250cm9sKCdzdHJhZGFJbmRpcml6em8nLCBzdHJhZGFJbmRpcml6em8pO1xyXG5cdFx0Y29uc3Qgc3RyYWRhQ2l2aWNvID0gbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IHRoaXMuc3RyYWRhLmNpdmljbywgZGlzYWJsZWQ6IHRoaXMudmlld09ubHkgfSwgYyA9PiB7XHJcblx0XHRcdGlmICh0aGlzLnZpZXdPbmx5KSByZXR1cm4ge307XHJcblx0XHRcdHJldHVybiBTdHJpbmcoYy52YWx1ZSkudHJpbSgpLmxlbmd0aCA+IDBcclxuXHRcdFx0XHQ/IHt9XHJcblx0XHRcdFx0OiB7IHJlcXVpcmVkOiB0cnVlIH07XHJcblx0XHR9KTtcclxuXHRcdHRoaXMuZm9ybS5hZGRDb250cm9sKCdzdHJhZGFDaXZpY28nLCBzdHJhZGFDaXZpY28pO1xyXG5cclxuXHRcdGNvbnN0IHN0cmFkYU91dCA9IG5ldyBTdHJhZGFEVE87XHJcblx0XHRzdHJhZGFPdXQuaW5pZGlyaXp6byA9IHN0cmFkYUluZGlyaXp6by52YWx1ZTtcclxuXHRcdHN0cmFkYU91dC5jaXZpY28gPSBzdHJhZGFDaXZpY28udmFsdWU7XHJcblx0XHR0aGlzLmNoYW5nZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb21wb25lbnRPdXRwdXRTdGF0dXM8U3RyYWRhRFRPPj4oQ29tcG9uZW50T3V0cHV0U3RhdHVzLm9mKGZhbHNlLCBzdHJhZGFPdXQpKTtcclxuXHJcblx0XHR0aGlzLnN1YlNjcmlwdGlvbkNoYW5nZSA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMucGlwZShcclxuXHRcdFx0dGFwKHZhbHVlQ2hhbmdlID0+IHtcclxuXHRcdFx0XHRjb25zdCBzdHJhZGFPdXQgPSBuZXcgU3RyYWRhRFRPKCk7XHJcblx0XHRcdFx0c3RyYWRhT3V0LmluaWRpcml6em8gPSB2YWx1ZUNoYW5nZS5zdHJhZGFJbmRpcml6em87XHJcblx0XHRcdFx0c3RyYWRhT3V0LmNpdmljbyA9IHZhbHVlQ2hhbmdlLnN0cmFkYUNpdmljbztcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5jaGFuZ2VzJC5uZXh0KENvbXBvbmVudE91dHB1dFN0YXR1cy5vZihcclxuXHRcdFx0XHRcdC8qIFx0dGhpcy5mb3JtLnZhbGlkICAmJiAqL1xyXG5cdFx0XHRcdFx0c3RyYWRhT3V0LmluaWRpcml6em8gIT0gbnVsbFxyXG5cdFx0XHRcdFx0Ly8gICAgJiYgIHN0cmFkYU91dC50aXBvVG9wb25pbW8gIT0gbnVsbFxyXG5cdFx0XHRcdFx0JiYgc3RyYWRhT3V0LmNpdmljbyAhPSBudWxsLCBzdHJhZGFPdXQpXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0fSlcclxuXHRcdCkuc3Vic2NyaWJlKCk7XHJcblxyXG5cdFx0dGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmNoYW5nZXMkLnN1YnNjcmliZSh4ID0+IHtcclxuXHRcdFx0dGhpcy5kb25lLmVtaXQoeClcclxuXHRcdFx0Y29uc29sZS5sb2coXCJjaGFuZ2VzJFwiLCB4KTtcclxuXHRcdH0pO1xyXG5cdFx0XHJcblx0XHR0aGlzLmNoYW5nZXMkLm5leHQoQ29tcG9uZW50T3V0cHV0U3RhdHVzLm9mKFxyXG5cdFx0XHQvKiBcdHRoaXMuZm9ybS52YWxpZCAgJiYgKi9cclxuXHRcdFx0c3RyYWRhT3V0LmluaWRpcml6em8gIT0gbnVsbFxyXG5cdFx0XHQvLyAgICAmJiAgc3RyYWRhT3V0LnRpcG9Ub3BvbmltbyAhPSBudWxsXHJcblx0XHRcdCYmIHN0cmFkYU91dC5jaXZpY28gIT0gbnVsbCwgc3RyYWRhT3V0KVxyXG5cdFx0KTtcclxuXHR9XHJcblx0aW5pdFN0cmFkYSgpIHtcclxuXHRcdHRoaXMuc3RyYWRhID0gbmV3IFN0cmFkYURUTygpO1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcblx0XHR0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG5cdFx0dGhpcy5zdWJTY3JpcHRpb25DaGFuZ2UudW5zdWJzY3JpYmUoKTtcclxuXHR9XHJcblxyXG5cdG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLnN0cmFkYS5pbmlkaXJpenpvICE9IG51bGwgJiYgdGhpcy5zdHJhZGEudGlwb1RvcG9uaW1vICE9IG51bGwgJiYgdGhpcy5zdHJhZGEuY2l2aWNvICE9IG51bGwpIHtcclxuXHRcdFx0dGhpcy5mb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcblx0XHR9XHJcblx0fVxyXG59Il19