From b244da723fe612885d816d4425a3119663edd14a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torstein=20H=C3=B8nsi?= Date: Wed, 3 May 2023 15:02:28 +0200 Subject: [PATCH] Fixed #18928, tooltip not showing when one chart hidden --- .../unit-tests/svgrenderer/shadows/demo.js | 44 ++++++------------- ts/Core/Renderer/SVG/SVGRenderer.ts | 2 +- ts/Core/Utilities.ts | 10 +++-- 3 files changed, 21 insertions(+), 35 deletions(-) diff --git a/samples/unit-tests/svgrenderer/shadows/demo.js b/samples/unit-tests/svgrenderer/shadows/demo.js index caec1905b9b..5c9e03301e3 100644 --- a/samples/unit-tests/svgrenderer/shadows/demo.js +++ b/samples/unit-tests/svgrenderer/shadows/demo.js @@ -1,28 +1,18 @@ QUnit.test('Series shadows', function (assert) { var chart = Highcharts.chart('container', { - series: [ - { - shadow: { - color: 'red', - width: 10, - offsetX: 40, - offsetY: -20, - opacity: 0.05 - }, - data: [29, 71, 106, 129, 144] - } - ] - }), - attributes = [ - 'stroke="blue"', - 'stroke-opacity="0.2"', - 'transform="translate(0, 20)' - ], - defaultAttributes = [ - 'stroke="#000000"', - 'stroke-opacity="0.15"', - 'transform="translate(1, 1)' - ]; + series: [ + { + shadow: { + color: 'red', + width: 10, + offsetX: 40, + offsetY: -20, + opacity: 0.05 + }, + data: [29, 71, 106, 129, 144] + } + ] + }); chart.series[0].update({ shadow: { @@ -50,7 +40,7 @@ QUnit.test('Series shadows', function (assert) { assert.strictEqual( chart.series[0].graph.attr('filter'), - 'url(#drop-shadow)', + 'url(#drop-shadow-0)', 'Shadows should be updated when old options defined as object and new as boolean (#12091).' ); @@ -66,12 +56,6 @@ QUnit.test('Series shadows', function (assert) { ] }); - attributes = [ - 'stroke="red"', - 'stroke-opacity="0.3"', - 'transform="translate(10, 5)' - ]; - chart.series[0].update({ shadow: { width: 20, diff --git a/ts/Core/Renderer/SVG/SVGRenderer.ts b/ts/Core/Renderer/SVG/SVGRenderer.ts index df54efec277..f7472e23f66 100644 --- a/ts/Core/Renderer/SVG/SVGRenderer.ts +++ b/ts/Core/Renderer/SVG/SVGRenderer.ts @@ -601,7 +601,7 @@ class SVGRenderer implements SVGRendererLike { ): string { const id = [ - 'drop-shadow', + `drop-shadow-${this.chartIndex}`, ...Object.keys(shadowOptions) .map((key: string): number|string => (shadowOptions as any)[key] diff --git a/ts/Core/Utilities.ts b/ts/Core/Utilities.ts index 2b07e5b2eea..b0bc91b947a 100644 --- a/ts/Core/Utilities.ts +++ b/ts/Core/Utilities.ts @@ -1297,6 +1297,8 @@ function getStyle( prop: string, toInt?: boolean ): (number|string|undefined) { + const customGetStyle: typeof getStyle = (H as any).getStyle || getStyle; + let style: (number|string|undefined); // For width and height, return the actual inner pixel size (#4913) @@ -1322,8 +1324,8 @@ function getStyle( 0, // #8377 ( offsetWidth - - (getStyle(el, 'padding-left', true) || 0) - - (getStyle(el, 'padding-right', true) || 0) + (customGetStyle(el, 'padding-left', true) || 0) - + (customGetStyle(el, 'padding-right', true) || 0) ) ); } @@ -1333,8 +1335,8 @@ function getStyle( 0, // #8377 ( Math.min(el.offsetHeight, el.scrollHeight) - - (getStyle(el, 'padding-top', true) || 0) - - (getStyle(el, 'padding-bottom', true) || 0) + (customGetStyle(el, 'padding-top', true) || 0) - + (customGetStyle(el, 'padding-bottom', true) || 0) ) ); }