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