Skip to content

Commit

Permalink
Apply linting rules locally
Browse files Browse the repository at this point in the history
`one-var` and `vars-on-top`
  • Loading branch information
tredston committed Feb 27, 2017
1 parent 2f0e1cb commit b10b545
Showing 1 changed file with 32 additions and 28 deletions.
60 changes: 32 additions & 28 deletions src/scales/scale.time.js
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,8 @@ module.exports = function(Chart) {
}
};

var TimeScale;

/**
* Helper function to parse time to a moment object
* @param axis {TimeAxis} the time axis
Expand All @@ -84,6 +86,7 @@ module.exports = function(Chart) {
*/
function parseTime(axis, label) {
var timeOpts = axis.options.time;
var format = timeOpts.format;
if (typeof timeOpts.parser === 'string') {
return moment(label, timeOpts.parser);
}
Expand All @@ -98,7 +101,6 @@ module.exports = function(Chart) {
// Moment support
return label;
}
var format = timeOpts.format;
if (typeof format !== 'string' && format.call) {
// Custom parsing (return an instance of moment)
console.warn('options.time.format is deprecated and replaced by options.time.parser.');
Expand All @@ -117,13 +119,13 @@ module.exports = function(Chart) {
*/
function determineUnit(minUnit, min, max, maxTicks) {
var units = Object.keys(interval);
var unit;
var unit, i, unitDetails, steps;
var numUnits = units.length;

for (var i = units.indexOf(minUnit); i < numUnits; i++) {
for (i = units.indexOf(minUnit); i < numUnits; i++) {
unit = units[i];
var unitDetails = interval[unit];
var steps = (unitDetails.steps && unitDetails.steps[unitDetails.steps.length - 1]) || unitDetails.maxStep;
unitDetails = interval[unit];
steps = (unitDetails.steps && unitDetails.steps[unitDetails.steps.length - 1]) || unitDetails.maxStep;
if (steps === undefined || Math.ceil((max - min) / (steps * unitDetails.size)) <= maxTicks) {
break;
}
Expand All @@ -145,11 +147,12 @@ module.exports = function(Chart) {
var unitSizeInMilliSeconds = unitDefinition.size;
var sizeInUnits = Math.ceil((max - min) / unitSizeInMilliSeconds);
var multiplier = 1;
var numSteps, i;

if (unitDefinition.steps) {
// Have an array of steps
var numSteps = unitDefinition.steps.length;
for (var i = 0; i < numSteps && sizeInUnits > maxTicks; i++) {
numSteps = unitDefinition.steps.length;
for (i = 0; i < numSteps && sizeInUnits > maxTicks; i++) {
multiplier = unitDefinition.steps[i];
sizeInUnits = Math.ceil((max - min) / (unitSizeInMilliSeconds * multiplier));
}
Expand All @@ -172,16 +175,17 @@ module.exports = function(Chart) {
*/
function generateTicks(options, dataRange, niceRange) {
var ticks = [];
var stepSize, cur, realMax, minSpacing, lastSpacing;
if (options.maxTicks) {
var stepSize = options.stepSize;
stepSize = options.stepSize;
cur = moment(niceRange.min);
realMax = options.max || niceRange.max;
minSpacing = (dataRange.max - dataRange.min) / options.maxTicks;
ticks.push(options.min !== undefined ? options.min : niceRange.min);
var cur = moment(niceRange.min);
while (cur.add(stepSize, options.unit).valueOf() < niceRange.max) {
ticks.push(cur.valueOf());
}
var realMax = options.max || niceRange.max;
var minSpacing = (dataRange.max - dataRange.min) / options.maxTicks;
var lastSpacing = realMax - ticks[ticks.length - 1];
lastSpacing = realMax - ticks[ticks.length - 1];
if (lastSpacing >= minSpacing) {
ticks.push(realMax);
} else {
Expand All @@ -198,8 +202,7 @@ module.exports = function(Chart) {
* @return {Number[]} ticks
*/
Chart.Ticks.generators.time = function(options, dataRange) {
var niceMin;
var niceMax;
var niceMin, niceMax;
var isoWeekday = options.isoWeekday;
if (options.unit === 'week' && isoWeekday !== false) {
niceMin = moment(dataRange.min).startOf('isoWeek').isoWeekday(isoWeekday).valueOf();
Expand All @@ -222,7 +225,7 @@ module.exports = function(Chart) {
});
};

var TimeScale = Chart.Scale.extend({
TimeScale = Chart.Scale.extend({
initialize: function() {
if (!moment) {
throw new Error('Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com');
Expand Down Expand Up @@ -299,13 +302,13 @@ module.exports = function(Chart) {
var me = this;
var timeOpts = me.options.time;

var minTimestamp;
var maxTimestamp;
var minTimestamp, maxTimestamp, unit, stepSize, ticks, minMoment;
var dataMin = me.dataMin;
var dataMax = me.dataMax;
var maxTicks = me.getLabelCapacity(minTimestamp || dataMin);

if (timeOpts.min) {
var minMoment = parseTime(me, timeOpts.min);
minMoment = parseTime(me, timeOpts.min);
if (timeOpts.round) {
minMoment.round(timeOpts.round);
}
Expand All @@ -316,12 +319,11 @@ module.exports = function(Chart) {
maxTimestamp = parseTime(me, timeOpts.max).valueOf();
}

var maxTicks = me.getLabelCapacity(minTimestamp || dataMin);
var unit = timeOpts.unit || determineUnit(timeOpts.minUnit, minTimestamp || dataMin, maxTimestamp || dataMax, maxTicks);
unit = timeOpts.unit || determineUnit(timeOpts.minUnit, minTimestamp || dataMin, maxTimestamp || dataMax, maxTicks);
me.displayFormat = timeOpts.displayFormats[unit];

var stepSize = timeOpts.stepSize || determineStepSize(minTimestamp || dataMin, maxTimestamp || dataMax, unit, maxTicks);
var ticks = me.ticks = Chart.Ticks.generators.time({
stepSize = timeOpts.stepSize || determineStepSize(minTimestamp || dataMin, maxTimestamp || dataMax, unit, maxTicks);
ticks = me.ticks = Chart.Ticks.generators.time({
maxTicks: maxTicks,
min: minTimestamp,
max: maxTimestamp,
Expand Down Expand Up @@ -377,13 +379,14 @@ module.exports = function(Chart) {
var me = this;
var epochWidth = me.max - me.min;
var decimal = epochWidth ? (offset - me.min) / epochWidth : 0;
var heightOffset, valueOffset;

if (me.isHorizontal()) {
var valueOffset = (me.width * decimal);
valueOffset = (me.width * decimal);
return me.left + Math.round(valueOffset);
}

var heightOffset = (me.height * decimal);
heightOffset = (me.height * decimal);
return me.top + Math.round(heightOffset);
},
getPixelForValue: function(value, index, datasetIndex) {
Expand Down Expand Up @@ -430,13 +433,14 @@ module.exports = function(Chart) {
},
getLabelCapacity: function(exampleTime) {
var me = this;
var exampleLabel, tickLabelWidth, innerWidth, labelCapacity;

me.displayFormat = me.options.time.displayFormats.millisecond; // Pick the longest format for guestimation
var exampleLabel = me.tickFormatFunction(moment(exampleTime), 0, []);
var tickLabelWidth = me.getLabelWidth(exampleLabel);
exampleLabel = me.tickFormatFunction(moment(exampleTime), 0, []);
tickLabelWidth = me.getLabelWidth(exampleLabel);

var innerWidth = me.isHorizontal() ? me.width : me.height;
var labelCapacity = innerWidth / tickLabelWidth;
innerWidth = me.isHorizontal() ? me.width : me.height;
labelCapacity = innerWidth / tickLabelWidth;
return labelCapacity;
}
});
Expand Down

0 comments on commit b10b545

Please sign in to comment.