From 47b93fee081e00b8293737e7243231c05b56ed96 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Thu, 17 Oct 2019 17:47:00 -0700 Subject: [PATCH] Sample only if specified option value is smaller than number of ticks (#6572) --- src/core/core.scale.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/core/core.scale.js b/src/core/core.scale.js index 44ce92505b9..95a5f5c5f6c 100644 --- a/src/core/core.scale.js +++ b/src/core/core.scale.js @@ -280,7 +280,7 @@ var Scale = Element.extend({ var me = this; var tickOpts = me.options.ticks; var sampleSize = tickOpts.sampleSize; - var i, ilen, labels, ticks; + var i, ilen, labels, ticks, samplingEnabled; // Update Lifecycle - Probably don't want to ever extend or overwrite this function ;) me.beforeUpdate(); @@ -345,7 +345,8 @@ var Scale = Element.extend({ // Compute tick rotation and fit using a sampled subset of labels // We generally don't need to compute the size of every single label for determining scale size - labels = me._convertTicksToLabels(sampleSize ? sample(ticks, sampleSize) : ticks); + samplingEnabled = sampleSize > ticks.length; + labels = me._convertTicksToLabels(samplingEnabled ? sample(ticks, sampleSize) : ticks); // _configure is called twice, once here, once from core.controller.updateLayout. // Here we haven't been positioned yet, but dimensions are correct. @@ -365,7 +366,7 @@ var Scale = Element.extend({ // Auto-skip me._ticksToDraw = tickOpts.display && tickOpts.autoSkip ? me._autoSkip(ticks) : ticks; - if (sampleSize) { + if (samplingEnabled) { // Generate labels using all non-skipped ticks labels = me._convertTicksToLabels(me._ticksToDraw); }