From d8d3d2ce315792b0248ee3ec7b3d227eabaa079e Mon Sep 17 00:00:00 2001 From: Jakub Januchta Date: Wed, 30 Aug 2023 11:57:43 +0200 Subject: [PATCH] Fixed #19616, breadcrumbs dissapeared when data updated in sunburst. --- .../breadcrumbs-in-treemap/demo.js | 150 +++++++++--------- ts/Series/Treemap/TreemapSeries.ts | 6 +- 2 files changed, 81 insertions(+), 75 deletions(-) diff --git a/samples/unit-tests/breadcrumbs/breadcrumbs-in-treemap/demo.js b/samples/unit-tests/breadcrumbs/breadcrumbs-in-treemap/demo.js index 177c5c0708a..fbafda67911 100644 --- a/samples/unit-tests/breadcrumbs/breadcrumbs-in-treemap/demo.js +++ b/samples/unit-tests/breadcrumbs/breadcrumbs-in-treemap/demo.js @@ -1,79 +1,80 @@ QUnit.test('Breadcrumbs button', function (assert) { - const chart = Highcharts.chart('container', { - navigation: { - breadcrumbs: { - buttonSpacing: 20 - } - }, - series: [{ - breadcrumbs: { - showFullPath: false - }, - type: 'treemap', - name: 'Store', - layoutAlgorithm: 'squarified', - allowDrillToNode: true, - dataLabels: { - enabled: false + const chartOptions = { + navigation: { + breadcrumbs: { + buttonSpacing: 20 + } }, - levelIsConstant: false, - levels: [{ - level: 1, + series: [{ + breadcrumbs: { + showFullPath: false + }, + type: 'treemap', + name: 'Store', + layoutAlgorithm: 'squarified', + allowDrillToNode: true, dataLabels: { - enabled: true + enabled: false }, - borderWidth: 1 - }], - data: [{ - id: '1', - name: 'Fruits', - value: 5 - }, { - id: '2', - name: 'Vegetables', - value: 6 - }, { - id: '3', - name: 'Meat', - value: 3 - }, { - id: '1_1', - parent: '1', - name: 'Citrus', - value: 2 - }, { - id: '1_2', - parent: '1', - name: 'Tropical', - value: 5 - }, { - id: '1_3', - parent: '1', - name: 'Other', - value: 3 - }, { - id: '1_1_1', - parent: '1_1', - name: 'Lemon', - value: 3 - }, { - id: '1_1_2', - parent: '1_1', - name: 'Orange', - value: 3 - }, { - id: '1_1_1_1', - parent: '1_1_1', - name: 'Type A', - value: 3 - }, { - id: '1_1_1_1', - parent: '1_1_1', - name: 'Type B', - value: 4 + levelIsConstant: false, + levels: [{ + level: 1, + dataLabels: { + enabled: true + }, + borderWidth: 1 + }], + data: [{ + id: '1', + name: 'Fruits', + value: 5 + }, { + id: '2', + name: 'Vegetables', + value: 6 + }, { + id: '3', + name: 'Meat', + value: 3 + }, { + id: '1_1', + parent: '1', + name: 'Citrus', + value: 2 + }, { + id: '1_2', + parent: '1', + name: 'Tropical', + value: 5 + }, { + id: '1_3', + parent: '1', + name: 'Other', + value: 3 + }, { + id: '1_1_1', + parent: '1_1', + name: 'Lemon', + value: 3 + }, { + id: '1_1_2', + parent: '1_1', + name: 'Orange', + value: 3 + }, { + id: '1_1_1_1', + parent: '1_1_1', + name: 'Type A', + value: 3 + }, { + id: '1_1_1_1', + parent: '1_1_1', + name: 'Type B', + value: 4 + }] }] - }] - }); + }, + chart = Highcharts.chart('container', chartOptions); const series = chart.series[0]; series.setRootNode('1_1_1'); assert.ok( @@ -87,6 +88,13 @@ QUnit.test('Breadcrumbs button', function (assert) { 'Options from navigation should take effect' ); + chart.update(chartOptions); + + assert.ok( + chart.breadcrumbs.group.element, + 'Breadcrumbs should not dissapear when chart.update is called (#19616).' + ); + chart.series[0].update({ breadcrumbs: { showFullPath: true diff --git a/ts/Series/Treemap/TreemapSeries.ts b/ts/Series/Treemap/TreemapSeries.ts index 58fd6f6ff8e..6d4e28d2cc7 100644 --- a/ts/Series/Treemap/TreemapSeries.ts +++ b/ts/Series/Treemap/TreemapSeries.ts @@ -1405,11 +1405,9 @@ class TreemapSeries extends ScatterSeries { addEvent(series, 'destroy', function destroyEvents(e: any): void { const chart = this.chart; - if (chart.breadcrumbs) { + if (chart.breadcrumbs && !e.keepEventsForUpdate) { chart.breadcrumbs.destroy(); - if (!e.keepEventsForUpdate) { - chart.breadcrumbs = void 0; - } + chart.breadcrumbs = void 0; } } )