You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
278 lines
8.4 KiB
278 lines
8.4 KiB
9 months ago
|
/*
|
||
|
Highcharts JS v3.0.6 (2013-10-04)
|
||
|
|
||
|
Standalone Highcharts Framework
|
||
|
|
||
|
License: MIT License
|
||
|
*/
|
||
|
var HighchartsAdapter = (function () {
|
||
|
function o(c) {
|
||
|
function a(a, b, d) {
|
||
|
a.removeEventListener(b, d, !1);
|
||
|
}
|
||
|
function d(a, b, d) {
|
||
|
d = a.HCProxiedMethods[d.toString()];
|
||
|
a.detachEvent('on' + b, d);
|
||
|
}
|
||
|
function b(b, c) {
|
||
|
var f = b.HCEvents,
|
||
|
i,
|
||
|
g,
|
||
|
k,
|
||
|
j;
|
||
|
if (b.removeEventListener) i = a;
|
||
|
else if (b.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(b, 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) {
|
||
|
a.call(d, b);
|
||
|
};
|
||
|
if (!d.HCProxiedMethods) d.HCProxiedMethods = {};
|
||
|
d.HCProxiedMethods[a.toString()] = g;
|
||
|
d.attachEvent('on' + b, g);
|
||
|
}
|
||
|
c[b] === r && (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 ? a(this, c, h) : this.attachEvent && d(this, c, h))
|
||
|
: (b(this, c), (this.HCEvents[c] = [])))
|
||
|
: (b(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;
|
||
|
a.type = b;
|
||
|
j.call(this, a) === !1 && a.preventDefault();
|
||
|
}
|
||
|
},
|
||
|
});
|
||
|
return c;
|
||
|
}
|
||
|
var r,
|
||
|
l = document,
|
||
|
p = [],
|
||
|
m = [],
|
||
|
q,
|
||
|
n;
|
||
|
Math.easeInOutSine = function (c, a, d, b) {
|
||
|
return (-d / 2) * (Math.cos((Math.PI * c) / b) - 1) + a;
|
||
|
};
|
||
|
return {
|
||
|
init: function (c) {
|
||
|
if (!l.defaultView)
|
||
|
(this._getStyle = function (a, d) {
|
||
|
var b;
|
||
|
return a.style[d]
|
||
|
? a.style[d]
|
||
|
: (d === 'opacity' && (d = 'filter'),
|
||
|
(b =
|
||
|
a.currentStyle[
|
||
|
d.replace(/\-(\w)/g, function (a, b) {
|
||
|
return b.toUpperCase();
|
||
|
})
|
||
|
]),
|
||
|
d === 'filter' &&
|
||
|
(b = b.replace(/alpha\(opacity=([0-9]+)\)/, function (b, a) {
|
||
|
return a / 100;
|
||
|
})),
|
||
|
b === '' ? 1 : b);
|
||
|
}),
|
||
|
(this.adapterRun = function (a, d) {
|
||
|
var b = { width: 'clientWidth', height: 'clientHeight' }[d];
|
||
|
if (b)
|
||
|
return (
|
||
|
(a.style.zoom = 1),
|
||
|
a[b] - 2 * parseInt(HighchartsAdapter._getStyle(a, 'padding'), 10)
|
||
|
);
|
||
|
});
|
||
|
if (!Array.prototype.forEach)
|
||
|
this.each = function (a, d) {
|
||
|
for (var b = 0, c = a.length; b < c; b++) if (d.call(a[b], a[b], b, a) === !1) return b;
|
||
|
};
|
||
|
if (!Array.prototype.indexOf)
|
||
|
this.inArray = function (a, d) {
|
||
|
var b,
|
||
|
c = 0;
|
||
|
if (d) for (b = d.length; c < b; c++) if (d[c] === a) return c;
|
||
|
return -1;
|
||
|
};
|
||
|
if (!Array.prototype.filter)
|
||
|
this.grep = function (a, d) {
|
||
|
for (var b = [], c = 0, h = a.length; c < h; c++) d(a[c], c) && b.push(a[c]);
|
||
|
return b;
|
||
|
};
|
||
|
n = function (a, c, b) {
|
||
|
this.options = c;
|
||
|
this.elem = a;
|
||
|
this.prop = b;
|
||
|
};
|
||
|
n.prototype = {
|
||
|
update: function () {
|
||
|
var a;
|
||
|
a = this.paths;
|
||
|
var d = this.elem,
|
||
|
b = d.element;
|
||
|
a && b
|
||
|
? d.attr('d', c.step(a[0], a[1], this.now, this.toD))
|
||
|
: d.attr
|
||
|
? b && d.attr(this.prop, this.now)
|
||
|
: ((a = {}), (a[d] = this.now + this.unit), Highcharts.css(d, a));
|
||
|
this.options.step && this.options.step.call(this.elem, this.now, this);
|
||
|
},
|
||
|
custom: function (a, c, b) {
|
||
|
var e = this,
|
||
|
h = function (a) {
|
||
|
return e.step(a);
|
||
|
},
|
||
|
f;
|
||
|
this.startTime = +new Date();
|
||
|
this.start = a;
|
||
|
this.end = c;
|
||
|
this.unit = b;
|
||
|
this.now = this.start;
|
||
|
this.pos = this.state = 0;
|
||
|
h.elem = this.elem;
|
||
|
h() &&
|
||
|
m.push(h) === 1 &&
|
||
|
(q = setInterval(function () {
|
||
|
for (f = 0; f < m.length; f++) m[f]() || m.splice(f--, 1);
|
||
|
m.length || clearInterval(q);
|
||
|
}, 13));
|
||
|
},
|
||
|
step: function (a) {
|
||
|
var c = +new Date(),
|
||
|
b;
|
||
|
b = this.options;
|
||
|
var e;
|
||
|
if (this.elem.stopAnimation) b = !1;
|
||
|
else if (a || c >= b.duration + this.startTime) {
|
||
|
this.now = this.end;
|
||
|
this.pos = this.state = 1;
|
||
|
this.update();
|
||
|
a = this.options.curAnim[this.prop] = !0;
|
||
|
for (e in b.curAnim) b.curAnim[e] !== !0 && (a = !1);
|
||
|
a && b.complete && b.complete.call(this.elem);
|
||
|
b = !1;
|
||
|
} else
|
||
|
(e = c - this.startTime),
|
||
|
(this.state = e / b.duration),
|
||
|
(this.pos = b.easing(e, 0, 1, b.duration)),
|
||
|
(this.now = this.start + (this.end - this.start) * this.pos),
|
||
|
this.update(),
|
||
|
(b = !0);
|
||
|
return b;
|
||
|
},
|
||
|
};
|
||
|
this.animate = function (a, d, b) {
|
||
|
var e,
|
||
|
h = '',
|
||
|
f,
|
||
|
i,
|
||
|
g;
|
||
|
a.stopAnimation = !1;
|
||
|
if (typeof b !== 'object' || b === null)
|
||
|
(e = arguments), (b = { duration: e[2], easing: e[3], complete: e[4] });
|
||
|
if (typeof b.duration !== 'number') b.duration = 400;
|
||
|
b.easing = Math[b.easing] || Math.easeInOutSine;
|
||
|
b.curAnim = Highcharts.extend({}, d);
|
||
|
for (g in d)
|
||
|
(i = new n(a, b, g)),
|
||
|
(f = null),
|
||
|
g === 'd'
|
||
|
? ((i.paths = c.init(a, a.d, d.d)), (i.toD = d.d), (e = 0), (f = 1))
|
||
|
: a.attr
|
||
|
? (e = a.attr(g))
|
||
|
: ((e = parseFloat(HighchartsAdapter._getStyle(a, g)) || 0),
|
||
|
g !== 'opacity' && (h = 'px')),
|
||
|
f || (f = parseFloat(d[g])),
|
||
|
i.custom(e, f, h);
|
||
|
};
|
||
|
},
|
||
|
_getStyle: function (c, a) {
|
||
|
return window.getComputedStyle(c).getPropertyValue(a);
|
||
|
},
|
||
|
getScript: function (c, a) {
|
||
|
var d = l.getElementsByTagName('head')[0],
|
||
|
b = l.createElement('script');
|
||
|
b.type = 'text/javascript';
|
||
|
b.src = c;
|
||
|
b.onload = a;
|
||
|
d.appendChild(b);
|
||
|
},
|
||
|
inArray: function (c, a) {
|
||
|
return a.indexOf ? a.indexOf(c) : p.indexOf.call(a, c);
|
||
|
},
|
||
|
adapterRun: function (c, a) {
|
||
|
return parseInt(HighchartsAdapter._getStyle(c, a), 10);
|
||
|
},
|
||
|
grep: function (c, a) {
|
||
|
return p.filter.call(c, a);
|
||
|
},
|
||
|
map: function (c, a) {
|
||
|
for (var d = [], b = 0, e = c.length; b < e; b++) d[b] = a.call(c[b], c[b], b, c);
|
||
|
return d;
|
||
|
},
|
||
|
offset: function (c) {
|
||
|
for (var a = 0, d = 0; c; ) (a += c.offsetLeft), (d += c.offsetTop), (c = c.offsetParent);
|
||
|
return { left: a, top: d };
|
||
|
},
|
||
|
addEvent: function (c, a, d) {
|
||
|
o(c).bind(a, d);
|
||
|
},
|
||
|
removeEvent: function (c, a, d) {
|
||
|
o(c).unbind(a, d);
|
||
|
},
|
||
|
fireEvent: function (c, a, d, b) {
|
||
|
var e;
|
||
|
l.createEvent && (c.dispatchEvent || c.fireEvent)
|
||
|
? ((e = l.createEvent('Events')),
|
||
|
e.initEvent(a, !0, !0),
|
||
|
(e.target = c),
|
||
|
Highcharts.extend(e, d),
|
||
|
c.dispatchEvent ? c.dispatchEvent(e) : c.fireEvent(a, e))
|
||
|
: c.HCExtended === !0 && ((d = d || {}), c.trigger(a, d));
|
||
|
d && d.defaultPrevented && (b = null);
|
||
|
b && b(d);
|
||
|
},
|
||
|
washMouseEvent: function (c) {
|
||
|
return c;
|
||
|
},
|
||
|
stop: function (c) {
|
||
|
c.stopAnimation = !0;
|
||
|
},
|
||
|
each: function (c, a) {
|
||
|
return Array.prototype.forEach.call(c, a);
|
||
|
},
|
||
|
};
|
||
|
})();
|