{"version":3,"sources":["webpack:///./node_modules/zrender/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/zrender/lib/tool/transformPath.js","webpack:///./node_modules/zrender/lib/tool/path.js","webpack:///./node_modules/zrender/lib/tool/parseXML.js","webpack:///./node_modules/zrender/lib/zrender.js","webpack:///./node_modules/zrender/lib/tool/parseSVG.js","webpack:///./node_modules/zrender/lib/tool/color.js"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","__","this","constructor","create","CMD","PathProxy","points","mathSqrt","Math","sqrt","mathAtan2","atan2","mathSin","sin","mathCos","cos","PI","vMag","v","vRatio","u","vAngle","acos","processArc","x1","y1","x2","y2","fa","fs","rx","ry","psiDeg","cmd","path","psi","xp","yp","lambda","f","cxp","cyp","cx","cy","theta","dTheta","n","round","addData","commandReg","numberReg","SVGPath","_super","apply","arguments","applyTransform","m","Path","isPathProxy","setData","createPathOptions","str","opts","pathProxy","data","prevCmd","cpx","cpy","subpathX","subpathY","cmdList","match","l","length","cmdText","cmdStr","charAt","pLen","i","parseFloat","off","ctlPtx","ctlPty","len","pathData","L","M","C","Q","A","Z","toStatic","createPathProxyFromString","innerOpts","extend","buildPath","ctx","getContext","rebuildPath","nPoint","j","k","R","x","y","sx","sy","angle","v2ApplyTransform","p_1","increaseVersion","transformPath","dirtyShape","createFromString","extendFromString","defaultOpts","Sub","_this","mergePath","pathEls","pathList","pathEl","createPathProxy","shapeChanged","shape","push","pathBundle","appendPath","parseXML","svg","isString","DOMParser","parseFromString","svgNode","nodeType","firstChild","nodeName","toLowerCase","nextSibling","useVML","env","canvasSupported","painterCtors","instances","ZRender","id","dom","_sleepAfterStill","_stillFrameAccum","_needsRefresh","_needsRefreshHover","_darkMode","storage","Storage","rendererType","renderer","Error","zrUtil","useDirtyRect","painter","handerProxy","node","worker","HandlerProxy","getViewportRoot","root","handler","Handler","animation","Animation","stage","update","_flush","start","add","el","addRoot","addSelfToZr","refresh","remove","delRoot","removeSelfFromZr","configLayer","zLevel","config","setBackgroundColor","backgroundColor","_backgroundColor","lum","DARK_MODE_THRESHOLD","colorStops","totalLum","color","isDarkMode","getBackgroundColor","setDarkMode","darkMode","refreshImmediately","fromInside","flush","triggerRendered","Date","getTime","refreshHoverImmediately","end","trigger","elapsedTime","stop","setSleepAfterStill","stillFramesCount","wakeUp","addHover","removeHover","clearHover","refreshHover","getType","resize","width","height","clearAnimation","clear","getWidth","getHeight","pathToImage","e","dpr","setCursorStyle","cursorStyle","findHover","on","eventName","eventHandler","context","event","roots","getRoots","Group","delAllRoots","dispose","init","zr","registerPainter","name","Ctor","nodeParsers","INHERITABLE_STYLE_ATTRIBUTES_MAP","INHERITABLE_STYLE_ATTRIBUTES_MAP_KEYS","keys","SELF_STYLE_ATTRIBUTES_MAP","SELF_STYLE_ATTRIBUTES_MAP_KEYS","SVGParser","_defs","_root","parse","xml","opt","_defsUsePending","named","viewBox","getAttribute","isNaN","parseAttributes","viewBoxRect","viewBoxTransform","child","_parseNode","defs","defsUsePending","item","style","applyDefs","viewBoxArr","splitNumberSequence","makeViewBoxTransform","ignoreViewBox","elRoot","scaleX","scaleY","scale","ignoreRootClip","setClipPath","Rect","xmlNode","parentGroup","namedFrom","isInDefs","isInText","namedFromForSub","parser_1","hasOwn","nameAttr","newNamed","svgNodeTagLower","parser","paintServerParsers","def","isGroup","_parseText","text","TSpan","textContent","silent","_textX","_textY","inheritStyle","parentSelfStyle","__selfStyle","textBaseline","zrTextBaseline","parentInheritedStyle","__inheritedStyle","textAlign","zrTextAlign","applyTextAlignment","textStyle","fontSize","font","fontFamily","fontStyle","fontWeight","join","rect","getBoundingRect","internalField","g","setShape","circle","Circle","r","line","Line","ellipse","Ellipse","pointsArr","pointsStr","parsePoints","polygon","Polygon","polyline","Polyline","img","ZRImage","setStyle","image","dx","dy","parseInt","gradient","LinearGradient","parsePaintServerUnit","parseGradientColorStops","RadialGradient","global","toLocaleLowerCase","offsetStr","offset","indexOf","styleVals","parseInlineStyle","stopColor","parent","defaults","pointsString","list","onlyInlineStyle","isTextGroup","disp","inheritedStyle","selfStyle","transform","replace","transformOps_1","mt","transformRegex","type","value","valueArr","matrix","console","warn","setLocalTransform","parseTransformAttribute","inheritableStyleResult","selfStyleResult","svgAttrName","attrValue","parseAttributeStyle","fill","getFillStrokeStyle","stroke","each","propName","lineDash","map","visibility","invisible","display","ignore","z","z2","urlRegex","method","urlMatch","url","trim","rawStr","styleRegex","styleRegResult","lastIndex","exec","svgStlAttr","zrInheritableStlAttr","zrSelfStlAttr","boundingRect","min","parseSVG","kCSSColorTable","clampCssByte","clampCssFloat","parseCssInt","val","parseCssFloat","cssHueToRgb","m1","m2","h","setRgba","out","a","copyRgba","colorCache","LRU","lastRemovedArr","putToCache","colorStr","rgbaArr","put","slice","cached","get","iv","strLen","op","ep","fname","substr","params","split","alpha","pop","hsla2rgba","hsla","rgba","s","lift","level","colorArr","stringify","toHex","toString","arrColor","backgroundLum","arr"],"mappings":"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","file":"vendors~app~cd89f23c.js","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import PathProxy from '../core/PathProxy';\nimport { applyTransform as v2ApplyTransform } from '../core/vector';\nvar CMD = PathProxy.CMD;\nvar points = [[], [], []];\nvar mathSqrt = Math.sqrt;\nvar mathAtan2 = Math.atan2;\nexport default function transformPath(path, m) {\n var data = path.data;\n var len = path.len();\n var cmd;\n var nPoint;\n var i;\n var j;\n var k;\n var p;\n var M = CMD.M;\n var C = CMD.C;\n var L = CMD.L;\n var R = CMD.R;\n var A = CMD.A;\n var Q = CMD.Q;\n for (i = 0, j = 0; i < len;) {\n cmd = data[i++];\n j = i;\n nPoint = 0;\n switch (cmd) {\n case M:\n nPoint = 1;\n break;\n case L:\n nPoint = 1;\n break;\n case C:\n nPoint = 3;\n break;\n case Q:\n nPoint = 2;\n break;\n case A:\n var x = m[4];\n var y = m[5];\n var sx = mathSqrt(m[0] * m[0] + m[1] * m[1]);\n var sy = mathSqrt(m[2] * m[2] + m[3] * m[3]);\n var angle = mathAtan2(-m[1] / sy, m[0] / sx);\n data[i] *= sx;\n data[i++] += x;\n data[i] *= sy;\n data[i++] += y;\n data[i++] *= sx;\n data[i++] *= sy;\n data[i++] += angle;\n data[i++] += angle;\n i += 2;\n j = i;\n break;\n case R:\n p[0] = data[i++];\n p[1] = data[i++];\n v2ApplyTransform(p, p, m);\n data[j++] = p[0];\n data[j++] = p[1];\n p[0] += data[i++];\n p[1] += data[i++];\n v2ApplyTransform(p, p, m);\n data[j++] = p[0];\n data[j++] = p[1];\n }\n for (k = 0; k < nPoint; k++) {\n var p_1 = points[k];\n p_1[0] = data[i++];\n p_1[1] = data[i++];\n v2ApplyTransform(p_1, p_1, m);\n data[j++] = p_1[0];\n data[j++] = p_1[1];\n }\n }\n path.increaseVersion();\n}\n","import { __extends } from \"tslib\";\nimport Path from '../graphic/Path';\nimport PathProxy from '../core/PathProxy';\nimport transformPath from './transformPath';\nimport { extend } from '../core/util';\nvar mathSqrt = Math.sqrt;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nfunction vMag(v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n}\n;\nfunction vRatio(u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n}\n;\nfunction vAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1)\n * Math.acos(vRatio(u, v));\n}\n;\nfunction processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\n var psi = psiDeg * (PI / 180.0);\n var xp = mathCos(psi) * (x1 - x2) / 2.0\n + mathSin(psi) * (y1 - y2) / 2.0;\n var yp = -1 * mathSin(psi) * (x1 - x2) / 2.0\n + mathCos(psi) * (y1 - y2) / 2.0;\n var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\n if (lambda > 1) {\n rx *= mathSqrt(lambda);\n ry *= mathSqrt(lambda);\n }\n var f = (fa === fs ? -1 : 1)\n * mathSqrt((((rx * rx) * (ry * ry))\n - ((rx * rx) * (yp * yp))\n - ((ry * ry) * (xp * xp))) / ((rx * rx) * (yp * yp)\n + (ry * ry) * (xp * xp))) || 0;\n var cxp = f * rx * yp / ry;\n var cyp = f * -ry * xp / rx;\n var cx = (x1 + x2) / 2.0\n + mathCos(psi) * cxp\n - mathSin(psi) * cyp;\n var cy = (y1 + y2) / 2.0\n + mathSin(psi) * cxp\n + mathCos(psi) * cyp;\n var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n var dTheta = vAngle(u, v);\n if (vRatio(u, v) <= -1) {\n dTheta = PI;\n }\n if (vRatio(u, v) >= 1) {\n dTheta = 0;\n }\n if (dTheta < 0) {\n var n = Math.round(dTheta / PI * 1e6) / 1e6;\n dTheta = PI * 2 + (n % 2) * PI;\n }\n path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\n}\nvar commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\nfunction createPathProxyFromString(data) {\n var path = new PathProxy();\n if (!data) {\n return path;\n }\n var cpx = 0;\n var cpy = 0;\n var subpathX = cpx;\n var subpathY = cpy;\n var prevCmd;\n var CMD = PathProxy.CMD;\n var cmdList = data.match(commandReg);\n if (!cmdList) {\n return path;\n }\n for (var l = 0; l < cmdList.length; l++) {\n var cmdText = cmdList[l];\n var cmdStr = cmdText.charAt(0);\n var cmd = void 0;\n var p = cmdText.match(numberReg) || [];\n var pLen = p.length;\n for (var i = 0; i < pLen; i++) {\n p[i] = parseFloat(p[i]);\n }\n var off = 0;\n while (off < pLen) {\n var ctlPtx = void 0;\n var ctlPty = void 0;\n var rx = void 0;\n var ry = void 0;\n var psi = void 0;\n var fa = void 0;\n var fs = void 0;\n var x1 = cpx;\n var y1 = cpy;\n var len = void 0;\n var pathData = void 0;\n switch (cmdStr) {\n case 'l':\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'L':\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'm':\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.M;\n path.addData(cmd, cpx, cpy);\n subpathX = cpx;\n subpathY = cpy;\n cmdStr = 'l';\n break;\n case 'M':\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.M;\n path.addData(cmd, cpx, cpy);\n subpathX = cpx;\n subpathY = cpy;\n cmdStr = 'L';\n break;\n case 'h':\n cpx += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'H':\n cpx = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'v':\n cpy += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'V':\n cpy = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'C':\n cmd = CMD.C;\n path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\n cpx = p[off - 2];\n cpy = p[off - 1];\n break;\n case 'c':\n cmd = CMD.C;\n path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\n cpx += p[off - 2];\n cpy += p[off - 1];\n break;\n case 'S':\n ctlPtx = cpx;\n ctlPty = cpy;\n len = path.len();\n pathData = path.data;\n if (prevCmd === CMD.C) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n cmd = CMD.C;\n x1 = p[off++];\n y1 = p[off++];\n cpx = p[off++];\n cpy = p[off++];\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n break;\n case 's':\n ctlPtx = cpx;\n ctlPty = cpy;\n len = path.len();\n pathData = path.data;\n if (prevCmd === CMD.C) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n cmd = CMD.C;\n x1 = cpx + p[off++];\n y1 = cpy + p[off++];\n cpx += p[off++];\n cpy += p[off++];\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n break;\n case 'Q':\n x1 = p[off++];\n y1 = p[off++];\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.Q;\n path.addData(cmd, x1, y1, cpx, cpy);\n break;\n case 'q':\n x1 = p[off++] + cpx;\n y1 = p[off++] + cpy;\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.Q;\n path.addData(cmd, x1, y1, cpx, cpy);\n break;\n case 'T':\n ctlPtx = cpx;\n ctlPty = cpy;\n len = path.len();\n pathData = path.data;\n if (prevCmd === CMD.Q) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.Q;\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n break;\n case 't':\n ctlPtx = cpx;\n ctlPty = cpy;\n len = path.len();\n pathData = path.data;\n if (prevCmd === CMD.Q) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.Q;\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n break;\n case 'A':\n rx = p[off++];\n ry = p[off++];\n psi = p[off++];\n fa = p[off++];\n fs = p[off++];\n x1 = cpx, y1 = cpy;\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.A;\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n break;\n case 'a':\n rx = p[off++];\n ry = p[off++];\n psi = p[off++];\n fa = p[off++];\n fs = p[off++];\n x1 = cpx, y1 = cpy;\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.A;\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n break;\n }\n }\n if (cmdStr === 'z' || cmdStr === 'Z') {\n cmd = CMD.Z;\n path.addData(cmd);\n cpx = subpathX;\n cpy = subpathY;\n }\n prevCmd = cmd;\n }\n path.toStatic();\n return path;\n}\nvar SVGPath = (function (_super) {\n __extends(SVGPath, _super);\n function SVGPath() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SVGPath.prototype.applyTransform = function (m) { };\n return SVGPath;\n}(Path));\nfunction isPathProxy(path) {\n return path.setData != null;\n}\nfunction createPathOptions(str, opts) {\n var pathProxy = createPathProxyFromString(str);\n var innerOpts = extend({}, opts);\n innerOpts.buildPath = function (path) {\n if (isPathProxy(path)) {\n path.setData(pathProxy.data);\n var ctx = path.getContext();\n if (ctx) {\n path.rebuildPath(ctx, 1);\n }\n }\n else {\n var ctx = path;\n pathProxy.rebuildPath(ctx, 1);\n }\n };\n innerOpts.applyTransform = function (m) {\n transformPath(pathProxy, m);\n this.dirtyShape();\n };\n return innerOpts;\n}\nexport function createFromString(str, opts) {\n return new SVGPath(createPathOptions(str, opts));\n}\nexport function extendFromString(str, defaultOpts) {\n var innerOpts = createPathOptions(str, defaultOpts);\n var Sub = (function (_super) {\n __extends(Sub, _super);\n function Sub(opts) {\n var _this = _super.call(this, opts) || this;\n _this.applyTransform = innerOpts.applyTransform;\n _this.buildPath = innerOpts.buildPath;\n return _this;\n }\n return Sub;\n }(SVGPath));\n return Sub;\n}\nexport function mergePath(pathEls, opts) {\n var pathList = [];\n var len = pathEls.length;\n for (var i = 0; i < len; i++) {\n var pathEl = pathEls[i];\n if (!pathEl.path) {\n pathEl.createPathProxy();\n }\n if (pathEl.shapeChanged()) {\n pathEl.buildPath(pathEl.path, pathEl.shape, true);\n }\n pathList.push(pathEl.path);\n }\n var pathBundle = new Path(opts);\n pathBundle.createPathProxy();\n pathBundle.buildPath = function (path) {\n if (isPathProxy(path)) {\n path.appendPath(pathList);\n var ctx = path.getContext();\n if (ctx) {\n path.rebuildPath(ctx, 1);\n }\n }\n };\n return pathBundle;\n}\n","import { isString } from '../core/util';\nexport function parseXML(svg) {\n if (isString(svg)) {\n var parser = new DOMParser();\n svg = parser.parseFromString(svg, 'text/xml');\n }\n var svgNode = svg;\n if (svgNode.nodeType === 9) {\n svgNode = svgNode.firstChild;\n }\n while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {\n svgNode = svgNode.nextSibling;\n }\n return svgNode;\n}\n","/*!\n* ZRender, a high performance 2d drawing library.\n*\n* Copyright (c) 2013, Baidu Inc.\n* All rights reserved.\n*\n* LICENSE\n* https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\n*/\nimport env from './core/env';\nimport * as zrUtil from './core/util';\nimport Handler from './Handler';\nimport Storage from './Storage';\nimport Animation from './animation/Animation';\nimport HandlerProxy from './dom/HandlerProxy';\nimport { lum } from './tool/color';\nimport { DARK_MODE_THRESHOLD } from './config';\nimport Group from './graphic/Group';\nvar useVML = !env.canvasSupported;\nvar painterCtors = {};\nvar instances = {};\nfunction delInstance(id) {\n delete instances[id];\n}\nfunction isDarkMode(backgroundColor) {\n if (!backgroundColor) {\n return false;\n }\n if (typeof backgroundColor === 'string') {\n return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD;\n }\n else if (backgroundColor.colorStops) {\n var colorStops = backgroundColor.colorStops;\n var totalLum = 0;\n var len = colorStops.length;\n for (var i = 0; i < len; i++) {\n totalLum += lum(colorStops[i].color, 1);\n }\n totalLum /= len;\n return totalLum < DARK_MODE_THRESHOLD;\n }\n return false;\n}\nvar ZRender = (function () {\n function ZRender(id, dom, opts) {\n var _this = this;\n this._sleepAfterStill = 10;\n this._stillFrameAccum = 0;\n this._needsRefresh = true;\n this._needsRefreshHover = true;\n this._darkMode = false;\n opts = opts || {};\n this.dom = dom;\n this.id = id;\n var storage = new Storage();\n var rendererType = opts.renderer || 'canvas';\n if (useVML) {\n throw new Error('IE8 support has been dropped since 5.0');\n }\n if (!painterCtors[rendererType]) {\n rendererType = zrUtil.keys(painterCtors)[0];\n }\n if (!painterCtors[rendererType]) {\n throw new Error(\"Renderer '\" + rendererType + \"' is not imported. Please import it first.\");\n }\n opts.useDirtyRect = opts.useDirtyRect == null\n ? false\n : opts.useDirtyRect;\n var painter = new painterCtors[rendererType](dom, storage, opts, id);\n this.storage = storage;\n this.painter = painter;\n var handerProxy = (!env.node && !env.worker)\n ? new HandlerProxy(painter.getViewportRoot(), painter.root)\n : null;\n this.handler = new Handler(storage, painter, handerProxy, painter.root);\n this.animation = new Animation({\n stage: {\n update: function () { return _this._flush(true); }\n }\n });\n this.animation.start();\n }\n ZRender.prototype.add = function (el) {\n if (!el) {\n return;\n }\n this.storage.addRoot(el);\n el.addSelfToZr(this);\n this.refresh();\n };\n ZRender.prototype.remove = function (el) {\n if (!el) {\n return;\n }\n this.storage.delRoot(el);\n el.removeSelfFromZr(this);\n this.refresh();\n };\n ZRender.prototype.configLayer = function (zLevel, config) {\n if (this.painter.configLayer) {\n this.painter.configLayer(zLevel, config);\n }\n this.refresh();\n };\n ZRender.prototype.setBackgroundColor = function (backgroundColor) {\n if (this.painter.setBackgroundColor) {\n this.painter.setBackgroundColor(backgroundColor);\n }\n this.refresh();\n this._backgroundColor = backgroundColor;\n this._darkMode = isDarkMode(backgroundColor);\n };\n ZRender.prototype.getBackgroundColor = function () {\n return this._backgroundColor;\n };\n ZRender.prototype.setDarkMode = function (darkMode) {\n this._darkMode = darkMode;\n };\n ZRender.prototype.isDarkMode = function () {\n return this._darkMode;\n };\n ZRender.prototype.refreshImmediately = function (fromInside) {\n if (!fromInside) {\n this.animation.update(true);\n }\n this._needsRefresh = false;\n this.painter.refresh();\n this._needsRefresh = false;\n };\n ZRender.prototype.refresh = function () {\n this._needsRefresh = true;\n this.animation.start();\n };\n ZRender.prototype.flush = function () {\n this._flush(false);\n };\n ZRender.prototype._flush = function (fromInside) {\n var triggerRendered;\n var start = new Date().getTime();\n if (this._needsRefresh) {\n triggerRendered = true;\n this.refreshImmediately(fromInside);\n }\n if (this._needsRefreshHover) {\n triggerRendered = true;\n this.refreshHoverImmediately();\n }\n var end = new Date().getTime();\n if (triggerRendered) {\n this._stillFrameAccum = 0;\n this.trigger('rendered', {\n elapsedTime: end - start\n });\n }\n else if (this._sleepAfterStill > 0) {\n this._stillFrameAccum++;\n if (this._stillFrameAccum > this._sleepAfterStill) {\n this.animation.stop();\n }\n }\n };\n ZRender.prototype.setSleepAfterStill = function (stillFramesCount) {\n this._sleepAfterStill = stillFramesCount;\n };\n ZRender.prototype.wakeUp = function () {\n this.animation.start();\n this._stillFrameAccum = 0;\n };\n ZRender.prototype.addHover = function (el) {\n };\n ZRender.prototype.removeHover = function (el) {\n };\n ZRender.prototype.clearHover = function () {\n };\n ZRender.prototype.refreshHover = function () {\n this._needsRefreshHover = true;\n };\n ZRender.prototype.refreshHoverImmediately = function () {\n this._needsRefreshHover = false;\n if (this.painter.refreshHover && this.painter.getType() === 'canvas') {\n this.painter.refreshHover();\n }\n };\n ZRender.prototype.resize = function (opts) {\n opts = opts || {};\n this.painter.resize(opts.width, opts.height);\n this.handler.resize();\n };\n ZRender.prototype.clearAnimation = function () {\n this.animation.clear();\n };\n ZRender.prototype.getWidth = function () {\n return this.painter.getWidth();\n };\n ZRender.prototype.getHeight = function () {\n return this.painter.getHeight();\n };\n ZRender.prototype.pathToImage = function (e, dpr) {\n if (this.painter.pathToImage) {\n return this.painter.pathToImage(e, dpr);\n }\n };\n ZRender.prototype.setCursorStyle = function (cursorStyle) {\n this.handler.setCursorStyle(cursorStyle);\n };\n ZRender.prototype.findHover = function (x, y) {\n return this.handler.findHover(x, y);\n };\n ZRender.prototype.on = function (eventName, eventHandler, context) {\n this.handler.on(eventName, eventHandler, context);\n return this;\n };\n ZRender.prototype.off = function (eventName, eventHandler) {\n this.handler.off(eventName, eventHandler);\n };\n ZRender.prototype.trigger = function (eventName, event) {\n this.handler.trigger(eventName, event);\n };\n ZRender.prototype.clear = function () {\n var roots = this.storage.getRoots();\n for (var i = 0; i < roots.length; i++) {\n if (roots[i] instanceof Group) {\n roots[i].removeSelfFromZr(this);\n }\n }\n this.storage.delAllRoots();\n this.painter.clear();\n };\n ZRender.prototype.dispose = function () {\n this.animation.stop();\n this.clear();\n this.storage.dispose();\n this.painter.dispose();\n this.handler.dispose();\n this.animation =\n this.storage =\n this.painter =\n this.handler = null;\n delInstance(this.id);\n };\n return ZRender;\n}());\nexport function init(dom, opts) {\n var zr = new ZRender(zrUtil.guid(), dom, opts);\n instances[zr.id] = zr;\n return zr;\n}\nexport function dispose(zr) {\n zr.dispose();\n}\nexport function disposeAll() {\n for (var key in instances) {\n if (instances.hasOwnProperty(key)) {\n instances[key].dispose();\n }\n }\n instances = {};\n}\nexport function getInstance(id) {\n return instances[id];\n}\nexport function registerPainter(name, Ctor) {\n painterCtors[name] = Ctor;\n}\nexport var version = '5.1.0';\n;\n","import Group from '../graphic/Group';\nimport ZRImage from '../graphic/Image';\nimport Circle from '../graphic/shape/Circle';\nimport Rect from '../graphic/shape/Rect';\nimport Ellipse from '../graphic/shape/Ellipse';\nimport Line from '../graphic/shape/Line';\nimport Polygon from '../graphic/shape/Polygon';\nimport Polyline from '../graphic/shape/Polyline';\nimport * as matrix from '../core/matrix';\nimport { createFromString } from './path';\nimport { defaults, trim, each, map, keys, hasOwn } from '../core/util';\nimport LinearGradient from '../graphic/LinearGradient';\nimport RadialGradient from '../graphic/RadialGradient';\nimport TSpan from '../graphic/TSpan';\nimport { parseXML } from './parseXML';\n;\nvar nodeParsers;\nvar INHERITABLE_STYLE_ATTRIBUTES_MAP = {\n 'fill': 'fill',\n 'stroke': 'stroke',\n 'stroke-width': 'lineWidth',\n 'opacity': 'opacity',\n 'fill-opacity': 'fillOpacity',\n 'stroke-opacity': 'strokeOpacity',\n 'stroke-dasharray': 'lineDash',\n 'stroke-dashoffset': 'lineDashOffset',\n 'stroke-linecap': 'lineCap',\n 'stroke-linejoin': 'lineJoin',\n 'stroke-miterlimit': 'miterLimit',\n 'font-family': 'fontFamily',\n 'font-size': 'fontSize',\n 'font-style': 'fontStyle',\n 'font-weight': 'fontWeight',\n 'text-anchor': 'textAlign',\n 'visibility': 'visibility',\n 'display': 'display'\n};\nvar INHERITABLE_STYLE_ATTRIBUTES_MAP_KEYS = keys(INHERITABLE_STYLE_ATTRIBUTES_MAP);\nvar SELF_STYLE_ATTRIBUTES_MAP = {\n 'alignment-baseline': 'textBaseline',\n 'stop-color': 'stopColor'\n};\nvar SELF_STYLE_ATTRIBUTES_MAP_KEYS = keys(SELF_STYLE_ATTRIBUTES_MAP);\nvar SVGParser = (function () {\n function SVGParser() {\n this._defs = {};\n this._root = null;\n }\n SVGParser.prototype.parse = function (xml, opt) {\n opt = opt || {};\n var svg = parseXML(xml);\n if (!svg) {\n throw new Error('Illegal svg');\n }\n this._defsUsePending = [];\n var root = new Group();\n this._root = root;\n var named = [];\n var viewBox = svg.getAttribute('viewBox') || '';\n var width = parseFloat((svg.getAttribute('width') || opt.width));\n var height = parseFloat((svg.getAttribute('height') || opt.height));\n isNaN(width) && (width = null);\n isNaN(height) && (height = null);\n parseAttributes(svg, root, null, true, false);\n var child = svg.firstChild;\n while (child) {\n this._parseNode(child, root, named, null, false, false);\n child = child.nextSibling;\n }\n applyDefs(this._defs, this._defsUsePending);\n this._defsUsePending = [];\n var viewBoxRect;\n var viewBoxTransform;\n if (viewBox) {\n var viewBoxArr = splitNumberSequence(viewBox);\n if (viewBoxArr.length >= 4) {\n viewBoxRect = {\n x: parseFloat((viewBoxArr[0] || 0)),\n y: parseFloat((viewBoxArr[1] || 0)),\n width: parseFloat(viewBoxArr[2]),\n height: parseFloat(viewBoxArr[3])\n };\n }\n }\n if (viewBoxRect && width != null && height != null) {\n viewBoxTransform = makeViewBoxTransform(viewBoxRect, { x: 0, y: 0, width: width, height: height });\n if (!opt.ignoreViewBox) {\n var elRoot = root;\n root = new Group();\n root.add(elRoot);\n elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale;\n elRoot.x = viewBoxTransform.x;\n elRoot.y = viewBoxTransform.y;\n }\n }\n if (!opt.ignoreRootClip && width != null && height != null) {\n root.setClipPath(new Rect({\n shape: { x: 0, y: 0, width: width, height: height }\n }));\n }\n return {\n root: root,\n width: width,\n height: height,\n viewBoxRect: viewBoxRect,\n viewBoxTransform: viewBoxTransform,\n named: named\n };\n };\n SVGParser.prototype._parseNode = function (xmlNode, parentGroup, named, namedFrom, isInDefs, isInText) {\n var nodeName = xmlNode.nodeName.toLowerCase();\n var el;\n var namedFromForSub = namedFrom;\n if (nodeName === 'defs') {\n isInDefs = true;\n }\n if (nodeName === 'text') {\n isInText = true;\n }\n if (nodeName === 'defs' || nodeName === 'switch') {\n el = parentGroup;\n }\n else {\n if (!isInDefs) {\n var parser_1 = nodeParsers[nodeName];\n if (parser_1 && hasOwn(nodeParsers, nodeName)) {\n el = parser_1.call(this, xmlNode, parentGroup);\n var nameAttr = xmlNode.getAttribute('name');\n if (nameAttr) {\n var newNamed = {\n name: nameAttr,\n namedFrom: null,\n svgNodeTagLower: nodeName,\n el: el\n };\n named.push(newNamed);\n if (nodeName === 'g') {\n namedFromForSub = newNamed;\n }\n }\n else if (namedFrom) {\n named.push({\n name: namedFrom.name,\n namedFrom: namedFrom,\n svgNodeTagLower: nodeName,\n el: el\n });\n }\n parentGroup.add(el);\n }\n }\n var parser = paintServerParsers[nodeName];\n if (parser && hasOwn(paintServerParsers, nodeName)) {\n var def = parser.call(this, xmlNode);\n var id = xmlNode.getAttribute('id');\n if (id) {\n this._defs[id] = def;\n }\n }\n }\n if (el && el.isGroup) {\n var child = xmlNode.firstChild;\n while (child) {\n if (child.nodeType === 1) {\n this._parseNode(child, el, named, namedFromForSub, isInDefs, isInText);\n }\n else if (child.nodeType === 3 && isInText) {\n this._parseText(child, el);\n }\n child = child.nextSibling;\n }\n }\n };\n SVGParser.prototype._parseText = function (xmlNode, parentGroup) {\n var text = new TSpan({\n style: {\n text: xmlNode.textContent\n },\n silent: true,\n x: this._textX || 0,\n y: this._textY || 0\n });\n inheritStyle(parentGroup, text);\n parseAttributes(xmlNode, text, this._defsUsePending, false, false);\n applyTextAlignment(text, parentGroup);\n var textStyle = text.style;\n var fontSize = textStyle.fontSize;\n if (fontSize && fontSize < 9) {\n textStyle.fontSize = 9;\n text.scaleX *= fontSize / 9;\n text.scaleY *= fontSize / 9;\n }\n var font = (textStyle.fontSize || textStyle.fontFamily) && [\n textStyle.fontStyle,\n textStyle.fontWeight,\n (textStyle.fontSize || 12) + 'px',\n textStyle.fontFamily || 'sans-serif'\n ].join(' ');\n textStyle.font = font;\n var rect = text.getBoundingRect();\n this._textX += rect.width;\n parentGroup.add(text);\n return text;\n };\n SVGParser.internalField = (function () {\n nodeParsers = {\n 'g': function (xmlNode, parentGroup) {\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defsUsePending, false, false);\n return g;\n },\n 'rect': function (xmlNode, parentGroup) {\n var rect = new Rect();\n inheritStyle(parentGroup, rect);\n parseAttributes(xmlNode, rect, this._defsUsePending, false, false);\n rect.setShape({\n x: parseFloat(xmlNode.getAttribute('x') || '0'),\n y: parseFloat(xmlNode.getAttribute('y') || '0'),\n width: parseFloat(xmlNode.getAttribute('width') || '0'),\n height: parseFloat(xmlNode.getAttribute('height') || '0')\n });\n rect.silent = true;\n return rect;\n },\n 'circle': function (xmlNode, parentGroup) {\n var circle = new Circle();\n inheritStyle(parentGroup, circle);\n parseAttributes(xmlNode, circle, this._defsUsePending, false, false);\n circle.setShape({\n cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\n cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\n r: parseFloat(xmlNode.getAttribute('r') || '0')\n });\n circle.silent = true;\n return circle;\n },\n 'line': function (xmlNode, parentGroup) {\n var line = new Line();\n inheritStyle(parentGroup, line);\n parseAttributes(xmlNode, line, this._defsUsePending, false, false);\n line.setShape({\n x1: parseFloat(xmlNode.getAttribute('x1') || '0'),\n y1: parseFloat(xmlNode.getAttribute('y1') || '0'),\n x2: parseFloat(xmlNode.getAttribute('x2') || '0'),\n y2: parseFloat(xmlNode.getAttribute('y2') || '0')\n });\n line.silent = true;\n return line;\n },\n 'ellipse': function (xmlNode, parentGroup) {\n var ellipse = new Ellipse();\n inheritStyle(parentGroup, ellipse);\n parseAttributes(xmlNode, ellipse, this._defsUsePending, false, false);\n ellipse.setShape({\n cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\n cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\n rx: parseFloat(xmlNode.getAttribute('rx') || '0'),\n ry: parseFloat(xmlNode.getAttribute('ry') || '0')\n });\n ellipse.silent = true;\n return ellipse;\n },\n 'polygon': function (xmlNode, parentGroup) {\n var pointsStr = xmlNode.getAttribute('points');\n var pointsArr;\n if (pointsStr) {\n pointsArr = parsePoints(pointsStr);\n }\n var polygon = new Polygon({\n shape: {\n points: pointsArr || []\n },\n silent: true\n });\n inheritStyle(parentGroup, polygon);\n parseAttributes(xmlNode, polygon, this._defsUsePending, false, false);\n return polygon;\n },\n 'polyline': function (xmlNode, parentGroup) {\n var pointsStr = xmlNode.getAttribute('points');\n var pointsArr;\n if (pointsStr) {\n pointsArr = parsePoints(pointsStr);\n }\n var polyline = new Polyline({\n shape: {\n points: pointsArr || []\n },\n silent: true\n });\n inheritStyle(parentGroup, polyline);\n parseAttributes(xmlNode, polyline, this._defsUsePending, false, false);\n return polyline;\n },\n 'image': function (xmlNode, parentGroup) {\n var img = new ZRImage();\n inheritStyle(parentGroup, img);\n parseAttributes(xmlNode, img, this._defsUsePending, false, false);\n img.setStyle({\n image: xmlNode.getAttribute('xlink:href'),\n x: +xmlNode.getAttribute('x'),\n y: +xmlNode.getAttribute('y'),\n width: +xmlNode.getAttribute('width'),\n height: +xmlNode.getAttribute('height')\n });\n img.silent = true;\n return img;\n },\n 'text': function (xmlNode, parentGroup) {\n var x = xmlNode.getAttribute('x') || '0';\n var y = xmlNode.getAttribute('y') || '0';\n var dx = xmlNode.getAttribute('dx') || '0';\n var dy = xmlNode.getAttribute('dy') || '0';\n this._textX = parseFloat(x) + parseFloat(dx);\n this._textY = parseFloat(y) + parseFloat(dy);\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defsUsePending, false, true);\n return g;\n },\n 'tspan': function (xmlNode, parentGroup) {\n var x = xmlNode.getAttribute('x');\n var y = xmlNode.getAttribute('y');\n if (x != null) {\n this._textX = parseFloat(x);\n }\n if (y != null) {\n this._textY = parseFloat(y);\n }\n var dx = xmlNode.getAttribute('dx') || '0';\n var dy = xmlNode.getAttribute('dy') || '0';\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defsUsePending, false, true);\n this._textX += parseFloat(dx);\n this._textY += parseFloat(dy);\n return g;\n },\n 'path': function (xmlNode, parentGroup) {\n var d = xmlNode.getAttribute('d') || '';\n var path = createFromString(d);\n inheritStyle(parentGroup, path);\n parseAttributes(xmlNode, path, this._defsUsePending, false, false);\n path.silent = true;\n return path;\n }\n };\n })();\n return SVGParser;\n}());\nvar paintServerParsers = {\n 'lineargradient': function (xmlNode) {\n var x1 = parseInt(xmlNode.getAttribute('x1') || '0', 10);\n var y1 = parseInt(xmlNode.getAttribute('y1') || '0', 10);\n var x2 = parseInt(xmlNode.getAttribute('x2') || '10', 10);\n var y2 = parseInt(xmlNode.getAttribute('y2') || '0', 10);\n var gradient = new LinearGradient(x1, y1, x2, y2);\n parsePaintServerUnit(xmlNode, gradient);\n parseGradientColorStops(xmlNode, gradient);\n return gradient;\n },\n 'radialgradient': function (xmlNode) {\n var cx = parseInt(xmlNode.getAttribute('cx') || '0', 10);\n var cy = parseInt(xmlNode.getAttribute('cy') || '0', 10);\n var r = parseInt(xmlNode.getAttribute('r') || '0', 10);\n var gradient = new RadialGradient(cx, cy, r);\n parsePaintServerUnit(xmlNode, gradient);\n parseGradientColorStops(xmlNode, gradient);\n return gradient;\n }\n};\nfunction parsePaintServerUnit(xmlNode, gradient) {\n var gradientUnits = xmlNode.getAttribute('gradientUnits');\n if (gradientUnits === 'userSpaceOnUse') {\n gradient.global = true;\n }\n}\nfunction parseGradientColorStops(xmlNode, gradient) {\n var stop = xmlNode.firstChild;\n while (stop) {\n if (stop.nodeType === 1\n && stop.nodeName.toLocaleLowerCase() === 'stop') {\n var offsetStr = stop.getAttribute('offset');\n var offset = void 0;\n if (offsetStr && offsetStr.indexOf('%') > 0) {\n offset = parseInt(offsetStr, 10) / 100;\n }\n else if (offsetStr) {\n offset = parseFloat(offsetStr);\n }\n else {\n offset = 0;\n }\n var styleVals = {};\n parseInlineStyle(stop, styleVals, styleVals);\n var stopColor = styleVals.stopColor\n || stop.getAttribute('stop-color')\n || '#000000';\n gradient.colorStops.push({\n offset: offset,\n color: stopColor\n });\n }\n stop = stop.nextSibling;\n }\n}\nfunction inheritStyle(parent, child) {\n if (parent && parent.__inheritedStyle) {\n if (!child.__inheritedStyle) {\n child.__inheritedStyle = {};\n }\n defaults(child.__inheritedStyle, parent.__inheritedStyle);\n }\n}\nfunction parsePoints(pointsString) {\n var list = splitNumberSequence(pointsString);\n var points = [];\n for (var i = 0; i < list.length; i += 2) {\n var x = parseFloat(list[i]);\n var y = parseFloat(list[i + 1]);\n points.push([x, y]);\n }\n return points;\n}\nfunction parseAttributes(xmlNode, el, defsUsePending, onlyInlineStyle, isTextGroup) {\n var disp = el;\n var inheritedStyle = disp.__inheritedStyle = disp.__inheritedStyle || {};\n var selfStyle = {};\n if (xmlNode.nodeType === 1) {\n parseTransformAttribute(xmlNode, el);\n parseInlineStyle(xmlNode, inheritedStyle, selfStyle);\n if (!onlyInlineStyle) {\n parseAttributeStyle(xmlNode, inheritedStyle, selfStyle);\n }\n }\n disp.style = disp.style || {};\n if (inheritedStyle.fill != null) {\n disp.style.fill = getFillStrokeStyle(disp, 'fill', inheritedStyle.fill, defsUsePending);\n }\n if (inheritedStyle.stroke != null) {\n disp.style.stroke = getFillStrokeStyle(disp, 'stroke', inheritedStyle.stroke, defsUsePending);\n }\n each([\n 'lineWidth', 'opacity', 'fillOpacity', 'strokeOpacity', 'miterLimit', 'fontSize'\n ], function (propName) {\n if (inheritedStyle[propName] != null) {\n disp.style[propName] = parseFloat(inheritedStyle[propName]);\n }\n });\n each([\n 'lineDashOffset', 'lineCap', 'lineJoin', 'fontWeight', 'fontFamily', 'fontStyle', 'textAlign'\n ], function (propName) {\n if (inheritedStyle[propName] != null) {\n disp.style[propName] = inheritedStyle[propName];\n }\n });\n if (isTextGroup) {\n disp.__selfStyle = selfStyle;\n }\n if (inheritedStyle.lineDash) {\n disp.style.lineDash = map(splitNumberSequence(inheritedStyle.lineDash), function (str) {\n return parseFloat(str);\n });\n }\n if (inheritedStyle.visibility === 'hidden' || inheritedStyle.visibility === 'collapse') {\n disp.invisible = true;\n }\n if (inheritedStyle.display === 'none') {\n disp.ignore = true;\n }\n disp.z = -10000;\n disp.z2 = -1000;\n}\nfunction applyTextAlignment(text, parentGroup) {\n var parentSelfStyle = parentGroup.__selfStyle;\n if (parentSelfStyle) {\n var textBaseline = parentSelfStyle.textBaseline;\n var zrTextBaseline = textBaseline;\n if (!textBaseline || textBaseline === 'auto') {\n zrTextBaseline = 'alphabetic';\n }\n else if (textBaseline === 'baseline') {\n zrTextBaseline = 'alphabetic';\n }\n else if (textBaseline === 'before-edge' || textBaseline === 'text-before-edge') {\n zrTextBaseline = 'top';\n }\n else if (textBaseline === 'after-edge' || textBaseline === 'text-after-edge') {\n zrTextBaseline = 'bottom';\n }\n else if (textBaseline === 'central' || textBaseline === 'mathematical') {\n zrTextBaseline = 'middle';\n }\n text.style.textBaseline = zrTextBaseline;\n }\n var parentInheritedStyle = parentGroup.__inheritedStyle;\n if (parentInheritedStyle) {\n var textAlign = parentInheritedStyle.textAlign;\n var zrTextAlign = textAlign;\n if (textAlign) {\n if (textAlign === 'middle') {\n zrTextAlign = 'center';\n }\n text.style.textAlign = zrTextAlign;\n }\n }\n}\nvar urlRegex = /^url\\(\\s*#(.*?)\\)/;\nfunction getFillStrokeStyle(el, method, str, defsUsePending) {\n var urlMatch = str && str.match(urlRegex);\n if (urlMatch) {\n var url = trim(urlMatch[1]);\n defsUsePending.push([el, method, url]);\n return;\n }\n if (str === 'none') {\n str = null;\n }\n return str;\n}\nfunction applyDefs(defs, defsUsePending) {\n for (var i = 0; i < defsUsePending.length; i++) {\n var item = defsUsePending[i];\n item[0].style[item[1]] = defs[item[2]];\n }\n}\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\nfunction splitNumberSequence(rawStr) {\n return rawStr.match(numberReg) || [];\n}\nvar transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\\(([\\-\\s0-9\\.eE,]*)\\)/g;\nfunction parseTransformAttribute(xmlNode, node) {\n var transform = xmlNode.getAttribute('transform');\n if (transform) {\n transform = transform.replace(/,/g, ' ');\n var transformOps_1 = [];\n var mt = null;\n transform.replace(transformRegex, function (str, type, value) {\n transformOps_1.push(type, value);\n return '';\n });\n for (var i = transformOps_1.length - 1; i > 0; i -= 2) {\n var value = transformOps_1[i];\n var type = transformOps_1[i - 1];\n var valueArr = void 0;\n mt = mt || matrix.create();\n switch (type) {\n case 'translate':\n valueArr = splitNumberSequence(value);\n matrix.translate(mt, mt, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || '0')]);\n break;\n case 'scale':\n valueArr = splitNumberSequence(value);\n matrix.scale(mt, mt, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || valueArr[0])]);\n break;\n case 'rotate':\n valueArr = splitNumberSequence(value);\n matrix.rotate(mt, mt, -parseFloat(valueArr[0]) / 180 * Math.PI);\n break;\n case 'skew':\n valueArr = splitNumberSequence(value);\n console.warn('Skew transform is not supported yet');\n break;\n case 'matrix':\n valueArr = splitNumberSequence(value);\n mt[0] = parseFloat(valueArr[0]);\n mt[1] = parseFloat(valueArr[1]);\n mt[2] = parseFloat(valueArr[2]);\n mt[3] = parseFloat(valueArr[3]);\n mt[4] = parseFloat(valueArr[4]);\n mt[5] = parseFloat(valueArr[5]);\n break;\n }\n }\n node.setLocalTransform(mt);\n }\n}\nvar styleRegex = /([^\\s:;]+)\\s*:\\s*([^:;]+)/g;\nfunction parseInlineStyle(xmlNode, inheritableStyleResult, selfStyleResult) {\n var style = xmlNode.getAttribute('style');\n if (!style) {\n return;\n }\n styleRegex.lastIndex = 0;\n var styleRegResult;\n while ((styleRegResult = styleRegex.exec(style)) != null) {\n var svgStlAttr = styleRegResult[1];\n var zrInheritableStlAttr = hasOwn(INHERITABLE_STYLE_ATTRIBUTES_MAP, svgStlAttr)\n ? INHERITABLE_STYLE_ATTRIBUTES_MAP[svgStlAttr]\n : null;\n if (zrInheritableStlAttr) {\n inheritableStyleResult[zrInheritableStlAttr] = styleRegResult[2];\n }\n var zrSelfStlAttr = hasOwn(SELF_STYLE_ATTRIBUTES_MAP, svgStlAttr)\n ? SELF_STYLE_ATTRIBUTES_MAP[svgStlAttr]\n : null;\n if (zrSelfStlAttr) {\n selfStyleResult[zrSelfStlAttr] = styleRegResult[2];\n }\n }\n}\nfunction parseAttributeStyle(xmlNode, inheritableStyleResult, selfStyleResult) {\n for (var i = 0; i < INHERITABLE_STYLE_ATTRIBUTES_MAP_KEYS.length; i++) {\n var svgAttrName = INHERITABLE_STYLE_ATTRIBUTES_MAP_KEYS[i];\n var attrValue = xmlNode.getAttribute(svgAttrName);\n if (attrValue != null) {\n inheritableStyleResult[INHERITABLE_STYLE_ATTRIBUTES_MAP[svgAttrName]] = attrValue;\n }\n }\n for (var i = 0; i < SELF_STYLE_ATTRIBUTES_MAP_KEYS.length; i++) {\n var svgAttrName = SELF_STYLE_ATTRIBUTES_MAP_KEYS[i];\n var attrValue = xmlNode.getAttribute(svgAttrName);\n if (attrValue != null) {\n selfStyleResult[SELF_STYLE_ATTRIBUTES_MAP[svgAttrName]] = attrValue;\n }\n }\n}\nexport function makeViewBoxTransform(viewBoxRect, boundingRect) {\n var scaleX = boundingRect.width / viewBoxRect.width;\n var scaleY = boundingRect.height / viewBoxRect.height;\n var scale = Math.min(scaleX, scaleY);\n return {\n scale: scale,\n x: -(viewBoxRect.x + viewBoxRect.width / 2) * scale + (boundingRect.x + boundingRect.width / 2),\n y: -(viewBoxRect.y + viewBoxRect.height / 2) * scale + (boundingRect.y + boundingRect.height / 2)\n };\n}\nexport function parseSVG(xml, opt) {\n var parser = new SVGParser();\n return parser.parse(xml, opt);\n}\nexport { parseXML };\n","import LRU from '../core/LRU';\nvar kCSSColorTable = {\n 'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1],\n 'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1],\n 'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1],\n 'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1],\n 'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1],\n 'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1],\n 'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1],\n 'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1],\n 'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1],\n 'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1],\n 'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1],\n 'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1],\n 'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1],\n 'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1],\n 'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1],\n 'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1],\n 'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1],\n 'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1],\n 'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1],\n 'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1],\n 'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1],\n 'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1],\n 'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1],\n 'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1],\n 'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1],\n 'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1],\n 'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1],\n 'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1],\n 'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1],\n 'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1],\n 'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1],\n 'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1],\n 'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1],\n 'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1],\n 'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1],\n 'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1],\n 'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1],\n 'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1],\n 'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1],\n 'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1],\n 'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1],\n 'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1],\n 'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1],\n 'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1],\n 'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1],\n 'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1],\n 'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1],\n 'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1],\n 'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1],\n 'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1],\n 'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1],\n 'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1],\n 'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1],\n 'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1],\n 'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1],\n 'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1],\n 'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1],\n 'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1],\n 'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1],\n 'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1],\n 'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1],\n 'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1],\n 'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1],\n 'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1],\n 'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1],\n 'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1],\n 'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1],\n 'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1],\n 'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1],\n 'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1],\n 'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1],\n 'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1],\n 'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1],\n 'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1]\n};\nfunction clampCssByte(i) {\n i = Math.round(i);\n return i < 0 ? 0 : i > 255 ? 255 : i;\n}\nfunction clampCssAngle(i) {\n i = Math.round(i);\n return i < 0 ? 0 : i > 360 ? 360 : i;\n}\nfunction clampCssFloat(f) {\n return f < 0 ? 0 : f > 1 ? 1 : f;\n}\nfunction parseCssInt(val) {\n var str = val;\n if (str.length && str.charAt(str.length - 1) === '%') {\n return clampCssByte(parseFloat(str) / 100 * 255);\n }\n return clampCssByte(parseInt(str, 10));\n}\nfunction parseCssFloat(val) {\n var str = val;\n if (str.length && str.charAt(str.length - 1) === '%') {\n return clampCssFloat(parseFloat(str) / 100);\n }\n return clampCssFloat(parseFloat(str));\n}\nfunction cssHueToRgb(m1, m2, h) {\n if (h < 0) {\n h += 1;\n }\n else if (h > 1) {\n h -= 1;\n }\n if (h * 6 < 1) {\n return m1 + (m2 - m1) * h * 6;\n }\n if (h * 2 < 1) {\n return m2;\n }\n if (h * 3 < 2) {\n return m1 + (m2 - m1) * (2 / 3 - h) * 6;\n }\n return m1;\n}\nfunction lerpNumber(a, b, p) {\n return a + (b - a) * p;\n}\nfunction setRgba(out, r, g, b, a) {\n out[0] = r;\n out[1] = g;\n out[2] = b;\n out[3] = a;\n return out;\n}\nfunction copyRgba(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\nvar colorCache = new LRU(20);\nvar lastRemovedArr = null;\nfunction putToCache(colorStr, rgbaArr) {\n if (lastRemovedArr) {\n copyRgba(lastRemovedArr, rgbaArr);\n }\n lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));\n}\nexport function parse(colorStr, rgbaArr) {\n if (!colorStr) {\n return;\n }\n rgbaArr = rgbaArr || [];\n var cached = colorCache.get(colorStr);\n if (cached) {\n return copyRgba(rgbaArr, cached);\n }\n colorStr = colorStr + '';\n var str = colorStr.replace(/ /g, '').toLowerCase();\n if (str in kCSSColorTable) {\n copyRgba(rgbaArr, kCSSColorTable[str]);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n }\n var strLen = str.length;\n if (str.charAt(0) === '#') {\n if (strLen === 4 || strLen === 5) {\n var iv = parseInt(str.slice(1, 4), 16);\n if (!(iv >= 0 && iv <= 0xfff)) {\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n }\n setRgba(rgbaArr, ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), strLen === 5 ? parseInt(str.slice(4), 16) / 0xf : 1);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n }\n else if (strLen === 7 || strLen === 9) {\n var iv = parseInt(str.slice(1, 7), 16);\n if (!(iv >= 0 && iv <= 0xffffff)) {\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n }\n setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, strLen === 9 ? parseInt(str.slice(7), 16) / 0xff : 1);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n }\n return;\n }\n var op = str.indexOf('(');\n var ep = str.indexOf(')');\n if (op !== -1 && ep + 1 === strLen) {\n var fname = str.substr(0, op);\n var params = str.substr(op + 1, ep - (op + 1)).split(',');\n var alpha = 1;\n switch (fname) {\n case 'rgba':\n if (params.length !== 4) {\n return params.length === 3\n ? setRgba(rgbaArr, +params[0], +params[1], +params[2], 1)\n : setRgba(rgbaArr, 0, 0, 0, 1);\n }\n alpha = parseCssFloat(params.pop());\n case 'rgb':\n if (params.length !== 3) {\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n }\n setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n case 'hsla':\n if (params.length !== 4) {\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n }\n params[3] = parseCssFloat(params[3]);\n hsla2rgba(params, rgbaArr);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n case 'hsl':\n if (params.length !== 3) {\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n }\n hsla2rgba(params, rgbaArr);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n default:\n return;\n }\n }\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n}\nfunction hsla2rgba(hsla, rgba) {\n var h = (((parseFloat(hsla[0]) % 360) + 360) % 360) / 360;\n var s = parseCssFloat(hsla[1]);\n var l = parseCssFloat(hsla[2]);\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var m1 = l * 2 - m2;\n rgba = rgba || [];\n setRgba(rgba, clampCssByte(cssHueToRgb(m1, m2, h + 1 / 3) * 255), clampCssByte(cssHueToRgb(m1, m2, h) * 255), clampCssByte(cssHueToRgb(m1, m2, h - 1 / 3) * 255), 1);\n if (hsla.length === 4) {\n rgba[3] = hsla[3];\n }\n return rgba;\n}\nfunction rgba2hsla(rgba) {\n if (!rgba) {\n return;\n }\n var R = rgba[0] / 255;\n var G = rgba[1] / 255;\n var B = rgba[2] / 255;\n var vMin = Math.min(R, G, B);\n var vMax = Math.max(R, G, B);\n var delta = vMax - vMin;\n var L = (vMax + vMin) / 2;\n var H;\n var S;\n if (delta === 0) {\n H = 0;\n S = 0;\n }\n else {\n if (L < 0.5) {\n S = delta / (vMax + vMin);\n }\n else {\n S = delta / (2 - vMax - vMin);\n }\n var deltaR = (((vMax - R) / 6) + (delta / 2)) / delta;\n var deltaG = (((vMax - G) / 6) + (delta / 2)) / delta;\n var deltaB = (((vMax - B) / 6) + (delta / 2)) / delta;\n if (R === vMax) {\n H = deltaB - deltaG;\n }\n else if (G === vMax) {\n H = (1 / 3) + deltaR - deltaB;\n }\n else if (B === vMax) {\n H = (2 / 3) + deltaG - deltaR;\n }\n if (H < 0) {\n H += 1;\n }\n if (H > 1) {\n H -= 1;\n }\n }\n var hsla = [H * 360, S, L];\n if (rgba[3] != null) {\n hsla.push(rgba[3]);\n }\n return hsla;\n}\nexport function lift(color, level) {\n var colorArr = parse(color);\n if (colorArr) {\n for (var i = 0; i < 3; i++) {\n if (level < 0) {\n colorArr[i] = colorArr[i] * (1 - level) | 0;\n }\n else {\n colorArr[i] = ((255 - colorArr[i]) * level + colorArr[i]) | 0;\n }\n if (colorArr[i] > 255) {\n colorArr[i] = 255;\n }\n else if (colorArr[i] < 0) {\n colorArr[i] = 0;\n }\n }\n return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');\n }\n}\nexport function toHex(color) {\n var colorArr = parse(color);\n if (colorArr) {\n return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + (+colorArr[2])).toString(16).slice(1);\n }\n}\nexport function fastLerp(normalizedValue, colors, out) {\n if (!(colors && colors.length)\n || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n return;\n }\n out = out || [];\n var value = normalizedValue * (colors.length - 1);\n var leftIndex = Math.floor(value);\n var rightIndex = Math.ceil(value);\n var leftColor = colors[leftIndex];\n var rightColor = colors[rightIndex];\n var dv = value - leftIndex;\n out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv));\n out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv));\n out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv));\n out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv));\n return out;\n}\nexport var fastMapToColor = fastLerp;\nexport function lerp(normalizedValue, colors, fullOutput) {\n if (!(colors && colors.length)\n || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n return;\n }\n var value = normalizedValue * (colors.length - 1);\n var leftIndex = Math.floor(value);\n var rightIndex = Math.ceil(value);\n var leftColor = parse(colors[leftIndex]);\n var rightColor = parse(colors[rightIndex]);\n var dv = value - leftIndex;\n var color = stringify([\n clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)),\n clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)),\n clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)),\n clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))\n ], 'rgba');\n return fullOutput\n ? {\n color: color,\n leftIndex: leftIndex,\n rightIndex: rightIndex,\n value: value\n }\n : color;\n}\nexport var mapToColor = lerp;\nexport function modifyHSL(color, h, s, l) {\n var colorArr = parse(color);\n if (color) {\n colorArr = rgba2hsla(colorArr);\n h != null && (colorArr[0] = clampCssAngle(h));\n s != null && (colorArr[1] = parseCssFloat(s));\n l != null && (colorArr[2] = parseCssFloat(l));\n return stringify(hsla2rgba(colorArr), 'rgba');\n }\n}\nexport function modifyAlpha(color, alpha) {\n var colorArr = parse(color);\n if (colorArr && alpha != null) {\n colorArr[3] = clampCssFloat(alpha);\n return stringify(colorArr, 'rgba');\n }\n}\nexport function stringify(arrColor, type) {\n if (!arrColor || !arrColor.length) {\n return;\n }\n var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];\n if (type === 'rgba' || type === 'hsva' || type === 'hsla') {\n colorStr += ',' + arrColor[3];\n }\n return type + '(' + colorStr + ')';\n}\nexport function lum(color, backgroundLum) {\n var arr = parse(color);\n return arr\n ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255\n + (1 - arr[3]) * backgroundLum\n : 0;\n}\nexport function random() {\n var r = Math.round(Math.random() * 255);\n var g = Math.round(Math.random() * 255);\n var b = Math.round(Math.random() * 255);\n return 'rgb(' + r + ',' + g + ',' + b + ')';\n}\n"],"sourceRoot":""}