Skip to content

Commit 9c355ac

Browse files
Make devextreme-angular components standalone (DevExpress#29748)
Co-authored-by: Mikhail Preyskurantov <[email protected]>
1 parent b6b6d38 commit 9c355ac

File tree

1,371 files changed

+5668
-1700
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,371 files changed

+5668
-1700
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
"axe-core": "4.10.3",
4545
"cheerio": "1.0.0-rc.10",
4646
"codelyzer": "6.0.2",
47-
"devextreme-internal-tools": "16.5.2",
47+
"devextreme-internal-tools": "18.0.0-beta.1",
4848
"http-server": "14.1.1",
4949
"husky": "8.0.3",
5050
"jest": "29.7.0",

packages/devextreme-angular/src/core/component.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ import {
1616
AfterContentChecked,
1717
AfterViewInit,
1818
AfterViewChecked,
19+
createNgModule,
20+
inject,
21+
Injector,
1922
} from '@angular/core';
2023

2124
import { isPlatformServer } from '@angular/common';
@@ -36,6 +39,8 @@ import {
3639
CollectionNestedOptionContainerImpl,
3740
} from './nested-option';
3841

42+
import { DxIntegrationModule } from './integration';
43+
3944
config({
4045
buyNowLink: 'https://go.devexpress.com/Licensing_Installer_Watermark_DevExtremeAngular.aspx',
4146
licensingDocLink: 'https://go.devexpress.com/Licensing_Documentation_DevExtremeAngular.aspx',
@@ -225,6 +230,10 @@ export abstract class DxComponent implements OnChanges, OnInit, DoCheck, AfterCo
225230
private readonly transferState: TransferState,
226231
@Inject(PLATFORM_ID) private readonly platformId: any,
227232
) {
233+
if (!DxIntegrationModule.initialized) {
234+
createNgModule(DxIntegrationModule, inject(Injector));
235+
}
236+
228237
this.templates = [];
229238
templateHost.setHost(this);
230239
this._collectionContainerImpl = new CollectionNestedOptionContainerImpl(this._setOption.bind(this));

packages/devextreme-angular/src/core/integration.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,10 @@ let doInjections = (document: any, ngZone: NgZone, xhrFactory: XhrFactory) => {
9393

9494
@NgModule({})
9595
export class DxIntegrationModule {
96+
static initialized = false;
97+
9698
constructor(@Inject(DOCUMENT) document: any, ngZone: NgZone, @Optional() xhrFactory: XhrFactory) {
9799
doInjections(document, ngZone, xhrFactory);
100+
DxIntegrationModule.initialized = true;
98101
}
99102
}

packages/devextreme-angular/src/core/template.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ export class RenderData {
2828

2929
@Directive({
3030
selector: '[dxTemplate]',
31+
standalone: true,
3132
})
3233
export class DxTemplateDirective {
3334
@Input()
@@ -92,7 +93,7 @@ export class DxTemplateDirective {
9293
}
9394

9495
@NgModule({
95-
declarations: [DxTemplateDirective],
96+
imports: [DxTemplateDirective],
9697
exports: [DxTemplateDirective],
9798
})
9899
export class DxTemplateModule { }

packages/devextreme-angular/src/ui/accordion/index.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,10 @@ import { DxiAccordionItemComponent } from 'devextreme-angular/ui/accordion/neste
5656
*/
5757
@Component({
5858
selector: 'dx-accordion',
59+
standalone: true,
5960
template: '',
6061
host: { ngSkipHydration: 'true' },
62+
imports: [ DxIntegrationModule ],
6163
providers: [
6264
DxTemplateHost,
6365
WatcherHelper,
@@ -830,14 +832,12 @@ export class DxAccordionComponent<TItem = any, TKey = any> extends DxComponent i
830832

831833
@NgModule({
832834
imports: [
835+
DxAccordionComponent,
833836
DxiItemModule,
834837
DxiAccordionItemModule,
835838
DxIntegrationModule,
836839
DxTemplateModule
837840
],
838-
declarations: [
839-
DxAccordionComponent
840-
],
841841
exports: [
842842
DxAccordionComponent,
843843
DxiItemModule,
@@ -847,6 +847,8 @@ export class DxAccordionComponent<TItem = any, TKey = any> extends DxComponent i
847847
})
848848
export class DxAccordionModule { }
849849

850+
export * from 'devextreme-angular/ui/accordion/nested';
851+
850852
import type * as DxAccordionTypes from "devextreme/ui/accordion_types";
851853
export { DxAccordionTypes };
852854

packages/devextreme-angular/src/ui/accordion/nested/item-dxi.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import { DOCUMENT } from '@angular/common';
1818

1919

2020
import {
21+
DxIntegrationModule,
2122
NestedOptionHost,
2223
extractTemplate,
2324
DxTemplateDirective,
@@ -29,8 +30,10 @@ import { CollectionNestedOption } from 'devextreme-angular/core';
2930

3031
@Component({
3132
selector: 'dxi-accordion-item',
33+
standalone: true,
3234
template: '<ng-content></ng-content>',
3335
styles: [':host { display: block; }'],
36+
imports: [ DxIntegrationModule ],
3437
providers: [NestedOptionHost, DxTemplateHost]
3538
})
3639
export class DxiAccordionItemComponent extends CollectionNestedOption implements AfterViewInit,
@@ -133,7 +136,7 @@ export class DxiAccordionItemComponent extends CollectionNestedOption implements
133136
}
134137

135138
@NgModule({
136-
declarations: [
139+
imports: [
137140
DxiAccordionItemComponent
138141
],
139142
exports: [

packages/devextreme-angular/src/ui/action-sheet/index.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,10 @@ import { DxiActionSheetItemComponent } from 'devextreme-angular/ui/action-sheet/
5656
*/
5757
@Component({
5858
selector: 'dx-action-sheet',
59+
standalone: true,
5960
template: '',
6061
host: { ngSkipHydration: 'true' },
62+
imports: [ DxIntegrationModule ],
6163
providers: [
6264
DxTemplateHost,
6365
WatcherHelper,
@@ -607,14 +609,12 @@ export class DxActionSheetComponent<TItem = any, TKey = any> extends DxComponent
607609

608610
@NgModule({
609611
imports: [
612+
DxActionSheetComponent,
610613
DxiItemModule,
611614
DxiActionSheetItemModule,
612615
DxIntegrationModule,
613616
DxTemplateModule
614617
],
615-
declarations: [
616-
DxActionSheetComponent
617-
],
618618
exports: [
619619
DxActionSheetComponent,
620620
DxiItemModule,
@@ -624,6 +624,8 @@ export class DxActionSheetComponent<TItem = any, TKey = any> extends DxComponent
624624
})
625625
export class DxActionSheetModule { }
626626

627+
export * from 'devextreme-angular/ui/action-sheet/nested';
628+
627629
import type * as DxActionSheetTypes from "devextreme/ui/action_sheet_types";
628630
export { DxActionSheetTypes };
629631

packages/devextreme-angular/src/ui/action-sheet/nested/item-dxi.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import { NativeEventInfo } from 'devextreme/common/core/events';
2020
import { ButtonStyle, ButtonType } from 'devextreme/common';
2121

2222
import {
23+
DxIntegrationModule,
2324
NestedOptionHost,
2425
extractTemplate,
2526
DxTemplateDirective,
@@ -31,8 +32,10 @@ import { CollectionNestedOption } from 'devextreme-angular/core';
3132

3233
@Component({
3334
selector: 'dxi-action-sheet-item',
35+
standalone: true,
3436
template: '<ng-content></ng-content>',
3537
styles: [':host { display: block; }'],
38+
imports: [ DxIntegrationModule ],
3639
providers: [NestedOptionHost, DxTemplateHost]
3740
})
3841
export class DxiActionSheetItemComponent extends CollectionNestedOption implements AfterViewInit,
@@ -127,7 +130,7 @@ export class DxiActionSheetItemComponent extends CollectionNestedOption implemen
127130
}
128131

129132
@NgModule({
130-
declarations: [
133+
imports: [
131134
DxiActionSheetItemComponent
132135
],
133136
exports: [

packages/devextreme-angular/src/ui/autocomplete/index.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,10 @@ const CUSTOM_VALUE_ACCESSOR_PROVIDER = {
102102
*/
103103
@Component({
104104
selector: 'dx-autocomplete',
105+
standalone: true,
105106
template: '',
106107
host: { ngSkipHydration: 'true' },
108+
imports: [ DxIntegrationModule ],
107109
providers: [
108110
DxTemplateHost,
109111
WatcherHelper,
@@ -1553,6 +1555,7 @@ export class DxAutocompleteComponent extends DxComponent implements OnDestroy, C
15531555

15541556
@NgModule({
15551557
imports: [
1558+
DxAutocompleteComponent,
15561559
DxiButtonModule,
15571560
DxoOptionsModule,
15581561
DxoDropDownOptionsModule,
@@ -1587,9 +1590,6 @@ export class DxAutocompleteComponent extends DxComponent implements OnDestroy, C
15871590
DxIntegrationModule,
15881591
DxTemplateModule
15891592
],
1590-
declarations: [
1591-
DxAutocompleteComponent
1592-
],
15931593
exports: [
15941594
DxAutocompleteComponent,
15951595
DxiButtonModule,
@@ -1628,6 +1628,8 @@ export class DxAutocompleteComponent extends DxComponent implements OnDestroy, C
16281628
})
16291629
export class DxAutocompleteModule { }
16301630

1631+
export * from 'devextreme-angular/ui/autocomplete/nested';
1632+
16311633
import type * as DxAutocompleteTypes from "devextreme/ui/autocomplete_types";
16321634
export { DxAutocompleteTypes };
16331635

packages/devextreme-angular/src/ui/autocomplete/nested/animation.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,18 @@ import {
1717
import { AnimationConfig } from 'devextreme/common/core/animation';
1818

1919
import {
20+
DxIntegrationModule,
2021
NestedOptionHost,
2122
} from 'devextreme-angular/core';
2223
import { NestedOption } from 'devextreme-angular/core';
2324

2425

2526
@Component({
2627
selector: 'dxo-autocomplete-animation',
28+
standalone: true,
2729
template: '',
2830
styles: [''],
31+
imports: [ DxIntegrationModule ],
2932
providers: [NestedOptionHost]
3033
})
3134
export class DxoAutocompleteAnimationComponent extends NestedOption implements OnDestroy, OnInit {
@@ -71,7 +74,7 @@ export class DxoAutocompleteAnimationComponent extends NestedOption implements O
7174
}
7275

7376
@NgModule({
74-
declarations: [
77+
imports: [
7578
DxoAutocompleteAnimationComponent
7679
],
7780
exports: [

0 commit comments

Comments
 (0)