vuetify 2.3.8 → 2.3.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/json/attributes.json +4690 -5458
  2. package/dist/json/tags.json +1 -272
  3. package/dist/json/web-types.json +13756 -9115
  4. package/dist/vuetify.css +9 -10
  5. package/dist/vuetify.css.map +1 -1
  6. package/dist/vuetify.js +80 -73
  7. package/dist/vuetify.js.map +1 -1
  8. package/dist/vuetify.min.css +3 -6
  9. package/dist/vuetify.min.js +2 -2
  10. package/es5/components/VIcon/VIcon.js +24 -18
  11. package/es5/components/VIcon/VIcon.js.map +1 -1
  12. package/es5/components/VSparkline/VSparkline.js +5 -4
  13. package/es5/components/VSparkline/VSparkline.js.map +1 -1
  14. package/es5/components/VSparkline/helpers/core.js +1 -1
  15. package/es5/components/VSparkline/helpers/core.js.map +1 -1
  16. package/es5/components/VTextField/VTextField.js +17 -5
  17. package/es5/components/VTextField/VTextField.js.map +1 -1
  18. package/es5/components/VVirtualScroll/VVirtualScroll.js +2 -1
  19. package/es5/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
  20. package/es5/framework.js +1 -1
  21. package/es5/mixins/mobile/index.js.map +1 -1
  22. package/es5/services/theme/utils.js +10 -10
  23. package/es5/services/theme/utils.js.map +1 -1
  24. package/es5/util/mergeData.js +17 -25
  25. package/es5/util/mergeData.js.map +1 -1
  26. package/lib/components/VIcon/VIcon.js +23 -16
  27. package/lib/components/VIcon/VIcon.js.map +1 -1
  28. package/lib/components/VSparkline/VSparkline.js +5 -4
  29. package/lib/components/VSparkline/VSparkline.js.map +1 -1
  30. package/lib/components/VSparkline/helpers/core.js +1 -1
  31. package/lib/components/VSparkline/helpers/core.js.map +1 -1
  32. package/lib/components/VTextField/VTextField.js +17 -5
  33. package/lib/components/VTextField/VTextField.js.map +1 -1
  34. package/lib/components/VVirtualScroll/VVirtualScroll.js +2 -1
  35. package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
  36. package/lib/framework.js +1 -1
  37. package/lib/mixins/mobile/index.js.map +1 -1
  38. package/lib/util/mergeData.js +20 -15
  39. package/lib/util/mergeData.js.map +1 -1
  40. package/package.json +8 -19
  41. package/src/components/VCard/VCard.sass +1 -1
  42. package/src/components/VColorPicker/VColorPicker.sass +1 -0
  43. package/src/components/VFileInput/VFileInput.sass +1 -0
  44. package/src/components/VIcon/VIcon.sass +4 -8
  45. package/src/components/VIcon/VIcon.ts +25 -18
  46. package/src/components/VIcon/__tests__/VIcon.spec.ts +0 -1
  47. package/src/components/VIcon/__tests__/__snapshots__/VIcon.spec.ts.snap +43 -25
  48. package/src/components/VMenu/VMenu.sass +0 -1
  49. package/src/components/VSparkline/VSparkline.ts +5 -4
  50. package/src/components/VSparkline/__tests__/__snapshots__/VSparkline.spec.ts.snap +57 -34
  51. package/src/components/VSparkline/helpers/core.ts +1 -5
  52. package/src/components/VTextField/VTextField.ts +17 -7
  53. package/src/components/VTimePicker/VTimePickerClock.sass +1 -0
  54. package/src/components/VVirtualScroll/VVirtualScroll.ts +1 -0
  55. package/src/mixins/mobile/index.ts +2 -2
  56. package/src/util/__tests__/mergeData.spec.ts +24 -0
  57. package/src/util/mergeData.ts +23 -19
  58. package/types/services/breakpoint.d.ts +3 -3
@@ -41,8 +41,8 @@ function parse(theme) {
41
41
  var colors = Object.keys(variant);
42
42
  var parsedTheme = {};
43
43
 
44
- for (var _i = 0; _i < colors.length; ++_i) {
45
- var name = colors[_i];
44
+ for (var i = 0; i < colors.length; ++i) {
45
+ var name = colors[i];
46
46
  var value = theme[name];
47
47
  if (value == null) continue;
48
48
 
@@ -114,15 +114,15 @@ function genStyles(theme) {
114
114
  css += ".v-application a { color: ".concat(aColor, "; }");
115
115
  cssVar && (variablesCss += " ".concat(genColorVariableName('anchor'), ": ").concat(anchor, ";\n"));
116
116
 
117
- for (var _i2 = 0; _i2 < colors.length; ++_i2) {
118
- var name = colors[_i2];
117
+ for (var i = 0; i < colors.length; ++i) {
118
+ var name = colors[i];
119
119
  var value = theme[name];
120
120
  css += genBaseColor(name, cssVar ? genColorVariable(name) : value.base);
121
121
  cssVar && (variablesCss += " ".concat(genColorVariableName(name), ": ").concat(value.base, ";\n"));
122
122
  var variants = Object.keys(value);
123
123
 
124
- for (var _i3 = 0; _i3 < variants.length; ++_i3) {
125
- var _variant = variants[_i3];
124
+ for (var _i2 = 0; _i2 < variants.length; ++_i2) {
125
+ var _variant = variants[_i2];
126
126
  var variantValue = value[_variant];
127
127
  if (_variant === 'base') continue;
128
128
  css += genVariantColor(name, _variant, cssVar ? genColorVariable(name, _variant) : variantValue);
@@ -142,12 +142,12 @@ function genVariations(name, value) {
142
142
  base: (0, _colorUtils.intToHex)(value)
143
143
  };
144
144
 
145
- for (var _i4 = 5; _i4 > 0; --_i4) {
146
- values["lighten".concat(_i4)] = (0, _colorUtils.intToHex)(lighten(value, _i4));
145
+ for (var i = 5; i > 0; --i) {
146
+ values["lighten".concat(i)] = (0, _colorUtils.intToHex)(lighten(value, i));
147
147
  }
148
148
 
149
- for (var _i5 = 1; _i5 <= 4; ++_i5) {
150
- values["darken".concat(_i5)] = (0, _colorUtils.intToHex)(darken(value, _i5));
149
+ for (var _i3 = 1; _i3 <= 4; ++_i3) {
150
+ values["darken".concat(_i3)] = (0, _colorUtils.intToHex)(darken(value, _i3));
151
151
  }
152
152
 
153
153
  return values;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/theme/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { colorToInt, intToHex, colorToHex, ColorInt } from '../../util/colorUtils'\nimport * as sRGB from '../../util/color/transformSRGB'\nimport * as LAB from '../../util/color/transformCIELAB'\nimport {\n VuetifyParsedTheme,\n VuetifyThemeItem,\n} from 'vuetify/types/services/theme'\n\nexport function parse (\n theme: Record<string, VuetifyThemeItem>,\n isItem = false,\n variations = true,\n): VuetifyParsedTheme {\n const { anchor, ...variant } = theme\n const colors = Object.keys(variant)\n const parsedTheme: any = {}\n\n for (let i = 0; i < colors.length; ++i) {\n const name = colors[i]\n const value = theme[name]\n\n if (value == null) continue\n\n if (!variations) {\n parsedTheme[name] = { base: intToHex(colorToInt(value)) }\n } else if (isItem) {\n /* istanbul ignore else */\n if (name === 'base' || name.startsWith('lighten') || name.startsWith('darken')) {\n parsedTheme[name] = colorToHex(value)\n }\n } else if (typeof value === 'object') {\n parsedTheme[name] = parse(value, true, variations)\n } else {\n parsedTheme[name] = genVariations(name, colorToInt(value))\n }\n }\n\n if (!isItem) {\n parsedTheme.anchor = anchor || parsedTheme.base || parsedTheme.primary.base\n }\n\n return parsedTheme\n}\n\n/**\n * Generate the CSS for a base color (.primary)\n */\nconst genBaseColor = (name: string, value: string): string => {\n return `\n.v-application .${name} {\n background-color: ${value} !important;\n border-color: ${value} !important;\n}\n.v-application .${name}--text {\n color: ${value} !important;\n caret-color: ${value} !important;\n}`\n}\n\n/**\n * Generate the CSS for a variant color (.primary.darken-2)\n */\nconst genVariantColor = (name: string, variant: string, value: string): string => {\n const [type, n] = variant.split(/(\\d)/, 2)\n return `\n.v-application .${name}.${type}-${n} {\n background-color: ${value} !important;\n border-color: ${value} !important;\n}\n.v-application .${name}--text.text--${type}-${n} {\n color: ${value} !important;\n caret-color: ${value} !important;\n}`\n}\n\nconst genColorVariableName = (name: string, variant = 'base'): string => `--v-${name}-${variant}`\n\nconst genColorVariable = (name: string, variant = 'base'): string => `var(${genColorVariableName(name, variant)})`\n\nexport function genStyles (theme: VuetifyParsedTheme, cssVar = false): string {\n const { anchor, ...variant } = theme\n const colors = Object.keys(variant)\n\n if (!colors.length) return ''\n\n let variablesCss = ''\n let css = ''\n\n const aColor = cssVar ? genColorVariable('anchor') : anchor\n css += `.v-application a { color: ${aColor}; }`\n cssVar && (variablesCss += ` ${genColorVariableName('anchor')}: ${anchor};\\n`)\n\n for (let i = 0; i < colors.length; ++i) {\n const name = colors[i]\n const value = theme[name]\n\n css += genBaseColor(name, cssVar ? genColorVariable(name) : value.base)\n cssVar && (variablesCss += ` ${genColorVariableName(name)}: ${value.base};\\n`)\n\n const variants = Object.keys(value)\n for (let i = 0; i < variants.length; ++i) {\n const variant = variants[i]\n const variantValue = value[variant]\n if (variant === 'base') continue\n\n css += genVariantColor(name, variant, cssVar ? genColorVariable(name, variant) : variantValue)\n cssVar && (variablesCss += ` ${genColorVariableName(name, variant)}: ${variantValue};\\n`)\n }\n }\n\n if (cssVar) {\n variablesCss = `:root {\\n${variablesCss}}\\n\\n`\n }\n\n return variablesCss + css\n}\n\nexport function genVariations (name: string, value: ColorInt): Record<string, string> {\n const values: Record<string, string> = {\n base: intToHex(value),\n }\n\n for (let i = 5; i > 0; --i) {\n values[`lighten${i}`] = intToHex(lighten(value, i))\n }\n\n for (let i = 1; i <= 4; ++i) {\n values[`darken${i}`] = intToHex(darken(value, i))\n }\n\n return values\n}\n\nexport function lighten (value: ColorInt, amount: number): ColorInt {\n const lab = LAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] + amount * 10\n return sRGB.fromXYZ(LAB.toXYZ(lab))\n}\n\nexport function darken (value: ColorInt, amount: number): ColorInt {\n const lab = LAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] - amount * 10\n return sRGB.fromXYZ(LAB.toXYZ(lab))\n}\n"],"sourceRoot":"","file":"utils.js"}
1
+ {"version":3,"sources":["../../../src/services/theme/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { colorToInt, intToHex, colorToHex, ColorInt } from '../../util/colorUtils'\nimport * as sRGB from '../../util/color/transformSRGB'\nimport * as LAB from '../../util/color/transformCIELAB'\nimport {\n VuetifyParsedTheme,\n VuetifyThemeItem,\n} from 'vuetify/types/services/theme'\n\nexport function parse (\n theme: Record<string, VuetifyThemeItem>,\n isItem = false,\n variations = true,\n): VuetifyParsedTheme {\n const { anchor, ...variant } = theme\n const colors = Object.keys(variant)\n const parsedTheme: any = {}\n\n for (let i = 0; i < colors.length; ++i) {\n const name = colors[i]\n const value = theme[name]\n\n if (value == null) continue\n\n if (!variations) {\n parsedTheme[name] = { base: intToHex(colorToInt(value)) }\n } else if (isItem) {\n /* istanbul ignore else */\n if (name === 'base' || name.startsWith('lighten') || name.startsWith('darken')) {\n parsedTheme[name] = colorToHex(value)\n }\n } else if (typeof value === 'object') {\n parsedTheme[name] = parse(value, true, variations)\n } else {\n parsedTheme[name] = genVariations(name, colorToInt(value))\n }\n }\n\n if (!isItem) {\n parsedTheme.anchor = anchor || parsedTheme.base || parsedTheme.primary.base\n }\n\n return parsedTheme\n}\n\n/**\n * Generate the CSS for a base color (.primary)\n */\nconst genBaseColor = (name: string, value: string): string => {\n return `\n.v-application .${name} {\n background-color: ${value} !important;\n border-color: ${value} !important;\n}\n.v-application .${name}--text {\n color: ${value} !important;\n caret-color: ${value} !important;\n}`\n}\n\n/**\n * Generate the CSS for a variant color (.primary.darken-2)\n */\nconst genVariantColor = (name: string, variant: string, value: string): string => {\n const [type, n] = variant.split(/(\\d)/, 2)\n return `\n.v-application .${name}.${type}-${n} {\n background-color: ${value} !important;\n border-color: ${value} !important;\n}\n.v-application .${name}--text.text--${type}-${n} {\n color: ${value} !important;\n caret-color: ${value} !important;\n}`\n}\n\nconst genColorVariableName = (name: string, variant = 'base'): string => `--v-${name}-${variant}`\n\nconst genColorVariable = (name: string, variant = 'base'): string => `var(${genColorVariableName(name, variant)})`\n\nexport function genStyles (theme: VuetifyParsedTheme, cssVar = false): string {\n const { anchor, ...variant } = theme\n const colors = Object.keys(variant)\n\n if (!colors.length) return ''\n\n let variablesCss = ''\n let css = ''\n\n const aColor = cssVar ? genColorVariable('anchor') : anchor\n css += `.v-application a { color: ${aColor}; }`\n cssVar && (variablesCss += ` ${genColorVariableName('anchor')}: ${anchor};\\n`)\n\n for (let i = 0; i < colors.length; ++i) {\n const name = colors[i]\n const value = theme[name]\n\n css += genBaseColor(name, cssVar ? genColorVariable(name) : value.base)\n cssVar && (variablesCss += ` ${genColorVariableName(name)}: ${value.base};\\n`)\n\n const variants = Object.keys(value)\n for (let i = 0; i < variants.length; ++i) {\n const variant = variants[i]\n const variantValue = value[variant]\n if (variant === 'base') continue\n\n css += genVariantColor(name, variant, cssVar ? genColorVariable(name, variant) : variantValue)\n cssVar && (variablesCss += ` ${genColorVariableName(name, variant)}: ${variantValue};\\n`)\n }\n }\n\n if (cssVar) {\n variablesCss = `:root {\\n${variablesCss}}\\n\\n`\n }\n\n return variablesCss + css\n}\n\nexport function genVariations (name: string, value: ColorInt): Record<string, string> {\n const values: Record<string, string> = {\n base: intToHex(value),\n }\n\n for (let i = 5; i > 0; --i) {\n values[`lighten${i}`] = intToHex(lighten(value, i))\n }\n\n for (let i = 1; i <= 4; ++i) {\n values[`darken${i}`] = intToHex(darken(value, i))\n }\n\n return values\n}\n\nexport function lighten (value: ColorInt, amount: number): ColorInt {\n const lab = LAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] + amount * 10\n return sRGB.fromXYZ(LAB.toXYZ(lab))\n}\n\nexport function darken (value: ColorInt, amount: number): ColorInt {\n const lab = LAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] - amount * 10\n return sRGB.fromXYZ(LAB.toXYZ(lab))\n}\n"],"sourceRoot":"","file":"utils.js"}
@@ -10,14 +10,6 @@ exports.mergeListeners = mergeListeners;
10
10
 
11
11
  var _helpers = require("./helpers");
12
12
 
13
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
14
-
15
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
16
-
17
- function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
18
-
19
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
20
-
21
13
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
22
14
 
23
15
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@@ -188,28 +180,28 @@ function mergeClasses(target, source) {
188
180
  return target ? (0, _helpers.wrapInArray)(target).concat(source) : source;
189
181
  }
190
182
 
191
- function mergeListeners(target, source) {
192
- if (!target) return source;
193
- if (!source) return target;
194
- var event;
183
+ function mergeListeners() {
184
+ if (!(arguments.length <= 0 ? undefined : arguments[0])) return arguments.length <= 1 ? undefined : arguments[1];
185
+ if (!(arguments.length <= 1 ? undefined : arguments[1])) return arguments.length <= 0 ? undefined : arguments[0];
186
+ var dest = {};
195
187
 
196
- for (var _i3 = 0, _Object$keys2 = Object.keys(source); _i3 < _Object$keys2.length; _i3++) {
197
- event = _Object$keys2[_i3];
188
+ for (var i = 2; i--;) {
189
+ var arg = i < 0 || arguments.length <= i ? undefined : arguments[i];
198
190
 
199
- // Concat function to array of functions if callback present.
200
- if (target[event]) {
201
- var _target$event;
191
+ for (var event in arg) {
192
+ if (!arg[event]) continue;
202
193
 
203
- // Insert current iteration data in beginning of merged array.
204
- target[event] = (0, _helpers.wrapInArray)(target[event]);
205
-
206
- (_target$event = target[event]).push.apply(_target$event, _toConsumableArray((0, _helpers.wrapInArray)(source[event])));
207
- } else {
208
- // Straight assign.
209
- target[event] = source[event];
194
+ if (dest[event]) {
195
+ // Merge current listeners before (because we are iterating backwards).
196
+ // Note that neither "target" or "source" must be altered.
197
+ dest[event] = [].concat(arg[event], dest[event]);
198
+ } else {
199
+ // Straight assign.
200
+ dest[event] = arg[event];
201
+ }
210
202
  }
211
203
  }
212
204
 
213
- return target;
205
+ return dest;
214
206
  }
215
207
  //# sourceMappingURL=mergeData.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/mergeData.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary<any> = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary<any> = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (\n target: { [key: string]: Function | Function[] } | undefined,\n source: { [key: string]: Function | Function[] } | undefined\n) {\n if (!target) return source\n if (!source) return target\n\n let event: string\n\n for (event of Object.keys(source)) {\n // Concat function to array of functions if callback present.\n if (target[event]) {\n // Insert current iteration data in beginning of merged array.\n target[event] = wrapInArray(target[event])\n ;(target[event] as Function[]).push(...wrapInArray(source[event]))\n } else {\n // Straight assign.\n target[event] = source[event]\n }\n }\n\n return target\n}\n"],"sourceRoot":"","file":"mergeData.js"}
1
+ {"version":3,"sources":["../../src/util/mergeData.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary<any> = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary<any> = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n"],"sourceRoot":"","file":"mergeData.js"}
@@ -73,9 +73,9 @@ const VIcon = mixins(BindsAttrs, Colorable, Sizeable, Themeable
73
73
  return explicitSize && SIZE_MAP[explicitSize] || convertToUnit(this.size);
74
74
  },
75
75
 
76
- // Component data for both font and svg icon.
76
+ // Component data for both font icon and SVG wrapper span
77
77
  getDefaultData() {
78
- const data = {
78
+ return {
79
79
  staticClass: 'v-icon notranslate',
80
80
  class: {
81
81
  'v-icon--disabled': this.disabled,
@@ -92,7 +92,19 @@ const VIcon = mixins(BindsAttrs, Colorable, Sizeable, Themeable
92
92
  },
93
93
  on: this.listeners$
94
94
  };
95
- return data;
95
+ },
96
+
97
+ getSvgWrapperData() {
98
+ const fontSize = this.getSize();
99
+ const wrapperData = { ...this.getDefaultData(),
100
+ style: fontSize ? {
101
+ fontSize,
102
+ height: fontSize,
103
+ width: fontSize
104
+ } : undefined
105
+ };
106
+ this.applyColors(wrapperData);
107
+ return wrapperData;
96
108
  },
97
109
 
98
110
  applyColors(data) {
@@ -131,16 +143,8 @@ const VIcon = mixins(BindsAttrs, Colorable, Sizeable, Themeable
131
143
 
132
144
  renderSvgIcon(icon, h) {
133
145
  const fontSize = this.getSize();
134
- const wrapperData = { ...this.getDefaultData(),
135
- style: fontSize ? {
136
- fontSize,
137
- height: fontSize,
138
- width: fontSize
139
- } : undefined
140
- };
141
- wrapperData.class['v-icon--svg'] = true;
142
- this.applyColors(wrapperData);
143
146
  const svgData = {
147
+ class: 'v-icon__svg',
144
148
  attrs: {
145
149
  xmlns: 'http://www.w3.org/2000/svg',
146
150
  viewBox: '0 0 24 24',
@@ -150,7 +154,7 @@ const VIcon = mixins(BindsAttrs, Colorable, Sizeable, Themeable
150
154
  'aria-hidden': true
151
155
  }
152
156
  };
153
- return h(this.hasClickListener ? 'button' : 'span', wrapperData, [h('svg', svgData, [h('path', {
157
+ return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [h('svg', svgData, [h('path', {
154
158
  attrs: {
155
159
  d: icon
156
160
  }
@@ -158,8 +162,11 @@ const VIcon = mixins(BindsAttrs, Colorable, Sizeable, Themeable
158
162
  },
159
163
 
160
164
  renderSvgIconComponent(icon, h) {
161
- const data = this.getDefaultData();
162
- data.class['v-icon--is-component'] = true;
165
+ const data = {
166
+ class: {
167
+ 'v-icon__svg': true
168
+ }
169
+ };
163
170
  const size = this.getSize();
164
171
 
165
172
  if (size) {
@@ -174,7 +181,7 @@ const VIcon = mixins(BindsAttrs, Colorable, Sizeable, Themeable
174
181
  const component = icon.component;
175
182
  data.props = icon.props;
176
183
  data.nativeOn = data.on;
177
- return h(component, data);
184
+ return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [h(component, data)]);
178
185
  }
179
186
 
180
187
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VIcon/VIcon.ts"],"names":[],"mappings":"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","sourcesContent":["import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font and svg icon.\n getDefaultData (): VNodeData {\n const data: VNodeData = {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n\n return data\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n wrapperData.class['v-icon--svg'] = true\n this.applyColors(wrapperData)\n\n const svgData: VNodeData = {\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n height: fontSize || '24',\n width: fontSize || '24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n return h(this.hasClickListener ? 'button' : 'span', wrapperData, [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data = this.getDefaultData()\n data.class['v-icon--is-component'] = true\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(component, data)\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n"],"sourceRoot":"","file":"VIcon.js"}
1
+ {"version":3,"sources":["../../../src/components/VIcon/VIcon.ts"],"names":[],"mappings":"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","sourcesContent":["import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const fontSize = this.getSize()\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n height: fontSize || '24',\n width: fontSize || '24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__svg': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n"],"sourceRoot":"","file":"VIcon.js"}
@@ -232,10 +232,11 @@ export default mixins(Colorable).extend({
232
232
  return this.$createElement('defs', [this.$createElement('linearGradient', {
233
233
  attrs: {
234
234
  id: this._uid,
235
- x1: +(gradientDirection === 'left'),
236
- y1: +(gradientDirection === 'top'),
237
- x2: +(gradientDirection === 'right'),
238
- y2: +(gradientDirection === 'bottom')
235
+ gradientUnits: 'userSpaceOnUse',
236
+ x1: gradientDirection === 'left' ? '100%' : '0',
237
+ y1: gradientDirection === 'top' ? '100%' : '0',
238
+ x2: gradientDirection === 'right' ? '100%' : '0',
239
+ y2: gradientDirection === 'bottom' ? '100%' : '0'
239
240
  }
240
241
  }, stops)]);
241
242
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VSparkline/VSparkline.ts"],"names":[],"mappings":"AAAA;AACA,OAAO,SAAP,MAAsB,wBAAtB,C,CAEA;;AACA,OAAO,MAAP,MAAmC,mBAAnC;AACA,SAAS,SAAT,EAAoB,OAApB,QAAmC,gBAAnC;AACA,SAAS,OAAT,QAAwB,gBAAxB;AAuCA,eAAe,MAAM,CAOnB,SAPmB,CAAN,CAQb,MARa,CAQN;AACP,EAAA,IAAI,EAAE,YADC;AAGP,EAAA,YAAY,EAAE,KAHP;AAKP,EAAA,KAAK,EAAE;AACL,IAAA,QAAQ,EAAE,OADL;AAEL,IAAA,gBAAgB,EAAE;AAChB,MAAA,IAAI,EAAE,MADU;AAEhB,MAAA,OAAO,EAAE;AAFO,KAFb;AAML,IAAA,cAAc,EAAE;AACd,MAAA,IAAI,EAAE,MADQ;AAEd,MAAA,OAAO,EAAE;AAFK,KANX;AAUL,IAAA,aAAa,EAAE;AACb,MAAA,IAAI,EAAE,OADO;AAEb,MAAA,OAAO,EAAE;AAFI,KAVV;AAcL,IAAA,KAAK,EAAE;AACL,MAAA,IAAI,EAAE,MADD;AAEL,MAAA,OAAO,EAAE;AAFJ,KAdF;AAkBL,IAAA,IAAI,EAAE;AACJ,MAAA,IAAI,EAAE,OADF;AAEJ,MAAA,OAAO,EAAE;AAFL,KAlBD;AAsBL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,KADE;AAER,MAAA,OAAO,EAAE,MAAO;AAFR,KAtBL;AA0BL,IAAA,iBAAiB,EAAE;AACjB,MAAA,IAAI,EAAE,MADW;AAEjB,MAAA,SAAS,EAAG,GAAD,IAAiB,CAAC,KAAD,EAAQ,QAAR,EAAkB,MAAlB,EAA0B,OAA1B,EAAmC,QAAnC,CAA4C,GAA5C,CAFX;AAGjB,MAAA,OAAO,EAAE;AAHQ,KA1Bd;AA+BL,IAAA,MAAM,EAAE;AACN,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADA;AAEN,MAAA,OAAO,EAAE;AAFH,KA/BH;AAmCL,IAAA,MAAM,EAAE;AACN,MAAA,IAAI,EAAE,KADA;AAEN,MAAA,OAAO,EAAE,MAAO;AAFV,KAnCH;AAuCL,IAAA,SAAS,EAAE;AACT,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADG;AAET,MAAA,OAAO,EAAE;AAFA,KAvCN;AA2CL,IAAA,SAAS,EAAE;AACT,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADG;AAET,MAAA,OAAO,EAAE;AAFA,KA3CN;AA+CL,IAAA,OAAO,EAAE;AACP,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADC;AAEP,MAAA,OAAO,EAAE;AAFF,KA/CJ;AAmDL,IAAA,UAAU,EAAE,OAnDP;AAoDL,IAAA,MAAM,EAAE;AACN,MAAA,IAAI,EAAE,CAAC,OAAD,EAAU,MAAV,EAAkB,MAAlB,CADA;AAEN,MAAA,OAAO,EAAE;AAFH,KApDH;AAwDL,IAAA,IAAI,EAAE;AACJ,MAAA,IAAI,EAAE,MADF;AAEJ,MAAA,OAAO,EAAE,OAFL;AAGJ,MAAA,SAAS,EAAG,GAAD,IAAiB,CAAC,OAAD,EAAU,KAAV,EAAiB,QAAjB,CAA0B,GAA1B;AAHxB,KAxDD;AA6DL,IAAA,KAAK,EAAE;AACL,MAAA,IAAI,EAAE,KADD;AAEL,MAAA,OAAO,EAAE,MAAO;AAFX,KA7DF;AAiEL,IAAA,KAAK,EAAE;AACL,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADD;AAEL,MAAA,OAAO,EAAE;AAFJ;AAjEF,GALA;AA4EP,EAAA,IAAI,EAAE,OAAO;AACX,IAAA,UAAU,EAAE;AADD,GAAP,CA5EC;AAgFP,EAAA,QAAQ,EAAE;AACR,IAAA,aAAa,GAAA;AACX,aAAO,MAAM,CAAC,KAAK,OAAN,CAAb;AACD,KAHO;;AAIR,IAAA,WAAW,GAAA;AACT,aAAO,MAAM,CAAC,KAAK,KAAN,CAAb;AACD,KANO;;AAOR,IAAA,YAAY,GAAA;AACV,aAAO,QAAQ,CAAC,KAAK,MAAN,EAAc,EAAd,CAAf;AACD,KATO;;AAUR,IAAA,eAAe,GAAA;AACb,aAAO,QAAQ,CAAC,KAAK,SAAN,EAAiB,EAAjB,CAAR,IAAgC,CAAvC;AACD,KAZO;;AAaR,IAAA,WAAW,GAAA;AACT,UAAI,MAAM,GAAG,KAAK,YAAlB;AAEA,UAAI,KAAK,SAAT,EAAoB,MAAM,IAAI,QAAQ,CAAC,KAAK,SAAN,EAAiB,EAAjB,CAAR,GAA+B,GAAzC;AAEpB,aAAO,MAAP;AACD,KAnBO;;AAoBR,IAAA,UAAU,GAAA;AACR,UAAI,KAAK,GAAG,KAAK,WAAjB;AACA,UAAI,KAAK,IAAL,KAAc,KAAlB,EAAyB,KAAK,GAAG,IAAI,CAAC,GAAL,CAAS,KAAK,KAAL,CAAW,MAAX,GAAoB,KAAK,UAAlC,EAA8C,KAA9C,CAAR;AAEzB,aAAO,KAAP;AACD,KAzBO;;AA0BR,IAAA,WAAW,GAAA;AACT,aAAO,KAAK,KAAL,CAAW,MAAlB;AACD,KA5BO;;AA6BR,IAAA,UAAU,GAAA;AACR,UAAI,KAAK,aAAL,IAAsB,KAAK,IAAL,KAAc,OAAxC,EAAiD;AAC/C,cAAM,YAAY,GAAG,KAAK,aAAL,IAAsB,KAAK,WAAL,GAAmB,CAAzC,CAArB;AACA,eAAO,CAAC,KAAK,WAAL,GAAmB,YAApB,IAAoC,KAAK,WAAhD;AACD,OAHD,MAGO;AACL,eAAO,UAAU,CAAC,KAAK,SAAN,CAAV,IAA8B,CAArC;AACD;AACF,KApCO;;AAqCR,IAAA,QAAQ,GAAA;AACN,UAAI,KAAK,IAAL,KAAc,KAAlB,EAAyB,OAAO;AAAE,QAAA,IAAI,EAAE,CAAR;AAAW,QAAA,IAAI,EAAE,KAAK,UAAtB;AAAkC,QAAA,IAAI,EAAE,CAAxC;AAA2C,QAAA,IAAI,EAAE,KAAK;AAAtD,OAAP;AAEzB,YAAM,OAAO,GAAG,KAAK,aAArB;AAEA,aAAO;AACL,QAAA,IAAI,EAAE,OADD;AAEL,QAAA,IAAI,EAAE,KAAK,UAAL,GAAkB,OAFnB;AAGL,QAAA,IAAI,EAAE,OAHD;AAIL,QAAA,IAAI,EAAE,KAAK,YAAL,GAAoB;AAJrB,OAAP;AAMD,KAhDO;;AAiDR,IAAA,SAAS,GAAA;AACP,aAAO,OAAO,CACZ,KAAK,UAAL,IACA,KAAK,MAAL,CAAY,MAAZ,GAAqB,CADrB,IAEA,KAAK,YAAL,CAAkB,KAHN,CAAd;AAKD,KAvDO;;AAwDR,IAAA,YAAY,GAAA;AACV,YAAM,MAAM,GAAG,EAAf;AACA,YAAM,MAAM,GAAG,KAAK,OAApB;AACA,YAAM,GAAG,GAAG,MAAM,CAAC,MAAnB;;AAEA,WAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,MAAM,CAAC,MAAP,GAAgB,GAAhC,EAAqC,CAAC,EAAtC,EAA0C;AACxC,cAAM,IAAI,GAAG,MAAM,CAAC,CAAD,CAAnB;AACA,YAAI,KAAK,GAAG,KAAK,MAAL,CAAY,CAAZ,CAAZ;;AAEA,YAAI,CAAC,KAAL,EAAY;AACV,UAAA,KAAK,GAAG,OAAO,IAAP,KAAgB,QAAhB,GACJ,IAAI,CAAC,KADD,GAEJ,IAFJ;AAGD;;AAED,QAAA,MAAM,CAAC,IAAP,CAAY;AACV,UAAA,CAAC,EAAE,IAAI,CAAC,CADE;AAEV,UAAA,KAAK,EAAE,MAAM,CAAC,KAAD;AAFH,SAAZ;AAID;;AAED,aAAO,MAAP;AACD,KA9EO;;AA+ER,IAAA,gBAAgB,GAAA;AACd,aAAO,KAAK,KAAL,CAAW,GAAX,CAAe,IAAI,IAAK,OAAO,IAAP,KAAgB,QAAhB,GAA2B,IAA3B,GAAkC,IAAI,CAAC,KAA/D,CAAP;AACD,KAjFO;;AAkFR,IAAA,OAAO,GAAA;AACL,aAAO,KAAK,IAAL,KAAc,OAAd,GAAwB,SAAS,CAAC,KAAK,gBAAN,EAAwB,KAAK,QAA7B,CAAjC,GAA0E,OAAO,CAAC,KAAK,gBAAN,EAAwB,KAAK,QAA7B,CAAxF;AACD,KApFO;;AAqFR,IAAA,KAAK,GAAA;AACH,UAAI,CAAC,GAAG,KAAK,YAAb;AACA,UAAI,KAAK,IAAL,KAAc,OAAlB,EAA2B,CAAC,IAAI,CAAL;AAC3B,aAAO,CAAP;AACD,KAzFO;;AA0FR,IAAA,OAAO,GAAA;AACL,aAAO,KAAK,MAAL,KAAgB,IAAhB,GAAuB,CAAvB,GAA2B,MAAM,CAAC,KAAK,MAAN,CAAxC;AACD;;AA5FO,GAhFH;AA+KP,EAAA,KAAK,EAAE;AACL,IAAA,KAAK,EAAE;AACL,MAAA,SAAS,EAAE,IADN;;AAEL,MAAA,OAAO,GAAA;AACL,aAAK,SAAL,CAAe,MAAK;AAClB,cACE,CAAC,KAAK,QAAN,IACA,KAAK,IAAL,KAAc,KADd,IAEA,CAAC,KAAK,KAAL,CAAW,IAHd,EAIE;AAEF,gBAAM,IAAI,GAAG,KAAK,KAAL,CAAW,IAAxB;AACA,gBAAM,MAAM,GAAG,IAAI,CAAC,cAAL,EAAf;;AAEA,cAAI,CAAC,KAAK,IAAV,EAAgB;AACd,YAAA,IAAI,CAAC,KAAL,CAAW,UAAX,GAAwB,MAAxB;AACA,YAAA,IAAI,CAAC,KAAL,CAAW,eAAX,GAA6B,MAAM,GAAG,GAAT,GAAe,MAA5C;AACA,YAAA,IAAI,CAAC,KAAL,CAAW,gBAAX,GAA8B,IAAI,CAAC,GAAL,CAAS,MAAM,IAAI,KAAK,UAAL,IAAmB,CAAvB,CAAf,EAA0C,QAA1C,EAA9B;AACA,YAAA,IAAI,CAAC,qBAAL;AACA,YAAA,IAAI,CAAC,KAAL,CAAW,UAAX,GAAwB,qBAAqB,KAAK,gBAAgB,MAAM,KAAK,cAAc,EAA3F;AACA,YAAA,IAAI,CAAC,KAAL,CAAW,gBAAX,GAA8B,GAA9B;AACD,WAPD,MAOO;AACL,YAAA,IAAI,CAAC,KAAL,CAAW,eAAX,GAA6B,eAA7B;AACA,YAAA,IAAI,CAAC,KAAL,CAAW,UAAX,GAAwB,MAAxB;AACA,YAAA,IAAI,CAAC,KAAL,CAAW,SAAX,GAAuB,WAAvB;AACA,YAAA,IAAI,CAAC,qBAAL;AACA,YAAA,IAAI,CAAC,KAAL,CAAW,UAAX,GAAwB,aAAa,KAAK,gBAAgB,MAAM,KAAK,cAAc,EAAnF;AACA,YAAA,IAAI,CAAC,KAAL,CAAW,SAAX,GAAuB,WAAvB;AACD;;AACD,eAAK,UAAL,GAAkB,MAAlB;AACD,SA1BD;AA2BD;;AA9BI;AADF,GA/KA;AAkNP,EAAA,OAAO,EAAE;AACP,IAAA,WAAW,GAAA;AACT,YAAM,iBAAiB,GAAG,KAAK,iBAA/B;AACA,YAAM,QAAQ,GAAG,KAAK,QAAL,CAAc,KAAd,EAAjB,CAFS,CAIT;AACA;;AACA,UAAI,CAAC,QAAQ,CAAC,MAAd,EAAsB,QAAQ,CAAC,IAAT,CAAc,EAAd;AAEtB,YAAM,GAAG,GAAG,IAAI,CAAC,GAAL,CAAS,QAAQ,CAAC,MAAT,GAAkB,CAA3B,EAA8B,CAA9B,CAAZ;AACA,YAAM,KAAK,GAAG,QAAQ,CAAC,OAAT,GAAmB,GAAnB,CAAuB,CAAC,KAAD,EAAQ,KAAR,KACnC,KAAK,cAAL,CAAoB,MAApB,EAA4B;AAC1B,QAAA,KAAK,EAAE;AACL,UAAA,MAAM,EAAE,KAAK,GAAG,GADX;AAEL,wBAAc,KAAK,IAAI;AAFlB;AADmB,OAA5B,CADY,CAAd;AASA,aAAO,KAAK,cAAL,CAAoB,MAApB,EAA4B,CACjC,KAAK,cAAL,CAAoB,gBAApB,EAAsC;AACpC,QAAA,KAAK,EAAE;AACL,UAAA,EAAE,EAAE,KAAK,IADJ;AAEL,UAAA,EAAE,EAAE,EAAE,iBAAiB,KAAK,MAAxB,CAFC;AAGL,UAAA,EAAE,EAAE,EAAE,iBAAiB,KAAK,KAAxB,CAHC;AAIL,UAAA,EAAE,EAAE,EAAE,iBAAiB,KAAK,OAAxB,CAJC;AAKL,UAAA,EAAE,EAAE,EAAE,iBAAiB,KAAK,QAAxB;AALC;AAD6B,OAAtC,EAQG,KARH,CADiC,CAA5B,CAAP;AAWD,KA9BM;;AA+BP,IAAA,IAAI,CAAE,QAAF,EAAmB;AACrB,aAAO,KAAK,cAAL,CAAoB,GAApB,EAAyB;AAC9B,QAAA,KAAK,EAAE;AACL,UAAA,QAAQ,EAAE,GADL;AAEL,UAAA,UAAU,EAAE,QAFP;AAGL,UAAA,gBAAgB,EAAE,cAHb;AAIL,UAAA,IAAI,EAAE;AAJD;AADuB,OAAzB,EAOJ,QAPI,CAAP;AAQD,KAxCM;;AAyCP,IAAA,OAAO,GAAA;AACL,YAAM,MAAM,GAAG,SAAS,CAAC,KAAK,gBAAN,EAAwB,KAAK,QAA7B,CAAxB;AAEA,aAAO,KAAK,cAAL,CAAoB,MAApB,EAA4B;AACjC,QAAA,KAAK,EAAE;AACL,UAAA,CAAC,EAAE,OAAO,CAAC,MAAD,EAAS,KAAK,OAAd,EAAuB,KAAK,IAA5B,EAAkC,KAAK,YAAvC,CADL;AAEL,UAAA,IAAI,EAAE,KAAK,IAAL,GAAY,QAAQ,KAAK,IAAI,GAA7B,GAAmC,MAFpC;AAGL,UAAA,MAAM,EAAE,KAAK,IAAL,GAAY,MAAZ,GAAqB,QAAQ,KAAK,IAAI;AAHzC,SAD0B;AAMjC,QAAA,GAAG,EAAE;AAN4B,OAA5B,CAAP;AAQD,KApDM;;AAqDP,IAAA,SAAS,CAAE,OAAF,EAAiB;AACxB,YAAM,QAAQ,GAAG,KAAK,YAAL,CAAkB,GAAlB,CAAsB,CAAC,IAAD,EAAO,CAAP,KACrC,KAAK,cAAL,CAAoB,MAApB,EAA4B;AAC1B,QAAA,KAAK,EAAE;AACL,UAAA,CAAC,EAAE,IAAI,CAAC,CAAL,GAAS,OAAT,GAAmB,KAAK,UAAL,GAAkB,CADnC;AAEL,UAAA,CAAC,EAAE,KAAK,KAAL,GAAc,KAAK,eAAL,GAAuB,IAFnC;AAGL,uBAAa,MAAM,CAAC,KAAK,SAAN,CAAN,IAA0B;AAHlC;AADmB,OAA5B,EAMG,CAAC,KAAK,QAAL,CAAc,IAAd,EAAoB,CAApB,CAAD,CANH,CADe,CAAjB;AAUA,aAAO,KAAK,IAAL,CAAU,QAAV,CAAP;AACD,KAjEM;;AAkEP,IAAA,QAAQ,CAAE,IAAF,EAAuB,KAAvB,EAAoC;AAC1C,aAAO,KAAK,YAAL,CAAkB,KAAlB,GACH,KAAK,YAAL,CAAkB,KAAlB,CAAwB;AAAE,QAAA,KAAF;AAAS,QAAA,KAAK,EAAE,IAAI,CAAC;AAArB,OAAxB,CADG,GAEH,IAAI,CAAC,KAFT;AAGD,KAtEM;;AAuEP,IAAA,OAAO,GAAA;AACL,UAAI,CAAC,KAAK,KAAN,IAAe,KAAK,WAAL,GAAmB,CAAtC,EAAyC,OAAO,SAAP;AAEzC,YAAM,IAAI,GAAG,OAAO,CAAC,KAAK,gBAAN,EAAwB,KAAK,QAA7B,CAApB;AACA,YAAM,OAAO,GAAG,CAAC,IAAI,CAAC,GAAL,CAAS,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,GAAY,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAA7B,IAAkC,KAAK,UAAxC,IAAsD,CAAtE;AAEA,aAAO,KAAK,cAAL,CAAoB,KAApB,EAA2B;AAChC,QAAA,KAAK,EAAE;AACL,UAAA,OAAO,EAAE,OADJ;AAEL,UAAA,OAAO,EAAE,OAAO,KAAK,UAAU,IAAI,KAAK,WAAW;AAF9C;AADyB,OAA3B,EAKJ,CACD,KAAK,WAAL,EADC,EAED,KAAK,WAAL,CAAiB,IAAjB,EAAuB,OAAvB,EAAgC,KAAK,UAArC,EAAiD,mBAAmB,KAAK,IAAzE,CAFC,EAGD,KAAK,SAAL,GAAiB,KAAK,SAAL,CAAe,OAAf,CAAjB,GAA2C,SAH1C,EAID,KAAK,cAAL,CAAoB,GAApB,EAAyB;AACvB,QAAA,KAAK,EAAE;AACL,uBAAa,sBAAsB,KAAK,IAAI,QADvC;AAEL,UAAA,IAAI,EAAE,QAAQ,KAAK,IAAI;AAFlB;AADgB,OAAzB,EAKG,CACD,KAAK,cAAL,CAAoB,MAApB,EAA4B;AAC1B,QAAA,KAAK,EAAE;AACL,UAAA,CAAC,EAAE,CADE;AAEL,UAAA,CAAC,EAAE,CAFE;AAGL,UAAA,KAAK,EAAE,KAAK,UAHP;AAIL,UAAA,MAAM,EAAE,KAAK;AAJR;AADmB,OAA5B,CADC,CALH,CAJC,CALI,CAAP;AAyBD,KAtGM;;AAuGP,IAAA,WAAW,CAAE,IAAF,EAAe,OAAf,EAAgC,SAAhC,EAAmD,EAAnD,EAA6D;AACtE,YAAM,QAAQ,GAAG,OAAO,KAAK,MAAZ,KAAuB,QAAvB,GACb,KAAK,MADQ,GAEb,KAAK,MAAL,GAAc,CAAd,GAAkB,CAFtB;AAIA,aAAO,KAAK,cAAL,CAAoB,UAApB,EAAgC;AACrC,QAAA,KAAK,EAAE;AACL,UAAA,EAAE,EAAE,GAAG,EAAE;AADJ;AAD8B,OAAhC,EAIJ,IAAI,CAAC,GAAL,CAAS,IAAI,IAAG;AACjB,eAAO,KAAK,cAAL,CAAoB,MAApB,EAA4B;AACjC,UAAA,KAAK,EAAE;AACL,YAAA,CAAC,EAAE,IAAI,CAAC,CAAL,GAAS,OADP;AAEL,YAAA,CAAC,EAAE,IAAI,CAAC,CAFH;AAGL,YAAA,KAAK,EAAE,SAHF;AAIL,YAAA,MAAM,EAAE,IAAI,CAAC,MAJR;AAKL,YAAA,EAAE,EAAE,QALC;AAML,YAAA,EAAE,EAAE;AANC;AAD0B,SAA5B,EASJ,CACD,KAAK,QAAL,GAAgB,KAAK,cAAL,CAAoB,SAApB,EAA+B;AAC7C,UAAA,KAAK,EAAE;AACL,YAAA,aAAa,EAAE,QADV;AAEL,YAAA,IAAI,EAAE,CAFD;AAGL,YAAA,EAAE,EAAE,IAAI,CAAC,MAHJ;AAIL,YAAA,GAAG,EAAE,GAAG,KAAK,gBAAgB,IAJxB;AAKL,YAAA,IAAI,EAAE;AALD;AADsC,SAA/B,CAAhB,GAQK,SATJ,CATI,CAAP;AAoBD,OArBE,CAJI,CAAP;AA0BD,KAtIM;;AAuIP,IAAA,QAAQ,GAAA;AACN,aAAO,KAAK,cAAL,CAAoB,KAApB,EAA2B,KAAK,YAAL,CAAkB,KAAK,KAAvB,EAA8B;AAC9D,QAAA,KAAK,EAAE,EACL,GAAG,KAAK,MADH;AAEL,UAAA,OAAO,EAAE,OAFJ;AAGL,0BAAgB,KAAK,UAAL,IAAmB,CAH9B;AAIL,UAAA,OAAO,EAAE,OAAO,KAAK,KAAK,IAAI,KAAK,WAAW;AAJzC;AADuD,OAA9B,CAA3B,EAOH,CACF,KAAK,WAAL,EADE,EAEF,KAAK,SAAL,IAAkB,KAAK,SAAL,CAAe,EAAE,KAAK,UAAL,GAAkB,CAApB,CAAf,CAFhB,EAGF,KAAK,OAAL,EAHE,CAPG,CAAP;AAYD;;AApJM,GAlNF;;AAyWP,EAAA,MAAM,CAAE,CAAF,EAAG;AACP,QAAI,KAAK,WAAL,GAAmB,CAAvB,EAA0B,OAAO,SAAP;AAE1B,WAAO,KAAK,IAAL,KAAc,OAAd,GAAwB,KAAK,QAAL,EAAxB,GAA0C,KAAK,OAAL,EAAjD;AACD;;AA7WM,CARM,CAAf","sourcesContent":["// 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 x1: +(gradientDirection === 'left'),\n y1: +(gradientDirection === 'top'),\n x2: +(gradientDirection === 'right'),\n y2: +(gradientDirection === 'bottom'),\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"],"sourceRoot":"","file":"VSparkline.js"}
1
+ {"version":3,"sources":["../../../src/components/VSparkline/VSparkline.ts"],"names":[],"mappings":"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","sourcesContent":["// 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"],"sourceRoot":"","file":"VSparkline.js"}
@@ -13,7 +13,7 @@ export function genPoints(values, boundary) {
13
13
  return values.map((value, index) => {
14
14
  return {
15
15
  x: minX + index * gridX,
16
- y: maxY - (value - minValue) * gridY + +(index === totalValues - 1) * 0.00001 - +(index === 0) * 0.00001,
16
+ y: maxY - (value - minValue) * gridY,
17
17
  value
18
18
  };
19
19
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/VSparkline/helpers/core.ts"],"names":[],"mappings":"AAEA,OAAM,SAAU,SAAV,CACJ,MADI,EAEJ,QAFI,EAEc;AAElB,QAAM;AAAE,IAAA,IAAF;AAAQ,IAAA,IAAR;AAAc,IAAA,IAAd;AAAoB,IAAA;AAApB,MAA6B,QAAnC;AACA,QAAM,WAAW,GAAG,MAAM,CAAC,MAA3B;AACA,QAAM,QAAQ,GAAG,IAAI,CAAC,GAAL,CAAS,GAAG,MAAZ,CAAjB;AACA,QAAM,QAAQ,GAAG,IAAI,CAAC,GAAL,CAAS,GAAG,MAAZ,CAAjB;AAEA,QAAM,KAAK,GAAG,CAAC,IAAI,GAAG,IAAR,KAAiB,WAAW,GAAG,CAA/B,CAAd;AACA,QAAM,KAAK,GAAG,CAAC,IAAI,GAAG,IAAR,KAAkB,QAAQ,GAAG,QAAZ,IAAyB,CAA1C,CAAd;AAEA,SAAO,MAAM,CAAC,GAAP,CAAW,CAAC,KAAD,EAAQ,KAAR,KAAiB;AACjC,WAAO;AACL,MAAA,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,KADb;AAEL,MAAA,CAAC,EACC,IAAI,GACJ,CAAC,KAAK,GAAG,QAAT,IAAqB,KADrB,GAEA,EAAE,KAAK,KAAK,WAAW,GAAG,CAA1B,IAA+B,OAF/B,GAGA,EAAE,KAAK,KAAK,CAAZ,IAAiB,OANd;AAOL,MAAA;AAPK,KAAP;AASD,GAVM,CAAP;AAWD;AAED,OAAM,SAAU,OAAV,CACJ,MADI,EAEJ,QAFI,EAEc;AAElB,QAAM;AAAE,IAAA,IAAF;AAAQ,IAAA,IAAR;AAAc,IAAA,IAAd;AAAoB,IAAA;AAApB,MAA6B,QAAnC;AACA,QAAM,WAAW,GAAG,MAAM,CAAC,MAA3B;AACA,MAAI,QAAQ,GAAG,IAAI,CAAC,GAAL,CAAS,GAAG,MAAZ,CAAf;AACA,MAAI,QAAQ,GAAG,IAAI,CAAC,GAAL,CAAS,GAAG,MAAZ,CAAf;AAEA,MAAI,QAAQ,GAAG,CAAf,EAAkB,QAAQ,GAAG,CAAX;AAClB,MAAI,QAAQ,GAAG,CAAf,EAAkB,QAAQ,GAAG,CAAX;AAElB,QAAM,KAAK,GAAG,IAAI,GAAG,WAArB;AACA,QAAM,KAAK,GAAG,CAAC,IAAI,GAAG,IAAR,KAAkB,QAAQ,GAAG,QAAZ,IAAyB,CAA1C,CAAd;AACA,QAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,GAAL,CAAS,QAAQ,GAAG,KAApB,CAAxB;AAEA,SAAO,MAAM,CAAC,GAAP,CAAW,CAAC,KAAD,EAAQ,KAAR,KAAiB;AACjC,UAAM,MAAM,GAAG,IAAI,CAAC,GAAL,CAAS,KAAK,GAAG,KAAjB,CAAf;AAEA,WAAO;AACL,MAAA,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,KADb;AAEL,MAAA,CAAC,EAAE,QAAQ,GAAG,MAAX,GACD,EAAE,KAAK,GAAG,CAAV,IAAe,MAHZ;AAIL,MAAA,MAJK;AAKL,MAAA;AALK,KAAP;AAOD,GAVM,CAAP;AAWD","sourcesContent":["import { Point, Boundary, Bar } from '../VSparkline'\n\nexport function genPoints (\n values: number[],\n boundary: Boundary\n): Point[] {\n const { minX, maxX, minY, maxY } = boundary\n const totalValues = values.length\n const maxValue = Math.max(...values)\n const minValue = Math.min(...values)\n\n const gridX = (maxX - minX) / (totalValues - 1)\n const gridY = (maxY - minY) / ((maxValue - minValue) || 1)\n\n return values.map((value, index) => {\n return {\n x: minX + index * gridX,\n y:\n maxY -\n (value - minValue) * gridY +\n +(index === totalValues - 1) * 0.00001 -\n +(index === 0) * 0.00001,\n value,\n }\n })\n}\n\nexport function genBars (\n values: number[],\n boundary: Boundary\n): Bar[] {\n const { minX, maxX, minY, maxY } = boundary\n const totalValues = values.length\n let maxValue = Math.max(...values)\n let minValue = Math.min(...values)\n\n if (minValue > 0) minValue = 0\n if (maxValue < 0) maxValue = 0\n\n const gridX = maxX / totalValues\n const gridY = (maxY - minY) / ((maxValue - minValue) || 1)\n const horizonY = maxY - Math.abs(minValue * gridY)\n\n return values.map((value, index) => {\n const height = Math.abs(gridY * value)\n\n return {\n x: minX + index * gridX,\n y: horizonY - height +\n +(value < 0) * height,\n height,\n value,\n }\n })\n}\n"],"sourceRoot":"","file":"core.js"}
1
+ {"version":3,"sources":["../../../../src/components/VSparkline/helpers/core.ts"],"names":[],"mappings":"AAEA,OAAM,SAAU,SAAV,CACJ,MADI,EAEJ,QAFI,EAEc;AAElB,QAAM;AAAE,IAAA,IAAF;AAAQ,IAAA,IAAR;AAAc,IAAA,IAAd;AAAoB,IAAA;AAApB,MAA6B,QAAnC;AACA,QAAM,WAAW,GAAG,MAAM,CAAC,MAA3B;AACA,QAAM,QAAQ,GAAG,IAAI,CAAC,GAAL,CAAS,GAAG,MAAZ,CAAjB;AACA,QAAM,QAAQ,GAAG,IAAI,CAAC,GAAL,CAAS,GAAG,MAAZ,CAAjB;AAEA,QAAM,KAAK,GAAG,CAAC,IAAI,GAAG,IAAR,KAAiB,WAAW,GAAG,CAA/B,CAAd;AACA,QAAM,KAAK,GAAG,CAAC,IAAI,GAAG,IAAR,KAAkB,QAAQ,GAAG,QAAZ,IAAyB,CAA1C,CAAd;AAEA,SAAO,MAAM,CAAC,GAAP,CAAW,CAAC,KAAD,EAAQ,KAAR,KAAiB;AACjC,WAAO;AACL,MAAA,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,KADb;AAEL,MAAA,CAAC,EAAE,IAAI,GAAG,CAAC,KAAK,GAAG,QAAT,IAAqB,KAF1B;AAGL,MAAA;AAHK,KAAP;AAKD,GANM,CAAP;AAOD;AAED,OAAM,SAAU,OAAV,CACJ,MADI,EAEJ,QAFI,EAEc;AAElB,QAAM;AAAE,IAAA,IAAF;AAAQ,IAAA,IAAR;AAAc,IAAA,IAAd;AAAoB,IAAA;AAApB,MAA6B,QAAnC;AACA,QAAM,WAAW,GAAG,MAAM,CAAC,MAA3B;AACA,MAAI,QAAQ,GAAG,IAAI,CAAC,GAAL,CAAS,GAAG,MAAZ,CAAf;AACA,MAAI,QAAQ,GAAG,IAAI,CAAC,GAAL,CAAS,GAAG,MAAZ,CAAf;AAEA,MAAI,QAAQ,GAAG,CAAf,EAAkB,QAAQ,GAAG,CAAX;AAClB,MAAI,QAAQ,GAAG,CAAf,EAAkB,QAAQ,GAAG,CAAX;AAElB,QAAM,KAAK,GAAG,IAAI,GAAG,WAArB;AACA,QAAM,KAAK,GAAG,CAAC,IAAI,GAAG,IAAR,KAAkB,QAAQ,GAAG,QAAZ,IAAyB,CAA1C,CAAd;AACA,QAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,GAAL,CAAS,QAAQ,GAAG,KAApB,CAAxB;AAEA,SAAO,MAAM,CAAC,GAAP,CAAW,CAAC,KAAD,EAAQ,KAAR,KAAiB;AACjC,UAAM,MAAM,GAAG,IAAI,CAAC,GAAL,CAAS,KAAK,GAAG,KAAjB,CAAf;AAEA,WAAO;AACL,MAAA,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,KADb;AAEL,MAAA,CAAC,EAAE,QAAQ,GAAG,MAAX,GACD,EAAE,KAAK,GAAG,CAAV,IAAe,MAHZ;AAIL,MAAA,MAJK;AAKL,MAAA;AALK,KAAP;AAOD,GAVM,CAAP;AAWD","sourcesContent":["import { Point, Boundary, Bar } from '../VSparkline'\n\nexport function genPoints (\n values: number[],\n boundary: Boundary\n): Point[] {\n const { minX, maxX, minY, maxY } = boundary\n const totalValues = values.length\n const maxValue = Math.max(...values)\n const minValue = Math.min(...values)\n\n const gridX = (maxX - minX) / (totalValues - 1)\n const gridY = (maxY - minY) / ((maxValue - minValue) || 1)\n\n return values.map((value, index) => {\n return {\n x: minX + index * gridX,\n y: maxY - (value - minValue) * gridY,\n value,\n }\n })\n}\n\nexport function genBars (\n values: number[],\n boundary: Boundary\n): Bar[] {\n const { minX, maxX, minY, maxY } = boundary\n const totalValues = values.length\n let maxValue = Math.max(...values)\n let minValue = Math.min(...values)\n\n if (minValue > 0) minValue = 0\n if (maxValue < 0) maxValue = 0\n\n const gridX = maxX / totalValues\n const gridY = (maxY - minY) / ((maxValue - minValue) || 1)\n const horizonY = maxY - Math.abs(minValue * gridY)\n\n return values.map((value, index) => {\n const height = Math.abs(gridY * value)\n\n return {\n x: minX + index * gridX,\n y: horizonY - height +\n +(value < 0) * height,\n height,\n value,\n }\n })\n}\n"],"sourceRoot":"","file":"core.js"}
@@ -10,6 +10,7 @@ import Intersectable from '../../mixins/intersectable';
10
10
  import Loadable from '../../mixins/loadable';
11
11
  import Validatable from '../../mixins/validatable'; // Directives
12
12
 
13
+ import resize from '../../directives/resize';
13
14
  import ripple from '../../directives/ripple'; // Utilities
14
15
 
15
16
  import { convertToUnit, keyCodes } from '../../util/helpers';
@@ -17,7 +18,7 @@ import { breaking, consoleWarn } from '../../util/console'; // Types
17
18
 
18
19
  import mixins from '../../util/mixins';
19
20
  const baseMixins = mixins(VInput, Intersectable({
20
- onVisible: ['setLabelWidth', 'setPrefixWidth', 'setPrependWidth', 'tryAutofocus']
21
+ onVisible: ['onResize', 'tryAutofocus']
21
22
  }), Loadable);
22
23
  const dirtyTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month'];
23
24
  /* @vue/component */
@@ -25,6 +26,7 @@ const dirtyTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', '
25
26
  export default baseMixins.extend().extend({
26
27
  name: 'v-text-field',
27
28
  directives: {
29
+ resize,
28
30
  ripple
29
31
  },
30
32
  inheritAttrs: false,
@@ -207,9 +209,6 @@ export default baseMixins.extend().extend({
207
209
 
208
210
  mounted() {
209
211
  this.autofocus && this.tryAutofocus();
210
- this.setLabelWidth();
211
- this.setPrefixWidth();
212
- this.setPrependWidth();
213
212
  requestAnimationFrame(() => this.isBooted = true);
214
213
  },
215
214
 
@@ -377,7 +376,14 @@ export default baseMixins.extend().extend({
377
376
  focus: this.onFocus,
378
377
  keydown: this.onKeyDown
379
378
  }),
380
- ref: 'input'
379
+ ref: 'input',
380
+ directives: [{
381
+ name: 'resize',
382
+ modifiers: {
383
+ quiet: true
384
+ },
385
+ value: this.onResize
386
+ }]
381
387
  });
382
388
  },
383
389
 
@@ -482,6 +488,12 @@ export default baseMixins.extend().extend({
482
488
  } else if (this.initialValue !== this.lazyValue) {
483
489
  this.$emit('change', this.lazyValue);
484
490
  }
491
+ },
492
+
493
+ onResize() {
494
+ this.setLabelWidth();
495
+ this.setPrefixWidth();
496
+ this.setPrependWidth();
485
497
  }
486
498
 
487
499
  }