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 13.6 kB
import { SelectionModel } from '@angular/cdk/collections'; import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core'; import { FormControl, FormGroup } from '@angular/forms'; import { MatTableDataSource } from '@angular/material/table'; import { map, tap } from 'rxjs/operators'; import { ComponentOutputStatus } from '../../../normalizzazione/component-output-status'; export class TabellaSediComponent { constructor(ref) { this.ref = ref; this.showLargeHeader = true; this.displayedColumns = ['tipo', 'indirizzo', 'seleziona']; this.done = new EventEmitter(); } ngOnInit() { this.valid = false; this.selection = new SelectionModel(false, []); this.form = new FormGroup({}); this.selected = new FormControl({ value: '', disabled: false }); this.form.addControl('selected', this.selected); const changeSelection$ = this.selection.changed.pipe(map(change => { this.validazioneeSede = change.added.length > 0 ? true : false; return ComponentOutputStatus.of(this.validazioneeSede, change.added); }), tap(_ => console.log("changeSelection", _))); this.dataSource$ = this.sedi$ .pipe(tap(_ => { this.selected.setValue(''); this.selection.clear(); }), map(sedi => new MatTableDataSource(sedi)), tap(_ => console.log("dataSource", _.data)), tap(dataSource => { this.idSedeSelezionata ? this.initialSelection(dataSource.data) : null; this.ref.detectChanges(); })); changeSelection$.subscribe(output => this.done.emit(output)); } initialSelection(sedi) { if (this.idSedeSelezionata) { setTimeout(() => { sedi .forEach(row => { if (row.id == this.idSedeSelezionata) { this.selection.select(row); } }); }, 0); } } } TabellaSediComponent.decorators = [ { type: Component, args: [{ selector: 'lib-tabella-sedi', template: "<ng-container *ngIf=\"dataSource$ | async as dataSource\" [formGroup]=\"form\">\r\n\r\n <h4 *ngIf=\"showLargeHeader\" class=\"border-bottom font-weight-bold mt-4 h5\"><info-tip-label label=\"sedi\"></info-tip-label></h4>\r\n\r\n <h5 *ngIf=\"!showLargeHeader\" class=\"border-bottom font-weight-bold mt-4\" style=\"font-family: 'Roboto', Helvetica Neue, Arial, Noto Sans, sans-serif !important;font-size: 1rem;\"><info-tip-label label=\"sedi\"></info-tip-label></h5>\r\n\r\n <mat-table *ngIf=\"dataSource.data.length > 0\" [dataSource]=\"dataSource\" class=\"mat-elevation-z8 mt-3 border\">\r\n\r\n <!-- Tipo Column -->\r\n <ng-container matColumnDef=\"tipo\">\r\n <mat-header-cell *matHeaderCellDef> {{'tipo' | traduzione}} </mat-header-cell>\r\n <mat-cell *matCellDef=\"let element\"> {{element.tipoSede.descrizione}} </mat-cell>\r\n <mat-hint *infoTip=\"'tipo'\"></mat-hint>\r\n </ng-container>\r\n\r\n <!-- Indirizzo Column -->\r\n <ng-container matColumnDef=\"indirizzo\">\r\n <mat-header-cell *matHeaderCellDef> {{'indirizzo' | traduzione}} </mat-header-cell>\r\n <mat-cell *matCellDef=\"let element\">\r\n <span *ngIf=\"!element?.indirizzo?.estero\"> {{element?.indirizzo?.indirizzo}}\r\n {{element?.indirizzo?.civico}} {{element?.indirizzo?.cap}} -\r\n {{element?.indirizzo?.comune?.denominazione}}\r\n {{element?.indirizzo?.provincia?.denominazione}}</span>\r\n <span *ngIf=\"element?.indirizzo?.estero\"> {{element?.indirizzo?.nazione?.denominazione}} -\r\n {{element?.indirizzo?.indirizzo}} </span>\r\n </mat-cell>\r\n <mat-hint *infoTip=\"'indirizzo'\"></mat-hint>\r\n </ng-container>\r\n\r\n <!-- Selezione Column -->\r\n <ng-container matColumnDef=\"seleziona\">\r\n <mat-header-cell *matHeaderCellDef> {{'seleziona' | traduzione}}\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"\r\n formControlName=\"selected\"\r\n [disabled]=\"disabled\">\r\n </mat-checkbox>\r\n </mat-cell>\r\n <mat-hint *infoTip=\"'seleziona'\"></mat-hint>\r\n </ng-container>\r\n\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\r\n <mat-row *matRowDef=\"let row; columns: displayedColumns;\"></mat-row>\r\n\r\n </mat-table>\r\n <ng-container *ngIf=\"dataSource.data.length > 0; else nessunaSede\">\r\n <div class=\"collapse-body mt-2\">\r\n <div class=\"col-md-12\">\r\n <mat-error *ngIf=\"!validazioneeSede\">\r\n {{'requiredSede' | traduzione }}\r\n </mat-error>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #nessunaSede>\r\n <mat-error>\r\n {{'nessunaSede' | traduzione }}\r\n </mat-error>\r\n </ng-template>\r\n\r\n</ng-container>\r\n", styles: [""] },] } ]; TabellaSediComponent.ctorParameters = () => [ { type: ChangeDetectorRef } ]; TabellaSediComponent.propDecorators = { sedi$: [{ type: Input }], idSedeSelezionata: [{ type: Input }], disabled: [{ type: Input }], showLargeHeader: [{ type: Input }], done: [{ type: Output }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiZWxsYS1zZWRpLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9nZXR0aS9EQUcvc29yZ2VudGkvZ2l0bGFiLXNvZnR3YXJlZmFjdG9yeS9jb21tb24tY29tcG9uZW50LWxpYi9wcm9qZWN0cy9wb3J0YWwtY29tbW9uLWNvbXBvbmVudC1saWIvc3JjLyIsInNvdXJjZXMiOlsibGliL2RlcG9zaXRpL2NvbW1vbi1jb21wb25lbnQvcGVyc29uYS1naXVyaWRpY2EvdGFiZWxsYS1zZWRpL3RhYmVsbGEtc2VkaS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RCxPQUFPLEVBQVMsR0FBRyxFQUFhLEdBQUcsRUFBa0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQU96RixNQUFNLE9BQU8sb0JBQW9CO0lBNkIvQixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXBCMUMsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFNaEMscUJBQWdCLEdBQWEsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBSWhFLFNBQUksR0FBcUQsSUFBSSxZQUFZLEVBRXRFLENBQUM7SUFRMEMsQ0FBQztJQUUvQyxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJ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L2Nkay9jb2xsZWN0aW9ucyc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWxheSwgbWFwLCBzdGFydFdpdGgsIHRhcCwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFNlZGUgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcG9ydGFsZS9zZWRlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50T3V0cHV0U3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vbm9ybWFsaXp6YXppb25lL2NvbXBvbmVudC1vdXRwdXQtc3RhdHVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRhYmVsbGEtc2VkaScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmVsbGEtc2VkaS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFiZWxsYS1zZWRpLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFiZWxsYVNlZGlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpXHJcbiAgc2VkaSQ6IE9ic2VydmFibGU8QXJyYXk8U2VkZT4+O1xyXG4gIEBJbnB1dCgpXHJcbiAgaWRTZWRlU2VsZXppb25hdGE6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIGRpc2FibGVkOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dMYXJnZUhlYWRlcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIGRhdGFTb3VyY2UkOiBPYnNlcnZhYmxlPE1hdFRhYmxlRGF0YVNvdXJjZTxTZWRlPj47XHJcbiAgc2VsZWN0ZWQ6IEZvcm1Db250cm9sO1xyXG4gIGZvcm06IEZvcm1Hcm91cDtcclxuICBzZWxlY3Rpb246IFNlbGVjdGlvbk1vZGVsPFNlZGU+O1xyXG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gWyd0aXBvJywgJ2luZGlyaXp6bycsICdzZWxlemlvbmEnXTtcclxuICBhbGlkYXppb25lZVNlZGU6IGJvb2xlYW47XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGRvbmU6IEV2ZW50RW1pdHRlcjxDb21wb25lbnRPdXRwdXRTdGF0dXM8QXJyYXk8U2VkZT4+PiA9IG5ldyBFdmVudEVtaXR0ZXI8XHJcbiAgICBDb21wb25lbnRPdXRwdXRTdGF0dXM8QXJyYXk8U2VkZT4+XHJcbiAgPigpO1xyXG4gICRzdWJTY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICB2YWxpZGF6aW9uZWVTZWRlOiBib29sZWFuO1xyXG4gIHZhbGlkOiBib29sZWFuO1xyXG5cclxuXHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsaWQgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbk1vZGVsPFNlZGU+KGZhbHNlLCBbXSk7XHJcblxyXG4gICAgdGhpcy5mb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkID0gbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6ICcnLCBkaXNhYmxlZDogZmFsc2UgfSk7XHJcbiAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgnc2VsZWN0ZWQnLCB0aGlzLnNlbGVjdGVkKTtcclxuXHJcbiAgICBjb25zdCBjaGFuZ2VTZWxlY3Rpb24kID0gdGhpcy5zZWxlY3Rpb24uY2hhbmdlZC5waXBlKFxyXG4gICAgICBtYXAoY2hhbmdlID0+IHtcclxuICAgICAgICB0aGlzLnZhbGlkYXppb25lZVNlZGUgPSBjaGFuZ2UuYWRkZWQubGVuZ3RoID4gMCA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICByZXR1cm4gQ29tcG9uZW50T3V0cHV0U3RhdHVzLm9mKHRoaXMudmFsaWRhemlvbmVlU2VkZSwgY2hhbmdlLmFkZGVkKVxyXG4gICAgICB9KSxcclxuICAgICAgdGFwKF8gPT4gY29uc29sZS5sb2coXCJjaGFuZ2VTZWxlY3Rpb25cIiwgXykpXHJcbiAgICApXHJcblxyXG4gICAgdGhpcy5kYXRhU291cmNlJCA9IHRoaXMuc2VkaSRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFwKF8gPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZC5zZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIG1hcChzZWRpID0+IG5ldyBNYXRUYWJsZURhdGFTb3VyY2Uoc2VkaSkpLFxyXG4gICAgICAgIHRhcChfID0+IGNvbnNvbGUubG9nKFwiZGF0YVNvdXJjZVwiLCBfLmRhdGEpKSxcclxuICAgICAgICB0YXAoZGF0YVNvdXJjZSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlkU2VkZVNlbGV6aW9uYXRhID9cclxuICAgICAgICAgICAgdGhpcy5pbml0aWFsU2VsZWN0aW9uKGRhdGFTb3VyY2UuZGF0YSkgOlxyXG4gICAgICAgICAgICBudWxsO1xyXG4gICAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICApXHJcbiAgICAgICk7XHJcblxyXG4gICAgY2hhbmdlU2VsZWN0aW9uJC5zdWJzY3JpYmUob3V0cHV0ID0+IHRoaXMuZG9uZS5lbWl0KG91dHB1dCkpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbFNlbGVjdGlvbihzZWRpOiBBcnJheTxTZWRlPik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaWRTZWRlU2VsZXppb25hdGEpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgc2VkaVxyXG4gICAgICAgICAgLmZvckVhY2gocm93ID0+IHtcclxuICAgICAgICAgICAgaWYgKHJvdy5pZCA9PSB0aGlzLmlkU2VkZVNlbGV6aW9uYXRhKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0KHJvdyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9LCAwKVxyXG4gICAgfVxyXG5cclxuICB9XHJcbn1cclxuIl19