summaryrefslogtreecommitdiff
path: root/html/includes/js
diff options
context:
space:
mode:
authorMatthijs Kuiper <info@matthijskuiper.nl>2018-01-08 23:47:23 +0100
committerGitHub <noreply@github.com>2018-01-08 23:47:23 +0100
commite861eafbeae0560add7956530d76de6cc285be20 (patch)
treec32e746977fde711cecd716570989014bf2d3592 /html/includes/js
parent66b162b5f01c996fd8a5cd4e570e31f8483cdffa (diff)
parent730c20dd04b5753cb372a289923e39516d1f8b87 (diff)
Merge pull request #5 from randommonk/develop4.3.0
Bumped version to 4.3. Added jpgraph stats developed by killerEye
Diffstat (limited to 'html/includes/js')
-rw-r--r--html/includes/js/adapters/standalone-framework.js18
-rw-r--r--html/includes/js/clickrows.js8
-rw-r--r--html/includes/js/clocks.js561
-rw-r--r--html/includes/js/highcharts-3d.js45
-rw-r--r--html/includes/js/highcharts-all.js471
-rw-r--r--html/includes/js/highcharts-functions.js1
-rw-r--r--html/includes/js/highcharts-more.js53
-rw-r--r--html/includes/js/highcharts.js308
-rw-r--r--html/includes/js/jquery-1.11.1.min.js4
-rw-r--r--html/includes/js/jquery.tooltipster.min.js1
-rw-r--r--html/includes/js/modules/canvas-tools.js133
-rw-r--r--html/includes/js/modules/data.js24
-rw-r--r--html/includes/js/modules/drilldown.js15
-rw-r--r--html/includes/js/modules/exporting.js23
-rw-r--r--html/includes/js/modules/funnel.js13
-rw-r--r--html/includes/js/modules/heatmap.js23
-rw-r--r--html/includes/js/modules/multicolor_series.js567
-rw-r--r--html/includes/js/modules/no-data-to-display.js12
-rw-r--r--html/includes/js/modules/solid-gauge.js13
-rw-r--r--html/includes/js/themes/dark-blue.js254
20 files changed, 2547 insertions, 0 deletions
diff --git a/html/includes/js/adapters/standalone-framework.js b/html/includes/js/adapters/standalone-framework.js
new file mode 100644
index 0000000..d41dde7
--- /dev/null
+++ b/html/includes/js/adapters/standalone-framework.js
@@ -0,0 +1,18 @@
+/*
+ Highcharts JS v4.0.4 (2014-09-02)
+
+ Standalone Highcharts Framework
+
+ License: MIT License
+*/
+var HighchartsAdapter=function(){function p(c){function b(b,a,d){b.removeEventListener(a,d,!1)}function d(b,a,d){d=b.HCProxiedMethods[d.toString()];b.detachEvent("on"+a,d)}function a(a,c){var f=a.HCEvents,i,g,k,j;if(a.removeEventListener)i=b;else if(a.attachEvent)i=d;else return;c?(g={},g[c]=!0):g=f;for(j in g)if(f[j])for(k=f[j].length;k--;)i(a,j,f[j][k])}c.HCExtended||Highcharts.extend(c,{HCExtended:!0,HCEvents:{},bind:function(b,a){var d=this,c=this.HCEvents,g;if(d.addEventListener)d.addEventListener(b,
+a,!1);else if(d.attachEvent){g=function(b){b.target=b.srcElement||window;a.call(d,b)};if(!d.HCProxiedMethods)d.HCProxiedMethods={};d.HCProxiedMethods[a.toString()]=g;d.attachEvent("on"+b,g)}c[b]===s&&(c[b]=[]);c[b].push(a)},unbind:function(c,h){var f,i;c?(f=this.HCEvents[c]||[],h?(i=HighchartsAdapter.inArray(h,f),i>-1&&(f.splice(i,1),this.HCEvents[c]=f),this.removeEventListener?b(this,c,h):this.attachEvent&&d(this,c,h)):(a(this,c),this.HCEvents[c]=[])):(a(this),this.HCEvents={})},trigger:function(b,
+a){var d=this.HCEvents[b]||[],c=d.length,g,k,j;k=function(){a.defaultPrevented=!0};for(g=0;g<c;g++){j=d[g];if(a.stopped)break;a.preventDefault=k;a.target=this;if(!a.type)a.type=b;j.call(this,a)===!1&&a.preventDefault()}}});return c}var s,l=document,q=[],m=[],r,n={},o;Math.easeInOutSine=function(c,b,d,a){return-d/2*(Math.cos(Math.PI*c/a)-1)+b};return{init:function(c){if(!l.defaultView)this._getStyle=function(b,d){var a;return b.style[d]?b.style[d]:(d==="opacity"&&(d="filter"),a=b.currentStyle[d.replace(/\-(\w)/g,
+function(b,a){return a.toUpperCase()})],d==="filter"&&(a=a.replace(/alpha\(opacity=([0-9]+)\)/,function(b,a){return a/100})),a===""?1:a)},this.adapterRun=function(b,d){var a={width:"clientWidth",height:"clientHeight"}[d];if(a)return b.style.zoom=1,b[a]-2*parseInt(HighchartsAdapter._getStyle(b,"padding"),10)};if(!Array.prototype.forEach)this.each=function(b,d){for(var a=0,c=b.length;a<c;a++)if(d.call(b[a],b[a],a,b)===!1)return a};if(!Array.prototype.indexOf)this.inArray=function(b,d){var a,c=0;if(d)for(a=
+d.length;c<a;c++)if(d[c]===b)return c;return-1};if(!Array.prototype.filter)this.grep=function(b,d){for(var a=[],c=0,h=b.length;c<h;c++)d(b[c],c)&&a.push(b[c]);return a};o=function(b,c,a){this.options=c;this.elem=b;this.prop=a};o.prototype={update:function(){var b;b=this.paths;var d=this.elem,a=d.element;if(n[this.prop])n[this.prop](this);else b&&a?d.attr("d",c.step(b[0],b[1],this.now,this.toD)):d.attr?a&&d.attr(this.prop,this.now):(b={},b[this.prop]=this.now+this.unit,Highcharts.css(d,b));this.options.step&&
+this.options.step.call(this.elem,this.now,this)},custom:function(b,c,a){var e=this,h=function(a){return e.step(a)},f;this.startTime=+new Date;this.start=b;this.end=c;this.unit=a;this.now=this.start;this.pos=this.state=0;h.elem=this.elem;h()&&m.push(h)===1&&(r=setInterval(function(){for(f=0;f<m.length;f++)m[f]()||m.splice(f--,1);m.length||clearInterval(r)},13))},step:function(b){var c=+new Date,a;a=this.options;var e=this.elem,h;if(e.stopAnimation||e.attr&&!e.element)a=!1;else if(b||c>=a.duration+
+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();b=this.options.curAnim[this.prop]=!0;for(h in a.curAnim)a.curAnim[h]!==!0&&(b=!1);b&&a.complete&&a.complete.call(e);a=!1}else e=c-this.startTime,this.state=e/a.duration,this.pos=a.easing(e,0,1,a.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update(),a=!0;return a}};this.animate=function(b,d,a){var e,h="",f,i,g;b.stopAnimation=!1;if(typeof a!=="object"||a===null)e=arguments,a={duration:e[2],easing:e[3],complete:e[4]};
+if(typeof a.duration!=="number")a.duration=400;a.easing=Math[a.easing]||Math.easeInOutSine;a.curAnim=Highcharts.extend({},d);for(g in d)i=new o(b,a,g),f=null,g==="d"?(i.paths=c.init(b,b.d,d.d),i.toD=d.d,e=0,f=1):b.attr?e=b.attr(g):(e=parseFloat(HighchartsAdapter._getStyle(b,g))||0,g!=="opacity"&&(h="px")),f||(f=d[g]),i.custom(e,f,h)}},_getStyle:function(c,b){return window.getComputedStyle(c,void 0).getPropertyValue(b)},addAnimSetter:function(c,b){n[c]=b},getScript:function(c,b){var d=l.getElementsByTagName("head")[0],
+a=l.createElement("script");a.type="text/javascript";a.src=c;a.onload=b;d.appendChild(a)},inArray:function(c,b){return b.indexOf?b.indexOf(c):q.indexOf.call(b,c)},adapterRun:function(c,b){return parseInt(HighchartsAdapter._getStyle(c,b),10)},grep:function(c,b){return q.filter.call(c,b)},map:function(c,b){for(var d=[],a=0,e=c.length;a<e;a++)d[a]=b.call(c[a],c[a],a,c);return d},offset:function(c){var b=document.documentElement,c=c.getBoundingClientRect();return{top:c.top+(window.pageYOffset||b.scrollTop)-
+(b.clientTop||0),left:c.left+(window.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}},addEvent:function(c,b,d){p(c).bind(b,d)},removeEvent:function(c,b,d){p(c).unbind(b,d)},fireEvent:function(c,b,d,a){var e;l.createEvent&&(c.dispatchEvent||c.fireEvent)?(e=l.createEvent("Events"),e.initEvent(b,!0,!0),e.target=c,Highcharts.extend(e,d),c.dispatchEvent?c.dispatchEvent(e):c.fireEvent(b,e)):c.HCExtended===!0&&(d=d||{},c.trigger(b,d));d&&d.defaultPrevented&&(a=null);a&&a(d)},washMouseEvent:function(c){return c},
+stop:function(c){c.stopAnimation=!0},each:function(c,b){return Array.prototype.forEach.call(c,b)}}}();
diff --git a/html/includes/js/clickrows.js b/html/includes/js/clickrows.js
new file mode 100644
index 0000000..fb9fda2
--- /dev/null
+++ b/html/includes/js/clickrows.js
@@ -0,0 +1,8 @@
+
+$(document).ready(function($) {
+ $(".clickableRow").click(function() {
+ if(event.which == 1) {
+ window.document.location = $(this).attr("href");
+ }
+ });
+});
diff --git a/html/includes/js/clocks.js b/html/includes/js/clocks.js
new file mode 100644
index 0000000..7f17b42
--- /dev/null
+++ b/html/includes/js/clocks.js
@@ -0,0 +1,561 @@
+//<![CDATA[
+
+$(function () {
+
+ /**
+ * Get the current time
+ */
+ function getNow() {
+ var now = new Date();
+ var gmt_offset = now.getTimezoneOffset( ) / 60;
+ var est = gmt_offset + 5;
+
+ return {
+ hours: now.getHours() - est + now.getMinutes() / 60,
+ minutes: now.getMinutes() * 12 / 60 + now.getSeconds() * 12 / 3600,
+ seconds: now.getSeconds() * 12 / 60
+ };
+ }
+
+ /**
+ * Pad numbers
+ */
+ function pad(number, length) {
+ // Create an array of the remaining length + 1 and join it with 0\'s
+ return new Array((length || 2) + 1 - String(number).length).join(0) + number;
+ }
+
+ var now = getNow();
+
+ // Create the chart
+ $(\'.column-right\').highcharts({
+
+ chart: {
+ type: \'gauge\',
+ plotBackgroundColor: null,
+ plotBackgroundImage: null,
+ plotBorderWidth: 0,
+ plotShadow: false,
+ height: 200
+ },
+
+ credits: {
+ enabled: false
+ },
+
+ title: {
+ text: \'EST\'
+ },
+
+ pane: {
+ background: [{
+ // default background
+ }, {
+ // reflex for supported browsers
+ backgroundColor: \'#1e1e1e\' ? {
+ radialGradient: {
+ cx: 0.5,
+ cy: -0.4,
+ r: 1.9
+ },
+ stops: [
+ [0.5, \'rgba(81, 81, 81, 0.8)\'],
+ [0.5, \'rgba(59, 56, 59, 0.8)\']
+ ]
+ } : null
+ }]
+ },
+
+ yAxis: {
+
+
+ labels: {
+ distance: -20,
+
+ style: {
+ color: \'#848484\'
+ }
+ },
+ min: 0,
+ max: 12,
+ lineWidth: 0,
+ showFirstLabel: false,
+
+ minorTickInterval: \'auto\',
+ minorTickWidth: 1,
+ minorTickLength: 5,
+ minorTickPosition: \'inside\',
+ minorGridLineWidth: 0,
+ minorTickColor: \'#2e2e2e\',
+
+ tickInterval: 1,
+ tickWidth: 2,
+ tickPosition: \'inside\',
+ tickLength: 10,
+ tickColor: \'#fff\',
+ title: {
+ text: \'\',
+ style: {
+ color: \'#fff\',
+ fontWeight: \'normal\',
+ fontSize: \'8px\',
+ lineHeight: \'10px\'
+ },
+ y: 10
+ }
+ },
+
+ tooltip: {
+ formatter: function () {
+ return this.series.chart.tooltipText;
+ }
+ },
+
+ series: [{
+ data: [{
+ id: \'hour\',
+ y: now.hours,
+ dial: {
+ radius: \'60%\',
+ baseWidth: 4,
+ baseLength: \'95%\',
+ rearLength: 0
+ }
+ }, {
+ id: \'minute\',
+ y: now.minutes,
+ dial: {
+ baseLength: \'95%\',
+ rearLength: 0
+ }
+ }, {
+ id: \'second\',
+ y: now.seconds,
+ dial: {
+ radius: \'100%\',
+ baseWidth: 1,
+ rearLength: \'20%\'
+ }
+ }],
+ animation: false,
+ dataLabels: {
+ enabled: false
+ }
+ }]
+ },
+
+ // Move
+ function (chart) {
+ setInterval(function () {
+
+ now = getNow();
+
+ var hour = chart.get(\'hour\'),
+ minute = chart.get(\'minute\'),
+ second = chart.get(\'second\'),
+ // run animation unless we\'re wrapping around from 59 to 0
+ animation = now.seconds === 0 ?
+ false :
+ {
+ easing: \'easeOutElastic\'
+ };
+
+ // Cache the tooltip text
+ chart.tooltipText =
+ pad(Math.floor(now.hours), 2) + \':\' +
+ pad(Math.floor(now.minutes * 5), 2) + \':\' +
+ pad(now.seconds * 5, 2);
+
+ hour.update(now.hours, true, animation);
+ minute.update(now.minutes, true, animation);
+ second.update(now.seconds, true, animation);
+
+ }, 1000);
+
+ });
+});
+
+// Extend jQuery with some easing (copied from jQuery UI)
+$.extend($.easing, {
+ easeOutElastic: function (x, t, b, c, d) {
+ var s=1.70158;var p=0;var a=c;
+ if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
+ if (a < Math.abs(c)) { a=c; var s=p/4; }
+ else var s = p/(2*Math.PI) * Math.asin (c/a);
+ return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
+ }
+});
+
+$(function () {
+
+ /**
+ * Get the current time
+ */
+ function getNow() {
+ var now = new Date();
+ var gmt_offset = now.getTimezoneOffset( ) / 60;
+ var est = gmt_offset + 5;
+ var cet = gmt_offset - 1;
+
+ return {
+ hours: now.getHours() - cet + now.getMinutes() / 60,
+ minutes: now.getMinutes() * 12 / 60 + now.getSeconds() * 12 / 3600,
+ seconds: now.getSeconds() * 12 / 60
+ };
+ }
+
+ /**
+ * Pad numbers
+ */
+ function pad(number, length) {
+ // Create an array of the remaining length + 1 and join it with 0\'s
+ return new Array((length || 2) + 1 - String(number).length).join(0) + number;
+ }
+
+ var now = getNow();
+
+ // Create the chart
+ $(\'.column-center\').highcharts({
+
+ chart: {
+ type: \'gauge\',
+ plotBackgroundColor: null,
+ plotBackgroundImage: null,
+ plotBorderWidth: 0,
+ plotShadow: false,
+ height: 200
+ },
+
+ credits: {
+ enabled: false
+ },
+
+ title: {
+ text: \'CET\'
+ },
+
+ pane: {
+ background: [{
+ // default background
+ }, {
+ // reflex for supported browsers
+ backgroundColor: Highcharts.svg ? {
+ radialGradient: {
+ cx: 0.5,
+ cy: -0.4,
+ r: 1.9
+ },
+ stops: [
+ [0.5, \'rgba(81, 81, 81, 0.8)\'],
+ [0.5, \'rgba(59, 56, 59, 0.8)\']
+ ]
+ } : null
+ }]
+ },
+
+ yAxis: {
+
+
+ labels: {
+ distance: -20,
+
+ style: {
+ color: \'#848484\'
+ }
+ },
+ min: 0,
+ max: 12,
+ lineWidth: 0,
+ showFirstLabel: false,
+
+ minorTickInterval: \'auto\',
+ minorTickWidth: 1,
+ minorTickLength: 5,
+ minorTickPosition: \'inside\',
+ minorGridLineWidth: 0,
+ minorTickColor: \'#2e2e2e\',
+
+ tickInterval: 1,
+ tickWidth: 2,
+ tickPosition: \'inside\',
+ tickLength: 10,
+ tickColor: \'#fff\',
+ title: {
+ text: \'\',
+ style: {
+ color: \'#fff\',
+ fontWeight: \'normal\',
+ fontSize: \'8px\',
+ lineHeight: \'10px\'
+ },
+ y: 10
+ }
+ },
+
+ tooltip: {
+ formatter: function () {
+ return this.series.chart.tooltipText;
+ }
+ },
+
+ series: [{
+ data: [{
+ id: \'hour\',
+ y: now.hours,
+ dial: {
+ radius: \'60%\',
+ baseWidth: 4,
+ baseLength: \'95%\',
+ rearLength: 0
+ }
+ }, {
+ id: \'minute\',
+ y: now.minutes,
+ dial: {
+ baseLength: \'95%\',
+ rearLength: 0
+ }
+ }, {
+ id: \'second\',
+ y: now.seconds,
+ dial: {
+ radius: \'100%\',
+ baseWidth: 1,
+ rearLength: \'20%\'
+ }
+ }],
+ animation: false,
+ dataLabels: {
+ enabled: false
+ }
+ }]
+ },
+
+ // Move
+ function (chart) {
+ setInterval(function () {
+
+ now = getNow();
+
+ var hour = chart.get(\'hour\'),
+ minute = chart.get(\'minute\'),
+ second = chart.get(\'second\'),
+ // run animation unless we\'re wrapping around from 59 to 0
+ animation = now.seconds === 0 ?
+ false :
+ {
+ easing: \'easeOutElastic\'
+ };
+
+ // Cache the tooltip text
+ chart.tooltipText =
+ pad(Math.floor(now.hours), 2) + \':\' +
+ pad(Math.floor(now.minutes * 5), 2) + \':\' +
+ pad(now.seconds * 5, 2);
+
+ hour.update(now.hours, true, animation);
+ minute.update(now.minutes, true, animation);
+ second.update(now.seconds, true, animation);
+
+ }, 1000);
+
+ });
+});
+
+// Extend jQuery with some easing (copied from jQuery UI)
+$.extend($.easing, {
+ easeOutElastic: function (x, t, b, c, d) {
+ var s=1.70158;var p=0;var a=c;
+ if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
+ if (a < Math.abs(c)) { a=c; var s=p/4; }
+ else var s = p/(2*Math.PI) * Math.asin (c/a);
+ return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
+ }
+});
+
+$(function () {
+
+ /**
+ * Get the current time
+ */
+ function getNow() {
+ var now = new Date();
+ var gmt_offset = now.getTimezoneOffset( ) / 60;
+ var est = gmt_offset + 5;
+
+ return {
+ hours: now.getHours() + now.getMinutes() / 60,
+ minutes: now.getMinutes() * 12 / 60 + now.getSeconds() * 12 / 3600,
+ seconds: now.getSeconds() * 12 / 60
+ };
+ }
+
+ /**
+ * Pad numbers
+ */
+ function pad(number, length) {
+ // Create an array of the remaining length + 1 and join it with 0\'s
+ return new Array((length || 2) + 1 - String(number).length).join(0) + number;
+ }
+
+ var now = getNow();
+
+ // Create the chart
+ $(\'.column-left\').highcharts({
+
+ chart: {
+ type: \'gauge\',
+ plotBackgroundColor: null,
+ plotBackgroundImage: null,
+ plotBorderWidth: 0,
+ plotShadow: false,
+ height: 200
+ },
+
+ credits: {
+ enabled: false
+ },
+
+ title: {
+ text: \'Your time\'
+ },
+
+ pane: {
+ background: [{
+ // default background
+ }, {
+ // reflex for supported browsers
+ backgroundColor: Highcharts.svg ? {
+ radialGradient: {
+ cx: 0.5,
+ cy: -0.4,
+ r: 1.9
+ },
+ stops: [
+ [0.5, \'rgba(81, 81, 81, 0.8)\'],
+ [0.5, \'rgba(59, 56, 59, 0.8)\']
+ ]
+ } : null
+ }]
+ },
+
+ yAxis: {
+
+
+ labels: {
+ distance: -20,
+
+ style: {
+ color: \'#848484\'
+ }
+ },
+ min: 0,
+ max: 12,
+ lineWidth: 0,
+ showFirstLabel: false,
+
+ minorTickInterval: \'auto\',
+ minorTickWidth: 1,
+ minorTickLength: 5,
+ minorTickPosition: \'inside\',
+ minorGridLineWidth: 0,
+ minorTickColor: \'#2e2e2e\',
+
+ tickInterval: 1,
+ tickWidth: 2,
+ tickPosition: \'inside\',
+ tickLength: 10,
+ tickColor: \'#fff\',
+ title: {
+ text: \'\',
+ style: {
+ color: \'#fff\',
+ fontWeight: \'normal\',
+ fontSize: \'8px\',
+ lineHeight: \'10px\'
+ },
+ y: 10
+ }
+ },
+
+ tooltip: {
+ formatter: function () {
+ return this.series.chart.tooltipText;
+ }
+ },
+
+ series: [{
+ data: [{
+ id: \'hour\',
+ y: now.hours,
+ dial: {
+ radius: \'60%\',
+ baseWidth: 4,
+ baseLength: \'95%\',
+ rearLength: 0
+ }
+ }, {
+ id: \'minute\',
+ y: now.minutes,
+ dial: {
+ baseLength: \'95%\',
+ rearLength: 0
+ }
+ }, {
+ id: \'second\',
+ y: now.seconds,
+ dial: {
+ radius: \'100%\',
+ baseWidth: 1,
+ rearLength: \'20%\'
+ }
+ }],
+ animation: false,
+ dataLabels: {
+ enabled: false
+ }
+ }]
+ },
+
+ // Move
+ function (chart) {
+ setInterval(function () {
+
+ now = getNow();
+
+ var hour = chart.get(\'hour\'),
+ minute = chart.get(\'minute\'),
+ second = chart.get(\'second\'),
+ // run animation unless we\'re wrapping around from 59 to 0
+ animation = now.seconds === 0 ?
+ false :
+ {
+ easing: \'easeOutElastic\'
+ };
+
+ // Cache the tooltip text
+ chart.tooltipText =
+ pad(Math.floor(now.hours), 2) + \':\' +
+ pad(Math.floor(now.minutes * 5), 2) + \':\' +
+ pad(now.seconds * 5, 2);
+
+ hour.update(now.hours, true, animation);
+ minute.update(now.minutes, true, animation);
+ second.update(now.seconds, true, animation);
+
+ }, 1000);
+
+ });
+});
+
+// Extend jQuery with some easing (copied from jQuery UI)
+$.extend($.easing, {
+ easeOutElastic: function (x, t, b, c, d) {
+ var s=1.70158;var p=0;var a=c;
+ if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
+ if (a < Math.abs(c)) { a=c; var s=p/4; }
+ else var s = p/(2*Math.PI) * Math.asin (c/a);
+ return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
+ }
+});
+//]]>
diff --git a/html/includes/js/highcharts-3d.js b/html/includes/js/highcharts-3d.js
new file mode 100644
index 0000000..c622493
--- /dev/null
+++ b/html/includes/js/highcharts-3d.js
@@ -0,0 +1,45 @@
+/*
+ Highcharts JS v4.0.4 (2014-09-02)
+
+ (c) 2009-2013 Torstein Hønsi
+
+ License: www.highcharts.com/license
+*/
+(function(d){function x(f,a,b,c){var e,g,j;b*=t;a*=t;var i=[],h,k,o;b*=-1;h=c.x;k=c.y;o=(c.z===0?1.0E-4:c.z)*(c.vd||25);o=Math.max(500,o);var q=l(b),n=m(b),r=l(a),s=m(a),p,v,u;d.each(f,function(a){p=a.x-h;v=a.y-k;u=a.z||0;e=n*p-q*u;g=-q*r*p-n*r*u+s*v;j=q*s*p+n*s*u+r*v;e=e*((o-j)/o)+h;g=g*((o-j)/o)+k;i.push({x:z(e),y:z(g),z:z(j)})});return i}function A(f){return f!==void 0&&f!==null}function w(f,a,b,c,e,g,d,i){var h=[];return g>e&&g-e>n/2+1.0E-4?(h=h.concat(w(f,a,b,c,e,e+n/2,d,i)),h=h.concat(w(f,a,
+b,c,e+n/2,g,d,i))):g<e&&e-g>n/2+1.0E-4?(h=h.concat(w(f,a,b,c,e,e-n/2,d,i)),h=h.concat(w(f,a,b,c,e-n/2,g,d,i))):(h=g-e,["C",f+b*m(e)-b*B*h*l(e)+d,a+c*l(e)+c*B*h*m(e)+i,f+b*m(g)+b*B*h*l(g)+d,a+c*l(g)-c*B*h*m(g)+i,f+b*m(g)+d,a+c*l(g)+i])}function D(f){if(this.chart.is3d()){var a=this.chart.options.plotOptions.column.grouping;a!==void 0&&!a&&this.group.zIndex!==void 0&&this.group.attr({zIndex:this.group.zIndex*10});var b=this.options,c=this.options.states;this.borderWidth=b.borderWidth=b.edgeWidth||1;
+d.each(this.data,function(a){if(a.y!==null)a=a.pointAttr,this.borderColor=d.pick(b.edgeColor,a[""].fill),a[""].stroke=this.borderColor,a.hover.stroke=d.pick(c.hover.edgeColor,this.borderColor),a.select.stroke=d.pick(c.select.edgeColor,this.borderColor)})}f.apply(this,[].slice.call(arguments,1))}var n=Math.PI,t=n/180,l=Math.sin,m=Math.cos,z=Math.round,B=4*(Math.sqrt(2)-1)/3/(n/2);d.SVGRenderer.prototype.toLinePath=function(f,a){var b=[];d.each(f,function(a){b.push("L",a.x,a.y)});b[0]="M";a&&b.push("Z");
+return b};d.SVGRenderer.prototype.cuboid=function(f){var a=this.g(),f=this.cuboidPath(f);a.front=this.path(f[0]).attr({zIndex:f[3],"stroke-linejoin":"round"}).add(a);a.top=this.path(f[1]).attr({zIndex:f[4],"stroke-linejoin":"round"}).add(a);a.side=this.path(f[2]).attr({zIndex:f[5],"stroke-linejoin":"round"}).add(a);a.fillSetter=function(a){var c=d.Color(a).brighten(0.1).get(),e=d.Color(a).brighten(-0.1).get();this.front.attr({fill:a});this.top.attr({fill:c});this.side.attr({fill:e});this.color=a;
+return this};a.opacitySetter=function(a){this.front.attr({opacity:a});this.top.attr({opacity:a});this.side.attr({opacity:a});return this};a.attr=function(a){a.shapeArgs||A(a.x)?(a=this.renderer.cuboidPath(a.shapeArgs||a),this.front.attr({d:a[0],zIndex:a[3]}),this.top.attr({d:a[1],zIndex:a[4]}),this.side.attr({d:a[2],zIndex:a[5]})):d.SVGElement.prototype.attr.call(this,a);return this};a.animate=function(a,c,e){A(a.x)&&A(a.y)?(a=this.renderer.cuboidPath(a),this.front.attr({zIndex:a[3]}).animate({d:a[0]},
+c,e),this.top.attr({zIndex:a[4]}).animate({d:a[1]},c,e),this.side.attr({zIndex:a[5]}).animate({d:a[2]},c,e)):a.opacity?(this.front.animate(a,c,e),this.top.animate(a,c,e),this.side.animate(a,c,e)):d.SVGElement.prototype.animate.call(this,a,c,e);return this};a.destroy=function(){this.front.destroy();this.top.destroy();this.side.destroy();return null};a.attr({zIndex:-f[3]});return a};d.SVGRenderer.prototype.cuboidPath=function(d){var a=d.x,b=d.y,c=d.z,e=d.height,g=d.width,j=d.depth,i=d.alpha,h=d.beta,
+a=[{x:a,y:b,z:c},{x:a+g,y:b,z:c},{x:a+g,y:b+e,z:c},{x:a,y:b+e,z:c},{x:a,y:b+e,z:c+j},{x:a+g,y:b+e,z:c+j},{x:a+g,y:b,z:c+j},{x:a,y:b,z:c+j}],a=x(a,i,h,d.origin),d=["M",a[0].x,a[0].y,"L",a[7].x,a[7].y,"L",a[6].x,a[6].y,"L",a[1].x,a[1].y,"Z"],b=["M",a[3].x,a[3].y,"L",a[2].x,a[2].y,"L",a[5].x,a[5].y,"L",a[4].x,a[4].y,"Z"],c=["M",a[1].x,a[1].y,"L",a[2].x,a[2].y,"L",a[5].x,a[5].y,"L",a[6].x,a[6].y,"Z"],e=["M",a[0].x,a[0].y,"L",a[7].x,a[7].y,"L",a[4].x,a[4].y,"L",a[3].x,a[3].y,"Z"];return[["M",a[0].x,a[0].y,
+"L",a[1].x,a[1].y,"L",a[2].x,a[2].y,"L",a[3].x,a[3].y,"Z"],a[7].y<a[1].y?d:a[4].y>a[2].y?b:[],a[6].x>a[1].x?c:a[7].x<a[0].x?e:[],(a[0].z+a[1].z+a[2].z+a[3].z)/4,h>0?(a[0].z+a[7].z+a[6].z+a[1].z)/4:(a[3].z+a[2].z+a[5].z+a[4].z)/4,i>0?(a[1].z+a[2].z+a[5].z+a[6].z)/4:(a[0].z+a[7].z+a[4].z+a[3].z)/4]};d.SVGRenderer.prototype.arc3d=function(f){f.alpha*=t;f.beta*=t;var a=this.g(),b=this.arc3dPath(f),c=a.renderer,e=b.zTop*100;a.shapeArgs=f;a.top=c.path(b.top).attr({zIndex:b.zTop}).add(a);a.side1=c.path(b.side2).attr({zIndex:b.zSide2});
+a.side2=c.path(b.side1).attr({zIndex:b.zSide1});a.inn=c.path(b.inn).attr({zIndex:b.zInn});a.out=c.path(b.out).attr({zIndex:b.zOut});a.fillSetter=function(a){this.color=a;var b=d.Color(a).brighten(-0.1).get();this.side1.attr({fill:b});this.side2.attr({fill:b});this.inn.attr({fill:b});this.out.attr({fill:b});this.top.attr({fill:a});return this};a.translateXSetter=function(a){this.out.attr({translateX:a});this.inn.attr({translateX:a});this.side1.attr({translateX:a});this.side2.attr({translateX:a});this.top.attr({translateX:a})};
+a.translateYSetter=function(a){this.out.attr({translateY:a});this.inn.attr({translateY:a});this.side1.attr({translateY:a});this.side2.attr({translateY:a});this.top.attr({translateY:a})};a.animate=function(a,b,c){A(a.end)||A(a.start)?(this._shapeArgs=this.shapeArgs,d.SVGElement.prototype.animate.call(this,{_args:a},{duration:b,step:function(){var a=arguments[1],b=a.elem,c=b._shapeArgs,e=a.end,a=a.pos,c=d.merge(c,{x:c.x+(e.x-c.x)*a,y:c.y+(e.y-c.y)*a,r:c.r+(e.r-c.r)*a,innerR:c.innerR+(e.innerR-c.innerR)*
+a,start:c.start+(e.start-c.start)*a,end:c.end+(e.end-c.end)*a}),e=b.renderer.arc3dPath(c);b.shapeArgs=c;b.top.attr({d:e.top,zIndex:e.zTop});b.inn.attr({d:e.inn,zIndex:e.zInn});b.out.attr({d:e.out,zIndex:e.zOut});b.side1.attr({d:e.side1,zIndex:e.zSide1});b.side2.attr({d:e.side2,zIndex:e.zSide2})}},c)):d.SVGElement.prototype.animate.call(this,a,b,c);return this};a.destroy=function(){this.top.destroy();this.out.destroy();this.inn.destroy();this.side1.destroy();this.side2.destroy();d.SVGElement.prototype.destroy.call(this)};
+a.hide=function(){this.top.hide();this.out.hide();this.inn.hide();this.side1.hide();this.side2.hide()};a.show=function(){this.top.show();this.out.show();this.inn.show();this.side1.show();this.side2.show()};a.zIndex=e;a.attr({zIndex:e});return a};d.SVGRenderer.prototype.arc3dPath=function(d){var a=d.x,b=d.y,c=d.start,e=d.end-1.0E-5,g=d.r,j=d.innerR,i=d.depth,h=d.alpha,k=d.beta,o=m(c),q=l(c),d=m(e),y=l(e),r=g*m(k),s=g*m(h),p=j*m(k);j*=m(h);var v=i*l(k),u=i*l(h),i=["M",a+r*o,b+s*q],i=i.concat(w(a,b,
+r,s,c,e,0,0)),i=i.concat(["L",a+p*d,b+j*y]),i=i.concat(w(a,b,p,j,e,c,0,0)),i=i.concat(["Z"]),k=k>0?n/2:0,h=h>0?0:n/2,k=c>-k?c:e>-k?-k:c,t=e<n-h?e:c<n-h?n-h:e,h=["M",a+r*m(k),b+s*l(k)],h=h.concat(w(a,b,r,s,k,t,0,0)),h=h.concat(["L",a+r*m(t)+v,b+s*l(t)+u]),h=h.concat(w(a,b,r,s,t,k,v,u)),h=h.concat(["Z"]),k=["M",a+p*o,b+j*q],k=k.concat(w(a,b,p,j,c,e,0,0)),k=k.concat(["L",a+p*m(e)+v,b+j*l(e)+u]),k=k.concat(w(a,b,p,j,e,c,v,u)),k=k.concat(["Z"]),o=["M",a+r*o,b+s*q,"L",a+r*o+v,b+s*q+u,"L",a+p*o+v,b+j*q+
+u,"L",a+p*o,b+j*q,"Z"],a=["M",a+r*d,b+s*y,"L",a+r*d+v,b+s*y+u,"L",a+p*d+v,b+j*y+u,"L",a+p*d,b+j*y,"Z"],b=l((c+e)/2),c=l(c),e=l(e);return{top:i,zTop:g,out:h,zOut:Math.max(b,c,e)*g,inn:k,zInn:Math.max(b,c,e)*g,side1:o,zSide1:c*g*0.99,side2:a,zSide2:e*g*0.99}};d.Chart.prototype.is3d=function(){return this.options.chart.options3d&&this.options.chart.options3d.enabled};d.wrap(d.Chart.prototype,"isInsidePlot",function(d){return this.is3d()?!0:d.apply(this,[].slice.call(arguments,1))});d.getOptions().chart.options3d=
+{enabled:!1,alpha:0,beta:0,depth:100,viewDistance:25,frame:{bottom:{size:1,color:"rgba(255,255,255,0)"},side:{size:1,color:"rgba(255,255,255,0)"},back:{size:1,color:"rgba(255,255,255,0)"}}};d.wrap(d.Chart.prototype,"init",function(f){var a=[].slice.call(arguments,1),b;if(a[0].chart.options3d&&a[0].chart.options3d.enabled)b=a[0].plotOptions||{},b=b.pie||{},b.borderColor=d.pick(b.borderColor,void 0);f.apply(this,a)});d.wrap(d.Chart.prototype,"setChartSize",function(d){d.apply(this,[].slice.call(arguments,
+1));if(this.is3d()){var a=this.inverted,b=this.clipBox,c=this.margin;b[a?"y":"x"]=-(c[3]||0);b[a?"x":"y"]=-(c[0]||0);b[a?"height":"width"]=this.chartWidth+(c[3]||0)+(c[1]||0);b[a?"width":"height"]=this.chartHeight+(c[0]||0)+(c[2]||0)}});d.wrap(d.Chart.prototype,"redraw",function(d){if(this.is3d())this.isDirtyBox=!0;d.apply(this,[].slice.call(arguments,1))});d.Chart.prototype.retrieveStacks=function(f,a){var b={},c=1;if(f||!a)return this.series;d.each(this.series,function(a){b[a.options.stack||0]?
+b[a.options.stack||0].series.push(a):(b[a.options.stack||0]={series:[a],position:c},c++)});b.totalStacks=c+1;return b};d.wrap(d.Axis.prototype,"init",function(f){var a=arguments;if(a[1].is3d())a[2].tickWidth=d.pick(a[2].tickWidth,0),a[2].gridLineWidth=d.pick(a[2].gridLineWidth,1);f.apply(this,[].slice.call(arguments,1))});d.wrap(d.Axis.prototype,"render",function(d){d.apply(this,[].slice.call(arguments,1));if(this.chart.is3d()){var a=this.chart,b=a.renderer,c=a.options.chart.options3d,e=c.alpha,g=
+c.beta*(a.yAxis[0].opposite?-1:1),j=c.frame,i=j.bottom,h=j.back,j=j.side,k=c.depth,o=this.height,q=this.width,l=this.left,m=this.top,c={x:a.plotLeft+a.plotWidth/2,y:a.plotTop+a.plotHeight/2,z:k,vd:c.viewDistance};if(this.horiz)this.axisLine&&this.axisLine.hide(),g={x:l,y:m+(a.yAxis[0].reversed?-i.size:o),z:0,width:q,height:i.size,depth:k,alpha:e,beta:g,origin:c},this.bottomFrame?this.bottomFrame.animate(g):this.bottomFrame=b.cuboid(g).attr({fill:i.color,zIndex:a.yAxis[0].reversed&&e>0?4:-1}).css({stroke:i.color}).add();
+else{var n={x:l,y:m,z:k+1,width:q,height:o+i.size,depth:h.size,alpha:e,beta:g,origin:c};this.backFrame?this.backFrame.animate(n):this.backFrame=b.cuboid(n).attr({fill:h.color,zIndex:-3}).css({stroke:h.color}).add();this.axisLine&&this.axisLine.hide();a={x:(a.yAxis[0].opposite?q:0)+l-j.size,y:m,z:0,width:j.size,height:o+i.size,depth:k+h.size,alpha:e,beta:g,origin:c};this.sideFrame?this.sideFrame.animate(a):this.sideFrame=b.cuboid(a).attr({fill:j.color,zIndex:-2}).css({stroke:j.color}).add()}}});d.wrap(d.Axis.prototype,
+"getPlotLinePath",function(d){var a=d.apply(this,[].slice.call(arguments,1));if(!this.chart.is3d())return a;if(a===null)return a;var b=this.chart,c=b.options.chart.options3d,e=c.depth;c.origin={x:b.plotLeft+b.plotWidth/2,y:b.plotTop+b.plotHeight/2,z:e,vd:c.viewDistance};var a=[{x:a[1],y:a[2],z:this.horiz||this.opposite?e:0},{x:a[1],y:a[2],z:e},{x:a[4],y:a[5],z:e},{x:a[4],y:a[5],z:this.horiz||this.opposite?0:e}],e=b.options.inverted?c.beta:c.alpha,g=b.options.inverted?c.alpha:c.beta;g*=b.yAxis[0].opposite?
+-1:1;a=x(a,e,g,c.origin);return a=this.chart.renderer.toLinePath(a,!1)});d.wrap(d.Axis.prototype,"getPlotBandPath",function(d){if(this.chart.is3d()){var a=arguments,b=a[1],a=this.getPlotLinePath(a[2]);(b=this.getPlotLinePath(b))&&a?b.push(a[7],a[8],a[4],a[5],a[1],a[2]):b=null;return b}else return d.apply(this,[].slice.call(arguments,1))});d.wrap(d.Tick.prototype,"getMarkPath",function(d){var a=d.apply(this,[].slice.call(arguments,1));if(!this.axis.chart.is3d())return a;var b=this.axis.chart,c=b.options.chart.options3d,
+e={x:b.plotLeft+b.plotWidth/2,y:b.plotTop+b.plotHeight/2,z:c.depth,vd:c.viewDistance},a=[{x:a[1],y:a[2],z:0},{x:a[4],y:a[5],z:0}],g=b.inverted?c.beta:c.alpha,c=b.inverted?c.alpha:c.beta;c*=b.yAxis[0].opposite?-1:1;a=x(a,g,c,e);return a=["M",a[0].x,a[0].y,"L",a[1].x,a[1].y]});d.wrap(d.Tick.prototype,"getLabelPosition",function(d){var a=d.apply(this,[].slice.call(arguments,1));if(!this.axis.chart.is3d())return a;var b=this.axis.chart,c=b.options.chart.options3d,e={x:b.plotLeft+b.plotWidth/2,y:b.plotTop+
+b.plotHeight/2,z:c.depth,vd:c.viewDistance},g=b.inverted?c.beta:c.alpha,c=b.inverted?c.alpha:c.beta;c*=b.yAxis[0].opposite?-1:1;return a=x([{x:a.x,y:a.y,z:0}],g,c,e)[0]});d.wrap(d.Axis.prototype,"drawCrosshair",function(d){var a=arguments;this.chart.is3d()&&a[2]&&(a[2]={plotX:a[2].plotXold||a[2].plotX,plotY:a[2].plotYold||a[2].plotY});d.apply(this,[].slice.call(a,1))});d.wrap(d.seriesTypes.column.prototype,"translate",function(f){f.apply(this,[].slice.call(arguments,1));if(this.chart.is3d()){var a=
+this.chart,b=this.options,c=a.options.chart.options3d,e=b.depth||25,g={x:a.plotWidth/2,y:a.plotHeight/2,z:c.depth,vd:c.viewDistance},j=c.alpha,i=c.beta*(a.yAxis[0].opposite?-1:1),h=(b.stacking?b.stack||0:this._i)*(e+(b.groupZPadding||1));b.grouping!==!1&&(h=0);h+=b.groupZPadding||1;d.each(this.data,function(a){if(a.y!==null){var b=a.shapeArgs,c=a.tooltipPos;a.shapeType="cuboid";b.alpha=j;b.beta=i;b.z=h;b.origin=g;b.depth=e;c=x([{x:c[0],y:c[1],z:h}],j,i,g)[0];a.tooltipPos=[c.x,c.y]}})}});d.wrap(d.seriesTypes.column.prototype,
+"animate",function(f){if(this.chart.is3d()){var a=arguments[1],b=this.yAxis,c=this,e=this.yAxis.reversed;if(d.svg)a?d.each(c.data,function(a){if(a.y!==null&&(a.height=a.shapeArgs.height,a.shapey=a.shapeArgs.y,a.shapeArgs.height=1,!e))a.shapeArgs.y=a.stackY?a.plotY+b.translate(a.stackY):a.plotY+(a.negative?-a.height:a.height)}):(d.each(c.data,function(a){if(a.y!==null)a.shapeArgs.height=a.height,a.shapeArgs.y=a.shapey,a.graphic&&a.graphic.animate(a.shapeArgs,c.options.animation)}),this.drawDataLabels(),