From 29dcee9db3808092b95a54b3e11044117831495f Mon Sep 17 00:00:00 2001 From: "Bajohr, Rayk" Date: Fri, 19 Jun 2026 10:30:59 +0200 Subject: [PATCH] refactor(charts): explicitly define change detection strategy --- .../cartesian/si-chart-cartesian.component.ts | 5 +++-- projects/charts-ng/chart/si-chart.component.ts | 5 +++-- .../circle/si-chart-circle.component.spec.ts | 5 +++-- .../charts-ng/circle/si-chart-circle.component.ts | 5 +++-- projects/charts-ng/common/si-chart-base.component.ts | 2 ++ .../custom-legend/si-custom-legend.component.ts | 12 ++++++++++-- projects/charts-ng/gauge/si-chart-gauge.component.ts | 4 +++- .../progress-bar/si-chart-progress-bar.component.ts | 5 +++-- .../progress/si-chart-progress.component.ts | 5 +++-- .../sankey/si-chart-sankey.component.spec.ts | 5 +++-- .../charts-ng/sankey/si-chart-sankey.component.ts | 5 +++-- .../sunburst/si-chart-sunburst.component.spec.ts | 5 +++-- .../sunburst/si-chart-sunburst.component.ts | 5 +++-- 13 files changed, 45 insertions(+), 23 deletions(-) diff --git a/projects/charts-ng/cartesian/si-chart-cartesian.component.ts b/projects/charts-ng/cartesian/si-chart-cartesian.component.ts index e82695f351..ac2e3fdaa6 100644 --- a/projects/charts-ng/cartesian/si-chart-cartesian.component.ts +++ b/projects/charts-ng/cartesian/si-chart-cartesian.component.ts @@ -2,7 +2,7 @@ * Copyright (c) Siemens 2016 - 2026 * SPDX-License-Identifier: MIT */ -import { Component, input, OnChanges, SimpleChanges } from '@angular/core'; +import { ChangeDetectionStrategy, Component, input, OnChanges, SimpleChanges } from '@angular/core'; import { echarts, GridComponentOption, @@ -66,7 +66,8 @@ echarts.use([ selector: 'si-chart-cartesian', imports: [SiCustomLegendComponent, SiChartLoadingSpinnerComponent], templateUrl: '../common/si-chart-base.component.html', - styleUrl: '../common/si-chart-base.component.scss' + styleUrl: '../common/si-chart-base.component.scss', + changeDetection: ChangeDetectionStrategy.Default }) export class SiChartCartesianComponent extends SiChartBaseComponent implements OnChanges { /** The series for the chart. */ diff --git a/projects/charts-ng/chart/si-chart.component.ts b/projects/charts-ng/chart/si-chart.component.ts index 5ed7a3ad8b..9447a7eff1 100644 --- a/projects/charts-ng/chart/si-chart.component.ts +++ b/projects/charts-ng/chart/si-chart.component.ts @@ -2,7 +2,7 @@ * Copyright (c) Siemens 2016 - 2026 * SPDX-License-Identifier: MIT */ -import { Component } from '@angular/core'; +import { ChangeDetectionStrategy, Component } from '@angular/core'; import { echarts, SiChartBaseComponent } from '@siemens/charts-ng/common'; import { SiCustomLegendComponent } from '@siemens/charts-ng/custom-legend'; import { SiChartLoadingSpinnerComponent } from '@siemens/charts-ng/loading-spinner'; @@ -66,6 +66,7 @@ echarts.use([ selector: 'si-chart', imports: [SiCustomLegendComponent, SiChartLoadingSpinnerComponent], templateUrl: '../common/si-chart-base.component.html', - styleUrl: '../common/si-chart-base.component.scss' + styleUrl: '../common/si-chart-base.component.scss', + changeDetection: ChangeDetectionStrategy.Default }) export class SiChartComponent extends SiChartBaseComponent {} diff --git a/projects/charts-ng/circle/si-chart-circle.component.spec.ts b/projects/charts-ng/circle/si-chart-circle.component.spec.ts index 9284c81726..85d8678251 100644 --- a/projects/charts-ng/circle/si-chart-circle.component.spec.ts +++ b/projects/charts-ng/circle/si-chart-circle.component.spec.ts @@ -2,7 +2,7 @@ * Copyright (c) Siemens 2016 - 2026 * SPDX-License-Identifier: MIT */ -import { Component, SimpleChange, viewChild } from '@angular/core'; +import { ChangeDetectionStrategy, Component, SimpleChange, viewChild } from '@angular/core'; import { TestBed } from '@angular/core/testing'; import { SiChartCircleComponent } from './si-chart-circle.component'; @@ -18,7 +18,8 @@ import { CircleChartSeries } from './si-chart-circle.interface'; [title]="title" [subTitle]="subTitle" /> - ` + `, + changeDetection: ChangeDetectionStrategy.Default }) class TestHostComponent { readonly chartCircleComponent = viewChild.required(SiChartCircleComponent); diff --git a/projects/charts-ng/circle/si-chart-circle.component.ts b/projects/charts-ng/circle/si-chart-circle.component.ts index 85bc047c85..a40a86e7c2 100644 --- a/projects/charts-ng/circle/si-chart-circle.component.ts +++ b/projects/charts-ng/circle/si-chart-circle.component.ts @@ -2,7 +2,7 @@ * Copyright (c) Siemens 2016 - 2026 * SPDX-License-Identifier: MIT */ -import { Component, input } from '@angular/core'; +import { ChangeDetectionStrategy, Component, input } from '@angular/core'; import { SiChartBaseComponent, PieSeriesOption, echarts } from '@siemens/charts-ng/common'; import { SiCustomLegendComponent } from '@siemens/charts-ng/custom-legend'; import { SiChartLoadingSpinnerComponent } from '@siemens/charts-ng/loading-spinner'; @@ -17,7 +17,8 @@ echarts.use([PieChart, LegendComponent]); selector: 'si-chart-circle', imports: [SiCustomLegendComponent, SiChartLoadingSpinnerComponent], templateUrl: '../common/si-chart-base.component.html', - styleUrl: '../common/si-chart-base.component.scss' + styleUrl: '../common/si-chart-base.component.scss', + changeDetection: ChangeDetectionStrategy.Default }) export class SiChartCircleComponent extends SiChartBaseComponent { /** The series for the chart. */ diff --git a/projects/charts-ng/common/si-chart-base.component.ts b/projects/charts-ng/common/si-chart-base.component.ts index b38c99cd63..2240a1ce28 100644 --- a/projects/charts-ng/common/si-chart-base.component.ts +++ b/projects/charts-ng/common/si-chart-base.component.ts @@ -4,6 +4,7 @@ */ import { AfterViewInit, + ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, @@ -55,6 +56,7 @@ import { themeSupport } from './theme-support'; imports: [SiCustomLegendComponent, SiChartLoadingSpinnerComponent], templateUrl: './si-chart-base.component.html', styleUrl: './si-chart-base.component.scss', + changeDetection: ChangeDetectionStrategy.Default, host: { '(window:theme-switch)': 'themeSwitch()' } diff --git a/projects/charts-ng/custom-legend/si-custom-legend.component.ts b/projects/charts-ng/custom-legend/si-custom-legend.component.ts index 63eaf79e09..40f7c46b3d 100644 --- a/projects/charts-ng/custom-legend/si-custom-legend.component.ts +++ b/projects/charts-ng/custom-legend/si-custom-legend.component.ts @@ -2,14 +2,22 @@ * Copyright (c) Siemens 2016 - 2026 * SPDX-License-Identifier: MIT */ -import { Component, ElementRef, input, output, viewChild } from '@angular/core'; +import { + ChangeDetectionStrategy, + Component, + ElementRef, + input, + output, + viewChild +} from '@angular/core'; import { CustomLegend, CustomLegendItem } from './si-custom-legend.interface'; @Component({ selector: 'si-custom-legend', templateUrl: './si-custom-legend.component.html', - styleUrl: './si-custom-legend.component.scss' + styleUrl: './si-custom-legend.component.scss', + changeDetection: ChangeDetectionStrategy.Default }) export class SiCustomLegendComponent { /** @internal */ diff --git a/projects/charts-ng/gauge/si-chart-gauge.component.ts b/projects/charts-ng/gauge/si-chart-gauge.component.ts index f4938ca66c..7bd00277be 100644 --- a/projects/charts-ng/gauge/si-chart-gauge.component.ts +++ b/projects/charts-ng/gauge/si-chart-gauge.component.ts @@ -4,6 +4,7 @@ */ import { booleanAttribute, + ChangeDetectionStrategy, Component, computed, inject, @@ -26,7 +27,8 @@ echarts.use([GaugeChart]); selector: 'si-chart-gauge', imports: [SiCustomLegendComponent, SiChartLoadingSpinnerComponent], templateUrl: '../common/si-chart-base.component.html', - styleUrl: '../common/si-chart-base.component.scss' + styleUrl: '../common/si-chart-base.component.scss', + changeDetection: ChangeDetectionStrategy.Default }) export class SiChartGaugeComponent extends SiChartBaseComponent implements OnChanges { /** @defaultValue 0 */ diff --git a/projects/charts-ng/progress-bar/si-chart-progress-bar.component.ts b/projects/charts-ng/progress-bar/si-chart-progress-bar.component.ts index 24a45e0aff..1a47e6ed5a 100644 --- a/projects/charts-ng/progress-bar/si-chart-progress-bar.component.ts +++ b/projects/charts-ng/progress-bar/si-chart-progress-bar.component.ts @@ -2,7 +2,7 @@ * Copyright (c) Siemens 2016 - 2026 * SPDX-License-Identifier: MIT */ -import { Component, input } from '@angular/core'; +import { ChangeDetectionStrategy, Component, input } from '@angular/core'; import { SiChartBaseComponent, echarts, @@ -24,7 +24,8 @@ echarts.use([BarChart, GridComponent, LegacyGridContainLabel]); selector: 'si-chart-progress-bar', imports: [SiCustomLegendComponent, SiChartLoadingSpinnerComponent], templateUrl: '../common/si-chart-base.component.html', - styleUrl: '../common/si-chart-base.component.scss' + styleUrl: '../common/si-chart-base.component.scss', + changeDetection: ChangeDetectionStrategy.Default }) export class SiChartProgressBarComponent extends SiChartBaseComponent { /** The series for the chart. */ diff --git a/projects/charts-ng/progress/si-chart-progress.component.ts b/projects/charts-ng/progress/si-chart-progress.component.ts index 201dcfc1ef..fb2b1979f9 100644 --- a/projects/charts-ng/progress/si-chart-progress.component.ts +++ b/projects/charts-ng/progress/si-chart-progress.component.ts @@ -2,7 +2,7 @@ * Copyright (c) Siemens 2016 - 2026 * SPDX-License-Identifier: MIT */ -import { Component, input } from '@angular/core'; +import { ChangeDetectionStrategy, Component, input } from '@angular/core'; import { SiChartBaseComponent, echarts } from '@siemens/charts-ng/common'; import { SiCustomLegendComponent } from '@siemens/charts-ng/custom-legend'; import { SiChartLoadingSpinnerComponent } from '@siemens/charts-ng/loading-spinner'; @@ -18,7 +18,8 @@ echarts.use([PieChart, LegendComponent]); selector: 'si-chart-progress', imports: [SiCustomLegendComponent, SiChartLoadingSpinnerComponent], templateUrl: '../common/si-chart-base.component.html', - styleUrl: '../common/si-chart-base.component.scss' + styleUrl: '../common/si-chart-base.component.scss', + changeDetection: ChangeDetectionStrategy.Default }) export class SiChartProgressComponent extends SiChartBaseComponent { /** The series for the chart. */ diff --git a/projects/charts-ng/sankey/si-chart-sankey.component.spec.ts b/projects/charts-ng/sankey/si-chart-sankey.component.spec.ts index fb4001d860..45163c78a0 100644 --- a/projects/charts-ng/sankey/si-chart-sankey.component.spec.ts +++ b/projects/charts-ng/sankey/si-chart-sankey.component.spec.ts @@ -2,7 +2,7 @@ * Copyright (c) Siemens 2016 - 2026 * SPDX-License-Identifier: MIT */ -import { Component, SimpleChange, viewChild } from '@angular/core'; +import { ChangeDetectionStrategy, Component, SimpleChange, viewChild } from '@angular/core'; import { TestBed } from '@angular/core/testing'; import { SankeySeriesOption } from '@siemens/charts-ng/common'; @@ -17,7 +17,8 @@ import { SiChartSankeyComponent } from './si-chart-sankey.component'; [title]="title" [subTitle]="subTitle" /> - ` + `, + changeDetection: ChangeDetectionStrategy.Default }) class TestHostComponent { readonly chartSankeyComponent = viewChild.required(SiChartSankeyComponent); diff --git a/projects/charts-ng/sankey/si-chart-sankey.component.ts b/projects/charts-ng/sankey/si-chart-sankey.component.ts index 0e0c67dcf1..dfa2f9750a 100644 --- a/projects/charts-ng/sankey/si-chart-sankey.component.ts +++ b/projects/charts-ng/sankey/si-chart-sankey.component.ts @@ -2,7 +2,7 @@ * Copyright (c) Siemens 2016 - 2026 * SPDX-License-Identifier: MIT */ -import { Component, input } from '@angular/core'; +import { ChangeDetectionStrategy, Component, input } from '@angular/core'; import { SiChartBaseComponent, SankeySeriesOption, echarts } from '@siemens/charts-ng/common'; import { SiCustomLegendComponent } from '@siemens/charts-ng/custom-legend'; import { SiChartLoadingSpinnerComponent } from '@siemens/charts-ng/loading-spinner'; @@ -14,7 +14,8 @@ echarts.use([SankeyChart]); selector: 'si-chart-sankey', imports: [SiCustomLegendComponent, SiChartLoadingSpinnerComponent], templateUrl: '../common/si-chart-base.component.html', - styleUrl: '../common/si-chart-base.component.scss' + styleUrl: '../common/si-chart-base.component.scss', + changeDetection: ChangeDetectionStrategy.Default }) export class SiChartSankeyComponent extends SiChartBaseComponent { /** The series for the chart. */ diff --git a/projects/charts-ng/sunburst/si-chart-sunburst.component.spec.ts b/projects/charts-ng/sunburst/si-chart-sunburst.component.spec.ts index 391fdd8afa..cc944369a8 100644 --- a/projects/charts-ng/sunburst/si-chart-sunburst.component.spec.ts +++ b/projects/charts-ng/sunburst/si-chart-sunburst.component.spec.ts @@ -2,7 +2,7 @@ * Copyright (c) Siemens 2016 - 2026 * SPDX-License-Identifier: MIT */ -import { Component, SimpleChange, viewChild } from '@angular/core'; +import { ChangeDetectionStrategy, Component, SimpleChange, viewChild } from '@angular/core'; import { TestBed } from '@angular/core/testing'; import { SunburstSeriesOption } from '@siemens/charts-ng/common'; @@ -17,7 +17,8 @@ import { SiChartSunburstComponent } from './si-chart-sunburst.component'; [title]="title" [subTitle]="subTitle" /> - ` + `, + changeDetection: ChangeDetectionStrategy.Default }) class TestHostComponent { readonly chartSunburstComponent = viewChild.required(SiChartSunburstComponent); diff --git a/projects/charts-ng/sunburst/si-chart-sunburst.component.ts b/projects/charts-ng/sunburst/si-chart-sunburst.component.ts index 771a1e5819..22aa9c79f5 100644 --- a/projects/charts-ng/sunburst/si-chart-sunburst.component.ts +++ b/projects/charts-ng/sunburst/si-chart-sunburst.component.ts @@ -2,7 +2,7 @@ * Copyright (c) Siemens 2016 - 2026 * SPDX-License-Identifier: MIT */ -import { Component, input } from '@angular/core'; +import { ChangeDetectionStrategy, Component, input } from '@angular/core'; import { SiChartBaseComponent, SunburstSeriesOption, echarts } from '@siemens/charts-ng/common'; import { SiCustomLegendComponent } from '@siemens/charts-ng/custom-legend'; import { SiChartLoadingSpinnerComponent } from '@siemens/charts-ng/loading-spinner'; @@ -14,7 +14,8 @@ echarts.use([SunburstChart]); selector: 'si-chart-sunburst', imports: [SiCustomLegendComponent, SiChartLoadingSpinnerComponent], templateUrl: '../common/si-chart-base.component.html', - styleUrl: '../common/si-chart-base.component.scss' + styleUrl: '../common/si-chart-base.component.scss', + changeDetection: ChangeDetectionStrategy.Default }) export class SiChartSunburstComponent extends SiChartBaseComponent { /** The series for the chart. */