IM12345_Web demo - 代码源于 商丘市12345项目

oldie.js 26KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545
  1. /*
  2. Highcharts JS v6.1.1 (2018-06-27)
  3. Old IE (v6, v7, v8) module for Highcharts v6+.
  4. (c) 2010-2017 Highsoft AS
  5. Author: Torstein Honsi
  6. License: www.highcharts.com/license
  7. */
  8. (function (l) {
  9. "object" === typeof module && module.exports ? module.exports = l : l(Highcharts)
  10. })(function (l) {
  11. (function (d) {
  12. var w, f;
  13. f = d.Chart;
  14. var A = d.createElement,
  15. l = d.css,
  16. E = d.defined,
  17. n = d.deg2rad,
  18. F = d.discardElement,
  19. h = d.doc,
  20. I = d.each,
  21. G = d.erase,
  22. B = d.extend;
  23. w = d.extendClass;
  24. var N = d.isArray,
  25. L = d.isNumber,
  26. C = d.isObject,
  27. O = d.merge,
  28. M = d.noop,
  29. x = d.pick,
  30. t = d.pInt,
  31. D = d.svg,
  32. y = d.SVGElement,
  33. u = d.SVGRenderer,
  34. v = d.win,
  35. P = d.wrap;
  36. d.getOptions().global.VMLRadialGradientURL = "http://code.highcharts.com/6.1.1/gfx/vml-radial-gradient.png";
  37. h && !h.defaultView && (d.getStyle = function (a, b) {
  38. var c = {
  39. width: "clientWidth",
  40. height: "clientHeight"
  41. }[b];
  42. if (a.style[b]) return d.pInt(a.style[b]);
  43. "opacity" === b && (b = "filter");
  44. if (c) return a.style.zoom = 1,
  45. Math.max(a[c] - 2 * d.getStyle(a, "padding"), 0);
  46. a = a.currentStyle[b.replace(/\-(\w)/g,
  47. function (a, b) {
  48. return b.toUpperCase()
  49. })];
  50. "filter" === b && (a = a.replace(/alpha\(opacity=([0-9]+)\)/,
  51. function (a, b) {
  52. return b / 100
  53. }));
  54. return "" === a ? 1 : d.pInt(a)
  55. });
  56. Array.prototype.forEach || (d.forEachPolyfill = function (a, b) {
  57. for (var c = 0,
  58. e = this.length; c < e; c++) if (!1 === a.call(b, this[c], c, this)) return c
  59. });
  60. Array.prototype.indexOf || (d.indexOfPolyfill = function (a) {
  61. var b, c = 0;
  62. if (a) for (b = a.length; c < b; c++) if (a[c] === this) return c;
  63. return - 1
  64. });
  65. Array.prototype.filter || (d.filterPolyfill = function (a) {
  66. for (var b = [], c = 0, e = this.length; c < e; c++) a(this[c], c) && b.push(this[c]);
  67. return b
  68. });
  69. Array.prototype.some || (d.somePolyfill = function (a, b) {
  70. for (var c = 0,
  71. e = this.length; c < e && !0 !== a.call(b, this[c], c, this); c++);
  72. });
  73. Object.prototype.keys || (d.keysPolyfill = function (a) {
  74. var b = [],
  75. c = Object.prototype.hasOwnProperty,
  76. e;
  77. for (e in a) c.call(a, e) && b.push(e);
  78. return b
  79. });
  80. Array.prototype.reduce || (d.reducePolyfill = function (a, b) {
  81. for (var c = 1 < arguments.length ? 0 : 1, e = 1 < arguments.length ? b : this[0], p = this.length; c < p; ++c) e = a.call(this, e, this[c], c, this);
  82. return e
  83. });
  84. D || (P(d.SVGRenderer.prototype, "text",
  85. function (a) {
  86. return a.apply(this, Array.prototype.slice.call(arguments, 1)).css({
  87. position: "absolute"
  88. })
  89. }), d.Pointer.prototype.normalize = function (a, b) {
  90. a = a || v.event;
  91. a.target || (a.target = a.srcElement);
  92. b || (this.chartPosition = b = d.offset(this.chart.container));
  93. return d.extend(a, {
  94. chartX: Math.round(Math.max(a.x, a.clientX - b.left)),
  95. chartY: Math.round(a.y)
  96. })
  97. },
  98. f.prototype.ieSanitizeSVG = function (a) {
  99. return a = a.replace(/<IMG /g, "\x3cimage ").replace(/<(\/?)TITLE>/g, "\x3c$1title\x3e").replace(/height=([^" ]+)/g, 'height\x3d"$1"').replace(/width=([^" ]+)/g, 'width\x3d"$1"').replace(/hc-svg-href="([^"]+)">/g, 'xlink:href\x3d"$1"/\x3e').replace(/ id=([^" >]+)/g, ' id\x3d"$1"').replace(/class=([^" >]+)/g, 'class\x3d"$1"').replace(/ transform /g, " ").replace(/:(path|rect)/g, "$1").replace(/style="([^"]+)"/g,
  100. function (a) {
  101. return a.toLowerCase()
  102. })
  103. },
  104. f.prototype.isReadyToRender = function () {
  105. var a = this;
  106. return D || v != v.top || "complete" === h.readyState ? !0 : (h.attachEvent("onreadystatechange",
  107. function () {
  108. h.detachEvent("onreadystatechange", a.firstRender);
  109. "complete" === h.readyState && a.firstRender()
  110. }), !1)
  111. },
  112. h.createElementNS || (h.createElementNS = function (a, b) {
  113. return h.createElement(b)
  114. }), d.addEventListenerPolyfill = function (a, b) {
  115. function c(a) {
  116. a.target = a.srcElement || v;
  117. b.call(e, a)
  118. }
  119. var e = this;
  120. e.attachEvent && (e.hcEventsIE || (e.hcEventsIE = {}), b.hcKey || (b.hcKey = d.uniqueKey()), e.hcEventsIE[b.hcKey] = c, e.attachEvent("on" + a, c))
  121. },
  122. d.removeEventListenerPolyfill = function (a, b) {
  123. this.detachEvent && (b = this.hcEventsIE[b.hcKey], this.detachEvent("on" + a, b))
  124. },
  125. f = {
  126. docMode8: h && 8 === h.documentMode,
  127. init: function (a, b) {
  128. var c = ["\x3c", b, ' filled\x3d"f" stroked\x3d"f"'],
  129. e = ["position: ", "absolute", ";"],
  130. d = "div" === b; ("shape" === b || d) && e.push("left:0;top:0;width:1px;height:1px;");
  131. e.push("visibility: ", d ? "hidden" : "visible");
  132. c.push(' style\x3d"', e.join(""), '"/\x3e');
  133. b && (c = d || "span" === b || "img" === b ? c.join("") : a.prepVML(c), this.element = A(c));
  134. this.renderer = a
  135. },
  136. add: function (a) {
  137. var b = this.renderer,
  138. c = this.element,
  139. e = b.box,
  140. d = a && a.inverted,
  141. e = a ? a.element || a : e;
  142. a && (this.parentGroup = a);
  143. d && b.invertChild(c, e);
  144. e.appendChild(c);
  145. this.added = !0;
  146. this.alignOnAdd && !this.deferUpdateTransform && this.updateTransform();
  147. if (this.onAdd) this.onAdd();
  148. this.className && this.attr("class", this.className);
  149. return this
  150. },
  151. updateTransform: y.prototype.htmlUpdateTransform,
  152. setSpanRotation: function () {
  153. var a = this.rotation,
  154. b = Math.cos(a * n),
  155. c = Math.sin(a * n);
  156. l(this.element, {
  157. filter: a ? ["progid:DXImageTransform.Microsoft.Matrix(M11\x3d", b, ", M12\x3d", -c, ", M21\x3d", c, ", M22\x3d", b, ", sizingMethod\x3d'auto expand')"].join("") : "none"
  158. })
  159. },
  160. getSpanCorrection: function (a, b, c, e, d) {
  161. var p = e ? Math.cos(e * n) : 1,
  162. J = e ? Math.sin(e * n) : 0,
  163. q = x(this.elemHeight, this.element.offsetHeight),
  164. h;
  165. this.xCorr = 0 > p && -a;
  166. this.yCorr = 0 > J && -q;
  167. h = 0 > p * J;
  168. this.xCorr += J * b * (h ? 1 - c : c);
  169. this.yCorr -= p * b * (e ? h ? c : 1 - c : 1);
  170. d && "left" !== d && (this.xCorr -= a * c * (0 > p ? -1 : 1), e && (this.yCorr -= q * c * (0 > J ? -1 : 1)), l(this.element, {
  171. textAlign: d
  172. }))
  173. },
  174. pathToVML: function (a) {
  175. for (var b = a.length,
  176. c = []; b--;) L(a[b]) ? c[b] = Math.round(10 * a[b]) - 5 : "Z" === a[b] ? c[b] = "x" : (c[b] = a[b], !a.isArc || "wa" !== a[b] && "at" !== a[b] || (c[b + 5] === c[b + 7] && (c[b + 7] += a[b + 7] > a[b + 5] ? 1 : -1), c[b + 6] === c[b + 8] && (c[b + 8] += a[b + 8] > a[b + 6] ? 1 : -1)));
  177. return c.join(" ") || "x"
  178. },
  179. clip: function (a) {
  180. var b = this,
  181. c;
  182. a ? (c = a.members, G(c, b), c.push(b), b.destroyClip = function () {
  183. G(c, b)
  184. },
  185. a = a.getCSS(b)) : (b.destroyClip && b.destroyClip(), a = {
  186. clip: b.docMode8 ? "inherit" : "rect(auto)"
  187. });
  188. return b.css(a)
  189. },
  190. css: y.prototype.htmlCss,
  191. safeRemoveChild: function (a) {
  192. a.parentNode && F(a)
  193. },
  194. destroy: function () {
  195. this.destroyClip && this.destroyClip();
  196. return y.prototype.destroy.apply(this)
  197. },
  198. on: function (a, b) {
  199. this.element["on" + a] = function () {
  200. var a = v.event;
  201. a.target = a.srcElement;
  202. b(a)
  203. };
  204. return this
  205. },
  206. cutOffPath: function (a, b) {
  207. var c;
  208. a = a.split(/[ ,]/);
  209. c = a.length;
  210. if (9 === c || 11 === c) a[c - 4] = a[c - 2] = t(a[c - 2]) - 10 * b;
  211. return a.join(" ")
  212. },
  213. shadow: function (a, b, c) {
  214. var e = [],
  215. d,
  216. g = this.element,
  217. h = this.renderer,
  218. q,
  219. f = g.style,
  220. k,
  221. r = g.path,
  222. K,
  223. m,
  224. l,
  225. n;
  226. r && "string" !== typeof r.value && (r = "x");
  227. m = r;
  228. if (a) {
  229. l = x(a.width, 3);
  230. n = (a.opacity || .15) / l;
  231. for (d = 1; 3 >= d; d++) K = 2 * l + 1 - 2 * d,
  232. c && (m = this.cutOffPath(r.value, K + .5)),
  233. k = ['\x3cshape isShadow\x3d"true" strokeweight\x3d"', K, '" filled\x3d"false" path\x3d"', m, '" coordsize\x3d"10 10" style\x3d"', g.style.cssText, '" /\x3e'],
  234. q = A(h.prepVML(k), null, {
  235. left: t(f.left) + x(a.offsetX, 1),
  236. top: t(f.top) + x(a.offsetY, 1)
  237. }),
  238. c && (q.cutOff = K + 1),
  239. k = ['\x3cstroke color\x3d"', a.color || "#000000", '" opacity\x3d"', n * d, '"/\x3e'],
  240. A(h.prepVML(k), null, null, q),
  241. b ? b.element.appendChild(q) : g.parentNode.insertBefore(q, g),
  242. e.push(q);
  243. this.shadows = e
  244. }
  245. return this
  246. },
  247. updateShadows: M,
  248. setAttr: function (a, b) {
  249. this.docMode8 ? this.element[a] = b : this.element.setAttribute(a, b)
  250. },
  251. getAttr: function (a) {
  252. return this.docMode8 ? this.element[a] : this.element.getAttribute(a)
  253. },
  254. classSetter: function (a) {
  255. (this.added ? this.element : this).className = a
  256. },
  257. dashstyleSetter: function (a, b, c) {
  258. (c.getElementsByTagName("stroke")[0] || A(this.renderer.prepVML(["\x3cstroke/\x3e"]), null, null, c))[b] = a || "solid";
  259. this[b] = a
  260. },
  261. dSetter: function (a, b, c) {
  262. var e = this.shadows;
  263. a = a || [];
  264. this.d = a.join && a.join(" ");
  265. c.path = a = this.pathToVML(a);
  266. if (e) for (c = e.length; c--;) e[c].path = e[c].cutOff ? this.cutOffPath(a, e[c].cutOff) : a;
  267. this.setAttr(b, a)
  268. },
  269. fillSetter: function (a, b, c) {
  270. var e = c.nodeName;
  271. "SPAN" === e ? c.style.color = a : "IMG" !== e && (c.filled = "none" !== a, this.setAttr("fillcolor", this.renderer.color(a, c, b, this)))
  272. },
  273. "fill-opacitySetter": function (a, b, c) {
  274. A(this.renderer.prepVML(["\x3c", b.split("-")[0], ' opacity\x3d"', a, '"/\x3e']), null, null, c)
  275. },
  276. opacitySetter: M,
  277. rotationSetter: function (a, b, c) {
  278. c = c.style;
  279. this[b] = c[b] = a;
  280. c.left = -Math.round(Math.sin(a * n) + 1) + "px";
  281. c.top = Math.round(Math.cos(a * n)) + "px"
  282. },
  283. strokeSetter: function (a, b, c) {
  284. this.setAttr("strokecolor", this.renderer.color(a, c, b, this))
  285. },
  286. "stroke-widthSetter": function (a, b, c) {
  287. c.stroked = !!a;
  288. this[b] = a;
  289. L(a) && (a += "px");
  290. this.setAttr("strokeweight", a)
  291. },
  292. titleSetter: function (a, b) {
  293. this.setAttr(b, a)
  294. },
  295. visibilitySetter: function (a, b, c) {
  296. "inherit" === a && (a = "visible");
  297. this.shadows && I(this.shadows,
  298. function (c) {
  299. c.style[b] = a
  300. });
  301. "DIV" === c.nodeName && (a = "hidden" === a ? "-999em" : 0, this.docMode8 || (c.style[b] = a ? "visible" : "hidden"), b = "top");
  302. c.style[b] = a
  303. },
  304. xSetter: function (a, b, c) {
  305. this[b] = a;
  306. "x" === b ? b = "left" : "y" === b && (b = "top");
  307. this.updateClipping ? (this[b] = a, this.updateClipping()) : c.style[b] = a
  308. },
  309. zIndexSetter: function (a, b, c) {
  310. c.style[b] = a
  311. },
  312. fillGetter: function () {
  313. return this.getAttr("fillcolor") || ""
  314. },
  315. strokeGetter: function () {
  316. return this.getAttr("strokecolor") || ""
  317. },
  318. classGetter: function () {
  319. return this.getAttr("className") || ""
  320. }
  321. },
  322. f["stroke-opacitySetter"] = f["fill-opacitySetter"], d.VMLElement = f = w(y, f), f.prototype.ySetter = f.prototype.widthSetter = f.prototype.heightSetter = f.prototype.xSetter, f = {
  323. Element: f,
  324. isIE8: -1 < v.navigator.userAgent.indexOf("MSIE 8.0"),
  325. init: function (a, b, c) {
  326. var e, d;
  327. this.alignedObjects = [];
  328. e = this.createElement("div").css({
  329. position: "relative"
  330. });
  331. d = e.element;
  332. a.appendChild(e.element);
  333. this.isVML = !0;
  334. this.box = d;
  335. this.boxWrapper = e;
  336. this.gradients = {};
  337. this.cache = {};
  338. this.cacheKeys = [];
  339. this.imgCount = 0;
  340. this.setSize(b, c, !1);
  341. if (!h.namespaces.hcv) {
  342. h.namespaces.add("hcv", "urn:schemas-microsoft-com:vml");
  343. try {
  344. h.createStyleSheet().cssText = "hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "
  345. } catch (g) {
  346. h.styleSheets[0].cssText += "hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "
  347. }
  348. }
  349. },
  350. isHidden: function () {
  351. return !this.box.offsetWidth
  352. },
  353. clipRect: function (a, b, c, e) {
  354. var d = this.createElement(),
  355. g = C(a);
  356. return B(d, {
  357. members: [],
  358. count: 0,
  359. left: (g ? a.x : a) + 1,
  360. top: (g ? a.y : b) + 1,
  361. width: (g ? a.width : c) - 1,
  362. height: (g ? a.height : e) - 1,
  363. getCSS: function (a) {
  364. var b = a.element,
  365. c = b.nodeName,
  366. e = a.inverted,
  367. d = this.top - ("shape" === c ? b.offsetTop : 0),
  368. g = this.left,
  369. b = g + this.width,
  370. p = d + this.height,
  371. d = {
  372. clip: "rect(" + Math.round(e ? g : d) + "px," + Math.round(e ? p : b) + "px," + Math.round(e ? b : p) + "px," + Math.round(e ? d : g) + "px)"
  373. }; !e && a.docMode8 && "DIV" === c && B(d, {
  374. width: b + "px",
  375. height: p + "px"
  376. });
  377. return d
  378. },
  379. updateClipping: function () {
  380. I(d.members,
  381. function (a) {
  382. a.element && a.css(d.getCSS(a))
  383. })
  384. }
  385. })
  386. },
  387. color: function (a, b, c, e) {
  388. var p = this,
  389. g, h = /^rgba/,
  390. q, f, k = "none";
  391. a && a.linearGradient ? f = "gradient" : a && a.radialGradient && (f = "pattern");
  392. if (f) {
  393. var r, l, m = a.linearGradient || a.radialGradient,
  394. n, t, u, v, w, x = "";
  395. a = a.stops;
  396. var y, B = [],
  397. C = function () {
  398. q = ['\x3cfill colors\x3d"' + B.join(",") + '" opacity\x3d"', u, '" o:opacity2\x3d"', t, '" type\x3d"', f, '" ', x, 'focus\x3d"100%" method\x3d"any" /\x3e'];
  399. A(p.prepVML(q), null, null, b)
  400. };
  401. n = a[0];
  402. y = a[a.length - 1];
  403. 0 < n[0] && a.unshift([0, n[1]]);
  404. 1 > y[0] && a.push([1, y[1]]);
  405. I(a,
  406. function (a, b) {
  407. h.test(a[1]) ? (g = d.color(a[1]), r = g.get("rgb"), l = g.get("a")) : (r = a[1], l = 1);
  408. B.push(100 * a[0] + "% " + r);
  409. b ? (u = l, v = r) : (t = l, w = r)
  410. });
  411. if ("fill" === c) if ("gradient" === f) c = m.x1 || m[0] || 0,
  412. a = m.y1 || m[1] || 0,
  413. n = m.x2 || m[2] || 0,
  414. m = m.y2 || m[3] || 0,
  415. x = 'angle\x3d"' + (90 - 180 * Math.atan((m - a) / (n - c)) / Math.PI) + '"',
  416. C();
  417. else {
  418. var k = m.r,
  419. D = 2 * k,
  420. E = 2 * k,
  421. F = m.cx,
  422. G = m.cy,
  423. H = b.radialReference,
  424. z, k = function () {
  425. H && (z = e.getBBox(), F += (H[0] - z.x) / z.width - .5, G += (H[1] - z.y) / z.height - .5, D *= H[2] / z.width, E *= H[2] / z.height);
  426. x = 'src\x3d"' + d.getOptions().global.VMLRadialGradientURL + '" size\x3d"' + D + "," + E + '" origin\x3d"0.5,0.5" position\x3d"' + F + "," + G + '" color2\x3d"' + w + '" ';
  427. C()
  428. };
  429. e.added ? k() : e.onAdd = k;
  430. k = v
  431. } else k = r
  432. } else h.test(a) && "IMG" !== b.tagName ? (g = d.color(a), e[c + "-opacitySetter"](g.get("a"), c, b), k = g.get("rgb")) : (k = b.getElementsByTagName(c), k.length && (k[0].opacity = 1, k[0].type = "solid"), k = a);
  433. return k
  434. },
  435. prepVML: function (a) {
  436. var b = this.isIE8;
  437. a = a.join("");
  438. b ? (a = a.replace("/\x3e", ' xmlns\x3d"urn:schemas-microsoft-com:vml" /\x3e'), a = -1 === a.indexOf('style\x3d"') ? a.replace("/\x3e", ' style\x3d"display:inline-block;behavior:url(#default#VML);" /\x3e') : a.replace('style\x3d"', 'style\x3d"display:inline-block;behavior:url(#default#VML);')) : a = a.replace("\x3c", "\x3chcv:");
  439. return a
  440. },
  441. text: u.prototype.html,
  442. path: function (a) {
  443. var b = {
  444. coordsize: "10 10"
  445. };
  446. N(a) ? b.d = a : C(a) && B(b, a);
  447. return this.createElement("shape").attr(b)
  448. },
  449. circle: function (a, b, c) {
  450. var e = this.symbol("circle");
  451. C(a) && (c = a.r, b = a.y, a = a.x);
  452. e.isCircle = !0;
  453. e.r = c;
  454. return e.attr({
  455. x: a,
  456. y: b
  457. })
  458. },
  459. g: function (a) {
  460. var b;
  461. a && (b = {
  462. className: "highcharts-" + a,
  463. "class": "highcharts-" + a
  464. });
  465. return this.createElement("div").attr(b)
  466. },
  467. image: function (a, b, c, e, d) {
  468. var g = this.createElement("img").attr({
  469. src: a
  470. });
  471. 1 < arguments.length && g.attr({
  472. x: b,
  473. y: c,
  474. width: e,
  475. height: d
  476. });
  477. return g
  478. },
  479. createElement: function (a) {
  480. return "rect" === a ? this.symbol(a) : u.prototype.createElement.call(this, a)
  481. },
  482. invertChild: function (a, b) {
  483. var c = this;
  484. b = b.style;
  485. var e = "IMG" === a.tagName && a.style;
  486. l(a, {
  487. flip: "x",
  488. left: t(b.width) - (e ? t(e.top) : 1),
  489. top: t(b.height) - (e ? t(e.left) : 1),
  490. rotation: -90
  491. });
  492. I(a.childNodes,
  493. function (b) {
  494. c.invertChild(b, a)
  495. })
  496. },
  497. symbols: {
  498. arc: function (a, b, c, e, d) {
  499. var g = d.start,
  500. h = d.end,
  501. f = d.r || c || e;
  502. c = d.innerR;
  503. e = Math.cos(g);
  504. var p = Math.sin(g),
  505. k = Math.cos(h),
  506. l = Math.sin(h);
  507. if (0 === h - g) return ["x"];
  508. g = ["wa", a - f, b - f, a + f, b + f, a + f * e, b + f * p, a + f * k, b + f * l];
  509. d.open && !c && g.push("e", "M", a, b);
  510. g.push("at", a - c, b - c, a + c, b + c, a + c * k, b + c * l, a + c * e, b + c * p, "x", "e");
  511. g.isArc = !0;
  512. return g
  513. },
  514. circle: function (a, b, c, e, d) {
  515. d && E(d.r) && (c = e = 2 * d.r);
  516. d && d.isCircle && (a -= c / 2, b -= e / 2);
  517. return ["wa", a, b, a + c, b + e, a + c, b + e / 2, a + c, b + e / 2, "e"]
  518. },
  519. rect: function (a, b, c, d, f) {
  520. return u.prototype.symbols[E(f) && f.r ? "callout" : "square"].call(0, a, b, c, d, f)
  521. }
  522. }
  523. },
  524. d.VMLRenderer = w = function () {
  525. this.init.apply(this, arguments)
  526. },
  527. w.prototype = O(u.prototype, f), d.Renderer = w);
  528. u.prototype.getSpanWidth = function (a, b) {
  529. var c = a.getBBox(!0).width; !D && this.forExport && (c = this.measureSpanWidth(b.firstChild.data, a.styles));
  530. return c
  531. };
  532. u.prototype.measureSpanWidth = function (a, b) {
  533. var c = h.createElement("span");
  534. a = h.createTextNode(a);
  535. c.appendChild(a);
  536. l(c, b);
  537. this.box.appendChild(c);
  538. b = c.offsetWidth;
  539. F(c);
  540. return b
  541. }
  542. })(l)
  543. });