Вы можете сделать так, чтобы клетка расширялась, используя чистый html css. Вы можете внедрить этот css в свой Angular и попробовать.
Я сделал первую ячейку расширяемой, остальные вы можете скопировать и повторить. Добавьте класс содержимого для y потомков <td>
Если вы хотите сделать это по клику, просто добавьте Eventlistner, который обновляет ваши классы.
<td mat-cell *matCellDef="let element" [hidden]="column.Hidden"
(mouseenter)="_mouseEnter($event, element, column.MouseEnter)"
(mouseleave)="_mouseLeave($event, element, column.MouseLeave)" class="
{{column.Classes}}">
<div *ngSwitchCase="CellType.TextArea" class="text-center content"> //added class
<app-textarea [(text)]="element[column.Value]" [title]="column.Title">
</app-textarea>
</div>
</td>
body,table{
font-family:verdana,arial,sans-serif;
font-size:12px;
border-collapse:collapse;
}
td,th{
padding:3px 3px;
margin:0px;
border:1px solid #BBB;
white-space:nowrap;
}
.content{
height:15px;
width:100px;
overflow:hidden;
text-overflow:ellipsis
}
.content:hover{
height:auto;
width:auto;
}
<table>
<tr>
<th>Column1</th>
<th>Column2</th>
<th>Column3</th>
</tr>
<tr>
<td><div class="content"><span class="hidden">Data1,1 first line - this is a kind-of long line
<br/>Data1,1 second line - this is a kind-of long line too
<br/>Data1,1 third line
<br/>Data1,1 fourth line</span>
</div>
</td>
<td>Data2,1</td>
<td>Data3,1</td>
</tr>
<tr>
<td>Data1,2</td>
<td>Data2,2</td>
<td>Data3,2</td>
</tr>
<tr>
<td>Data1,3</td>
<td>Data2,3</td>
<td>Data3,3</td>
</tr>
</table>