Skip to content

Commit 9c41845

Browse files
committed
refactor: remove eager change detection strategy. Defaults to onPush
1 parent 1f7cb81 commit 9c41845

768 files changed

Lines changed: 833 additions & 1597 deletions

File tree

Some content is hidden

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

projects/app-crm/src/app/app.component.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Component, OnInit, DOCUMENT, inject, ChangeDetectionStrategy } from '@angular/core';
1+
import { Component, OnInit, DOCUMENT, inject } from '@angular/core';
22
import { SEOService } from '../../../app-lob/src/app/seo.service';
33
import { RouterOutlet } from '@angular/router';
44

@@ -7,7 +7,6 @@ import { RouterOutlet } from '@angular/router';
77
selector: 'app-root',
88
styleUrls: ['./app.component.scss'],
99
templateUrl: './app.component.html',
10-
changeDetection: ChangeDetectionStrategy.Eager,
1110
imports: [RouterOutlet]
1211
})
1312
export class AppComponent implements OnInit {

projects/app-crm/src/app/grid-crm/grid-crm.component.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* eslint-disable no-underscore-dangle */
2-
import { AfterViewInit, Component, ElementRef, OnInit, QueryList, ViewChild, inject, ChangeDetectionStrategy } from '@angular/core';
2+
import { AfterViewInit, Component, ElementRef, OnInit, QueryList, ViewChild, inject } from '@angular/core';
33
import { ActivatedRoute } from '@angular/router';
44
import { CloseScrollStrategy, ConnectedPositioningStrategy, HorizontalAlignment, IgxSummaryResult, OverlaySettings, PositionSettings, VerticalAlignment } from 'igniteui-angular/core';
55
import { CellType, GridSelectionMode, IgxCellTemplateDirective, IgxColumnComponent, IgxDateSummaryOperand, IgxGridToolbarActionsComponent, IgxGridToolbarComponent, IgxGridToolbarExporterComponent, IgxGridToolbarHidingComponent, IgxGridToolbarPinningComponent, IgxGridToolbarTitleComponent, IgxNumberSummaryOperand, IColumnExportingEventArgs, IgxCsvExporterService, IgxExcelExporterService } from 'igniteui-angular/grids/core';
@@ -75,7 +75,6 @@ class SoonSummary extends IgxDateSummaryOperand {
7575
selector: 'app-grid',
7676
styleUrls: ['./grid-crm.component.scss'],
7777
templateUrl: './grid-crm.component.html',
78-
changeDetection: ChangeDetectionStrategy.Eager,
7978
imports: [NgClass, IgxGridComponent, IgxPreventDocumentScrollDirective, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarHidingComponent, IgxGridToolbarPinningComponent, IgxGridToolbarExporterComponent, IgxGridToolbarTitleComponent, IgxInputGroupComponent, IgxPrefixDirective, IgxIconComponent, FormsModule, IgxInputDirective, IgxSuffixDirective, IgxIconButtonDirective, IgxColumnComponent, IgxCellTemplateDirective, IgxAvatarComponent, IgxLinearProgressBarComponent]
8079
})
8180
export class GridCRMComponent implements OnInit, AfterViewInit {

projects/app-lob/src/app/app.component.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
import { Component, HostListener, OnInit, DOCUMENT, inject, ChangeDetectionStrategy } from '@angular/core';
2+
import { Component, HostListener, OnInit, DOCUMENT, inject } from '@angular/core';
33
import { ActivatedRoute, NavigationEnd, Router, RouterOutlet } from '@angular/router';
44
import { filter, map, mergeMap } from 'rxjs/operators';
55
import { SEOService } from './seo.service';
@@ -8,7 +8,6 @@ import { SEOService } from './seo.service';
88
selector: 'app-root',
99
styleUrls: ['./app.component.scss'],
1010
templateUrl: './app.component.html',
11-
changeDetection: ChangeDetectionStrategy.Eager,
1211
imports: [RouterOutlet]
1312
})
1413
export class AppComponent implements OnInit {

projects/app-lob/src/app/grid-dynamic-chart-data/data-analysis-dock-manager/data-analysis-dock-manager.component.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* eslint-disable max-len */
2-
import { AfterViewInit, ChangeDetectorRef, ViewContainerRef, Component, CUSTOM_ELEMENTS_SCHEMA, ElementRef, OnInit, Pipe, PipeTransform, QueryList, ViewChild, ViewChildren, TemplateRef, inject, ChangeDetectionStrategy } from '@angular/core';
2+
import { AfterViewInit, ChangeDetectorRef, ViewContainerRef, Component, CUSTOM_ELEMENTS_SCHEMA, ElementRef, OnInit, Pipe, PipeTransform, QueryList, ViewChild, ViewChildren, TemplateRef, inject } from '@angular/core';
33
import { IgxChartIntegrationDirective, IgxConditionalFormattingDirective, IgxContextMenuDirective, OPTIONS_TYPE, CHART_TYPE, IDeterminedChartTypesArgs } from 'igniteui-angular-extras';
44
import { IgcDockManagerLayout, IgcDockManagerPaneType, IgcSplitPane, IgcSplitPaneOrientation } from 'igniteui-dockmanager';
55
import { FinancialData } from '../../data/financialData';
@@ -58,7 +58,6 @@ export class HastDuplicateLayouts implements PipeTransform {
5858
styleUrls: ['./data-analysis-dock-manager.component.scss'],
5959
providers: [FloatingPanesService],
6060
imports: [IgxGridComponent, IgxConditionalFormattingDirective, IgxChartIntegrationDirective, IgxContextMenuDirective, IgxBadgeComponent, IgxColumnComponent, IgxCellTemplateDirective, NgClass, IgxDividerDirective, DockSlotComponent, DecimalPipe, TitleCasePipe, CurrencyPipe, FilterTypePipe, HastDuplicateLayouts],
61-
changeDetection: ChangeDetectionStrategy.Eager,
6261
schemas: [CUSTOM_ELEMENTS_SCHEMA]
6362
})
6463
export class DataAnalysisDockManagerComponent implements OnInit, AfterViewInit {

projects/app-lob/src/app/grid-dynamic-chart-data/data-analysis-dock-manager/dock-slot/dock-slot.component.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
import { Component, HostBinding, Input, OnInit, ViewChild, ChangeDetectionStrategy } from '@angular/core';
1+
import { Component, HostBinding, Input, OnInit, ViewChild } from '@angular/core';
22
import { ChartHostDirective } from '../../directives/chart-integration/chart-integration.directive';
33

44
@Component({
55
selector: 'app-dock-slot',
66
templateUrl: './dock-slot.component.html',
77
styleUrls: ['./dock-slot.component.scss'],
8-
changeDetection: ChangeDetectionStrategy.Eager,
98
imports: [ChartHostDirective]
109
})
1110
export class DockSlotComponent implements OnInit {

projects/app-lob/src/app/grid-dynamic-chart-data/grid-dynamic-chart-data.component.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* eslint-disable max-len */
2-
import { AfterViewInit, Component, OnInit, ViewChild, ChangeDetectionStrategy } from '@angular/core';
2+
import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';
33
import { IgxChartIntegrationDirective, IgxContextMenuDirective, IgxConditionalFormattingDirective, OPTIONS_TYPE, CHART_TYPE } from 'igniteui-angular-extras';
44

55
import { FinancialData } from '../data/financialData';
@@ -11,7 +11,6 @@ import { DecimalPipe, CurrencyPipe } from '@angular/common';
1111
selector: 'app-grid-dynamic-chart-data',
1212
templateUrl: './grid-dynamic-chart-data.component.html',
1313
styleUrls: ['./grid-dynamic-chart-data.component.scss'],
14-
changeDetection: ChangeDetectionStrategy.Eager,
1514
imports: [IgxGridComponent, IgxChartIntegrationDirective, IgxConditionalFormattingDirective, IgxContextMenuDirective, IgxColumnComponent, IgxCellTemplateDirective, DecimalPipe, CurrencyPipe]
1615
})
1716
export class GridDynamicChartDataComponent implements OnInit, AfterViewInit {

projects/app-lob/src/app/grid-finjs-dock-manager/dock-slot.component.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
// eslint-disable-next-line max-len
2-
import { AfterViewInit, Component, Directive, EventEmitter, HostBinding, Input, OnInit, OnDestroy, Output, ViewChild, ViewContainerRef, inject, ChangeDetectionStrategy } from '@angular/core';
2+
import { AfterViewInit, Component, Directive, EventEmitter, HostBinding, Input, OnInit, OnDestroy, Output, ViewChild, ViewContainerRef, inject } from '@angular/core';
33
import { Subject } from 'rxjs';
44

55
@Directive({
66
// eslint-disable-next-line @angular-eslint/directive-selector
77
selector: '[gridHost]'
88
})
9-
export class GridHostDirective { viewContainerRef = inject(ViewContainerRef);
10-
9+
export class GridHostDirective {
10+
viewContainerRef = inject(ViewContainerRef);
11+
1112
}
1213

1314
@Component({
@@ -16,7 +17,6 @@ export class GridHostDirective { viewContainerRef = inject(ViewContainerRef)
1617
<div style='width: 100%; height: 100%; overflow-x: hidden;'>
1718
<ng-template gridHost></ng-template>
1819
</div>`,
19-
changeDetection: ChangeDetectionStrategy.Eager,
2020
imports: [GridHostDirective]
2121
})
2222
export class DockSlotComponent implements OnInit, AfterViewInit, OnDestroy {

projects/app-lob/src/app/grid-finjs-dock-manager/grid-finjs-dock-manager.component.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* eslint-disable max-len */
2-
import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Renderer2, OnDestroy, OnInit, DoCheck, TemplateRef, ViewChild, ViewContainerRef, ViewEncapsulation, CUSTOM_ELEMENTS_SCHEMA, inject, ChangeDetectionStrategy } from '@angular/core';
2+
import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Renderer2, OnDestroy, OnInit, DoCheck, TemplateRef, ViewChild, ViewContainerRef, ViewEncapsulation, CUSTOM_ELEMENTS_SCHEMA, inject } from '@angular/core';
33
import { AbsoluteScrollStrategy, ConnectedPositioningStrategy, DefaultSortingStrategy, GridColumnDataType, IgxOverlayOutletDirective, OverlaySettings, SortingDirection } from 'igniteui-angular/core';
44
import { IgxCellTemplateDirective, IgxColumnComponent } from 'igniteui-angular/grids/core';
55
import { IgxGridComponent } from 'igniteui-angular/grids/grid';
@@ -24,7 +24,6 @@ import { AsyncPipe, CurrencyPipe } from '@angular/common';
2424
templateUrl: './grid-finjs-dock-manager.component.html',
2525
styleUrls: ['./grid-finjs-dock-manager.component.scss'],
2626
imports: [IgxSwitchComponent, FormsModule, IgxSelectComponent, IgxLabelDirective, IgxPrefixDirective, IgxIconComponent, IgxSelectItemComponent, IgxButtonDirective, IgxOverlayOutletDirective, IgxGridComponent, IgxColumnComponent, IgxCellTemplateDirective, IgxPaginatorComponent, GridHostDirective, AsyncPipe, CurrencyPipe],
27-
changeDetection: ChangeDetectionStrategy.Eager,
2827
schemas: [CUSTOM_ELEMENTS_SCHEMA]
2928
})
3029
export class GridFinJSDockManagerComponent implements OnInit, OnDestroy, AfterViewInit, DoCheck {

projects/app-lob/src/app/grid-finjs/controllers.component.ts

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,24 @@
1-
import { Component, EventEmitter, OnDestroy, OnInit, Output, ViewChild, inject, ChangeDetectionStrategy } from '@angular/core';
1+
import { Component, EventEmitter, OnDestroy, OnInit, Output, ViewChild, inject } from '@angular/core';
22
import { ActivatedRoute } from '@angular/router';
3-
import { IButtonGroupEventArgs, IgxButtonGroupComponent } from 'igniteui-angular/button-group';
4-
import { IChangeCheckboxEventArgs } from 'igniteui-angular/checkbox';
5-
import { ISliderValueChangeEventArgs, IgxSliderComponent } from 'igniteui-angular/slider';
6-
import { IgxToastComponent } from 'igniteui-angular/toast';
7-
import { VerticalAlignment } from 'igniteui-angular/core';
3+
import { IButtonGroupEventArgs, IgxButtonGroupComponent } from 'igniteui-angular/button-group';
4+
import { IChangeCheckboxEventArgs } from 'igniteui-angular/checkbox';
5+
import { ISliderValueChangeEventArgs, IgxSliderComponent } from 'igniteui-angular/slider';
6+
import { IgxToastComponent } from 'igniteui-angular/toast';
7+
import { VerticalAlignment } from 'igniteui-angular/core';
88
import { IgxSwitchComponent } from 'igniteui-angular/switch';
99
import { Observable, Subscription, timer } from 'rxjs';
10-
import { debounce } from 'rxjs/operators';
11-
10+
import { debounce } from 'rxjs/operators';
11+
1212
import { FormsModule } from '@angular/forms';
1313

14-
@Component({
15-
selector: 'app-finjs-controllers',
16-
styleUrls: ['./controllers.component.scss'],
17-
templateUrl: './controllers.component.html',
18-
changeDetection: ChangeDetectionStrategy.Eager,
19-
imports: [IgxSwitchComponent, FormsModule, IgxSliderComponent, IgxButtonGroupComponent, IgxToastComponent]
14+
@Component({
15+
selector: 'app-finjs-controllers',
16+
styleUrls: ['./controllers.component.scss'],
17+
templateUrl: './controllers.component.html',
18+
imports: [IgxSwitchComponent, FormsModule, IgxSliderComponent, IgxButtonGroupComponent, IgxToastComponent]
2019
})
21-
export class ControllerComponent implements OnInit, OnDestroy {
22-
private router = inject(ActivatedRoute);
20+
export class ControllerComponent implements OnInit, OnDestroy {
21+
private router = inject(ActivatedRoute);
2322

2423
@ViewChild('buttonGroup1', { static: true }) public playButtons: IgxButtonGroupComponent;
2524
@ViewChild('slider1', { static: true }) public volumeSlider: IgxSliderComponent;
@@ -69,7 +68,7 @@ export class ControllerComponent implements OnInit, OnDestroy {
6968
this.frequencyChanged$ = this.intervalSlider.valueChange.pipe(debounce(() => timer(200)));
7069
this.frequencyChangedSubscription = this.frequencyChanged$
7170
.subscribe(() => this.frequencyChanged.emit(this.intervalSlider.value as number));
72-
71+
7372
this.toast.positionSettings.verticalDirection = VerticalAlignment.Middle;
7473

7574
// Hide theme switcher

projects/app-lob/src/app/grid-finjs/grid-finjs.component.ts

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* eslint-disable max-len */
22
import { AsyncPipe, CurrencyPipe } from '@angular/common';
3-
import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, DOCUMENT, inject, ChangeDetectionStrategy } from '@angular/core';
3+
import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, DOCUMENT, inject } from '@angular/core';
44
import { CellType, GridSelectionMode, IColumnExportingEventArgs, IGridKeydownEventArgs, IRowSelectionEventArgs, IgxCellEditorTemplateDirective, IgxCellTemplateDirective, IgxColumnComponent, IgxExcelTextDirective, IgxExporterEvent, IgxGridToolbarActionsComponent, IgxGridToolbarComponent, IgxGridToolbarExporterComponent, IgxGridToolbarHidingComponent, IgxGridToolbarPinningComponent, IgxPdfExporterOptions, IgxPdfExporterService, IgxPdfTextDirective } from 'igniteui-angular/grids/core';
55
import { DefaultSortingStrategy, IgxOverlayOutletDirective, OverlaySettings, SortingDirection } from 'igniteui-angular/core';
66
import { IgxGridComponent } from 'igniteui-angular/grids/grid';
@@ -17,15 +17,14 @@ import { FormsModule } from '@angular/forms';
1717
selector: 'app-finjs-grid',
1818
templateUrl: './grid-finjs.component.html',
1919
styleUrls: ['./grid-finjs.component.scss'],
20-
changeDetection: ChangeDetectionStrategy.Eager,
2120
imports: [IgxGridComponent, IgxPreventDocumentScrollDirective, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarHidingComponent, IgxGridToolbarPinningComponent, IgxGridToolbarExporterComponent, IgxExcelTextDirective, IgxPdfTextDirective, IgxColumnComponent, IgxCellEditorTemplateDirective, IgxSelectComponent, FormsModule, IgxFocusDirective, IgxSelectItemComponent, IgxCellTemplateDirective, IgxIconComponent, IgxIconButtonDirective, IgxOverlayOutletDirective, AsyncPipe, CurrencyPipe]
2221
})
2322
export class GridFinJSComponent implements OnInit {
24-
private el = inject(ElementRef);
25-
private document = inject<Document>(DOCUMENT);
26-
private pdfExportService = inject(IgxPdfExporterService);
27-
private cdr = inject(ChangeDetectorRef);
28-
dataService = inject(SignalRService);
23+
private el = inject(ElementRef);
24+
private document = inject<Document>(DOCUMENT);
25+
private pdfExportService = inject(IgxPdfExporterService);
26+
private cdr = inject(ChangeDetectorRef);
27+
dataService = inject(SignalRService);
2928

3029
@ViewChild('grid1', { static: true }) public grid: IgxGridComponent;
3130
@ViewChild(IgxOverlayOutletDirective, { static: true }) public outlet: IgxOverlayOutletDirective;
@@ -54,12 +53,12 @@ export class GridFinJSComponent implements OnInit {
5453
this.overlaySettings.outlet = this.outlet;
5554
this.data$ = this.dataService.data;
5655

57-
this.data$.subscribe((data) => {
58-
if (data.length !== 0) {
59-
this.isLoading = false;
60-
this.cdr.markForCheck();
61-
};
62-
});
56+
this.data$.subscribe((data) => {
57+
if (data.length !== 0) {
58+
this.isLoading = false;
59+
this.cdr.markForCheck();
60+
};
61+
});
6362

6463
// Set initially grouped columns
6564
this.toggleGrouping();

0 commit comments

Comments
 (0)