Skip to content

Commit 387d664

Browse files
feat(module:modal): support standalone component (#8240)
* feat(module:modal): support standalone component * feat(module:modal): support standalone component * feat(module:modal): support standalone component
1 parent 3a7cd50 commit 387d664

12 files changed

+203
-195
lines changed

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

Lines changed: 64 additions & 72 deletions
Large diffs are not rendered by default.

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

Lines changed: 72 additions & 81 deletions
Large diffs are not rendered by default.

components/modal/modal-close.component.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55

66
import { ChangeDetectionStrategy, Component } from '@angular/core';
77

8+
import { NzOutletModule } from 'ng-zorro-antd/core/outlet';
9+
import { NzIconModule } from 'ng-zorro-antd/icon';
10+
811
import { ModalOptions } from './modal-types';
912

1013
@Component({
@@ -21,7 +24,9 @@ import { ModalOptions } from './modal-types';
2124
class: 'ant-modal-close',
2225
'aria-label': 'Close'
2326
},
24-
changeDetection: ChangeDetectionStrategy.OnPush
27+
changeDetection: ChangeDetectionStrategy.OnPush,
28+
imports: [NzIconModule, NzOutletModule],
29+
standalone: true
2530
})
2631
export class NzModalCloseComponent {
2732
constructor(public config: ModalOptions) {}

components/modal/modal-confirm-container.component.ts

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66
import { FocusTrapFactory } from '@angular/cdk/a11y';
77
import { OverlayRef } from '@angular/cdk/overlay';
8-
import { CdkPortalOutlet } from '@angular/cdk/portal';
9-
import { DOCUMENT } from '@angular/common';
8+
import { CdkPortalOutlet, PortalModule } from '@angular/cdk/portal';
9+
import { DOCUMENT, NgClass, NgIf, NgStyle } from '@angular/common';
1010
import {
1111
ChangeDetectionStrategy,
1212
ChangeDetectorRef,
@@ -24,11 +24,16 @@ import {
2424
import { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';
2525
import { takeUntil } from 'rxjs/operators';
2626

27+
import { NzButtonModule } from 'ng-zorro-antd/button';
2728
import { NzConfigService } from 'ng-zorro-antd/core/config';
29+
import { NzOutletModule } from 'ng-zorro-antd/core/outlet';
2830
import { NzSafeAny } from 'ng-zorro-antd/core/types';
2931
import { NzI18nService, NzModalI18nInterface } from 'ng-zorro-antd/i18n';
32+
import { NzIconModule } from 'ng-zorro-antd/icon';
33+
import { NzPipesModule } from 'ng-zorro-antd/pipes';
3034

3135
import { nzModalAnimations } from './modal-animations';
36+
import { NzModalCloseComponent } from './modal-close.component';
3237
import { BaseModalContainerComponent } from './modal-container.directive';
3338
import { ModalOptions } from './modal-types';
3439

@@ -104,7 +109,19 @@ import { ModalOptions } from './modal-types';
104109
'(@modalContainer.start)': 'onAnimationStart($event)',
105110
'(@modalContainer.done)': 'onAnimationDone($event)',
106111
'(click)': 'onContainerClick($event)'
107-
}
112+
},
113+
imports: [
114+
NgClass,
115+
NgStyle,
116+
NzPipesModule,
117+
NzIconModule,
118+
NgIf,
119+
NzModalCloseComponent,
120+
NzOutletModule,
121+
PortalModule,
122+
NzButtonModule
123+
],
124+
standalone: true
108125
})
109126
export class NzModalConfirmContainerComponent extends BaseModalContainerComponent implements OnInit {
110127
@ViewChild(CdkPortalOutlet, { static: true }) override portalOutlet!: CdkPortalOutlet;

components/modal/modal-container.component.ts

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66
import { FocusTrapFactory } from '@angular/cdk/a11y';
77
import { OverlayRef } from '@angular/cdk/overlay';
8-
import { CdkPortalOutlet } from '@angular/cdk/portal';
9-
import { DOCUMENT } from '@angular/common';
8+
import { CdkPortalOutlet, PortalModule } from '@angular/cdk/portal';
9+
import { DOCUMENT, NgClass, NgIf, NgStyle } from '@angular/common';
1010
import {
1111
ChangeDetectionStrategy,
1212
ChangeDetectorRef,
@@ -23,9 +23,13 @@ import { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';
2323

2424
import { NzConfigService } from 'ng-zorro-antd/core/config';
2525
import { NzSafeAny } from 'ng-zorro-antd/core/types';
26+
import { NzPipesModule } from 'ng-zorro-antd/pipes';
2627

2728
import { nzModalAnimations } from './modal-animations';
29+
import { NzModalCloseComponent } from './modal-close.component';
2830
import { BaseModalContainerComponent } from './modal-container.directive';
31+
import { NzModalFooterComponent } from './modal-footer.component';
32+
import { NzModalTitleComponent } from './modal-title.component';
2933
import { ModalOptions } from './modal-types';
3034

3135
@Component({
@@ -72,7 +76,18 @@ import { ModalOptions } from './modal-types';
7276
'(@modalContainer.start)': 'onAnimationStart($event)',
7377
'(@modalContainer.done)': 'onAnimationDone($event)',
7478
'(click)': 'onContainerClick($event)'
75-
}
79+
},
80+
imports: [
81+
NgClass,
82+
NgStyle,
83+
NgIf,
84+
NzModalCloseComponent,
85+
NzModalTitleComponent,
86+
PortalModule,
87+
NzModalFooterComponent,
88+
NzPipesModule
89+
],
90+
standalone: true
7691
})
7792
export class NzModalContainerComponent extends BaseModalContainerComponent implements OnInit {
7893
@ViewChild(CdkPortalOutlet, { static: true }) override portalOutlet!: CdkPortalOutlet;

components/modal/modal-content.directive.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ import { Directive, TemplateRef } from '@angular/core';
77

88
@Directive({
99
selector: '[nzModalContent]',
10-
exportAs: 'nzModalContent'
10+
exportAs: 'nzModalContent',
11+
standalone: true
1112
})
1213
export class NzModalContentDirective {
1314
constructor(public templateRef: TemplateRef<{}>) {}

components/modal/modal-footer.component.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@
33
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
44
*/
55

6+
import { NgFor, NgIf } from '@angular/common';
67
import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';
78
import { Subject } from 'rxjs';
89
import { takeUntil } from 'rxjs/operators';
910

11+
import { NzButtonModule } from 'ng-zorro-antd/button';
12+
import { NzOutletModule } from 'ng-zorro-antd/core/outlet';
1013
import { isPromise } from 'ng-zorro-antd/core/util';
1114
import { NzI18nService, NzModalI18nInterface } from 'ng-zorro-antd/i18n';
1215

@@ -69,7 +72,9 @@ import { ModalButtonOptions, ModalOptions } from './modal-types';
6972
host: {
7073
class: 'ant-modal-footer'
7174
},
72-
changeDetection: ChangeDetectionStrategy.Default
75+
changeDetection: ChangeDetectionStrategy.Default,
76+
imports: [NgIf, NzOutletModule, NgFor, NzButtonModule],
77+
standalone: true
7378
})
7479
export class NzModalFooterComponent implements OnDestroy {
7580
buttonsFooter = false;

components/modal/modal-footer.directive.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ import { NzModalRef } from './modal-ref';
99

1010
@Directive({
1111
selector: '[nzModalFooter]',
12-
exportAs: 'nzModalFooter'
12+
exportAs: 'nzModalFooter',
13+
standalone: true
1314
})
1415
export class NzModalFooterDirective {
1516
constructor(@Optional() private nzModalRef: NzModalRef, public templateRef: TemplateRef<{}>) {

components/modal/modal-title.component.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
import { ChangeDetectionStrategy, Component } from '@angular/core';
77

8+
import { NzOutletModule } from 'ng-zorro-antd/core/outlet';
9+
810
import { ModalOptions } from './modal-types';
911

1012
@Component({
@@ -20,7 +22,9 @@ import { ModalOptions } from './modal-types';
2022
host: {
2123
class: 'ant-modal-header'
2224
},
23-
changeDetection: ChangeDetectionStrategy.OnPush
25+
changeDetection: ChangeDetectionStrategy.OnPush,
26+
imports: [NzOutletModule],
27+
standalone: true
2428
})
2529
export class NzModalTitleComponent {
2630
constructor(public config: ModalOptions) {}

components/modal/modal-title.directive.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ import { NzModalRef } from './modal-ref';
99

1010
@Directive({
1111
selector: '[nzModalTitle]',
12-
exportAs: 'nzModalTitle'
12+
exportAs: 'nzModalTitle',
13+
standalone: true
1314
})
1415
export class NzModalTitleDirective {
1516
constructor(@Optional() private nzModalRef: NzModalRef, public templateRef: TemplateRef<{}>) {

components/modal/modal.component.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ import { getConfigFromComponent } from './utils';
3838
selector: 'nz-modal',
3939
exportAs: 'nzModal',
4040
template: ``,
41-
changeDetection: ChangeDetectionStrategy.OnPush
41+
changeDetection: ChangeDetectionStrategy.OnPush,
42+
standalone: true
4243
})
4344
export class NzModalComponent<T extends ModalOptions = NzSafeAny, R = NzSafeAny>
4445
implements OnChanges, NzModalLegacyAPI<T, R>, OnDestroy

components/modal/modal.module.ts

Lines changed: 4 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,8 @@
33
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
44
*/
55

6-
import { BidiModule } from '@angular/cdk/bidi';
7-
import { OverlayModule } from '@angular/cdk/overlay';
8-
import { PortalModule } from '@angular/cdk/portal';
9-
import { CommonModule } from '@angular/common';
106
import { NgModule } from '@angular/core';
117

12-
import { NzButtonModule } from 'ng-zorro-antd/button';
13-
import { NzNoAnimationModule } from 'ng-zorro-antd/core/no-animation';
14-
import { NzOutletModule } from 'ng-zorro-antd/core/outlet';
15-
import { NzI18nModule } from 'ng-zorro-antd/i18n';
16-
import { NzIconModule } from 'ng-zorro-antd/icon';
17-
import { NzPipesModule } from 'ng-zorro-antd/pipes';
18-
198
import { NzModalCloseComponent } from './modal-close.component';
209
import { NzModalConfirmContainerComponent } from './modal-confirm-container.component';
2110
import { NzModalContainerComponent } from './modal-container.component';
@@ -29,21 +18,6 @@ import { NzModalService } from './modal.service';
2918

3019
@NgModule({
3120
imports: [
32-
CommonModule,
33-
BidiModule,
34-
OverlayModule,
35-
NzOutletModule,
36-
PortalModule,
37-
NzI18nModule,
38-
NzButtonModule,
39-
NzIconModule,
40-
NzPipesModule,
41-
NzNoAnimationModule,
42-
NzPipesModule
43-
],
44-
exports: [NzModalComponent, NzModalFooterDirective, NzModalContentDirective, NzModalTitleDirective],
45-
providers: [NzModalService],
46-
declarations: [
4721
NzModalComponent,
4822
NzModalFooterDirective,
4923
NzModalContentDirective,
@@ -52,8 +26,9 @@ import { NzModalService } from './modal.service';
5226
NzModalTitleComponent,
5327
NzModalTitleDirective,
5428
NzModalContainerComponent,
55-
NzModalConfirmContainerComponent,
56-
NzModalComponent
57-
]
29+
NzModalConfirmContainerComponent
30+
],
31+
exports: [NzModalComponent, NzModalFooterDirective, NzModalContentDirective, NzModalTitleDirective],
32+
providers: [NzModalService]
5833
})
5934
export class NzModalModule {}

0 commit comments

Comments
 (0)