1 line
30 KiB
JSON
1 line
30 KiB
JSON
{"ast":null,"code":"import \"core-js/modules/es.array.concat.js\";\nimport { isArray } from '../../core/util.js';\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar mathACos = Math.acos;\nvar mathATan2 = Math.atan2;\nvar mathAbs = Math.abs;\nvar mathSqrt = Math.sqrt;\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar e = 1e-4;\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var dx10 = x1 - x0;\n var dy10 = y1 - y0;\n var dx32 = x3 - x2;\n var dy32 = y3 - y2;\n var t = dy32 * dx10 - dx32 * dy10;\n\n if (t * t < e) {\n return;\n }\n\n t = (dx32 * (y0 - y2) - dy32 * (x0 - x2)) / t;\n return [x0 + t * dx10, y0 + t * dy10];\n}\n\nfunction computeCornerTangents(x0, y0, x1, y1, radius, cr, clockwise) {\n var x01 = x0 - x1;\n var y01 = y0 - y1;\n var lo = (clockwise ? cr : -cr) / mathSqrt(x01 * x01 + y01 * y01);\n var ox = lo * y01;\n var oy = -lo * x01;\n var x11 = x0 + ox;\n var y11 = y0 + oy;\n var x10 = x1 + ox;\n var y10 = y1 + oy;\n var x00 = (x11 + x10) / 2;\n var y00 = (y11 + y10) / 2;\n var dx = x10 - x11;\n var dy = y10 - y11;\n var d2 = dx * dx + dy * dy;\n var r = radius - cr;\n var s = x11 * y10 - x10 * y11;\n var d = (dy < 0 ? -1 : 1) * mathSqrt(mathMax(0, r * r * d2 - s * s));\n var cx0 = (s * dy - dx * d) / d2;\n var cy0 = (-s * dx - dy * d) / d2;\n var cx1 = (s * dy + dx * d) / d2;\n var cy1 = (-s * dx + dy * d) / d2;\n var dx0 = cx0 - x00;\n var dy0 = cy0 - y00;\n var dx1 = cx1 - x00;\n var dy1 = cy1 - y00;\n\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) {\n cx0 = cx1;\n cy0 = cy1;\n }\n\n return {\n cx: cx0,\n cy: cy0,\n x0: -ox,\n y0: -oy,\n x1: cx0 * (radius / r - 1),\n y1: cy0 * (radius / r - 1)\n };\n}\n\nfunction normalizeCornerRadius(cr) {\n var arr;\n\n if (isArray(cr)) {\n var len = cr.length;\n\n if (!len) {\n return cr;\n }\n\n if (len === 1) {\n arr = [cr[0], cr[0], 0, 0];\n } else if (len === 2) {\n arr = [cr[0], cr[0], cr[1], cr[1]];\n } else if (len === 3) {\n arr = cr.concat(cr[2]);\n } else {\n arr = cr;\n }\n } else {\n arr = [cr, cr, cr, cr];\n }\n\n return arr;\n}\n\nexport function buildPath(ctx, shape) {\n var _a;\n\n var radius = mathMax(shape.r, 0);\n var innerRadius = mathMax(shape.r0 || 0, 0);\n var hasRadius = radius > 0;\n var hasInnerRadius = innerRadius > 0;\n\n if (!hasRadius && !hasInnerRadius) {\n return;\n }\n\n if (!hasRadius) {\n radius = innerRadius;\n innerRadius = 0;\n }\n\n if (innerRadius > radius) {\n var tmp = radius;\n radius = innerRadius;\n innerRadius = tmp;\n }\n\n var startAngle = shape.startAngle,\n endAngle = shape.endAngle;\n\n if (isNaN(startAngle) || isNaN(endAngle)) {\n return;\n }\n\n var cx = shape.cx,\n cy = shape.cy;\n var clockwise = !!shape.clockwise;\n var arc = mathAbs(endAngle - startAngle);\n var mod = arc > PI2 && arc % PI2;\n mod > e && (arc = mod);\n\n if (!(radius > e)) {\n ctx.moveTo(cx, cy);\n } else if (arc > PI2 - e) {\n ctx.moveTo(cx + radius * mathCos(startAngle), cy + radius * mathSin(startAngle));\n ctx.arc(cx, cy, radius, startAngle, endAngle, !clockwise);\n\n if (innerRadius > e) {\n ctx.moveTo(cx + innerRadius * mathCos(endAngle), cy + innerRadius * mathSin(endAngle));\n ctx.arc(cx, cy, innerRadius, endAngle, startAngle, clockwise);\n }\n } else {\n var icrStart = void 0;\n var icrEnd = void 0;\n var ocrStart = void 0;\n var ocrEnd = void 0;\n var ocrs = void 0;\n var ocre = void 0;\n var icrs = void 0;\n var icre = void 0;\n var ocrMax = void 0;\n var icrMax = void 0;\n var limitedOcrMax = void 0;\n var limitedIcrMax = void 0;\n var xre = void 0;\n var yre = void 0;\n var xirs = void 0;\n var yirs = void 0;\n var xrs = radius * mathCos(startAngle);\n var yrs = radius * mathSin(startAngle);\n var xire = innerRadius * mathCos(endAngle);\n var yire = innerRadius * mathSin(endAngle);\n var hasArc = arc > e;\n\n if (hasArc) {\n var cornerRadius = shape.cornerRadius;\n\n if (cornerRadius) {\n _a = normalizeCornerRadius(cornerRadius), icrStart = _a[0], icrEnd = _a[1], ocrStart = _a[2], ocrEnd = _a[3];\n }\n\n var halfRd = mathAbs(radius - innerRadius) / 2;\n ocrs = mathMin(halfRd, ocrStart);\n ocre = mathMin(halfRd, ocrEnd);\n icrs = mathMin(halfRd, icrStart);\n icre = mathMin(halfRd, icrEnd);\n limitedOcrMax = ocrMax = mathMax(ocrs, ocre);\n limitedIcrMax = icrMax = mathMax(icrs, icre);\n\n if (ocrMax > e || icrMax > e) {\n xre = radius * mathCos(endAngle);\n yre = radius * mathSin(endAngle);\n xirs = innerRadius * mathCos(startAngle);\n yirs = innerRadius * mathSin(startAngle);\n\n if (arc < PI) {\n var it_1 = intersect(xrs, yrs, xirs, yirs, xre, yre, xire, yire);\n\n if (it_1) {\n var x0 = xrs - it_1[0];\n var y0 = yrs - it_1[1];\n var x1 = xre - it_1[0];\n var y1 = yre - it_1[1];\n var a = 1 / mathSin(mathACos((x0 * x1 + y0 * y1) / (mathSqrt(x0 * x0 + y0 * y0) * mathSqrt(x1 * x1 + y1 * y1))) / 2);\n var b = mathSqrt(it_1[0] * it_1[0] + it_1[1] * it_1[1]);\n limitedOcrMax = mathMin(ocrMax, (radius - b) / (a + 1));\n limitedIcrMax = mathMin(icrMax, (innerRadius - b) / (a - 1));\n }\n }\n }\n }\n\n if (!hasArc) {\n ctx.moveTo(cx + xrs, cy + yrs);\n } else if (limitedOcrMax > e) {\n var crStart = mathMin(ocrStart, limitedOcrMax);\n var crEnd = mathMin(ocrEnd, limitedOcrMax);\n var ct0 = computeCornerTangents(xirs, yirs, xrs, yrs, radius, crStart, clockwise);\n var ct1 = computeCornerTangents(xre, yre, xire, yire, radius, crEnd, clockwise);\n ctx.moveTo(cx + ct0.cx + ct0.x0, cy + ct0.cy + ct0.y0);\n\n if (limitedOcrMax < ocrMax && crStart === crEnd) {\n ctx.arc(cx + ct0.cx, cy + ct0.cy, limitedOcrMax, mathATan2(ct0.y0, ct0.x0), mathATan2(ct1.y0, ct1.x0), !clockwise);\n } else {\n crStart > 0 && ctx.arc(cx + ct0.cx, cy + ct0.cy, crStart, mathATan2(ct0.y0, ct0.x0), mathATan2(ct0.y1, ct0.x1), !clockwise);\n ctx.arc(cx, cy, radius, mathATan2(ct0.cy + ct0.y1, ct0.cx + ct0.x1), mathATan2(ct1.cy + ct1.y1, ct1.cx + ct1.x1), !clockwise);\n crEnd > 0 && ctx.arc(cx + ct1.cx, cy + ct1.cy, crEnd, mathATan2(ct1.y1, ct1.x1), mathATan2(ct1.y0, ct1.x0), !clockwise);\n }\n } else {\n ctx.moveTo(cx + xrs, cy + yrs);\n ctx.arc(cx, cy, radius, startAngle, endAngle, !clockwise);\n }\n\n if (!(innerRadius > e) || !hasArc) {\n ctx.lineTo(cx + xire, cy + yire);\n } else if (limitedIcrMax > e) {\n var crStart = mathMin(icrStart, limitedIcrMax);\n var crEnd = mathMin(icrEnd, limitedIcrMax);\n var ct0 = computeCornerTangents(xire, yire, xre, yre, innerRadius, -crEnd, clockwise);\n var ct1 = computeCornerTangents(xrs, yrs, xirs, yirs, innerRadius, -crStart, clockwise);\n ctx.lineTo(cx + ct0.cx + ct0.x0, cy + ct0.cy + ct0.y0);\n\n if (limitedIcrMax < icrMax && crStart === crEnd) {\n ctx.arc(cx + ct0.cx, cy + ct0.cy, limitedIcrMax, mathATan2(ct0.y0, ct0.x0), mathATan2(ct1.y0, ct1.x0), !clockwise);\n } else {\n crEnd > 0 && ctx.arc(cx + ct0.cx, cy + ct0.cy, crEnd, mathATan2(ct0.y0, ct0.x0), mathATan2(ct0.y1, ct0.x1), !clockwise);\n ctx.arc(cx, cy, innerRadius, mathATan2(ct0.cy + ct0.y1, ct0.cx + ct0.x1), mathATan2(ct1.cy + ct1.y1, ct1.cx + ct1.x1), clockwise);\n crStart > 0 && ctx.arc(cx + ct1.cx, cy + ct1.cy, crStart, mathATan2(ct1.y1, ct1.x1), mathATan2(ct1.y0, ct1.x0), !clockwise);\n }\n } else {\n ctx.lineTo(cx + xire, cy + yire);\n ctx.arc(cx, cy, innerRadius, endAngle, startAngle, clockwise);\n }\n }\n\n ctx.closePath();\n}","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src/qingge-Market/qingge-vue/node_modules/zrender/lib/graphic/helper/roundSector.js"],"names":["isArray","PI","Math","PI2","mathSin","sin","mathCos","cos","mathACos","acos","mathATan2","atan2","mathAbs","abs","mathSqrt","sqrt","mathMax","max","mathMin","min","e","intersect","x0","y0","x1","y1","x2","y2","x3","y3","dx10","dy10","dx32","dy32","t","computeCornerTangents","radius","cr","clockwise","x01","y01","lo","ox","oy","x11","y11","x10","y10","x00","y00","dx","dy","d2","r","s","d","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","normalizeCornerRadius","arr","len","length","concat","buildPath","ctx","shape","_a","innerRadius","r0","hasRadius","hasInnerRadius","tmp","startAngle","endAngle","isNaN","arc","mod","moveTo","icrStart","icrEnd","ocrStart","ocrEnd","ocrs","ocre","icrs","icre","ocrMax","icrMax","limitedOcrMax","limitedIcrMax","xre","yre","xirs","yirs","xrs","yrs","xire","yire","hasArc","cornerRadius","halfRd","it_1","a","b","crStart","crEnd","ct0","ct1","lineTo","closePath"],"mappings":"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","sourcesContent":["import { isArray } from '../../core/util.js';\r\nvar PI = Math.PI;\r\nvar PI2 = PI * 2;\r\nvar mathSin = Math.sin;\r\nvar mathCos = Math.cos;\r\nvar mathACos = Math.acos;\r\nvar mathATan2 = Math.atan2;\r\nvar mathAbs = Math.abs;\r\nvar mathSqrt = Math.sqrt;\r\nvar mathMax = Math.max;\r\nvar mathMin = Math.min;\r\nvar e = 1e-4;\r\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\r\n var dx10 = x1 - x0;\r\n var dy10 = y1 - y0;\r\n var dx32 = x3 - x2;\r\n var dy32 = y3 - y2;\r\n var t = dy32 * dx10 - dx32 * dy10;\r\n if (t * t < e) {\r\n return;\r\n }\r\n t = (dx32 * (y0 - y2) - dy32 * (x0 - x2)) / t;\r\n return [x0 + t * dx10, y0 + t * dy10];\r\n}\r\nfunction computeCornerTangents(x0, y0, x1, y1, radius, cr, clockwise) {\r\n var x01 = x0 - x1;\r\n var y01 = y0 - y1;\r\n var lo = (clockwise ? cr : -cr) / mathSqrt(x01 * x01 + y01 * y01);\r\n var ox = lo * y01;\r\n var oy = -lo * x01;\r\n var x11 = x0 + ox;\r\n var y11 = y0 + oy;\r\n var x10 = x1 + ox;\r\n var y10 = y1 + oy;\r\n var x00 = (x11 + x10) / 2;\r\n var y00 = (y11 + y10) / 2;\r\n var dx = x10 - x11;\r\n var dy = y10 - y11;\r\n var d2 = dx * dx + dy * dy;\r\n var r = radius - cr;\r\n var s = x11 * y10 - x10 * y11;\r\n var d = (dy < 0 ? -1 : 1) * mathSqrt(mathMax(0, r * r * d2 - s * s));\r\n var cx0 = (s * dy - dx * d) / d2;\r\n var cy0 = (-s * dx - dy * d) / d2;\r\n var cx1 = (s * dy + dx * d) / d2;\r\n var cy1 = (-s * dx + dy * d) / d2;\r\n var dx0 = cx0 - x00;\r\n var dy0 = cy0 - y00;\r\n var dx1 = cx1 - x00;\r\n var dy1 = cy1 - y00;\r\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) {\r\n cx0 = cx1;\r\n cy0 = cy1;\r\n }\r\n return {\r\n cx: cx0,\r\n cy: cy0,\r\n x0: -ox,\r\n y0: -oy,\r\n x1: cx0 * (radius / r - 1),\r\n y1: cy0 * (radius / r - 1)\r\n };\r\n}\r\nfunction normalizeCornerRadius(cr) {\r\n var arr;\r\n if (isArray(cr)) {\r\n var len = cr.length;\r\n if (!len) {\r\n return cr;\r\n }\r\n if (len === 1) {\r\n arr = [cr[0], cr[0], 0, 0];\r\n }\r\n else if (len === 2) {\r\n arr = [cr[0], cr[0], cr[1], cr[1]];\r\n }\r\n else if (len === 3) {\r\n arr = cr.concat(cr[2]);\r\n }\r\n else {\r\n arr = cr;\r\n }\r\n }\r\n else {\r\n arr = [cr, cr, cr, cr];\r\n }\r\n return arr;\r\n}\r\nexport function buildPath(ctx, shape) {\r\n var _a;\r\n var radius = mathMax(shape.r, 0);\r\n var innerRadius = mathMax(shape.r0 || 0, 0);\r\n var hasRadius = radius > 0;\r\n var hasInnerRadius = innerRadius > 0;\r\n if (!hasRadius && !hasInnerRadius) {\r\n return;\r\n }\r\n if (!hasRadius) {\r\n radius = innerRadius;\r\n innerRadius = 0;\r\n }\r\n if (innerRadius > radius) {\r\n var tmp = radius;\r\n radius = innerRadius;\r\n innerRadius = tmp;\r\n }\r\n var startAngle = shape.startAngle, endAngle = shape.endAngle;\r\n if (isNaN(startAngle) || isNaN(endAngle)) {\r\n return;\r\n }\r\n var cx = shape.cx, cy = shape.cy;\r\n var clockwise = !!shape.clockwise;\r\n var arc = mathAbs(endAngle - startAngle);\r\n var mod = arc > PI2 && arc % PI2;\r\n mod > e && (arc = mod);\r\n if (!(radius > e)) {\r\n ctx.moveTo(cx, cy);\r\n }\r\n else if (arc > PI2 - e) {\r\n ctx.moveTo(cx + radius * mathCos(startAngle), cy + radius * mathSin(startAngle));\r\n ctx.arc(cx, cy, radius, startAngle, endAngle, !clockwise);\r\n if (innerRadius > e) {\r\n ctx.moveTo(cx + innerRadius * mathCos(endAngle), cy + innerRadius * mathSin(endAngle));\r\n ctx.arc(cx, cy, innerRadius, endAngle, startAngle, clockwise);\r\n }\r\n }\r\n else {\r\n var icrStart = void 0;\r\n var icrEnd = void 0;\r\n var ocrStart = void 0;\r\n var ocrEnd = void 0;\r\n var ocrs = void 0;\r\n var ocre = void 0;\r\n var icrs = void 0;\r\n var icre = void 0;\r\n var ocrMax = void 0;\r\n var icrMax = void 0;\r\n var limitedOcrMax = void 0;\r\n var limitedIcrMax = void 0;\r\n var xre = void 0;\r\n var yre = void 0;\r\n var xirs = void 0;\r\n var yirs = void 0;\r\n var xrs = radius * mathCos(startAngle);\r\n var yrs = radius * mathSin(startAngle);\r\n var xire = innerRadius * mathCos(endAngle);\r\n var yire = innerRadius * mathSin(endAngle);\r\n var hasArc = arc > e;\r\n if (hasArc) {\r\n var cornerRadius = shape.cornerRadius;\r\n if (cornerRadius) {\r\n _a = normalizeCornerRadius(cornerRadius), icrStart = _a[0], icrEnd = _a[1], ocrStart = _a[2], ocrEnd = _a[3];\r\n }\r\n var halfRd = mathAbs(radius - innerRadius) / 2;\r\n ocrs = mathMin(halfRd, ocrStart);\r\n ocre = mathMin(halfRd, ocrEnd);\r\n icrs = mathMin(halfRd, icrStart);\r\n icre = mathMin(halfRd, icrEnd);\r\n limitedOcrMax = ocrMax = mathMax(ocrs, ocre);\r\n limitedIcrMax = icrMax = mathMax(icrs, icre);\r\n if (ocrMax > e || icrMax > e) {\r\n xre = radius * mathCos(endAngle);\r\n yre = radius * mathSin(endAngle);\r\n xirs = innerRadius * mathCos(startAngle);\r\n yirs = innerRadius * mathSin(startAngle);\r\n if (arc < PI) {\r\n var it_1 = intersect(xrs, yrs, xirs, yirs, xre, yre, xire, yire);\r\n if (it_1) {\r\n var x0 = xrs - it_1[0];\r\n var y0 = yrs - it_1[1];\r\n var x1 = xre - it_1[0];\r\n var y1 = yre - it_1[1];\r\n var a = 1 / mathSin(mathACos((x0 * x1 + y0 * y1) / (mathSqrt(x0 * x0 + y0 * y0) * mathSqrt(x1 * x1 + y1 * y1))) / 2);\r\n var b = mathSqrt(it_1[0] * it_1[0] + it_1[1] * it_1[1]);\r\n limitedOcrMax = mathMin(ocrMax, (radius - b) / (a + 1));\r\n limitedIcrMax = mathMin(icrMax, (innerRadius - b) / (a - 1));\r\n }\r\n }\r\n }\r\n }\r\n if (!hasArc) {\r\n ctx.moveTo(cx + xrs, cy + yrs);\r\n }\r\n else if (limitedOcrMax > e) {\r\n var crStart = mathMin(ocrStart, limitedOcrMax);\r\n var crEnd = mathMin(ocrEnd, limitedOcrMax);\r\n var ct0 = computeCornerTangents(xirs, yirs, xrs, yrs, radius, crStart, clockwise);\r\n var ct1 = computeCornerTangents(xre, yre, xire, yire, radius, crEnd, clockwise);\r\n ctx.moveTo(cx + ct0.cx + ct0.x0, cy + ct0.cy + ct0.y0);\r\n if (limitedOcrMax < ocrMax && crStart === crEnd) {\r\n ctx.arc(cx + ct0.cx, cy + ct0.cy, limitedOcrMax, mathATan2(ct0.y0, ct0.x0), mathATan2(ct1.y0, ct1.x0), !clockwise);\r\n }\r\n else {\r\n crStart > 0 && ctx.arc(cx + ct0.cx, cy + ct0.cy, crStart, mathATan2(ct0.y0, ct0.x0), mathATan2(ct0.y1, ct0.x1), !clockwise);\r\n ctx.arc(cx, cy, radius, mathATan2(ct0.cy + ct0.y1, ct0.cx + ct0.x1), mathATan2(ct1.cy + ct1.y1, ct1.cx + ct1.x1), !clockwise);\r\n crEnd > 0 && ctx.arc(cx + ct1.cx, cy + ct1.cy, crEnd, mathATan2(ct1.y1, ct1.x1), mathATan2(ct1.y0, ct1.x0), !clockwise);\r\n }\r\n }\r\n else {\r\n ctx.moveTo(cx + xrs, cy + yrs);\r\n ctx.arc(cx, cy, radius, startAngle, endAngle, !clockwise);\r\n }\r\n if (!(innerRadius > e) || !hasArc) {\r\n ctx.lineTo(cx + xire, cy + yire);\r\n }\r\n else if (limitedIcrMax > e) {\r\n var crStart = mathMin(icrStart, limitedIcrMax);\r\n var crEnd = mathMin(icrEnd, limitedIcrMax);\r\n var ct0 = computeCornerTangents(xire, yire, xre, yre, innerRadius, -crEnd, clockwise);\r\n var ct1 = computeCornerTangents(xrs, yrs, xirs, yirs, innerRadius, -crStart, clockwise);\r\n ctx.lineTo(cx + ct0.cx + ct0.x0, cy + ct0.cy + ct0.y0);\r\n if (limitedIcrMax < icrMax && crStart === crEnd) {\r\n ctx.arc(cx + ct0.cx, cy + ct0.cy, limitedIcrMax, mathATan2(ct0.y0, ct0.x0), mathATan2(ct1.y0, ct1.x0), !clockwise);\r\n }\r\n else {\r\n crEnd > 0 && ctx.arc(cx + ct0.cx, cy + ct0.cy, crEnd, mathATan2(ct0.y0, ct0.x0), mathATan2(ct0.y1, ct0.x1), !clockwise);\r\n ctx.arc(cx, cy, innerRadius, mathATan2(ct0.cy + ct0.y1, ct0.cx + ct0.x1), mathATan2(ct1.cy + ct1.y1, ct1.cx + ct1.x1), clockwise);\r\n crStart > 0 && ctx.arc(cx + ct1.cx, cy + ct1.cy, crStart, mathATan2(ct1.y1, ct1.x1), mathATan2(ct1.y0, ct1.x0), !clockwise);\r\n }\r\n }\r\n else {\r\n ctx.lineTo(cx + xire, cy + yire);\r\n ctx.arc(cx, cy, innerRadius, endAngle, startAngle, clockwise);\r\n }\r\n }\r\n ctx.closePath();\r\n}\r\n"]},"metadata":{},"sourceType":"module"} |