diff --git a/apps/dev/src/stacked-series-chart/stacked-series-chart-demo.component.html b/apps/dev/src/stacked-series-chart/stacked-series-chart-demo.component.html index 329c678f75..0be766d6ee 100644 --- a/apps/dev/src/stacked-series-chart/stacked-series-chart-demo.component.html +++ b/apps/dev/src/stacked-series-chart/stacked-series-chart-demo.component.html @@ -91,14 +91,7 @@

Selection Mode



- - +
{{ selected | json }}
diff --git a/libs/barista-components/stacked-series-chart/src/stacked-series-chart.spec.ts b/libs/barista-components/stacked-series-chart/src/stacked-series-chart.spec.ts index 72bbee0637..0809c4a947 100644 --- a/libs/barista-components/stacked-series-chart/src/stacked-series-chart.spec.ts +++ b/libs/barista-components/stacked-series-chart/src/stacked-series-chart.spec.ts @@ -326,6 +326,22 @@ describe('DtStackedSeriesChart', () => { expect(selectedChangeSpy).not.toHaveBeenCalled(); }); + + it('should clear the selection from the outside on stack mode', () => { + rootComponent.selectionMode = 'stack'; + rootComponent.selected = [ + stackedSeriesChartDemoDataCoffee[1], + stackedSeriesChartDemoDataCoffee[1].nodes[1], + ]; + fixture.detectChanges(); + + expect(getSelectedSlice() !== null).toBe(true); + + rootComponent.selected = []; + fixture.detectChanges(); + + expect(getSelectedSlice()).toBe(null); + }); }); describe('Value Display Mode', () => { diff --git a/libs/barista-components/stacked-series-chart/src/stacked-series-chart.ts b/libs/barista-components/stacked-series-chart/src/stacked-series-chart.ts index 0f868fea31..f487d437ad 100644 --- a/libs/barista-components/stacked-series-chart/src/stacked-series-chart.ts +++ b/libs/barista-components/stacked-series-chart/src/stacked-series-chart.ts @@ -289,8 +289,8 @@ export class DtStackedSeriesChart implements OnDestroy, OnInit { return this._selected; } set selected([series, node]: DtStackedSeriesChartSelection | []) { - // if selected node is different than current - if (this._selected[1] !== node) { + // if selected node or series are different than current + if (this._selected[0] !== series || this._selected[1] !== node) { this._toggleSelect(series, node); } }