Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

1,026 highstock.js

Large diffs are not rendered by default.

Large diffs are not rendered by default.

@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
*
* 3D features for Highcharts JS
*

Large diffs are not rendered by default.

Large diffs are not rendered by default.

@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
*
* (c) 2009-2016 Torstein Honsi
*
@@ -1248,7 +1248,7 @@
}

this.graphPath = linePath;
this.areaPath = this.areaPath.concat(lowerPath, higherAreaPath);
this.areaPath = lowerPath.concat(higherAreaPath);

// Prepare for sideways animation
linePath.isArea = true;

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
* Annotations module
*
* (c) 2009-2017 Torstein Honsi

Large diffs are not rendered by default.

@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
* Boost module
*
* (c) 2010-2017 Highsoft AS
@@ -135,12 +135,7 @@
}
};

target.boostClipRect = chart.renderer.clipRect(
chart.plotLeft,
chart.plotTop,
chart.plotWidth,
chart.chartHeight
);
target.boostClipRect = chart.renderer.clipRect();

target.renderTarget.clip(target.boostClipRect);

@@ -165,12 +160,7 @@
href: ''
});

target.boostClipRect.attr({
x: chart.plotLeft,
y: chart.plotTop,
width: chart.plotWidth,
height: chart.chartHeight
});
target.boostClipRect.attr(chart.getBoostClipRect(target));

return ctx;
},

Large diffs are not rendered by default.

Large diffs are not rendered by default.

@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
* Boost module
*
* (c) 2010-2017 Highsoft AS
@@ -548,6 +548,32 @@
shouldForceChartSeriesBoosting(this);
};

/*
* Get the clip rectangle for a target, either a series or the chart. For the
* chart, we need to consider the maximum extent of its Y axes, in case of
* Highstock panes and navigator.
*/
Chart.prototype.getBoostClipRect = function(target) {
var clipBox = {
x: this.plotLeft,
y: this.plotTop,
width: this.plotWidth,
height: this.plotHeight
};

if (target === this) {
each(this.yAxis, function(yAxis) {
clipBox.y = Math.min(yAxis.pos, clipBox.y);
clipBox.height = Math.max(
yAxis.pos - this.plotTop + yAxis.len,
clipBox.height
);
}, this);
}

return clipBox;
};

/*
* Returns true if the series is in boost mode
* @param series {Highchart.Series} - the series to check
@@ -2395,12 +2421,7 @@
}
};

target.boostClipRect = chart.renderer.clipRect(
chart.plotLeft,
chart.plotTop,
chart.plotWidth,
chart.chartHeight
);
target.boostClipRect = chart.renderer.clipRect();

(target.renderTargetFo || target.renderTarget).clip(target.boostClipRect);

@@ -2414,12 +2435,7 @@
target.canvas.width = width;
target.canvas.height = height;

target.boostClipRect.attr({
x: chart.plotLeft,
y: chart.plotTop,
width: chart.plotWidth,
height: chart.chartHeight
});
target.boostClipRect.attr(chart.getBoostClipRect(target));

target.boostResizeTarget();
target.boostClear();
@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
*
* (c) 2009-2017 Torstein Honsi
*
@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
*
* Bullet graph series type for Highcharts
*
@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
* Data module
*
* (c) 2012-2017 Torstein Honsi
@@ -132,13 +132,13 @@
*
* Valid options include:
*
* * `YYYY-mm-dd`
* * `YYYY/mm/dd`
* * `dd/mm/YYYY`
* * `mm/dd/YYYY`
* * `dd/mm/YY`
* * `mm/dd/YY`
*
* @validvalue [undefined, "YYYY-mm-dd", "dd/mm/YYYY", "mm/dd/YYYY", "dd/mm/YYYY", "dd/mm/YY", "mm/dd/YY"]
* @validvalue [undefined, "YYYY/mm/dd", "dd/mm/YYYY", "mm/dd/YYYY", "dd/mm/YYYY", "dd/mm/YY", "mm/dd/YY"]
* @type {String}
* @see [data.parseDate](#data.parseDate)
* @sample {highcharts} highcharts/data/dateformat-auto/ Best guess date format
@@ -781,7 +781,7 @@
* data is the data to deduce a format based on
*/
function deduceDateFormat(data, limit) {
var format = 'YYYY-mm-dd',
var format = 'YYYY/mm/dd',
thing,
guessedFormat,
calculatedFormat,
@@ -1225,7 +1225,7 @@
* custom date formats.
*/
dateFormats: {
'YYYY-mm-dd': {
'YYYY/mm/dd': {
regex: /^([0-9]{4})[\-\/\.]([0-9]{1,2})[\-\/\.]([0-9]{1,2})$/,
parser: function(match) {
return Date.UTC(+match[1], match[2] - 1, +match[3]);
@@ -1302,7 +1302,7 @@

if (!format) {
// The selected format is invalid
format = this.dateFormats['YYYY-mm-dd'];
format = this.dateFormats['YYYY/mm/dd'];
}

match = val.match(format.regex);
@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
* Drag-panes module
*
* (c) 2010-2017 Highsoft AS
@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
* Highcharts Drilldown module
*
* Author: Torstein Honsi

Large diffs are not rendered by default.

@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
* Exporting module
*
* (c) 2010-2017 Torstein Honsi
@@ -118,16 +118,14 @@
});

// Add an event listener to handle the showTable option
Highcharts.Chart.prototype.callbacks.push(function(chart) {
Highcharts.addEvent(chart, 'render', function() {
if (
chart.options &&
chart.options.exporting &&
chart.options.exporting.showTable
) {
chart.viewData();
}
});
Highcharts.addEvent(Highcharts.Chart.prototype, 'render', function() {
if (
this.options &&
this.options.exporting &&
this.options.exporting.showTable
) {
this.viewData();
}
});

// Set up key-to-axis bindings. This is used when the Y axis is datetime or
@@ -453,7 +451,7 @@

if (this.options.exporting.filename) {
name = this.options.exporting.filename;
} else if (this.title) {
} else if (this.title && this.title.textStr) {
name = this.title.textStr.replace(/ /g, '-').toLowerCase();
} else {
name = 'chart';
@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
* Exporting module
*
* (c) 2010-2017 Torstein Honsi
@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
* Highcharts funnel module
*
* (c) 2010-2017 Torstein Honsi

Large diffs are not rendered by default.

Large diffs are not rendered by default.

@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
* Gantt series
*
* (c) 2016 Lars A. V. Cabrera
@@ -621,7 +621,8 @@
headerFormat: '<span style="font-size: 0.85em">{point.x} - {point.x2}</span><br/>',
pointFormat: '<span style="color:{point.color}">\u25CF</span> {series.name}: <b>{point.yCategory}</b><br/>'
},
borderRadius: 3
borderRadius: 3,
pointRange: 0
/**
* A partial fill for each point, typically used to visualize how much of
* a task is performed. The partial fill object can be set either on series
@@ -644,7 +645,6 @@

}, {
type: 'xrange',
forceDL: true,
parallelArrays: ['x', 'x2', 'y'],
requireSorting: false,
animate: seriesTypes.line.prototype.animate,
@@ -706,7 +706,10 @@
partialFill,
inverted = this.chart.inverted,
borderWidth = pick(series.options.borderWidth, 1),
crisper = borderWidth % 2 / 2;
crisper = borderWidth % 2 / 2,
dlLeft,
dlRight,
dlWidth;

if (minPointLength) {
widthDifference = minPointLength - length;
@@ -728,6 +731,23 @@
r: series.options.borderRadius
};

// Align data labels inside the shape and inside the plot area
dlLeft = point.shapeArgs.x;
dlRight = dlLeft + point.shapeArgs.width;
if (dlLeft < 0 || dlRight > xAxis.len) {
dlLeft = Math.min(xAxis.len, Math.max(0, dlLeft));
dlRight = Math.max(0, Math.min(dlRight, xAxis.len));
dlWidth = dlRight - dlLeft;
point.dlBox = merge(point.shapeArgs, {
x: dlLeft,
width: dlRight - dlLeft,
centerX: dlWidth ? dlWidth / 2 : null
});

} else {
point.dlBox = null;
}

// Tooltip position
point.tooltipPos[0] += inverted ? 0 : length / 2;
point.tooltipPos[1] -= inverted ? length / 2 : metrics.width / 2;
@@ -767,78 +787,6 @@
}, this);
},

/**
* Aligns an individual dataLabel.
*
* TODO: Do we need this for inside datalabels? Seems to work.
*
* @param {Object} point the point belonging to the dataLabel
* @param {Object} dataLabel the dataLabel configuration object
* @param {Object} options dataLabel options for the series
* @param {Object} alignTo
* @param {Boolean} isNew Wheter the label is new or already existed
* @return {void}
* /
alignDataLabel: function (point, dataLabel, options, alignTo, isNew) {
var chart = this.chart,
align = options.align,
inverted = chart.inverted,
plotX = pick(point.plotX, -9999),
plotY = pick(point.plotY, -9999),
verticalAlign = options.verticalAlign,
inside = options.inside,
pointBox = point.shapeArgs,
labelBox = dataLabel.getBBox(),
labelTextBox = dataLabel.text.getBBox(),
attr = {},
visible =
this.visible &&
(
labelTextBox.width <= pointBox.width &&
labelTextBox.height <= pointBox.height
) &&
(
this.forceDL ||
chart.isInsidePlot(plotX, Math.round(plotY), inverted)
);
if (visible) {
if (align === 'right') {
if (inside) {
attr.x = pointBox.x + pointBox.width - labelBox.width;
} else {
attr.x = pointBox.x - labelBox.width;
}
} else if (align === 'left') {
if (inside) {
attr.x = pointBox.x;
} else {
attr.x = pointBox.x + pointBox.width + labelBox.x;
}
} else { // Center
attr.x = pointBox.x + pointBox.width / 2 - labelBox.width / 2;
}
if (verticalAlign === 'bottom') {
if (inside) {
attr.y = pointBox.y + pointBox.height - labelBox.height;
} else {
attr.y = pointBox.y - labelBox.height;
}
} else if (verticalAlign === 'top') {
if (inside) {
attr.y = pointBox.y;
} else {
attr.y = pointBox.y + pointBox.height;
}
} else { // Middle
attr.y = pointBox.y + pointBox.height / 2 - labelBox.height / 2;
}
dataLabel[isNew ? 'attr' : 'animate'](attr);
}
},
*/
/**
* Draws a single point in the series. Needed for partial fill.
*
@@ -1105,13 +1053,13 @@
*/

}(Highcharts));
(function(H) {
(function() {
/**
* (c) 2016 Highsoft AS
* Authors: Lars A. V. Cabrera
*
* License: www.highcharts.com/license
*/
//
}(Highcharts));
}());
}));
@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
* GridAxis
*
* (c) 2016 Lars A. V. Cabrera
@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
*
* (c) 2009-2017 Torstein Honsi
*
@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
*
* (c) 2010-2017 Highsoft AS
* Author: Sebastian Domas
@@ -1,5 +1,5 @@
/*
Highcharts JS v6.0.2 (2017-10-20)
Highcharts JS v6.0.3 (2017-11-14)
Item series type for Highcharts
@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
*
* Item series type for Highcharts
*
@@ -1,5 +1,5 @@
/**
* @license Highmaps JS v6.0.2 (2017-10-20)
* @license Highmaps JS v6.0.3 (2017-11-14)
* Highmaps as a plugin for Highcharts 4.1.x or Highstock 2.1.x (x being the patch version of this file)
*
* (c) 2011-2017 Torstein Honsi
@@ -3789,6 +3789,9 @@
}
return point;
},
isValid: function() {
return typeof this.z === 'number';
},
ttBelow: false
});
}
@@ -1,12 +1,12 @@
/*
Highcharts JS v6.0.2 (2017-10-20)
Highcharts JS v6.0.3 (2017-11-14)
Plugin for displaying a message when there is no data visible in chart.
(c) 2010-2017 Highsoft AS
Author: Oystein Moseng
License: www.highcharts.com/license
*/
(function(d){"object"===typeof module&&module.exports?module.exports=d:d(Highcharts)})(function(d){(function(c){function d(){this.hasData()?this.hideNoData():this.showNoData()}var f=c.seriesTypes,e=c.Chart.prototype,g=c.getOptions(),h=c.extend,k=c.each;h(g.lang,{noData:"No data to display"});g.noData={position:{x:0,y:0,align:"center",verticalAlign:"middle"}};k("bubble gauge heatmap pie treemap waterfall".split(" "),function(a){f[a]&&(f[a].prototype.hasData=function(){return!!this.points.length})});
c.Series.prototype.hasData=function(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin};e.showNoData=function(a){var b=this.options;a=a||b.lang.noData;b=b.noData;this.noDataLabel||(this.noDataLabel=this.renderer.label(a,0,0,null,null,null,b.useHTML,null,"no-data"),this.noDataLabel.add(),this.noDataLabel.align(h(this.noDataLabel.getBBox(),b.position),!1,"plotBox"))};e.hideNoData=function(){this.noDataLabel&&(this.noDataLabel=this.noDataLabel.destroy())};e.hasData=function(){for(var a=
this.series,b=a.length;b--;)if(a[b].hasData()&&!a[b].options.isInternal)return!0;return this.loadingShown};e.callbacks.push(function(a){c.addEvent(a,"load",d);c.addEvent(a,"redraw",d)})})(d)});
(function(c){"object"===typeof module&&module.exports?module.exports=c:c(Highcharts)})(function(c){(function(d){var c=d.seriesTypes,e=d.Chart.prototype,f=d.getOptions(),g=d.extend,h=d.each;g(f.lang,{noData:"No data to display"});f.noData={position:{x:0,y:0,align:"center",verticalAlign:"middle"}};h("bubble gauge heatmap pie treemap waterfall".split(" "),function(a){c[a]&&(c[a].prototype.hasData=function(){return!!this.points.length})});d.Series.prototype.hasData=function(){return this.visible&&void 0!==
this.dataMax&&void 0!==this.dataMin};e.showNoData=function(a){var b=this.options;a=a||b.lang.noData;b=b.noData;this.noDataLabel||(this.noDataLabel=this.renderer.label(a,0,0,null,null,null,b.useHTML,null,"no-data"),this.noDataLabel.add(),this.noDataLabel.align(g(this.noDataLabel.getBBox(),b.position),!1,"plotBox"))};e.hideNoData=function(){this.noDataLabel&&(this.noDataLabel=this.noDataLabel.destroy())};e.hasData=function(){for(var a=this.series,b=a.length;b--;)if(a[b].hasData()&&!a[b].options.isInternal)return!0;
return this.loadingShown};d.addEvent(e,"render",function(){this.hasData()?this.hideNoData():this.showNoData()})})(c)});
@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
* Plugin for displaying a message when there is no data visible in chart.
*
* (c) 2010-2017 Highsoft AS
@@ -213,23 +213,14 @@
};

/**
* Show no-data message if there is no data in sight. Otherwise, hide it.
* Add event listener to handle automatic show or hide no-data message
*/
function handleNoData() {
var chart = this;
if (chart.hasData()) {
chart.hideNoData();
H.addEvent(chartPrototype, 'render', function handleNoData() {
if (this.hasData()) {
this.hideNoData();
} else {
chart.showNoData();
this.showNoData();
}
}

/**
* Add event listener to handle automatic display of no-data message
*/
chartPrototype.callbacks.push(function(chart) {
H.addEvent(chart, 'load', handleNoData);
H.addEvent(chart, 'redraw', handleNoData);
});

}(Highcharts));
@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
* Client side exporting module
*
* (c) 2015 Torstein Honsi / Oystein Moseng
@@ -670,7 +670,7 @@

// Extend the default options to use the local exporter logic
merge(true, Highcharts.getOptions().exporting, {
libURL: 'https://code.highcharts.com/6.0.2/lib/',
libURL: 'https://code.highcharts.com/6.0.3/lib/',

// When offline-exporting is loaded, redefine the menu item definitions
// related to download.
@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
* Old IE (v6, v7, v8) module for Highcharts v6+.
*
* (c) 2010-2017 Highsoft AS
@@ -69,7 +69,7 @@
* @since 2.3.0
*/
H.getOptions().global.VMLRadialGradientURL =
'http://code.highcharts.com/6.0.2/gfx/vml-radial-gradient.png';
'http://code.highcharts.com/6.0.3/gfx/vml-radial-gradient.png';


// Utilites
@@ -1,5 +1,5 @@
/**
* @license Highcharts JS v6.0.2 (2017-10-20)
* @license Highcharts JS v6.0.3 (2017-11-14)
*
* (c) 2009-2017 Torstein Honsi
*
@@ -32,57 +32,51 @@
// Collect potensial overlapping data labels. Stack labels probably don't need
// to be considered because they are usually accompanied by data labels that lie
// inside the columns.
Chart.prototype.callbacks.push(function(chart) {
function collectAndHide() {
var labels = [];
addEvent(Chart.prototype, 'render', function collectAndHide() {
var labels = [];

// Consider external label collectors
each(chart.labelCollectors || [], function(collector) {
labels = labels.concat(collector());
});
// Consider external label collectors
each(this.labelCollectors || [], function(collector) {
labels = labels.concat(collector());
});

each(chart.yAxis || [], function(yAxis) {
if (
yAxis.options.stackLabels &&
!yAxis.options.stackLabels.allowOverlap
) {
objectEach(yAxis.stacks, function(stack) {
objectEach(stack, function(stackItem) {
labels.push(stackItem.label);
});
each(this.yAxis || [], function(yAxis) {
if (
yAxis.options.stackLabels &&
!yAxis.options.stackLabels.allowOverlap
) {
objectEach(yAxis.stacks, function(stack) {
objectEach(stack, function(stackItem) {
labels.push(stackItem.label);
});
}
});

each(chart.series || [], function(series) {
var dlOptions = series.options.dataLabels,
// Range series have two collections
collections = series.dataLabelCollections || ['dataLabel'];
});
}
});

if (
(dlOptions.enabled || series._hasPointLabels) &&
!dlOptions.allowOverlap &&
series.visible
) { // #3866
each(collections, function(coll) {
each(series.points, function(point) {
if (point[coll]) {
point[coll].labelrank = pick(
point.labelrank,
point.shapeArgs && point.shapeArgs.height
); // #4118
labels.push(point[coll]);
}
});
each(this.series || [], function(series) {
var dlOptions = series.options.dataLabels,
// Range series have two collections
collections = series.dataLabelCollections || ['dataLabel'];

if (
(dlOptions.enabled || series._hasPointLabels) &&
!dlOptions.allowOverlap &&
series.visible
) { // #3866
each(collections, function(coll) {
each(series.points, function(point) {
if (point[coll]) {
point[coll].labelrank = pick(
point.labelrank,
point.shapeArgs && point.shapeArgs.height
); // #4118
labels.push(point[coll]);
}
});
}
});
chart.hideOverlappingLabels(labels);
}

// Do it on render and after each chart redraw
addEvent(chart, 'render', collectAndHide);

});
}
});
this.hideOverlappingLabels(labels);
});

/**