path.mjs.map 5.6 KB

1
  1. {"version":3,"file":"path.mjs","names":["genPath","points","radius","fill","arguments","length","undefined","height","start","shift","end","x","y","map","point","index","next","prev","isCollinear","checkCollinear","threshold","Math","min","getDistance","isTooCloseForRadius","radiusForPoint","before","moveTo","after","join","int","value","parseInt","p0","p1","p2","sqrt","pow","to","from","vector","unitVector"],"sources":["../../../../src/components/VSparkline/util/path.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport { Point } from '../VSparkline'\n// import { checkCollinear, getDistance, moveTo } from './math'\n\n/**\n * From https://github.com/unsplash/react-trend/blob/master/src/helpers/DOM.helpers.js#L18\n */\nexport function genPath (points: Point[], radius: number, fill = false, height = 75) {\n if (points.length === 0) return ''\n const start = points.shift()!\n const end = points[points.length - 1]\n\n return (\n (fill ? `M${start.x} ${height - start.x + 2} L${start.x} ${start.y}` : `M${start.x} ${start.y}`) +\n points\n .map((point, index) => {\n const next = points[index + 1]\n const prev = points[index - 1] || start\n const isCollinear = next && checkCollinear(next, point, prev)\n\n if (!next || isCollinear) {\n return `L${point.x} ${point.y}`\n }\n\n const threshold = Math.min(\n getDistance(prev, point),\n getDistance(next, point)\n )\n const isTooCloseForRadius = threshold / 2 < radius\n const radiusForPoint = isTooCloseForRadius ? threshold / 2 : radius\n\n const before = moveTo(prev, point, radiusForPoint)\n const after = moveTo(next, point, radiusForPoint)\n\n return `L${before.x} ${before.y}S${point.x} ${point.y} ${after.x} ${after.y}`\n })\n .join('') +\n (fill ? `L${end.x} ${height - start.x + 2} Z` : '')\n )\n}\n\nfunction int (value: string | number): number {\n return parseInt(value, 10)\n}\n\n/**\n * https://en.wikipedia.org/wiki/Collinearity\n * x=(x1+x2)/2\n * y=(y1+y2)/2\n */\nexport function checkCollinear (p0: Point, p1: Point, p2: Point): boolean {\n return int(p0.x + p2.x) === int(2 * p1.x) && int(p0.y + p2.y) === int(2 * p1.y)\n}\n\nexport function getDistance (p1: Point, p2: Point): number {\n return Math.sqrt(\n Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)\n )\n}\n\nexport function moveTo (to: Point, from: Point, radius: number) {\n const vector = { x: to.x - from.x, y: to.y - from.y }\n const length = Math.sqrt((vector.x * vector.x) + (vector.y * vector.y))\n const unitVector = { x: vector.x / length, y: vector.y / length }\n\n return {\n x: from.x + unitVector.x * radius,\n y: from.y + unitVector.y * radius,\n }\n}\n"],"mappings":"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","ignoreList":[]}