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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiZWxsYS1zZWRpLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9nZXR0aS9EQUcvc29yZ2VudGkvZ2l0bGFiLXRlcm5pL2NvbW1vbi1jb21wb25lbnQtbGliL3Byb2plY3RzL3BvcnRhbC1jb21tb24tY29tcG9uZW50LWxpYi9zcmMvIiwic291cmNlcyI6WyJsaWIvZGVwb3NpdGkvY29tbW9uLWNvbXBvbmVudC9wZXJzb25hLWdpdXJpZGljYS90YWJlbGxhLXNlZGkvdGFiZWxsYS1zZWRpLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFBUyxHQUFHLEVBQWEsR0FBRyxFQUFrQixNQUFNLGdCQUFnQixDQUFDO0FBRTVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBT3pGLE1BQU0sT0FBTyxvQkFBb0I7SUE2Qi9CLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBcEIxQyxvQkFBZSxHQUFZLElBQUksQ0FBQztRQU1oQyxxQkFBZ0IsR0FBYSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFJaEUsU0FBSSxHQUFxRCxJQUFJLFlBQVksRUFFdEUsQ0FBQztJQVEwQyxDQUFDO0lBRS9DLFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksY0FBYyxDQUFPLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFaEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2xELEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNYLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQy9ELE9BQU8scUJBQXFCLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdEUsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUM1QyxDQUFBO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSzthQUMxQixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ3pDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUMzQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDZixJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLENBQUM7WUFDUCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FDQSxDQUNGLENBQUM7UUFFSixnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFpQjtRQUNoQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUk7cUJBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNiLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7d0JBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3FCQUM1QjtnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtTQUNOO0lBRUgsQ0FBQzs7O1lBcEZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1Qixnd0dBQTRDOzthQUU3Qzs7O1lBWlEsaUJBQWlCOzs7b0JBY3ZCLEtBQUs7Z0NBRUwsS0FBSzt1QkFFTCxLQUFLOzhCQUdMLEtBQUs7bUJBVUwsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlbGF5LCBtYXAsIHN0YXJ0V2l0aCwgdGFwLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU2VkZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9wb3J0YWxlL3NlZGUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRPdXRwdXRTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9ub3JtYWxpenphemlvbmUvY29tcG9uZW50LW91dHB1dC1zdGF0dXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdGFiZWxsYS1zZWRpJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFiZWxsYS1zZWRpLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWJlbGxhLXNlZGkuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJlbGxhU2VkaUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KClcclxuICBzZWRpJDogT2JzZXJ2YWJsZTxBcnJheTxTZWRlPj47XHJcbiAgQElucHV0KClcclxuICBpZFNlZGVTZWxlemlvbmF0YTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0xhcmdlSGVhZGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgZGF0YVNvdXJjZSQ6IE9ic2VydmFibGU8TWF0VGFibGVEYXRhU291cmNlPFNlZGU+PjtcclxuICBzZWxlY3RlZDogRm9ybUNvbnRyb2w7XHJcbiAgZm9ybTogRm9ybUdyb3VwO1xyXG4gIHNlbGVjdGlvbjogU2VsZWN0aW9uTW9kZWw8U2VkZT47XHJcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbJ3RpcG8nLCAnaW5kaXJpenpvJywgJ3NlbGV6aW9uYSddO1xyXG4gIGFsaWRhemlvbmVlU2VkZTogYm9vbGVhbjtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZG9uZTogRXZlbnRFbWl0dGVyPENvbXBvbmVudE91dHB1dFN0YXR1czxBcnJheTxTZWRlPj4+ID0gbmV3IEV2ZW50RW1pdHRlcjxcclxuICAgIENvbXBvbmVudE91dHB1dFN0YXR1czxBcnJheTxTZWRlPj5cclxuICA+KCk7XHJcbiAgJHN1YlNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHZhbGlkYXppb25lZVNlZGU6IGJvb2xlYW47XHJcbiAgdmFsaWQ6IGJvb2xlYW47XHJcblxyXG5cclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWxpZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uTW9kZWw8U2VkZT4oZmFsc2UsIFtdKTtcclxuXHJcbiAgICB0aGlzLmZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogJycsIGRpc2FibGVkOiBmYWxzZSB9KTtcclxuICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCdzZWxlY3RlZCcsIHRoaXMuc2VsZWN0ZWQpO1xyXG5cclxuICAgIGNvbnN0IGNoYW5nZVNlbGVjdGlvbiQgPSB0aGlzLnNlbGVjdGlvbi5jaGFuZ2VkLnBpcGUoXHJcbiAgICAgIG1hcChjaGFuZ2UgPT4ge1xyXG4gICAgICAgIHRoaXMudmFsaWRhemlvbmVlU2VkZSA9IGNoYW5nZS5hZGRlZC5sZW5ndGggPiAwID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBDb21wb25lbnRPdXRwdXRTdGF0dXMub2YodGhpcy52YWxpZGF6aW9uZWVTZWRlLCBjaGFuZ2UuYWRkZWQpXHJcbiAgICAgIH0pLFxyXG4gICAgICB0YXAoXyA9PiBjb25zb2xlLmxvZyhcImNoYW5nZVNlbGVjdGlvblwiLCBfKSlcclxuICAgIClcclxuXHJcbiAgICB0aGlzLmRhdGFTb3VyY2UkID0gdGhpcy5zZWRpJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YXAoXyA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkLnNldFZhbHVlKCcnKTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgbWFwKHNlZGkgPT4gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZShzZWRpKSksXHJcbiAgICAgICAgdGFwKF8gPT4gY29uc29sZS5sb2coXCJkYXRhU291cmNlXCIsIF8uZGF0YSkpLFxyXG4gICAgICAgIHRhcChkYXRhU291cmNlID0+IHtcclxuICAgICAgICAgIHRoaXMuaWRTZWRlU2VsZXppb25hdGEgP1xyXG4gICAgICAgICAgICB0aGlzLmluaXRpYWxTZWxlY3Rpb24oZGF0YVNvdXJjZS5kYXRhKSA6XHJcbiAgICAgICAgICAgIG51bGw7XHJcbiAgICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuXHJcbiAgICBjaGFuZ2VTZWxlY3Rpb24kLnN1YnNjcmliZShvdXRwdXQgPT4gdGhpcy5kb25lLmVtaXQob3V0cHV0KSk7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsU2VsZWN0aW9uKHNlZGk6IEFycmF5PFNlZGU+KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pZFNlZGVTZWxlemlvbmF0YSkge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBzZWRpXHJcbiAgICAgICAgICAuZm9yRWFjaChyb3cgPT4ge1xyXG4gICAgICAgICAgICBpZiAocm93LmlkID09IHRoaXMuaWRTZWRlU2VsZXppb25hdGEpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3Qocm93KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0sIDApXHJcbiAgICB9XHJcblxyXG4gIH1cclxufVxyXG4iXX0=