{"version":3,"file":"js/chunk-vendors-b4c87ae9.3147ae75.js","mappings":"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","sources":["webpack://i4proportal/./node_modules/zrender/lib/svg/Painter.js","webpack://i4proportal/./node_modules/zrender/lib/svg/core.js","webpack://i4proportal/./node_modules/zrender/lib/svg/graphic.js","webpack://i4proportal/./node_modules/zrender/lib/svg/helper/ClippathManager.js","webpack://i4proportal/./node_modules/zrender/lib/svg/helper/Definable.js","webpack://i4proportal/./node_modules/zrender/lib/svg/helper/GradientManager.js","webpack://i4proportal/./node_modules/zrender/lib/svg/helper/ShadowManager.js","webpack://i4proportal/./node_modules/zrender/lib/svg/svg.js","webpack://i4proportal/./node_modules/zrender/lib/tool/color.js","webpack://i4proportal/./node_modules/zrender/lib/tool/parseSVG.js","webpack://i4proportal/./node_modules/zrender/lib/tool/path.js","webpack://i4proportal/./node_modules/zrender/lib/tool/transformPath.js"],"sourcesContent":["var _core = require(\"./core\");\n\nvar createElement = _core.createElement;\n\nvar util = require(\"../core/util\");\n\nvar logError = require(\"../core/log\");\n\nvar Path = require(\"../graphic/Path\");\n\nvar ZImage = require(\"../graphic/Image\");\n\nvar ZText = require(\"../graphic/Text\");\n\nvar arrayDiff = require(\"../core/arrayDiff2\");\n\nvar GradientManager = require(\"./helper/GradientManager\");\n\nvar ClippathManager = require(\"./helper/ClippathManager\");\n\nvar ShadowManager = require(\"./helper/ShadowManager\");\n\nvar _graphic = require(\"./graphic\");\n\nvar svgPath = _graphic.path;\nvar svgImage = _graphic.image;\nvar svgText = _graphic.text;\n\n/**\n * SVG Painter\n * @module zrender/svg/Painter\n */\nfunction parseInt10(val) {\n return parseInt(val, 10);\n}\n\nfunction getSvgProxy(el) {\n if (el instanceof Path) {\n return svgPath;\n } else if (el instanceof ZImage) {\n return svgImage;\n } else if (el instanceof ZText) {\n return svgText;\n } else {\n return svgPath;\n }\n}\n\nfunction checkParentAvailable(parent, child) {\n return child && parent && child.parentNode !== parent;\n}\n\nfunction insertAfter(parent, child, prevSibling) {\n if (checkParentAvailable(parent, child) && prevSibling) {\n var nextSibling = prevSibling.nextSibling;\n nextSibling ? parent.insertBefore(child, nextSibling) : parent.appendChild(child);\n }\n}\n\nfunction prepend(parent, child) {\n if (checkParentAvailable(parent, child)) {\n var firstChild = parent.firstChild;\n firstChild ? parent.insertBefore(child, firstChild) : parent.appendChild(child);\n }\n} // function append(parent, child) {\n// if (checkParentAvailable(parent, child)) {\n// parent.appendChild(child);\n// }\n// }\n\n\nfunction remove(parent, child) {\n if (child && parent && child.parentNode === parent) {\n parent.removeChild(child);\n }\n}\n\nfunction getTextSvgElement(displayable) {\n return displayable.__textSvgEl;\n}\n\nfunction getSvgElement(displayable) {\n return displayable.__svgEl;\n}\n/**\n * @alias module:zrender/svg/Painter\n * @constructor\n * @param {HTMLElement} root 绘图容器\n * @param {module:zrender/Storage} storage\n * @param {Object} opts\n */\n\n\nvar SVGPainter = function (root, storage, opts, zrId) {\n this.root = root;\n this.storage = storage;\n this._opts = opts = util.extend({}, opts || {});\n var svgDom = createElement('svg');\n svgDom.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n svgDom.setAttribute('version', '1.1');\n svgDom.setAttribute('baseProfile', 'full');\n svgDom.style.cssText = 'user-select:none;position:absolute;left:0;top:0;';\n var bgRoot = createElement('g');\n svgDom.appendChild(bgRoot);\n var svgRoot = createElement('g');\n svgDom.appendChild(svgRoot);\n this.gradientManager = new GradientManager(zrId, svgRoot);\n this.clipPathManager = new ClippathManager(zrId, svgRoot);\n this.shadowManager = new ShadowManager(zrId, svgRoot);\n var viewport = document.createElement('div');\n viewport.style.cssText = 'overflow:hidden;position:relative';\n this._svgDom = svgDom;\n this._svgRoot = svgRoot;\n this._backgroundRoot = bgRoot;\n this._viewport = viewport;\n root.appendChild(viewport);\n viewport.appendChild(svgDom);\n this.resize(opts.width, opts.height);\n this._visibleList = [];\n};\n\nSVGPainter.prototype = {\n constructor: SVGPainter,\n getType: function () {\n return 'svg';\n },\n getViewportRoot: function () {\n return this._viewport;\n },\n getSvgDom: function () {\n return this._svgDom;\n },\n getSvgRoot: function () {\n return this._svgRoot;\n },\n getViewportRootOffset: function () {\n var viewportRoot = this.getViewportRoot();\n\n if (viewportRoot) {\n return {\n offsetLeft: viewportRoot.offsetLeft || 0,\n offsetTop: viewportRoot.offsetTop || 0\n };\n }\n },\n refresh: function () {\n var list = this.storage.getDisplayList(true);\n\n this._paintList(list);\n },\n setBackgroundColor: function (backgroundColor) {\n // TODO gradient\n // Insert a bg rect instead of setting background to viewport.\n // Otherwise, the exported SVG don't have background.\n if (this._backgroundRoot && this._backgroundNode) {\n this._backgroundRoot.removeChild(this._backgroundNode);\n }\n\n var bgNode = createElement('rect');\n bgNode.setAttribute('width', this.getWidth());\n bgNode.setAttribute('height', this.getHeight());\n bgNode.setAttribute('x', 0);\n bgNode.setAttribute('y', 0);\n bgNode.setAttribute('id', 0);\n bgNode.style.fill = backgroundColor;\n\n this._backgroundRoot.appendChild(bgNode);\n\n this._backgroundNode = bgNode;\n },\n _paintList: function (list) {\n this.gradientManager.markAllUnused();\n this.clipPathManager.markAllUnused();\n this.shadowManager.markAllUnused();\n var svgRoot = this._svgRoot;\n var visibleList = this._visibleList;\n var listLen = list.length;\n var newVisibleList = [];\n var i;\n\n for (i = 0; i < listLen; i++) {\n var displayable = list[i];\n var svgProxy = getSvgProxy(displayable);\n var svgElement = getSvgElement(displayable) || getTextSvgElement(displayable);\n\n if (!displayable.invisible) {\n if (displayable.__dirty) {\n svgProxy && svgProxy.brush(displayable); // Update clipPath\n\n this.clipPathManager.update(displayable); // Update gradient and shadow\n\n if (displayable.style) {\n this.gradientManager.update(displayable.style.fill);\n this.gradientManager.update(displayable.style.stroke);\n this.shadowManager.update(svgElement, displayable);\n }\n\n displayable.__dirty = false;\n }\n\n newVisibleList.push(displayable);\n }\n }\n\n var diff = arrayDiff(visibleList, newVisibleList);\n var prevSvgElement; // First do remove, in case element moved to the head and do remove\n // after add\n\n for (i = 0; i < diff.length; i++) {\n var item = diff[i];\n\n if (item.removed) {\n for (var k = 0; k < item.count; k++) {\n var displayable = visibleList[item.indices[k]];\n var svgElement = getSvgElement(displayable);\n var textSvgElement = getTextSvgElement(displayable);\n remove(svgRoot, svgElement);\n remove(svgRoot, textSvgElement);\n }\n }\n }\n\n for (i = 0; i < diff.length; i++) {\n var item = diff[i];\n\n if (item.added) {\n for (var k = 0; k < item.count; k++) {\n var displayable = newVisibleList[item.indices[k]];\n var svgElement = getSvgElement(displayable);\n var textSvgElement = getTextSvgElement(displayable);\n prevSvgElement ? insertAfter(svgRoot, svgElement, prevSvgElement) : prepend(svgRoot, svgElement);\n\n if (svgElement) {\n insertAfter(svgRoot, textSvgElement, svgElement);\n } else if (prevSvgElement) {\n insertAfter(svgRoot, textSvgElement, prevSvgElement);\n } else {\n prepend(svgRoot, textSvgElement);\n } // Insert text\n\n\n insertAfter(svgRoot, textSvgElement, svgElement);\n prevSvgElement = textSvgElement || svgElement || prevSvgElement; // zrender.Text only create textSvgElement.\n\n this.gradientManager.addWithoutUpdate(svgElement || textSvgElement, displayable);\n this.shadowManager.addWithoutUpdate(svgElement || textSvgElement, displayable);\n this.clipPathManager.markUsed(displayable);\n }\n } else if (!item.removed) {\n for (var k = 0; k < item.count; k++) {\n var displayable = newVisibleList[item.indices[k]];\n var svgElement = getSvgElement(displayable);\n var textSvgElement = getTextSvgElement(displayable);\n var svgElement = getSvgElement(displayable);\n var textSvgElement = getTextSvgElement(displayable);\n this.gradientManager.markUsed(displayable);\n this.gradientManager.addWithoutUpdate(svgElement || textSvgElement, displayable);\n this.shadowManager.markUsed(displayable);\n this.shadowManager.addWithoutUpdate(svgElement || textSvgElement, displayable);\n this.clipPathManager.markUsed(displayable);\n\n if (textSvgElement) {\n // Insert text.\n insertAfter(svgRoot, textSvgElement, svgElement);\n }\n\n prevSvgElement = svgElement || textSvgElement || prevSvgElement;\n }\n }\n }\n\n this.gradientManager.removeUnused();\n this.clipPathManager.removeUnused();\n this.shadowManager.removeUnused();\n this._visibleList = newVisibleList;\n },\n _getDefs: function (isForceCreating) {\n var svgRoot = this._svgDom;\n var defs = svgRoot.getElementsByTagName('defs');\n\n if (defs.length === 0) {\n // Not exist\n if (isForceCreating) {\n var defs = svgRoot.insertBefore(createElement('defs'), // Create new tag\n svgRoot.firstChild // Insert in the front of svg\n );\n\n if (!defs.contains) {\n // IE doesn't support contains method\n defs.contains = function (el) {\n var children = defs.children;\n\n if (!children) {\n return false;\n }\n\n for (var i = children.length - 1; i >= 0; --i) {\n if (children[i] === el) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n return defs;\n } else {\n return null;\n }\n } else {\n return defs[0];\n }\n },\n resize: function (width, height) {\n var viewport = this._viewport; // FIXME Why ?\n\n viewport.style.display = 'none'; // Save input w/h\n\n var opts = this._opts;\n width != null && (opts.width = width);\n height != null && (opts.height = height);\n width = this._getSize(0);\n height = this._getSize(1);\n viewport.style.display = '';\n\n if (this._width !== width || this._height !== height) {\n this._width = width;\n this._height = height;\n var viewportStyle = viewport.style;\n viewportStyle.width = width + 'px';\n viewportStyle.height = height + 'px';\n var svgRoot = this._svgDom; // Set width by 'svgRoot.width = width' is invalid\n\n svgRoot.setAttribute('width', width);\n svgRoot.setAttribute('height', height);\n }\n\n if (this._backgroundNode) {\n this._backgroundNode.setAttribute('width', width);\n\n this._backgroundNode.setAttribute('height', height);\n }\n },\n\n /**\n * 获取绘图区域宽度\n */\n getWidth: function () {\n return this._width;\n },\n\n /**\n * 获取绘图区域高度\n */\n getHeight: function () {\n return this._height;\n },\n _getSize: function (whIdx) {\n var opts = this._opts;\n var wh = ['width', 'height'][whIdx];\n var cwh = ['clientWidth', 'clientHeight'][whIdx];\n var plt = ['paddingLeft', 'paddingTop'][whIdx];\n var prb = ['paddingRight', 'paddingBottom'][whIdx];\n\n if (opts[wh] != null && opts[wh] !== 'auto') {\n return parseFloat(opts[wh]);\n }\n\n var root = this.root; // IE8 does not support getComputedStyle, but it use VML.\n\n var stl = document.defaultView.getComputedStyle(root);\n return (root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh])) - (parseInt10(stl[plt]) || 0) - (parseInt10(stl[prb]) || 0) | 0;\n },\n dispose: function () {\n this.root.innerHTML = '';\n this._svgRoot = this._backgroundRoot = this._svgDom = this._backgroundNode = this._viewport = this.storage = null;\n },\n clear: function () {\n if (this._viewport) {\n this.root.removeChild(this._viewport);\n }\n },\n toDataURL: function () {\n this.refresh();\n var html = encodeURIComponent(this._svgDom.outerHTML.replace(/>\\n\\r<'));\n return 'data:image/svg+xml;charset=UTF-8,' + html;\n }\n}; // Not supported methods\n\nfunction createMethodNotSupport(method) {\n return function () {\n logError('In SVG mode painter not support method \"' + method + '\"');\n };\n} // Unsuppoted methods\n\n\nutil.each(['getLayer', 'insertLayer', 'eachLayer', 'eachBuiltinLayer', 'eachOtherLayer', 'getLayers', 'modLayer', 'delLayer', 'clearLayer', 'pathToImage'], function (name) {\n SVGPainter.prototype[name] = createMethodNotSupport(name);\n});\nvar _default = SVGPainter;\nmodule.exports = _default;","var svgURI = 'http://www.w3.org/2000/svg';\n\nfunction createElement(name) {\n return document.createElementNS(svgURI, name);\n}\n\nexports.createElement = createElement;","var _core = require(\"./core\");\n\nvar createElement = _core.createElement;\n\nvar PathProxy = require(\"../core/PathProxy\");\n\nvar BoundingRect = require(\"../core/BoundingRect\");\n\nvar matrix = require(\"../core/matrix\");\n\nvar textContain = require(\"../contain/text\");\n\nvar textHelper = require(\"../graphic/helper/text\");\n\nvar Text = require(\"../graphic/Text\");\n\n// TODO\n// 1. shadow\n// 2. Image: sx, sy, sw, sh\nvar CMD = PathProxy.CMD;\nvar arrayJoin = Array.prototype.join;\nvar NONE = 'none';\nvar mathRound = Math.round;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nvar PI2 = Math.PI * 2;\nvar degree = 180 / PI;\nvar EPSILON = 1e-4;\n\nfunction round4(val) {\n return mathRound(val * 1e4) / 1e4;\n}\n\nfunction isAroundZero(val) {\n return val < EPSILON && val > -EPSILON;\n}\n\nfunction pathHasFill(style, isText) {\n var fill = isText ? style.textFill : style.fill;\n return fill != null && fill !== NONE;\n}\n\nfunction pathHasStroke(style, isText) {\n var stroke = isText ? style.textStroke : style.stroke;\n return stroke != null && stroke !== NONE;\n}\n\nfunction setTransform(svgEl, m) {\n if (m) {\n attr(svgEl, 'transform', 'matrix(' + arrayJoin.call(m, ',') + ')');\n }\n}\n\nfunction attr(el, key, val) {\n if (!val || val.type !== 'linear' && val.type !== 'radial') {\n // Don't set attribute for gradient, since it need new dom nodes\n el.setAttribute(key, val);\n }\n}\n\nfunction attrXLink(el, key, val) {\n el.setAttributeNS('http://www.w3.org/1999/xlink', key, val);\n}\n\nfunction bindStyle(svgEl, style, isText, el) {\n if (pathHasFill(style, isText)) {\n var fill = isText ? style.textFill : style.fill;\n fill = fill === 'transparent' ? NONE : fill;\n attr(svgEl, 'fill', fill);\n attr(svgEl, 'fill-opacity', style.fillOpacity != null ? style.fillOpacity * style.opacity : style.opacity);\n } else {\n attr(svgEl, 'fill', NONE);\n }\n\n if (pathHasStroke(style, isText)) {\n var stroke = isText ? style.textStroke : style.stroke;\n stroke = stroke === 'transparent' ? NONE : stroke;\n attr(svgEl, 'stroke', stroke);\n var strokeWidth = isText ? style.textStrokeWidth : style.lineWidth;\n var strokeScale = !isText && style.strokeNoScale ? el.getLineScale() : 1;\n attr(svgEl, 'stroke-width', strokeWidth / strokeScale); // stroke then fill for text; fill then stroke for others\n\n attr(svgEl, 'paint-order', isText ? 'stroke' : 'fill');\n attr(svgEl, 'stroke-opacity', style.strokeOpacity != null ? style.strokeOpacity : style.opacity);\n var lineDash = style.lineDash;\n\n if (lineDash) {\n attr(svgEl, 'stroke-dasharray', style.lineDash.join(','));\n attr(svgEl, 'stroke-dashoffset', mathRound(style.lineDashOffset || 0));\n } else {\n attr(svgEl, 'stroke-dasharray', '');\n } // PENDING\n\n\n style.lineCap && attr(svgEl, 'stroke-linecap', style.lineCap);\n style.lineJoin && attr(svgEl, 'stroke-linejoin', style.lineJoin);\n style.miterLimit && attr(svgEl, 'stroke-miterlimit', style.miterLimit);\n } else {\n attr(svgEl, 'stroke', NONE);\n }\n}\n/***************************************************\n * PATH\n **************************************************/\n\n\nfunction pathDataToString(path) {\n var str = [];\n var data = path.data;\n var dataLength = path.len();\n\n for (var i = 0; i < dataLength;) {\n var cmd = data[i++];\n var cmdStr = '';\n var nData = 0;\n\n switch (cmd) {\n case CMD.M:\n cmdStr = 'M';\n nData = 2;\n break;\n\n case CMD.L:\n cmdStr = 'L';\n nData = 2;\n break;\n\n case CMD.Q:\n cmdStr = 'Q';\n nData = 4;\n break;\n\n case CMD.C:\n cmdStr = 'C';\n nData = 6;\n break;\n\n case CMD.A:\n var cx = data[i++];\n var cy = data[i++];\n var rx = data[i++];\n var ry = data[i++];\n var theta = data[i++];\n var dTheta = data[i++];\n var psi = data[i++];\n var clockwise = data[i++];\n var dThetaPositive = Math.abs(dTheta);\n var isCircle = isAroundZero(dThetaPositive - PI2) || (clockwise ? dTheta >= PI2 : -dTheta >= PI2); // Mapping to 0~2PI\n\n var unifiedTheta = dTheta > 0 ? dTheta % PI2 : dTheta % PI2 + PI2;\n var large = false;\n\n if (isCircle) {\n large = true;\n } else if (isAroundZero(dThetaPositive)) {\n large = false;\n } else {\n large = unifiedTheta >= PI === !!clockwise;\n }\n\n var x0 = round4(cx + rx * mathCos(theta));\n var y0 = round4(cy + ry * mathSin(theta)); // It will not draw if start point and end point are exactly the same\n // We need to shift the end point with a small value\n // FIXME A better way to draw circle ?\n\n if (isCircle) {\n if (clockwise) {\n dTheta = PI2 - 1e-4;\n } else {\n dTheta = -PI2 + 1e-4;\n }\n\n large = true;\n\n if (i === 9) {\n // Move to (x0, y0) only when CMD.A comes at the\n // first position of a shape.\n // For instance, when drawing a ring, CMD.A comes\n // after CMD.M, so it's unnecessary to move to\n // (x0, y0).\n str.push('M', x0, y0);\n }\n }\n\n var x = round4(cx + rx * mathCos(theta + dTheta));\n var y = round4(cy + ry * mathSin(theta + dTheta)); // FIXME Ellipse\n\n str.push('A', round4(rx), round4(ry), mathRound(psi * degree), +large, +clockwise, x, y);\n break;\n\n case CMD.Z:\n cmdStr = 'Z';\n break;\n\n case CMD.R:\n var x = round4(data[i++]);\n var y = round4(data[i++]);\n var w = round4(data[i++]);\n var h = round4(data[i++]);\n str.push('M', x, y, 'L', x + w, y, 'L', x + w, y + h, 'L', x, y + h, 'L', x, y);\n break;\n }\n\n cmdStr && str.push(cmdStr);\n\n for (var j = 0; j < nData; j++) {\n // PENDING With scale\n str.push(round4(data[i++]));\n }\n }\n\n return str.join(' ');\n}\n\nvar svgPath = {};\n\nsvgPath.brush = function (el) {\n var style = el.style;\n var svgEl = el.__svgEl;\n\n if (!svgEl) {\n svgEl = createElement('path');\n el.__svgEl = svgEl;\n }\n\n if (!el.path) {\n el.createPathProxy();\n }\n\n var path = el.path;\n\n if (el.__dirtyPath) {\n path.beginPath();\n path.subPixelOptimize = false;\n el.buildPath(path, el.shape);\n el.__dirtyPath = false;\n var pathStr = pathDataToString(path);\n\n if (pathStr.indexOf('NaN') < 0) {\n // Ignore illegal path, which may happen such in out-of-range\n // data in Calendar series.\n attr(svgEl, 'd', pathStr);\n }\n }\n\n bindStyle(svgEl, style, false, el);\n setTransform(svgEl, el.transform);\n\n if (style.text != null) {\n svgTextDrawRectText(el, el.getBoundingRect());\n } else {\n removeOldTextNode(el);\n }\n};\n/***************************************************\n * IMAGE\n **************************************************/\n\n\nvar svgImage = {};\n\nsvgImage.brush = function (el) {\n var style = el.style;\n var image = style.image;\n\n if (image instanceof HTMLImageElement) {\n var src = image.src;\n image = src;\n }\n\n if (!image) {\n return;\n }\n\n var x = style.x || 0;\n var y = style.y || 0;\n var dw = style.width;\n var dh = style.height;\n var svgEl = el.__svgEl;\n\n if (!svgEl) {\n svgEl = createElement('image');\n el.__svgEl = svgEl;\n }\n\n if (image !== el.__imageSrc) {\n attrXLink(svgEl, 'href', image); // Caching image src\n\n el.__imageSrc = image;\n }\n\n attr(svgEl, 'width', dw);\n attr(svgEl, 'height', dh);\n attr(svgEl, 'x', x);\n attr(svgEl, 'y', y);\n setTransform(svgEl, el.transform);\n\n if (style.text != null) {\n svgTextDrawRectText(el, el.getBoundingRect());\n } else {\n removeOldTextNode(el);\n }\n};\n/***************************************************\n * TEXT\n **************************************************/\n\n\nvar svgText = {};\n\nvar _tmpTextHostRect = new BoundingRect();\n\nvar _tmpTextBoxPos = {};\nvar _tmpTextTransform = [];\nvar TEXT_ALIGN_TO_ANCHRO = {\n left: 'start',\n right: 'end',\n center: 'middle',\n middle: 'middle'\n};\n/**\n * @param {module:zrender/Element} el\n * @param {Object|boolean} [hostRect] {x, y, width, height}\n * If set false, rect text is not used.\n */\n\nvar svgTextDrawRectText = function (el, hostRect) {\n var style = el.style;\n var elTransform = el.transform;\n var needTransformTextByHostEl = el instanceof Text || style.transformText;\n el.__dirty && textHelper.normalizeTextStyle(style, true);\n var text = style.text; // Convert to string\n\n text != null && (text += '');\n\n if (!textHelper.needDrawText(text, style)) {\n return;\n } // render empty text for svg if no text but need draw text.\n\n\n text == null && (text = ''); // Follow the setting in the canvas renderer, if not transform the\n // text, transform the hostRect, by which the text is located.\n\n if (!needTransformTextByHostEl && elTransform) {\n _tmpTextHostRect.copy(hostRect);\n\n _tmpTextHostRect.applyTransform(elTransform);\n\n hostRect = _tmpTextHostRect;\n }\n\n var textSvgEl = el.__textSvgEl;\n\n if (!textSvgEl) {\n textSvgEl = createElement('text');\n el.__textSvgEl = textSvgEl;\n } // style.font has been normalized by `normalizeTextStyle`.\n\n\n var textSvgElStyle = textSvgEl.style;\n var font = style.font || textContain.DEFAULT_FONT;\n var computedFont = textSvgEl.__computedFont;\n\n if (font !== textSvgEl.__styleFont) {\n textSvgElStyle.font = textSvgEl.__styleFont = font; // The computedFont might not be the orginal font if it is illegal font.\n\n computedFont = textSvgEl.__computedFont = textSvgElStyle.font;\n }\n\n var textPadding = style.textPadding;\n var textLineHeight = style.textLineHeight;\n var contentBlock = el.__textCotentBlock;\n\n if (!contentBlock || el.__dirtyText) {\n contentBlock = el.__textCotentBlock = textContain.parsePlainText(text, computedFont, textPadding, textLineHeight, style.truncate);\n }\n\n var outerHeight = contentBlock.outerHeight;\n var lineHeight = contentBlock.lineHeight;\n textHelper.getBoxPosition(_tmpTextBoxPos, el, style, hostRect);\n var baseX = _tmpTextBoxPos.baseX;\n var baseY = _tmpTextBoxPos.baseY;\n var textAlign = _tmpTextBoxPos.textAlign || 'left';\n var textVerticalAlign = _tmpTextBoxPos.textVerticalAlign;\n setTextTransform(textSvgEl, needTransformTextByHostEl, elTransform, style, hostRect, baseX, baseY);\n var boxY = textContain.adjustTextY(baseY, outerHeight, textVerticalAlign);\n var textX = baseX;\n var textY = boxY; // TODO needDrawBg\n\n if (textPadding) {\n textX = getTextXForPadding(baseX, textAlign, textPadding);\n textY += textPadding[0];\n } // `textBaseline` is set as 'middle'.\n\n\n textY += lineHeight / 2;\n bindStyle(textSvgEl, style, true, el); // FIXME\n // Add a in svg, where nodeName is 'style',\n // CSS classes is defined globally wherever the style tags are declared.\n\n if (nodeName === 'defs') {\n // define flag\n this._isDefine = true;\n } else if (nodeName === 'text') {\n this._isText = true;\n }\n\n var el;\n\n if (this._isDefine) {\n var parser = defineParsers[nodeName];\n\n if (parser) {\n var def = parser.call(this, xmlNode);\n var id = xmlNode.getAttribute('id');\n\n if (id) {\n this._defs[id] = def;\n }\n }\n } else {\n var parser = nodeParsers[nodeName];\n\n if (parser) {\n el = parser.call(this, xmlNode, parentGroup);\n parentGroup.add(el);\n }\n }\n\n var child = xmlNode.firstChild;\n\n while (child) {\n if (child.nodeType === 1) {\n this._parseNode(child, el);\n } // Is text\n\n\n if (child.nodeType === 3 && this._isText) {\n this._parseText(child, el);\n }\n\n child = child.nextSibling;\n } // Quit define\n\n\n if (nodeName === 'defs') {\n this._isDefine = false;\n } else if (nodeName === 'text') {\n this._isText = false;\n }\n};\n\nSVGParser.prototype._parseText = function (xmlNode, parentGroup) {\n if (xmlNode.nodeType === 1) {\n var dx = xmlNode.getAttribute('dx') || 0;\n var dy = xmlNode.getAttribute('dy') || 0;\n this._textX += parseFloat(dx);\n this._textY += parseFloat(dy);\n }\n\n var text = new Text({\n style: {\n text: xmlNode.textContent,\n transformText: true\n },\n position: [this._textX || 0, this._textY || 0]\n });\n inheritStyle(parentGroup, text);\n parseAttributes(xmlNode, text, this._defs);\n var fontSize = text.style.fontSize;\n\n if (fontSize && fontSize < 9) {\n // PENDING\n text.style.fontSize = 9;\n text.scale = text.scale || [1, 1];\n text.scale[0] *= fontSize / 9;\n text.scale[1] *= fontSize / 9;\n }\n\n var rect = text.getBoundingRect();\n this._textX += rect.width;\n parentGroup.add(text);\n return text;\n};\n\nvar nodeParsers = {\n 'g': function (xmlNode, parentGroup) {\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defs);\n return g;\n },\n 'rect': function (xmlNode, parentGroup) {\n var rect = new Rect();\n inheritStyle(parentGroup, rect);\n parseAttributes(xmlNode, rect, this._defs);\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 }); // console.log(xmlNode.getAttribute('transform'));\n // console.log(rect.transform);\n\n return rect;\n },\n 'circle': function (xmlNode, parentGroup) {\n var circle = new Circle();\n inheritStyle(parentGroup, circle);\n parseAttributes(xmlNode, circle, this._defs);\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 return circle;\n },\n 'line': function (xmlNode, parentGroup) {\n var line = new Line();\n inheritStyle(parentGroup, line);\n parseAttributes(xmlNode, line, this._defs);\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 return line;\n },\n 'ellipse': function (xmlNode, parentGroup) {\n var ellipse = new Ellipse();\n inheritStyle(parentGroup, ellipse);\n parseAttributes(xmlNode, ellipse, this._defs);\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 return ellipse;\n },\n 'polygon': function (xmlNode, parentGroup) {\n var points = xmlNode.getAttribute('points');\n\n if (points) {\n points = parsePoints(points);\n }\n\n var polygon = new Polygon({\n shape: {\n points: points || []\n }\n });\n inheritStyle(parentGroup, polygon);\n parseAttributes(xmlNode, polygon, this._defs);\n return polygon;\n },\n 'polyline': function (xmlNode, parentGroup) {\n var path = new Path();\n inheritStyle(parentGroup, path);\n parseAttributes(xmlNode, path, this._defs);\n var points = xmlNode.getAttribute('points');\n\n if (points) {\n points = parsePoints(points);\n }\n\n var polyline = new Polyline({\n shape: {\n points: points || []\n }\n });\n return polyline;\n },\n 'image': function (xmlNode, parentGroup) {\n var img = new ZImage();\n inheritStyle(parentGroup, img);\n parseAttributes(xmlNode, img, this._defs);\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 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._defs);\n return g;\n },\n 'tspan': function (xmlNode, parentGroup) {\n var x = xmlNode.getAttribute('x');\n var y = xmlNode.getAttribute('y');\n\n if (x != null) {\n // new offset x\n this._textX = parseFloat(x);\n }\n\n if (y != null) {\n // new offset y\n this._textY = parseFloat(y);\n }\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._defs);\n this._textX += dx;\n this._textY += dy;\n return g;\n },\n 'path': function (xmlNode, parentGroup) {\n // TODO svg fill rule\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill-rule\n // path.style.globalCompositeOperation = 'xor';\n var d = xmlNode.getAttribute('d') || ''; // Performance sensitive.\n\n var path = createFromString(d);\n inheritStyle(parentGroup, path);\n parseAttributes(xmlNode, path, this._defs);\n return path;\n }\n};\nvar defineParsers = {\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\n _parseGradientColorStops(xmlNode, gradient);\n\n return gradient;\n },\n 'radialgradient': function (xmlNode) {}\n};\n\nfunction _parseGradientColorStops(xmlNode, gradient) {\n var stop = xmlNode.firstChild;\n\n while (stop) {\n if (stop.nodeType === 1) {\n var offset = stop.getAttribute('offset');\n\n if (offset.indexOf('%') > 0) {\n // percentage\n offset = parseInt(offset, 10) / 100;\n } else if (offset) {\n // number from 0 to 1\n offset = parseFloat(offset);\n } else {\n offset = 0;\n }\n\n var stopColor = stop.getAttribute('stop-color') || '#000000';\n gradient.addColorStop(offset, stopColor);\n }\n\n stop = stop.nextSibling;\n }\n}\n\nfunction inheritStyle(parent, child) {\n if (parent && parent.__inheritedStyle) {\n if (!child.__inheritedStyle) {\n child.__inheritedStyle = {};\n }\n\n defaults(child.__inheritedStyle, parent.__inheritedStyle);\n }\n}\n\nfunction parsePoints(pointsString) {\n var list = trim(pointsString).split(DILIMITER_REG);\n var points = [];\n\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\n return points;\n}\n\nvar attributesMap = {\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-align': 'textAlign',\n 'alignment-baseline': 'textBaseline'\n};\n\nfunction parseAttributes(xmlNode, el, defs, onlyInlineStyle) {\n var zrStyle = el.__inheritedStyle || {};\n var isTextEl = el.type === 'text'; // TODO Shadow\n\n if (xmlNode.nodeType === 1) {\n parseTransformAttribute(xmlNode, el);\n extend(zrStyle, parseStyleAttribute(xmlNode));\n\n if (!onlyInlineStyle) {\n for (var svgAttrName in attributesMap) {\n if (attributesMap.hasOwnProperty(svgAttrName)) {\n var attrValue = xmlNode.getAttribute(svgAttrName);\n\n if (attrValue != null) {\n zrStyle[attributesMap[svgAttrName]] = attrValue;\n }\n }\n }\n }\n }\n\n var elFillProp = isTextEl ? 'textFill' : 'fill';\n var elStrokeProp = isTextEl ? 'textStroke' : 'stroke';\n el.style = el.style || new Style();\n var elStyle = el.style;\n zrStyle.fill != null && elStyle.set(elFillProp, getPaint(zrStyle.fill, defs));\n zrStyle.stroke != null && elStyle.set(elStrokeProp, getPaint(zrStyle.stroke, defs));\n each(['lineWidth', 'opacity', 'fillOpacity', 'strokeOpacity', 'miterLimit', 'fontSize'], function (propName) {\n var elPropName = propName === 'lineWidth' && isTextEl ? 'textStrokeWidth' : propName;\n zrStyle[propName] != null && elStyle.set(elPropName, parseFloat(zrStyle[propName]));\n });\n\n if (!zrStyle.textBaseline || zrStyle.textBaseline === 'auto') {\n zrStyle.textBaseline = 'alphabetic';\n }\n\n if (zrStyle.textBaseline === 'alphabetic') {\n zrStyle.textBaseline = 'bottom';\n }\n\n if (zrStyle.textAlign === 'start') {\n zrStyle.textAlign = 'left';\n }\n\n if (zrStyle.textAlign === 'end') {\n zrStyle.textAlign = 'right';\n }\n\n each(['lineDashOffset', 'lineCap', 'lineJoin', 'fontWeight', 'fontFamily', 'fontStyle', 'textAlign', 'textBaseline'], function (propName) {\n zrStyle[propName] != null && elStyle.set(propName, zrStyle[propName]);\n });\n\n if (zrStyle.lineDash) {\n el.style.lineDash = trim(zrStyle.lineDash).split(DILIMITER_REG);\n }\n\n if (elStyle[elStrokeProp] && elStyle[elStrokeProp] !== 'none') {\n // enable stroke\n el[elStrokeProp] = true;\n }\n\n el.__inheritedStyle = zrStyle;\n}\n\nvar urlRegex = /url\\(\\s*#(.*?)\\)/;\n\nfunction getPaint(str, defs) {\n // if (str === 'none') {\n // return;\n // }\n var urlMatch = defs && str && str.match(urlRegex);\n\n if (urlMatch) {\n var url = trim(urlMatch[1]);\n var def = defs[url];\n return def;\n }\n\n return str;\n}\n\nvar transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\\(([\\-\\s0-9\\.e,]*)\\)/g;\n\nfunction parseTransformAttribute(xmlNode, node) {\n var transform = xmlNode.getAttribute('transform');\n\n if (transform) {\n transform = transform.replace(/,/g, ' ');\n var m = null;\n var transformOps = [];\n transform.replace(transformRegex, function (str, type, value) {\n transformOps.push(type, value);\n });\n\n for (var i = transformOps.length - 1; i > 0; i -= 2) {\n var value = transformOps[i];\n var type = transformOps[i - 1];\n m = m || matrix.create();\n\n switch (type) {\n case 'translate':\n value = trim(value).split(DILIMITER_REG);\n matrix.translate(m, m, [parseFloat(value[0]), parseFloat(value[1] || 0)]);\n break;\n\n case 'scale':\n value = trim(value).split(DILIMITER_REG);\n matrix.scale(m, m, [parseFloat(value[0]), parseFloat(value[1] || value[0])]);\n break;\n\n case 'rotate':\n value = trim(value).split(DILIMITER_REG);\n matrix.rotate(m, m, parseFloat(value[0]));\n break;\n\n case 'skew':\n value = trim(value).split(DILIMITER_REG);\n console.warn('Skew transform is not supported yet');\n break;\n\n case 'matrix':\n var value = trim(value).split(DILIMITER_REG);\n m[0] = parseFloat(value[0]);\n m[1] = parseFloat(value[1]);\n m[2] = parseFloat(value[2]);\n m[3] = parseFloat(value[3]);\n m[4] = parseFloat(value[4]);\n m[5] = parseFloat(value[5]);\n break;\n }\n }\n\n node.setLocalTransform(m);\n }\n} // Value may contain space.\n\n\nvar styleRegex = /([^\\s:;]+)\\s*:\\s*([^:;]+)/g;\n\nfunction parseStyleAttribute(xmlNode) {\n var style = xmlNode.getAttribute('style');\n var result = {};\n\n if (!style) {\n return result;\n }\n\n var styleList = {};\n styleRegex.lastIndex = 0;\n var styleRegResult;\n\n while ((styleRegResult = styleRegex.exec(style)) != null) {\n styleList[styleRegResult[1]] = styleRegResult[2];\n }\n\n for (var svgAttrName in attributesMap) {\n if (attributesMap.hasOwnProperty(svgAttrName) && styleList[svgAttrName] != null) {\n result[attributesMap[svgAttrName]] = styleList[svgAttrName];\n }\n }\n\n return result;\n}\n/**\n * @param {Array.} viewBoxRect\n * @param {number} width\n * @param {number} height\n * @return {Object} {scale, position}\n */\n\n\nfunction makeViewBoxTransform(viewBoxRect, width, height) {\n var scaleX = width / viewBoxRect.width;\n var scaleY = height / viewBoxRect.height;\n var scale = Math.min(scaleX, scaleY); // preserveAspectRatio 'xMidYMid'\n\n var viewBoxScale = [scale, scale];\n var viewBoxPosition = [-(viewBoxRect.x + viewBoxRect.width / 2) * scale + width / 2, -(viewBoxRect.y + viewBoxRect.height / 2) * scale + height / 2];\n return {\n scale: viewBoxScale,\n position: viewBoxPosition\n };\n}\n/**\n * @param {string|XMLElement} xml\n * @param {Object} [opt]\n * @param {number} [opt.width] Default width if svg width not specified or is a percent value.\n * @param {number} [opt.height] Default height if svg height not specified or is a percent value.\n * @param {boolean} [opt.ignoreViewBox]\n * @param {boolean} [opt.ignoreRootClip]\n * @return {Object} result:\n * {\n * root: Group, The root of the the result tree of zrender shapes,\n * width: number, the viewport width of the SVG,\n * height: number, the viewport height of the SVG,\n * viewBoxRect: {x, y, width, height}, the declared viewBox rect of the SVG, if exists,\n * viewBoxTransform: the {scale, position} calculated by viewBox and viewport, is exists.\n * }\n */\n\n\nfunction parseSVG(xml, opt) {\n var parser = new SVGParser();\n return parser.parse(xml, opt);\n}\n\nexports.parseXML = parseXML;\nexports.makeViewBoxTransform = makeViewBoxTransform;\nexports.parseSVG = parseSVG;","var Path = require(\"../graphic/Path\");\n\nvar PathProxy = require(\"../core/PathProxy\");\n\nvar transformPath = require(\"./transformPath\");\n\n// command chars\n// var cc = [\n// 'm', 'M', 'l', 'L', 'v', 'V', 'h', 'H', 'z', 'Z',\n// 'c', 'C', 'q', 'Q', 't', 'T', 's', 'S', 'a', 'A'\n// ];\nvar mathSqrt = Math.sqrt;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\n\nvar vMag = function (v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n};\n\nvar vRatio = function (u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n};\n\nvar vAngle = function (u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * 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 + mathSin(psi) * (y1 - y2) / 2.0;\n var yp = -1 * mathSin(psi) * (x1 - x2) / 2.0 + mathCos(psi) * (y1 - y2) / 2.0;\n var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry);\n\n if (lambda > 1) {\n rx *= mathSqrt(lambda);\n ry *= mathSqrt(lambda);\n }\n\n var f = (fa === fs ? -1 : 1) * mathSqrt((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) / (rx * rx * (yp * yp) + 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 + mathCos(psi) * cxp - mathSin(psi) * cyp;\n var cy = (y1 + y2) / 2.0 + mathSin(psi) * cxp + 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\n if (vRatio(u, v) <= -1) {\n dTheta = PI;\n }\n\n if (vRatio(u, v) >= 1) {\n dTheta = 0;\n }\n\n if (fs === 0 && dTheta > 0) {\n dTheta = dTheta - 2 * PI;\n }\n\n if (fs === 1 && dTheta < 0) {\n dTheta = dTheta + 2 * PI;\n }\n\n path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\n}\n\nvar commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig; // Consider case:\n// (1) delimiter can be comma or space, where continuous commas\n// or spaces should be seen as one comma.\n// (2) value can be like:\n// '2e-4', 'l.5.9' (ignore 0), 'M-10-10', 'l-2.43e-1,34.9983',\n// 'l-.5E1,54', '121-23-44-11' (no delimiter)\n\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g; // var valueSplitReg = /[\\s,]+/;\n\nfunction createPathProxyFromString(data) {\n if (!data) {\n return new PathProxy();\n } // var data = data.replace(/-/g, ' -')\n // .replace(/ /g, ' ')\n // .replace(/ /g, ',')\n // .replace(/,,/g, ',');\n // var n;\n // create pipes so that we can split the data\n // for (n = 0; n < cc.length; n++) {\n // cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]);\n // }\n // data = data.replace(/-/g, ',-');\n // create array\n // var arr = cs.split('|');\n // init context point\n\n\n var cpx = 0;\n var cpy = 0;\n var subpathX = cpx;\n var subpathY = cpy;\n var prevCmd;\n var path = new PathProxy();\n var CMD = PathProxy.CMD; // commandReg.lastIndex = 0;\n // var cmdResult;\n // while ((cmdResult = commandReg.exec(data)) != null) {\n // var cmdStr = cmdResult[1];\n // var cmdContent = cmdResult[2];\n\n var cmdList = data.match(commandReg);\n\n for (var l = 0; l < cmdList.length; l++) {\n var cmdText = cmdList[l];\n var cmdStr = cmdText.charAt(0);\n var cmd; // String#split is faster a little bit than String#replace or RegExp#exec.\n // var p = cmdContent.split(valueSplitReg);\n // var pLen = 0;\n // for (var i = 0; i < p.length; i++) {\n // // '' and other invalid str => NaN\n // var val = parseFloat(p[i]);\n // !isNaN(val) && (p[pLen++] = val);\n // }\n\n var p = cmdText.match(numberReg) || [];\n var pLen = p.length;\n\n for (var i = 0; i < pLen; i++) {\n p[i] = parseFloat(p[i]);\n }\n\n var off = 0;\n\n while (off < pLen) {\n var ctlPtx;\n var ctlPty;\n var rx;\n var ry;\n var psi;\n var fa;\n var fs;\n var x1 = cpx;\n var y1 = cpy; // convert l, H, h, V, and v to L\n\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\n case 'L':\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\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\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\n case 'h':\n cpx += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'H':\n cpx = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'v':\n cpy += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'V':\n cpy = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\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\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\n case 'S':\n ctlPtx = cpx;\n ctlPty = cpy;\n var len = path.len();\n var pathData = path.data;\n\n if (prevCmd === CMD.C) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\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\n case 's':\n ctlPtx = cpx;\n ctlPty = cpy;\n var len = path.len();\n var pathData = path.data;\n\n if (prevCmd === CMD.C) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\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\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\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\n case 'T':\n ctlPtx = cpx;\n ctlPty = cpy;\n var len = path.len();\n var pathData = path.data;\n\n if (prevCmd === CMD.Q) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.Q;\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n break;\n\n case 't':\n ctlPtx = cpx;\n ctlPty = cpy;\n var len = path.len();\n var pathData = path.data;\n\n if (prevCmd === CMD.Q) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.Q;\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n break;\n\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 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\n if (cmdStr === 'z' || cmdStr === 'Z') {\n cmd = CMD.Z;\n path.addData(cmd); // z may be in the middle of the path.\n\n cpx = subpathX;\n cpy = subpathY;\n }\n\n prevCmd = cmd;\n }\n\n path.toStatic();\n return path;\n} // TODO Optimize double memory cost problem\n\n\nfunction createPathOptions(str, opts) {\n var pathProxy = createPathProxyFromString(str);\n opts = opts || {};\n\n opts.buildPath = function (path) {\n if (path.setData) {\n path.setData(pathProxy.data); // Svg and vml renderer don't have context\n\n var ctx = path.getContext();\n\n if (ctx) {\n path.rebuildPath(ctx);\n }\n } else {\n var ctx = path;\n pathProxy.rebuildPath(ctx);\n }\n };\n\n opts.applyTransform = function (m) {\n transformPath(pathProxy, m);\n this.dirty(true);\n };\n\n return opts;\n}\n/**\n * Create a Path object from path string data\n * http://www.w3.org/TR/SVG/paths.html#PathData\n * @param {Object} opts Other options\n */\n\n\nfunction createFromString(str, opts) {\n return new Path(createPathOptions(str, opts));\n}\n/**\n * Create a Path class from path string data\n * @param {string} str\n * @param {Object} opts Other options\n */\n\n\nfunction extendFromString(str, opts) {\n return Path.extend(createPathOptions(str, opts));\n}\n/**\n * Merge multiple paths\n */\n// TODO Apply transform\n// TODO stroke dash\n// TODO Optimize double memory cost problem\n\n\nfunction mergePath(pathEls, opts) {\n var pathList = [];\n var len = pathEls.length;\n\n for (var i = 0; i < len; i++) {\n var pathEl = pathEls[i];\n\n if (!pathEl.path) {\n pathEl.createPathProxy();\n }\n\n if (pathEl.__dirtyPath) {\n pathEl.buildPath(pathEl.path, pathEl.shape, true);\n }\n\n pathList.push(pathEl.path);\n }\n\n var pathBundle = new Path(opts); // Need path proxy.\n\n pathBundle.createPathProxy();\n\n pathBundle.buildPath = function (path) {\n path.appendPath(pathList); // Svg and vml renderer don't have context\n\n var ctx = path.getContext();\n\n if (ctx) {\n path.rebuildPath(ctx);\n }\n };\n\n return pathBundle;\n}\n\nexports.createFromString = createFromString;\nexports.extendFromString = extendFromString;\nexports.mergePath = mergePath;","var PathProxy = require(\"../core/PathProxy\");\n\nvar _vector = require(\"../core/vector\");\n\nvar v2ApplyTransform = _vector.applyTransform;\nvar CMD = PathProxy.CMD;\nvar points = [[], [], []];\nvar mathSqrt = Math.sqrt;\nvar mathAtan2 = Math.atan2;\n\nfunction _default(path, m) {\n var data = path.data;\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\n for (i = 0, j = 0; i < data.length;) {\n cmd = data[i++];\n j = i;\n nPoint = 0;\n\n switch (cmd) {\n case M:\n nPoint = 1;\n break;\n\n case L:\n nPoint = 1;\n break;\n\n case C:\n nPoint = 3;\n break;\n\n case Q:\n nPoint = 2;\n break;\n\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); // cx\n\n data[i] *= sx;\n data[i++] += x; // cy\n\n data[i] *= sy;\n data[i++] += y; // Scale rx and ry\n // FIXME Assume psi is 0 here\n\n data[i++] *= sx;\n data[i++] *= sy; // Start angle\n\n data[i++] += angle; // end angle\n\n data[i++] += angle; // FIXME psi\n\n i += 2;\n j = i;\n break;\n\n case R:\n // x0, y0\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]; // x1, y1\n\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\n for (k = 0; k < nPoint; k++) {\n var p = points[k];\n p[0] = data[i++];\n p[1] = data[i++];\n v2ApplyTransform(p, p, m); // Write back\n\n data[j++] = p[0];\n data[j++] = p[1];\n }\n }\n}\n\nmodule.exports = _default;"],"names":["_core","createElement","util","logError","Path","ZImage","ZText","arrayDiff","GradientManager","ClippathManager","ShadowManager","_graphic","svgPath","path","svgImage","image","svgText","text","parseInt10","val","parseInt","getSvgProxy","el","checkParentAvailable","parent","child","parentNode","insertAfter","prevSibling","nextSibling","insertBefore","appendChild","prepend","firstChild","remove","removeChild","getTextSvgElement","displayable","__textSvgEl","getSvgElement","__svgEl","SVGPainter","root","storage","opts","zrId","this","_opts","extend","svgDom","setAttribute","style","cssText","bgRoot","svgRoot","gradientManager","clipPathManager","shadowManager","viewport","document","_svgDom","_svgRoot","_backgroundRoot","_viewport","resize","width","height","_visibleList","createMethodNotSupport","method","prototype","constructor","getType","getViewportRoot","getSvgDom","getSvgRoot","getViewportRootOffset","viewportRoot","offsetLeft","offsetTop","refresh","list","getDisplayList","_paintList","setBackgroundColor","backgroundColor","_backgroundNode","bgNode","getWidth","getHeight","fill","markAllUnused","i","visibleList","listLen","length","newVisibleList","svgProxy","svgElement","invisible","__dirty","brush","update","stroke","push","prevSvgElement","diff","item","removed","k","count","indices","textSvgElement","added","addWithoutUpdate","markUsed","removeUnused","_getDefs","isForceCreating","defs","getElementsByTagName","contains","children","display","_getSize","_width","_height","viewportStyle","whIdx","wh","cwh","plt","prb","parseFloat","stl","defaultView","getComputedStyle","dispose","innerHTML","clear","toDataURL","html","encodeURIComponent","outerHTML","replace","each","name","_default","module","exports","svgURI","createElementNS","PathProxy","BoundingRect","matrix","textContain","textHelper","Text","CMD","arrayJoin","Array","join","NONE","mathRound","Math","round","mathSin","sin","mathCos","cos","PI","PI2","degree","EPSILON","round4","isAroundZero","pathHasFill","isText","textFill","pathHasStroke","textStroke","setTransform","svgEl","m","attr","call","key","type","attrXLink","setAttributeNS","bindStyle","fillOpacity","opacity","strokeWidth","textStrokeWidth","lineWidth","strokeScale","strokeNoScale","getLineScale","strokeOpacity","lineDash","lineDashOffset","lineCap","lineJoin","miterLimit","pathDataToString","str","data","dataLength","len","cmd","cmdStr","nData","M","L","Q","C","A","cx","cy","rx","ry","theta","dTheta","psi","clockwise","dThetaPositive","abs","isCircle","unifiedTheta","large","x0","y0","x","y","Z","R","w","h","j","createPathProxy","__dirtyPath","beginPath","subPixelOptimize","buildPath","shape","pathStr","indexOf","transform","svgTextDrawRectText","getBoundingRect","removeOldTextNode","HTMLImageElement","src","dw","dh","__imageSrc","_tmpTextHostRect","_tmpTextBoxPos","_tmpTextTransform","TEXT_ALIGN_TO_ANCHRO","left","right","center","middle","hostRect","elTransform","needTransformTextByHostEl","transformText","normalizeTextStyle","needDrawText","copy","applyTransform","textSvgEl","textSvgElStyle","font","DEFAULT_FONT","computedFont","__computedFont","__styleFont","textPadding","textLineHeight","contentBlock","__textCotentBlock","__dirtyText","parsePlainText","truncate","outerHeight","lineHeight","getBoxPosition","baseX","baseY","textAlign","textVerticalAlign","setTextTransform","boxY","adjustTextY","textX","textY","getTextXForPadding","canCacheByTextString","tspanList","__tspanList","tspanOriginLen","__canCacheByTextString","__text","idx","updateTextLocation","textLines","lines","nTextLines","tspan","singleLineText","__zrText","createTextNode","identity","textRotation","origin","textOrigin","rotate","drawRectText","Definable","zrUtil","inherits","updateDom","__clipPaths","textEl","parentEl","clipPaths","clipPathEl","id","getDefs","clipPath","dom","getAttribute","_zrId","nextId","invTransform","slice","mul","pathEl","cloneNode","that","_dom","_textDom","MARK_UNUSED","MARK_USED","tagNames","markLabel","domName","_tagNames","_markLabel","_domName","element","onUpdate","add","addDom","removeDom","getDoms","doms","tagName","tags","concat","colorTool","fillOrStroke","gradient","x2","y2","r","global","colors","colorStops","stop","offset","color","parse","hex","toHex","hasShadow","shadowBlur","shadowOffsetX","shadowOffsetY","textShadowBlur","textShadowOffsetX","textShadowOffsetY","_shadowDom","filter","_shadowDomId","domChild","offsetX","offsetY","blur","scaleX","scale","scaleY","shadowColor","textShadowColor","stdDx","stdDy","stdDeviation","ceil","_zrender","registerPainter","Painter","LRU","kCSSColorTable","clampCssByte","clampCssAngle","clampCssFloat","f","parseCssInt","charAt","parseCssFloat","cssHueToRgb","m1","m2","lerpNumber","a","b","p","setRgba","out","g","copyRgba","colorCache","lastRemovedArr","putToCache","colorStr","rgbaArr","put","cached","get","toLowerCase","op","ep","fname","substr","params","split","alpha","pop","hsla2rgba","iv","hsla","rgba","s","l","rgba2hsla","H","S","G","B","vMin","min","vMax","max","delta","deltaR","deltaG","deltaB","lift","level","colorArr","stringify","toString","fastLerp","normalizedValue","value","leftIndex","floor","rightIndex","leftColor","rightColor","dv","fastMapToColor","lerp","fullOutput","mapToColor","modifyHSL","modifyAlpha","arrColor","Group","Circle","Rect","Ellipse","Line","Polygon","Polyline","LinearGradient","Style","_path","createFromString","_util","isString","defaults","trim","DILIMITER_REG","parseXML","svg","parser","DOMParser","parseFromString","nodeType","nodeName","SVGParser","_defs","_root","_isDefine","_isText","xml","opt","Error","viewBox","isNaN","parseAttributes","viewBoxRect","viewBoxTransform","_parseNode","viewBoxArr","makeViewBoxTransform","ignoreViewBox","elRoot","position","ignoreRootClip","setClipPath","xmlNode","parentGroup","defineParsers","def","nodeParsers","_parseText","dx","dy","_textX","_textY","textContent","inheritStyle","fontSize","rect","setShape","circle","line","x1","y1","ellipse","points","parsePoints","polygon","polyline","img","setStyle","d","_parseGradientColorStops","stopColor","addColorStop","__inheritedStyle","pointsString","attributesMap","onlyInlineStyle","zrStyle","isTextEl","parseTransformAttribute","parseStyleAttribute","svgAttrName","hasOwnProperty","attrValue","elFillProp","elStrokeProp","elStyle","set","getPaint","propName","elPropName","textBaseline","urlRegex","urlMatch","match","url","transformRegex","node","transformOps","create","translate","console","warn","setLocalTransform","styleRegex","result","styleRegResult","styleList","lastIndex","exec","viewBoxScale","viewBoxPosition","parseSVG","transformPath","mathSqrt","sqrt","vMag","v","vRatio","u","vAngle","acos","processArc","fa","fs","psiDeg","xp","yp","lambda","cxp","cyp","addData","commandReg","numberReg","createPathProxyFromString","prevCmd","cpx","cpy","subpathX","subpathY","cmdList","cmdText","pLen","off","ctlPtx","ctlPty","pathData","toStatic","createPathOptions","pathProxy","setData","ctx","getContext","rebuildPath","dirty","extendFromString","mergePath","pathEls","pathList","pathBundle","appendPath","_vector","v2ApplyTransform","mathAtan2","atan2","nPoint","sx","sy","angle"],"sourceRoot":""}