1 line
40 KiB
JSON
1 line
40 KiB
JSON
{"ast":null,"code":"import \"core-js/modules/es.regexp.exec.js\";\nimport \"core-js/modules/es.string.match.js\";\nimport { __extends } from \"tslib\";\nimport Path from '../graphic/Path.js';\nimport PathProxy from '../core/PathProxy.js';\nimport transformPath from './transformPath.js';\nimport { extend } from '../core/util.js';\nvar mathSqrt = Math.sqrt;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\n\nfunction vMag(v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n}\n\n;\n\nfunction vRatio(u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n}\n\n;\n\nfunction vAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v));\n}\n\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 (dTheta < 0) {\n var n = Math.round(dTheta / PI * 1e6) / 1e6;\n dTheta = PI * 2 + n % 2 * PI;\n }\n\n path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\n}\n\nvar commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\n\nfunction createPathProxyFromString(data) {\n var path = new PathProxy();\n\n if (!data) {\n return path;\n }\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\n if (!cmdList) {\n return path;\n }\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\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 = 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\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 len = path.len();\n 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 len = path.len();\n 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 len = path.len();\n 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 len = path.len();\n 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);\n cpx = subpathX;\n cpy = subpathY;\n }\n\n prevCmd = cmd;\n }\n\n path.toStatic();\n return path;\n}\n\nvar SVGPath = function (_super) {\n __extends(SVGPath, _super);\n\n function SVGPath() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n SVGPath.prototype.applyTransform = function (m) {};\n\n return SVGPath;\n}(Path);\n\nfunction isPathProxy(path) {\n return path.setData != null;\n}\n\nfunction createPathOptions(str, opts) {\n var pathProxy = createPathProxyFromString(str);\n var innerOpts = extend({}, opts);\n\n innerOpts.buildPath = function (path) {\n if (isPathProxy(path)) {\n path.setData(pathProxy.data);\n var ctx = path.getContext();\n\n if (ctx) {\n path.rebuildPath(ctx, 1);\n }\n } else {\n var ctx = path;\n pathProxy.rebuildPath(ctx, 1);\n }\n };\n\n innerOpts.applyTransform = function (m) {\n transformPath(pathProxy, m);\n this.dirtyShape();\n };\n\n return innerOpts;\n}\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\n var Sub = function (_super) {\n __extends(Sub, _super);\n\n function Sub(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.applyTransform = innerOpts.applyTransform;\n _this.buildPath = innerOpts.buildPath;\n return _this;\n }\n\n return Sub;\n }(SVGPath);\n\n return Sub;\n}\nexport function 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 pathList.push(pathEl.getUpdatedPathProxy(true));\n }\n\n var pathBundle = new Path(opts);\n pathBundle.createPathProxy();\n\n pathBundle.buildPath = function (path) {\n if (isPathProxy(path)) {\n path.appendPath(pathList);\n var ctx = path.getContext();\n\n if (ctx) {\n path.rebuildPath(ctx, 1);\n }\n }\n };\n\n return pathBundle;\n}\nexport function clonePath(sourcePath, opts) {\n opts = opts || {};\n var path = new Path();\n\n if (sourcePath.shape) {\n path.setShape(sourcePath.shape);\n }\n\n path.setStyle(sourcePath.style);\n\n if (opts.bakeTransform) {\n transformPath(path.path, sourcePath.getComputedTransform());\n } else {\n if (opts.toLocal) {\n path.setLocalTransform(sourcePath.getComputedTransform());\n } else {\n path.copyTransform(sourcePath);\n }\n }\n\n path.buildPath = sourcePath.buildPath;\n path.applyTransform = path.applyTransform;\n path.z = sourcePath.z;\n path.z2 = sourcePath.z2;\n path.zlevel = sourcePath.zlevel;\n return path;\n}","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src啊/ElectronicMallVue/node_modules/zrender/lib/tool/path.js"],"names":["__extends","Path","PathProxy","transformPath","extend","mathSqrt","Math","sqrt","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","createPathProxyFromString","data","cpx","cpy","subpathX","subpathY","prevCmd","CMD","cmdList","match","l","length","cmdText","cmdStr","charAt","p","pLen","i","parseFloat","off","ctlPtx","ctlPty","len","pathData","L","M","C","Q","A","Z","toStatic","SVGPath","_super","apply","arguments","prototype","applyTransform","m","isPathProxy","setData","createPathOptions","str","opts","pathProxy","innerOpts","buildPath","ctx","getContext","rebuildPath","dirtyShape","createFromString","extendFromString","defaultOpts","Sub","_this","call","mergePath","pathEls","pathList","pathEl","push","getUpdatedPathProxy","pathBundle","createPathProxy","appendPath","clonePath","sourcePath","shape","setShape","setStyle","style","bakeTransform","getComputedTransform","toLocal","setLocalTransform","copyTransform","z","z2","zlevel"],"mappings":"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","sourcesContent":["import { __extends } from \"tslib\";\nimport Path from '../graphic/Path.js';\nimport PathProxy from '../core/PathProxy.js';\nimport transformPath from './transformPath.js';\nimport { extend } from '../core/util.js';\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 pathList.push(pathEl.getUpdatedPathProxy(true));\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}\nexport function clonePath(sourcePath, opts) {\n opts = opts || {};\n var path = new Path();\n if (sourcePath.shape) {\n path.setShape(sourcePath.shape);\n }\n path.setStyle(sourcePath.style);\n if (opts.bakeTransform) {\n transformPath(path.path, sourcePath.getComputedTransform());\n }\n else {\n if (opts.toLocal) {\n path.setLocalTransform(sourcePath.getComputedTransform());\n }\n else {\n path.copyTransform(sourcePath);\n }\n }\n path.buildPath = sourcePath.buildPath;\n path.applyTransform = path.applyTransform;\n path.z = sourcePath.z;\n path.z2 = sourcePath.z2;\n path.zlevel = sourcePath.zlevel;\n return path;\n}\n"]},"metadata":{},"sourceType":"module"} |