From 4c21cb4ba7d14cca1b8dc7bd48e69ff718317a95 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Mon, 19 Aug 2024 11:48:45 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20Zeilen-Erweiterungsfunktion=20zur=20Env?= =?UTF-8?q?elopeTableComponent=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../envelope-table.component.html | 44 +++++++++++++++++-- .../envelope-table.component.scss | 31 +++++++++++++ .../envelope-table.component.ts | 21 ++++++++- 3 files changed, 91 insertions(+), 5 deletions(-) diff --git a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/components/envelope-table/envelope-table.component.html b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/components/envelope-table/envelope-table.component.html index 0560d544..f2d68c2d 100644 --- a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/components/envelope-table/envelope-table.component.html +++ b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/components/envelope-table/envelope-table.component.html @@ -1,10 +1,48 @@ - + @for (colId of displayedColumns; track colId) { + + } - - + + + + + + + + + + + + + +
{{schema[colId].header}} {{schema[colId].field(element)}}
  + + +
+
+
{{"element.position"}}
+
{{"element.symbol"}}
+
{{"element.name"}}
+
{{"element.weight"}}
+
+
+ {{"element.description"}} + -- Wikipedia +
+
+
\ No newline at end of file diff --git a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/components/envelope-table/envelope-table.component.scss b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/components/envelope-table/envelope-table.component.scss index e69de29b..19d1304d 100644 --- a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/components/envelope-table/envelope-table.component.scss +++ b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/components/envelope-table/envelope-table.component.scss @@ -0,0 +1,31 @@ +.example-element-row td { + border-bottom-width: 0; + } + + .example-element-detail { + overflow: hidden; + display: flex; + } + + .example-element-diagram { + min-width: 80px; + border: 2px solid black; + padding: 8px; + font-weight: lighter; + margin: 8px 0; + height: 104px; + } + + .example-element-symbol { + font-weight: bold; + font-size: 40px; + line-height: normal; + } + + .example-element-description { + padding: 16px; + } + + .example-element-description-attribution { + opacity: 0.5; + } \ No newline at end of file diff --git a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/components/envelope-table/envelope-table.component.ts b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/components/envelope-table/envelope-table.component.ts index dc323e40..aa6a9ede 100644 --- a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/components/envelope-table/envelope-table.component.ts +++ b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/components/envelope-table/envelope-table.component.ts @@ -2,12 +2,22 @@ import { Component, ViewChild } from '@angular/core'; import { EnvelopeReceiverService } from '../../services/envelope-receiver.service'; import { MatTable, MatTableModule } from '@angular/material/table'; import { CommonModule } from '@angular/common' +import {MatIconModule} from '@angular/material/icon'; +import {MatButtonModule} from '@angular/material/button'; +import {animate, state, style, transition, trigger} from '@angular/animations'; @Component({ selector: 'app-envelope-table', standalone: true, - imports: [MatTableModule, CommonModule], + imports: [MatTableModule, CommonModule, MatTableModule, MatButtonModule, MatIconModule], templateUrl: './envelope-table.component.html', + animations: [ + trigger('detailExpand', [ + state('collapsed,void', style({height: '0px', minHeight: '0'})), + state('expanded', style({height: '*'})), + transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')), + ]), + ], styleUrl: './envelope-table.component.scss' }) export class EnvelopeTableComponent { @@ -15,7 +25,8 @@ export class EnvelopeTableComponent { data: Array = [] public displayedColumns: string[] = ['title', 'status', 'type', 'privateMessage', 'addedWhen']; - + columnsToDisplayWithExpand = [...this.displayedColumns, 'expand']; + schema: any = { 'title': { header: 'Title', @@ -39,6 +50,8 @@ export class EnvelopeTableComponent { }, } + expandedElement: any | null; + @ViewChild(MatTable) table!: MatTable; constructor(private erService: EnvelopeReceiverService) { } @@ -50,4 +63,8 @@ export class EnvelopeTableComponent { public updateTable() { this.table.renderRows(); } + + isExpandedRow(index: number, row: any): boolean { + return (row?.envelopeId === this.expandedElement?.envelopeId) && (row?.receiverId === this.expandedElement?.receiverId); + } } \ No newline at end of file