Skip to content

Commit 96c126e

Browse files
committed
refactor(*): migrate DI from constructors to inject() API
1 parent 6bdd10f commit 96c126e

File tree

238 files changed

+1950
-3542
lines changed

Some content is hidden

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

238 files changed

+1950
-3542
lines changed

projects/igniteui-angular-elements/src/app/wrapper/wrapper.component.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ChangeDetectorRef, Component, QueryList, TemplateRef, ViewChildren } from '@angular/core';
1+
import { ChangeDetectorRef, Component, QueryList, TemplateRef, ViewChildren, inject } from '@angular/core';
22
import { Subject } from 'rxjs';
33
import { TemplateRefWrapper } from './template-ref-wrapper';
44

@@ -13,6 +13,8 @@ type TemplateFunction = (arg: any) => TemplateResult;
1313
imports: []
1414
})
1515
export class TemplateWrapperComponent {
16+
private cdr = inject(ChangeDetectorRef);
17+
1618

1719
public templateFunctions: TemplateFunction[] = [];
1820
public templateRendered = new Subject<HTMLElement>();
@@ -25,8 +27,6 @@ export class TemplateWrapperComponent {
2527
*/
2628
@ViewChildren(TemplateRef)
2729
public templateRefs: QueryList<TemplateRef<any>>;
28-
29-
constructor(private cdr: ChangeDetectorRef) { }
3030

3131
protected litRender(container: HTMLElement, templateFunc: (arg: any) => TemplateResult, arg: any) {
3232
const part = render(templateFunc(arg), container);

projects/igniteui-angular-elements/src/lib/icon.broadcast.service.spec.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { ComponentFixture, TestBed } from '@angular/core/testing';
22
import { ActionType, BroadcastIconsChangeMessage, IgxIconBroadcastService, SvgIcon, } from './icon.broadcast.service';
3-
import { Component, SecurityContext } from '@angular/core';
3+
import { Component, SecurityContext, inject } from '@angular/core';
44
import { IconMeta, IgxIconService } from 'igniteui-angular';
55
import { wait } from 'igniteui-angular/src/lib/test-utils/ui-interactions.spec';
66

@@ -111,5 +111,6 @@ describe('Icon broadcast service', () => {
111111
providers: [IgxIconBroadcastService, IgxIconService]
112112
})
113113
export class BroadcastServiceComponent {
114-
constructor(public iconBroadcast: IgxIconBroadcastService, public iconService: IgxIconService) {}
114+
iconBroadcast = inject(IgxIconBroadcastService);
115+
iconService = inject(IgxIconService);
115116
}

projects/igniteui-angular-elements/src/lib/icon.broadcast.service.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Injectable, Optional } from '@angular/core';
1+
import { Injectable, inject } from '@angular/core';
22
import { PlatformUtil } from '../../../igniteui-angular/src/lib/core/utils';
33
import { IgxIconService } from '../../../igniteui-angular/src/lib/icon/icon.service';
44
import { IconMeta } from '../../../igniteui-angular/src/lib/icon/public_api';
@@ -26,12 +26,12 @@ export interface BroadcastIconsChangeMessage {
2626
/** @hidden @internal **/
2727
@Injectable()
2828
export class IgxIconBroadcastService {
29+
protected _iconService = inject(IgxIconService);
30+
private _platformUtil = inject(PlatformUtil, { optional: true });
31+
2932
private iconBroadcastChannel: BroadcastChannel | null;
3033

31-
constructor(
32-
protected _iconService: IgxIconService,
33-
@Optional() private _platformUtil: PlatformUtil
34-
) {
34+
constructor() {
3535
if (this._platformUtil?.isBrowser) {
3636
this.create();
3737

projects/igniteui-angular-elements/src/lib/state.component.ts

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Component, EnvironmentInjector, EventEmitter, Inject, Injector, Output, ViewContainerRef } from '@angular/core';
1+
import { Component, EnvironmentInjector, EventEmitter, Injector, Output, ViewContainerRef, inject } from '@angular/core';
22
import { IPinningConfig, GridType, IGX_GRID_BASE} from '../../../igniteui-angular/src/lib/grids/common/grid.interface';
33
import { IFilteringExpressionsTree } from '../../../igniteui-angular/src/lib/data-operations/filtering-expressions-tree';
44
import { IPagingState } from '../../../igniteui-angular/src/lib/data-operations/paging-state.interface';
@@ -50,14 +50,23 @@ export interface IGridStateInfo {
5050
standalone: true
5151
})
5252
export class IgxGridStateComponent extends IgxGridStateBaseDirective {
53+
protected override viewRef: ViewContainerRef;
54+
protected override envInjector: EnvironmentInjector;
55+
protected override injector: Injector;
56+
57+
58+
constructor() {
59+
const grid = inject<GridType>(IGX_GRID_BASE);
60+
const viewRef = inject(ViewContainerRef);
61+
const envInjector = inject(EnvironmentInjector);
62+
const injector = inject(Injector);
5363

54-
constructor(
55-
@Inject(IGX_GRID_BASE) grid: GridType,
56-
protected override viewRef: ViewContainerRef, protected override envInjector: EnvironmentInjector,
57-
protected override injector: Injector,
58-
) {
5964
super(grid, viewRef, envInjector, injector);
60-
}
65+
66+
this.viewRef = viewRef;
67+
this.envInjector = envInjector;
68+
this.injector = injector;
69+
}
6170

6271
/**
6372
* Restores grid features' state based on the IGridStateInfo object passed as an argument.

projects/igniteui-angular/src/lib/accordion/accordion.component.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
import {
2-
AfterContentInit, AfterViewInit, ChangeDetectorRef, Component, ContentChildren, EventEmitter,
3-
HostBinding, Input, OnDestroy, Output, QueryList, booleanAttribute
4-
} from '@angular/core';
1+
import { AfterContentInit, AfterViewInit, ChangeDetectorRef, Component, ContentChildren, EventEmitter, HostBinding, Input, OnDestroy, Output, QueryList, booleanAttribute, inject } from '@angular/core';
52
import { fromEvent, Subject } from 'rxjs';
63
import { takeUntil } from 'rxjs/operators';
74
import { ACCORDION_NAVIGATION_KEYS } from '../core/utils';
@@ -55,6 +52,8 @@ let NEXT_ID = 0;
5552
standalone: true
5653
})
5754
export class IgxAccordionComponent implements AfterContentInit, AfterViewInit, OnDestroy {
55+
private cdr = inject(ChangeDetectorRef);
56+
5857
/**
5958
* Get/Set the `id` of the accordion component.
6059
* Default value is `"igx-accordion-0"`;
@@ -216,8 +215,6 @@ export class IgxAccordionComponent implements AfterContentInit, AfterViewInit, O
216215
private _enabledPanels!: IgxExpansionPanelComponent[];
217216
private _singleBranchExpand = false;
218217

219-
constructor(private cdr: ChangeDetectorRef) { }
220-
221218
/** @hidden @internal **/
222219
public ngAfterContentInit(): void {
223220
this.updatePanelsAnimation();

projects/igniteui-angular/src/lib/action-strip/action-strip.component.ts

Lines changed: 7 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,4 @@
1-
import {
2-
Component,
3-
Directive,
4-
HostBinding,
5-
Input,
6-
Renderer2,
7-
ViewContainerRef,
8-
ContentChildren,
9-
QueryList,
10-
ViewChild,
11-
TemplateRef,
12-
AfterContentInit,
13-
ChangeDetectorRef,
14-
AfterViewInit,
15-
ElementRef,
16-
booleanAttribute
17-
} from '@angular/core';
1+
import { Component, Directive, HostBinding, Input, Renderer2, ViewContainerRef, ContentChildren, QueryList, ViewChild, TemplateRef, AfterContentInit, ChangeDetectorRef, AfterViewInit, ElementRef, booleanAttribute, inject } from '@angular/core';
182
import { ActionStripResourceStringsEN, IActionStripResourceStrings } from '../core/i18n/action-strip-resources';
193
import { IgxDropDownComponent } from '../drop-down/drop-down.component';
204
import { CloseScrollStrategy, OverlaySettings } from '../services/public_api';
@@ -35,7 +19,7 @@ import { trackByIdentity } from '../core/utils';
3519
standalone: true
3620
})
3721
export class IgxActionStripMenuItemDirective {
38-
constructor(public templateRef: TemplateRef<any>) {}
22+
public templateRef = inject<TemplateRef<any>>(TemplateRef);
3923
}
4024

4125
/* blazorElement */
@@ -86,6 +70,11 @@ export class IgxActionStripMenuItemDirective {
8670
providers: [{ provide: IgxActionStripToken, useExisting: IgxActionStripComponent }]
8771
})
8872
export class IgxActionStripComponent implements IgxActionStripToken, AfterContentInit, AfterViewInit {
73+
private _viewContainer = inject(ViewContainerRef);
74+
private renderer = inject(Renderer2);
75+
protected el = inject(ElementRef);
76+
public cdr = inject(ChangeDetectorRef);
77+
8978

9079
/* blazorSuppress */
9180
/**
@@ -191,14 +180,6 @@ export class IgxActionStripComponent implements IgxActionStripToken, AfterConten
191180
private _resourceStrings = getCurrentResourceStrings(ActionStripResourceStringsEN);
192181
private _originalParent!: HTMLElement;
193182

194-
constructor(
195-
private _viewContainer: ViewContainerRef,
196-
private renderer: Renderer2,
197-
protected el: ElementRef,
198-
/** @hidden @internal **/
199-
public cdr: ChangeDetectorRef,
200-
) { }
201-
202183
/**
203184
* Menu Items list.
204185
*

projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-actions-base.directive.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { IgxGridActionButtonComponent } from './grid-action-button.component';
2-
import { Directive, Input, AfterViewInit, QueryList, ViewChildren, IterableDiffers, booleanAttribute } from '@angular/core';
2+
import { Directive, Input, AfterViewInit, QueryList, ViewChildren, IterableDiffers, booleanAttribute, inject } from '@angular/core';
33
import { IgxActionStripComponent } from '../action-strip.component';
44
import { IgxRowDirective } from '../../grids/row.directive';
55
import { IgxIconService } from '../../icon/icon.service';
@@ -14,6 +14,9 @@ import { IgxIconService } from '../../icon/icon.service';
1414
standalone: true
1515
})
1616
export class IgxGridActionsBaseDirective implements AfterViewInit {
17+
protected iconService = inject(IgxIconService);
18+
protected differs = inject(IterableDiffers);
19+
1720
/** @hidden @internal **/
1821
@ViewChildren(IgxGridActionButtonComponent)
1922
public buttons: QueryList<IgxGridActionButtonComponent>;
@@ -51,9 +54,6 @@ export class IgxGridActionsBaseDirective implements AfterViewInit {
5154
return this.isRow(this.strip?.context) && !this.strip.context.inEditMode;
5255
}
5356

54-
constructor(protected iconService: IgxIconService,
55-
protected differs: IterableDiffers) { }
56-
5757
/**
5858
* @hidden
5959
* @internal

projects/igniteui-angular/src/lib/avatar/avatar.component.ts

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,5 @@
11
import { NgTemplateOutlet } from '@angular/common';
2-
import {
3-
Component,
4-
ElementRef,
5-
HostBinding,
6-
Input,
7-
OnInit,
8-
TemplateRef,
9-
ViewChild
10-
} from '@angular/core';
2+
import { Component, ElementRef, HostBinding, Input, OnInit, TemplateRef, ViewChild, inject } from '@angular/core';
113

124
import { normalizeURI } from '../core/utils';
135
import { IgxIconComponent } from '../icon/icon.component';
@@ -56,6 +48,8 @@ export type IgxAvatarType = (typeof IgxAvatarType)[keyof typeof IgxAvatarType];
5648
imports: [IgxIconComponent, NgTemplateOutlet]
5749
})
5850
export class IgxAvatarComponent implements OnInit {
51+
public elementRef = inject(ElementRef);
52+
5953
/**
6054
* Returns the `aria-label` attribute of the avatar.
6155
*
@@ -332,8 +326,6 @@ export class IgxAvatarComponent implements OnInit {
332326
}
333327
}
334328

335-
constructor(public elementRef: ElementRef) { }
336-
337329
/**
338330
* Returns the css url of the image.
339331
*

projects/igniteui-angular/src/lib/banner/banner.component.ts

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,4 @@
1-
import {
2-
Component,
3-
ContentChild,
4-
ElementRef,
5-
EventEmitter,
6-
HostBinding,
7-
Input,
8-
Output,
9-
ViewChild
10-
} from '@angular/core';
1+
import { Component, ContentChild, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild, inject } from '@angular/core';
112

123
import { IgxIconComponent } from '../icon/icon.component';
134
import { IToggleView } from '../core/navigation';
@@ -51,6 +42,8 @@ export interface BannerCancelEventArgs extends BannerEventArgs, CancelableEventA
5142
imports: [IgxExpansionPanelComponent, IgxExpansionPanelBodyComponent, IgxButtonDirective, IgxRippleDirective]
5243
})
5344
export class IgxBannerComponent implements IToggleView {
45+
public elementRef = inject<ElementRef<HTMLElement>>(ElementRef);
46+
5447
/**
5548
* @hidden
5649
*/
@@ -237,8 +230,6 @@ export class IgxBannerComponent implements IToggleView {
237230
private _animationSettings: ToggleAnimationSettings;
238231
private _resourceStrings = getCurrentResourceStrings(BannerResourceStringsEN);
239232

240-
constructor(public elementRef: ElementRef<HTMLElement>) { }
241-
242233
/**
243234
* Opens the banner
244235
*

projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component.ts

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,4 @@
1-
import {
2-
AfterViewInit,
3-
Component,
4-
ContentChildren,
5-
ChangeDetectorRef,
6-
EventEmitter,
7-
HostBinding,
8-
Input,
9-
Output,
10-
QueryList,
11-
Renderer2,
12-
ViewChildren,
13-
OnDestroy,
14-
ElementRef,
15-
booleanAttribute
16-
} from '@angular/core';
1+
import { AfterViewInit, Component, ContentChildren, ChangeDetectorRef, EventEmitter, HostBinding, Input, Output, QueryList, Renderer2, ViewChildren, OnDestroy, ElementRef, booleanAttribute, inject } from '@angular/core';
172
import { Subject } from 'rxjs';
183
import { IgxButtonDirective } from '../directives/button/button.directive';
194
import { IgxRippleDirective } from '../directives/ripple/ripple.directive';
@@ -59,6 +44,10 @@ let NEXT_ID = 0;
5944
imports: [IgxButtonDirective, IgxRippleDirective, IgxIconComponent]
6045
})
6146
export class IgxButtonGroupComponent implements AfterViewInit, OnDestroy {
47+
private _cdr = inject(ChangeDetectorRef);
48+
private _renderer = inject(Renderer2);
49+
private _el = inject(ElementRef);
50+
6251
/**
6352
* A collection containing all buttons inside the button group.
6453
*/
@@ -309,12 +298,6 @@ export class IgxButtonGroupComponent implements AfterViewInit, OnDestroy {
309298
subtree: true,
310299
};
311300

312-
constructor(
313-
private _cdr: ChangeDetectorRef,
314-
private _renderer: Renderer2,
315-
private _el: ElementRef
316-
) {}
317-
318301
/**
319302
* Gets the selected button/buttons.
320303
* ```typescript

0 commit comments

Comments
 (0)