Skip to content

Commit 859f44f

Browse files
committed
New TypedMatCellDef for strongly typed *matCellDef #12186
It is a drop-in replacement for `MatCellDef` with the additional input of `dataSource` that allows to strongly type the cell element. Usage: ```html <table mat-table [dataSource]="dataSource"> <ng-container matColumnDef="name"> <th *matHeaderCellDef mat-header-cell>Name</th> <td *matCellDef="let element; dataSource: dataSource" mat-cell> {{ element.name }} </td> </ng-container> </table> ```
1 parent e5e8658 commit 859f44f

File tree

58 files changed

+188
-162
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+188
-162
lines changed

client/app/admin/comments/comment/comment.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
import {NaturalErrorMessagePipe} from '@ecodev/natural';
2-
import {Component, inject, OnInit} from '@angular/core';
31
import {
42
NaturalAbstractDetail,
53
NaturalDetailHeaderComponent,
4+
NaturalErrorMessagePipe,
65
NaturalFixedButtonDetailComponent,
76
NaturalLinkableTabDirective,
87
NaturalSelectComponent,
98
NaturalSeoResolveData,
109
NaturalStampComponent,
1110
} from '@ecodev/natural';
11+
import {Component, inject, OnInit} from '@angular/core';
1212
import {PermissionsService} from '../../../shared/services/permissions.service';
1313
import {EventService} from '../../events/services/event.service';
1414
import {NewsService} from '../../newses/services/news.service';

client/app/admin/comments/comments/comments.component.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828

2929
<ng-container matColumnDef="description">
3030
<th *matHeaderCellDef mat-header-cell>Commentaire</th>
31-
<td *matCellDef="let element" mat-cell>
31+
<td *matCellDef="let element; dataSource: dataSource" mat-cell>
3232
<div class="nat-horizontal nat-align">
3333
<natural-table-button
3434
matTooltip="Éditer"
@@ -41,7 +41,7 @@
4141

4242
<ng-container matColumnDef="event">
4343
<th *matHeaderCellDef mat-header-cell mat-sort-header="event">Événement</th>
44-
<td *matCellDef="let element" mat-cell>
44+
<td *matCellDef="let element; dataSource: dataSource" mat-cell>
4545
@if (element.event) {
4646
<div class="nat-horizontal nat-align">
4747
<natural-table-button
@@ -56,7 +56,7 @@
5656

5757
<ng-container matColumnDef="news">
5858
<th *matHeaderCellDef mat-header-cell mat-sort-header="news">Actualité</th>
59-
<td *matCellDef="let element" mat-cell>
59+
<td *matCellDef="let element; dataSource: dataSource" mat-cell>
6060
@if (element.news) {
6161
<div class="nat-horizontal nat-align">
6262
<natural-table-button

client/app/admin/comments/comments/comments.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
NaturalColumnsPickerComponent,
66
NaturalSearchComponent,
77
NaturalTableButtonComponent,
8+
TypedMatCellDef,
89
} from '@ecodev/natural';
910
import {PermissionsService} from '../../../shared/services/permissions.service';
1011
import {CommentService} from '../services/comment.service';
@@ -14,7 +15,6 @@ import {MatTooltip} from '@angular/material/tooltip';
1415
import {MatSort, MatSortHeader} from '@angular/material/sort';
1516
import {
1617
MatCell,
17-
MatCellDef,
1818
MatColumnDef,
1919
MatHeaderCell,
2020
MatHeaderCellDef,
@@ -34,7 +34,7 @@ import {
3434
MatHeaderCellDef,
3535
MatHeaderRowDef,
3636
MatColumnDef,
37-
MatCellDef,
37+
TypedMatCellDef,
3838
MatRowDef,
3939
MatHeaderCell,
4040
MatCell,

client/app/admin/comments/services/comment.service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import {Injectable} from '@angular/core';
22
import {NaturalAbstractModelService} from '@ecodev/natural';
33
import {
4-
CommentQuery,
54
CommentInput,
5+
CommentQuery,
6+
CommentQueryVariables,
67
CommentsQuery,
78
CommentsQueryVariables,
8-
CommentQueryVariables,
99
CreateComment,
1010
CreateCommentVariables,
1111
DeleteComments,

client/app/admin/events/event/event.component.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
import {NaturalErrorMessagePipe} from '@ecodev/natural';
2-
import {Component, inject, OnInit} from '@angular/core';
3-
import {RouterLink} from '@angular/router';
41
import {
52
NaturalAbstractDetail,
63
NaturalDetailHeaderComponent,
4+
NaturalErrorMessagePipe,
75
NaturalFixedButtonDetailComponent,
86
NaturalIconDirective,
97
NaturalLinkableTabDirective,
108
NaturalSeoResolveData,
119
NaturalStampComponent,
1210
} from '@ecodev/natural';
11+
import {Component, inject, OnInit} from '@angular/core';
12+
import {RouterLink} from '@angular/router';
1313
import {PermissionsService} from '../../../shared/services/permissions.service';
1414
import {EventService} from '../services/event.service';
1515
import {MatDatepicker, MatDatepickerInput, MatDatepickerToggle} from '@angular/material/datepicker';

client/app/admin/events/events/events.component.html

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,14 @@
2727

2828
<ng-container matColumnDef="date">
2929
<th *matHeaderCellDef mat-header-cell mat-sort-header>Date</th>
30-
<td *matCellDef="let element" mat-cell>{{ element.date | date: 'dd.MM.y' }}</td>
30+
<td *matCellDef="let element; dataSource: dataSource" mat-cell>
31+
{{ element.date | date: 'dd.MM.y' }}
32+
</td>
3133
</ng-container>
3234

3335
<ng-container matColumnDef="name">
3436
<th *matHeaderCellDef mat-header-cell mat-sort-header="name">Nom</th>
35-
<td *matCellDef="let element" mat-cell>
37+
<td *matCellDef="let element; dataSource: dataSource" mat-cell>
3638
<div class="nat-horizontal nat-align">
3739
<natural-table-button
3840
matTooltip="Éditer"
@@ -45,12 +47,12 @@
4547

4648
<ng-container matColumnDef="place">
4749
<th *matHeaderCellDef mat-header-cell mat-sort-header="place">Lieu</th>
48-
<td *matCellDef="let element" mat-cell>{{ element.place }}</td>
50+
<td *matCellDef="let element; dataSource: dataSource" mat-cell>{{ element.place }}</td>
4951
</ng-container>
5052

5153
<ng-container matColumnDef="type">
5254
<th *matHeaderCellDef mat-header-cell mat-sort-header="type">Type</th>
53-
<td *matCellDef="let element" mat-cell>{{ element.type }}</td>
55+
<td *matCellDef="let element; dataSource: dataSource" mat-cell>{{ element.type }}</td>
5456
</ng-container>
5557
</table>
5658
</div>

client/app/admin/events/events/events.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
NaturalFixedButtonComponent,
77
NaturalSearchComponent,
88
NaturalTableButtonComponent,
9+
TypedMatCellDef,
910
} from '@ecodev/natural';
1011
import {PermissionsService} from '../../../shared/services/permissions.service';
1112
import {EventService} from '../services/event.service';
@@ -16,7 +17,6 @@ import {MatTooltip} from '@angular/material/tooltip';
1617
import {MatSort, MatSortHeader} from '@angular/material/sort';
1718
import {
1819
MatCell,
19-
MatCellDef,
2020
MatColumnDef,
2121
MatHeaderCell,
2222
MatHeaderCellDef,
@@ -39,7 +39,7 @@ import {AsyncPipe, DatePipe} from '@angular/common';
3939
MatHeaderCellDef,
4040
MatHeaderRowDef,
4141
MatColumnDef,
42-
MatCellDef,
42+
TypedMatCellDef,
4343
MatRowDef,
4444
MatHeaderCell,
4545
MatCell,

client/app/admin/events/services/event.service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ import {
55
CreateEventVariables,
66
DeleteEvents,
77
DeleteEventsVariables,
8-
EventQuery,
98
EventInput,
9+
EventQuery,
10+
EventQueryVariables,
1011
EventsQuery,
1112
EventsQueryVariables,
12-
EventQueryVariables,
1313
UpdateEvent,
1414
UpdateEventVariables,
1515
} from '../../../shared/generated-types';

client/app/admin/facilitator-documents/facilitator-document/facilitator-document.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
import {NaturalErrorMessagePipe} from '@ecodev/natural';
2-
import {Component, inject} from '@angular/core';
31
import {
42
NaturalAbstractDetail,
53
NaturalDetailHeaderComponent,
4+
NaturalErrorMessagePipe,
65
NaturalFileComponent,
76
NaturalFixedButtonDetailComponent,
87
NaturalIconDirective,
98
NaturalLinkableTabDirective,
109
NaturalSeoResolveData,
1110
NaturalStampComponent,
1211
} from '@ecodev/natural';
12+
import {Component, inject} from '@angular/core';
1313
import {FilesService} from '../../files/services/files.service';
1414
import {FacilitatorDocumentsService} from '../services/facilitator-documents.service';
1515
import {CreateFile} from '../../../shared/generated-types';

client/app/admin/facilitator-documents/facilitator-documents/facilitator-documents.component.html

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,9 @@
2222

2323
<ng-container matColumnDef="name">
2424
<th *matHeaderCellDef mat-header-cell mat-sort-header>Nom</th>
25-
<td *matCellDef="let element" mat-cell>
25+
<td *matCellDef="let element; dataSource: dataSource" mat-cell>
2626
<natural-table-button
2727
matTooltip="Éditer"
28-
[class]="!element.isActive ? 'inactive' : ''"
2928
[label]="element.name"
3029
[navigate]="['/admin/facilitator-document', element.id]"
3130
/>
@@ -34,14 +33,14 @@
3433

3534
<ng-container matColumnDef="category">
3635
<th *matHeaderCellDef mat-header-cell mat-sort-header>Rubrique</th>
37-
<td *matCellDef="let element" mat-cell>
36+
<td *matCellDef="let element; dataSource: dataSource" mat-cell>
3837
{{ element.category }}
3938
</td>
4039
</ng-container>
4140

4241
<ng-container matColumnDef="file">
4342
<th *matHeaderCellDef mat-header-cell mat-sort-header>Télécharger</th>
44-
<td *matCellDef="let element" mat-cell>
43+
<td *matCellDef="let element; dataSource: dataSource" mat-cell>
4544
@if (element.file) {
4645
<a target="_blank" [href]="`/api/file/${element.file.id}`">
4746
<mat-icon naturalIcon="download" />

0 commit comments

Comments
 (0)