文件过大分5部分
highcharts.js 0-3000_spencer_tseng的博客-优快云博客
highcharts.js 3001-6000_spencer_tseng的博客-优快云博客
highcharts.js 6001-9000_spencer_tseng的博客-优快云博客
highcharts.js 9001-12000_spencer_tseng的博客-优快云博客
highcharts.js 12001-12677_spencer_tseng的博客-优快云博客
highcharts.js 12001-12677
};
return function(c, e) {
function d() {
this.constructor = c
}
a(c, e);
c.prototype = null === e ? Object.create(e) : (d.prototype = e.prototype, new d)
}
} (),
c = a.getStartAndEndRadians;
x = x.noop;
var l = n.clamp,
m = n.extend,
e = n.fireEvent,
u = n.merge,
v = n.pick,
J = n.relativeLength;
n = function(a) {
function g() {
var c = null !== a && a.apply(this, arguments) || this;
c.center = void 0;
c.data = void 0;
c.maxLabelDistance = void 0;
c.options = void 0;
c.points = void 0;
return c
}
f(g, a);
g.prototype.animate = function(a) {
var c = this,
e = c.points,
f = c.startAngleRad;
a || e.forEach(function(a) {
var b = a.graphic,
d = a.shapeArgs;
b && d && (b.attr({
r: v(a.startR, c.center && c.center[3] / 2),
start: f,
end: f
}), b.animate({
r: d.r,
start: d.start,
end: d.end
},
c.options.animation))
})
};
g.prototype.drawEmpty = function() {
var a = this.startAngleRad,
c = this.endAngleRad,
e = this.options;
if (0 === this.total && this.center) {
var f = this.center[0];
var g = this.center[1];
this.graph || (this.graph = this.chart.renderer.arc(f, g, this.center[1] / 2, 0, a, c).addClass("highcharts-empty-series").add(this.group));
this.graph.attr({
d: t.arc(f, g, this.center[2] / 2, 0, {
start: a,
end: c,
innerR: this.center[3] / 2
})
});
this.chart.styledMode || this.graph.attr({
"stroke-width": e.borderWidth,
fill: e.fillColor || "none",
stroke: e.color || "#cccccc"
})
} else this.graph && (this.graph = this.graph.destroy())
};
g.prototype.drawPoints = function() {
var a = this.chart.renderer;
this.points.forEach(function(c) {
c.graphic && c.hasNewShapeType() && (c.graphic = c.graphic.destroy());
c.graphic || (c.graphic = a[c.shapeType](c.shapeArgs).add(c.series.group), c.delayedRendering = !0)
})
};
g.prototype.generatePoints = function() {
a.prototype.generatePoints.call(this);
this.updateTotals()
};
g.prototype.getX = function(a, c, e) {
var d = this.center,
f = this.radii ? this.radii[e.index] || 0 : d[2] / 2;
a = Math.asin(l((a - d[1]) / (f + e.labelDistance), -1, 1));
return d[0] + (c ? -1 : 1) * Math.cos(a) * (f + e.labelDistance) + (0 < e.labelDistance ? (c ? -1 : 1) * this.options.dataLabels.padding: 0)
};
g.prototype.hasData = function() {
return !! this.processedXData.length
};
g.prototype.redrawPoints = function() {
var a = this,
c = a.chart,
e = c.renderer,
f = a.options.shadow,
g, b, l, m;
this.drawEmpty(); ! f || a.shadowGroup || c.styledMode || (a.shadowGroup = e.g("shadow").attr({
zIndex: -1
}).add(a.group));
a.points.forEach(function(d) {
var h = {};
b = d.graphic;
if (!d.isNull && b) {
var k = void 0;
m = d.shapeArgs;
g = d.getTranslate();
c.styledMode || (k = d.shadowGroup, f && !k && (k = d.shadowGroup = e.g("shadow").add(a.shadowGroup)), k && k.attr(g), l = a.pointAttribs(d, d.selected && "select"));
d.delayedRendering ? (b.setRadialReference(a.center).attr(m).attr(g), c.styledMode || b.attr(l).attr({
"stroke-linejoin": "round"
}).shadow(f, k), d.delayedRendering = !1) : (b.setRadialReference(a.center), c.styledMode || u(!0, h, l), u(!0, h, m, g), b.animate(h));
b.attr({
visibility: d.visible ? "inherit": "hidden"
});
b.addClass(d.getClassName(), !0)
} else b && (d.graphic = b.destroy())
})
};
g.prototype.sortByAngle = function(a, c) {
a.sort(function(a, d) {
return "undefined" !== typeof a.angle && (d.angle - a.angle) * c
})
};
g.prototype.translate = function(a) {
e(this, "translate");
this.generatePoints();
var d = this.options,
f = d.slicedOffset,
h = f + (d.borderWidth || 0),
g = c(d.startAngle, d.endAngle),
b = this.startAngleRad = g.start;
g = (this.endAngleRad = g.end) - b;
var l = this.points,
m = d.dataLabels.distance;
d = d.ignoreHiddenPoint;
var n = l.length,
u, t = 0;
a || (this.center = a = this.getCenter());
for (u = 0; u < n; u++) {
var r = l[u];
var A = b + t * g; ! r.isValid() || d && !r.visible || (t += r.percentage / 100);
var x = b + t * g;
var C = {
x: a[0],
y: a[1],
r: a[2] / 2,
innerR: a[3] / 2,
start: Math.round(1E3 * A) / 1E3,
end: Math.round(1E3 * x) / 1E3
};
r.shapeType = "arc";
r.shapeArgs = C;
r.labelDistance = v(r.options.dataLabels && r.options.dataLabels.distance, m);
r.labelDistance = J(r.labelDistance, C.r);
this.maxLabelDistance = Math.max(this.maxLabelDistance || 0, r.labelDistance);
x = (x + A) / 2;
x > 1.5 * Math.PI ? x -= 2 * Math.PI: x < -Math.PI / 2 && (x += 2 * Math.PI);
r.slicedTranslation = {
translateX: Math.round(Math.cos(x) * f),
translateY: Math.round(Math.sin(x) * f)
};
C = Math.cos(x) * a[2] / 2;
var y = Math.sin(x) * a[2] / 2;
r.tooltipPos = [a[0] + .7 * C, a[1] + .7 * y];
r.half = x < -Math.PI / 2 || x > Math.PI / 2 ? 1 : 0;
r.angle = x;
A = Math.min(h, r.labelDistance / 5);
r.labelPosition = {
natural: {
x: a[0] + C + Math.cos(x) * r.labelDistance,
y: a[1] + y + Math.sin(x) * r.labelDistance
},
"final": {},
alignment: 0 > r.labelDistance ? "center": r.half ? "right": "left",
connectorPosition: {
breakAt: {
x: a[0] + C + Math.cos(x) * A,
y: a[1] + y + Math.sin(x) * A
},
touchingSliceAt: {
x: a[0] + C,
y: a[1] + y
}
}
}
}
e(this, "afterTranslate")
};
g.prototype.updateTotals = function() {
var a = this.points,
c = a.length,
e = this.options.ignoreHiddenPoint,
f, g = 0;
for (f = 0; f < c; f++) {
var b = a[f]; ! b.isValid() || e && !b.visible || (g += b.y)
}
this.total = g;
for (f = 0; f < c; f++) b = a[f],
b.percentage = 0 < g && (b.visible || !e) ? b.y / g * 100 : 0,
b.total = g
};
g.defaultOptions = u(G.defaultOptions, B);
return g
} (G);
m(n.prototype, {
axisTypes: [],
directTouch: !0,
drawGraph: void 0,
drawLegendSymbol: E.drawRectangle,
drawTracker: g.prototype.drawTracker,
getCenter: a.getCenter,
getSymbol: x,
isCartesian: !1,
noSharedTooltip: !0,
pointAttribs: g.prototype.pointAttribs,
pointClass: D,
requireSorting: !1,
searchPoint: x,
trackerGroups: ["group", "dataLabelsGroup"]
});
r.registerSeriesType("pie", n);
return n
});
K(g, "Series/Pie/PieDataLabel.js", [g["Core/Series/DataLabel.js"], g["Core/Globals.js"], g["Core/Renderer/RendererUtilities.js"], g["Core/Series/SeriesRegistry.js"], g["Core/Utilities.js"]],
function(a, g, x, E, D) {
var v = g.noop,
G = x.distribute,
r = E.series,
t = D.arrayMax,
n = D.clamp,
f = D.defined,
c = D.merge,
l = D.pick,
m = D.relativeLength,
e; (function(e) {
function g() {
var a = this,
e = a.data,
g = a.chart,
k = a.options.dataLabels || {},
b = k.connectorPadding,
m = g.plotWidth,
n = g.plotHeight,
u = g.plotLeft,
v = Math.round(g.chartWidth / 3),
A = a.center,
x = A[2] / 2,
C = A[1],
B = [[], []],
D = [0, 0, 0, 0],
y = a.dataLabelPositioners,
E,
I,
J,
L,
F,
K,
M,
X,
W,
U,
Z,
V;
a.visible && (k.enabled || a._hasPointLabels) && (e.forEach(function(a) {
a.dataLabel && a.visible && a.dataLabel.shortened && (a.dataLabel.attr({
width: "auto"
}).css({
width: "auto",
textOverflow: "clip"
}), a.dataLabel.shortened = !1)
}), r.prototype.drawDataLabels.apply(a), e.forEach(function(a) {
a.dataLabel && (a.visible ? (B[a.half].push(a), a.dataLabel._pos = null, !f(k.style.width) && !f(a.options.dataLabels && a.options.dataLabels.style && a.options.dataLabels.style.width) && a.dataLabel.getBBox().width > v && (a.dataLabel.css({
width: Math.round(.7 * v) + "px"
}), a.dataLabel.shortened = !0)) : (a.dataLabel = a.dataLabel.destroy(), a.dataLabels && 1 === a.dataLabels.length && delete a.dataLabels))
}), B.forEach(function(c, d) {
var e = c.length,
h = [],
q;
if (e) {
a.sortByAngle(c, d - .5);
if (0 < a.maxLabelDistance) {
var p = Math.max(0, C - x - a.maxLabelDistance);
var t = Math.min(C + x + a.maxLabelDistance, g.plotHeight);
c.forEach(function(a) {
0 < a.labelDistance && a.dataLabel && (a.top = Math.max(0, C - x - a.labelDistance), a.bottom = Math.min(C + x + a.labelDistance, g.plotHeight), q = a.dataLabel.getBBox().height || 21, a.distributeBox = {
target: a.labelPosition.natural.y - a.top + q / 2,
size: q,
rank: a.y
},
h.push(a.distributeBox))
});
p = t + q - p;
G(h, p, p / 5)
}
for (Z = 0; Z < e; Z++) {
E = c[Z];
K = E.labelPosition;
L = E.dataLabel;
U = !1 === E.visible ? "hidden": "inherit";
W = p = K.natural.y;
h && f(E.distributeBox) && ("undefined" === typeof E.distributeBox.pos ? U = "hidden": (M = E.distributeBox.size, W = y.radialDistributionY(E)));
delete E.positionIndex;
if (k.justify) X = y.justify(E, x, A);
else switch (k.alignTo) {
case "connectors":
X = y.alignToConnectors(c, d, m, u);
break;
case "plotEdges":
X = y.alignToPlotEdges(L, d, m, u);
break;
default:
X = y.radialDistributionX(a, E, W, p)
}
L._attr = {
visibility: U,
align: K.alignment
};
V = E.options.dataLabels || {};
L._pos = {
x: X + l(V.x, k.x) + ({
left: b,
right: -b
} [K.alignment] || 0),
y: W + l(V.y, k.y) - 10
};
K.final.x = X;
K.final.y = W;
l(k.crop, !0) && (F = L.getBBox().width, p = null, X - F < b && 1 === d ? (p = Math.round(F - X + b), D[3] = Math.max(p, D[3])) : X + F > m - b && 0 === d && (p = Math.round(X + F - m + b), D[1] = Math.max(p, D[1])), 0 > W - M / 2 ? D[0] = Math.max(Math.round( - W + M / 2), D[0]) : W + M / 2 > n && (D[2] = Math.max(Math.round(W + M / 2 - n), D[2])), L.sideOverflow = p)
}
}
}), 0 === t(D) || this.verifyDataLabelOverflow(D)) && (this.placeDataLabels(), this.points.forEach(function(b) {
V = c(k, b.options.dataLabels);
if (I = l(V.connectorWidth, 1)) {
var d;
J = b.connector;
if ((L = b.dataLabel) && L._pos && b.visible && 0 < b.labelDistance) {
U = L._attr.visibility;
if (d = !J) b.connector = J = g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-" + b.colorIndex + (b.className ? " " + b.className: "")).add(a.dataLabelsGroup),
g.styledMode || J.attr({
"stroke-width": I,
stroke: V.connectorColor || b.color || "#666666"
});
J[d ? "attr": "animate"]({
d: b.getConnectorPath()
});
J.attr("visibility", U)
} else J && (b.connector = J.destroy())
}
}))
}
function u() {
this.points.forEach(function(a) {
var c = a.dataLabel,
d;
c && a.visible && ((d = c._pos) ? (c.sideOverflow && (c._attr.width = Math.max(c.getBBox().width - c.sideOverflow, 0), c.css({
width: c._attr.width + "px",
textOverflow: (this.options.dataLabels.style || {}).textOverflow || "ellipsis"
}), c.shortened = !0), c.attr(c._attr), c[c.moved ? "animate": "attr"](d), c.moved = !0) : c && c.attr({
y: -9999
}));
delete a.distributeBox
},
this)
}
function x(a) {
var c = this.center,
d = this.options,
e = d.center,
b = d.minSize || 80,
f = null !== d.size;
if (!f) {
if (null !== e[0]) var g = Math.max(c[2] - Math.max(a[1], a[3]), b);
else g = Math.max(c[2] - a[1] - a[3], b),
c[0] += (a[3] - a[1]) / 2;
null !== e[1] ? g = n(g, b, c[2] - Math.max(a[0], a[2])) : (g = n(g, b, c[2] - a[0] - a[2]), c[1] += (a[0] - a[2]) / 2);
g < c[2] ? (c[2] = g, c[3] = Math.min(d.thickness ? Math.max(0, g - 2 * d.thickness) : Math.max(0, m(d.innerSize || 0, g)), g), this.translate(c), this.drawDataLabels && this.drawDataLabels()) : f = !0
}
return f
}
var B = [],
A = {
radialDistributionY: function(a) {
return a.top + a.distributeBox.pos
},
radialDistributionX: function(a, c, e, f) {
return a.getX(e < c.top + 2 || e > c.bottom - 2 ? f: e, c.half, c)
},
justify: function(a, c, e) {
return e[0] + (a.half ? -1 : 1) * (c + a.labelDistance)
},
alignToPlotEdges: function(a, c, e, f) {
a = a.getBBox().width;
return c ? a + f: e - a - f
},
alignToConnectors: function(a, c, e, f) {
var b = 0,
d;
a.forEach(function(a) {
d = a.dataLabel.getBBox().width;
d > b && (b = d)
});
return c ? b + f: e - b - f
}
};
e.compose = function(c) {
a.compose(r); - 1 === B.indexOf(c) && (B.push(c), c = c.prototype, c.dataLabelPositioners = A, c.alignDataLabel = v, c.drawDataLabels = g, c.placeDataLabels = u, c.verifyDataLabelOverflow = x)
}
})(e || (e = {}));
return e
});
K(g, "Extensions/OverlappingDataLabels.js", [g["Core/Chart/Chart.js"], g["Core/Utilities.js"]],
function(a, g) {
function v(a, f) {
var c = !1;
if (a) {
var g = a.newOpacity;
a.oldOpacity !== g && (a.alignAttr && a.placed ? (a[g ? "removeClass": "addClass"]("highcharts-data-label-hidden"), c = !0, a.alignAttr.opacity = g, a[a.isOld ? "animate": "attr"](a.alignAttr, null,
function() {
f.styledMode || a.css({
pointerEvents: g ? "auto": "none"
})
}), D(f, "afterHideOverlappingLabel")) : a.attr({
opacity: g
}));
a.isOld = !0
}
return c
}
var E = g.addEvent,
D = g.fireEvent,
B = g.isArray,
G = g.isNumber,
r = g.objectEach,
t = g.pick;
E(a, "render",
function() {
var a = this,
f = []; (this.labelCollectors || []).forEach(function(a) {
f = f.concat(a())
}); (this.yAxis || []).forEach(function(a) {
a.stacking && a.options.stackLabels && !a.options.stackLabels.allowOverlap && r(a.stacking.stacks,
function(a) {
r(a,
function(a) {
a.label && f.push(a.label)
})
})
}); (this.series || []).forEach(function(c) {
var g = c.options.dataLabels;
c.visible && (!1 !== g.enabled || c._hasPointLabels) && (g = function(c) {
return c.forEach(function(c) {
c.visible && (B(c.dataLabels) ? c.dataLabels: c.dataLabel ? [c.dataLabel] : []).forEach(function(e) {
var g = e.options;
e.labelrank = t(g.labelrank, c.labelrank, c.shapeArgs && c.shapeArgs.height);
g.allowOverlap ? (e.oldOpacity = e.opacity, e.newOpacity = 1, v(e, a)) : f.push(e)
})
})
},
g(c.nodes || []), g(c.points))
});
this.hideOverlappingLabels(f)
});
a.prototype.hideOverlappingLabels = function(a) {
var f = this,
c = a.length,
g = f.renderer,
m, e, n, t = !1;
var r = function(a) {
var c, e = a.box ? 0 : a.padding || 0,
f = c = 0,
k;
if (a && (!a.alignAttr || a.placed)) {
var b = a.alignAttr || {
x: a.attr("x"),
y: a.attr("y")
};
var l = a.parentGroup;
a.width || (c = a.getBBox(), a.width = c.width, a.height = c.height, c = g.fontMetrics(null, a.element).h);
var m = a.width - 2 * e; (k = {
left: "0",
center: "0.5",
right: "1"
} [a.alignValue]) ? f = +k * m: G(a.x) && Math.round(a.x) !== a.translateX && (f = a.x - a.translateX);
return {
x: b.x + (l.translateX || 0) + e - (f || 0),
y: b.y + (l.translateY || 0) + e - c,
width: a.width - 2 * e,
height: a.height - 2 * e
}
}
};
for (e = 0; e < c; e++) if (m = a[e]) m.oldOpacity = m.opacity,
m.newOpacity = 1,
m.absoluteBox = r(m);
a.sort(function(a, c) {
return (c.labelrank || 0) - (a.labelrank || 0)
});
for (e = 0; e < c; e++) {
var x = (r = a[e]) && r.absoluteBox;
for (m = e + 1; m < c; ++m) {
var B = (n = a[m]) && n.absoluteBox; ! x || !B || r === n || 0 === r.newOpacity || 0 === n.newOpacity || "hidden" === r.visibility || "hidden" === n.visibility || B.x >= x.x + x.width || B.x + B.width <= x.x || B.y >= x.y + x.height || B.y + B.height <= x.y || ((r.labelrank < n.labelrank ? r: n).newOpacity = 0)
}
}
a.forEach(function(a) {
v(a, f) && (t = !0)
});
t && D(f, "afterHideAllOverlappingLabels")
}
});
K(g, "Core/Responsive.js", [g["Core/Utilities.js"]],
function(a) {
var g = a.extend,
x = a.find,
E = a.isArray,
D = a.isObject,
B = a.merge,
G = a.objectEach,
r = a.pick,
t = a.splat,
n = a.uniqueKey,
f; (function(a) {
var c = [];
a.compose = function(a) { - 1 === c.indexOf(a) && (c.push(a), g(a.prototype, f.prototype));
return a
};
var f = function() {
function a() {}
a.prototype.currentOptions = function(a) {
function c(a, f, d, g) {
var h;
G(a,
function(a, b) {
if (!g && -1 < e.collectionsWithUpdate.indexOf(b) && f[b]) for (a = t(a), d[b] = [], h = 0; h < Math.max(a.length, f[b].length); h++) f[b][h] && (void 0 === a[h] ? d[b][h] = f[b][h] : (d[b][h] = {},
c(a[h], f[b][h], d[b][h], g + 1)));
else D(a) ? (d[b] = E(a) ? [] : {},
c(a, f[b] || {},
d[b], g + 1)) : d[b] = "undefined" === typeof f[b] ? null: f[b]
})
}
var e = this,
f = {};
c(a, this.options, f, 0);
return f
};
a.prototype.matchResponsiveRule = function(a, c) {
var e = a.condition; (e.callback ||
function() {
return this.chartWidth <= r(e.maxWidth, Number.MAX_VALUE) && this.chartHeight <= r(e.maxHeight, Number.MAX_VALUE) && this.chartWidth >= r(e.minWidth, 0) && this.chartHeight >= r(e.minHeight, 0)
}).call(this) && c.push(a._id)
};
a.prototype.setResponsive = function(a, c) {
var e = this,
f = this.options.responsive,
g = this.currentResponsive,
l = []; ! c && f && f.rules && f.rules.forEach(function(a) {
"undefined" === typeof a._id && (a._id = n());
e.matchResponsiveRule(a, l)
},
this);
c = B.apply(void 0, l.map(function(a) {
return x((f || {}).rules || [],
function(c) {
return c._id === a
})
}).map(function(a) {
return a && a.chartOptions
}));
c.isResponsiveOptions = !0;
l = l.toString() || void 0;
l !== (g && g.ruleIds) && (g && this.update(g.undoOptions, a, !0), l ? (g = this.currentOptions(c), g.isResponsiveOptions = !0, this.currentResponsive = {
ruleIds: l,
mergedOptions: c,
undoOptions: g
},
this.update(c, a, !0)) : this.currentResponsive = void 0)
};
return a
} ()
})(f || (f = {}));
"";
"";
return f
});
K(g, "masters/highcharts.src.js", [g["Core/Globals.js"], g["Core/Utilities.js"], g["Core/Defaults.js"], g["Core/Animation/Fx.js"], g["Core/Animation/AnimationUtilities.js"], g["Core/Renderer/HTML/AST.js"], g["Core/FormatUtilities.js"], g["Core/Renderer/RendererUtilities.js"], g["Core/Renderer/SVG/SVGElement.js"], g["Core/Renderer/SVG/SVGRenderer.js"], g["Core/Renderer/HTML/HTMLElement.js"], g["Core/Renderer/HTML/HTMLRenderer.js"], g["Core/Axis/Axis.js"], g["Core/Axis/DateTimeAxis.js"], g["Core/Axis/LogarithmicAxis.js"], g["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"], g["Core/Axis/Tick.js"], g["Core/Tooltip.js"], g["Core/Series/Point.js"], g["Core/Pointer.js"], g["Core/MSPointer.js"], g["Core/Legend/Legend.js"], g["Core/Chart/Chart.js"], g["Core/Axis/Stacking/StackingAxis.js"], g["Core/Axis/Stacking/StackItem.js"], g["Core/Series/Series.js"], g["Core/Series/SeriesRegistry.js"], g["Series/Column/ColumnSeries.js"], g["Series/Column/ColumnDataLabel.js"], g["Series/Pie/PieSeries.js"], g["Series/Pie/PieDataLabel.js"], g["Core/Series/DataLabel.js"], g["Core/Responsive.js"], g["Core/Color/Color.js"], g["Core/Time.js"]],
function(a, g, x, E, D, B, G, r, t, n, f, c, l, m, e, u, C, J, I, K, A, d, q, h, k, b, p, z, w, N, H, O, Q, S, Y) {
a.animate = D.animate;
a.animObject = D.animObject;
a.getDeferredAnimation = D.getDeferredAnimation;
a.setAnimation = D.setAnimation;
a.stop = D.stop;
a.timers = E.timers;
a.AST = B;
a.Axis = l;
a.Chart = q;
a.chart = q.chart;
a.Fx = E;
a.Legend = d;
a.PlotLineOrBand = u;
a.Point = I;
a.Pointer = A.isRequired() ? A: K;
a.Series = b;
a.StackItem = k;
a.SVGElement = t;
a.SVGRenderer = n;
a.Tick = C;
a.Time = Y;
a.Tooltip = J;
a.Color = S;
a.color = S.parse;
c.compose(n);
f.compose(t);
a.defaultOptions = x.defaultOptions;
a.getOptions = x.getOptions;
a.time = x.defaultTime;
a.setOptions = x.setOptions;
a.dateFormat = G.dateFormat;
a.format = G.format;
a.numberFormat = G.numberFormat;
a.addEvent = g.addEvent;
a.arrayMax = g.arrayMax;
a.arrayMin = g.arrayMin;
a.attr = g.attr;
a.clearTimeout = g.clearTimeout;
a.correctFloat = g.correctFloat;
a.createElement = g.createElement;
a.css = g.css;
a.defined = g.defined;
a.destroyObjectProperties = g.destroyObjectProperties;
a.discardElement = g.discardElement;
a.distribute = r.distribute;
a.erase = g.erase;
a.error = g.error;
a.extend = g.extend;
a.extendClass = g.extendClass;
a.find = g.find;
a.fireEvent = g.fireEvent;
a.getMagnitude = g.getMagnitude;
a.getStyle = g.getStyle;
a.inArray = g.inArray;
a.isArray = g.isArray;
a.isClass = g.isClass;
a.isDOMElement = g.isDOMElement;
a.isFunction = g.isFunction;
a.isNumber = g.isNumber;
a.isObject = g.isObject;
a.isString = g.isString;
a.keys = g.keys;
a.merge = g.merge;
a.normalizeTickInterval = g.normalizeTickInterval;
a.objectEach = g.objectEach;
a.offset = g.offset;
a.pad = g.pad;
a.pick = g.pick;
a.pInt = g.pInt;
a.relativeLength = g.relativeLength;
a.removeEvent = g.removeEvent;
a.seriesType = p.seriesType;
a.splat = g.splat;
a.stableSort = g.stableSort;
a.syncTimeout = g.syncTimeout;
a.timeUnits = g.timeUnits;
a.uniqueKey = g.uniqueKey;
a.useSerialIds = g.useSerialIds;
a.wrap = g.wrap;
w.compose(z);
O.compose(b);
m.compose(l);
e.compose(l);
H.compose(N);
u.compose(l);
Q.compose(q);
h.compose(l, q, b);
return a
});
g["masters/highcharts.src.js"]._modules = g;
return g["masters/highcharts.src.js"]
});
//# sourceMappingURL=highcharts.js.map
Highcharts是一个用纯JavaScript编写的数据可视化库,特别适合在网页中创建各种交互式图表。它提供了丰富的图表类型,包括柱状图、折线图、饼图等,并且支持响应式设计,适应不同设备显示。Highcharts还具有强大的数据标签处理能力,如饼图的PieDataLabel模块,优化了标签重叠问题,提升用户体验。
728

被折叠的 条评论
为什么被折叠?



