define("zrender/dep/excanvas", ["require"],
function (e) {
return document.createElement("canvas").getContext ? G_vmlCanvasManager = !1 : function () {
function f() {
return this.context_ || (this.context_ = new I(this))
}
function c(e, t, n) {
var r = l.call(arguments, 2);
return function () {
return e.apply(t, r.concat(l.call(arguments)))
}
}
function h(e) {
return String(e).replace(/&/g, "&").replace(/"/g, """)
}
function p(e, t, n) {
e.namespaces[t] || e.namespaces.add(t, n, "#default#VML")
}
function d(e) {
p(e, "g_vml_", "urn:schemas-microsoft-com:vml"),
p(e, "g_o_", "urn:schemas-microsoft-com:office:office");
if (!e.styleSheets.ex_canvas_) {
var t = e.createStyleSheet();
t.owningElement.id = "ex_canvas_",
t.cssText = "canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}"
}
}
function m(e) {
var t = e.srcElement;
switch (e.propertyName) {
case "width":
t.getContext().clearRect(),
t.style.width = t.attributes.width.nodeValue + "px",
t.firstChild.style.width = t.clientWidth + "px";
break;
case "height":
t.getContext().clearRect(),
t.style.height = t.attributes.height.nodeValue + "px",
t.firstChild.style.height = t.clientHeight + "px"
}
}
function g(e) {
var t = e.srcElement;
t.firstChild && (t.firstChild.style.width = t.clientWidth + "px", t.firstChild.style.height = t.clientHeight + "px")
}
function E() {
return [[1, 0, 0], [0, 1, 0], [0, 0, 1]]
}
function S(e, t) {
var n = E();
for (var r = 0; r < 3; r++) for (var i = 0; i < 3; i++) {
var s = 0;
for (var o = 0; o < 3; o++) s += e[r][o] * t[o][i];
n[r][i] = s
}
return n
}
function x(e, t) {
t.fillStyle = e.fillStyle,
t.lineCap = e.lineCap,
t.lineJoin = e.lineJoin,
t.lineWidth = e.lineWidth,
t.miterLimit = e.miterLimit,
t.shadowBlur = e.shadowBlur,
t.shadowColor = e.shadowColor,
t.shadowOffsetX = e.shadowOffsetX,
t.shadowOffsetY = e.shadowOffsetY,
t.strokeStyle = e.strokeStyle,
t.globalAlpha = e.globalAlpha,
t.font = e.font,
t.textAlign = e.textAlign,
t.textBaseline = e.textBaseline,
t.scaleX_ = e.scaleX_,
t.scaleY_ = e.scaleY_,
t.lineScale_ = e.lineScale_
}
function N(e) {
var t = e.indexOf("(", 3),
n = e.indexOf(")", t + 1),
r = e.substring(t + 1, n).split(",");
if (r.length != 4 || e.charAt(3) != "a") r[3] = 1;
return r
}
function C(e) {
return parseFloat(e) / 100
}
function k(e, t, n) {
return Math.min(n, Math.max(t, e))
}
function L(e) {
var t, n, r, i, s, o;
i = parseFloat(e[0]) / 360 % 360,
i < 0 && i++,
s = k(C(e[1]), 0, 1),
o = k(C(e[2]), 0, 1);
if (s == 0) t = n = r = o;
else {
var u = o < .5 ? o * (1 + s) : o + s - o * s,
a = 2 * o - u;
t = A(a, u, i + 1 / 3),
n = A(a, u, i),
r = A(a, u, i - 1 / 3)
}
return "#" + y[Math.floor(t * 255)] + y[Math.floor(n * 255)] + y[Math.floor(r * 255)]
}
function A(e, t, n) {
return n < 0 && n++,
n > 1 && n--,
6 * n < 1 ? e + (t - e) * 6 * n : 2 * n < 1 ? t : 3 * n < 2 ? e + (t - e) * (2 / 3 - n) * 6 : e
}
function M(e) {
if (e in O) return O[e];
var t, n = 1;
e = String(e);
if (e.charAt(0) == "#") t = e;
else if (/^rgb/.test(e)) {
var r = N(e),
t = "#",
i;
for (var s = 0; s < 3; s++) r[s].indexOf("%") != -1 ? i = Math.floor(C(r[s]) * 255) : i = +r[s],
t += y[k(i, 0, 255)];
n = +r[3]
} else if (/^hsl/.test(e)) {
var r = N(e);
t = L(r),
n = r[3]
} else t = T[e] || e;
return O[e] = {
color: t,
alpha: n
}
}
function P(e) {
if (D[e]) return D[e];
var t = document.createElement("div"),
n = t.style,
r;
try {
n.font = e,
r = n.fontFamily.split(",")[0]
} catch (i) { }
return D[e] = {
style: n.fontStyle || _.style,
variant: n.fontVariant || _.variant,
weight: n.fontWeight || _.weight,
size: n.fontSize || _.size,
family: r || _.family
}
}
function H(e, t) {
var n = {};
for (var r in e) n[r] = e[r];
var i = parseFloat(t.currentStyle.fontSize),
s = parseFloat(e.size);
return typeof e.size == "number" ? n.size = e.size : e.size.indexOf("px") != -1 ? n.size = s : e.size.indexOf("em") != -1 ? n.size = i * s : e.size.indexOf("%") != -1 ? n.size = i / 100 * s : e.size.indexOf("pt") != -1 ? n.size = s / .75 : n.size = i,
n
}
function B(e) {
return e.style + " " + e.variant + " " + e.weight + " " + e.size + "px '" + e.family + "'"
}
function F(e) {
return j[e] || "square"
}
function I(e) {
this.m_ = E(),
this.mStack_ = [],
this.aStack_ = [],
this.currentPath_ = [],
this.strokeStyle = "#000",
this.fillStyle = "#000",
this.lineWidth = 1,
this.lineJoin = "miter",
this.lineCap = "butt",
this.miterLimit = o * 1,
this.globalAlpha = 1,
this.font = "12px 微软雅黑",
this.textAlign = "left",
this.textBaseline = "alphabetic",
this.canvas = e;
var t = "width:" + e.clientWidth + "px;height:" + e.clientHeight + "px;overflow:hidden;position:absolute",
n = e.ownerDocument.createElement("div");
n.style.cssText = t,
e.appendChild(n);
var r = n.cloneNode(!1);
r.style.backgroundColor = "#fff",
r.style.filter = "alpha(opacity=0)",
e.appendChild(r),
this.element_ = n,
this.scaleX_ = 1,
this.scaleY_ = 1,
this.lineScale_ = 1
}
function R(e, t, n, r) {
e.currentPath_.push({
type: "bezierCurveTo",
cp1x: t.x,
cp1y: t.y,
cp2x: n.x,
cp2y: n.y,
x: r.x,
y: r.y
}),
e.currentX_ = r.x,
e.currentY_ = r.y
}
function U(e, t) {
var n = M(e.strokeStyle),
r = n.color,
i = n.alpha * e.globalAlpha,
s = e.lineScale_ * e.lineWidth;
s < 1 && (i *= s),
t.push("')
}
function z(t, n, r, i) {
var s = t.fillStyle,
u = t.scaleX_,
a = t.scaleY_,
f = i.x - r.x,
l = i.y - r.y;
if (s instanceof $) {
var c = 0,
h = {
x: 0,
y: 0
},
p = 0,
d = 1;
if (s.type_ == "gradient") {
var v = s.x0_ / u,
m = s.y0_ / a,
g = s.x1_ / u,
y = s.y1_ / a,
b = W(t, v, m),
w = W(t, g, y),
E = w.x - b.x,
S = w.y - b.y;
c = Math.atan2(E, S) * 180 / Math.PI,
c < 0 && (c += 360),
c < 1e-6 && (c = 0)
} else {
var b = W(t, s.x0_, s.y0_);
h = {
x: (b.x - r.x) / f,
y: (b.y - r.y) / l
},
f /= u * o,
l /= a * o;
var x = e.max(f, l);
p = 2 * s.r0_ / x,
d = 2 * s.r1_ / x - p
}
var T = s.colors_;
T.sort(function (e, t) {
return e.offset - t.offset
});
var N = T.length,
C = T[0].color,
k = T[N - 1].color,
L = T[0].alpha * t.globalAlpha,
A = T[N - 1].alpha * t.globalAlpha,
O = [];
for (var _ = 0; _ < N; _++) {
var D = T[_];
O.push(D.offset * d + p + " " + D.color)
}
n.push('')
} else if (s instanceof J) {
if (f && l) {
var P = -r.x,
H = -r.y;
n.push("')
}
} else {
var B = M(t.fillStyle),
j = B.color,
F = B.alpha * t.globalAlpha;
n.push('')
}
}
function W(e, t, n) {
var r = e.m_;
return {
x: o * (t * r[0][0] + n * r[1][0] + r[2][0]) - u,
y: o * (t * r[0][1] + n * r[1][1] + r[2][1]) - u
}
}
function X(e) {
return isFinite(e[0][0]) && isFinite(e[0][1]) && isFinite(e[1][0]) && isFinite(e[1][1]) && isFinite(e[2][0]) && isFinite(e[2][1])
}
function V(e, t, n) {
if (!X(t)) return;
e.m_ = t,
e.scaleX_ = Math.sqrt(t[0][0] * t[0][0] + t[0][1] * t[0][1]),
e.scaleY_ = Math.sqrt(t[1][0] * t[1][0] + t[1][1] * t[1][1]);
if (n) {
var r = t[0][0] * t[1][1] - t[0][1] * t[1][0];
e.lineScale_ = s(i(r))
}
}
function $(e) {
this.type_ = e,
this.x0_ = 0,
this.y0_ = 0,
this.r0_ = 0,
this.x1_ = 0,
this.y1_ = 0,
this.r1_ = 0,
this.colors_ = []
}
function J(e, t) {
Q(e);
switch (t) {
case "repeat":
case null:
case "":
this.repetition_ = "repeat";
break;
case "repeat-x":
case "repeat-y":
case "no-repeat":
this.repetition_ = t;
break;
default:
K("SYNTAX_ERR")
}
this.src_ = e.src,
this.width_ = e.width,
this.height_ = e.height
}
function K(e) {
throw new G(e)
}
function Q(e) {
(!e || e.nodeType != 1 || e.tagName != "IMG") && K("TYPE_MISMATCH_ERR"),
e.readyState != "complete" && K("INVALID_STATE_ERR")
}
function G(e) {
this.code = this[e],
this.message = e + ": DOM Exception " + this.code
}
var e = Math,
t = e.round,
n = e.sin,
r = e.cos,
i = e.abs,
s = e.sqrt,
o = 10,
u = o / 2,
a = +navigator.userAgent.match(/MSIE ([\d.]+)?/)[1],
l = Array.prototype.slice;
d(document);
var v = {
init: function (e) {
var t = e || document;
t.createElement("canvas"),
t.attachEvent("onreadystatechange", c(this.init_, this, t))
},
init_: function (e) {
var t = e.getElementsByTagName("canvas");
for (var n = 0; n < t.length; n++) this.initElement(t[n])
},
initElement: function (e) {
if (!e.getContext) {
e.getContext = f,
d(e.ownerDocument),
e.innerHTML = "",
e.attachEvent("onpropertychange", m),
e.attachEvent("onresize", g);
var t = e.attributes;
t.width && t.width.specified ? e.style.width = t.width.nodeValue + "px" : e.width = e.clientWidth,
t.height && t.height.specified ? e.style.height = t.height.nodeValue + "px" : e.height = e.clientHeight
}
return e
}
};
v.init();
var y = [];
for (var b = 0; b < 16; b++) for (var w = 0; w < 16; w++) y[b * 16 + w] = b.toString(16) + w.toString(16);
var T = {
aliceblue: "#F0F8FF",
antiquewhite: "#FAEBD7",
aquamarine: "#7FFFD4",
azure: "#F0FFFF",
beige: "#F5F5DC",
bisque: "#FFE4C4",
black: "#000000",
blanchedalmond: "#FFEBCD",
blueviolet: "#8A2BE2",
brown: "#A52A2A",
burlywood: "#DEB887",
cadetblue: "#5F9EA0",
chartreuse: "#7FFF00",
chocolate: "#D2691E",
coral: "#FF7F50",
cornflowerblue: "#6495ED",
cornsilk: "#FFF8DC",
crimson: "#DC143C",
cyan: "#00FFFF",
darkblue: "#00008B",
darkcyan: "#008B8B",
darkgoldenrod: "#B8860B",
darkgray: "#A9A9A9",
darkgreen: "#006400",
darkgrey: "#A9A9A9",
darkkhaki: "#BDB76B",
darkmagenta: "#8B008B",
darkolivegreen: "#556B2F",
darkorange: "#FF8C00",
darkorchid: "#9932CC",
darkred: "#8B0000",
darksalmon: "#E9967A",
darkseagreen: "#8FBC8F",
darkslateblue: "#483D8B",
darkslategray: "#2F4F4F",
darkslategrey: "#2F4F4F",
darkturquoise: "#00CED1",
darkviolet: "#9400D3",
deeppink: "#FF1493",
deepskyblue: "#00BFFF",
dimgray: "#696969",
dimgrey: "#696969",
dodgerblue: "#1E90FF",
firebrick: "#B22222",
floralwhite: "#FFFAF0",
forestgreen: "#228B22",
gainsboro: "#DCDCDC",
ghostwhite: "#F8F8FF",
gold: "#FFD700",
goldenrod: "#DAA520",
grey: "#808080",
greenyellow: "#ADFF2F",
honeydew: "#F0FFF0",
hotpink: "#FF69B4",
indianred: "#CD5C5C",
indigo: "#4B0082",
ivory: "#FFFFF0",
khaki: "#F0E68C",
lavender: "#E6E6FA",
lavenderblush: "#FFF0F5",
lawngreen: "#7CFC00",
lemonchiffon: "#FFFACD",
lightblue: "#ADD8E6",
lightcoral: "#F08080",
lightcyan: "#E0FFFF",
lightgoldenrodyellow: "#FAFAD2",
lightgreen: "#90EE90",
lightgrey: "#D3D3D3",
lightpink: "#FFB6C1",
lightsalmon: "#FFA07A",
lightseagreen: "#20B2AA",
lightskyblue: "#87CEFA",
lightslategray: "#778899",
lightslategrey: "#778899",
lightsteelblue: "#B0C4DE",
lightyellow: "#FFFFE0",
limegreen: "#32CD32",
linen: "#FAF0E6",
magenta: "#FF00FF",
mediumaquamarine: "#66CDAA",
mediumblue: "#0000CD",
mediumorchid: "#BA55D3",
mediumpurple: "#9370DB",
mediumseagreen: "#3CB371",
mediumslateblue: "#7B68EE",
mediumspringgreen: "#00FA9A",
mediumturquoise: "#48D1CC",
mediumvioletred: "#C71585",
midnightblue: "#191970",
mintcream: "#F5FFFA",
mistyrose: "#FFE4E1",
moccasin: "#FFE4B5",
navajowhite: "#FFDEAD",
oldlace: "#FDF5E6",
olivedrab: "#6B8E23",
orange: "#FFA500",
orangered: "#FF4500",
orchid: "#DA70D6",
palegoldenrod: "#EEE8AA",
palegreen: "#98FB98",
paleturquoise: "#AFEEEE",
palevioletred: "#DB7093",
papayawhip: "#FFEFD5",
peachpuff: "#FFDAB9",
peru: "#CD853F",
pink: "#FFC0CB",
plum: "#DDA0DD",
powderblue: "#B0E0E6",
rosybrown: "#BC8F8F",
royalblue: "#4169E1",
saddlebrown: "#8B4513",
salmon: "#FA8072",
sandybrown: "#F4A460",
seagreen: "#2E8B57",
seashell: "#FFF5EE",
sienna: "#A0522D",
skyblue: "#87CEEB",
slateblue: "#6A5ACD",
slategray: "#708090",
slategrey: "#708090",
snow: "#FFFAFA",
springgreen: "#00FF7F",
steelblue: "#4682B4",
tan: "#D2B48C",
thistle: "#D8BFD8",
tomato: "#FF6347",
turquoise: "#40E0D0",
violet: "#EE82EE",
wheat: "#F5DEB3",
whitesmoke: "#F5F5F5",
yellowgreen: "#9ACD32"
},
O = {},
_ = {
style: "normal",
variant: "normal",
weight: "normal",
size: 12,
family: "微软雅黑"
},
D = {},
j = {
butt: "flat",
round: "round"
},
q = I.prototype;
q.clearRect = function () {
this.textMeasureEl_ && (this.textMeasureEl_.removeNode(!0), this.textMeasureEl_ = null),
this.element_.innerHTML = ""
},
q.beginPath = function () {
this.currentPath_ = []
},
q.moveTo = function (e, t) {
var n = W(this, e, t);
this.currentPath_.push({
type: "moveTo",
x: n.x,
y: n.y
}),
this.currentX_ = n.x,
this.currentY_ = n.y
},
q.lineTo = function (e, t) {
var n = W(this, e, t);
this.currentPath_.push({
type: "lineTo",
x: n.x,
y: n.y
}),
this.currentX_ = n.x,
this.currentY_ = n.y
},
q.bezierCurveTo = function (e, t, n, r, i, s) {
var o = W(this, i, s),
u = W(this, e, t),
a = W(this, n, r);
R(this, u, a, o)
},
q.quadraticCurveTo = function (e, t, n, r) {
var i = W(this, e, t),
s = W(this, n, r),
o = {
x: this.currentX_ + 2 / 3 * (i.x - this.currentX_),
y: this.currentY_ + 2 / 3 * (i.y - this.currentY_)
},
u = {
x: o.x + (s.x - this.currentX_) / 3,
y: o.y + (s.y - this.currentY_) / 3
};
R(this, o, u, s)
},
q.arc = function (e, t, i, s, a, f) {
i *= o;
var l = f ? "at" : "wa",
c = e + r(s) * i - u,
h = t + n(s) * i - u,
p = e + r(a) * i - u,
d = t + n(a) * i - u;
c == p && !f && (c += .125);
var v = W(this, e, t),
m = W(this, c, h),
g = W(this, p, d);
this.currentPath_.push({
type: l,
x: v.x,
y: v.y,
radius: i,
xStart: m.x,
yStart: m.y,
xEnd: g.x,
yEnd: g.y
})
},
q.rect = function (e, t, n, r) {
this.moveTo(e, t),
this.lineTo(e + n, t),
this.lineTo(e + n, t + r),
this.lineTo(e, t + r),
this.closePath()
},
q.strokeRect = function (e, t, n, r) {
var i = this.currentPath_;
this.beginPath(),
this.moveTo(e, t),
this.lineTo(e + n, t),
this.lineTo(e + n, t + r),
this.lineTo(e, t + r),
this.closePath(),
this.stroke(),
this.currentPath_ = i
},
q.fillRect = function (e, t, n, r) {
var i = this.currentPath_;
this.beginPath(),
this.moveTo(e, t),
this.lineTo(e + n, t),
this.lineTo(e + n, t + r),
this.lineTo(e, t + r),
this.closePath(),
this.fill(),
this.currentPath_ = i
},
q.createLinearGradient = function (e, t, n, r) {
var i = new $("gradient");
return i.x0_ = e,
i.y0_ = t,
i.x1_ = n,
i.y1_ = r,
i
},
q.createRadialGradient = function (e, t, n, r, i, s) {
var o = new $("gradientradial");
return o.x0_ = e,
o.y0_ = t,
o.r0_ = n,
o.x1_ = r,
o.y1_ = i,
o.r1_ = s,
o
},
q.drawImage = function (n, r) {
var i, s, u, a, f, l, c, h, p = n.runtimeStyle.width,
d = n.runtimeStyle.height;
n.runtimeStyle.width = "auto",
n.runtimeStyle.height = "auto";
var v = n.width,
m = n.height;
n.runtimeStyle.width = p,
n.runtimeStyle.height = d;
if (arguments.length == 3) i = arguments[1],
s = arguments[2],
f = l = 0,
c = u = v,
h = a = m;
else if (arguments.length == 5) i = arguments[1],
s = arguments[2],
u = arguments[3],
a = arguments[4],
f = l = 0,
c = v,
h = m;
else {
if (arguments.length != 9) throw Error("Invalid number of arguments");
f = arguments[1],
l = arguments[2],
c = arguments[3],
h = arguments[4],
i = arguments[5],
s = arguments[6],
u = arguments[7],
a = arguments[8]
}
var g = W(this, i, s),
y = c / 2,
b = h / 2,
w = [],
E = 10,
S = 10,
x = N = 1;
w.push(" '),
(f || l) && w.push(''),
w.push('
'),
(f || l) && w.push("
"),
w.push("
"),
this.element_.insertAdjacentHTML("BeforeEnd", w.join(""))
},
q.stroke = function (e) {
var n = [],
r = !1,
i = 10,
s = 10;
n.push(" f.x) f.x = c.x;
if (a.y == null || c.y < a.y) a.y = c.y;
if (f.y == null || c.y > f.y) f.y = c.y
}
}
n.push(' ">'),
e ? z(this, n, a, f) : U(this, n),
n.push(""),
this.element_.insertAdjacentHTML("beforeEnd", n.join(""))
},
q.fill = function () {
this.stroke(!0)
},
q.closePath = function () {
this.currentPath_.push({
type: "close"
})
},
q.save = function () {
var e = {};
x(this, e),
this.aStack_.push(e),
this.mStack_.push(this.m_),
this.m_ = S(E(), this.m_)
},
q.restore = function () {
this.aStack_.length && (x(this.aStack_.pop(), this), this.m_ = this.mStack_.pop())
},
q.translate = function (e, t) {
var n = [[1, 0, 0], [0, 1, 0], [e, t, 1]];
V(this, S(n, this.m_), !1)
},
q.rotate = function (e) {
var t = r(e),
i = n(e),
s = [[t, i, 0], [-i, t, 0], [0, 0, 1]];
V(this, S(s, this.m_), !1)
},
q.scale = function (e, t) {
var n = [[e, 0, 0], [0, t, 0], [0, 0, 1]];
V(this, S(n, this.m_), !0)
},
q.transform = function (e, t, n, r, i, s) {
var o = [[e, t, 0], [n, r, 0], [i, s, 1]];
V(this, S(o, this.m_), !0)
},
q.setTransform = function (e, t, n, r, i, s) {
var o = [[e, t, 0], [n, r, 0], [i, s, 1]];
V(this, o, !0)
},
q.drawText_ = function (e, n, r, i, s) {
var u = this.m_,
a = 1e3,
f = 0,
l = a,
c = {
x: 0,
y: 0
},
p = [],
d = H(P(this.font), this.element_),
v = B(d),
m = this.element_.currentStyle,
g = this.textAlign.toLowerCase();
switch (g) {
case "left":
case "center":
case "right":
break;
case "end":
g = m.direction == "ltr" ? "right" : "left";
break;
case "start":
g = m.direction == "rtl" ? "right" : "left";
break;
default:
g = "left"
}
switch (this.textBaseline) {
case "hanging":
case "top":
c.y = d.size / 1.75;
break;
case "middle":
break;
default:
case null:
case "alphabetic":
case "ideographic":
case "bottom":
c.y = -d.size / 2.25
}
switch (g) {
case "right":
f = a,
l = .05;
break;
case "center":
f = l = a / 2
}
var y = W(this, n + c.x, r + c.y);
p.push(''),
s ? U(this, p) : z(this, p, {
x: -f,
y: 0
},
{
x: l,
y: d.size
});
var b = u[0][0].toFixed(3) + "," + u[1][0].toFixed(3) + "," + u[0][1].toFixed(3) + "," + u[1][1].toFixed(3) + ",0,0",
w = t(y.x / o) + "," + t(y.y / o);
p.push('', '', ''),
this.element_.insertAdjacentHTML("beforeEnd", p.join(""))
},
q.fillText = function (e, t, n, r) {
this.drawText_(e, t, n, r, !1)
},
q.strokeText = function (e, t, n, r) {
this.drawText_(e, t, n, r, !0)
},
q.measureText = function (e) {
if (!this.textMeasureEl_) {
var t = '';
this.element_.insertAdjacentHTML("beforeEnd", t),
this.textMeasureEl_ = this.element_.lastChild
}
var n = this.element_.ownerDocument;
this.textMeasureEl_.innerHTML = "";
try {
this.textMeasureEl_.style.font = this.font
} catch (r) { }
return this.textMeasureEl_.appendChild(n.createTextNode(e)),
{
width: this.textMeasureEl_.offsetWidth
}
},
q.clip = function () { },
q.arcTo = function () { },
q.createPattern = function (e, t) {
return new J(e, t)
},
$.prototype.addColorStop = function (e, t) {
t = M(t),
this.colors_.push({
offset: e,
color: t.color,
alpha: t.alpha
})
};
var Y = G.prototype = new Error;
Y.INDEX_SIZE_ERR = 1,
Y.DOMSTRING_SIZE_ERR = 2,
Y.HIERARCHY_REQUEST_ERR = 3,
Y.WRONG_DOCUMENT_ERR = 4,
Y.INVALID_CHARACTER_ERR = 5,
Y.NO_DATA_ALLOWED_ERR = 6,
Y.NO_MODIFICATION_ALLOWED_ERR = 7,
Y.NOT_FOUND_ERR = 8,
Y.NOT_SUPPORTED_ERR = 9,
Y.INUSE_ATTRIBUTE_ERR = 10,
Y.INVALID_STATE_ERR = 11,
Y.SYNTAX_ERR = 12,
Y.INVALID_MODIFICATION_ERR = 13,
Y.NAMESPACE_ERR = 14,
Y.INVALID_ACCESS_ERR = 15,
Y.VALIDATION_ERR = 16,
Y.TYPE_MISMATCH_ERR = 17,
G_vmlCanvasManager = v,
CanvasRenderingContext2D = I,
CanvasGradient = $,
CanvasPattern = J,
DOMException = G
} (),
G_vmlCanvasManager
}),
define("zrender/tool/util", ["require", "../dep/excanvas"],
function (e) {
function u(e) {
return e && e.nodeType === 1 && typeof e.nodeName == "string"
}
function a(e) {
if (typeof e == "object" && e !== null) {
var t = e;
if (e instanceof Array) {
t = [];
for (var n = 0,
r = e.length; n < r; n++) t[n] = a(e[n])
} else if (!s[o.call(e)] && !u(e)) {
t = {};
for (var i in e) e.hasOwnProperty(i) && (t[i] = a(e[i]))
}
return t
}
return e
}
function f(e, t, n, r) {
if (t.hasOwnProperty(n)) {
var i = e[n];
if (typeof i == "object" && !s[o.call(i)] && !u(i)) l(e[n], t[n], r);
else if (r || !(n in e)) e[n] = t[n]
}
}
function l(e, t, n) {
for (var r in t) f(e, t, r, n);
return e
}
function h() {
if (!c) {
e("../dep/excanvas");
if (window.G_vmlCanvasManager) {
var t = document.createElement("div");
t.style.position = "absolute",
t.style.top = "-1000px",
document.body.appendChild(t),
c = G_vmlCanvasManager.initElement(t).getContext("2d")
} else c = document.createElement("canvas").getContext("2d")
}
return c
}
function p(e, t) {
if (e.indexOf) return e.indexOf(t);
for (var n = 0,
r = e.length; n < r; n++) if (e[n] === t) return n;
return -1
}
function d(e, t) {
function r() { }
var n = e.prototype;
r.prototype = t.prototype,
e.prototype = new r;
for (var i in n) e.prototype[i] = n[i];
e.constructor = e
}
function v(e, t, r) {
if (!e || !t) return;
if (e.forEach && e.forEach === n) e.forEach(t, r);
else if (e.length === +e.length) for (var i = 0,
s = e.length; i < s; i++) t.call(r, e[i], i, e);
else for (var o in e) e.hasOwnProperty(o) && t.call(r, e[o], o, e)
}
function m(e, t, n) {
if (!e || !t) return;
if (e.map && e.map === r) return e.map(t, n);
var i = [];
for (var s = 0,
o = e.length; s < o; s++) i.push(t.call(n, e[s], s, e));
return i
}
function g(e, t, n) {
if (!e || !t) return;
if (e.filter && e.filter === i) return e.filter(t, n);
var r = [];
for (var s = 0,
o = e.length; s < o; s++) t.call(n, e[s], s, e) && r.push(e[s]);
return r
}
function y(e, t) {
return function () {
e.apply(t, arguments)
}
}
var t = Array.prototype,
n = t.forEach,
r = t.map,
i = t.filter,
s = {
"[object Function]": 1,
"[object RegExp]": 1,
"[object Date]": 1,
"[object Error]": 1,
"[object CanvasGradient]": 1
},
o = Object.prototype.toString,
c;
return {
inherits: d,
clone: a,
merge: l,
getContext: h,
indexOf: p,
each: v,
map: m,
filter: g,
bind: y
}
}),
define("zrender/config", [],
function () {
var e = {
EVENT: {
RESIZE: "resize",
CLICK: "click",
DBLCLICK: "dblclick",
MOUSEWHEEL: "mousewheel",
MOUSEMOVE: "mousemove",
MOUSEOVER: "mouseover",
MOUSEOUT: "mouseout",
MOUSEDOWN: "mousedown",
MOUSEUP: "mouseup",
GLOBALOUT: "globalout",
DRAGSTART: "dragstart",
DRAGEND: "dragend",
DRAGENTER: "dragenter",
DRAGOVER: "dragover",
DRAGLEAVE: "dragleave",
DROP: "drop",
touchClickDelay: 300
},
elementClassName: "zr-element",
catchBrushException: !1,
debugMode: 0,
devicePixelRatio: Math.max(window.devicePixelRatio || 1, 1)
};
return e
}),
define("zrender/tool/log", ["require", "../config"],
function (e) {
var t = e("../config");
return function () {
if (t.debugMode === 0) return;
if (t.debugMode == 1) for (var e in arguments) throw new Error(arguments[e]);
else if (t.debugMode > 1) for (var e in arguments) console.log(arguments[e])
}
}),
define("zrender/tool/guid", [],
function () {
var e = 2311;
return function () {
return "zrender__" + e++
}
}),
define("zrender/tool/env", [],
function () {
function e(e) {
var t = this.os = {},
n = this.browser = {},
r = e.match(/Web[kK]it[\/]{0,1}([\d.]+)/),
i = e.match(/(Android);?[\s\/]+([\d.]+)?/),
s = e.match(/(iPad).*OS\s([\d_]+)/),
o = e.match(/(iPod)(.*OS\s([\d_]+))?/),
u = !s && e.match(/(iPhone\sOS)\s([\d_]+)/),
a = e.match(/(webOS|hpwOS)[\s\/]([\d.]+)/),
f = a && e.match(/TouchPad/),
l = e.match(/Kindle\/([\d.]+)/),
c = e.match(/Silk\/([\d._]+)/),
h = e.match(/(BlackBerry).*Version\/([\d.]+)/),
p = e.match(/(BB10).*Version\/([\d.]+)/),
d = e.match(/(RIM\sTablet\sOS)\s([\d.]+)/),
v = e.match(/PlayBook/),
m = e.match(/Chrome\/([\d.]+)/) || e.match(/CriOS\/([\d.]+)/),
g = e.match(/Firefox\/([\d.]+)/),
y = e.match(/MSIE ([\d.]+)/),
b = r && e.match(/Mobile\//) && !m,
w = e.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/) && !m,
y = e.match(/MSIE\s([\d.]+)/);
if (n.webkit = !!r) n.version = r[1];
return i && (t.android = !0, t.version = i[2]),
u && !o && (t.ios = t.iphone = !0, t.version = u[2].replace(/_/g, ".")),
s && (t.ios = t.ipad = !0, t.version = s[2].replace(/_/g, ".")),
o && (t.ios = t.ipod = !0, t.version = o[3] ? o[3].replace(/_/g, ".") : null),
a && (t.webos = !0, t.version = a[2]),
f && (t.touchpad = !0),
h && (t.blackberry = !0, t.version = h[2]),
p && (t.bb10 = !0, t.version = p[2]),
d && (t.rimtabletos = !0, t.version = d[2]),
v && (n.playbook = !0),
l && (t.kindle = !0, t.version = l[1]),
c && (n.silk = !0, n.version = c[1]),
!c && t.android && e.match(/Kindle Fire/) && (n.silk = !0),
m && (n.chrome = !0, n.version = m[1]),
g && (n.firefox = !0, n.version = g[1]),
y && (n.ie = !0, n.version = y[1]),
b && (e.match(/Safari/) || !!t.ios) && (n.safari = !0),
w && (n.webview = !0),
y && (n.ie = !0, n.version = y[1]),
t.tablet = !!(s || v || i && !e.match(/Mobile/) || g && e.match(/Tablet/) || y && !e.match(/Phone/) && e.match(/Touch/)),
t.phone = !!(!t.tablet && !t.ipod && (i || u || a || h || p || m && e.match(/Android/) || m && e.match(/CriOS\/([\d.]+)/) || g && e.match(/Mobile/) || y && e.match(/Touch/))),
{
browser: n,
os: t,
canvasSupported: document.createElement("canvas").getContext ? !0 : !1
}
}
return e(navigator.userAgent)
}),
define("zrender/mixin/Eventful", ["require"],
function (e) {
var t = function () {
this._handlers = {}
};
return t.prototype.one = function (e, t, n) {
var r = this._handlers;
return !t || !e ? this : (r[e] || (r[e] = []), r[e].push({
h: t,
one: !0,
ctx: n || this
}), this)
},
t.prototype.bind = function (e, t, n) {
var r = this._handlers;
return !t || !e ? this : (r[e] || (r[e] = []), r[e].push({
h: t,
one: !1,
ctx: n || this
}), this)
},
t.prototype.unbind = function (e, t) {
var n = this._handlers;
if (!e) return this._handlers = {},
this;
if (t) {
if (n[e]) {
var r = [];
for (var i = 0,
s = n[e].length; i < s; i++) n[e][i]["h"] != t && r.push(n[e][i]);
n[e] = r
}
n[e] && n[e].length === 0 && delete n[e]
} else delete n[e];
return this
},
t.prototype.dispatch = function (e) {
if (this._handlers[e]) {
var t = arguments,
n = t.length;
n > 3 && (t = Array.prototype.slice.call(t, 1));
var r = this._handlers[e],
i = r.length;
for (var s = 0; s < i; ) {
switch (n) {
case 1:
r[s].h.call(r[s].ctx);
break;
case 2:
r[s].h.call(r[s].ctx, t[1]);
break;
case 3:
r[s].h.call(r[s].ctx, t[1], t[2]);
break;
default:
r[s].h.apply(r[s].ctx, t)
}
r[s].one ? (r.splice(s, 1), i--) : s++
}
}
return this
},
t.prototype.dispatchWithContext = function (e) {
if (this._handlers[e]) {
var t = arguments,
n = t.length;
n > 4 && (t = Array.prototype.slice.call(t, 1, t.length - 1));
var r = t[t.length - 1],
i = this._handlers[e],
s = i.length;
for (var o = 0; o < s; ) {
switch (n) {
case 1:
i[o].h.call(r);
break;
case 2:
i[o].h.call(r, t[1]);
break;
case 3:
i[o].h.call(r, t[1], t[2]);
break;
default:
i[o].h.apply(r, t)
}
i[o].one ? (i.splice(o, 1), s--) : o++
}
}
return this
},
t
}),
define("zrender/tool/event", ["require", "../mixin/Eventful"],
function (e) {
function n(e) {
return typeof e.zrenderX != "undefined" && e.zrenderX || typeof e.offsetX != "undefined" && e.offsetX || typeof e.layerX != "undefined" && e.layerX || typeof e.clientX != "undefined" && e.clientX
}
function r(e) {
return typeof e.zrenderY != "undefined" && e.zrenderY || typeof e.offsetY != "undefined" && e.offsetY || typeof e.layerY != "undefined" && e.layerY || typeof e.clientY != "undefined" && e.clientY
}
function i(e) {
return typeof e.zrenderDelta != "undefined" && e.zrenderDelta || typeof e.wheelDelta != "undefined" && e.wheelDelta || typeof e.detail != "undefined" && -e.detail
}
var t = e("../mixin/Eventful"),
s = typeof window.addEventListener == "function" ?
function (e) {
e.preventDefault(),
e.stopPropagation(),
e.cancelBubble = !0
} : function (e) {
e.returnValue = !1,
e.cancelBubble = !0
};
return {
getX: n,
getY: r,
getDelta: i,
stop: s,
Dispatcher: t
}
}),
define("zrender/tool/vector", [],
function () {
var e = typeof Float32Array == "undefined" ? Array : Float32Array,
t = {
create: function (t, n) {
var r = new e(2);
return r[0] = t || 0,
r[1] = n || 0,
r
},
copy: function (e, t) {
return e[0] = t[0],
e[1] = t[1],
e
},
clone: function (t) {
var n = new e(2);
return n[0] = t[0],
n[1] = t[1],
n
},
set: function (e, t, n) {
return e[0] = t,
e[1] = n,
e
},
add: function (e, t, n) {
return e[0] = t[0] + n[0],
e[1] = t[1] + n[1],
e
},
scaleAndAdd: function (e, t, n, r) {
return e[0] = t[0] + n[0] * r,
e[1] = t[1] + n[1] * r,
e
},
sub: function (e, t, n) {
return e[0] = t[0] - n[0],
e[1] = t[1] - n[1],
e
},
len: function (e) {
return Math.sqrt(this.lenSquare(e))
},
lenSquare: function (e) {
return e[0] * e[0] + e[1] * e[1]
},
mul: function (e, t, n) {
return e[0] = t[0] * n[0],
e[1] = t[1] * n[1],
e
},
div: function (e, t, n) {
return e[0] = t[0] / n[0],
e[1] = t[1] / n[1],
e
},
dot: function (e, t) {
return e[0] * t[0] + e[1] * t[1]
},
scale: function (e, t, n) {
return e[0] = t[0] * n,
e[1] = t[1] * n,
e
},
normalize: function (e, n) {
var r = t.len(n);
return r === 0 ? (e[0] = 0, e[1] = 0) : (e[0] = n[0] / r, e[1] = n[1] / r),
e
},
distance: function (e, t) {
return Math.sqrt((e[0] - t[0]) * (e[0] - t[0]) + (e[1] - t[1]) * (e[1] - t[1]))
},
distanceSquare: function (e, t) {
return (e[0] - t[0]) * (e[0] - t[0]) + (e[1] - t[1]) * (e[1] - t[1])
},
negate: function (e, t) {
return e[0] = -t[0],
e[1] = -t[1],
e
},
lerp: function (e, t, n, r) {
return e[0] = t[0] + r * (n[0] - t[0]),
e[1] = t[1] + r * (n[1] - t[1]),
e
},
applyTransform: function (e, t, n) {
var r = t[0],
i = t[1];
return e[0] = n[0] * r + n[2] * i + n[4],
e[1] = n[1] * r + n[3] * i + n[5],
e
},
min: function (e, t, n) {
return e[0] = Math.min(t[0], n[0]),
e[1] = Math.min(t[1], n[1]),
e
},
max: function (e, t, n) {
return e[0] = Math.max(t[0], n[0]),
e[1] = Math.max(t[1], n[1]),
e
}
};
return t.length = t.len,
t.lengthSquare = t.lenSquare,
t.dist = t.distance,
t.distSquare = t.distanceSquare,
t
}),
define("zrender/tool/matrix", [],
function () {
var e = typeof Float32Array == "undefined" ? Array : Float32Array,
t = {
create: function () {
var n = new e(6);
return t.identity(n),
n
},
identity: function (e) {
return e[0] = 1,
e[1] = 0,
e[2] = 0,
e[3] = 1,
e[4] = 0,
e[5] = 0,
e
},
copy: function (e, t) {
return e[0] = t[0],
e[1] = t[1],
e[2] = t[2],
e[3] = t[3],
e[4] = t[4],
e[5] = t[5],
e
},
mul: function (e, t, n) {
return e[0] = t[0] * n[0] + t[2] * n[1],
e[1] = t[1] * n[0] + t[3] * n[1],
e[2] = t[0] * n[2] + t[2] * n[3],
e[3] = t[1] * n[2] + t[3] * n[3],
e[4] = t[0] * n[4] + t[2] * n[5] + t[4],
e[5] = t[1] * n[4] + t[3] * n[5] + t[5],
e
},
translate: function (e, t, n) {
return e[0] = t[0],
e[1] = t[1],
e[2] = t[2],
e[3] = t[3],
e[4] = t[4] + n[0],
e[5] = t[5] + n[1],
e
},
rotate: function (e, t, n) {
var r = t[0],
i = t[2],
s = t[4],
o = t[1],
u = t[3],
a = t[5],
f = Math.sin(n),
l = Math.cos(n);
return e[0] = r * l + o * f,
e[1] = -r * f + o * l,
e[2] = i * l + u * f,
e[3] = -i * f + l * u,
e[4] = l * s + f * a,
e[5] = l * a - f * s,
e
},
scale: function (e, t, n) {
var r = n[0],
i = n[1];
return e[0] = t[0] * r,
e[1] = t[1] * i,
e[2] = t[2] * r,
e[3] = t[3] * i,
e[4] = t[4] * r,
e[5] = t[5] * i,
e
},
invert: function (e, t) {
var n = t[0],
r = t[2],
i = t[4],
s = t[1],
o = t[3],
u = t[5],
a = n * o - s * r;
return a ? (a = 1 / a, e[0] = o * a, e[1] = -s * a, e[2] = -r * a, e[3] = n * a, e[4] = (r * u - o * i) * a, e[5] = (s * i - n * u) * a, e) : null
}
};
return t
}),
define("zrender/Handler", ["require", "./config", "./tool/env", "./tool/event", "./tool/util", "./tool/vector", "./tool/matrix", "./mixin/Eventful"],
function (e) {
function h(e, t) {
return function (n) {
return e.call(t, n)
}
}
function p(e, t) {
return function (n, r, i) {
return e.call(t, n, r, i)
}
}
function d(e) {
var t = f.length;
while (t--) {
var n = f[t];
e["_" + n + "Handler"] = h(c[n], e)
}
}
function g(e, t, n) {
if (this._draggingTarget && this._draggingTarget.id == e.id || e.isSilent()) return !1;
var r = this._event;
if (e.isCover(t, n)) {
e.hoverable && this.storage.addHover(e);
var i = e.parent;
while (i) {
if (i.clipShape && !i.clipShape.isCover(this._mouseX, this._mouseY)) return !1;
i = i.parent
}
return this._lastHover != e && (this._processOutShape(r), this._processDragLeave(r), this._lastHover = e, this._processDragEnter(r)),
this._processOverShape(r),
this._processDragOver(r),
this._hasfound = 1,
!0
}
return !1
}
var t = e("./config"),
n = e("./tool/env"),
r = e("./tool/event"),
i = e("./tool/util"),
s = e("./tool/vector"),
o = e("./tool/matrix"),
u = t.EVENT,
a = e("./mixin/Eventful"),
f = ["resize", "click", "dblclick", "mousewheel", "mousemove", "mouseout", "mouseup", "mousedown", "touchstart", "touchend", "touchmove"],
l = function (e) {
if (window.G_vmlCanvasManager) return !0;
e = e || window.event;
var n = e.toElement || e.relatedTarget || e.srcElement || e.target;
if (n.className == undefined) return false;
return n && n.className.match(t.elementClassName)
},
c = {
resize: function (e) {
e = e || window.event,
this._lastHover = null,
this._isMouseDown = 0,
this.dispatch(u.RESIZE, e)
},
click: function (e) {
if (!l(e)) return;
e = this._zrenderEventFixed(e);
var t = this._lastHover;
(t && t.clickable || !t) && this._clickThreshold < 5 && this._dispatchAgency(t, u.CLICK, e),
this._mousemoveHandler(e);
},
dblclick: function (e) {
if (!l(e)) return;
e = e || window.event,
e = this._zrenderEventFixed(e);
var t = this._lastHover; (t && t.clickable || !t) && this._clickThreshold < 5 && this._dispatchAgency(t, u.DBLCLICK, e),
this._mousemoveHandler(e)
},
mousewheel: function (e) {
if (!l(e)) return;
e = this._zrenderEventFixed(e);
var t = e.wheelDelta || -e.detail,
n = t > 0 ? 1.1 : 1 / 1.1,
i = !1,
s = this._mouseX,
o = this._mouseY;
this.painter.eachBuildinLayer(function (t) {
var u = t.position;
if (t.zoomable) {
t.__zoom = t.__zoom || 1;
var a = t.__zoom;
a *= n,
a = Math.max(Math.min(t.maxZoom, a), t.minZoom),
n = a / t.__zoom,
t.__zoom = a,
u[0] -= (s - u[0]) * (n - 1),
u[1] -= (o - u[1]) * (n - 1),
t.scale[0] *= n,
t.scale[1] *= n,
t.dirty = !0,
i = !0,
r.stop(e)
}
}),
i && this.painter.refresh(),
this._dispatchAgency(this._lastHover, u.MOUSEWHEEL, e),
this._mousemoveHandler(e)
},
mousemove: function (e) {
if (!l(e)) return;
if (this.painter.isLoading()) return;
e = this._zrenderEventFixed(e),
this._lastX = this._mouseX,
this._lastY = this._mouseY,
this._mouseX = r.getX(e),
this._mouseY = r.getY(e);
var t = this._mouseX - this._lastX,
n = this._mouseY - this._lastY;
this._processDragStart(e),
this._hasfound = 0,
this._event = e,
this._iterateAndFindHover();
if (!this._hasfound) {
if (!this._draggingTarget || this._lastHover && this._lastHover != this._draggingTarget) this._processOutShape(e),
this._processDragLeave(e);
this._lastHover = null,
this.storage.delHover(),
this.painter.clearHover()
}
var i = "default";
if (this._draggingTarget) this.storage.drift(this._draggingTarget.id, t, n),
this._draggingTarget.modSelf(),
this.storage.addHover(this._draggingTarget),
this._clickThreshold++;
else if (this._isMouseDown) {
var s = !1;
this.painter.eachBuildinLayer(function (e) {
e.panable && (i = "move", e.position[0] += t, e.position[1] += n, s = !0, e.dirty = !0)
}),
s && this.painter.refresh()
}
this._draggingTarget || this._hasfound && this._lastHover.draggable ? i = "move" : this._hasfound && this._lastHover.clickable && (i = "pointer"),
this.root.style.cursor = i,
this._dispatchAgency(this._lastHover, u.MOUSEMOVE, e),
(this._draggingTarget || this._hasfound || this.storage.hasHoverShape()) && this.painter.refreshHover()
},
mouseout: function (e) {
if (!l(e)) return;
e = this._zrenderEventFixed(e);
var t = e.toElement || e.relatedTarget;
if (t != this.root) while (t && t.nodeType != 9) {
if (t == this.root) {
this._mousemoveHandler(e);
return
}
t = t.parentNode
}
e.zrenderX = this._lastX,
e.zrenderY = this._lastY,
this.root.style.cursor = "default",
this._isMouseDown = 0,
this._processOutShape(e),
this._processDrop(e),
this._processDragEnd(e),
this.painter.isLoading() || this.painter.refreshHover(),
this.dispatch(u.GLOBALOUT, e)
},
mousedown: function (e) {
if (!l(e)) return;
this._clickThreshold = 0;
if (this._lastDownButton == 2) {
this._lastDownButton = e.button,
this._mouseDownTarget = null;
return
}
this._lastMouseDownMoment = new Date,
e = this._zrenderEventFixed(e),
this._isMouseDown = 1,
this._mouseDownTarget = this._lastHover,
this._dispatchAgency(this._lastHover, u.MOUSEDOWN, e),
this._lastDownButton = e.button
},
mouseup: function (e) {
if (!l(e)) return;
e = this._zrenderEventFixed(e),
this.root.style.cursor = "default",
this._isMouseDown = 0,
this._mouseDownTarget = null,
this._dispatchAgency(this._lastHover, u.MOUSEUP, e),
this._processDrop(e),
this._processDragEnd(e)
},
touchstart: function (e) {
if (!l(e)) return;
e = this._zrenderEventFixed(e, !0),
this._lastTouchMoment = new Date,
this._mobileFindFixed(e),
this._mousedownHandler(e)
},
touchmove: function (e) {
if (!l(e)) return;
e = this._zrenderEventFixed(e, !0),
this._mousemoveHandler(e),
this._isDragging && r.stop(e)
},
touchend: function (e) {
if (!l(e)) return;
e = this._zrenderEventFixed(e, !0),
this._mouseupHandler(e);
var t = new Date;
t - this._lastTouchMoment < u.touchClickDelay && (this._mobileFindFixed(e), this._clickHandler(e), t - this._lastClickMoment < u.touchClickDelay / 2 && (this._dblclickHandler(e), this._lastHover && this._lastHover.clickable && r.stop(e)), this._lastClickMoment = t),
this.painter.clearHover()
}
},
v = function (e, t, r) {
a.call(this),
this.root = e,
this.storage = t,
this.painter = r,
this._lastX = this._lastY = this._mouseX = this._mouseY = 0,
this._findHover = p(g, this),
this._domHover = r.getDomHover(),
d(this),
window.addEventListener ? (window.addEventListener("resize", this._resizeHandler), n.os.tablet || n.os.phone ? (e.addEventListener("touchstart", this._touchstartHandler), e.addEventListener("touchmove", this._touchmoveHandler), e.addEventListener("touchend", this._touchendHandler)) : (e.addEventListener("click", this._clickHandler), e.addEventListener("dblclick", this._dblclickHandler), e.addEventListener("mousewheel", this._mousewheelHandler), e.addEventListener("mousemove", this._mousemoveHandler), e.addEventListener("mousedown", this._mousedownHandler), e.addEventListener("mouseup", this._mouseupHandler)), e.addEventListener("DOMMouseScroll", this._mousewheelHandler), e.addEventListener("mouseout", this._mouseoutHandler)) : (window.attachEvent("onresize", this._resizeHandler), e.attachEvent("onclick", this._clickHandler), e.ondblclick = this._dblclickHandler, e.attachEvent("onmousewheel", this._mousewheelHandler), e.attachEvent("onmousemove", this._mousemoveHandler), e.attachEvent("onmouseout", this._mouseoutHandler), e.attachEvent("onmousedown", this._mousedownHandler), e.attachEvent("onmouseup", this._mouseupHandler))
};
v.prototype.on = function (e, t, n) {
return this.bind(e, t, n),
this
},
v.prototype.un = function (e, t) {
return this.unbind(e, t),
this
},
v.prototype.trigger = function (e, t) {
switch (e) {
case u.RESIZE:
case u.CLICK:
case u.DBLCLICK:
case u.MOUSEWHEEL:
case u.MOUSEMOVE:
case u.MOUSEDOWN:
case u.MOUSEUP:
case u.MOUSEOUT:
this["_" + e + "Handler"](t)
}
},
v.prototype.dispose = function () {
var e = this.root;
window.removeEventListener ? (window.removeEventListener("resize", this._resizeHandler), n.os.tablet || n.os.phone ? (e.removeEventListener("touchstart", this._touchstartHandler), e.removeEventListener("touchmove", this._touchmoveHandler), e.removeEventListener("touchend", this._touchendHandler)) : (e.removeEventListener("click", this._clickHandler), e.removeEventListener("dblclick", this._dblclickHandler), e.removeEventListener("mousewheel", this._mousewheelHandler), e.removeEventListener("mousemove", this._mousemoveHandler), e.removeEventListener("mousedown", this._mousedownHandler), e.removeEventListener("mouseup", this._mouseupHandler)), e.removeEventListener("DOMMouseScroll", this._mousewheelHandler), e.removeEventListener("mouseout", this._mouseoutHandler)) : (window.detachEvent("onresize", this._resizeHandler), e.detachEvent("onclick", this._clickHandler), e.detachEvent("dblclick", this._dblclickHandler), e.detachEvent("onmousewheel", this._mousewheelHandler), e.detachEvent("onmousemove", this._mousemoveHandler), e.detachEvent("onmouseout", this._mouseoutHandler), e.detachEvent("onmousedown", this._mousedownHandler), e.detachEvent("onmouseup", this._mouseupHandler)),
this.root = this._domHover = this.storage = this.painter = null,
this.un()
},
v.prototype._processDragStart = function (e) {
var t = this._lastHover;
if (this._isMouseDown && t && t.draggable && !this._draggingTarget && this._mouseDownTarget == t) {
if (t.dragEnableTime && new Date - this._lastMouseDownMoment < t.dragEnableTime) return;
var n = t;
this._draggingTarget = n,
this._isDragging = 1,
n.invisible = !0,
this.storage.mod(n.id),
this._dispatchAgency(n, u.DRAGSTART, e),
this.painter.refresh()
}
},
v.prototype._processDragEnter = function (e) {
this._draggingTarget && this._dispatchAgency(this._lastHover, u.DRAGENTER, e, this._draggingTarget)
},
v.prototype._processDragOver = function (e) {
this._draggingTarget && this._dispatchAgency(this._lastHover, u.DRAGOVER, e, this._draggingTarget)
},
v.prototype._processDragLeave = function (e) {
this._draggingTarget && this._dispatchAgency(this._lastHover, u.DRAGLEAVE, e, this._draggingTarget)
},
v.prototype._processDrop = function (e) {
this._draggingTarget && (this._draggingTarget.invisible = !1, this.storage.mod(this._draggingTarget.id), this.painter.refresh(), this._dispatchAgency(this._lastHover, u.DROP, e, this._draggingTarget))
},
v.prototype._processDragEnd = function (e) {
this._draggingTarget && (this._dispatchAgency(this._draggingTarget, u.DRAGEND, e), this._lastHover = null),
this._isDragging = 0,
this._draggingTarget = null
},
v.prototype._processOverShape = function (e) {
this._dispatchAgency(this._lastHover, u.MOUSEOVER, e)
},
v.prototype._processOutShape = function (e) {
this._dispatchAgency(this._lastHover, u.MOUSEOUT, e)
},
v.prototype._dispatchAgency = function (e, t, n, r) {
var i = "on" + t,
s = {
type: t,
event: n,
target: e,
cancelBubble: !1
},
o = e;
r && (s.dragged = r);
while (o) {
o[i] && (s.cancelBubble = o[i](s)),
o.dispatch(t, s),
o = o.parent;
if (s.cancelBubble) break
}
if (e) s.cancelBubble || this.dispatch(t, s);
else if (!r) {
var u = {
type: t,
event: n
};
this.dispatch(t, u),
this.painter.eachOtherLayer(function (e) {
typeof e[i] == "function" && e[i](u),
e.dispatch && e.dispatch(t, u)
})
}
},
v.prototype._iterateAndFindHover = function () {
var e = o.create();
return function () {
var t = this.storage.getShapeList(),
n,
r,
i = [0, 0];
for (var u = t.length - 1; u >= 0; u--) {
var a = t[u];
n !== a.zlevel && (r = this.painter.getLayer(a.zlevel, r), i[0] = this._mouseX, i[1] = this._mouseY, r.needTransform && (o.invert(e, r.transform), s.applyTransform(i, i, e)));
if (this._findHover(a, i[0], i[1])) break
}
}
} ();
var m = [{
x: 10
},
{
x: -20
},
{
x: 10,
y: 10
},
{
y: -20
}];
return v.prototype._mobileFindFixed = function (e) {
this._lastHover = null,
this._mouseX = e.zrenderX,
this._mouseY = e.zrenderY,
this._event = e,
this._iterateAndFindHover();
for (var t = 0; !this._lastHover && t < m.length; t++) {
var n = m[t];
n.x && (this._mouseX += n.x),
n.y && (this._mouseY += n.y),
this._iterateAndFindHover()
}
this._lastHover && (e.zrenderX = this._mouseX, e.zrenderY = this._mouseY)
},
v.prototype._zrenderEventFixed = function (e, t) {
if (e.zrenderFixed) return e;
if (!t) {
e = e || window.event;
var n = e.toElement || e.relatedTarget || e.srcElement || e.target;
n && n != this._domHover && (e.zrenderX = (typeof e.offsetX != "undefined" ? e.offsetX : e.layerX) + n.offsetLeft, e.zrenderY = (typeof e.offsetY != "undefined" ? e.offsetY : e.layerY) + n.offsetTop)
} else {
var r = e.type != "touchend" ? e.targetTouches[0] : e.changedTouches[0];
if (r) {
var i = this.painter._domRoot.getBoundingClientRect();
e.zrenderX = r.clientX - i.left,
e.zrenderY = r.clientY - i.top
}
}
return e.zrenderFixed = 1,
e
},
i.merge(v.prototype, a.prototype, !0),
v
}),
define("zrender/tool/curve", ["require", "./vector"],
function (e) {
function a(e) {
return e > -n && e < n
}
function f(e) {
return e > n || e < -n
}
function l(e, t, n, r, i) {
var s = 1 - i;
return s * s * (s * e + 3 * i * t) + i * i * (i * r + 3 * s * n)
}
function c(e, t, n, r, i) {
var s = 1 - i;
return 3 * (((t - e) * s + 2 * (n - t) * i) * s + (r - n) * i * i)
}
function h(e, t, n, s, o, u) {
var f = s + 3 * (t - n) - e,
l = 3 * (n - t * 2 + e),
c = 3 * (t - e),
h = e - o,
p = l * l - 3 * f * c,
d = l * c - 9 * f * h,
v = c * c - 3 * l * h,
m = 0;
if (a(p) && a(d)) if (a(l)) u[0] = 0;
else {
var g = -c / l;
g >= 0 && g <= 1 && (u[m++] = g)
} else {
var y = d * d - 4 * p * v;
if (a(y)) {
var b = d / p,
g = -l / f + b,
w = -b / 2;
g >= 0 && g <= 1 && (u[m++] = g),
w >= 0 && w <= 1 && (u[m++] = w)
} else if (y > 0) {
var E = Math.sqrt(y),
S = p * l + 1.5 * f * (-d + E),
x = p * l + 1.5 * f * (-d - E);
S < 0 ? S = -Math.pow(-S, i) : S = Math.pow(S, i),
x < 0 ? x = -Math.pow(-x, i) : x = Math.pow(x, i);
var g = (-l - (S + x)) / (3 * f);
g >= 0 && g <= 1 && (u[m++] = g)
} else {
var T = (2 * p * l - 3 * f * d) / (2 * Math.sqrt(p * p * p)),
N = Math.acos(T) / 3,
C = Math.sqrt(p),
k = Math.cos(N),
g = (-l - 2 * C * k) / (3 * f),
w = (-l + C * (k + r * Math.sin(N))) / (3 * f),
L = (-l + C * (k - r * Math.sin(N))) / (3 * f);
g >= 0 && g <= 1 && (u[m++] = g),
w >= 0 && w <= 1 && (u[m++] = w),
L >= 0 && L <= 1 && (u[m++] = L)
}
}
return m
}
function p(e, t, n, r, i) {
var s = 6 * n - 12 * t + 6 * e,
o = 9 * t + 3 * r - 3 * e - 9 * n,
u = 3 * t - 3 * e,
l = 0;
if (a(o)) {
if (f(s)) {
var c = -u / s;
c >= 0 && c <= 1 && (i[l++] = c)
}
} else {
var h = s * s - 4 * o * u;
if (a(h)) i[0] = -s / (2 * o);
else if (h > 0) {
var p = Math.sqrt(h),
c = (-s + p) / (2 * o),
d = (-s - p) / (2 * o);
c >= 0 && c <= 1 && (i[l++] = c),
d >= 0 && d <= 1 && (i[l++] = d)
}
}
return l
}
function d(e, t, n, r, i, s) {
var o = (t - e) * i + e,
u = (n - t) * i + t,
a = (r - n) * i + n,
f = (u - o) * i + o,
l = (a - u) * i + u,
c = (l - f) * i + f;
s[0] = e,
s[1] = o,
s[2] = f,
s[3] = c,
s[4] = c,
s[5] = l,
s[6] = a,
s[7] = r
}
function v(e, r, i, a, f, c, h, p, d, v, m) {
var g, y = .005,
b = Infinity;
s[0] = d,
s[1] = v;
for (var w = 0; w < 1; w += .05) {
o[0] = l(e, i, f, h, w),
o[1] = l(r, a, c, p, w);
var E = t.distSquare(s, o);
E < b && (g = w, b = E)
}
b = Infinity;
for (var S = 0; S < 32; S++) {
if (y < n) break;
var x = g - y,
T = g + y;
o[0] = l(e, i, f, h, x),
o[1] = l(r, a, c, p, x);
var E = t.distSquare(o, s);
if (x >= 0 && E < b) g = x,
b = E;
else {
u[0] = l(e, i, f, h, T),
u[1] = l(r, a, c, p, T);
var N = t.distSquare(u, s);
T <= 1 && N < b ? (g = T, b = N) : y *= .5
}
}
return m && (m[0] = l(e, i, f, h, g), m[1] = l(r, a, c, p, g)),
Math.sqrt(b)
}
function m(e, t, n, r) {
var i = 1 - r;
return i * (i * e + 2 * r * t) + r * r * n
}
function g(e, t, n, r) {
return 2 * ((1 - r) * (t - e) + r * (n - t))
}
function y(e, t, n, r, i) {
var s = e - 2 * t + n,
o = 2 * (t - e),
u = e - r,
l = 0;
if (a(s)) {
if (f(o)) {
var c = -u / o;
c >= 0 && c <= 1 && (i[l++] = c)
}
} else {
var h = o * o - 4 * s * u;
if (a(h)) {
var c = -o / (2 * s);
c >= 0 && c <= 1 && (i[l++] = c)
} else if (h > 0) {
var p = Math.sqrt(h),
c = (-o + p) / (2 * s),
d = (-o - p) / (2 * s);
c >= 0 && c <= 1 && (i[l++] = c),
d >= 0 && d <= 1 && (i[l++] = d)
}
}
return l
}
function b(e, t, n) {
var r = e + n - 2 * t;
return r === 0 ? .5 : (e - t) / r
}
function w(e, t, n, r, i) {
var s = (t - e) * r + e,
o = (n - t) * r + t,
u = (o - s) * r + s;
i[0] = e,
i[1] = s,
i[2] = u,
i[3] = u,
i[4] = o,
i[5] = n
}
function E(e, r, i, a, f, l, c, h, p) {
var d, v = .005,
g = Infinity;
s[0] = c,
s[1] = h;
for (var y = 0; y < 1; y += .05) {
o[0] = m(e, i, f, y),
o[1] = m(r, a, l, y);
var b = t.distSquare(s, o);
b < g && (d = y, g = b)
}
g = Infinity;
for (var w = 0; w < 32; w++) {
if (v < n) break;
var E = d - v,
S = d + v;
o[0] = m(e, i, f, E),
o[1] = m(r, a, l, E);
var b = t.distSquare(o, s);
if (E >= 0 && b < g) d = E,
g = b;
else {
u[0] = m(e, i, f, S),
u[1] = m(r, a, l, S);
var x = t.distSquare(u, s);
S <= 1 && x < g ? (d = S, g = x) : v *= .5
}
}
return p && (p[0] = m(e, i, f, d), p[1] = m(r, a, l, d)),
Math.sqrt(g)
}
var t = e("./vector"),
n = 1e-4,
r = Math.sqrt(3),
i = 1 / 3,
s = t.create(),
o = t.create(),
u = t.create();
return {
cubicAt: l,
cubicDerivativeAt: c,
cubicRootAt: h,
cubicExtrema: p,
cubicSubdivide: d,
cubicProjectPoint: v,
quadraticAt: m,
quadraticDerivativeAt: g,
quadraticRootAt: y,
quadraticExtremum: b,
quadraticSubdivide: w,
quadraticProjectPoint: E
}
}),
define("zrender/tool/area", ["require", "./util", "./curve"],
function (e) {
function l(e) {
return e %= f,
e < 0 && (e += f),
e
}
function c(e, n, i, s) {
if (!n || !e) return !1;
var o = e.type;
r = r || t.getContext();
var u = h(e, n, i, s);
if (typeof u != "undefined") return u;
if (e.buildPath && r.isPointInPath) return p(e, r, n, i, s);
switch (o) {
case "ellipse":
return !0;
case "trochoid":
var a = n.location == "out" ? n.r1 + n.r2 + n.d : n.r1 - n.r2 + n.d;
return S(n, i, s, a);
case "rose":
return S(n, i, s, n.maxr);
default:
return !1
}
}
function h(e, t, n, r) {
var i = e.type;
switch (i) {
case "bezier-curve":
if (typeof t.cpX2 == "undefined") return g(t.xStart, t.yStart, t.cpX1, t.cpY1, t.xEnd, t.yEnd, t.lineWidth, n, r);
return m(t.xStart, t.yStart, t.cpX1, t.cpY1, t.cpX2, t.cpY2, t.xEnd, t.yEnd, t.lineWidth, n, r);
case "line":
return v(t.xStart, t.yStart, t.xEnd, t.yEnd, t.lineWidth, n, r);
case "polyline":
return b(t.pointList, t.lineWidth, n, r);
case "ring":
return w(t.x, t.y, t.r0, t.r, n, r);
case "circle":
return S(t.x, t.y, t.r, n, r);
case "sector":
var s = t.startAngle * Math.PI / 180,
o = t.endAngle * Math.PI / 180;
return t.clockWise || (s = -s, o = -o),
x(t.x, t.y, t.r0, t.r, s, o, !t.clockWise, n, r);
case "path":
return t.pathArray && _(t.pathArray, Math.max(t.lineWidth, 5), t.brushType, n, r);
case "polygon":
case "star":
case "isogon":
return T(t.pointList, n, r);
case "text":
var u = t.__rect || e.getRect(t);
return E(u.x, u.y, u.width, u.height, n, r);
case "rectangle":
case "image":
return E(t.x, t.y, t.width, t.height, n, r)
}
}
function p(e, t, n, r, i) {
return t.beginPath(),
e.buildPath(t, n),
t.closePath(),
t.isPointInPath(r, i)
}
function d(e, t, n, r) {
return !c(e, t, n, r)
}
function v(e, t, n, r, i, s, o) {
if (i === 0) return !1;
var u = Math.max(i, 5),
a = 0,
f = e;
if (o > t + u && o > r + u || o < t - u && o < r - u || s > e + u && s > n + u || s < e - u && s < n - u) return !1;
if (e === n) return Math.abs(s - e) <= u / 2;
a = (t - r) / (e - n),
f = (e * r - n * t) / (e - n);
var l = a * s - o + f,
c = l * l / (a * a + 1);
return c <= u / 2 * u / 2
}
function m(e, t, r, i, s, o, u, a, f, l, c) {
if (f === 0) return !1;
var h = Math.max(f, 5);
if (c > t + h && c > i + h && c > o + h && c > a + h || c < t - h && c < i - h && c < o - h && c < a - h || l > e + h && l > r + h && l > s + h && l > u + h || l < e - h && l < r - h && l < s - h && l < u - h) return !1;
var p = n.cubicProjectPoint(e, t, r, i, s, o, u, a, l, c, null);
return p <= h / 2
}
function g(e, t, r, i, s, o, u, a, f) {
if (u === 0) return !1;
var l = Math.max(u, 5);
if (f > t + l && f > i + l && f > o + l || f < t - l && f < i - l && f < o - l || a > e + l && a > r + l && a > s + l || a < e - l && a < r - l && a < s - l) return !1;
var c = n.quadraticProjectPoint(e, t, r, i, s, o, a, f, null);
return c <= l / 2
}
function y(e, t, n, r, i, s, o, u, a) {
if (o === 0) return !1;
var c = Math.max(o, 5);
u -= e,
a -= t;
var h = Math.sqrt(u * u + a * a);
if (h - c > n || h + c < n) return !1;
if (Math.abs(r - i) >= f) return !0;
if (s) {
var p = r;
r = l(i),
i = l(p)
} else r = l(r),
i = l(i);
r > i && (i += f);
var d = Math.atan2(a, u);
return d < 0 && (d += f),
d >= r && d <= i || d + f >= r && d + f <= i
}
function b(e, t, n, r) {
var t = Math.max(t, 10);
for (var i = 0,
s = e.length - 1; i < s; i++) {
var o = e[i][0],
u = e[i][1],
a = e[i + 1][0],
f = e[i + 1][1];
if (v(o, u, a, f, t, n, r)) return !0
}
return !1
}
function w(e, t, n, r, i, s) {
var o = (i - e) * (i - e) + (s - t) * (s - t);
return o < r * r && o > n * n
}
function E(e, t, n, r, i, s) {
return i >= e && i <= e + n && s >= t && s <= t + r
}
function S(e, t, n, r, i) {
return (r - e) * (r - e) + (i - t) * (i - t) < n * n
}
function x(e, t, n, r, i, s, o, u, a) {
return y(e, t, (n + r) / 2, i, s, o, r - n, u, a)
}
function T(e, t, n) {
var r = e.length,
i = 0;
for (var s = 0,
o = r - 1; s < r; s++) {
var u = e[o][0],
a = e[o][1],
f = e[s][0],
l = e[s][1];
i += N(u, a, f, l, t, n),
o = s
}
return i !== 0
}
function N(e, t, n, r, i, s) {
if (s > t && s > r || s < t && s < r) return 0;
if (r == t) return 0;
var o = r < t ? 1 : -1,
u = (s - t) / (r - t),
a = u * (n - e) + e;
return a > i ? o : 0
}
function L() {
var e = k[0];
k[0] = k[1],
k[1] = e
}
function A(e, t, r, i, s, o, u, a, f, l) {
if (l > t && l > i && l > o && l > a || l < t && l < i && l < o && l < a) return 0;
var c = n.cubicRootAt(t, i, o, a, l, C);
if (c === 0) return 0;
var h = 0,
p = -1,
d, v;
for (var m = 0; m < c; m++) {
var g = C[m],
y = n.cubicAt(e, r, s, u, g);
if (y < f) continue;
p < 0 && (p = n.cubicExtrema(t, i, o, a, k), k[1] < k[0] && p > 1 && L(), d = n.cubicAt(t, i, o, a, k[0]), p > 1 && (v = n.cubicAt(t, i, o, a, k[1]))),
p == 2 ? g < k[0] ? h += d < t ? 1 : -1 : g < k[1] ? h += v < d ? 1 : -1 : h += a < v ? 1 : -1 : g < k[0] ? h += d < t ? 1 : -1 : h += a < d ? 1 : -1
}
return h
}
function O(e, t, r, i, s, o, u, a) {
if (a > t && a > i && a > o || a < t && a < i && a < o) return 0;
var f = n.quadraticRootAt(t, i, o, a, C);
if (f === 0) return 0;
var l = n.quadraticExtremum(t, i, o);
if (l >= 0 && l <= 1) {
var c = 0,
h = n.quadraticAt(t, i, o, l);
for (var p = 0; p < f; p++) {
var d = n.quadraticAt(e, r, s, C[p]);
if (d < u) continue;
C[p] < l ? c += h < t ? 1 : -1 : c += o < h ? 1 : -1
}
return c
}
var d = n.quadraticAt(e, r, s, C[0]);
return d < u ? 0 : o < t ? 1 : -1
}
function M(e, t, n, r, i, s, o, u) {
u -= t;
if (u > n || u < -n) return 0;
var a = Math.sqrt(n * n - u * u);
C[0] = -a,
C[1] = a;
if (Math.abs(r - i) >= f) {
r = 0,
i = f;
var c = s ? 1 : -1;
return o >= C[0] + e && o <= C[1] + e ? c : 0
}
if (s) {
var a = r;
r = l(i),
i = l(a)
} else r = l(r),
i = l(i);
r > i && (i += f);
var h = 0;
for (var p = 0; p < 2; p++) {
var d = C[p];
if (d + e > o) {
var v = Math.atan2(u, d),
c = s ? 1 : -1;
v < 0 && (v = f + v);
if (v >= r && v <= i || v + f >= r && v + f <= i) v > Math.PI / 2 && v < Math.PI * 1.5 && (c = -c),
h += c
}
}
return h
}
function _(e, t, n, r, i) {
var s = 0,
o = 0,
u = 0,
a = 0,
f = 0,
l = !0,
c = !0;
n = n || "fill";
var h = n === "stroke" || n === "both",
p = n === "fill" || n === "both";
for (var d = 0; d < e.length; d++) {
var b = e[d],
w = b.points;
if (l || b.command === "M") {
if (d > 0) {
p && (s += N(o, u, a, f, r, i));
if (s !== 0) return !0
}
a = w[w.length - 2],
f = w[w.length - 1],
l = !1,
c && b.command !== "A" && (c = !1, o = a, u = f)
}
switch (b.command) {
case "M":
o = w[0],
u = w[1];
break;
case "L":
if (h && v(o, u, w[0], w[1], t, r, i)) return !0;
p && (s += N(o, u, w[0], w[1], r, i)),
o = w[0],
u = w[1];
break;
case "C":
if (h && m(o, u, w[0], w[1], w[2], w[3], w[4], w[5], t, r, i)) return !0;
p && (s += A(o, u, w[0], w[1], w[2], w[3], w[4], w[5], r, i)),
o = w[4],
u = w[5];
break;
case "Q":
if (h && g(o, u, w[0], w[1], w[2], w[3], t, r, i)) return !0;
p && (s += O(o, u, w[0], w[1], w[2], w[3], r, i)),
o = w[2],
u = w[3];
break;
case "A":
var E = w[0],
S = w[1],
x = w[2],
T = w[3],
C = w[4],
k = w[5],
L = Math.cos(C) * x + E,
_ = Math.sin(C) * T + S;
c ? (c = !1, a = L, f = _) : s += N(o, u, L, _);
var D = (r - E) * T / x + E;
if (h && y(E, S, T, C, C + k, 1 - w[7], t, D, i)) return !0;
p && (s += M(E, S, T, C, C + k, 1 - w[7], D, i)),
o = Math.cos(C + k) * x + E,
u = Math.sin(C + k) * T + S;
break;
case "z":
if (h && v(o, u, a, f, t, r, i)) return !0;
l = !0
}
}
return p && (s += N(o, u, a, f, r, i)),
s !== 0
}
function D(e, n) {
var s = e + ":" + n;
if (i[s]) return i[s];
r = r || t.getContext(),
r.save(),
n && (r.font = n),
e = (e + "").split("\n");
var u = 0;
for (var f = 0,
l = e.length; f < l; f++) u = Math.max(r.measureText(e[f]).width, u);
return r.restore(),
i[s] = u,
++o > a && (o = 0, i = {}),
u
}
function P(e, n) {
var i = e + ":" + n;
if (s[i]) return s[i];
r = r || t.getContext(),
r.save(),
n && (r.font = n),
e = (e + "").split("\n");
var o = (r.measureText("国").width + 2) * e.length;
return r.restore(),
s[i] = o,
++u > a && (u = 0, s = {}),
o
}
var t = e("./util"),
n = e("./curve"),
r,
i = {},
s = {},
o = 0,
u = 0,
a = 5e3,
f = Math.PI * 2,
C = [-1, -1, -1],
k = [-1, -1];
return {
isInside: c,
isOutside: d,
getTextWidth: D,
getTextHeight: P,
isInsidePath: _,
isInsidePolygon: T,
isInsideSector: x,
isInsideCircle: S,
isInsideLine: v,
isInsideRect: E,
isInsidePolyline: b,
isInsideCubicStroke: m,
isInsideQuadraticStroke: g
}
}),
define("zrender/mixin/Transformable", ["require", "../tool/matrix", "../tool/vector"],
function (e) {
function o(e) {
return e > -s && e < s
}
function u(e) {
return e > s || e < -s
}
var t = e("../tool/matrix"),
n = e("../tool/vector"),
r = [0, 0],
i = t.translate,
s = 5e-5,
a = function () {
this.position || (this.position = [0, 0]),
typeof this.rotation == "undefined" && (this.rotation = [0, 0, 0]),
this.scale || (this.scale = [1, 1, 0, 0]),
this.needLocalTransform = !1,
this.needTransform = !1
};
return a.prototype = {
constructor: a,
updateNeedTransform: function () {
this.needLocalTransform = u(this.rotation[0]) || u(this.position[0]) || u(this.position[1]) || u(this.scale[0] - 1) || u(this.scale[1] - 1)
},
updateTransform: function () {
this.updateNeedTransform();
var e = this.parent && this.parent.needTransform;
this.needTransform = this.needLocalTransform || e;
if (!this.needTransform) return;
var n = this.transform || t.create();
t.identity(n);
if (this.needLocalTransform) {
var s = this.scale;
if (u(s[0]) || u(s[1])) {
r[0] = -s[2] || 0,
r[1] = -s[3] || 0;
var o = u(r[0]) || u(r[1]);
o && i(n, n, r),
t.scale(n, n, s),
o && (r[0] = -r[0], r[1] = -r[1], i(n, n, r))
}
if (this.rotation instanceof Array) {
if (this.rotation[0] !== 0) {
r[0] = -this.rotation[1] || 0,
r[1] = -this.rotation[2] || 0;
var o = u(r[0]) || u(r[1]);
o && i(n, n, r),
t.rotate(n, n, this.rotation[0]),
o && (r[0] = -r[0], r[1] = -r[1], i(n, n, r))
}
} else this.rotation !== 0 && t.rotate(n, n, this.rotation); (u(this.position[0]) || u(this.position[1])) && i(n, n, this.position)
}
e && (this.needLocalTransform ? t.mul(n, this.parent.transform, n) : t.copy(n, this.parent.transform)),
this.transform = n,
this.invTransform = this.invTransform || t.create(),
t.invert(this.invTransform, n)
},
setTransform: function (e) {
if (this.needTransform) {
var t = this.transform;
e.transform(t[0], t[1], t[2], t[3], t[4], t[5])
}
},
lookAt: function () {
var e = n.create();
return function (r) {
this.transform || (this.transform = t.create());
var i = this.transform;
n.sub(e, r, this.position);
if (o(e[0]) && o(e[1])) return;
n.normalize(e, e);
var s = this.scale;
i[2] = e[0] * s[1],
i[3] = e[1] * s[1],
i[0] = e[1] * s[0],
i[1] = -e[0] * s[0],
i[4] = this.position[0],
i[5] = this.position[1],
this.decomposeTransform()
}
} (),
decomposeTransform: function () {
if (!this.transform) return;
var e = this.transform,
t = e[0] * e[0] + e[1] * e[1],
n = this.position,
r = this.scale,
i = this.rotation;
u(t - 1) && (t = Math.sqrt(t));
var s = e[2] * e[2] + e[3] * e[3];
u(s - 1) && (s = Math.sqrt(s)),
n[0] = e[4],
n[1] = e[5],
r[0] = t,
r[1] = s,
r[2] = r[3] = 0,
i[0] = Math.atan2(-e[1] / s, e[0] / t),
i[1] = i[2] = 0
},
transformCoordToLocal: function (e, t) {
var r = [e, t];
return this.needTransform && this.invTransform && n.applyTransform(r, r, this.invTransform),
r
}
},
a
}),
define("zrender/tool/color", ["require", "../tool/util"],
function (e) {
function f(e) {
r = e
}
function l() {
r = i
}
function c(e, t) {
return e |= 0,
t = t || r,
t[e % t.length]
}
function h(e) {
s = e
}
function p() {
o = s
}
function d() {
return s
}
function v(e, r, i, s, o, u, a) {
n || (n = t.getContext());
var f = n.createRadialGradient(e, r, i, s, o, u);
for (var l = 0,
c = a.length; l < c; l++) f.addColorStop(a[l][0], a[l][1]);
return f.__nonRecursion = !0,
f
}
function m(e, r, i, s, o) {
n || (n = t.getContext());
var u = n.createLinearGradient(e, r, i, s);
for (var a = 0,
f = o.length; a < f; a++) u.addColorStop(o[a][0], o[a][1]);
return u.__nonRecursion = !0,
u
}
function g(e, t, n) {
e = S(e),
t = S(t),
e = F(e),
t = F(t);
var r = [],
i = (t[0] - e[0]) / n,
s = (t[1] - e[1]) / n,
o = (t[2] - e[2]) / n,
u = (t[3] - e[3]) / n;
for (var a = 0,
f = e[0], l = e[1], c = e[2], h = e[3]; a < n; a++) r[a] = b([R(Math.floor(f), [0, 255]), R(Math.floor(l), [0, 255]), R(Math.floor(c), [0, 255]), h.toFixed(4) - 0], "rgba"),
f += i,
l += s,
c += o,
h += u;
return f = t[0],
l = t[1],
c = t[2],
h = t[3],
r[a] = b([f, l, c, h], "rgba"),
r
}
function y(e, t) {
var n = [],
r = e.length;
t === undefined && (t = 20);
if (r === 1) n = g(e[0], e[0], t);
else if (r > 1) for (var i = 0,
s = r - 1; i < s; i++) {
var o = g(e[i], e[i + 1], t);
i < s - 1 && o.pop(),
n = n.concat(o)
}
return n
}
function b(e, t) {
t = t || "rgb";
if (e && (e.length === 3 || e.length === 4)) {
e = q(e,
function (e) {
return e > 1 ? Math.ceil(e) : e
});
if (t.indexOf("hex") > -1) return "#" + ((1 << 24) + (e[0] << 16) + (e[1] << 8) + +e[2]).toString(16).slice(1);
if (t.indexOf("hs") > -1) {
var n = q(e.slice(1, 3),
function (e) {
return e + "%"
});
e[1] = n[0],
e[2] = n[1]
}
return t.indexOf("a") > -1 ? (e.length === 3 && e.push(1), e[3] = R(e[3], [0, 1]), t + "(" + e.slice(0, 4).join(",") + ")") : t + "(" + e.slice(0, 3).join(",") + ")"
}
}
function w(e) {
e = _(e),
e.indexOf("rgba") < 0 && (e = S(e));
var t = [],
n = 0;
return e.replace(/[\d.]+/g,
function (e) {
n < 3 ? e |= 0 : e = +e,
t[n++] = e
}),
t
}
function E(e, t) {
if (!U(e)) return e;
var n = F(e),
r = n[3];
return typeof r == "undefined" && (r = 1),
e.indexOf("hsb") > -1 ? n = z(n) : e.indexOf("hsl") > -1 && (n = W(n)),
t.indexOf("hsb") > -1 || t.indexOf("hsv") > -1 ? n = V(n) : t.indexOf("hsl") > -1 && (n = $(n)),
n[3] = r,
b(n, t)
}
function S(e) {
return E(e, "rgba")
}
function x(e) {
return E(e, "rgb")
}
function T(e) {
return E(e, "hex")
}
function N(e) {
return E(e, "hsva")
}
function C(e) {
return E(e, "hsv")
}
function k(e) {
return E(e, "hsba")
}
function L(e) {
return E(e, "hsb")
}
function A(e) {
return E(e, "hsla")
}
function O(e) {
return E(e, "hsl")
}
function M(e) {
for (var t in a) if (T(a[t]) === T(e)) return t;
return null
}
function _(e) {
return String(e).replace(/\s+/g, "")
}
function D(e) {
a[e] && (e = a[e]),
e = _(e),
e = e.replace(/hsv/i, "hsb");
if (/^#[\da-f]{3}$/i.test(e)) {
e = parseInt(e.slice(1), 16);
var t = (e & 3840) << 8,
n = (e & 240) << 4,
r = e & 15;
e = "#" + ((1 << 24) + (t << 4) + t + (n << 4) + n + (r << 4) + r).toString(16).slice(1)
}
return e
}
function P(e, t) {
if (!U(e)) return e;
var n = t > 0 ? 1 : -1;
typeof t == "undefined" && (t = 0),
t = Math.abs(t) > 1 ? 1 : Math.abs(t),
e = x(e);
var r = F(e);
for (var i = 0; i < 3; i++) n === 1 ? r[i] = r[i] * (1 - t) | 0 : r[i] = (255 - r[i]) * t + r[i] | 0;
return "rgb(" + r.join(",") + ")"
}
function H(e) {
if (!U(e)) return e;
var t = F(S(e));
return t = q(t,
function (e) {
return 255 - e
}),
b(t, "rgb")
}
function B(e, t, n) {
if (!U(e) || !U(t)) return e;
typeof n == "undefined" && (n = .5),
n = 1 - R(n, [0, 1]);
var r = n * 2 - 1,
i = F(S(e)),
s = F(S(t)),
o = i[3] - s[3],
u = ((r * o === -1 ? r : (r + o) / (1 + r * o)) + 1) / 2,
a = 1 - u,
f = [];
for (var l = 0; l < 3; l++) f[l] = i[l] * u + s[l] * a;
var c = i[3] * n + s[3] * (1 - n);
return c = Math.max(0, Math.min(1, c)),
i[3] === 1 && s[3] === 1 ? b(f, "rgb") : (f[3] = c, b(f, "rgba"))
}
function j() {
return "#" + (Math.random().toString(16) + "0000").slice(2, 8)
}
function F(e) {
e = D(e);
var t = e.match(u);
if (t === null) throw new Error("The color format error");
var n, r, i = [],
s;
if (t[2]) n = t[2].replace("#", "").split(""),
s = [n[0] + n[1], n[2] + n[3], n[4] + n[5]],
i = q(s,
function (e) {
return R(parseInt(e, 16), [0, 255])
});
else if (t[4]) {
var o = t[4].split(",");
r = o[3],
s = o.slice(0, 3),
i = q(s,
function (e) {
return e = Math.floor(e.indexOf("%") > 0 ? parseInt(e, 0) * 2.55 : e),
R(e, [0, 255])
}),
typeof r != "undefined" && i.push(R(parseFloat(r), [0, 1]))
} else if (t[5] || t[6]) {
var a = (t[5] || t[6]).split(","),
f = parseInt(a[0], 0) / 360,
l = a[1],
c = a[2];
r = a[3],
i = q([l, c],
function (e) {
return R(parseFloat(e) / 100, [0, 1])
}),
i.unshift(f),
typeof r != "undefined" && i.push(R(parseFloat(r), [0, 1]))
}
return i
}
function I(e, t) {
if (!U(e)) return e;
t === null && (t = 1);
var n = F(S(e));
return n[3] = R(Number(t).toFixed(4), [0, 1]),
b(n, "rgba")
}
function q(e, t) {
if (typeof t != "function") throw new TypeError;
var n = e ? e.length : 0;
for (var r = 0; r < n; r++) e[r] = t(e[r]);
return e
}
function R(e, t) {
return e <= t[0] ? e = t[0] : e >= t[1] && (e = t[1]),
e
}
function U(e) {
return e instanceof Array || typeof e == "string"
}
function z(e) {
var t = e[0],
n = e[1],
r = e[2],
i,
s,
o;
if (n === 0) i = r * 255,
s = r * 255,
o = r * 255;
else {
var u = t * 6;
u === 6 && (u = 0);
var a = u | 0,
f = r * (1 - n),
l = r * (1 - n * (u - a)),
c = r * (1 - n * (1 - (u - a))),
h = 0,
p = 0,
d = 0;
a === 0 ? (h = r, p = c, d = f) : a === 1 ? (h = l, p = r, d = f) : a === 2 ? (h = f, p = r, d = c) : a === 3 ? (h = f, p = l, d = r) : a === 4 ? (h = c, p = f, d = r) : (h = r, p = f, d = l),
i = h * 255,
s = p * 255,
o = d * 255
}
return [i, s, o]
}
function W(e) {
var t = e[0],
n = e[1],
r = e[2],
i,
s,
o;
if (n === 0) i = r * 255,
s = r * 255,
o = r * 255;
else {
var u;
r < .5 ? u = r * (1 + n) : u = r + n - n * r;
var a = 2 * r - u;
i = 255 * X(a, u, t + 1 / 3),
s = 255 * X(a, u, t),
o = 255 * X(a, u, t - 1 / 3)
}
return [i, s, o]
}
function X(e, t, n) {
return n < 0 && (n += 1),
n > 1 && (n -= 1),
6 * n < 1 ? e + (t - e) * 6 * n : 2 * n < 1 ? t : 3 * n < 2 ? e + (t - e) * (2 / 3 - n) * 6 : e
}
function V(e) {
var t = e[0] / 255,
n = e[1] / 255,
r = e[2] / 255,
i = Math.min(t, n, r),
s = Math.max(t, n, r),
o = s - i,
u = s,
a,
f;
if (o === 0) a = 0,
f = 0;
else {
f = o / s;
var l = ((s - t) / 6 + o / 2) / o,
c = ((s - n) / 6 + o / 2) / o,
h = ((s - r) / 6 + o / 2) / o;
t === s ? a = h - c : n === s ? a = 1 / 3 + l - h : r === s && (a = 2 / 3 + c - l),
a < 0 && (a += 1),
a > 1 && (a -= 1)
}
return a *= 360,
f *= 100,
u *= 100,
[a, f, u]
}
function $(e) {
var t = e[0] / 255,
n = e[1] / 255,
r = e[2] / 255,
i = Math.min(t, n, r),
s = Math.max(t, n, r),
o = s - i,
u = (s + i) / 2,
a,
f;
if (o === 0) a = 0,
f = 0;
else {
u < .5 ? f = o / (s + i) : f = o / (2 - s - i);
var l = ((s - t) / 6 + o / 2) / o,
c = ((s - n) / 6 + o / 2) / o,
h = ((s - r) / 6 + o / 2) / o;
t === s ? a = h - c : n === s ? a = 1 / 3 + l - h : r === s && (a = 2 / 3 + c - l),
a < 0 && (a += 1),
a > 1 && (a -= 1)
}
return a *= 360,
f *= 100,
u *= 100,
[a, f, u]
}
var t = e("../tool/util"),
n,
r = ["#ff9277", " #dddd00", " #ffc877", " #bbe3ff", " #d5ffbb", "#bbbbff", " #ddb000", " #b0dd00", " #e2bbff", " #ffbbe3", "#ff7777", " #ff9900", " #83dd00", " #77e3ff", " #778fff", "#c877ff", " #ff77ab", " #ff6600", " #aa8800", " #77c7ff", "#ad77ff", " #ff77ff", " #dd0083", " #777700", " #00aa00", "#0088aa", " #8400dd", " #aa0088", " #dd0000", " #772e00"],
i = r,
s = "rgba(255,255,0,0.5)",
o = s,
u = /^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,
a = {
aliceblue: "#f0f8ff",
antiquewhite: "#faebd7",
aqua: "#0ff",
aquamarine: "#7fffd4",
azure: "#f0ffff",
beige: "#f5f5dc",
bisque: "#ffe4c4",
black: "#000",
blanchedalmond: "#ffebcd",
blue: "#00f",
blueviolet: "#8a2be2",
brown: "#a52a2a",
burlywood: "#deb887",
cadetblue: "#5f9ea0",
chartreuse: "#7fff00",
chocolate: "#d2691e",
coral: "#ff7f50",
cornflowerblue: "#6495ed",
cornsilk: "#fff8dc",
crimson: "#dc143c",
cyan: "#0ff",
darkblue: "#00008b",
darkcyan: "#008b8b",
darkgoldenrod: "#b8860b",
darkgray: "#a9a9a9",
darkgrey: "#a9a9a9",
darkgreen: "#006400",
darkkhaki: "#bdb76b",
darkmagenta: "#8b008b",
darkolivegreen: "#556b2f",
darkorange: "#ff8c00",
darkorchid: "#9932cc",
darkred: "#8b0000",
darksalmon: "#e9967a",
darkseagreen: "#8fbc8f",
darkslateblue: "#483d8b",
darkslategray: "#2f4f4f",
darkslategrey: "#2f4f4f",
darkturquoise: "#00ced1",
darkviolet: "#9400d3",
deeppink: "#ff1493",
deepskyblue: "#00bfff",
dimgray: "#696969",
dimgrey: "#696969",
dodgerblue: "#1e90ff",
firebrick: "#b22222",
floralwhite: "#fffaf0",
forestgreen: "#228b22",
fuchsia: "#f0f",
gainsboro: "#dcdcdc",
ghostwhite: "#f8f8ff",
gold: "#ffd700",
goldenrod: "#daa520",
gray: "#808080",
grey: "#808080",
green: "#008000",
greenyellow: "#adff2f",
honeydew: "#f0fff0",
hotpink: "#ff69b4",
indianred: "#cd5c5c",
indigo: "#4b0082",
ivory: "#fffff0",
khaki: "#f0e68c",
lavender: "#e6e6fa",
lavenderblush: "#fff0f5",
lawngreen: "#7cfc00",
lemonchiffon: "#fffacd",
lightblue: "#add8e6",
lightcoral: "#f08080",
lightcyan: "#e0ffff",
lightgoldenrodyellow: "#fafad2",
lightgray: "#d3d3d3",
lightgrey: "#d3d3d3",
lightgreen: "#90ee90",
lightpink: "#ffb6c1",
lightsalmon: "#ffa07a",
lightseagreen: "#20b2aa",
lightskyblue: "#87cefa",
lightslategray: "#789",
lightslategrey: "#789",
lightsteelblue: "#b0c4de",
lightyellow: "#ffffe0",
lime: "#0f0",
limegreen: "#32cd32",
linen: "#faf0e6",
magenta: "#f0f",
maroon: "#800000",
mediumaquamarine: "#66cdaa",
mediumblue: "#0000cd",
mediumorchid: "#ba55d3",
mediumpurple: "#9370d8",
mediumseagreen: "#3cb371",
mediumslateblue: "#7b68ee",
mediumspringgreen: "#00fa9a",
mediumturquoise: "#48d1cc",
mediumvioletred: "#c71585",
midnightblue: "#191970",
mintcream: "#f5fffa",
mistyrose: "#ffe4e1",
moccasin: "#ffe4b5",
navajowhite: "#ffdead",
navy: "#000080",
oldlace: "#fdf5e6",
olive: "#808000",
olivedrab: "#6b8e23",
orange: "#ffa500",
orangered: "#ff4500",
orchid: "#da70d6",
palegoldenrod: "#eee8aa",
palegreen: "#98fb98",
paleturquoise: "#afeeee",
palevioletred: "#d87093",
papayawhip: "#ffefd5",
peachpuff: "#ffdab9",
peru: "#cd853f",
pink: "#ffc0cb",
plum: "#dda0dd",
powderblue: "#b0e0e6",
purple: "#800080",
red: "#f00",
rosybrown: "#bc8f8f",
royalblue: "#4169e1",
saddlebrown: "#8b4513",
salmon: "#fa8072",
sandybrown: "#f4a460",
seagreen: "#2e8b57",
seashell: "#fff5ee",
sienna: "#a0522d",
silver: "#c0c0c0",
skyblue: "#87ceeb",
slateblue: "#6a5acd",
slategray: "#708090",
slategrey: "#708090",
snow: "#fffafa",
springgreen: "#00ff7f",
steelblue: "#4682b4",
tan: "#d2b48c",
teal: "#008080",
thistle: "#d8bfd8",
tomato: "#ff6347",
turquoise: "#40e0d0",
violet: "#ee82ee",
wheat: "#f5deb3",
white: "#fff",
whitesmoke: "#f5f5f5",
yellow: "#ff0",
yellowgreen: "#9acd32"
};
return {
customPalette: f,
resetPalette: l,
getColor: c,
getHighlightColor: d,
customHighlight: h,
resetHighlight: p,
getRadialGradient: v,
getLinearGradient: m,
getGradientColors: y,
getStepColors: g,
reverse: H,
mix: B,
lift: P,
trim: _,
random: j,
toRGB: x,
toRGBA: S,
toHex: T,
toHSL: O,
toHSLA: A,
toHSB: L,
toHSBA: k,
toHSV: C,
toHSVA: N,
toName: M,
toColor: b,
toArray: w,
alpha: I,
getData: F
}
}),
define("zrender/shape/Base", ["require", "../tool/matrix", "../tool/guid", "../tool/util", "../tool/log", "../mixin/Transformable", "../mixin/Eventful", "../tool/area", "../tool/area", "../tool/color", "../tool/area"],
function (e) {
function a(t, n, r, i, s, o, u) {
s && (t.font = s),
t.textAlign = o,
t.textBaseline = u;
var a = f(n, r, i, s, o, u);
n = (n + "").split("\n");
var l = e("../tool/area").getTextHeight("国", s);
switch (u) {
case "top":
i = a.y;
break;
case "bottom":
i = a.y + l;
break;
default:
i = a.y + l / 2
}
for (var c = 0,
h = n.length; c < h; c++) t.fillText(n[c], r, i),
i += l
}
function f(t, n, r, i, s, o) {
var u = e("../tool/area"),
a = u.getTextWidth(t, i),
f = u.getTextHeight("国", i);
t = (t + "").split("\n");
switch (s) {
case "end":
case "right":
n -= a;
break;
case "center":
n -= a / 2
}
switch (o) {
case "top":
break;
case "bottom":
r -= f * t.length;
break;
default:
r -= f * t.length / 2
}
return {
x: n,
y: r,
width: a,
height: f * t.length
}
}
var t = window.G_vmlCanvasManager,
n = e("../tool/matrix"),
r = e("../tool/guid"),
i = e("../tool/util"),
s = e("../tool/log"),
o = e("../mixin/Transformable"),
u = e("../mixin/Eventful"),
l = function (e) {
e = e || {},
this.id = e.id || r();
for (var t in e) this[t] = e[t];
this.style = this.style || {},
this.highlightStyle = this.highlightStyle || null,
this.parent = null,
this.__dirty = !0,
this.__clipShapes = [],
o.call(this),
u.call(this)
};
l.prototype.invisible = !1,
l.prototype.ignore = !1,
l.prototype.zlevel = 0,
l.prototype.draggable = !1,
l.prototype.clickable = !1,
l.prototype.hoverable = !0,
l.prototype.z = 0,
l.prototype.brush = function (e, t) {
var n = this.beforeBrush(e, t);
e.beginPath(),
this.buildPath(e, n);
switch (n.brushType) {
case "both":
e.fill();
case "stroke":
n.lineWidth > 0 && e.stroke();
break;
default:
e.fill()
}
this.drawText(e, n, this.style),
this.afterBrush(e)
},
l.prototype.beforeBrush = function (e, t) {
var n = this.style;
return this.brushTypeOnly && (n.brushType = this.brushTypeOnly),
t && (n = this.getHighlightStyle(n, this.highlightStyle || {},
this.brushTypeOnly)),
this.brushTypeOnly == "stroke" && (n.strokeColor = n.strokeColor || n.color),
e.save(),
this.doClip(e),
this.setContext(e, n),
this.setTransform(e),
n
},
l.prototype.afterBrush = function (e) {
e.restore()
};
var c = [["color", "fillStyle"], ["strokeColor", "strokeStyle"], ["opacity", "globalAlpha"], ["lineCap", "lineCap"], ["lineJoin", "lineJoin"], ["miterLimit", "miterLimit"], ["lineWidth", "lineWidth"], ["shadowBlur", "shadowBlur"], ["shadowColor", "shadowColor"], ["shadowOffsetX", "shadowOffsetX"], ["shadowOffsetY", "shadowOffsetY"]];
l.prototype.setContext = function (e, t) {
for (var n = 0,
r = c.length; n < r; n++) {
var i = c[n][0],
s = t[i],
o = c[n][1];
typeof s != "undefined" && (e[o] = s)
}
};
var h = n.create();
return l.prototype.doClip = function (e) {
if (this.__clipShapes && !t) for (var r = 0; r < this.__clipShapes.length; r++) {
var i = this.__clipShapes[r];
if (i.needTransform) {
var s = i.transform;
n.invert(h, s),
e.transform(s[0], s[1], s[2], s[3], s[4], s[5])
}
e.beginPath(),
i.buildPath(e, i.style),
e.clip();
if (i.needTransform) {
var s = h;
e.transform(s[0], s[1], s[2], s[3], s[4], s[5])
}
}
},
l.prototype.getHighlightStyle = function (t, n, r) {
var i = {};
for (var s in t) i[s] = t[s];
var o = e("../tool/color"),
u = o.getHighlightColor();
t.brushType != "stroke" ? (i.strokeColor = u, i.lineWidth = (t.lineWidth || 1) + this.getHighlightZoom(), i.brushType = "both") : r != "stroke" ? (i.strokeColor = u, i.lineWidth = (t.lineWidth || 1) + this.getHighlightZoom()) : i.strokeColor = n.strokeColor || o.mix(t.strokeColor, o.toRGB(u));
for (var s in n) typeof n[s] != "undefined" && (i[s] = n[s]);
return i
},
l.prototype.getHighlightZoom = function () {
return this.type != "text" ? 6 : 2
},
l.prototype.drift = function (e, t) {
this.position[0] += e,
this.position[1] += t
},
l.prototype.buildPath = function (e, t) {
s("buildPath not implemented in " + this.type)
},
l.prototype.getRect = function (e) {
s("getRect not implemented in " + this.type)
},
l.prototype.isCover = function (t, n) {
var r = this.transformCoordToLocal(t, n);
return t = r[0],
n = r[1],
this.isCoverRect(t, n) ? e("../tool/area").isInside(this, this.style, t, n) : !1
},
l.prototype.isCoverRect = function (e, t) {
var n = this.style.__rect;
return n || (n = this.style.__rect = this.getRect(this.style)),
e >= n.x && e <= n.x + n.width && t >= n.y && t <= n.y + n.height
},
l.prototype.drawText = function (e, t, n) {
if (typeof t.text == "undefined" || t.text === !1) return;
var r = t.textColor || t.color || t.strokeColor;
e.fillStyle = r;
var i = 10,
s, o, u, f, l = t.textPosition || this.textPosition || "top";
switch (l) {
case "inside":
case "top":
case "bottom":
case "left":
case "right":
if (this.getRect) {
var c = (n || t).__rect || this.getRect(n || t);
switch (l) {
case "inside":
u = c.x + c.width / 2,
f = c.y + c.height / 2,
s = "center",
o = "middle",
t.brushType != "stroke" && r == t.color && (e.fillStyle = "#fff");
break;
case "left":
u = c.x - i,
f = c.y + c.height / 2,
s = "end",
o = "middle";
break;
case "right":
u = c.x + c.width + i,
f = c.y + c.height / 2,
s = "start",
o = "middle";
break;
case "top":
u = c.x + c.width / 2,
f = c.y - i,
s = "center",
o = "bottom";
break;
case "bottom":
u = c.x + c.width / 2,
f = c.y + c.height + i,
s = "center",
o = "top"
}
}
break;
case "start":
case "end":
var h = t.pointList || [[t.xStart || 0, t.yStart || 0], [t.xEnd || 0, t.yEnd || 0]],
p = h.length;
if (p < 2) return;
var d, v, m, g;
switch (l) {
case "start":
d = h[1][0],
v = h[0][0],
m = h[1][1],
g = h[0][1];
break;
case "end":
d = h[p - 2][0],
v = h[p - 1][0],
m = h[p - 2][1],
g = h[p - 1][1]
}
u = v,
f = g;
var y = Math.atan((m - g) / (v - d)) / Math.PI * 180;
v - d < 0 ? y += 180 : m - g < 0 && (y += 360),
i = 5,
y >= 30 && y <= 150 ? (s = "center", o = "bottom", f -= i) : y > 150 && y < 210 ? (s = "right", o = "middle", u -= i) : y >= 210 && y <= 330 ? (s = "center", o = "top", f += i) : (s = "left", o = "middle", u += i);
break;
case "specific":
u = t.textX || 0,
f = t.textY || 0,
s = "start",
o = "middle"
}
u != null && f != null && a(e, t.text, u, f, t.textFont, t.textAlign || s, t.textBaseline || o)
},
l.prototype.modSelf = function () {
this.__dirty = !0,
this.style && (this.style.__rect = null),
this.highlightStyle && (this.highlightStyle.__rect = null)
},
l.prototype.isSilent = function () {
return !(this.hoverable || this.draggable || this.clickable || this.onmousemove || this.onmouseover || this.onmouseout || this.onmousedown || this.onmouseup || this.onclick || this.ondragenter || this.ondragover || this.ondragleave || this.ondrop)
},
i.merge(l.prototype, o.prototype, !0),
i.merge(l.prototype, u.prototype, !0),
l
}),
define("zrender/shape/Text", ["require", "../tool/area", "./Base", "../tool/util"],
function (e) {
var t = e("../tool/area"),
n = e("./Base"),
r = function (e) {
n.call(this, e)
};
return r.prototype = {
type: "text",
brush: function (e, n) {
var r = this.style;
n && (r = this.getHighlightStyle(r, this.highlightStyle || {}));
if (typeof r.text == "undefined" || r.text === !1) return;
e.save(),
this.doClip(e),
this.setContext(e, r),
this.setTransform(e),
r.textFont && (e.font = r.textFont),
e.textAlign = r.textAlign || "start",
e.textBaseline = r.textBaseline || "middle";
var i = (r.text + "").split("\n"),
s = t.getTextHeight("国", r.textFont),
o = this.getRect(r),
u = r.x,
a;
r.textBaseline == "top" ? a = o.y : r.textBaseline == "bottom" ? a = o.y + s : a = o.y + s / 2;
for (var f = 0,
l = i.length; f < l; f++) {
if (r.maxWidth) switch (r.brushType) {
case "fill":
e.fillText(i[f], u, a, r.maxWidth);
break;
case "stroke":
e.strokeText(i[f], u, a, r.maxWidth);
break;
case "both":
e.fillText(i[f], u, a, r.maxWidth),
e.strokeText(i[f], u, a, r.maxWidth);
break;
default:
e.fillText(i[f], u, a, r.maxWidth)
} else switch (r.brushType) {
case "fill":
e.fillText(i[f], u, a);
break;
case "stroke":
e.strokeText(i[f], u, a);
break;
case "both":
e.fillText(i[f], u, a),
e.strokeText(i[f], u, a);
break;
default:
e.fillText(i[f], u, a)
}
a += s
}
e.restore();
return
},
getRect: function (e) {
if (e.__rect) return e.__rect;
var n = t.getTextWidth(e.text, e.textFont),
r = t.getTextHeight(e.text, e.textFont),
i = e.x;
e.textAlign == "end" || e.textAlign == "right" ? i -= n : e.textAlign == "center" && (i -= n / 2);
var s;
return e.textBaseline == "top" ? s = e.y : e.textBaseline == "bottom" ? s = e.y - r : s = e.y - r / 2,
e.__rect = {
x: i,
y: s,
width: n,
height: r
},
e.__rect
}
},
e("../tool/util").inherits(r, n),
r
}),
define("zrender/shape/Rectangle", ["require", "./Base", "../tool/util"],
function (e) {
var t = e("./Base"),
n = function (e) {
t.call(this, e)
};
return n.prototype = {
type: "rectangle",
_buildRadiusPath: function (e, t) {
var n = t.x,
r = t.y,
i = t.width,
s = t.height,
o = t.radius,
u, a, f, l;
typeof o == "number" ? u = a = f = l = o : o instanceof Array ? o.length === 1 ? u = a = f = l = o[0] : o.length === 2 ? (u = f = o[0], a = l = o[1]) : o.length === 3 ? (u = o[0], a = l = o[1], f = o[2]) : (u = o[0], a = o[1], f = o[2], l = o[3]) : u = a = f = l = 0;
var c;
u + a > i && (c = u + a, u *= i / c, a *= i / c),
f + l > i && (c = f + l, f *= i / c, l *= i / c),
a + f > s && (c = a + f, a *= s / c, f *= s / c),
u + l > s && (c = u + l, u *= s / c, l *= s / c),
e.moveTo(n + u, r),
e.lineTo(n + i - a, r),
a !== 0 && e.quadraticCurveTo(n + i, r, n + i, r + a),
e.lineTo(n + i, r + s - f),
f !== 0 && e.quadraticCurveTo(n + i, r + s, n + i - f, r + s),
e.lineTo(n + l, r + s),
l !== 0 && e.quadraticCurveTo(n, r + s, n, r + s - l),
e.lineTo(n, r + u),
u !== 0 && e.quadraticCurveTo(n, r, n + u, r)
},
buildPath: function (e, t) {
t.radius ? this._buildRadiusPath(e, t) : (e.moveTo(t.x, t.y), e.lineTo(t.x + t.width, t.y), e.lineTo(t.x + t.width, t.y + t.height), e.lineTo(t.x, t.y + t.height), e.lineTo(t.x, t.y)),
e.closePath();
return
},
getRect: function (e) {
if (e.__rect) return e.__rect;
var t;
return e.brushType == "stroke" || e.brushType == "fill" ? t = e.lineWidth || 1 : t = 0,
e.__rect = {
x: Math.round(e.x - t / 2),
y: Math.round(e.y - t / 2),
width: e.width + t,
height: e.height + t
},
e.__rect
}
},
e("../tool/util").inherits(n, t),
n
}),
define("zrender/loadingEffect/Base", ["require", "../tool/util", "../shape/Text", "../shape/Rectangle"],
function (e) {
function o(e) {
this.setOptions(e)
}
var t = e("../tool/util"),
n = e("../shape/Text"),
r = e("../shape/Rectangle"),
i = "Loading...",
s = "normal 16px Arial";
return o.prototype.createTextShape = function (e) {
return new n({
highlightStyle: t.merge({
x: this.canvasWidth / 2,
y: this.canvasHeight / 2,
text: i,
textAlign: "center",
textBaseline: "middle",
textFont: s,
color: "#333",
brushType: "fill"
},
e, !0)
})
},
o.prototype.createBackgroundShape = function (e) {
return new r({
highlightStyle: {
x: 0,
y: 0,
width: this.canvasWidth,
height: this.canvasHeight,
brushType: "fill",
color: e
}
})
},
o.prototype.start = function (e) {
function t(t) {
e.storage.addHover(t)
}
function n() {
e.refreshHover()
}
this.canvasWidth = e._width,
this.canvasHeight = e._height,
this.loadingTimer = this._start(t, n)
},
o.prototype._start = function () {
return setInterval(function () { },
1e4)
},
o.prototype.stop = function () {
clearInterval(this.loadingTimer)
},
o.prototype.setOptions = function (e) {
this.options = e || {}
},
o.prototype.adjust = function (e, t) {
return e <= t[0] ? e = t[0] : e >= t[1] && (e = t[1]),
e
},
o.prototype.getLocation = function (e, t, n) {
var r = e.x != null ? e.x : "center";
switch (r) {
case "center":
r = Math.floor((this.canvasWidth - t) / 2);
break;
case "left":
r = 0;
break;
case "right":
r = this.canvasWidth - t
}
var i = e.y != null ? e.y : "center";
switch (i) {
case "center":
i = Math.floor((this.canvasHeight - n) / 2);
break;
case "top":
i = 0;
break;
case "bottom":
i = this.canvasHeight - n
}
return {
x: r,
y: i,
width: t,
height: n
}
},
o
}),
define("zrender/Layer", ["require", "./mixin/Transformable", "./tool/util", "./config"],
function (e) {
function s() {
return !1
}
function o(e, t, n) {
var r = document.createElement(t),
s = n.getWidth(),
o = n.getHeight();
return r.style.position = "absolute",
r.style.left = 0,
r.style.top = 0,
r.style.width = s + "px",
r.style.height = o + "px",
r.width = s * i.devicePixelRatio,
r.height = o * i.devicePixelRatio,
r.setAttribute("data-zr-dom-id", e),
r
}
var t = e("./mixin/Transformable"),
n = e("./tool/util"),
r = window.G_vmlCanvasManager,
i = e("./config"),
u = function (e, n) {
this.id = e,
this.dom = o(e, "canvas", n),
this.dom.onselectstart = s,
this.dom.style["-webkit-user-select"] = "none",
this.dom.style["user-select"] = "none",
this.dom.style["-webkit-touch-callout"] = "none",
this.dom.style["-webkit-tap-highlight-color"] = "rgba(0,0,0,0)",
this.dom.className = i.elementClassName,
r && r.initElement(this.dom),
this.domBack = null,
this.ctxBack = null,
this.painter = n,
this.unusedCount = 0,
this.config = null,
this.dirty = !0,
this.elCount = 0,
this.clearColor = 0,
this.motionBlur = !1,
this.lastFrameAlpha = .7,
this.zoomable = !1,
this.panable = !1,
this.maxZoom = Infinity,
this.minZoom = 0,
t.call(this)
};
return u.prototype.initContext = function () {
this.ctx = this.dom.getContext("2d");
var e = i.devicePixelRatio;
e != 1 && this.ctx.scale(e, e)
},
u.prototype.createBackBuffer = function () {
if (r) return;
this.domBack = o("back-" + this.id, "canvas", this.painter),
this.ctxBack = this.domBack.getContext("2d");
var e = i.devicePixelRatio;
e != 1 && this.ctxBack.scale(e, e)
},
u.prototype.resize = function (e, t) {
var n = i.devicePixelRatio;
this.dom.style.width = e + "px",
this.dom.style.height = t + "px",
this.dom.setAttribute("width", e * n),
this.dom.setAttribute("height", t * n),
n != 1 && this.ctx.scale(n, n),
this.domBack && (this.domBack.setAttribute("width", e * n), this.domBack.setAttribute("height", t * n), n != 1 && this.ctxBack.scale(n, n))
},
u.prototype.clear = function () {
var e = this.dom,
t = this.ctx,
n = e.width,
s = e.height,
o = this.clearColor && !r,
u = this.motionBlur && !r,
a = this.lastFrameAlpha,
f = i.devicePixelRatio;
u && (this.domBack || this.createBackBuffer(), this.ctxBack.globalCompositeOperation = "copy", this.ctxBack.drawImage(e, 0, 0, n / f, s / f)),
t.clearRect(0, 0, n / f, s / f),
o && (t.save(), t.fillStyle = this.clearColor, t.fillRect(0, 0, n / f, s / f), t.restore());
if (u) {
var l = this.domBack;
t.save(),
t.globalAlpha = a,
t.drawImage(l, 0, 0, n / f, s / f),
t.restore()
}
},
n.merge(u.prototype, t.prototype),
u
}),
define("zrender/shape/Image", ["require", "./Base", "../tool/util"],
function (e) {
var t = e("./Base"),
n = function (e) {
t.call(this, e)
};
return n.prototype = {
type: "image",
brush: function (e, t, n) {
var r = this.style || {};
t && (r = this.getHighlightStyle(r, this.highlightStyle || {}));
var i = r.image,
s = this;
this._imageCache || (this._imageCache = {});
if (typeof i == "string") {
var o = i;
this._imageCache[o] ? i = this._imageCache[o] : (i = new Image, i.onload = function () {
i.onload = null,
s.modSelf(),
n()
},
i.src = o, this._imageCache[o] = i)
}
if (i) {
if (i.nodeName.toUpperCase() == "IMG") if (window.ActiveXObject) {
if (i.readyState != "complete") return
} else if (!i.complete) return;
var u = r.width || i.width,
a = r.height || i.height,
f = r.x,
l = r.y;
if (!i.width || !i.height) return;
e.save(),
this.doClip(e),
this.setContext(e, r),
this.setTransform(e);
if (r.sWidth && r.sHeight) {
var c = r.sx || 0,
h = r.sy || 0;
e.drawImage(i, c, h, r.sWidth, r.sHeight, f, l, u, a)
} else if (r.sx && r.sy) {
var c = r.sx,
h = r.sy,
p = u - c,
d = a - h;
e.drawImage(i, c, h, p, d, f, l, u, a)
} else e.drawImage(i, f, l, u, a);
r.width || (r.width = u),
r.height || (r.height = a),
this.style.width || (this.style.width = u),
this.style.height || (this.style.height = a),
this.drawText(e, r, this.style),
e.restore()
}
},
getRect: function (e) {
return {
x: e.x,
y: e.y,
width: e.width,
height: e.height
}
},
clearCache: function () {
this._imageCache = {}
}
},
e("../tool/util").inherits(n, t),
n
}),
define("zrender/Painter", ["require", "./config", "./tool/util", "./tool/log", "./loadingEffect/Base", "./Layer", "./shape/Image"],
function (e) {
function o() {
return !1
}
function u() { }
function a(e) {
return e ? e.isBuildin ? !0 : typeof e.resize != "function" || typeof e.refresh != "function" ? !1 : !0 : !1
}
var t = e("./config"),
n = e("./tool/util"),
r = e("./tool/log"),
i = e("./loadingEffect/Base"),
s = e("./Layer"),
f = function (e, n) {
this.root = e,
e.style["-webkit-tap-highlight-color"] = "transparent",
e.style["-webkit-user-select"] = "none",
e.style["user-select"] = "none",
e.style["-webkit-touch-callout"] = "none",
this.storage = n,
e.innerHTML = "",
this._width = this._getWidth(),
this._height = this._getHeight();
var r = document.createElement("div");
this._domRoot = r,
r.style.position = "relative",
r.style.overflow = "hidden",
r.style.width = this._width + "px",
r.style.height = this._height + "px",
e.appendChild(r),
this._layers = {},
this._zlevelList = [],
this._layerConfig = {},
this._loadingEffect = new i({}),
this.shapeToImage = this._createShapeToImageProcessor(),
this._bgDom = document.createElement("div"),
this._bgDom.style.cssText = ["position:absolute;left:0px;top:0px;width:", this._width, "px;height:", this._height + "px;", "-webkit-user-select:none;user-select;none;", "-webkit-touch-callout:none;"].join(""),
this._bgDom.setAttribute("data-zr-dom-id", "bg"),
this._bgDom.className = t.elementClassName,
r.appendChild(this._bgDom),
this._bgDom.onselectstart = o;
var u = new s("_zrender_hover_", this);
this._layers.hover = u,
r.appendChild(u.dom),
u.initContext(),
u.dom.onselectstart = o,
u.dom.style["-webkit-user-select"] = "none",
u.dom.style["user-select"] = "none",
u.dom.style["-webkit-touch-callout"] = "none",
this.refreshNextFrame = null
};
return f.prototype.render = function (e) {
return this.isLoading() && this.hideLoading(),
this.refresh(e, !0),
this
},
f.prototype.refresh = function (e, t) {
var n = this.storage.getShapeList(!0);
this._paintList(n, t);
for (var r = 0; r < this._zlevelList.length; r++) {
var i = this._zlevelList[r],
s = this._layers[i]; !s.isBuildin && s.refresh && s.refresh()
}
return typeof e == "function" && e(),
this
},
f.prototype._preProcessLayer = function (e) {
e.unusedCount++,
e.updateTransform()
},
f.prototype._postProcessLayer = function (e) {
e.dirty = !1,
e.unusedCount == 1 && e.clear()
},
f.prototype._paintList = function (e, n) {
typeof n == "undefined" && (n = !1),
this._updateLayerStatus(e);
var i, s, o;
this.eachBuildinLayer(this._preProcessLayer);
for (var u = 0,
a = e.length; u < a; u++) {
var f = e[u];
s !== f.zlevel && (i && (i.needTransform && o.restore(), o.flush && o.flush()), s = f.zlevel, i = this.getLayer(s), i.isBuildin || r("ZLevel " + s + " has been used by unkown layer " + i.id), o = i.ctx, i.unusedCount = 0, (i.dirty || n) && i.clear(), i.needTransform && (o.save(), i.setTransform(o)));
if ((i.dirty || n) && !f.invisible) if (!f.onbrush || f.onbrush && !f.onbrush(o, !1)) if (t.catchBrushException) try {
f.brush(o, !1, this.refreshNextFrame)
} catch (l) {
r(l, "brush error of " + f.type, f)
} else f.brush(o, !1, this.refreshNextFrame);
f.__dirty = !1
}
i && (i.needTransform && o.restore(), o.flush && o.flush()),
this.eachBuildinLayer(this._postProcessLayer)
},
f.prototype.getLayer = function (e) {
var t = this._layers[e];
return t || (t = new s(e, this), t.isBuildin = !0, this._layerConfig[e] && n.merge(t, this._layerConfig[e], !0), t.updateTransform(), this.insertLayer(e, t), t.initContext()),
t
},
f.prototype.insertLayer = function (e, t) {
if (this._layers[e]) {
r("ZLevel " + e + " has been used already");
return
}
if (!a(t)) {
r("Layer of zlevel " + e + " is not valid");
return
}
var n = this._zlevelList.length,
i = null,
s = -1;
if (n > 0 && e > this._zlevelList[0]) {
for (s = 0; s < n - 1; s++) if (this._zlevelList[s] < e && this._zlevelList[s + 1] > e) break;
i = this._layers[this._zlevelList[s]]
}
this._zlevelList.splice(s + 1, 0, e);
var o = i ? i.dom : this._bgDom;
o.nextSibling ? o.parentNode.insertBefore(t.dom, o.nextSibling) : o.parentNode.appendChild(t.dom),
this._layers[e] = t
},
f.prototype.eachLayer = function (e, t) {
for (var n = 0; n < this._zlevelList.length; n++) {
var r = this._zlevelList[n];
e.call(t, this._layers[r], r)
}
},
f.prototype.eachBuildinLayer = function (e, t) {
for (var n = 0; n < this._zlevelList.length; n++) {
var r = this._zlevelList[n],
i = this._layers[r];
i.isBuildin && e.call(t, i, r)
}
},
f.prototype.eachOtherLayer = function (e, t) {
for (var n = 0; n < this._zlevelList.length; n++) {
var r = this._zlevelList[n],
i = this._layers[r];
i.isBuildin || e.call(t, i, r)
}
},
f.prototype.getLayers = function () {
return this._layers
},
f.prototype._updateLayerStatus = function (e) {
var t = this._layers,
n = {};
this.eachBuildinLayer(function (e, t) {
n[t] = e.elCount,
e.elCount = 0
});
for (var r = 0,
i = e.length; r < i; r++) {
var s = e[r],
o = s.zlevel,
u = t[o];
if (u) {
u.elCount++;
if (u.dirty) continue;
u.dirty = s.__dirty
}
}
this.eachBuildinLayer(function (e, t) {
n[t] !== e.elCount && (e.dirty = !0)
})
},
f.prototype.refreshShapes = function (e, t) {
for (var n = 0,
r = e.length; n < r; n++) {
var i = e[n];
i.modSelf()
}
return this.refresh(t),
this
},
f.prototype.setLoadingEffect = function (e) {
return this._loadingEffect = e,
this
},
f.prototype.clear = function () {
return this.eachBuildinLayer(this._clearLayer),
this
},
f.prototype._clearLayer = function (e) {
e.clear()
},
f.prototype.modLayer = function (e, t) {
if (t) {
this._layerConfig[e] ? n.merge(this._layerConfig[e], t, !0) : this._layerConfig[e] = t;
var r = this._layers[e];
r && n.merge(r, this._layerConfig[e], !0)
}
},
f.prototype.delLayer = function (e) {
var t = this._layers[e];
if (!t) return;
this.modLayer(e, {
position: t.position,
rotation: t.rotation,
scale: t.scale
}),
t.dom.parentNode.removeChild(t.dom),
delete this._layers[e],
this._zlevelList.splice(n.indexOf(this._zlevelList, e), 1)
},
f.prototype.refreshHover = function () {
this.clearHover();
var e = this.storage.getHoverShapes(!0);
for (var t = 0,
n = e.length; t < n; t++) this._brushHover(e[t]);
var r = this._layers.hover.ctx;
return r.flush && r.flush(),
this.storage.delHover(),
this
},
f.prototype.clearHover = function () {
var e = this._layers.hover;
return e && e.clear(),
this
},
f.prototype.showLoading = function (e) {
return this._loadingEffect && this._loadingEffect.stop(),
e && this.setLoadingEffect(e),
this._loadingEffect.start(this),
this.loading = !0,
this
},
f.prototype.hideLoading = function () {
return this._loadingEffect.stop(),
this.clearHover(),
this.loading = !1,
this
},
f.prototype.isLoading = function () {
return this.loading
},
f.prototype.resize = function () {
var e = this._domRoot;
e.style.display = "none";
var t = this._getWidth(),
n = this._getHeight();
e.style.display = "";
if (this._width != t || n != this._height) {
this._width = t,
this._height = n,
e.style.width = t + "px",
e.style.height = n + "px";
for (var r in this._layers) this._layers[r].resize(t, n);
this.refresh(null, !0)
}
return this
},
f.prototype.clearLayer = function (e) {
var t = this._layers[e];
t && t.clear()
},
f.prototype.dispose = function () {
this.isLoading() && this.hideLoading(),
this.root.innerHTML = "",
this.root = this.storage = this._domRoot = this._layers = null
},
f.prototype.getDomHover = function () {
return this._layers.hover.dom
},
f.prototype.toDataURL = function (e, n, i) {
if (window.G_vmlCanvasManager) return null;
var o = new s("image", this);
this._bgDom.appendChild(o.dom),
o.initContext();
var u = o.ctx;
o.clearColor = n || "#fff",
o.clear();
var a = this;
this.storage.iterShape(function (e) {
if (!e.invisible) if (!e.onbrush || e.onbrush && !e.onbrush(u, !1)) if (t.catchBrushException) try {
e.brush(u, !1, a.refreshNextFrame)
} catch (n) {
r(n, "brush error of " + e.type, e)
} else e.brush(u, !1, a.refreshNextFrame)
},
{
normal: "up",
update: !0
});
var f = o.dom.toDataURL(e, i);
return u = null,
this._bgDom.removeChild(o.dom),
f
},
f.prototype.getWidth = function () {
return this._width
},
f.prototype.getHeight = function () {
return this._height
},
f.prototype._getWidth = function () {
var e = this.root,
t = e.currentStyle || document.defaultView.getComputedStyle(e);
return ((e.clientWidth || parseInt(t.width, 10)) - parseInt(t.paddingLeft, 10) - parseInt(t.paddingRight, 10)).toFixed(0) - 0
},
f.prototype._getHeight = function () {
var e = this.root,
t = e.currentStyle || document.defaultView.getComputedStyle(e);
return ((e.clientHeight || parseInt(t.height, 10)) - parseInt(t.paddingTop, 10) - parseInt(t.paddingBottom, 10)).toFixed(0) - 0
},
f.prototype._brushHover = function (e) {
var n = this._layers.hover.ctx;
if (!e.onbrush || e.onbrush && !e.onbrush(n, !0)) {
var i = this.getLayer(e.zlevel);
i.needTransform && (n.save(), i.setTransform(n));
if (t.catchBrushException) try {
e.brush(n, !0, this.refreshNextFrame)
} catch (s) {
r(s, "hoverBrush error of " + e.type, e)
} else e.brush(n, !0, this.refreshNextFrame);
i.needTransform && n.restore()
}
},
f.prototype._shapeToImage = function (t, n, r, i, s) {
var o = document.createElement("canvas"),
u = o.getContext("2d");
o.style.width = r + "px",
o.style.height = i + "px",
o.setAttribute("width", r * s),
o.setAttribute("height", i * s),
u.clearRect(0, 0, r * s, i * s);
var a = {
position: n.position,
rotation: n.rotation,
scale: n.scale
};
n.position = [0, 0, 0],
n.rotation = 0,
n.scale = [1, 1],
n && n.brush(u, !1);
var f = e("./shape/Image"),
l = new f({
id: t,
style: {
x: 0,
y: 0,
image: o
}
});
return a.position != null && (l.position = n.position = a.position),
a.rotation != null && (l.rotation = n.rotation = a.rotation),
a.scale != null && (l.scale = n.scale = a.scale),
l
},
f.prototype._createShapeToImageProcessor = function () {
if (window.G_vmlCanvasManager) return u;
var e = this;
return function (n, r, i, s) {
return e._shapeToImage(n, r, i, s, t.devicePixelRatio)
}
},
f
}),
define("zrender/Group", ["require", "./tool/guid", "./tool/util", "./mixin/Transformable", "./mixin/Eventful"],
function (e) {
var t = e("./tool/guid"),
n = e("./tool/util"),
r = e("./mixin/Transformable"),
i = e("./mixin/Eventful"),
s = function (e) {
e = e || {},
this.id = e.id || t();
for (var n in e) this[n] = e[n];
this.type = "group",
this.clipShape = null,
this._children = [],
this._storage = null,
this.__dirty = !0,
r.call(this),
i.call(this)
};
return s.prototype.ignore = !1,
s.prototype.children = function () {
return this._children.slice()
},
s.prototype.childAt = function (e) {
return this._children[e]
},
s.prototype.addChild = function (e) {
if (e == this) return;
if (e.parent == this) return;
e.parent && e.parent.removeChild(e),
this._children.push(e),
e.parent = this,
this._storage && this._storage !== e._storage && (this._storage.addToMap(e), e instanceof s && e.addChildrenToStorage(this._storage))
},
s.prototype.removeChild = function (e) {
var t = n.indexOf(this._children, e);
t >= 0 && this._children.splice(t, 1),
e.parent = null,
this._storage && (this._storage.delFromMap(e.id), e instanceof s && e.delChildrenFromStorage(this._storage))
},
s.prototype.clearChildren = function () {
for (var e = 0; e < this._children.length; e++) {
var t = this._children[e];
this._storage && (this._storage.delFromMap(t.id), t instanceof s && t.delChildrenFromStorage(this._storage))
}
this._children.length = 0
},
s.prototype.eachChild = function (e, t) {
var n = !!t;
for (var r = 0; r < this._children.length; r++) {
var i = this._children[r];
n ? e.call(t, i) : e(i)
}
},
s.prototype.traverse = function (e, t) {
var n = !!t;
for (var r = 0; r < this._children.length; r++) {
var i = this._children[r];
n ? e.call(t, i) : e(i),
i.type === "group" && i.traverse(e, t)
}
},
s.prototype.addChildrenToStorage = function (e) {
for (var t = 0; t < this._children.length; t++) {
var n = this._children[t];
e.addToMap(n),
n instanceof s && n.addChildrenToStorage(e)
}
},
s.prototype.delChildrenFromStorage = function (e) {
for (var t = 0; t < this._children.length; t++) {
var n = this._children[t];
e.delFromMap(n.id),
n instanceof s && n.delChildrenFromStorage(e)
}
},
s.prototype.modSelf = function () {
this.__dirty = !0
},
n.merge(s.prototype, r.prototype, !0),
n.merge(s.prototype, i.prototype, !0),
s
}),
define("zrender/Storage", ["require", "./tool/util", "./Group"],
function (e) {
function i(e, t) {
return e.zlevel == t.zlevel ? e.z == t.z ? e.__renderidx - t.__renderidx : e.z - t.z : e.zlevel - t.zlevel
}
var t = e("./tool/util"),
n = e("./Group"),
r = {
hover: !1,
normal: "down",
update: !1
},
s = function () {
this._elements = {},
this._hoverElements = [],
this._roots = [],
this._shapeList = [],
this._shapeListOffset = 0
};
return s.prototype.iterShape = function (e, t) {
t || (t = r);
if (t.hover) for (var n = 0,
i = this._hoverElements.length; n < i; n++) {
var s = this._hoverElements[n];
s.updateTransform();
if (e(s)) return this
}
t.update && this.updateShapeList();
switch (t.normal) {
case "down":
var i = this._shapeList.length;
while (i--) if (e(this._shapeList[i])) return this;
break;
default:
for (var n = 0,
i = this._shapeList.length; n < i; n++) if (e(this._shapeList[n])) return this
}
return this
},
s.prototype.getHoverShapes = function (e) {
var t = [];
for (var n = 0,
r = this._hoverElements.length; n < r; n++) {
t.push(this._hoverElements[n]);
var s = this._hoverElements[n].hoverConnect;
if (s) {
var o;
s = s instanceof Array ? s : [s];
for (var u = 0,
a = s.length; u < a; u++) o = s[u].id ? s[u] : this.get(s[u]),
o && t.push(o)
}
}
t.sort(i);
if (e) for (var n = 0,
r = t.length; n < r; n++) t[n].updateTransform();
return t
},
s.prototype.getShapeList = function (e) {
return e && this.updateShapeList(),
this._shapeList
},
s.prototype.updateShapeList = function () {
this._shapeListOffset = 0;
for (var e = 0,
t = this._roots.length; e < t; e++) {
var n = this._roots[e];
this._updateAndAddShape(n)
}
this._shapeList.length = this._shapeListOffset;
for (var e = 0,
t = this._shapeList.length; e < t; e++) this._shapeList[e].__renderidx = e;
this._shapeList.sort(i)
},
s.prototype._updateAndAddShape = function (e, t) {
if (e.ignore) return;
e.updateTransform(),
e.clipShape && (e.clipShape.parent = e, e.clipShape.updateTransform(), t ? (t = t.slice(), t.push(e.clipShape)) : t = [e.clipShape]);
if (e.type == "group") {
for (var n = 0; n < e._children.length; n++) {
var r = e._children[n];
r.__dirty = e.__dirty || r.__dirty,
this._updateAndAddShape(r, t)
}
e.__dirty = !1
} else e.__clipShapes = t,
this._shapeList[this._shapeListOffset++] = e
},
s.prototype.mod = function (e, n) {
typeof e == "string" && (e = this._elements[e]);
if (e) {
e.modSelf();
if (n) if (n.parent || n._storage || n.__clipShapes) {
var r = {};
for (var i in n) {
if (i === "parent" || i === "_storage" || i === "__clipShapes") continue;
n.hasOwnProperty(i) && (r[i] = n[i])
}
t.merge(e, r, !0)
} else t.merge(e, n, !0)
}
return this
},
s.prototype.drift = function (e, t, n) {
var r = this._elements[e];
return r && (r.needTransform = !0, r.draggable === "horizontal" ? n = 0 : r.draggable === "vertical" && (t = 0), (!r.ondrift || r.ondrift && !r.ondrift(t, n)) && r.drift(t, n)),
this
},
s.prototype.addHover = function (e) {
return e.updateNeedTransform(),
this._hoverElements.push(e),
this
},
s.prototype.delHover = function () {
return this._hoverElements = [],
this
},
s.prototype.hasHoverShape = function () {
return this._hoverElements.length > 0
},
s.prototype.addRoot = function (e) {
if (this._elements[e.id]) return;
e instanceof n && e.addChildrenToStorage(this),
this.addToMap(e),
this._roots.push(e)
},
s.prototype.delRoot = function (e) {
if (typeof e == "undefined") {
for (var r = 0; r < this._roots.length; r++) {
var i = this._roots[r];
i instanceof n && i.delChildrenFromStorage(this)
}
this._elements = {},
this._hoverElements = [],
this._roots = [],
this._shapeList = [],
this._shapeListOffset = 0;
return
}
if (e instanceof Array) {
for (var r = 0,
s = e.length; r < s; r++) this.delRoot(e[r]);
return
}
var o;
typeof e == "string" ? o = this._elements[e] : o = e;
var u = t.indexOf(this._roots, o);
u >= 0 && (this.delFromMap(o.id), this._roots.splice(u, 1), o instanceof n && o.delChildrenFromStorage(this))
},
s.prototype.addToMap = function (e) {
return e instanceof n && (e._storage = this),
e.modSelf(),
this._elements[e.id] = e,
this
},
s.prototype.get = function (e) {
return this._elements[e]
},
s.prototype.delFromMap = function (e) {
var t = this._elements[e];
return t && (delete this._elements[e], t instanceof n && (t._storage = null)),
this
},
s.prototype.dispose = function () {
this._elements = this._renderList = this._roots = this._hoverElements = null
},
s
}),
define("zrender/animation/easing", [],
function () {
var e = {
Linear: function (e) {
return e
},
QuadraticIn: function (e) {
return e * e
},
QuadraticOut: function (e) {
return e * (2 - e)
},
QuadraticInOut: function (e) {
return (e *= 2) < 1 ? .5 * e * e : -0.5 * (--e * (e - 2) - 1)
},
CubicIn: function (e) {
return e * e * e
},
CubicOut: function (e) {
return --e * e * e + 1
},
CubicInOut: function (e) {
return (e *= 2) < 1 ? .5 * e * e * e : .5 * ((e -= 2) * e * e + 2)
},
QuarticIn: function (e) {
return e * e * e * e
},
QuarticOut: function (e) {
return 1 - --e * e * e * e
},
QuarticInOut: function (e) {
return (e *= 2) < 1 ? .5 * e * e * e * e : -0.5 * ((e -= 2) * e * e * e - 2)
},
QuinticIn: function (e) {
return e * e * e * e * e
},
QuinticOut: function (e) {
return --e * e * e * e * e + 1
},
QuinticInOut: function (e) {
return (e *= 2) < 1 ? .5 * e * e * e * e * e : .5 * ((e -= 2) * e * e * e * e + 2)
},
SinusoidalIn: function (e) {
return 1 - Math.cos(e * Math.PI / 2)
},
SinusoidalOut: function (e) {
return Math.sin(e * Math.PI / 2)
},
SinusoidalInOut: function (e) {
return .5 * (1 - Math.cos(Math.PI * e))
},
ExponentialIn: function (e) {
return e === 0 ? 0 : Math.pow(1024, e - 1)
},
ExponentialOut: function (e) {
return e === 1 ? 1 : 1 - Math.pow(2, -10 * e)
},
ExponentialInOut: function (e) {
return e === 0 ? 0 : e === 1 ? 1 : (e *= 2) < 1 ? .5 * Math.pow(1024, e - 1) : .5 * (-Math.pow(2, -10 * (e - 1)) + 2)
},
CircularIn: function (e) {
return 1 - Math.sqrt(1 - e * e)
},
CircularOut: function (e) {
return Math.sqrt(1 - --e * e)
},
CircularInOut: function (e) {
return (e *= 2) < 1 ? -0.5 * (Math.sqrt(1 - e * e) - 1) : .5 * (Math.sqrt(1 - (e -= 2) * e) + 1)
},
ElasticIn: function (e) {
var t, n = .1,
r = .4;
return e === 0 ? 0 : e === 1 ? 1 : (!n || n < 1 ? (n = 1, t = r / 4) : t = r * Math.asin(1 / n) / (2 * Math.PI), -(n * Math.pow(2, 10 * (e -= 1)) * Math.sin((e - t) * 2 * Math.PI / r)))
},
ElasticOut: function (e) {
var t, n = .1,
r = .4;
return e === 0 ? 0 : e === 1 ? 1 : (!n || n < 1 ? (n = 1, t = r / 4) : t = r * Math.asin(1 / n) / (2 * Math.PI), n * Math.pow(2, -10 * e) * Math.sin((e - t) * 2 * Math.PI / r) + 1)
},
ElasticInOut: function (e) {
var t, n = .1,
r = .4;
return e === 0 ? 0 : e === 1 ? 1 : (!n || n < 1 ? (n = 1, t = r / 4) : t = r * Math.asin(1 / n) / (2 * Math.PI), (e *= 2) < 1 ? -0.5 * n * Math.pow(2, 10 * (e -= 1)) * Math.sin((e - t) * 2 * Math.PI / r) : n * Math.pow(2, -10 * (e -= 1)) * Math.sin((e - t) * 2 * Math.PI / r) * .5 + 1)
},
BackIn: function (e) {
var t = 1.70158;
return e * e * ((t + 1) * e - t)
},
BackOut: function (e) {
var t = 1.70158;
return --e * e * ((t + 1) * e + t) + 1
},
BackInOut: function (e) {
var t = 2.5949095;
return (e *= 2) < 1 ? .5 * e * e * ((t + 1) * e - t) : .5 * ((e -= 2) * e * ((t + 1) * e + t) + 2)
},
BounceIn: function (t) {
return 1 - e.BounceOut(1 - t)
},
BounceOut: function (e) {
return e < 1 / 2.75 ? 7.5625 * e * e : e < 2 / 2.75 ? 7.5625 * (e -= 1.5 / 2.75) * e + .75 : e < 2.5 / 2.75 ? 7.5625 * (e -= 2.25 / 2.75) * e + .9375 : 7.5625 * (e -= 2.625 / 2.75) * e + .984375
},
BounceInOut: function (t) {
return t < .5 ? e.BounceIn(t * 2) * .5 : e.BounceOut(t * 2 - 1) * .5 + .5
}
};
return e
}),
define("zrender/animation/Clip", ["require", "./easing"],
function (e) {
function n(e) {
this._targetPool = e.target || {},
this._targetPool instanceof Array || (this._targetPool = [this._targetPool]),
this._life = e.life || 1e3,
this._delay = e.delay || 0,
this._startTime = (new Date).getTime() + this._delay,
this._endTime = this._startTime + this._life * 1e3,
this.loop = typeof e.loop == "undefined" ? !1 : e.loop,
this.gap = e.gap || 0,
this.easing = e.easing || "Linear",
this.onframe = e.onframe,
this.ondestroy = e.ondestroy,
this.onrestart = e.onrestart
}
var t = e("./easing");
return n.prototype = {
step: function (e) {
var n = (e - this._startTime) / this._life;
if (n < 0) return;
n = Math.min(n, 1);
var r = typeof this.easing == "string" ? t[this.easing] : this.easing,
i = typeof r == "function" ? r(n) : n;
return this.fire("frame", i),
n == 1 ? this.loop ? (this.restart(), "restart") : (this._needsRemove = !0, "destroy") : null
},
restart: function () {
var e = (new Date).getTime(),
t = (e - this._startTime) % this._life;
this._startTime = (new Date).getTime() - t + this.gap,
this._needsRemove = !1
},
fire: function (e, t) {
for (var n = 0,
r = this._targetPool.length; n < r; n++) this["on" + e] && this["on" + e](this._targetPool[n], t)
},
constructor: n
},
n
}),
define("zrender/animation/Animation", ["require", "./Clip", "../tool/color", "../tool/util", "../tool/event"],
function (e) {
function a(e, t) {
return e[t]
}
function f(e, t, n) {
e[t] = n
}
function l(e, t, n) {
return (t - e) * n + e
}
function c(e, t, n, r, i) {
var s = e.length;
if (i == 1) for (var o = 0; o < s; o++) r[o] = l(e[o], t[o], n);
else {
var u = e[0].length;
for (var o = 0; o < s; o++) for (var a = 0; a < u; a++) r[o][a] = l(e[o][a], t[o][a], n)
}
}
function h(e) {
switch (typeof e) {
case "undefined":
case "string":
return !1
}
return typeof e.length != "undefined"
}
function p(e, t, n, r, i, s, o, u, a) {
var f = e.length;
if (a == 1) for (var l = 0; l < f; l++) u[l] = d(e[l], t[l], n[l], r[l], i, s, o);
else {
var c = e[0].length;
for (var l = 0; l < f; l++) for (var h = 0; h < c; h++) u[l][h] = d(e[l][h], t[l][h], n[l][h], r[l][h], i, s, o)
}
}
function d(e, t, n, r, i, s, o) {
var u = (n - e) * .5,
a = (r - t) * .5;
return (2 * (t - n) + u + a) * o + (-3 * (t - n) - 2 * u - a) * s + u * i + t
}
function v(e) {
if (h(e)) {
var t = e.length;
if (h(e[0])) {
var n = [];
for (var r = 0; r < t; r++) n.push(o.call(e[r]));
return n
}
return o.call(e)
}
return e
}
function m(e) {
return e[0] = Math.floor(e[0]),
e[1] = Math.floor(e[1]),
e[2] = Math.floor(e[2]),
"rgba(" + e.join(",") + ")"
}
var t = e("./Clip"),
n = e("../tool/color"),
r = e("../tool/util"),
i = e("../tool/event").Dispatcher,
s = window.requestAnimationFrame || window.msRequestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame ||
function (e) {
setTimeout(e, 16)
},
o = Array.prototype.slice,
u = function (e) {
e = e || {},
this.stage = e.stage || {},
this.onframe = e.onframe ||
function () { },
this._clips = [],
this._running = !1,
this._time = 0,
i.call(this)
};
u.prototype = {
add: function (e) {
this._clips.push(e)
},
remove: function (e) {
var t = r.indexOf(this._clips, e);
t >= 0 && this._clips.splice(t, 1)
},
_update: function () {
var e = (new Date).getTime(),
t = e - this._time,
n = this._clips,
r = n.length,
i = [],
s = [];
for (var o = 0; o < r; o++) {
var u = n[o],
a = u.step(e);
a && (i.push(a), s.push(u))
}
for (var o = 0; o < r; ) n[o]._needsRemove ? (n[o] = n[r - 1], n.pop(), r--) : o++;
r = i.length;
for (var o = 0; o < r; o++) s[o].fire(i[o]);
this._time = e,
this.onframe(t),
this.dispatch("frame", t),
this.stage.update && this.stage.update()
},
start: function () {
function t() {
e._running && (s(t), e._update())
}
var e = this;
this._running = !0,
this._time = (new Date).getTime(),
s(t)
},
stop: function () {
this._running = !1
},
clear: function () {
this._clips = []
},
animate: function (e, t) {
t = t || {};
var n = new g(e, t.loop, t.getter, t.setter);
return n.animation = this,
n
},
constructor: u
},
r.merge(u.prototype, i.prototype, !0);
var g = function (e, t, n, r) {
this._tracks = {},
this._target = e,
this._loop = t || !1,
this._getter = n || a,
this._setter = r || f,
this._clipCount = 0,
this._delay = 0,
this._doneList = [],
this._onframeList = [],
this._clipList = []
};
return g.prototype = {
when: function (e, t) {
for (var n in t) this._tracks[n] || (this._tracks[n] = [], e !== 0 && this._tracks[n].push({
time: 0,
value: v(this._getter(this._target, n))
})),
this._tracks[n].push({
time: parseInt(e, 10),
value: t[n]
});
return this
},
during: function (e) {
return this._onframeList.push(e),
this
},
start: function (e) {
var r = this,
i = this._setter,
s = this._getter,
o = e === "spline",
u = function () {
r._clipCount--;
if (r._clipCount === 0) {
r._tracks = {};
var e = r._doneList.length;
for (var t = 0; t < e; t++) r._doneList[t].call(r)
}
},
a = function (a, f) {
var v = a.length;
if (!v) return;
var g = a[0].value,
y = h(g),
b = !1,
w = y && h(g[0]) ? 2 : 1;
a.sort(function (e, t) {
return e.time - t.time
});
var E;
if (!v) return;
E = a[v - 1].time;
var S = [],
x = [];
for (var T = 0; T < v; T++) {
S.push(a[T].time / E);
var N = a[T].value;
typeof N == "string" && (N = n.toArray(N), N.length === 0 && (N[0] = N[1] = N[2] = 0, N[3] = 1), b = !0),
x.push(N)
}
var C = 0,
k = 0,
L, T, A, O, M, _, D;
if (b) var P = [0, 0, 0, 0];
var H = function (e, t) {
if (t < k) {
L = Math.min(C + 1, v - 1);
for (T = L; T >= 0; T--) if (S[T] <= t) break;
T = Math.min(T, v - 2)
} else {
for (T = C; T < v; T++) if (S[T] > t) break;
T = Math.min(T - 1, v - 2)
}
C = T,
k = t;
var n = S[T + 1] - S[T];
if (n === 0) return;
A = (t - S[T]) / n;
if (o) {
M = x[T],
O = x[T === 0 ? T : T - 1],
_ = x[T > v - 2 ? v - 1 : T + 1],
D = x[T > v - 3 ? v - 1 : T + 2];
if (y) p(O, M, _, D, A, A * A, A * A * A, s(e, f), w);
else {
var u;
b ? (u = p(O, M, _, D, A, A * A, A * A * A, P, 1), u = m(P)) : u = d(O, M, _, D, A, A * A, A * A * A),
i(e, f, u)
}
} else if (y) c(x[T], x[T + 1], A, s(e, f), w);
else {
var u;
b ? (c(x[T], x[T + 1], A, P, 1), u = m(P)) : u = l(x[T], x[T + 1], A),
i(e, f, u)
}
for (T = 0; T < r._onframeList.length; T++) r._onframeList[T](e, t)
},
B = new t({
target: r._target,
life: E,
loop: r._loop,
delay: r._delay,
onframe: H,
ondestroy: u
});
e && e !== "spline" && (B.easing = e),
r._clipList.push(B),
r._clipCount++,
r.animation.add(B)
};
for (var f in this._tracks) a(this._tracks[f], f);
return this
},
stop: function () {
for (var e = 0; e < this._clipList.length; e++) {
var t = this._clipList[e];
this.animation.remove(t)
}
this._clipList = []
},
delay: function (e) {
return this._delay = e,
this
},
done: function (e) {
return e && this._doneList.push(e),
this
}
},
u
}),
define("zrender/zrender", ["require", "./dep/excanvas", "./tool/util", "./tool/log", "./tool/guid", "./Handler", "./Painter", "./Storage", "./animation/Animation", "./tool/env"],
function (e) {
function l(e) {
return function () {
e._needsRefreshNextFrame && e.refresh()
}
}
e("./dep/excanvas");
var t = e("./tool/util"),
n = e("./tool/log"),
r = e("./tool/guid"),
i = e("./Handler"),
s = e("./Painter"),
o = e("./Storage"),
u = e("./animation/Animation"),
a = {},
f = {};
f.version = "2.1.0",
f.init = function (e) {
var t = new c(r(), e);
return a[t.id] = t,
t
},
f.dispose = function (e) {
if (e) e.dispose();
else {
for (var t in a) a[t].dispose();
a = {}
}
return f
},
f.getInstance = function (e) {
return a[e]
},
f.delInstance = function (e) {
return delete a[e],
f
};
var c = function (t, n) {
this.id = t,
this.env = e("./tool/env"),
this.storage = new o,
this.painter = new s(n, this.storage),
this.handler = new i(n, this.storage, this.painter),
this.animation = new u({
stage: {
update: l(this)
}
}),
this.animation.start();
var r = this;
this.painter.refreshNextFrame = function () {
r.refreshNextFrame()
},
this._needsRefreshNextFrame = !1;
var r = this,
a = this.storage,
f = a.delFromMap;
a.delFromMap = function (e) {
var t = a.get(e);
r.stopAnimation(t),
f.call(a, e)
}
};
return c.prototype.getId = function () {
return this.id
},
c.prototype.addShape = function (e) {
return this.addElement(e),
this
},
c.prototype.addGroup = function (e) {
return this.addElement(e),
this
},
c.prototype.delShape = function (e) {
return this.delElement(e),
this
},
c.prototype.delGroup = function (e) {
return this.delElement(e),
this
},
c.prototype.modShape = function (e, t) {
return this.modElement(e, t),
this
},
c.prototype.modGroup = function (e, t) {
return this.modElement(e, t),
this
},
c.prototype.addElement = function (e) {
return this.storage.addRoot(e),
this._needsRefreshNextFrame = !0,
this
},
c.prototype.delElement = function (e) {
return this.storage.delRoot(e),
this._needsRefreshNextFrame = !0,
this
},
c.prototype.modElement = function (e, t) {
return this.storage.mod(e, t),
this._needsRefreshNextFrame = !0,
this
},
c.prototype.modLayer = function (e, t) {
return this.painter.modLayer(e, t),
this._needsRefreshNextFrame = !0,
this
},
c.prototype.addHoverShape = function (e) {
return this.storage.addHover(e),
this
},
c.prototype.render = function (e) {
return this.painter.render(e),
this._needsRefreshNextFrame = !1,
this
},
c.prototype.refresh = function (e) {
return this.painter.refresh(e),
this._needsRefreshNextFrame = !1,
this
},
c.prototype.refreshNextFrame = function () {
return this._needsRefreshNextFrame = !0,
this
},
c.prototype.refreshHover = function (e) {
return this.painter.refreshHover(e),
this
},
c.prototype.refreshShapes = function (e, t) {
return this.painter.refreshShapes(e, t),
this
},
c.prototype.resize = function () {
return this.painter.resize(),
this
},
c.prototype.animate = function (e, r, i) {
var s = this;
typeof e == "string" && (e = this.storage.get(e));
if (e) {
var o;
if (r) {
var u = r.split("."),
a = e;
for (var f = 0,
l = u.length; f < l; f++) {
if (!a) continue;
a = a[u[f]]
}
a && (o = a)
} else o = e;
if (!o) {
n('Property "' + r + '" is not existed in element ' + e.id);
return
}
e.__animators == null && (e.__animators = []);
var c = e.__animators,
h = this.animation.animate(o, {
loop: i
}).during(function () {
s.modShape(e)
}).done(function () {
var n = t.indexOf(e.__animators, h);
n >= 0 && c.splice(n, 1)
});
return c.push(h),
h
}
n("Element not existed")
},
c.prototype.stopAnimation = function (e) {
if (e.__animators) {
var t = e.__animators,
n = t.length;
for (var r = 0; r < n; r++) t[r].stop();
t.length = 0
}
return this
},
c.prototype.clearAnimation = function () {
return this.animation.clear(),
this
},
c.prototype.showLoading = function (e) {
return this.painter.showLoading(e),
this
},
c.prototype.hideLoading = function () {
return this.painter.hideLoading(),
this
},
c.prototype.getWidth = function () {
return this.painter.getWidth()
},
c.prototype.getHeight = function () {
return this.painter.getHeight()
},
c.prototype.toDataURL = function (e, t, n) {
return this.painter.toDataURL(e, t, n)
},
c.prototype.shapeToImage = function (e, t, n) {
var i = r();
return this.painter.shapeToImage(i, e, t, n)
},
c.prototype.on = function (e, t, n) {
return this.handler.on(e, t, n),
this
},
c.prototype.un = function (e, t) {
return this.handler.un(e, t),
this
},
c.prototype.trigger = function (e, t) {
return this.handler.trigger(e, t),
this
},
c.prototype.clear = function () {
return this.storage.delRoot(),
this.painter.clear(),
this
},
c.prototype.dispose = function () {
this.animation.stop(),
this.clear(),
this.storage.dispose(),
this.painter.dispose(),
this.handler.dispose(),
this.animation = this.storage = this.painter = this.handler = null,
f.delInstance(this.id)
},
f
}),
define("zrender", ["zrender/zrender"],
function (e) {
return e
}),
define("zrender/tool/math", [],
function () {
function t(t, n) {
return Math.sin(n ? t * e : t)
}
function n(t, n) {
return Math.cos(n ? t * e : t)
}
function r(t) {
return t * e
}
function i(t) {
return t / e
}
var e = Math.PI / 180;
return {
sin: t,
cos: n,
degreeToRadian: r,
radianToDegree: i
}
}),
define("zrender/shape/Rose", ["require", "./Base", "../tool/math", "../tool/util"],
function (e) {
var t = e("./Base"),
n = function (e) {
this.brushTypeOnly = "stroke",
t.call(this, e)
};
return n.prototype = {
type: "rose",
buildPath: function (t, n) {
var r, i, s = n.r,
o, u = n.k,
a = n.n || 1,
f = n.x,
l = n.y,
c = e("../tool/math");
t.moveTo(f, l);
for (var h = 0,
p = s.length; h < p; h++) {
o = s[h];
for (var d = 0; d <= 360 * a; d++) r = o * c.sin(u / a * d % 360, !0) * c.cos(d, !0) + f,
i = o * c.sin(u / a * d % 360, !0) * c.sin(d, !0) + l,
t.lineTo(r, i)
}
},
getRect: function (e) {
if (e.__rect) return e.__rect;
var t = e.r,
n = e.x,
r = e.y,
i = 0;
for (var s = 0,
o = t.length; s < o; s++) t[s] > i && (i = t[s]);
e.maxr = i;
var u;
return e.brushType == "stroke" || e.brushType == "fill" ? u = e.lineWidth || 1 : u = 0,
e.__rect = {
x: -i - u + n,
y: -i - u + r,
width: 2 * i + 3 * u,
height: 2 * i + 3 * u
},
e.__rect
}
},
e("../tool/util").inherits(n, t),
n
}),
define("zrender/shape/Trochoid", ["require", "./Base", "../tool/math", "../tool/util"],
function (e) {
var t = e("./Base"),
n = function (e) {
this.brushTypeOnly = "stroke",
t.call(this, e)
};
return n.prototype = {
type: "trochoid",
buildPath: function (t, n) {
var r, i, s, o, u = n.r,
a = n.r0,
f = n.d,
l = n.x,
c = n.y,
h = n.location == "out" ? 1 : -1,
p = e("../tool/math");
if (n.location && u <= a) {
alert("参数错误");
return
}
var d = 0,
v = 1,
m;
r = (u + h * a) * p.cos(0) - h * f * p.cos(0) + l,
i = (u + h * a) * p.sin(0) - f * p.sin(0) + c,
t.moveTo(r, i);
do d++;
while (a * d % (u + h * a) !== 0);
do m = Math.PI / 180 * v,
s = (u + h * a) * p.cos(m) - h * f * p.cos((u / a + h) * m) + l,
o = (u + h * a) * p.sin(m) - f * p.sin((u / a + h) * m) + c,
t.lineTo(s, o),
v++;
while (v <= a * d / (u + h * a) * 360)
},
getRect: function (e) {
if (e.__rect) return e.__rect;
var t = e.r,
n = e.r0,
r = e.d,
i = e.location == "out" ? 1 : -1,
s = t + r + i * n,
o = e.x,
u = e.y,
a;
return e.brushType == "stroke" || e.brushType == "fill" ? a = e.lineWidth || 1 : a = 0,
e.__rect = {
x: -s - a + o,
y: -s - a + u,
width: 2 * s + 2 * a,
height: 2 * s + 2 * a
},
e.__rect
}
},
e("../tool/util").inherits(n, t),
n
}),
define("zrender/shape/Circle", ["require", "./Base", "../tool/util"],
function (e) {
var t = e("./Base"),
n = function (e) {
t.call(this, e)
};
return n.prototype = {
type: "circle",
buildPath: function (e, t) {
e.moveTo(t.x + t.r, t.y),
e.arc(t.x, t.y, t.r, 0, Math.PI * 2, !0);
return
},
getRect: function (e) {
if (e.__rect) return e.__rect;
var t;
return e.brushType == "stroke" || e.brushType == "fill" ? t = e.lineWidth || 1 : t = 0,
e.__rect = {
x: Math.round(e.x - e.r - t / 2),
y: Math.round(e.y - e.r - t / 2),
width: e.r * 2 + t,
height: e.r * 2 + t
},
e.__rect
}
},
e("../tool/util").inherits(n, t),
n
}),
define("zrender/tool/computeBoundingBox", ["require", "./vector", "./curve"],
function (e) {
function r(e, t, n) {
if (e.length === 0) return;
var r = e[0][0],
i = e[0][0],
s = e[0][1],
o = e[0][1];
for (var u = 1; u < e.length; u++) {
var a = e[u];
a[0] < r && (r = a[0]),
a[0] > i && (i = a[0]),
a[1] < s && (s = a[1]),
a[1] > o && (o = a[1])
}
t[0] = r,
t[1] = s,
n[0] = i,
n[1] = o
}
function i(e, t, r, i, s, o) {
var u = [];
n.cubicExtrema(e[0], t[0], r[0], i[0], u);
for (var a = 0; a < u.length; a++) u[a] = n.cubicAt(e[0], t[0], r[0], i[0], u[a]);
var f = [];
n.cubicExtrema(e[1], t[1], r[1], i[1], f);
for (var a = 0; a < f.length; a++) f[a] = n.cubicAt(e[1], t[1], r[1], i[1], f[a]);
u.push(e[0], i[0]),
f.push(e[1], i[1]);
var l = Math.min.apply(null, u),
c = Math.max.apply(null, u),
h = Math.min.apply(null, f),
p = Math.max.apply(null, f);
s[0] = l,
s[1] = h,
o[0] = c,
o[1] = p
}
function s(e, t, r, i, s) {
var o = n.quadraticExtremum(e[0], t[0], r[0]),
u = n.quadraticExtremum(e[1], t[1], r[1]);
o = Math.max(Math.min(o, 1), 0),
u = Math.max(Math.min(u, 1), 0);
var a = 1 - o,
f = 1 - u,
l = a * a * e[0] + 2 * a * o * t[0] + o * o * r[0],
c = a * a * e[1] + 2 * a * o * t[1] + o * o * r[1],
h = f * f * e[0] + 2 * f * u * t[0] + u * u * r[0],
p = f * f * e[1] + 2 * f * u * t[1] + u * u * r[1];
i[0] = Math.min(e[0], r[0], l, h),
i[1] = Math.min(e[1], r[1], c, p),
s[0] = Math.max(e[0], r[0], l, h),
s[1] = Math.max(e[1], r[1], c, p)
}
var t = e("./vector"),
n = e("./curve"),
o = t.create(),
u = t.create(),
a = t.create(),
f = function (e, n, r, i, s, f, l, c) {
if (Math.abs(i - s) >= Math.PI * 2) {
l[0] = e - r,
l[1] = n - r,
c[0] = e + r,
c[1] = n + r;
return
}
o[0] = Math.cos(i) * r + e,
o[1] = Math.sin(i) * r + n,
u[0] = Math.cos(s) * r + e,
u[1] = Math.sin(s) * r + n,
t.min(l, o, u),
t.max(c, o, u),
i %= Math.PI * 2,
i < 0 && (i += Math.PI * 2),
s %= Math.PI * 2,
s < 0 && (s += Math.PI * 2),
i > s && !f ? s += Math.PI * 2 : i < s && f && (i += Math.PI * 2);
if (f) {
var h = s;
s = i,
i = h
}
for (var p = 0; p < s; p += Math.PI / 2) p > i && (a[0] = Math.cos(p) * r + e, a[1] = Math.sin(p) * r + n, t.min(l, a, l), t.max(c, a, c))
};
return r.cubeBezier = i,
r.quadraticBezier = s,
r.arc = f,
r
}),
define("zrender/shape/Sector", ["require", "../tool/math", "../tool/computeBoundingBox", "../tool/vector", "./Base", "../tool/util"],
function (e) {
var t = e("../tool/math"),
n = e("../tool/computeBoundingBox"),
r = e("../tool/vector"),
i = e("./Base"),
s = r.create(),
o = r.create(),
u = r.create(),
a = r.create(),
f = function (e) {
i.call(this, e)
};
return f.prototype = {
type: "sector",
buildPath: function (e, n) {
var r = n.x,
i = n.y,
s = n.r0 || 0,
o = n.r,
u = n.startAngle,
a = n.endAngle,
f = n.clockWise || !1;
u = t.degreeToRadian(u),
a = t.degreeToRadian(a),
f || (u = -u, a = -a);
var l = t.cos(u),
c = t.sin(u);
e.moveTo(l * s + r, c * s + i),
e.lineTo(l * o + r, c * o + i),
e.arc(r, i, o, u, a, !f),
e.lineTo(t.cos(a) * s + r, t.sin(a) * s + i),
s !== 0 && e.arc(r, i, s, a, u, f),
e.closePath();
return
},
getRect: function (e) {
if (e.__rect) return e.__rect;
var i = e.x,
f = e.y,
l = e.r0 || 0,
c = e.r,
h = t.degreeToRadian(e.startAngle),
p = t.degreeToRadian(e.endAngle),
d = e.clockWise;
return d || (h = -h, p = -p),
l > 1 ? n.arc(i, f, l, h, p, !d, s, u) : (s[0] = u[0] = i, s[1] = u[1] = f),
n.arc(i, f, c, h, p, !d, o, a),
r.min(s, s, o),
r.max(u, u, a),
e.__rect = {
x: s[0],
y: s[1],
width: u[0] - s[0],
height: u[1] - s[1]
},
e.__rect
}
},
e("../tool/util").inherits(f, i),
f
}),
define("zrender/shape/Ring", ["require", "./Base", "../tool/util"],
function (e) {
var t = e("./Base"),
n = function (e) {
t.call(this, e)
};
return n.prototype = {
type: "ring",
buildPath: function (e, t) {
e.arc(t.x, t.y, t.r, 0, Math.PI * 2, !1),
e.moveTo(t.x + t.r0, t.y),
e.arc(t.x, t.y, t.r0, 0, Math.PI * 2, !0);
return
},
getRect: function (e) {
if (e.__rect) return e.__rect;
var t;
return e.brushType == "stroke" || e.brushType == "fill" ? t = e.lineWidth || 1 : t = 0,
e.__rect = {
x: Math.round(e.x - e.r - t / 2),
y: Math.round(e.y - e.r - t / 2),
width: e.r * 2 + t,
height: e.r * 2 + t
},
e.__rect
}
},
e("../tool/util").inherits(n, t),
n
}),
define("zrender/shape/Ellipse", ["require", "./Base", "../tool/util"],
function (e) {
var t = e("./Base"),
n = function (e) {
t.call(this, e)
};
return n.prototype = {
type: "ellipse",
buildPath: function (e, t) {
var n = .5522848,
r = t.x,
i = t.y,
s = t.a,
o = t.b,
u = s * n,
a = o * n;
e.moveTo(r - s, i),
e.bezierCurveTo(r - s, i - a, r - u, i - o, r, i - o),
e.bezierCurveTo(r + u, i - o, r + s, i - a, r + s, i),
e.bezierCurveTo(r + s, i + a, r + u, i + o, r, i + o),
e.bezierCurveTo(r - u, i + o, r - s, i + a, r - s, i),
e.closePath()
},
getRect: function (e) {
if (e.__rect) return e.__rect;
var t;
return e.brushType == "stroke" || e.brushType == "fill" ? t = e.lineWidth || 1 : t = 0,
e.__rect = {
x: Math.round(e.x - e.a - t / 2),
y: Math.round(e.y - e.b - t / 2),
width: e.a * 2 + t,
height: e.b * 2 + t
},
e.__rect
}
},
e("../tool/util").inherits(n, t),
n
}),
define("zrender/shape/util/PathProxy", ["require", "../../tool/vector"],
function (e) {
var t = e("../../tool/vector"),
n = function (e, t) {
this.command = e,
this.points = t || null
},
r = function () {
this.pathCommands = [],
this._ctx = null,
this._min = [],
this._max = []
};
return r.prototype.fastBoundingRect = function () {
var e = this._min,
n = this._max;
e[0] = e[1] = Infinity,
n[0] = n[1] = -Infinity;
for (var r = 0; r < this.pathCommands.length; r++) {
var i = this.pathCommands[r],
s = i.points;
switch (i.command) {
case "M":
t.min(e, e, s),
t.max(n, n, s);
break;
case "L":
t.min(e, e, s),
t.max(n, n, s);
break;
case "C":
for (var o = 0; o < 6; o += 2) e[0] = Math.min(e[0], e[0], s[o]),
e[1] = Math.min(e[1], e[1], s[o + 1]),
n[0] = Math.max(n[0], n[0], s[o]),
n[1] = Math.max(n[1], n[1], s[o + 1]);
break;
case "Q":
for (var o = 0; o < 4; o += 2) e[0] = Math.min(e[0], e[0], s[o]),
e[1] = Math.min(e[1], e[1], s[o + 1]),
n[0] = Math.max(n[0], n[0], s[o]),
n[1] = Math.max(n[1], n[1], s[o + 1]);
break;
case "A":
var u = s[0],
a = s[1],
f = s[2],
l = s[3];
e[0] = Math.min(e[0], e[0], u - f),
e[1] = Math.min(e[1], e[1], a - l),
n[0] = Math.max(n[0], n[0], u + f),
n[1] = Math.max(n[1], n[1], a + l)
}
}
return {
x: e[0],
y: e[1],
width: n[0] - e[0],
height: n[1] - e[1]
}
},
r.prototype.begin = function (e) {
return this._ctx = e || null,
this.pathCommands.length = 0,
this
},
r.prototype.moveTo = function (e, t) {
return this.pathCommands.push(new n("M", [e, t])),
this._ctx && this._ctx.moveTo(e, t),
this
},
r.prototype.lineTo = function (e, t) {
return this.pathCommands.push(new n("L", [e, t])),
this._ctx && this._ctx.lineTo(e, t),
this
},
r.prototype.bezierCurveTo = function (e, t, r, i, s, o) {
return this.pathCommands.push(new n("C", [e, t, r, i, s, o])),
this._ctx && this._ctx.bezierCurveTo(e, t, r, i, s, o),
this
},
r.prototype.quadraticCurveTo = function (e, t, r, i) {
return this.pathCommands.push(new n("Q", [e, t, r, i])),
this._ctx && this._ctx.quadraticCurveTo(e, t, r, i),
this
},
r.prototype.arc = function (e, t, r, i, s, o) {
return this.pathCommands.push(new n("A", [e, t, r, r, i, s - i, 0, o ? 0 : 1])),
this._ctx && this._ctx.arc(e, t, r, i, s, o),
this
},
r.prototype.arcTo = function (e, t, n, r, i) {
return this._ctx && this._ctx.arcTo(e, t, n, r, i),
this
},
r.prototype.rect = function (e, t, n, r) {
return this._ctx && this._ctx.rect(e, t, n, r),
this
},
r.prototype.closePath = function () {
return this.pathCommands.push(new n("z")),
this._ctx && this._ctx.closePath(),
this
},
r.prototype.isEmpty = function () {
return this.pathCommands.length === 0
},
r.PathSegment = n,
r
}),
define("zrender/shape/Heart", ["require", "./Base", "./util/PathProxy", "../tool/area", "../tool/util"],
function (e) {
var t = e("./Base"),
n = e("./util/PathProxy"),
r = e("../tool/area"),
i = function (e) {
t.call(this, e),
this._pathProxy = new n
};
return i.prototype = {
type: "heart",
buildPath: function (e, t) {
var r = this._pathProxy || new n;
r.begin(e),
r.moveTo(t.x, t.y),
r.bezierCurveTo(t.x + t.a / 2, t.y - t.b * 2 / 3, t.x + t.a * 2, t.y + t.b / 3, t.x, t.y + t.b),
r.bezierCurveTo(t.x - t.a * 2, t.y + t.b / 3, t.x - t.a / 2, t.y - t.b * 2 / 3, t.x, t.y),
r.closePath();
return
},
getRect: function (e) {
return e.__rect ? e.__rect : (this._pathProxy.isEmpty() || this.buildPath(null, e), this._pathProxy.fastBoundingRect())
},
isCover: function (e, t) {
var n = this.transformCoordToLocal(e, t);
e = n[0],
t = n[1];
if (this.isCoverRect(e, t)) return r.isInsidePath(this._pathProxy.pathCommands, this.style.lineWidth, this.style.brushType, e, t)
}
},
e("../tool/util").inherits(i, t),
i
}),
define("zrender/shape/Droplet", ["require", "./Base", "./util/PathProxy", "../tool/area", "../tool/util"],
function (e) {
var t = e("./Base"),
n = e("./util/PathProxy"),
r = e("../tool/area"),
i = function (e) {
t.call(this, e),
this._pathProxy = new n
};
return i.prototype = {
type: "droplet",
buildPath: function (e, t) {
var r = this._pathProxy || new n;
r.begin(e),
r.moveTo(t.x, t.y + t.a),
r.bezierCurveTo(t.x + t.a, t.y + t.a, t.x + t.a * 3 / 2, t.y - t.a / 3, t.x, t.y - t.b),
r.bezierCurveTo(t.x - t.a * 3 / 2, t.y - t.a / 3, t.x - t.a, t.y + t.a, t.x, t.y + t.a),
r.closePath()
},
getRect: function (e) {
return e.__rect ? e.__rect : (this._pathProxy.isEmpty() || this.buildPath(null, e), this._pathProxy.fastBoundingRect())
},
isCover: function (e, t) {
var n = this.transformCoordToLocal(e, t);
e = n[0],
t = n[1];
if (this.isCoverRect(e, t)) return r.isInsidePath(this._pathProxy.pathCommands, this.style.lineWidth, this.style.brushType, e, t)
}
},
e("../tool/util").inherits(i, t),
i
}),
define("zrender/shape/util/dashedLineTo", [],
function () {
var e = [5, 5];
return function (t, n, r, i, s, o) {
if (t.setLineDash) {
e[0] = e[1] = o,
t.setLineDash(e),
t.moveTo(n, r),
t.lineTo(i, s);
return
}
o = typeof o != "number" ? 5 : o;
var u = i - n,
a = s - r,
f = Math.floor(Math.sqrt(u * u + a * a) / o);
u /= f,
a /= f;
var l = !0;
for (var c = 0; c < f; ++c) l ? t.moveTo(n, r) : t.lineTo(n, r),
l = !l,
n += u,
r += a;
t.lineTo(i, s)
}
}),
define("zrender/shape/Line", ["require", "./Base", "./util/dashedLineTo", "../tool/util"],
function (e) {
var t = e("./Base"),
n = e("./util/dashedLineTo"),
r = function (e) {
this.brushTypeOnly = "stroke",
this.textPosition = "end",
t.call(this, e)
};
return r.prototype = {
type: "line",
buildPath: function (e, t) {
if (!t.lineType || t.lineType == "solid") e.moveTo(t.xStart, t.yStart),
e.lineTo(t.xEnd, t.yEnd);
else if (t.lineType == "dashed" || t.lineType == "dotted") {
var r = (t.lineWidth || 1) * (t.lineType == "dashed" ? 5 : 1);
n(e, t.xStart, t.yStart, t.xEnd, t.yEnd, r)
}
},
getRect: function (e) {
if (e.__rect) return e.__rect;
var t = e.lineWidth || 1;
return e.__rect = {
x: Math.min(e.xStart, e.xEnd) - t,
y: Math.min(e.yStart, e.yEnd) - t,
width: Math.abs(e.xStart - e.xEnd) + t,
height: Math.abs(e.yStart - e.yEnd) + t
},
e.__rect
}
},
e("../tool/util").inherits(r, t),
r
}),
define("zrender/shape/Star", ["require", "../tool/math", "./Base", "../tool/util"],
function (e) {
var t = e("../tool/math"),
n = t.sin,
r = t.cos,
i = Math.PI,
s = e("./Base"),
o = function (e) {
s.call(this, e)
};
return o.prototype = {
type: "star",
buildPath: function (e, t) {
var s = t.n;
if (!s || s < 2) return;
var o = t.x,
u = t.y,
a = t.r,
f = t.r0;
f == null && (f = s > 4 ? a * r(2 * i / s) / r(i / s) : a / 3);
var l = i / s,
c = -i / 2,
h = o + a * r(c),
p = u + a * n(c);
c += l;
var d = t.pointList = [];
d.push([h, p]);
for (var v = 0,
m = s * 2 - 1,
g; v < m; v++) g = v % 2 === 0 ? f : a,
d.push([o + g * r(c), u + g * n(c)]),
c += l;
d.push([h, p]),
e.moveTo(d[0][0], d[0][1]);
for (var v = 0; v < d.length; v++) e.lineTo(d[v][0], d[v][1]);
e.closePath();
return
},
getRect: function (e) {
if (e.__rect) return e.__rect;
var t;
return e.brushType == "stroke" || e.brushType == "fill" ? t = e.lineWidth || 1 : t = 0,
e.__rect = {
x: Math.round(e.x - e.r - t / 2),
y: Math.round(e.y - e.r - t / 2),
width: e.r * 2 + t,
height: e.r * 2 + t
},
e.__rect
}
},
e("../tool/util").inherits(o, s),
o
}),
define("zrender/shape/Isogon", ["require", "../tool/math", "./Base", "../tool/util"],
function (e) {
function o(e) {
s.call(this, e)
}
var t = e("../tool/math"),
n = t.sin,
r = t.cos,
i = Math.PI,
s = e("./Base");
return o.prototype = {
type: "isogon",
buildPath: function (e, t) {
var s = t.n;
if (!s || s < 2) return;
var o = t.x,
u = t.y,
a = t.r,
f = 2 * i / s,
l = -i / 2,
c = o + a * r(l),
h = u + a * n(l);
l += f;
var p = t.pointList = [];
p.push([c, h]);
for (var d = 0,
v = s - 1; d < v; d++) p.push([o + a * r(l), u + a * n(l)]),
l += f;
p.push([c, h]),
e.moveTo(p[0][0], p[0][1]);
for (var d = 0; d < p.length; d++) e.lineTo(p[d][0], p[d][1]);
e.closePath();
return
},
getRect: function (e) {
if (e.__rect) return e.__rect;
var t;
return e.brushType == "stroke" || e.brushType == "fill" ? t = e.lineWidth || 1 : t = 0,
e.__rect = {
x: Math.round(e.x - e.r - t / 2),
y: Math.round(e.y - e.r - t / 2),
width: e.r * 2 + t,
height: e.r * 2 + t
},
e.__rect
}
},
e("../tool/util").inherits(o, s),
o
}),
define("zrender/shape/BezierCurve", ["require", "./Base", "../tool/util"],
function (e) {
var t = e("./Base"),
n = function (e) {
this.brushTypeOnly = "stroke",
this.textPosition = "end",
t.call(this, e)
};
return n.prototype = {
type: "bezier-curve",
buildPath: function (e, t) {
e.moveTo(t.xStart, t.yStart),
typeof t.cpX2 != "undefined" && typeof t.cpY2 != "undefined" ? e.bezierCurveTo(t.cpX1, t.cpY1, t.cpX2, t.cpY2, t.xEnd, t.yEnd) : e.quadraticCurveTo(t.cpX1, t.cpY1, t.xEnd, t.yEnd)
},
getRect: function (e) {
if (e.__rect) return e.__rect;
var t = Math.min(e.xStart, e.xEnd, e.cpX1),
n = Math.min(e.yStart, e.yEnd, e.cpY1),
r = Math.max(e.xStart, e.xEnd, e.cpX1),
i = Math.max(e.yStart, e.yEnd, e.cpY1),
s = e.cpX2,
o = e.cpY2;
typeof s != "undefined" && typeof o != "undefined" && (t = Math.min(t, s), n = Math.min(n, o), r = Math.max(r, s), i = Math.max(i, o));
var u = e.lineWidth || 1;
return e.__rect = {
x: t - u,
y: n - u,
width: r - t + u,
height: i - n + u
},
e.__rect
}
},
e("../tool/util").inherits(n, t),
n
}),
define("zrender/shape/util/smoothSpline", ["require", "../../tool/vector"],
function (e) {
function n(e, t, n, r, i, s, o) {
var u = (n - e) * .5,
a = (r - t) * .5;
return (2 * (t - n) + u + a) * o + (-3 * (t - n) - 2 * u - a) * s + u * i + t
}
var t = e("../../tool/vector");
return function (e, r, i) {
var s = e.length,
o = [],
u = 0;
for (var a = 1; a < s; a++) u += t.distance(e[a - 1], e[a]);
var f = u / 5;
f = f < s ? s : f;
for (var a = 0; a < f; a++) {
var l = a / (f - 1) * (r ? s : s - 1),
c = Math.floor(l),
h = l - c,
p,
d = e[c % s],
v,
m;
r ? (p = e[(c - 1 + s) % s], v = e[(c + 1) % s], m = e[(c + 2) % s]) : (p = e[c === 0 ? c : c - 1], v = e[c > s - 2 ? s - 1 : c + 1], m = e[c > s - 3 ? s - 1 : c + 2]);
var g = h * h,
y = h * g;
o.push([n(p[0], d[0], v[0], m[0], h, g, y), n(p[1], d[1], v[1], m[1], h, g, y)])
}
return o
}
}),
define("zrender/shape/util/smoothBezier", ["require", "../../tool/vector"],
function (e) {
var t = e("../../tool/vector");
return function (e, n, r, i) {
var s = [],
o = [],
u = [],
a = [],
f,
l,
c = !!i,
h,
p;
if (c) {
h = [Infinity, Infinity],
p = [-Infinity, -Infinity];
for (var d = 0,
v = e.length; d < v; d++) t.min(h, h, e[d]),
t.max(p, p, e[d]);
t.min(h, h, i[0]),
t.max(p, p, i[1])
}
for (var d = 0,
v = e.length; d < v; d++) {
var m = e[d],
f,
l;
if (r) f = e[d ? d - 1 : v - 1],
l = e[(d + 1) % v];
else {
if (d === 0 || d === v - 1) {
s.push(t.clone(e[d]));
continue
}
f = e[d - 1],
l = e[d + 1]
}
t.sub(o, l, f),
t.scale(o, o, n);
var g = t.distance(m, f),
y = t.distance(m, l),
b = g + y;
b !== 0 && (g /= b, y /= b),
t.scale(u, o, -g),
t.scale(a, o, y);
var w = t.add([], m, u),
E = t.add([], m, a);
c && (t.max(w, w, h), t.min(w, w, p), t.max(E, E, h), t.min(E, E, p)),
s.push(w),
s.push(E)
}
return r && s.push(t.clone(s.shift())),
s
}
}),
define("zrender/shape/Polygon", ["require", "./Base", "./util/smoothSpline", "./util/smoothBezier", "./util/dashedLineTo", "../tool/util"],
function (e) {
var t = e("./Base"),
n = e("./util/smoothSpline"),
r = e("./util/smoothBezier"),
i = e("./util/dashedLineTo"),
s = function (e) {
t.call(this, e)
};
return s.prototype = {
type: "polygon",
buildPath: function (e, t) {
var s = t.pointList;
if (s.length < 2) return;
if (t.smooth && t.smooth !== "spline") {
var o = r(s, t.smooth, !0, t.smoothConstraint);
e.moveTo(s[0][0], s[0][1]);
var u, a, f, l = s.length;
for (var c = 0; c < l; c++) u = o[c * 2],
a = o[c * 2 + 1],
f = s[(c + 1) % l],
e.bezierCurveTo(u[0], u[1], a[0], a[1], f[0], f[1])
} else {
t.smooth === "spline" && (s = n(s, !0));
if (!t.lineType || t.lineType == "solid") {
e.moveTo(s[0][0], s[0][1]);
for (var c = 1,
h = s.length; c < h; c++) e.lineTo(s[c][0], s[c][1]);
e.lineTo(s[0][0], s[0][1])
} else if (t.lineType == "dashed" || t.lineType == "dotted") {
var p = t._dashLength || (t.lineWidth || 1) * (t.lineType == "dashed" ? 5 : 1);
t._dashLength = p,
e.moveTo(s[0][0], s[0][1]);
for (var c = 1,
h = s.length; c < h; c++) i(e, s[c - 1][0], s[c - 1][1], s[c][0], s[c][1], p);
i(e, s[s.length - 1][0], s[s.length - 1][1], s[0][0], s[0][1], p)
}
}
e.closePath();
return
},
getRect: function (e) {
if (e.__rect) return e.__rect;
var t = Number.MAX_VALUE,
n = Number.MIN_VALUE,
r = Number.MAX_VALUE,
i = Number.MIN_VALUE,
s = e.pointList;
for (var o = 0,
u = s.length; o < u; o++) s[o][0] < t && (t = s[o][0]),
s[o][0] > n && (n = s[o][0]),
s[o][1] < r && (r = s[o][1]),
s[o][1] > i && (i = s[o][1]);
var a;
return e.brushType == "stroke" || e.brushType == "fill" ? a = e.lineWidth || 1 : a = 0,
e.__rect = {
x: Math.round(t - a / 2),
y: Math.round(r - a / 2),
width: n - t + a,
height: i - r + a
},
e.__rect
}
},
e("../tool/util").inherits(s, t),
s
}),
define("zrender/shape/Polyline", ["require", "./Base", "./util/smoothSpline", "./util/smoothBezier", "./util/dashedLineTo", "./Polygon", "../tool/util"],
function (e) {
var t = e("./Base"),
n = e("./util/smoothSpline"),
r = e("./util/smoothBezier"),
i = e("./util/dashedLineTo"),
s = function (e) {
this.brushTypeOnly = "stroke",
this.textPosition = "end",
t.call(this, e)
};
return s.prototype = {
type: "polyline",
buildPath: function (e, t) {
var r = t.pointList;
if (r.length < 2) return;
var s = Math.min(t.pointList.length, Math.round(t.pointListLength || t.pointList.length));
if (t.smooth && t.smooth !== "spline") {
t.controlPointList || this.updateControlPoints(t);
var o = t.controlPointList;
e.moveTo(r[0][0], r[0][1]);
var u, a, f;
for (var l = 0; l < s - 1; l++) u = o[l * 2],
a = o[l * 2 + 1],
f = r[l + 1],
e.bezierCurveTo(u[0], u[1], a[0], a[1], f[0], f[1])
} else {
t.smooth === "spline" && (r = n(r), s = r.length);
if (!t.lineType || t.lineType == "solid") {
e.moveTo(r[0][0], r[0][1]);
for (var l = 1; l < s; l++) e.lineTo(r[l][0], r[l][1])
} else if (t.lineType == "dashed" || t.lineType == "dotted") {
var c = (t.lineWidth || 1) * (t.lineType == "dashed" ? 5 : 1);
e.moveTo(r[0][0], r[0][1]);
for (var l = 1; l < s; l++) i(e, r[l - 1][0], r[l - 1][1], r[l][0], r[l][1], c)
}
}
return
},
updateControlPoints: function (e) {
e.controlPointList = r(e.pointList, e.smooth, !1, e.smoothConstraint)
},
getRect: function (t) {
return e("./Polygon").prototype.getRect(t)
}
},
e("../tool/util").inherits(s, t),
s
}),
define("zrender/shape/Path", ["require", "./Base", "./util/PathProxy", "../tool/util"],
function (e) {
var t = e("./Base"),
n = e("./util/PathProxy"),
r = n.PathSegment,
i = function (e) {
return Math.sqrt(e[0] * e[0] + e[1] * e[1])
},
s = function (e, t) {
return (e[0] * t[0] + e[1] * t[1]) / (i(e) * i(t))
},
o = function (e, t) {
return (e[0] * t[1] < e[1] * t[0] ? -1 : 1) * Math.acos(s(e, t))
},
u = function (e) {
t.call(this, e)
};
return u.prototype = {
type: "path",
buildPathArray: function (e, t, n) {
if (!e) return [];
t = t || 0,
n = n || 0;
var i = e,
s = ["m", "M", "l", "L", "v", "V", "h", "H", "z", "Z", "c", "C", "q", "Q", "t", "T", "s", "S", "a", "A"];
i = i.replace(/-/g, " -"),
i = i.replace(/ /g, " "),
i = i.replace(/ /g, ","),
i = i.replace(/,,/g, ",");
var o;
for (o = 0; o < s.length; o++) i = i.replace(new RegExp(s[o], "g"), "|" + s[o]);
var u = i.split("|"),
a = [],
f = 0,
l = 0;
for (o = 1; o < u.length; o++) {
var c = u[o],
h = c.charAt(0);
c = c.slice(1),
c = c.replace(new RegExp("e,-", "g"), "e-");
var p = c.split(",");
p.length > 0 && p[0] === "" && p.shift();
for (var d = 0; d < p.length; d++) p[d] = parseFloat(p[d]);
while (p.length > 0) {
if (isNaN(p[0])) break;
var v = null,
m = [],
g,
y,
b,
w,
E,
S,
x,
T,
N = f,
C = l;
switch (h) {
case "l":
f += p.shift(),
l += p.shift(),
v = "L",
m.push(f, l);
break;
case "L":
f = p.shift(),
l = p.shift(),
m.push(f, l);
break;
case "m":
f += p.shift(),
l += p.shift(),
v = "M",
m.push(f, l),
h = "l";
break;
case "M":
f = p.shift(),
l = p.shift(),
v = "M",
m.push(f, l),
h = "L";
break;
case "h":
f += p.shift(),
v = "L",
m.push(f, l);
break;
case "H":
f = p.shift(),
v = "L",
m.push(f, l);
break;
case "v":
l += p.shift(),
v = "L",
m.push(f, l);
break;
case "V":
l = p.shift(),
v = "L",
m.push(f, l);
break;
case "C":
m.push(p.shift(), p.shift(), p.shift(), p.shift()),
f = p.shift(),
l = p.shift(),
m.push(f, l);
break;
case "c":
m.push(f + p.shift(), l + p.shift(), f + p.shift(), l + p.shift()),
f += p.shift(),
l += p.shift(),
v = "C",
m.push(f, l);
break;
case "S":
g = f,
y = l,
b = a[a.length - 1],
b.command === "C" && (g = f + (f - b.points[2]), y = l + (l - b.points[3])),
m.push(g, y, p.shift(), p.shift()),
f = p.shift(),
l = p.shift(),
v = "C",
m.push(f, l);
break;
case "s":
g = f,
y = l,
b = a[a.length - 1],
b.command === "C" && (g = f + (f - b.points[2]), y = l + (l - b.points[3])),
m.push(g, y, f + p.shift(), l + p.shift()),
f += p.shift(),
l += p.shift(),
v = "C",
m.push(f, l);
break;
case "Q":
m.push(p.shift(), p.shift()),
f = p.shift(),
l = p.shift(),
m.push(f, l);
break;
case "q":
m.push(f + p.shift(), l + p.shift()),
f += p.shift(),
l += p.shift(),
v = "Q",
m.push(f, l);
break;
case "T":
g = f,
y = l,
b = a[a.length - 1],
b.command === "Q" && (g = f + (f - b.points[0]), y = l + (l - b.points[1])),
f = p.shift(),
l = p.shift(),
v = "Q",
m.push(g, y, f, l);
break;
case "t":
g = f,
y = l,
b = a[a.length - 1],
b.command === "Q" && (g = f + (f - b.points[0]), y = l + (l - b.points[1])),
f += p.shift(),
l += p.shift(),
v = "Q",
m.push(g, y, f, l);
break;
case "A":
w = p.shift(),
E = p.shift(),
S = p.shift(),
x = p.shift(),
T = p.shift(),
N = f,
C = l,
f = p.shift(),
l = p.shift(),
v = "A",
m = this._convertPoint(N, C, f, l, x, T, w, E, S);
break;
case "a":
w = p.shift(),
E = p.shift(),
S = p.shift(),
x = p.shift(),
T = p.shift(),
N = f,
C = l,
f += p.shift(),
l += p.shift(),
v = "A",
m = this._convertPoint(N, C, f, l, x, T, w, E, S)
}
for (var k = 0,
L = m.length; k < L; k += 2) m[k] += t,
m[k + 1] += n;
a.push(new r(v || h, m))
} (h === "z" || h === "Z") && a.push(new r("z", []))
}
return a
},
_convertPoint: function (e, t, n, r, i, u, a, f, l) {
var c = l * (Math.PI / 180),
h = Math.cos(c) * (e - n) / 2 + Math.sin(c) * (t - r) / 2,
p = -1 * Math.sin(c) * (e - n) / 2 + Math.cos(c) * (t - r) / 2,
d = h * h / (a * a) + p * p / (f * f);
d > 1 && (a *= Math.sqrt(d), f *= Math.sqrt(d));
var v = Math.sqrt((a * a * f * f - a * a * p * p - f * f * h * h) / (a * a * p * p + f * f * h * h));
i === u && (v *= -1),
isNaN(v) && (v = 0);
var m = v * a * p / f,
g = v * -f * h / a,
y = (e + n) / 2 + Math.cos(c) * m - Math.sin(c) * g,
b = (t + r) / 2 + Math.sin(c) * m + Math.cos(c) * g,
w = o([1, 0], [(h - m) / a, (p - g) / f]),
E = [(h - m) / a, (p - g) / f],
S = [(-1 * h - m) / a, (-1 * p - g) / f],
x = o(E, S);
return s(E, S) <= -1 && (x = Math.PI),
s(E, S) >= 1 && (x = 0),
u === 0 && x > 0 && (x -= 2 * Math.PI),
u === 1 && x < 0 && (x += 2 * Math.PI),
[y, b, a, f, w, x, c, u]
},
buildPath: function (e, t) {
var n = t.path,
r = t.x || 0,
i = t.y || 0;
t.pathArray = t.pathArray || this.buildPathArray(n, r, i);
var s = t.pathArray,
o = t.pointList = [],
u = [];
for (var a = 0,
f = s.length; a < f; a++) {
s[a].command.toUpperCase() == "M" && (u.length > 0 && o.push(u), u = []);
var l = s[a].points;
for (var c = 0,
h = l.length; c < h; c += 2) u.push([l[c], l[c + 1]])
}
u.length > 0 && o.push(u);
for (var a = 0,
f = s.length; a < f; a++) {
var p = s[a].command,
l = s[a].points;
switch (p) {
case "L":
e.lineTo(l[0], l[1]);
break;
case "M":
e.moveTo(l[0], l[1]);
break;
case "C":
e.bezierCurveTo(l[0], l[1], l[2], l[3], l[4], l[5]);
break;
case "Q":
e.quadraticCurveTo(l[0], l[1], l[2], l[3]);
break;
case "A":
var d = l[0],
v = l[1],
m = l[2],
g = l[3],
y = l[4],
b = l[5],
w = l[6],
E = l[7],
S = m > g ? m : g,
x = m > g ? 1 : m / g,
T = m > g ? g / m : 1;
e.translate(d, v),
e.rotate(w),
e.scale(x, T),
e.arc(0, 0, S, y, y + b, 1 - E),
e.scale(1 / x, 1 / T),
e.rotate(-w),
e.translate(-d, -v);
break;
case "z":
e.closePath()
}
}
return
},
getRect: function (e) {
if (e.__rect) return e.__rect;
var t;
e.brushType == "stroke" || e.brushType == "fill" ? t = e.lineWidth || 1 : t = 0;
var n = Number.MAX_VALUE,
r = Number.MIN_VALUE,
i = Number.MAX_VALUE,
s = Number.MIN_VALUE,
o = e.x || 0,
u = e.y || 0,
a = e.pathArray || this.buildPathArray(e.path);
for (var f = 0; f < a.length; f++) {
var l = a[f].points;
for (var c = 0; c < l.length; c++) c % 2 === 0 ? (l[c] + o < n && (n = l[c]), l[c] + o > r && (r = l[c])) : (l[c] + u < i && (i = l[c]), l[c] + u > s && (s = l[c]))
}
var h;
return n === Number.MAX_VALUE || r === Number.MIN_VALUE || i === Number.MAX_VALUE || s === Number.MIN_VALUE ? h = {
x: 0,
y: 0,
width: 0,
height: 0
} : h = {
x: Math.round(n - t / 2),
y: Math.round(i - t / 2),
width: r - n + t,
height: s - i + t
},
e.__rect = h,
h
}
},
e("../tool/util").inherits(u, t),
u
}),
define("zrender/loadingEffect/Bar", ["require", "./Base", "../tool/util", "../tool/color", "../shape/Rectangle"],
function (e) {
function s(e) {
t.call(this, e)
}
var t = e("./Base"),
n = e("../tool/util"),
r = e("../tool/color"),
i = e("../shape/Rectangle");
return n.inherits(s, t),
s.prototype._start = function (e, t) {
var s = n.merge(this.options, {
textStyle: {
color: "#888"
},
backgroundColor: "rgba(250, 250, 250, 0.8)",
effectOption: {
x: 0,
y: this.canvasHeight / 2 - 30,
width: this.canvasWidth,
height: 5,
brushType: "fill",
timeInterval: 100
}
}),
o = this.createTextShape(s.textStyle),
u = this.createBackgroundShape(s.backgroundColor),
a = s.effectOption,
f = new i({
highlightStyle: n.clone(a)
});
f.highlightStyle.color = a.color || r.getLinearGradient(a.x, a.y, a.x + a.width, a.y + a.height, [[0, "#ff6400"], [.5, "#ffe100"], [1, "#b1ff00"]]);
if (s.progress != null) {
e(u),
f.highlightStyle.width = this.adjust(s.progress, [0, 1]) * s.effectOption.width,
e(f),
e(o),
t();
return
}
return f.highlightStyle.width = 0,
setInterval(function () {
e(u),
f.highlightStyle.width < a.width ? f.highlightStyle.width += 8 : f.highlightStyle.width = 0,
e(f),
e(o),
t()
},
a.timeInterval)
},
s
}),
define("zrender/loadingEffect/Bubble", ["require", "./Base", "../tool/util", "../tool/color", "../shape/Circle"],
function (e) {
function s(e) {
t.call(this, e)
}
var t = e("./Base"),
n = e("../tool/util"),
r = e("../tool/color"),
i = e("../shape/Circle");
return n.inherits(s, t),
s.prototype._start = function (e, t) {
var s = n.merge(this.options, {
textStyle: {
color: "#888"
},
backgroundColor: "rgba(250, 250, 250, 0.8)",
effect: {
n: 50,
lineWidth: 2,
brushType: "stroke",
color: "random",
timeInterval: 100
}
}),
o = this.createTextShape(s.textStyle),
u = this.createBackgroundShape(s.backgroundColor),
a = s.effect,
f = a.n,
l = a.brushType,
c = a.lineWidth,
h = [],
p = this.canvasWidth,
d = this.canvasHeight;
for (var v = 0; v < f; v++) {
var m = a.color == "random" ? r.alpha(r.random(), .3) : a.color;
h[v] = new i({
highlightStyle: {
x: Math.ceil(Math.random() * p),
y: Math.ceil(Math.random() * d),
r: Math.ceil(Math.random() * 40),
brushType: l,
color: m,
strokeColor: m,
lineWidth: c
},
animationY: Math.ceil(Math.random() * 20)
})
}
return setInterval(function () {
e(u);
for (var n = 0; n < f; n++) {
var r = h[n].highlightStyle;
r.y - h[n].animationY + r.r <= 0 && (h[n].highlightStyle.y = d + r.r, h[n].highlightStyle.x = Math.ceil(Math.random() * p)),
h[n].highlightStyle.y -= h[n].animationY,
e(h[n])
}
e(o),
t()
},
a.timeInterval)
},
s
}),
define("zrender/loadingEffect/DynamicLine", ["require", "./Base", "../tool/util", "../tool/color", "../shape/Line"],
function (e) {
function s(e) {
t.call(this, e)
}
var t = e("./Base"),
n = e("../tool/util"),
r = e("../tool/color"),
i = e("../shape/Line");
return n.inherits(s, t),
s.prototype._start = function (e, t) {
var s = n.merge(this.options, {
textStyle: {
color: "#fff"
},
backgroundColor: "rgba(0, 0, 0, 0.8)",
effectOption: {
n: 30,
lineWidth: 1,
color: "random",
timeInterval: 100
}
}),
o = this.createTextShape(s.textStyle),
u = this.createBackgroundShape(s.backgroundColor),
a = s.effectOption,
f = a.n,
l = a.lineWidth,
c = [],
h = this.canvasWidth,
p = this.canvasHeight;
for (var d = 0; d < f; d++) {
var v = -Math.ceil(Math.random() * 1e3),
m = Math.ceil(Math.random() * 400),
g = Math.ceil(Math.random() * p),
y = a.color == "random" ? r.random() : a.color;
c[d] = new i({
highlightStyle: {
xStart: v,
yStart: g,
xEnd: v + m,
yEnd: g,
strokeColor: y,
lineWidth: l
},
animationX: Math.ceil(Math.random() * 100),
len: m
})
}
return setInterval(function () {
e(u);
for (var n = 0; n < f; n++) {
var r = c[n].highlightStyle;
r.xStart >= h && (c[n].len = Math.ceil(Math.random() * 400), r.xStart = -400, r.xEnd = -400 + c[n].len, r.yStart = Math.ceil(Math.random() * p), r.yEnd = r.yStart),
r.xStart += c[n].animationX,
r.xEnd += c[n].animationX,
e(c[n])
}
e(o),
t()
},
a.timeInterval)
},
s
}),
define("zrender/loadingEffect/Ring", ["require", "./Base", "../tool/util", "../tool/color", "../shape/Ring", "../shape/Sector"],
function (e) {
function o(e) {
t.call(this, e)
}
var t = e("./Base"),
n = e("../tool/util"),
r = e("../tool/color"),
i = e("../shape/Ring"),
s = e("../shape/Sector");
return n.inherits(o, t),
o.prototype._start = function (e, t) {
var o = n.merge(this.options, {
textStyle: {
color: "#07a"
},
backgroundColor: "rgba(250, 250, 250, 0.8)",
effect: {
x: this.canvasWidth / 2,
y: this.canvasHeight / 2,
r0: 60,
r: 100,
color: "#bbdcff",
brushType: "fill",
textPosition: "inside",
textFont: "normal 30px verdana",
textColor: "rgba(30, 144, 255, 0.6)",
timeInterval: 100
}
}),
u = o.effect,
a = o.textStyle;
a.x == null && (a.x = u.x),
a.y == null && (a.y = u.y + (u.r0 + u.r) / 2 - 5);
var f = this.createTextShape(o.textStyle),
l = this.createBackgroundShape(o.backgroundColor),
c = u.x,
h = u.y,
p = u.r0 + 6,
d = u.r - 6,
v = u.color,
m = r.lift(v, .1),
g = new i({
highlightStyle: n.clone(u)
}),
y = [],
b = r.getGradientColors(["#ff6400", "#ffe100", "#97ff00"], 25),
w = 15,
E = 240;
for (var S = 0; S < 16; S++) y.push(new s({
highlightStyle: {
x: c,
y: h,
r0: p,
r: d,
startAngle: E - w,
endAngle: E,
brushType: "fill",
color: m
},
_color: r.getLinearGradient(c + p * Math.cos(E, !0), h - p * Math.sin(E, !0), c + p * Math.cos(E - w, !0), h - p * Math.sin(E - w, !0), [[0, b[S * 2]], [1, b[S * 2 + 1]]])
})),
E -= w;
E = 360;
for (var S = 0; S < 4; S++) y.push(new s({
highlightStyle: {
x: c,
y: h,
r0: p,
r: d,
startAngle: E - w,
endAngle: E,
brushType: "fill",
color: m
},
_color: r.getLinearGradient(c + p * Math.cos(E, !0), h - p * Math.sin(E, !0), c + p * Math.cos(E - w, !0), h - p * Math.sin(E - w, !0), [[0, b[S * 2 + 32]], [1, b[S * 2 + 33]]])
})),
E -= w;
var x = 0;
if (o.progress != null) {
e(l),
x = this.adjust(o.progress, [0, 1]).toFixed(2) * 100 / 5,
g.highlightStyle.text = x * 5 + "%",
e(g);
for (var S = 0; S < 20; S++) y[S].highlightStyle.color = S < x ? y[S]._color : m,
e(y[S]);
e(f),
t();
return
}
return setInterval(function () {
e(l),
x += x >= 20 ? -20 : 1,
e(g);
for (var n = 0; n < 20; n++) y[n].highlightStyle.color = n < x ? y[n]._color : m,
e(y[n]);
e(f),
t()
},
u.timeInterval)
},
o
}),
define("zrender/loadingEffect/Spin", ["require", "./Base", "../tool/util", "../tool/color", "../tool/area", "../shape/Sector"],
function (e) {
function o(e) {
t.call(this, e)
}
var t = e("./Base"),
n = e("../tool/util"),
r = e("../tool/color"),
i = e("../tool/area"),
s = e("../shape/Sector");
return n.inherits(o, t),
o.prototype._start = function (e, t) {
var o = n.merge(this.options, {
textStyle: {
color: "#fff",
textAlign: "start"
},
backgroundColor: "rgba(0, 0, 0, 0.8)"
}),
u = this.createTextShape(o.textStyle),
a = 10,
f = i.getTextWidth(u.highlightStyle.text, u.highlightStyle.textFont),
l = i.getTextHeight(u.highlightStyle.text, u.highlightStyle.textFont),
c = n.merge(this.options.effect || {},
{
r0: 9,
r: 15,
n: 18,
color: "#fff",
timeInterval: 100
}),
h = this.getLocation(this.options.textStyle, f + a + c.r * 2, Math.max(c.r * 2, l));
c.x = h.x + c.r,
c.y = u.highlightStyle.y = h.y + h.height / 2,
u.highlightStyle.x = c.x + c.r + a;
var p = this.createBackgroundShape(o.backgroundColor),
d = c.n,
v = c.x,
m = c.y,
g = c.r0,
y = c.r,
b = c.color,
w = [],
E = Math.round(180 / d);
for (var S = 0; S < d; S++) w[S] = new s({
highlightStyle: {
x: v,
y: m,
r0: g,
r: y,
startAngle: E * S * 2,
endAngle: E * S * 2 + E,
color: r.alpha(b, (S + 1) / d),
brushType: "fill"
}
});
var x = [0, v, m];
return setInterval(function () {
e(p),
x[0] -= .3;
for (var n = 0; n < d; n++) w[n].rotation = x,
e(w[n]);
e(u),
t()
},
c.timeInterval)
},
o
}),
define("zrender/loadingEffect/Whirling", ["require", "./Base", "../tool/util", "../tool/area", "../shape/Ring", "../shape/Droplet", "../shape/Circle"],
function (e) {
function u(e) {
t.call(this, e)
}
var t = e("./Base"),
n = e("../tool/util"),
r = e("../tool/area"),
i = e("../shape/Ring"),
s = e("../shape/Droplet"),
o = e("../shape/Circle");
return n.inherits(u, t),
u.prototype._start = function (e, t) {
var u = n.merge(this.options, {
textStyle: {
color: "#888",
textAlign: "start"
},
backgroundColor: "rgba(250, 250, 250, 0.8)"
}),
a = this.createTextShape(u.textStyle),
f = 10,
l = r.getTextWidth(a.highlightStyle.text, a.highlightStyle.textFont),
c = r.getTextHeight(a.highlightStyle.text, a.highlightStyle.textFont),
h = n.merge(this.options.effect || {},
{
r: 18,
colorIn: "#fff",
colorOut: "#555",
colorWhirl: "#6cf",
timeInterval: 50
}),
p = this.getLocation(this.options.textStyle, l + f + h.r * 2, Math.max(h.r * 2, c));
h.x = p.x + h.r,
h.y = a.highlightStyle.y = p.y + p.height / 2,
a.highlightStyle.x = h.x + h.r + f;
var d = this.createBackgroundShape(u.backgroundColor),
v = new s({
highlightStyle: {
a: Math.round(h.r / 2),
b: Math.round(h.r - h.r / 6),
brushType: "fill",
color: h.colorWhirl
}
}),
m = new o({
highlightStyle: {
r: Math.round(h.r / 6),
brushType: "fill",
color: h.colorIn
}
}),
g = new i({
highlightStyle: {
r0: Math.round(h.r - h.r / 3),
r: h.r,
brushType: "fill",
color: h.colorOut
}
}),
y = [0, h.x, h.y];
return v.highlightStyle.x = m.highlightStyle.x = g.highlightStyle.x = y[1],
v.highlightStyle.y = m.highlightStyle.y = g.highlightStyle.y = y[2],
setInterval(function () {
e(d),
e(g),
y[0] -= .3,
v.rotation = y,
e(v),
e(m),
e(a),
t()
},
h.timeInterval)
},
u
});