/* eslint-disable @typescript-eslint/no-unused-vars */ import { CommonModule } from '@angular/common'; import { Component, ViewChild } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatCardModule } from '@angular/material/card'; import { MatIconModule } from '@angular/material/icon'; import { MatInputModule } from '@angular/material/input'; import { MatMenuModule } from '@angular/material/menu'; import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator'; import { MatSort, MatSortModule } from '@angular/material/sort'; import { MatTableDataSource, MatTableModule } from '@angular/material/table'; import { MatTabsModule } from '@angular/material/tabs'; import { RouterLink, RouterOutlet } from '@angular/router'; import { MatChipsModule } from '@angular/material/chips'; import { ChargeDialogComponent } from './charge-dialog/charge-dialog.component'; import { MatDialog } from '@angular/material/dialog'; export interface Element { description: string; montant: string; charges: string; date: string; status: string; } const ELEMENT_DATA: Element[] = [ { description: 'Barnoin test', montant: '100 000 XOF', charges: 'test', date: '2023-01-01', status: 'Active', }, { description: 'Another description', montant: '50 000 XOF', charges: 'Example charges', date: '2024-06-15', status: 'Inactive', }, { description: 'Barnoin test', montant: '100 000 XOF', charges: 'test', date: '2023-01-01', status: 'Active', }, { description: 'Another description', montant: '50 000 XOF', charges: 'Example charges', date: '2024-06-15', status: 'Inactive', }, { description: 'Barnoin test', montant: '100 000 XOF', charges: 'test', date: '2023-01-01', status: 'Active', }, { description: 'Another description', montant: '50 000 XOF', charges: 'Example charges', date: '2024-06-15', status: 'Active', }, { description: 'Barnoin test', montant: '100 000 XOF', charges: 'test', date: '2023-01-01', status: 'Active', }, { description: 'Another description', montant: '50 000 XOF', charges: 'Example charges', date: '2024-06-15', status: 'Inactive', }, { description: 'Barnoin test', montant: '100 000 XOF', charges: 'test', date: '2023-01-01', status: 'Active', }, { description: 'Another description', montant: '50 000 XOF', charges: 'Example charges', date: '2024-06-15', status: 'Inactive', }, { description: 'Barnoin test', montant: '100 000 XOF', charges: 'test', date: '2023-01-01', status: 'Active', }, { description: 'Another description', montant: '50 000 XOF', charges: 'Example charges', date: '2024-06-15', status: 'Active', }, ]; @Component({ selector: 'bgui-charges', standalone: true, imports: [ RouterLink, MatCardModule, CommonModule, MatButtonModule, MatIconModule, MatTabsModule, MatTableModule, MatPaginatorModule, MatInputModule, MatMenuModule, MatSortModule, RouterOutlet, MatChipsModule, ], templateUrl: './charges.component.html', styleUrl: './charges.component.scss', }) export class ChargesComponent { displayedColumns: string[] = [ 'charges', 'montant', 'description', 'date', 'status', 'actions', ]; dataSource = new MatTableDataSource(ELEMENT_DATA); ngOnInit() { console.log(this.dataSource); } constructor(private dialog: MatDialog) {} @ViewChild(MatPaginator) paginator!: MatPaginator; @ViewChild(MatSort) sort!: MatSort; ngAfterViewInit() { this.dataSource.paginator = this.paginator; this.dataSource.sort = this.sort; } applyFilter(event: Event) { const filterValue = (event.target as HTMLInputElement).value; this.dataSource.filter = filterValue.trim().toLowerCase(); } editItem(element: Element) { // Implémentez la logique pour éditer un élément console.log('Editing item', element); } deleteItem(element: Element) { // Implémentez la logique pour supprimer un élément console.log('Deleting item', element); } inviteCollaborator(element: Element) { // Implémentez la logique pour inviter un collaborateur console.log('Inviting collaborator for', element); } public openDialog() { // eslint-disable-next-line @typescript-eslint/no-unused-vars const dialogRef = this.dialog.open(ChargeDialogComponent, { width: '800px', height: '1000px', }); } }