Browse Source

feat: add data decimation option to line chart

pull/7550/head
“Sebastian 2 weeks ago
parent
commit
bcbe741715
  1. 1
      CHANGELOG.md
  2. 9
      libs/ui/src/lib/line-chart/line-chart.component.ts

1
CHANGELOG.md

@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Added the platform logo to the platform selector in the create or update account dialog - Added the platform logo to the platform selector in the create or update account dialog
- Added the platform logo to the account selector in the create or update activity dialog - Added the platform logo to the account selector in the create or update activity dialog
- Extended the value component by an `isLoading` attribute to distinguish the loading state from redacted values - Extended the value component by an `isLoading` attribute to distinguish the loading state from redacted values
- Added the option to enable data decimation in the line chart component
### Changed ### Changed

9
libs/ui/src/lib/line-chart/line-chart.component.ts

@ -23,6 +23,7 @@ import {
import { import {
type AnimationsSpec, type AnimationsSpec,
Chart, Chart,
Decimation,
Filler, Filler,
LinearScale, LinearScale,
LineController, LineController,
@ -54,6 +55,7 @@ export class GfLineChartComponent
@Input() benchmarkLabel = ''; @Input() benchmarkLabel = '';
@Input() colorScheme: ColorScheme; @Input() colorScheme: ColorScheme;
@Input() currency: string; @Input() currency: string;
@Input() dataDecimation = false;
@Input() historicalDataItems: LineChartItem[]; @Input() historicalDataItems: LineChartItem[];
@Input() isAnimated = false; @Input() isAnimated = false;
@Input() label: string; @Input() label: string;
@ -78,6 +80,7 @@ export class GfLineChartComponent
public constructor(private changeDetectorRef: ChangeDetectorRef) { public constructor(private changeDetectorRef: ChangeDetectorRef) {
Chart.register( Chart.register(
Decimation,
Filler, Filler,
LineController, LineController,
LineElement, LineElement,
@ -183,6 +186,9 @@ export class GfLineChartComponent
this.chart.options.plugins ??= {}; this.chart.options.plugins ??= {};
this.chart.options.plugins.tooltip = this.chart.options.plugins.tooltip =
this.getTooltipPluginConfiguration(); this.getTooltipPluginConfiguration();
this.chart.options.plugins.decimation = this.dataDecimation
? { algorithm: 'lttb', enabled: true }
: undefined;
this.chart.options.animations = this.isAnimated this.chart.options.animations = this.isAnimated
? animations ? animations
: undefined; : undefined;
@ -202,6 +208,9 @@ export class GfLineChartComponent
}, },
interaction: { intersect: false, mode: 'index' }, interaction: { intersect: false, mode: 'index' },
plugins: { plugins: {
decimation: this.dataDecimation
? { algorithm: 'lttb', enabled: true }
: undefined,
legend: { legend: {
align: 'start', align: 'start',
display: this.showLegend, display: this.showLegend,

Loading…
Cancel
Save