diff --git a/src/histograms/brushes/brush.ts b/src/histograms/brushes/brush.ts index 335acf9..1badc9c 100644 --- a/src/histograms/brushes/brush.ts +++ b/src/histograms/brushes/brush.ts @@ -63,8 +63,15 @@ export abstract class Brush { }); } - - protected abstract drawHandles(): void; + protected checkSelectionNotNaN(selection: BrushSelection): boolean { + return selection.every(v => { + if (typeof v === 'number') { + return !isNaN(v); + } else { + return v.every(s => !isNaN(s)); + } + }); + } } diff --git a/src/histograms/brushes/rectangle-brush.ts b/src/histograms/brushes/rectangle-brush.ts index 09730f4..438f68d 100644 --- a/src/histograms/brushes/rectangle-brush.ts +++ b/src/histograms/brushes/rectangle-brush.ts @@ -32,7 +32,7 @@ export class RectangleBrush extends Brush { public translateBrushHandles(selection: BrushSelection) { const xTranslation = this.handleHeight - (this.dimensions.height - this.handleHeight) / 2; - if (selection !== null) { + if (selection !== null && this.checkSelectionNotNaN(selection)) { this.handles.attr('display', null).attr('transform', (d, i) => 'translate(' + [selection[i], -xTranslation] + ')'); } else { diff --git a/src/histograms/brushes/slider-brush.ts b/src/histograms/brushes/slider-brush.ts index 7bd0dbb..e75df19 100644 --- a/src/histograms/brushes/slider-brush.ts +++ b/src/histograms/brushes/slider-brush.ts @@ -44,7 +44,7 @@ export class SliderBrush extends Brush { } public translateBrushHandles(selection: BrushSelection) { - if (selection !== null) { + if (selection !== null && this.checkSelectionNotNaN(selection)) { this.handles.attr('display', null).attr('transform', (d, i) => 'translate(' + [selection[i], 0] + ')'); this.lineContext.selection() diff --git a/src/histograms/charts/AbstractChart.ts b/src/histograms/charts/AbstractChart.ts index 1e0b8fc..aca74b7 100644 --- a/src/histograms/charts/AbstractChart.ts +++ b/src/histograms/charts/AbstractChart.ts @@ -471,10 +471,10 @@ export abstract class AbstractChart extends AbstractHistogram { .tickFormat(d => !this.histogramParams.shortYLabels ? tickNumberFormat(d, this.histogramParams.numberFormatChar) : format('~s')(d)); } - protected drawYAxis(chartAxes: ChartAxes, chartIdsToSide?: Map, chartId?: string): void { + protected drawYAxis(chartAxes: ChartAxes, chartIdsToSide?: Map, chartId?: string): void { // yTicksAxis and yLabelsAxis are translated of 1px to the left so that they are not hidden by the histogram let translate = 'translate(-1, 0)'; - let side; + let side: 'left' | 'right'; if (!!chartId && !!chartIdsToSide) { side = chartIdsToSide.get(chartId); } @@ -484,7 +484,7 @@ export abstract class AbstractChart extends AbstractHistogram { if (side === 'right') { translate = 'translate('.concat((this.chartDimensions.width + 1).toString()).concat(', 0)'); } - let axisColor; + let axisColor: string; if (!!chartId && !!this.histogramParams.colorGenerator) { axisColor = this.histogramParams.colorGenerator.getColor(chartId); } diff --git a/src/histograms/charts/ChartCurve.ts b/src/histograms/charts/ChartCurve.ts index cc93926..993ef60 100644 --- a/src/histograms/charts/ChartCurve.ts +++ b/src/histograms/charts/ChartCurve.ts @@ -38,7 +38,7 @@ export class ChartCurve extends AbstractChart { if (chartIdToData.size === 0) { chartIdToData.set('default', data); } - const chartIdsToSides = new Map(); + const chartIdsToSides = new Map(); let i = 0; const dataArray: Array> = []; chartIdToData.forEach((values, id) => {