- @for (symbolProfile of benchmarks; track symbolProfile) {
+ @for (symbolProfile of benchmarks(); track symbolProfile) {
{{
symbolProfile.name
}}
@@ -41,7 +41,7 @@
- @if (isLoading) {
+ @if (isLoading()) {
diff --git a/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts b/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts
index 83b9c2d90..d2dc9e1bb 100644
--- a/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts
+++ b/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts
@@ -22,7 +22,7 @@ import {
ChangeDetectionStrategy,
Component,
type ElementRef,
- Input,
+ input,
OnChanges,
OnDestroy,
output,
@@ -67,14 +67,14 @@ import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
templateUrl: './benchmark-comparator.component.html'
})
export class GfBenchmarkComparatorComponent implements OnChanges, OnDestroy {
- @Input() benchmark: Partial;
- @Input() benchmarkDataItems: LineChartItem[] = [];
- @Input() benchmarks: Partial[];
- @Input() colorScheme: ColorScheme;
- @Input() isLoading: boolean;
- @Input() locale = getLocale();
- @Input() performanceDataItems: LineChartItem[];
- @Input() user: User;
+ public readonly benchmark = input>();
+ public readonly benchmarkDataItems = input([]);
+ public readonly benchmarks = input[]>();
+ public readonly colorScheme = input.required();
+ public readonly isLoading = input();
+ public readonly locale = input(getLocale());
+ public readonly performanceDataItems = input.required();
+ public readonly user = input();
public readonly benchmarkChanged = output();
@@ -104,11 +104,11 @@ export class GfBenchmarkComparatorComponent implements OnChanges, OnDestroy {
public ngOnChanges() {
this.hasPermissionToAccessAdminControl = hasPermission(
- this.user?.permissions,
+ this.user()?.permissions,
permissions.accessAdminControl
);
- if (this.performanceDataItems) {
+ if (this.performanceDataItems()) {
this.initialize();
}
}
@@ -124,7 +124,7 @@ export class GfBenchmarkComparatorComponent implements OnChanges, OnDestroy {
private initialize() {
const benchmarkDataValues: Record = {};
- for (const { date, value } of this.benchmarkDataItems) {
+ for (const { date, value } of this.benchmarkDataItems()) {
benchmarkDataValues[date] = value;
}
@@ -134,7 +134,7 @@ export class GfBenchmarkComparatorComponent implements OnChanges, OnDestroy {
backgroundColor: `rgb(${primaryColorRgb.r}, ${primaryColorRgb.g}, ${primaryColorRgb.b})`,
borderColor: `rgb(${primaryColorRgb.r}, ${primaryColorRgb.g}, ${primaryColorRgb.b})`,
borderWidth: 2,
- data: this.performanceDataItems.map(({ date, value }) => {
+ data: this.performanceDataItems().map(({ date, value }) => {
return {
x: parseDate(date)?.getTime() ?? null,
y: value * 100
@@ -146,7 +146,7 @@ export class GfBenchmarkComparatorComponent implements OnChanges, OnDestroy {
backgroundColor: `rgb(${secondaryColorRgb.r}, ${secondaryColorRgb.g}, ${secondaryColorRgb.b})`,
borderColor: `rgb(${secondaryColorRgb.r}, ${secondaryColorRgb.g}, ${secondaryColorRgb.b})`,
borderWidth: 2,
- data: this.performanceDataItems.map(({ date }) => {
+ data: this.performanceDataItems().map(({ date }) => {
return {
x: parseDate(date)?.getTime() ?? null,
y: benchmarkDataValues[date]
@@ -175,7 +175,7 @@ export class GfBenchmarkComparatorComponent implements OnChanges, OnDestroy {
tension: 0
},
point: {
- hoverBackgroundColor: getBackgroundColor(this.colorScheme),
+ hoverBackgroundColor: getBackgroundColor(this.colorScheme()),
hoverRadius: 2,
radius: 0
}
@@ -186,7 +186,7 @@ export class GfBenchmarkComparatorComponent implements OnChanges, OnDestroy {
annotation: {
annotations: {
yAxis: {
- borderColor: `rgba(${getTextColor(this.colorScheme)}, 0.1)`,
+ borderColor: `rgba(${getTextColor(this.colorScheme())}, 0.1)`,
borderWidth: 1,
scaleID: 'y',
type: 'line',
@@ -199,14 +199,14 @@ export class GfBenchmarkComparatorComponent implements OnChanges, OnDestroy {
},
tooltip: this.getTooltipPluginConfiguration(),
verticalHoverLine: {
- color: `rgba(${getTextColor(this.colorScheme)}, 0.1)`
+ color: `rgba(${getTextColor(this.colorScheme())}, 0.1)`
}
},
responsive: true,
scales: {
x: {
border: {
- color: `rgba(${getTextColor(this.colorScheme)}, 0.1)`,
+ color: `rgba(${getTextColor(this.colorScheme())}, 0.1)`,
width: 1
},
display: true,
@@ -215,7 +215,7 @@ export class GfBenchmarkComparatorComponent implements OnChanges, OnDestroy {
},
type: 'time',
time: {
- tooltipFormat: getDateFormatString(this.locale),
+ tooltipFormat: getDateFormatString(this.locale()),
unit: 'year'
}
},
@@ -231,7 +231,7 @@ export class GfBenchmarkComparatorComponent implements OnChanges, OnDestroy {
tick.value === scale.max ||
tick.value === scale.min
) {
- return `rgba(${getTextColor(this.colorScheme)}, 0.1)`;
+ return `rgba(${getTextColor(this.colorScheme())}, 0.1)`;
}
return 'transparent';
@@ -250,7 +250,7 @@ export class GfBenchmarkComparatorComponent implements OnChanges, OnDestroy {
}
},
plugins: [
- getVerticalHoverLinePlugin(this.chartCanvas(), this.colorScheme)
+ getVerticalHoverLinePlugin(this.chartCanvas(), this.colorScheme())
],
type: 'line'
});
@@ -261,8 +261,8 @@ export class GfBenchmarkComparatorComponent implements OnChanges, OnDestroy {
private getTooltipPluginConfiguration(): Partial> {
return {
...getTooltipOptions({
- colorScheme: this.colorScheme,
- locale: this.locale,
+ colorScheme: this.colorScheme(),
+ locale: this.locale(),
unit: '%'
}),
mode: 'index',