import { animate, state, style, transition, trigger, } from '@angular/animations'; import { Component, Input, OnChanges, OnInit } from '@angular/core'; @Component({ selector: 'dks-time-per-tour-by-car', templateUrl: './time-per-tour-by-car.component.html', styleUrls: ['./time-per-tour-by-car.component.css'], animations: [ trigger('detailExpand', [ state('collapsed', style({ height: '0px', minHeight: '0' })), state('expanded', style({ height: '*' })), transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')), ]), ], standalone: false }) export class TimePerTourByCarComponent implements OnInit, OnChanges { @Input() columns: { id: string; title: string }[] = []; @Input() data: any[] = []; /** Columns displayed in the table. Columns IDs can be added, removed, or reordered. */ displayedColumns: string[] = []; expandedCarData = null; ngOnInit(): void { this.displayedColumns = this.columns.map(({ id }) => id); } ngOnChanges(): void { this.expandedCarData = null; } getSlotTitleByIndex(idx: number): string { return this.columns.find(({ id }) => id === `slot${idx}`)?.title ?? ''; } setExpandedCarData(carData: any): void { if(carData.carName !== 'Touren ohne Zuweisung') { this.expandedCarData = this.expandedCarData === carData ? null : carData; } } }