Vulture/VApp/node_modules/vuetify/lib/components/VSparkline/VSparkline.mjs.map

1 line
23 KiB
Plaintext

{"version":3,"file":"VSparkline.mjs","names":["Colorable","mixins","genPoints","genBars","genPath","extend","name","inheritAttrs","props","autoDraw","Boolean","autoDrawDuration","type","Number","default","autoDrawEasing","String","autoLineWidth","color","fill","gradient","Array","gradientDirection","validator","val","includes","height","labels","labelSize","lineWidth","padding","showLabels","smooth","value","width","data","lastLength","computed","parsedPadding","parsedWidth","parsedHeight","parseInt","parsedLabelSize","totalHeight","hasLabels","totalWidth","Math","max","length","_lineWidth","totalValues","totalPadding","parseFloat","boundary","minX","maxX","minY","maxY","$scopedSlots","label","parsedLabels","points","_values","len","i","item","push","x","normalizedValues","map","textY","y","_radius","watch","immediate","handler","$nextTick","$refs","path","getTotalLength","style","transition","strokeDasharray","strokeDashoffset","abs","toString","getBoundingClientRect","transformOrigin","transform","methods","genGradient","slice","stops","reverse","index","$createElement","attrs","offset","id","_uid","gradientUnits","x1","y1","x2","y2","genG","children","fontSize","textAnchor","dominantBaseline","d","stroke","ref","genLabels","offsetX","genLabel","undefined","bars","display","viewBox","genClipPath","rounding","rx","ry","attributeName","from","to","dur","genTrend","setTextColor","$attrs","render","h"],"sources":["../../../src/components/VSparkline/VSparkline.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { genPoints, genBars } from './helpers/core'\nimport { genPath } from './helpers/path'\n\n// Types\nimport Vue, { VNode } from 'vue'\nimport { Prop, PropValidator } from 'vue/types/options'\n\nexport type SparklineItem = number | { value: number }\n\nexport type SparklineText = {\n x: number\n value: string\n}\n\nexport interface Boundary {\n minX: number\n minY: number\n maxX: number\n maxY: number\n}\n\nexport interface Point {\n x: number\n y: number\n value: number\n}\n\nexport interface Bar {\n x: number\n y: number\n height: number\n value: number\n}\n\ninterface options extends Vue {\n $refs: {\n path: SVGPathElement\n }\n}\n\nexport default mixins<options &\n/* eslint-disable indent */\n ExtractVue<[\n typeof Colorable\n ]>\n/* eslint-enable indent */\n>(\n Colorable\n).extend({\n name: 'VSparkline',\n\n inheritAttrs: false,\n\n props: {\n autoDraw: Boolean,\n autoDrawDuration: {\n type: Number,\n default: 2000,\n },\n autoDrawEasing: {\n type: String,\n default: 'ease',\n },\n autoLineWidth: {\n type: Boolean,\n default: false,\n },\n color: {\n type: String,\n default: 'primary',\n },\n fill: {\n type: Boolean,\n default: false,\n },\n gradient: {\n type: Array,\n default: () => ([]),\n } as PropValidator<string[]>,\n gradientDirection: {\n type: String as Prop<'top' | 'bottom' | 'left' | 'right'>,\n validator: (val: string) => ['top', 'bottom', 'left', 'right'].includes(val),\n default: 'top',\n },\n height: {\n type: [String, Number],\n default: 75,\n },\n labels: {\n type: Array,\n default: () => ([]),\n } as PropValidator<SparklineItem[]>,\n labelSize: {\n type: [Number, String],\n default: 7,\n },\n lineWidth: {\n type: [String, Number],\n default: 4,\n },\n padding: {\n type: [String, Number],\n default: 8,\n },\n showLabels: Boolean,\n smooth: {\n type: [Boolean, Number, String],\n default: false,\n },\n type: {\n type: String as Prop<'trend' | 'bar'>,\n default: 'trend',\n validator: (val: string) => ['trend', 'bar'].includes(val),\n },\n value: {\n type: Array,\n default: () => ([]),\n } as PropValidator<SparklineItem[]>,\n width: {\n type: [Number, String],\n default: 300,\n },\n },\n\n data: () => ({\n lastLength: 0,\n }),\n\n computed: {\n parsedPadding (): number {\n return Number(this.padding)\n },\n parsedWidth (): number {\n return Number(this.width)\n },\n parsedHeight (): number {\n return parseInt(this.height, 10)\n },\n parsedLabelSize (): number {\n return parseInt(this.labelSize, 10) || 7\n },\n totalHeight (): number {\n let height = this.parsedHeight\n\n if (this.hasLabels) height += parseInt(this.labelSize, 10) * 1.5\n\n return height\n },\n totalWidth (): number {\n let width = this.parsedWidth\n if (this.type === 'bar') width = Math.max(this.value.length * this._lineWidth, width)\n\n return width\n },\n totalValues (): number {\n return this.value.length\n },\n _lineWidth (): number {\n if (this.autoLineWidth && this.type !== 'trend') {\n const totalPadding = this.parsedPadding * (this.totalValues + 1)\n return (this.parsedWidth - totalPadding) / this.totalValues\n } else {\n return parseFloat(this.lineWidth) || 4\n }\n },\n boundary (): Boundary {\n if (this.type === 'bar') return { minX: 0, maxX: this.totalWidth, minY: 0, maxY: this.parsedHeight }\n\n const padding = this.parsedPadding\n\n return {\n minX: padding,\n maxX: this.totalWidth - padding,\n minY: padding,\n maxY: this.parsedHeight - padding,\n }\n },\n hasLabels (): boolean {\n return Boolean(\n this.showLabels ||\n this.labels.length > 0 ||\n this.$scopedSlots.label\n )\n },\n parsedLabels (): SparklineText[] {\n const labels = []\n const points = this._values\n const len = points.length\n\n for (let i = 0; labels.length < len; i++) {\n const item = points[i]\n let value = this.labels[i]\n\n if (!value) {\n value = typeof item === 'object'\n ? item.value\n : item\n }\n\n labels.push({\n x: item.x,\n value: String(value),\n })\n }\n\n return labels\n },\n normalizedValues (): number[] {\n return this.value.map(item => (typeof item === 'number' ? item : item.value))\n },\n _values (): Point[] | Bar[] {\n return this.type === 'trend' ? genPoints(this.normalizedValues, this.boundary) : genBars(this.normalizedValues, this.boundary)\n },\n textY (): number {\n let y = this.parsedHeight\n if (this.type === 'trend') y -= 4\n return y\n },\n _radius (): number {\n return this.smooth === true ? 8 : Number(this.smooth)\n },\n },\n\n watch: {\n value: {\n immediate: true,\n handler () {\n this.$nextTick(() => {\n if (\n !this.autoDraw ||\n this.type === 'bar' ||\n !this.$refs.path\n ) return\n\n const path = this.$refs.path\n const length = path.getTotalLength()\n\n if (!this.fill) {\n path.style.transition = 'none'\n path.style.strokeDasharray = length + ' ' + length\n path.style.strokeDashoffset = Math.abs(length - (this.lastLength || 0)).toString()\n path.getBoundingClientRect()\n path.style.transition = `stroke-dashoffset ${this.autoDrawDuration}ms ${this.autoDrawEasing}`\n path.style.strokeDashoffset = '0'\n } else {\n path.style.transformOrigin = 'bottom center'\n path.style.transition = 'none'\n path.style.transform = `scaleY(0)`\n path.getBoundingClientRect()\n path.style.transition = `transform ${this.autoDrawDuration}ms ${this.autoDrawEasing}`\n path.style.transform = `scaleY(1)`\n }\n this.lastLength = length\n })\n },\n },\n },\n\n methods: {\n genGradient () {\n const gradientDirection = this.gradientDirection\n const gradient = this.gradient.slice()\n\n // Pushes empty string to force\n // a fallback to currentColor\n if (!gradient.length) gradient.push('')\n\n const len = Math.max(gradient.length - 1, 1)\n const stops = gradient.reverse().map((color, index) =>\n this.$createElement('stop', {\n attrs: {\n offset: index / len,\n 'stop-color': color || 'currentColor',\n },\n })\n )\n\n return this.$createElement('defs', [\n this.$createElement('linearGradient', {\n attrs: {\n id: this._uid,\n gradientUnits: 'userSpaceOnUse',\n x1: gradientDirection === 'left' ? '100%' : '0',\n y1: gradientDirection === 'top' ? '100%' : '0',\n x2: gradientDirection === 'right' ? '100%' : '0',\n y2: gradientDirection === 'bottom' ? '100%' : '0',\n },\n }, stops),\n ])\n },\n genG (children: VNode[]) {\n return this.$createElement('g', {\n style: {\n fontSize: '8',\n textAnchor: 'middle',\n dominantBaseline: 'mathematical',\n fill: 'currentColor',\n } as object, // TODO: TS 3.5 is too eager with the array type here\n }, children)\n },\n genPath () {\n const points = genPoints(this.normalizedValues, this.boundary)\n\n return this.$createElement('path', {\n attrs: {\n d: genPath(points, this._radius, this.fill, this.parsedHeight),\n fill: this.fill ? `url(#${this._uid})` : 'none',\n stroke: this.fill ? 'none' : `url(#${this._uid})`,\n },\n ref: 'path',\n })\n },\n genLabels (offsetX: number) {\n const children = this.parsedLabels.map((item, i) => (\n this.$createElement('text', {\n attrs: {\n x: item.x + offsetX + this._lineWidth / 2,\n y: this.textY + (this.parsedLabelSize * 0.75),\n 'font-size': Number(this.labelSize) || 7,\n },\n }, [this.genLabel(item, i)])\n ))\n\n return this.genG(children)\n },\n genLabel (item: SparklineText, index: number) {\n return this.$scopedSlots.label\n ? this.$scopedSlots.label({ index, value: item.value })\n : item.value\n },\n genBars () {\n if (!this.value || this.totalValues < 2) return undefined as never\n\n const bars = genBars(this.normalizedValues, this.boundary)\n const offsetX = (Math.abs(bars[0].x - bars[1].x) - this._lineWidth) / 2\n\n return this.$createElement('svg', {\n attrs: {\n display: 'block',\n viewBox: `0 0 ${this.totalWidth} ${this.totalHeight}`,\n },\n }, [\n this.genGradient(),\n this.genClipPath(bars, offsetX, this._lineWidth, 'sparkline-bar-' + this._uid),\n this.hasLabels ? this.genLabels(offsetX) : undefined as never,\n this.$createElement('g', {\n attrs: {\n 'clip-path': `url(#sparkline-bar-${this._uid}-clip)`,\n fill: `url(#${this._uid})`,\n },\n }, [\n this.$createElement('rect', {\n attrs: {\n x: 0,\n y: 0,\n width: this.totalWidth,\n height: this.height,\n },\n }),\n ]),\n ])\n },\n genClipPath (bars: Bar[], offsetX: number, lineWidth: number, id: string) {\n const rounding = typeof this.smooth === 'number'\n ? this.smooth\n : this.smooth ? 2 : 0\n\n return this.$createElement('clipPath', {\n attrs: {\n id: `${id}-clip`,\n },\n }, bars.map(item => {\n return this.$createElement('rect', {\n attrs: {\n x: item.x + offsetX,\n y: item.y,\n width: lineWidth,\n height: item.height,\n rx: rounding,\n ry: rounding,\n },\n }, [\n this.autoDraw ? this.$createElement('animate', {\n attrs: {\n attributeName: 'height',\n from: 0,\n to: item.height,\n dur: `${this.autoDrawDuration}ms`,\n fill: 'freeze',\n },\n }) : undefined as never,\n ])\n }))\n },\n genTrend () {\n return this.$createElement('svg', this.setTextColor(this.color, {\n attrs: {\n ...this.$attrs,\n display: 'block',\n 'stroke-width': this._lineWidth || 1,\n viewBox: `0 0 ${this.width} ${this.totalHeight}`,\n },\n }), [\n this.genGradient(),\n this.hasLabels && this.genLabels(-(this._lineWidth / 2)),\n this.genPath(),\n ])\n },\n },\n\n render (h): VNode {\n if (this.totalValues < 2) return undefined as never\n\n return this.type === 'trend' ? this.genTrend() : this.genBars()\n },\n})\n"],"mappings":"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"}