Skip to content

Commit 0674f78

Browse files
authored
fix(module:menu): ellipsis menu title content if overflow (#8055)
1 parent a4e334a commit 0674f78

File tree

7 files changed

+29
-19
lines changed

7 files changed

+29
-19
lines changed

components/menu/menu-item.directive.ts renamed to components/menu/menu-item.component.ts

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,19 @@
66
import { Direction, Directionality } from '@angular/cdk/bidi';
77
import {
88
AfterContentInit,
9+
ChangeDetectionStrategy,
910
ChangeDetectorRef,
11+
Component,
1012
ContentChildren,
11-
Directive,
1213
Inject,
1314
Input,
1415
OnChanges,
1516
OnDestroy,
1617
OnInit,
1718
Optional,
1819
QueryList,
19-
SimpleChanges
20+
SimpleChanges,
21+
ViewEncapsulation
2022
} from '@angular/core';
2123
import { NavigationEnd, Router, RouterLink } from '@angular/router';
2224
import { Subject, combineLatest } from 'rxjs';
@@ -29,9 +31,17 @@ import { MenuService } from './menu.service';
2931
import { NzIsMenuInsideDropDownToken } from './menu.token';
3032
import { NzSubmenuService } from './submenu.service';
3133

32-
@Directive({
34+
@Component({
3335
selector: '[nz-menu-item]',
3436
exportAs: 'nzMenuItem',
37+
changeDetection: ChangeDetectionStrategy.OnPush,
38+
encapsulation: ViewEncapsulation.None,
39+
preserveWhitespaces: false,
40+
template: `
41+
<span class="ant-menu-title-content">
42+
<ng-content></ng-content>
43+
</span>
44+
`,
3545
host: {
3646
'[class.ant-dropdown-menu-item]': `isMenuInsideDropDown`,
3747
'[class.ant-dropdown-menu-item-selected]': `isMenuInsideDropDown && nzSelected`,
@@ -46,7 +56,7 @@ import { NzSubmenuService } from './submenu.service';
4656
'(click)': 'clickMenuItem($event)'
4757
}
4858
})
49-
export class NzMenuItemDirective implements OnInit, OnChanges, OnDestroy, AfterContentInit {
59+
export class NzMenuItemComponent implements OnInit, OnChanges, OnDestroy, AfterContentInit {
5060
static ngAcceptInputType_nzDisabled: BooleanInput;
5161
static ngAcceptInputType_nzSelected: BooleanInput;
5262
static ngAcceptInputType_nzDanger: BooleanInput;

components/menu/menu.directive.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import { takeUntil } from 'rxjs/operators';
2727
import { BooleanInput } from 'ng-zorro-antd/core/types';
2828
import { InputBoolean } from 'ng-zorro-antd/core/util';
2929

30-
import { NzMenuItemDirective } from './menu-item.directive';
30+
import { NzMenuItemComponent } from './menu-item.component';
3131
import { MenuService } from './menu.service';
3232
import { NzIsMenuInsideDropDownToken, NzMenuServiceLocalToken } from './menu.token';
3333
import { NzMenuModeType, NzMenuThemeType } from './menu.types';
@@ -88,15 +88,15 @@ export class NzMenuDirective implements AfterContentInit, OnInit, OnChanges, OnD
8888
static ngAcceptInputType_nzInlineCollapsed: BooleanInput;
8989
static ngAcceptInputType_nzSelectable: BooleanInput;
9090

91-
@ContentChildren(NzMenuItemDirective, { descendants: true })
92-
listOfNzMenuItemDirective!: QueryList<NzMenuItemDirective>;
91+
@ContentChildren(NzMenuItemComponent, { descendants: true })
92+
listOfNzMenuItemDirective!: QueryList<NzMenuItemComponent>;
9393
@ContentChildren(NzSubMenuComponent, { descendants: true }) listOfNzSubMenuComponent!: QueryList<NzSubMenuComponent>;
9494
@Input() nzInlineIndent = 24;
9595
@Input() nzTheme: NzMenuThemeType = 'light';
9696
@Input() nzMode: NzMenuModeType = 'vertical';
9797
@Input() @InputBoolean() nzInlineCollapsed = false;
9898
@Input() @InputBoolean() nzSelectable = !this.isMenuInsideDropDown;
99-
@Output() readonly nzClick = new EventEmitter<NzMenuItemDirective>();
99+
@Output() readonly nzClick = new EventEmitter<NzMenuItemComponent>();
100100
actualMode: NzMenuModeType = 'vertical';
101101
dir: Direction = 'ltr';
102102
private inlineCollapsed$ = new BehaviorSubject<boolean>(this.nzInlineCollapsed);

components/menu/menu.module.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { NzIconModule } from 'ng-zorro-antd/icon';
1515

1616
import { NzMenuDividerDirective } from './menu-divider.directive';
1717
import { NzMenuGroupComponent } from './menu-group.component';
18-
import { NzMenuItemDirective } from './menu-item.directive';
18+
import { NzMenuItemComponent } from './menu-item.component';
1919
import { NzMenuDirective } from './menu.directive';
2020
import { NzSubmenuInlineChildComponent } from './submenu-inline-child.component';
2121
import { NzSubmenuNoneInlineChildComponent } from './submenu-non-inline-child.component';
@@ -26,14 +26,14 @@ import { NzSubMenuComponent } from './submenu.component';
2626
imports: [BidiModule, CommonModule, PlatformModule, OverlayModule, NzIconModule, NzNoAnimationModule, NzOutletModule],
2727
declarations: [
2828
NzMenuDirective,
29-
NzMenuItemDirective,
29+
NzMenuItemComponent,
3030
NzSubMenuComponent,
3131
NzMenuDividerDirective,
3232
NzMenuGroupComponent,
3333
NzSubMenuTitleComponent,
3434
NzSubmenuInlineChildComponent,
3535
NzSubmenuNoneInlineChildComponent
3636
],
37-
exports: [NzMenuDirective, NzMenuItemDirective, NzSubMenuComponent, NzMenuDividerDirective, NzMenuGroupComponent]
37+
exports: [NzMenuDirective, NzMenuItemComponent, NzSubMenuComponent, NzMenuDividerDirective, NzMenuGroupComponent]
3838
})
3939
export class NzMenuModule {}

components/menu/menu.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { RouterTestingModule } from '@angular/router/testing';
99
import { dispatchFakeEvent } from 'ng-zorro-antd/core/testing';
1010
import { NzIconTestModule } from 'ng-zorro-antd/icon/testing';
1111

12-
import { NzMenuItemDirective } from './menu-item.directive';
12+
import { NzMenuItemComponent } from './menu-item.component';
1313
import { NzMenuDirective } from './menu.directive';
1414
import { NzMenuModule } from './menu.module';
1515
import { NzSubMenuComponent } from './submenu.component';
@@ -58,7 +58,7 @@ describe('menu', () => {
5858
let menu: DebugElement;
5959
beforeEach(() => {
6060
fixture = TestBed.createComponent(NzTestBasicMenuHorizontalComponent);
61-
items = fixture.debugElement.queryAll(By.directive(NzMenuItemDirective));
61+
items = fixture.debugElement.queryAll(By.directive(NzMenuItemComponent));
6262
submenu = fixture.debugElement.query(By.directive(NzSubMenuComponent));
6363
menu = fixture.debugElement.query(By.directive(NzMenuDirective));
6464
});
@@ -94,7 +94,7 @@ describe('menu', () => {
9494
let menu: DebugElement;
9595
beforeEach(() => {
9696
fixture = TestBed.createComponent(NzTestBasicMenuInlineComponent);
97-
items = fixture.debugElement.queryAll(By.directive(NzMenuItemDirective));
97+
items = fixture.debugElement.queryAll(By.directive(NzMenuItemComponent));
9898
menu = fixture.debugElement.query(By.directive(NzMenuDirective));
9999
submenus = fixture.debugElement.queryAll(By.directive(NzSubMenuComponent));
100100
});

components/menu/public-api.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
export * from './menu.directive';
77
export * from './menu-group.component';
88
export * from './menu-divider.directive';
9-
export * from './menu-item.directive';
9+
export * from './menu-item.component';
1010
export * from './submenu.component';
1111
export * from './submenu-title.component';
1212
export * from './submenu-inline-child.component';

components/menu/submenu-title.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import { NzMenuModeType } from './menu.types';
3030
template: `
3131
<span nz-icon [nzType]="nzIcon" *ngIf="nzIcon"></span>
3232
<ng-container *nzStringTemplateOutlet="nzTitle">
33-
<span>{{ nzTitle }}</span>
33+
<span class="ant-menu-title-content">{{ nzTitle }}</span>
3434
</ng-container>
3535
<ng-content></ng-content>
3636
<span

components/menu/submenu.component.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ import { getPlacementName, POSITION_MAP, POSITION_TYPE_HORIZONTAL } from 'ng-zor
3737
import { BooleanInput } from 'ng-zorro-antd/core/types';
3838
import { InputBoolean } from 'ng-zorro-antd/core/util';
3939

40-
import { NzMenuItemDirective } from './menu-item.directive';
40+
import { NzMenuItemComponent } from './menu-item.component';
4141
import { MenuService } from './menu.service';
4242
import { NzIsMenuInsideDropDownToken } from './menu.token';
4343
import { NzMenuModeType, NzMenuThemeType } from './menu.types';
@@ -159,8 +159,8 @@ export class NzSubMenuComponent implements OnInit, OnDestroy, AfterContentInit,
159159
// Can't construct a query for the property ... since the query selector wasn't defined"
160160
@ContentChildren(forwardRef(() => NzSubMenuComponent), { descendants: true })
161161
listOfNzSubMenuComponent: QueryList<NzSubMenuComponent> | null = null;
162-
@ContentChildren(NzMenuItemDirective, { descendants: true })
163-
listOfNzMenuItemDirective: QueryList<NzMenuItemDirective> | null = null;
162+
@ContentChildren(NzMenuItemComponent, { descendants: true })
163+
listOfNzMenuItemDirective: QueryList<NzMenuItemComponent> | null = null;
164164
private level = this.nzSubmenuService.level;
165165
private destroy$ = new Subject<void>();
166166
position = 'right';

0 commit comments

Comments
 (0)