Skip to content

Commit 9b3e6cb

Browse files
feat(module:dropdown): improve NzContextMenuService#create() (#7768)
1 parent 37391de commit 9b3e6cb

File tree

4 files changed

+14
-8
lines changed

4 files changed

+14
-8
lines changed

components/dropdown/context-menu.service.spec.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ describe('context-menu', () => {
4949
expect(() => {
5050
const fakeEvent = createMouseEvent('contextmenu', 300, 300);
5151
const component = fixture.componentInstance;
52-
component.nzContextMenuService.create(fakeEvent, component.nzDropdownMenuComponent);
52+
const viewRef = component.nzContextMenuService.create(fakeEvent, component.nzDropdownMenuComponent);
53+
expect(viewRef).toBeTruthy();
5354
fixture.detectChanges();
5455
tick(1000);
5556
fixture.detectChanges();

components/dropdown/context-menu.service.ts

+10-5
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,16 @@
55

66
import { ConnectionPositionPair, Overlay, OverlayRef } from '@angular/cdk/overlay';
77
import { TemplatePortal } from '@angular/cdk/portal';
8-
import { Injectable, NgZone } from '@angular/core';
8+
import { EmbeddedViewRef, Injectable, NgZone } from '@angular/core';
99
import { fromEvent, merge, Subscription } from 'rxjs';
1010
import { filter, first } from 'rxjs/operators';
1111

12+
import { NzSafeAny } from 'ng-zorro-antd/core/types';
13+
1214
import { NzContextMenuServiceModule } from './context-menu.service.module';
1315
import { NzDropdownMenuComponent } from './dropdown-menu.component';
1416

15-
const listOfPositions = [
17+
const LIST_OF_POSITIONS = [
1618
new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'top' }),
1719
new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }),
1820
new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'end', overlayY: 'bottom' }),
@@ -28,7 +30,10 @@ export class NzContextMenuService {
2830

2931
constructor(private ngZone: NgZone, private overlay: Overlay) {}
3032

31-
create($event: MouseEvent | { x: number; y: number }, nzDropdownMenuComponent: NzDropdownMenuComponent): void {
33+
create(
34+
$event: MouseEvent | { x: number; y: number },
35+
nzDropdownMenuComponent: NzDropdownMenuComponent
36+
): EmbeddedViewRef<NzSafeAny> {
3237
this.close(true);
3338
const { x, y } = $event;
3439
if ($event instanceof MouseEvent) {
@@ -37,7 +42,7 @@ export class NzContextMenuService {
3742
const positionStrategy = this.overlay
3843
.position()
3944
.flexibleConnectedTo({ x, y })
40-
.withPositions(listOfPositions)
45+
.withPositions(LIST_OF_POSITIONS)
4146
.withTransformOriginOn('.ant-dropdown');
4247
this.overlayRef = this.overlay.create({
4348
positionStrategy,
@@ -64,7 +69,7 @@ export class NzContextMenuService {
6469
)
6570
);
6671

67-
this.overlayRef.attach(
72+
return this.overlayRef.attach(
6873
new TemplatePortal(nzDropdownMenuComponent.templateRef, nzDropdownMenuComponent.viewContainerRef)
6974
);
7075
}

components/dropdown/doc/index.en-US.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,5 +60,5 @@ Create dropdown with contextmenu, the detail can be found in the example above
6060

6161
| Property | Description | Arguments | Return Value |
6262
| --- | --- | --- | --- |
63-
| create | create dropdown | `($event:MouseEvent \| {x:number, y:number}, menu:NzDropdownMenuComponent)` | - |
63+
| create | create dropdown | `($event:MouseEvent \| {x:number, y:number}, menu:NzDropdownMenuComponent)` | `EmbeddedViewRef<any>` |
6464
| close | close dropdown | - | - |

components/dropdown/doc/index.zh-CN.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,5 +61,5 @@ import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
6161

6262
| 方法/属性 | 说明 | 参数 | 返回 |
6363
| --- | --- | --- | --- |
64-
| create | 创建右键菜单 | `($event:MouseEvent \| {x:number, y:number}, menu:NzDropdownMenuComponent)` | - |
64+
| create | 创建右键菜单 | `($event:MouseEvent \| {x:number, y:number}, menu:NzDropdownMenuComponent)` | `EmbeddedViewRef<any>` |
6565
| close | 关闭右键菜单 | - | - |

0 commit comments

Comments
 (0)