qauMaWeb/node_modules/.cache/babel-loader/0b8a33abefefe78da02511e7c9f...

1 line
32 KiB
JSON

{"ast":null,"code":"import PathProxy from '../core/PathProxy.js';\nimport * as line from './line.js';\nimport * as cubic from './cubic.js';\nimport * as quadratic from './quadratic.js';\nimport * as arc from './arc.js';\nimport * as curve from '../core/curve.js';\nimport windingLine from './windingLine.js';\nvar CMD = PathProxy.CMD;\nvar PI2 = Math.PI * 2;\nvar EPSILON = 1e-4;\n\nfunction isAroundEqual(a, b) {\n return Math.abs(a - b) < EPSILON;\n}\n\nvar roots = [-1, -1, -1];\nvar extrema = [-1, -1];\n\nfunction swapExtrema() {\n var tmp = extrema[0];\n extrema[0] = extrema[1];\n extrema[1] = tmp;\n}\n\nfunction windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\n if (y > y0 && y > y1 && y > y2 && y > y3 || y < y0 && y < y1 && y < y2 && y < y3) {\n return 0;\n }\n\n var nRoots = curve.cubicRootAt(y0, y1, y2, y3, y, roots);\n\n if (nRoots === 0) {\n return 0;\n } else {\n var w = 0;\n var nExtrema = -1;\n var y0_ = void 0;\n var y1_ = void 0;\n\n for (var i = 0; i < nRoots; i++) {\n var t = roots[i];\n var unit = t === 0 || t === 1 ? 0.5 : 1;\n var x_ = curve.cubicAt(x0, x1, x2, x3, t);\n\n if (x_ < x) {\n continue;\n }\n\n if (nExtrema < 0) {\n nExtrema = curve.cubicExtrema(y0, y1, y2, y3, extrema);\n\n if (extrema[1] < extrema[0] && nExtrema > 1) {\n swapExtrema();\n }\n\n y0_ = curve.cubicAt(y0, y1, y2, y3, extrema[0]);\n\n if (nExtrema > 1) {\n y1_ = curve.cubicAt(y0, y1, y2, y3, extrema[1]);\n }\n }\n\n if (nExtrema === 2) {\n if (t < extrema[0]) {\n w += y0_ < y0 ? unit : -unit;\n } else if (t < extrema[1]) {\n w += y1_ < y0_ ? unit : -unit;\n } else {\n w += y3 < y1_ ? unit : -unit;\n }\n } else {\n if (t < extrema[0]) {\n w += y0_ < y0 ? unit : -unit;\n } else {\n w += y3 < y0_ ? unit : -unit;\n }\n }\n }\n\n return w;\n }\n}\n\nfunction windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\n if (y > y0 && y > y1 && y > y2 || y < y0 && y < y1 && y < y2) {\n return 0;\n }\n\n var nRoots = curve.quadraticRootAt(y0, y1, y2, y, roots);\n\n if (nRoots === 0) {\n return 0;\n } else {\n var t = curve.quadraticExtremum(y0, y1, y2);\n\n if (t >= 0 && t <= 1) {\n var w = 0;\n var y_ = curve.quadraticAt(y0, y1, y2, t);\n\n for (var i = 0; i < nRoots; i++) {\n var unit = roots[i] === 0 || roots[i] === 1 ? 0.5 : 1;\n var x_ = curve.quadraticAt(x0, x1, x2, roots[i]);\n\n if (x_ < x) {\n continue;\n }\n\n if (roots[i] < t) {\n w += y_ < y0 ? unit : -unit;\n } else {\n w += y2 < y_ ? unit : -unit;\n }\n }\n\n return w;\n } else {\n var unit = roots[0] === 0 || roots[0] === 1 ? 0.5 : 1;\n var x_ = curve.quadraticAt(x0, x1, x2, roots[0]);\n\n if (x_ < x) {\n return 0;\n }\n\n return y2 < y0 ? unit : -unit;\n }\n }\n}\n\nfunction windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\n y -= cy;\n\n if (y > r || y < -r) {\n return 0;\n }\n\n var tmp = Math.sqrt(r * r - y * y);\n roots[0] = -tmp;\n roots[1] = tmp;\n var dTheta = Math.abs(startAngle - endAngle);\n\n if (dTheta < 1e-4) {\n return 0;\n }\n\n if (dTheta >= PI2 - 1e-4) {\n startAngle = 0;\n endAngle = PI2;\n var dir = anticlockwise ? 1 : -1;\n\n if (x >= roots[0] + cx && x <= roots[1] + cx) {\n return dir;\n } else {\n return 0;\n }\n }\n\n if (startAngle > endAngle) {\n var tmp_1 = startAngle;\n startAngle = endAngle;\n endAngle = tmp_1;\n }\n\n if (startAngle < 0) {\n startAngle += PI2;\n endAngle += PI2;\n }\n\n var w = 0;\n\n for (var i = 0; i < 2; i++) {\n var x_ = roots[i];\n\n if (x_ + cx > x) {\n var angle = Math.atan2(y, x_);\n var dir = anticlockwise ? 1 : -1;\n\n if (angle < 0) {\n angle = PI2 + angle;\n }\n\n if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) {\n if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\n dir = -dir;\n }\n\n w += dir;\n }\n }\n }\n\n return w;\n}\n\nfunction containPath(path, lineWidth, isStroke, x, y) {\n var data = path.data;\n var len = path.len();\n var w = 0;\n var xi = 0;\n var yi = 0;\n var x0 = 0;\n var y0 = 0;\n var x1;\n var y1;\n\n for (var i = 0; i < len;) {\n var cmd = data[i++];\n var isFirst = i === 1;\n\n if (cmd === CMD.M && i > 1) {\n if (!isStroke) {\n w += windingLine(xi, yi, x0, y0, x, y);\n }\n }\n\n if (isFirst) {\n xi = data[i];\n yi = data[i + 1];\n x0 = xi;\n y0 = yi;\n }\n\n switch (cmd) {\n case CMD.M:\n x0 = data[i++];\n y0 = data[i++];\n xi = x0;\n yi = y0;\n break;\n\n case CMD.L:\n if (isStroke) {\n if (line.containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\n return true;\n }\n } else {\n w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\n }\n\n xi = data[i++];\n yi = data[i++];\n break;\n\n case CMD.C:\n if (isStroke) {\n if (cubic.containStroke(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n return true;\n }\n } else {\n w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n }\n\n xi = data[i++];\n yi = data[i++];\n break;\n\n case CMD.Q:\n if (isStroke) {\n if (quadratic.containStroke(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n return true;\n }\n } else {\n w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n }\n\n xi = data[i++];\n yi = data[i++];\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 i += 1;\n var anticlockwise = !!(1 - data[i++]);\n x1 = Math.cos(theta) * rx + cx;\n y1 = Math.sin(theta) * ry + cy;\n\n if (!isFirst) {\n w += windingLine(xi, yi, x1, y1, x, y);\n } else {\n x0 = x1;\n y0 = y1;\n }\n\n var _x = (x - cx) * ry / rx + cx;\n\n if (isStroke) {\n if (arc.containStroke(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\n return true;\n }\n } else {\n w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\n }\n\n xi = Math.cos(theta + dTheta) * rx + cx;\n yi = Math.sin(theta + dTheta) * ry + cy;\n break;\n\n case CMD.R:\n x0 = xi = data[i++];\n y0 = yi = data[i++];\n var width = data[i++];\n var height = data[i++];\n x1 = x0 + width;\n y1 = y0 + height;\n\n if (isStroke) {\n if (line.containStroke(x0, y0, x1, y0, lineWidth, x, y) || line.containStroke(x1, y0, x1, y1, lineWidth, x, y) || line.containStroke(x1, y1, x0, y1, lineWidth, x, y) || line.containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\n return true;\n }\n } else {\n w += windingLine(x1, y0, x1, y1, x, y);\n w += windingLine(x0, y1, x0, y0, x, y);\n }\n\n break;\n\n case CMD.Z:\n if (isStroke) {\n if (line.containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\n return true;\n }\n } else {\n w += windingLine(xi, yi, x0, y0, x, y);\n }\n\n xi = x0;\n yi = y0;\n break;\n }\n }\n\n if (!isStroke && !isAroundEqual(yi, y0)) {\n w += windingLine(xi, yi, x0, y0, x, y) || 0;\n }\n\n return w !== 0;\n}\n\nexport function contain(pathProxy, x, y) {\n return containPath(pathProxy, 0, false, x, y);\n}\nexport function containStroke(pathProxy, lineWidth, x, y) {\n return containPath(pathProxy, lineWidth, true, x, y);\n}","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src/ElectronicMallVue/node_modules/zrender/lib/contain/path.js"],"names":["PathProxy","line","cubic","quadratic","arc","curve","windingLine","CMD","PI2","Math","PI","EPSILON","isAroundEqual","a","b","abs","roots","extrema","swapExtrema","tmp","windingCubic","x0","y0","x1","y1","x2","y2","x3","y3","x","y","nRoots","cubicRootAt","w","nExtrema","y0_","y1_","i","t","unit","x_","cubicAt","cubicExtrema","windingQuadratic","quadraticRootAt","quadraticExtremum","y_","quadraticAt","windingArc","cx","cy","r","startAngle","endAngle","anticlockwise","sqrt","dTheta","dir","tmp_1","angle","atan2","containPath","path","lineWidth","isStroke","data","len","xi","yi","cmd","isFirst","M","L","containStroke","C","Q","A","rx","ry","theta","cos","sin","_x","R","width","height","Z","contain","pathProxy"],"mappings":"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","sourcesContent":["import PathProxy from '../core/PathProxy.js';\nimport * as line from './line.js';\nimport * as cubic from './cubic.js';\nimport * as quadratic from './quadratic.js';\nimport * as arc from './arc.js';\nimport * as curve from '../core/curve.js';\nimport windingLine from './windingLine.js';\nvar CMD = PathProxy.CMD;\nvar PI2 = Math.PI * 2;\nvar EPSILON = 1e-4;\nfunction isAroundEqual(a, b) {\n return Math.abs(a - b) < EPSILON;\n}\nvar roots = [-1, -1, -1];\nvar extrema = [-1, -1];\nfunction swapExtrema() {\n var tmp = extrema[0];\n extrema[0] = extrema[1];\n extrema[1] = tmp;\n}\nfunction windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\n if ((y > y0 && y > y1 && y > y2 && y > y3)\n || (y < y0 && y < y1 && y < y2 && y < y3)) {\n return 0;\n }\n var nRoots = curve.cubicRootAt(y0, y1, y2, y3, y, roots);\n if (nRoots === 0) {\n return 0;\n }\n else {\n var w = 0;\n var nExtrema = -1;\n var y0_ = void 0;\n var y1_ = void 0;\n for (var i = 0; i < nRoots; i++) {\n var t = roots[i];\n var unit = (t === 0 || t === 1) ? 0.5 : 1;\n var x_ = curve.cubicAt(x0, x1, x2, x3, t);\n if (x_ < x) {\n continue;\n }\n if (nExtrema < 0) {\n nExtrema = curve.cubicExtrema(y0, y1, y2, y3, extrema);\n if (extrema[1] < extrema[0] && nExtrema > 1) {\n swapExtrema();\n }\n y0_ = curve.cubicAt(y0, y1, y2, y3, extrema[0]);\n if (nExtrema > 1) {\n y1_ = curve.cubicAt(y0, y1, y2, y3, extrema[1]);\n }\n }\n if (nExtrema === 2) {\n if (t < extrema[0]) {\n w += y0_ < y0 ? unit : -unit;\n }\n else if (t < extrema[1]) {\n w += y1_ < y0_ ? unit : -unit;\n }\n else {\n w += y3 < y1_ ? unit : -unit;\n }\n }\n else {\n if (t < extrema[0]) {\n w += y0_ < y0 ? unit : -unit;\n }\n else {\n w += y3 < y0_ ? unit : -unit;\n }\n }\n }\n return w;\n }\n}\nfunction windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\n if ((y > y0 && y > y1 && y > y2)\n || (y < y0 && y < y1 && y < y2)) {\n return 0;\n }\n var nRoots = curve.quadraticRootAt(y0, y1, y2, y, roots);\n if (nRoots === 0) {\n return 0;\n }\n else {\n var t = curve.quadraticExtremum(y0, y1, y2);\n if (t >= 0 && t <= 1) {\n var w = 0;\n var y_ = curve.quadraticAt(y0, y1, y2, t);\n for (var i = 0; i < nRoots; i++) {\n var unit = (roots[i] === 0 || roots[i] === 1) ? 0.5 : 1;\n var x_ = curve.quadraticAt(x0, x1, x2, roots[i]);\n if (x_ < x) {\n continue;\n }\n if (roots[i] < t) {\n w += y_ < y0 ? unit : -unit;\n }\n else {\n w += y2 < y_ ? unit : -unit;\n }\n }\n return w;\n }\n else {\n var unit = (roots[0] === 0 || roots[0] === 1) ? 0.5 : 1;\n var x_ = curve.quadraticAt(x0, x1, x2, roots[0]);\n if (x_ < x) {\n return 0;\n }\n return y2 < y0 ? unit : -unit;\n }\n }\n}\nfunction windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\n y -= cy;\n if (y > r || y < -r) {\n return 0;\n }\n var tmp = Math.sqrt(r * r - y * y);\n roots[0] = -tmp;\n roots[1] = tmp;\n var dTheta = Math.abs(startAngle - endAngle);\n if (dTheta < 1e-4) {\n return 0;\n }\n if (dTheta >= PI2 - 1e-4) {\n startAngle = 0;\n endAngle = PI2;\n var dir = anticlockwise ? 1 : -1;\n if (x >= roots[0] + cx && x <= roots[1] + cx) {\n return dir;\n }\n else {\n return 0;\n }\n }\n if (startAngle > endAngle) {\n var tmp_1 = startAngle;\n startAngle = endAngle;\n endAngle = tmp_1;\n }\n if (startAngle < 0) {\n startAngle += PI2;\n endAngle += PI2;\n }\n var w = 0;\n for (var i = 0; i < 2; i++) {\n var x_ = roots[i];\n if (x_ + cx > x) {\n var angle = Math.atan2(y, x_);\n var dir = anticlockwise ? 1 : -1;\n if (angle < 0) {\n angle = PI2 + angle;\n }\n if ((angle >= startAngle && angle <= endAngle)\n || (angle + PI2 >= startAngle && angle + PI2 <= endAngle)) {\n if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\n dir = -dir;\n }\n w += dir;\n }\n }\n }\n return w;\n}\nfunction containPath(path, lineWidth, isStroke, x, y) {\n var data = path.data;\n var len = path.len();\n var w = 0;\n var xi = 0;\n var yi = 0;\n var x0 = 0;\n var y0 = 0;\n var x1;\n var y1;\n for (var i = 0; i < len;) {\n var cmd = data[i++];\n var isFirst = i === 1;\n if (cmd === CMD.M && i > 1) {\n if (!isStroke) {\n w += windingLine(xi, yi, x0, y0, x, y);\n }\n }\n if (isFirst) {\n xi = data[i];\n yi = data[i + 1];\n x0 = xi;\n y0 = yi;\n }\n switch (cmd) {\n case CMD.M:\n x0 = data[i++];\n y0 = data[i++];\n xi = x0;\n yi = y0;\n break;\n case CMD.L:\n if (isStroke) {\n if (line.containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\n return true;\n }\n }\n else {\n w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\n }\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.C:\n if (isStroke) {\n if (cubic.containStroke(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n return true;\n }\n }\n else {\n w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n }\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.Q:\n if (isStroke) {\n if (quadratic.containStroke(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n return true;\n }\n }\n else {\n w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n }\n xi = data[i++];\n yi = data[i++];\n break;\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 i += 1;\n var anticlockwise = !!(1 - data[i++]);\n x1 = Math.cos(theta) * rx + cx;\n y1 = Math.sin(theta) * ry + cy;\n if (!isFirst) {\n w += windingLine(xi, yi, x1, y1, x, y);\n }\n else {\n x0 = x1;\n y0 = y1;\n }\n var _x = (x - cx) * ry / rx + cx;\n if (isStroke) {\n if (arc.containStroke(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\n return true;\n }\n }\n else {\n w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\n }\n xi = Math.cos(theta + dTheta) * rx + cx;\n yi = Math.sin(theta + dTheta) * ry + cy;\n break;\n case CMD.R:\n x0 = xi = data[i++];\n y0 = yi = data[i++];\n var width = data[i++];\n var height = data[i++];\n x1 = x0 + width;\n y1 = y0 + height;\n if (isStroke) {\n if (line.containStroke(x0, y0, x1, y0, lineWidth, x, y)\n || line.containStroke(x1, y0, x1, y1, lineWidth, x, y)\n || line.containStroke(x1, y1, x0, y1, lineWidth, x, y)\n || line.containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\n return true;\n }\n }\n else {\n w += windingLine(x1, y0, x1, y1, x, y);\n w += windingLine(x0, y1, x0, y0, x, y);\n }\n break;\n case CMD.Z:\n if (isStroke) {\n if (line.containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\n return true;\n }\n }\n else {\n w += windingLine(xi, yi, x0, y0, x, y);\n }\n xi = x0;\n yi = y0;\n break;\n }\n }\n if (!isStroke && !isAroundEqual(yi, y0)) {\n w += windingLine(xi, yi, x0, y0, x, y) || 0;\n }\n return w !== 0;\n}\nexport function contain(pathProxy, x, y) {\n return containPath(pathProxy, 0, false, x, y);\n}\nexport function containStroke(pathProxy, lineWidth, x, y) {\n return containPath(pathProxy, lineWidth, true, x, y);\n}\n"]},"metadata":{},"sourceType":"module"}