Skip to content

Commit

Permalink
Prevent tooltip being stuck for line+candlestick charts when first se…
Browse files Browse the repository at this point in the history
…ries is candlestick and line series are hidden
  • Loading branch information
ettoredn committed Feb 23, 2023
1 parent 34ba407 commit f90ac59
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 7 deletions.
5 changes: 3 additions & 2 deletions src/charts/BoxCandleStick.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@ import Utils from '../utils/Utils'
**/

class BoxCandleStick extends Bar {
draw(series, seriesIndex) {
draw(series, ctype, seriesIndex) {
let w = this.w
let graphics = new Graphics(this.ctx)
let type = w.globals.comboCharts ? ctype : w.config.chart.type
let fill = new Fill(this.ctx)

this.candlestickOptions = this.w.config.plotOptions.candlestick
Expand All @@ -28,7 +29,7 @@ class BoxCandleStick extends Bar {
this.barHelpers.initVariables(series)

let ret = graphics.group({
class: `apexcharts-${w.config.chart.type}-series apexcharts-plot-series`
class: `apexcharts-${type}-series apexcharts-plot-series`
})

for (let i = 0; i < series.length; i++) {
Expand Down
10 changes: 5 additions & 5 deletions src/modules/Core.js
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ export default class Core {
elGraph.push(barStacked.draw(columnSeries.series, columnSeries.i))
} else {
this.ctx.bar = new Bar(this.ctx, xyRatios)
elGraph.push(this.ctx.bar.draw(columnSeries.series, columnSeries.i))
elGraph.push(this.ctx.bar.draw(columnSeries.series, 'bar', columnSeries.i))
}
}
if (rangeAreaSeries.series.length > 0) {
Expand All @@ -263,11 +263,11 @@ export default class Core {
}
if (candlestickSeries.series.length > 0) {
elGraph.push(
boxCandlestick.draw(candlestickSeries.series, candlestickSeries.i)
boxCandlestick.draw(candlestickSeries.series, 'candlestick', candlestickSeries.i)
)
}
if (boxplotSeries.series.length > 0) {
elGraph.push(boxCandlestick.draw(boxplotSeries.series, boxplotSeries.i))
elGraph.push(boxCandlestick.draw(boxplotSeries.series, 'boxPlot', boxplotSeries.i))
}
if (rangeBarSeries.series.length > 0) {
elGraph.push(
Expand Down Expand Up @@ -306,11 +306,11 @@ export default class Core {
break
case 'candlestick':
let candleStick = new BoxCandleStick(this.ctx, xyRatios)
elGraph = candleStick.draw(gl.series)
elGraph = candleStick.draw(gl.series, 'candlestick')
break
case 'boxPlot':
let boxPlot = new BoxCandleStick(this.ctx, xyRatios)
elGraph = boxPlot.draw(gl.series)
elGraph = boxPlot.draw(gl.series, 'boxPlot')
break
case 'rangeBar':
elGraph = this.ctx.rangeBar.draw(gl.series)
Expand Down
12 changes: 12 additions & 0 deletions src/modules/tooltip/Position.js
Original file line number Diff line number Diff line change
Expand Up @@ -377,6 +377,18 @@ export default class Position {
let jBar = w.globals.dom.baseEl.querySelector(
`.apexcharts-bar-series .apexcharts-series[rel='${i}'] path[j='${j}'], .apexcharts-candlestick-series .apexcharts-series[rel='${i}'] path[j='${j}'], .apexcharts-boxPlot-series .apexcharts-series[rel='${i}'] path[j='${j}'], .apexcharts-rangebar-series .apexcharts-series[rel='${i}'] path[j='${j}']`
)
if (!jBar) {
// Try with captured series index
const capturedSeries = w.globals.capturedSeriesIndex; // :number|undefined

jBar = w.globals.dom.baseEl.querySelector(
`.apexcharts-bar-series .apexcharts-series[data\\:realIndex='${capturedSeries}'] path[j='${j}'],
.apexcharts-candlestick-series .apexcharts-series[data\\:realIndex='${capturedSeries}'] path[j='${j}'],
.apexcharts-boxPlot-series .apexcharts-series[data\\:realIndex='${capturedSeries}'] path[j='${j}'],
.apexcharts-rangebar-series .apexcharts-series[data\\:realIndex='${capturedSeries}'] path[j='${j}'],
.apexcharts-line-series .apexcharts-series[data\\:realIndex='${capturedSeries}'] path[j='${j}']`
);
}

let bcx = jBar ? parseFloat(jBar.getAttribute('cx')) : 0
let bcy = jBar ? parseFloat(jBar.getAttribute('cy')) : 0
Expand Down

0 comments on commit f90ac59

Please sign in to comment.