enhancement
major
minor
defect
critical
major
minor
minor
#30214
Ebene anzeigen: Tooltips lassen die Zeilenumbrüche ihres Textes weg (.tl-tooltip__body hat „white-space: normal“)
In the React view layer (tl-layout-view 8.0.0-alpha12.817), a tooltip whose text contains line breaks shows them as spaces: the tooltip body is styled .tl-tooltip__body { white-space: normal; }, so paragraphs separated by an empty line run together.
Reproduction: a table column with a tooltip expression returning a text with paragraphs, e.g.
<column name="name"> <tooltip>"First paragraph.\n\nSecond paragraph."</tooltip> </column>
Hovering the cell shows "First paragraph. Second paragraph." on one line. The same text displayed in a form (e.g. as a text field with multi-line rendering) keeps its paragraphs.
Expected: the tooltip keeps the line breaks of its text (white-space: pre-line on .tl-tooltip__body), as the text is plain text, not HTML.
Workaround in the E-Home application: .tl-tooltip__body { white-space: pre-line; } in the app's stylesheet.
Lösung
Ein Tooltip mit reinem Text behält die Zeilenumbrüche seines Textes: ein \n ist ein Umbruch, eine Leerzeile trennt Absätze (wie bei tl-text). Ein Tooltip mit erlaubtem HTML vom Server bricht weiter nach seinem Markup um; Umbrüche im HTML-Quelltext werden dort nicht sichtbar.
- Tooltip einer Tabellenspalte (<column><tooltip>) und alle anderen Tooltips aus reinem Text: Der Textkörper trägt im Design-System die Variante tl-tooltip__body--text mit white-space: pre-line; der HTML-Körper behält white-space: normal.
- Tooltip einer Anzeige per Ausdruck (<display> mit <tooltip>, z. B. in der Knotenspalte einer Baumtabelle): Dieser Text wird als HTML zum Client gesendet (ResourceProvider.getTooltip() liefert HTML). ResourceDisplayByExpression schreibt deshalb nach dem Escapen für jeden Zeilenumbruch des Textes ein <br />.
Der Workaround im Stylesheet einer Anwendung ist danach überflüssig.