angular / angular/components

bug(MatTable): Vertical languages rotated and sticky columns

Aperta
#30,542 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
area: material/table P4
Lingua principale
TypeScript
Stelle
25k
Fork
6.8k
Merge medio
1g 8h
PR unite (30g)
91

Descrizione

### Is this a regression?

- [x] Yes, this behavior used to work in the previous version

### The previous version in which this bug was not present was

18

### Description

When there are multiple sticky columns and a column has the `writing-mode: vertical-lr` CSS rule applied (and assuming it is not the _last_ sticky column), the table does not calculate the width of the column correctly. It uses the default `horizontal-tb` mode to calculate the width and uses that instead, causing subsequent sticky columns to overlap with non-sticky columns and creates a blank space between the column with the `vertical-lr` rule and the next sticky column.

### Reproduction

StackBlitz link: https://stackblitz.com/edit/components-issue-starter-6mfsadjh?file=src%2Fmain.ts,package.json
Steps to reproduce:
1. First two columns are sticky
2. One non-sticky column has `width: 100%` to force column compression

### Expected Behavior

The second column should have a `left` value that matches the width of the first column.

### Actual Behavior

The second column uses unrotated column width as its `left` value

![Image](https://github.com/user-attachments/assets/aeff30fd-dec3-4aa3-b40b-4fba4534d0a3)

### Environment

- Angular: 19
- CDK/Material: 19
- Browser(s): Chrome
- Operating System (e.g. Windows, macOS, Ubuntu): MacOS

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia dalla riproduzione StackBlitz collegata e confronta le prime due colonne fissate quando la colonna fissata non ultima usa writing-mode: vertical-lr. Verifica il valore di left della seconda colonna rispetto alla larghezza renderizzata della prima colonna; il lavoro è concluso quando i valori corrispondono senza sovrapposizioni o spazio vuoto nella tabella riprodotta.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
angular, typescript
Ambito
frontend
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Specificata chiaramente
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.