Skip to content

Commit 8066f7b

Browse files
authored
feat(module:tree-select): render title of selected node in innerHTML (#9259)
1 parent 68be665 commit 8066f7b

4 files changed

Lines changed: 17 additions & 23 deletions

File tree

components/cascader/cascader.component.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -106,18 +106,14 @@ const defaultDisplayRender = (labels: string[]): string => labels.join(' / ');
106106
@if (nzMultiple) {
107107
@for (node of selectedNodes | slice: 0 : nzMaxTagCount; track node) {
108108
<nz-select-item
109-
[deletable]="true"
109+
deletable
110110
[disabled]="nzDisabled"
111111
[label]="nzDisplayWith(getAncestorOptionList(node))"
112112
(delete)="removeSelected(node)"
113113
></nz-select-item>
114114
}
115115
@if (selectedNodes.length > nzMaxTagCount) {
116-
<nz-select-item
117-
[deletable]="false"
118-
[disabled]="false"
119-
[label]="'+ ' + (selectedNodes.length - nzMaxTagCount) + ' ...'"
120-
></nz-select-item>
116+
<nz-select-item [label]="'+ ' + (selectedNodes.length - nzMaxTagCount) + ' ...'"></nz-select-item>
121117
}
122118
}
123119
@@ -141,7 +137,6 @@ const defaultDisplayRender = (labels: string[]): string => labels.join(' / ');
141137
142138
@if (showLabelRender) {
143139
<nz-select-item
144-
[deletable]="false"
145140
[disabled]="nzDisabled"
146141
[label]="labelRenderText"
147142
[contentTemplateOutlet]="isLabelRenderTemplate ? nzLabelRender : null"

components/select/select-item.component.ts

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import { NgTemplateOutlet } from '@angular/common';
77
import {
8+
booleanAttribute,
89
ChangeDetectionStrategy,
910
Component,
1011
EventEmitter,
@@ -24,10 +25,10 @@ import { NzIconModule } from 'ng-zorro-antd/icon';
2425
changeDetection: ChangeDetectionStrategy.OnPush,
2526
template: `
2627
<ng-container *nzStringTemplateOutlet="contentTemplateOutlet; context: templateOutletContext">
27-
@if (deletable) {
28-
<div class="ant-select-selection-item-content">{{ label }}</div>
28+
@if (displayLabelInHtml) {
29+
<div [class.ant-select-selection-item-content]="deletable" [innerHTML]="label"></div>
2930
} @else {
30-
{{ label }}
31+
<div [class.ant-select-selection-item-content]="deletable">{{ label }}</div>
3132
}
3233
</ng-container>
3334
@if (deletable && !disabled) {
@@ -48,9 +49,14 @@ import { NzIconModule } from 'ng-zorro-antd/icon';
4849
imports: [NgTemplateOutlet, NzOutletModule, NzIconModule]
4950
})
5051
export class NzSelectItemComponent {
51-
@Input() disabled = false;
52+
@Input({ transform: booleanAttribute }) disabled = false;
5253
@Input() label: string | number | null | undefined = null;
53-
@Input() deletable = false;
54+
/**
55+
* @internal Internally used, please do not use it directly.
56+
* @description Whether the label is in HTML format.
57+
*/
58+
@Input({ transform: booleanAttribute }) displayLabelInHtml = false;
59+
@Input({ transform: booleanAttribute }) deletable = false;
5460
@Input() removeIcon: TemplateRef<NzSafeAny> | null = null;
5561
@Input() contentTemplateOutletContext: NzSafeAny | null = null;
5662
@Input() contentTemplateOutlet: string | TemplateRef<NzSafeAny> | null = null;

components/select/select-top-control.component.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ import { NzSelectItemInterface, NzSelectModeType, NzSelectTopControlItemType } f
5555
></nz-select-search>
5656
@if (isShowSingleLabel) {
5757
<nz-select-item
58-
[deletable]="false"
59-
[disabled]="false"
6058
[removeIcon]="removeIcon"
6159
[label]="listOfTopItem[0].nzLabel"
6260
[contentTemplateOutlet]="customTemplate"
@@ -72,7 +70,7 @@ import { NzSelectItemInterface, NzSelectModeType, NzSelectTopControlItemType } f
7270
[label]="item.nzLabel"
7371
[disabled]="item.nzDisabled || disabled"
7472
[contentTemplateOutlet]="item.contentTemplateOutlet"
75-
[deletable]="true"
73+
deletable
7674
[contentTemplateOutletContext]="item.contentTemplateOutletContext"
7775
(delete)="onDeleteItem(item.contentTemplateOutletContext)"
7876
></nz-select-item>

components/tree-select/tree-select.component.ts

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -168,18 +168,17 @@ const listOfPositions = [
168168
@if (isMultiple) {
169169
@for (node of selectedNodes | slice: 0 : nzMaxTagCount; track node.key) {
170170
<nz-select-item
171-
[deletable]="true"
171+
deletable
172172
[disabled]="node.isDisabled || nzDisabled"
173173
[label]="nzDisplayWith(node)"
174+
displayLabelInHtml
174175
(delete)="removeSelected(node, true)"
175176
></nz-select-item>
176177
}
177178
@if (selectedNodes.length > nzMaxTagCount) {
178179
<nz-select-item
179180
[contentTemplateOutlet]="nzMaxTagPlaceholder"
180181
[contentTemplateOutletContext]="selectedNodes | slice: nzMaxTagCount"
181-
[deletable]="false"
182-
[disabled]="false"
183182
[label]="'+ ' + (selectedNodes.length - nzMaxTagCount) + ' ...'"
184183
></nz-select-item>
185184
}
@@ -205,11 +204,7 @@ const listOfPositions = [
205204
}
206205
207206
@if (!isMultiple && selectedNodes.length === 1 && !isComposing && inputValue === '') {
208-
<nz-select-item
209-
[deletable]="false"
210-
[disabled]="false"
211-
[label]="nzDisplayWith(selectedNodes[0])"
212-
></nz-select-item>
207+
<nz-select-item [label]="nzDisplayWith(selectedNodes[0])" displayLabelInHtml></nz-select-item>
213208
}
214209
215210
@if (!isMultiple) {

0 commit comments

Comments
 (0)