vuetify
Version:
Vue Material Component Framework
1 lines • 3.29 kB
Source Map (JSON)
{"version":3,"file":"path.mjs","names":["checkCollinear","getDistance","moveTo","genPath","points","radius","fill","height","start","shift","end","length","x","y","map","point","index","next","prev","isCollinear","threshold","Math","min","isTooCloseForRadius","radiusForPoint","before","after","join"],"sources":["../../../../src/components/VSparkline/helpers/path.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport { Point } from '../VSparkline'\nimport { 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 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"],"mappings":"AAAA;AACA;AAAA,SAGSA,cAAc,EAAEC,WAAW,EAAEC,MAAM;AAE5C;AACA;AACA;AACA,OAAO,SAASC,OAAO,CAAEC,MAAe,EAAEC,MAAc,EAA6B;EAAA,IAA3BC,IAAI,uEAAG,KAAK;EAAA,IAAEC,MAAM,uEAAG,EAAE;EACjF,MAAMC,KAAK,GAAGJ,MAAM,CAACK,KAAK,EAAG;EAC7B,MAAMC,GAAG,GAAGN,MAAM,CAACA,MAAM,CAACO,MAAM,GAAG,CAAC,CAAC;EAErC,OACE,CAACL,IAAI,GAAI,IAAGE,KAAK,CAACI,CAAE,IAAGL,MAAM,GAAGC,KAAK,CAACI,CAAC,GAAG,CAAE,KAAIJ,KAAK,CAACI,CAAE,IAAGJ,KAAK,CAACK,CAAE,EAAC,GAAI,IAAGL,KAAK,CAACI,CAAE,IAAGJ,KAAK,CAACK,CAAE,EAAC,IAC/FT,MAAM,CACHU,GAAG,CAAC,CAACC,KAAK,EAAEC,KAAK,KAAK;IACrB,MAAMC,IAAI,GAAGb,MAAM,CAACY,KAAK,GAAG,CAAC,CAAC;IAC9B,MAAME,IAAI,GAAGd,MAAM,CAACY,KAAK,GAAG,CAAC,CAAC,IAAIR,KAAK;IACvC,MAAMW,WAAW,GAAGF,IAAI,IAAIjB,cAAc,CAACiB,IAAI,EAAEF,KAAK,EAAEG,IAAI,CAAC;IAE7D,IAAI,CAACD,IAAI,IAAIE,WAAW,EAAE;MACxB,OAAQ,IAAGJ,KAAK,CAACH,CAAE,IAAGG,KAAK,CAACF,CAAE,EAAC;IACjC;IAEA,MAAMO,SAAS,GAAGC,IAAI,CAACC,GAAG,CACxBrB,WAAW,CAACiB,IAAI,EAAEH,KAAK,CAAC,EACxBd,WAAW,CAACgB,IAAI,EAAEF,KAAK,CAAC,CACzB;IACD,MAAMQ,mBAAmB,GAAGH,SAAS,GAAG,CAAC,GAAGf,MAAM;IAClD,MAAMmB,cAAc,GAAGD,mBAAmB,GAAGH,SAAS,GAAG,CAAC,GAAGf,MAAM;IAEnE,MAAMoB,MAAM,GAAGvB,MAAM,CAACgB,IAAI,EAAEH,KAAK,EAAES,cAAc,CAAC;IAClD,MAAME,KAAK,GAAGxB,MAAM,CAACe,IAAI,EAAEF,KAAK,EAAES,cAAc,CAAC;IAEjD,OAAQ,IAAGC,MAAM,CAACb,CAAE,IAAGa,MAAM,CAACZ,CAAE,IAAGE,KAAK,CAACH,CAAE,IAAGG,KAAK,CAACF,CAAE,IAAGa,KAAK,CAACd,CAAE,IAAGc,KAAK,CAACb,CAAE,EAAC;EAC/E,CAAC,CAAC,CACDc,IAAI,CAAC,EAAE,CAAC,IACVrB,IAAI,GAAI,IAAGI,GAAG,CAACE,CAAE,IAAGL,MAAM,GAAGC,KAAK,CAACI,CAAC,GAAG,CAAE,IAAG,GAAG,EAAE,CAAC;AAEvD"}