@dimailn/vuetify 2.7.2-alpha23 → 2.7.2-alpha25

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 (108) hide show
  1. package/dist/vuetify.js +280 -256
  2. package/dist/vuetify.js.map +1 -1
  3. package/dist/vuetify.min.css +1 -1
  4. package/dist/vuetify.min.js +2 -2
  5. package/es5/components/VBadge/VBadge.js +17 -14
  6. package/es5/components/VBadge/VBadge.js.map +1 -1
  7. package/es5/components/VBtn/VBtn.js +16 -16
  8. package/es5/components/VBtn/VBtn.js.map +1 -1
  9. package/es5/components/VColorPicker/VColorPicker.js +18 -31
  10. package/es5/components/VColorPicker/VColorPicker.js.map +1 -1
  11. package/es5/components/VColorPicker/VColorPickerCanvas.js +45 -46
  12. package/es5/components/VColorPicker/VColorPickerCanvas.js.map +1 -1
  13. package/es5/components/VColorPicker/VColorPickerEdit.js +27 -26
  14. package/es5/components/VColorPicker/VColorPickerEdit.js.map +1 -1
  15. package/es5/components/VColorPicker/VColorPickerPreview.js +41 -30
  16. package/es5/components/VColorPicker/VColorPickerPreview.js.map +1 -1
  17. package/es5/components/VColorPicker/VColorPickerSwatches.js +13 -10
  18. package/es5/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
  19. package/es5/components/VDataTable/VDataTable.js +7 -11
  20. package/es5/components/VDataTable/VDataTable.js.map +1 -1
  21. package/es5/components/VInput/VInput.js +24 -6
  22. package/es5/components/VInput/VInput.js.map +1 -1
  23. package/es5/components/VSelect/VSelectList.js +1 -1
  24. package/es5/components/VSelect/VSelectList.js.map +1 -1
  25. package/es5/components/VSlider/VSlider.js +23 -18
  26. package/es5/components/VSlider/VSlider.js.map +1 -1
  27. package/es5/components/VTooltip/VTooltip.js +3 -7
  28. package/es5/components/VTooltip/VTooltip.js.map +1 -1
  29. package/es5/framework.js +1 -1
  30. package/es5/mixins/activatable/index.js +2 -1
  31. package/es5/mixins/activatable/index.js.map +1 -1
  32. package/es5/mixins/bootable/index.js +1 -2
  33. package/es5/mixins/bootable/index.js.map +1 -1
  34. package/es5/mixins/mouse/index.js +10 -5
  35. package/es5/mixins/mouse/index.js.map +1 -1
  36. package/es5/mixins/selectable/index.js +3 -0
  37. package/es5/mixins/selectable/index.js.map +1 -1
  38. package/lib/components/VBadge/VBadge.js +14 -13
  39. package/lib/components/VBadge/VBadge.js.map +1 -1
  40. package/lib/components/VBtn/VBtn.js +18 -19
  41. package/lib/components/VBtn/VBtn.js.map +1 -1
  42. package/lib/components/VColorPicker/VColorPicker.js +29 -37
  43. package/lib/components/VColorPicker/VColorPicker.js.map +1 -1
  44. package/lib/components/VColorPicker/VColorPickerCanvas.js +41 -43
  45. package/lib/components/VColorPicker/VColorPickerCanvas.js.map +1 -1
  46. package/lib/components/VColorPicker/VColorPickerEdit.js +25 -31
  47. package/lib/components/VColorPicker/VColorPickerEdit.js.map +1 -1
  48. package/lib/components/VColorPicker/VColorPickerPreview.js +45 -32
  49. package/lib/components/VColorPicker/VColorPickerPreview.js.map +1 -1
  50. package/lib/components/VColorPicker/VColorPickerSwatches.js +15 -9
  51. package/lib/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
  52. package/lib/components/VDataTable/VDataTable.js +3 -4
  53. package/lib/components/VDataTable/VDataTable.js.map +1 -1
  54. package/lib/components/VInput/VInput.js +16 -4
  55. package/lib/components/VInput/VInput.js.map +1 -1
  56. package/lib/components/VSelect/VSelectList.js +2 -1
  57. package/lib/components/VSelect/VSelectList.js.map +1 -1
  58. package/lib/components/VSlider/VSlider.js +26 -21
  59. package/lib/components/VSlider/VSlider.js.map +1 -1
  60. package/lib/components/VTooltip/VTooltip.js +6 -9
  61. package/lib/components/VTooltip/VTooltip.js.map +1 -1
  62. package/lib/framework.js +1 -1
  63. package/lib/mixins/activatable/index.js +2 -1
  64. package/lib/mixins/activatable/index.js.map +1 -1
  65. package/lib/mixins/bootable/index.js +2 -4
  66. package/lib/mixins/bootable/index.js.map +1 -1
  67. package/lib/mixins/mouse/index.js +9 -5
  68. package/lib/mixins/mouse/index.js.map +1 -1
  69. package/lib/mixins/selectable/index.js +4 -0
  70. package/lib/mixins/selectable/index.js.map +1 -1
  71. package/package.json +1 -1
  72. package/src/components/VBadge/VBadge.ts +24 -25
  73. package/src/components/VBadge/__tests__/VBadge.spec.ts +47 -30
  74. package/src/components/VBadge/__tests__/__snapshots__/VBadge.spec.ts.snap +5 -5
  75. package/src/components/VBtn/VBtn.ts +18 -16
  76. package/src/components/VBtn/__tests__/VBtn.spec.ts +257 -242
  77. package/src/components/VBtn/__tests__/__snapshots__/VBtn.spec.ts.snap +13 -73
  78. package/src/components/VColorPicker/VColorPicker.ts +32 -35
  79. package/src/components/VColorPicker/VColorPickerCanvas.ts +44 -37
  80. package/src/components/VColorPicker/VColorPickerEdit.ts +37 -35
  81. package/src/components/VColorPicker/VColorPickerPreview.ts +48 -28
  82. package/src/components/VColorPicker/VColorPickerSwatches.ts +23 -12
  83. package/src/components/VColorPicker/__tests__/VColorPicker.spec.ts +47 -47
  84. package/src/components/VColorPicker/__tests__/VColorPickerCanvas.spec.ts +15 -13
  85. package/src/components/VColorPicker/__tests__/VColorPickerEdit.spec.ts +52 -50
  86. package/src/components/VColorPicker/__tests__/VColorPickerPreview.spec.ts +101 -30
  87. package/src/components/VColorPicker/__tests__/__snapshots__/VColorPicker.spec.ts.snap +200 -157
  88. package/src/components/VColorPicker/__tests__/__snapshots__/VColorPickerEdit.spec.ts.snap +28 -11
  89. package/src/components/VDataTable/VDataTable.ts +3 -3
  90. package/src/components/VInput/VInput.ts +12 -2
  91. package/src/components/VInput/__tests__/VInput.spec.ts +170 -234
  92. package/src/components/VInput/__tests__/__snapshots__/VInput.spec.ts.snap +50 -101
  93. package/src/components/VSelect/VSelectList.ts +1 -0
  94. package/src/components/VSkeletonLoader/__tests__/VSkeletonLoader.spec.ts +22 -15
  95. package/src/components/VSkeletonLoader/__tests__/__snapshots__/VSkeletonLoader.spec.ts.snap +60 -60
  96. package/src/components/VSlider/VSlider.ts +43 -27
  97. package/src/components/VSlider/__tests__/VSlider.spec.ts +188 -286
  98. package/src/components/VSlider/__tests__/__snapshots__/VSlider.spec.ts.snap +157 -246
  99. package/src/components/VTabs/__tests__/VTab.spec.ts +3 -3
  100. package/src/components/VTabs/__tests__/VTabsBar.spec.ts +2 -2
  101. package/src/components/VTooltip/VTooltip.ts +20 -20
  102. package/src/components/VTooltip/__tests__/VTooltip.spec.ts +60 -75
  103. package/src/mixins/activatable/index.ts +2 -1
  104. package/src/mixins/bootable/__tests__/bootable.spec.ts +17 -11
  105. package/src/mixins/bootable/index.ts +4 -3
  106. package/src/mixins/mouse/__tests__/mouse.spec.ts +54 -40
  107. package/src/mixins/mouse/index.ts +10 -6
  108. package/src/mixins/selectable/index.ts +4 -0
@@ -15,7 +15,7 @@ var _colorable = _interopRequireDefault(require("../../mixins/colorable"));
15
15
 
16
16
  var _themeable = _interopRequireDefault(require("../../mixins/themeable"));
17
17
 
18
- var _toggleable = _interopRequireDefault(require("../../mixins/toggleable"));
18
+ var _toggleable = require("../../mixins/toggleable");
19
19
 
20
20
  var _transitionable = _interopRequireDefault(require("../../mixins/transitionable"));
21
21
 
@@ -23,8 +23,6 @@ var _positionable = require("../../mixins/positionable");
23
23
 
24
24
  var _mergeData = _interopRequireDefault(require("../../util/mergeData"));
25
25
 
26
- var _mixins = _interopRequireDefault(require("../../util/mixins"));
27
-
28
26
  var _helpers = require("../../util/helpers");
29
27
 
30
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -39,8 +37,11 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
39
37
 
40
38
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
41
39
 
42
- var _default = (0, _mixins.default)(_colorable.default, (0, _positionable.factory)(['left', 'bottom']), _themeable.default, _toggleable.default, _transitionable.default).extend({
40
+ var Toggleable = (0, _toggleable.factory)('modelValue', 'update:modelValue');
41
+
42
+ var _default2 = (0, _vue.defineComponent)({
43
43
  name: 'v-badge',
44
+ mixins: [_colorable.default, (0, _positionable.factory)(['left', 'bottom']), _themeable.default, Toggleable, _transitionable.default],
44
45
  props: {
45
46
  avatar: Boolean,
46
47
  bordered: Boolean,
@@ -66,7 +67,7 @@ var _default = (0, _mixins.default)(_colorable.default, (0, _positionable.factor
66
67
  type: String,
67
68
  default: 'scale-rotate-transition'
68
69
  },
69
- value: {
70
+ modelValue: {
70
71
  default: true
71
72
  }
72
73
  },
@@ -143,19 +144,19 @@ var _default = (0, _mixins.default)(_colorable.default, (0, _positionable.factor
143
144
  'aria-label': label,
144
145
  'aria-live': this.$attrs['aria-live'] || 'polite',
145
146
  title: this.$attrs.title,
146
- role: this.$attrs.role || 'status',
147
- directives: [{
148
- name: 'show',
149
- value: this.isActive
150
- }]
147
+ role: this.$attrs.role || 'status'
151
148
  });
152
- var badge = (0, _vue.h)('span', data, [this.genBadgeContent()]);
149
+ var badge = (0, _vue.withDirectives)((0, _vue.h)('span', data, [this.genBadgeContent()]), [[_vue.vShow, this.isActive]]);
153
150
  if (!this.transition) return badge;
154
151
  return (0, _vue.h)(_vue.Transition, {
155
152
  name: this.transition,
156
153
  origin: this.origin,
157
154
  mode: this.mode
158
- }, [badge]);
155
+ }, {
156
+ default: function _default() {
157
+ return [badge];
158
+ }
159
+ });
159
160
  },
160
161
  genBadgeContent: function genBadgeContent() {
161
162
  // Dot prop shows no content
@@ -163,7 +164,9 @@ var _default = (0, _mixins.default)(_colorable.default, (0, _positionable.factor
163
164
  var slot = (0, _helpers.getSlot)(this, 'badge');
164
165
  if (slot) return slot;
165
166
  if (this.content) return String(this.content);
166
- if (this.icon) return (0, _vue.h)(_VIcon.default, this.icon);
167
+ if (this.icon) return (0, _vue.h)(_VIcon.default, {
168
+ icon: this.icon
169
+ });
167
170
  return undefined;
168
171
  },
169
172
  genBadgeWrapper: function genBadgeWrapper() {
@@ -191,5 +194,5 @@ var _default = (0, _mixins.default)(_colorable.default, (0, _positionable.factor
191
194
  }
192
195
  });
193
196
 
194
- exports.default = _default;
197
+ exports.default = _default2;
195
198
  //# sourceMappingURL=VBadge.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VBadge/VBadge.ts"],"names":[],"mappings":"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","sourcesContent":["import {Transition, h} from 'vue'\n// Styles\nimport './VBadge.sass'\n\n// Components\nimport VIcon from '../VIcon/VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from '../../mixins/toggleable'\nimport Transitionable from '../../mixins/transitionable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport mergeData from '../../util/mergeData'\n// Utilities\nimport mixins from '../../util/mixins'\nimport {\n convertToUnit,\n getSlot,\n} from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Colorable,\n PositionableFactory(['left', 'bottom']),\n Themeable,\n Toggleable,\n Transitionable,\n/* @vue/component */\n).extend({\n name: 'v-badge',\n\n props: {\n avatar: Boolean,\n bordered: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n content: { required: false },\n dot: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge',\n },\n icon: String,\n inline: Boolean,\n offsetX: [Number, String],\n offsetY: [Number, String],\n overlap: Boolean,\n tile: Boolean,\n transition: {\n type: String,\n default: 'scale-rotate-transition',\n },\n value: { default: true },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-badge--avatar': this.avatar,\n 'v-badge--bordered': this.bordered,\n 'v-badge--bottom': this.bottom,\n 'v-badge--dot': this.dot,\n 'v-badge--icon': this.icon != null,\n 'v-badge--inline': this.inline,\n 'v-badge--left': this.left,\n 'v-badge--overlap': this.overlap,\n 'v-badge--tile': this.tile,\n ...this.themeClasses,\n }\n },\n computedBottom (): string {\n return this.bottom ? 'auto' : this.computedYOffset\n },\n computedLeft (): string {\n if (this.isRtl) {\n return this.left ? this.computedXOffset : 'auto'\n }\n\n return this.left ? 'auto' : this.computedXOffset\n },\n computedRight (): string {\n if (this.isRtl) {\n return this.left ? 'auto' : this.computedXOffset\n }\n\n return !this.left ? 'auto' : this.computedXOffset\n },\n computedTop (): string {\n return this.bottom ? this.computedYOffset : 'auto'\n },\n computedXOffset (): string {\n return this.calcPosition(this.offsetX)\n },\n computedYOffset (): string {\n return this.calcPosition(this.offsetY)\n },\n isRtl (): boolean {\n return this.$vuetify.rtl\n },\n // Default fallback if offsetX\n // or offsetY are undefined.\n offset (): number {\n if (this.overlap) return this.dot ? 8 : 12\n return this.dot ? 2 : 4\n },\n styles (): object {\n if (this.inline) return {}\n\n return {\n bottom: this.computedBottom,\n left: this.computedLeft,\n right: this.computedRight,\n top: this.computedTop,\n }\n },\n },\n\n methods: {\n calcPosition (offset: string | number): string {\n return `calc(100% - ${convertToUnit(offset || this.offset)})`\n },\n genBadge () {\n const lang = this.$vuetify.lang\n const label = this.$attrs['aria-label'] || lang.t(this.label)\n\n const data = this.setBackgroundColor(this.color, {\n class: 'v-badge__badge',\n style: this.styles,\n 'aria-atomic': this.$attrs['aria-atomic'] || 'true',\n 'aria-label': label,\n 'aria-live': this.$attrs['aria-live'] || 'polite',\n title: this.$attrs.title,\n role: this.$attrs.role || 'status',\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n })\n\n const badge = h('span', data, [this.genBadgeContent()])\n\n if (!this.transition) return badge\n\n return h(Transition, {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n }, [badge])\n },\n genBadgeContent () {\n // Dot prop shows no content\n if (this.dot) return undefined\n\n const slot = getSlot(this, 'badge')\n\n if (slot) return slot\n if (this.content) return String(this.content)\n if (this.icon) return h(VIcon, this.icon)\n\n return undefined\n },\n genBadgeWrapper () {\n return h('span', {\n class: 'v-badge__wrapper',\n }, [this.genBadge()])\n },\n },\n\n render (): VNode {\n const badge = [this.genBadgeWrapper()]\n const children = [getSlot(this)]\n const {\n 'aria-atomic': _x,\n 'aria-label': _y,\n 'aria-live': _z,\n role,\n title,\n ...attrs\n } = this.$attrs\n\n if (this.inline && this.left) children.unshift(badge)\n else children.push(badge)\n\n return h('span', mergeData({\n class: ['v-badge', this.classes]\n }, attrs)\n , children)\n },\n})\n"],"sourceRoot":"","file":"VBadge.js"}
1
+ {"version":3,"sources":["../../../src/components/VBadge/VBadge.ts"],"names":[],"mappings":"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","sourcesContent":["import { Transition, h, defineComponent, VNode, withDirectives, vShow } from 'vue'\n// Styles\nimport './VBadge.sass'\n\n// Components\nimport VIcon from '../VIcon/VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Transitionable from '../../mixins/transitionable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport mergeData from '../../util/mergeData'\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n} from '../../util/helpers'\n\nconst Toggleable = ToggleableFactory('modelValue', 'update:modelValue')\n\nexport default defineComponent({\n name: 'v-badge',\n\n mixins: [\n Colorable,\n PositionableFactory(['left', 'bottom']),\n Themeable,\n Toggleable,\n Transitionable,\n ],\n\n props: {\n avatar: Boolean,\n bordered: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n content: { required: false },\n dot: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge',\n },\n icon: String,\n inline: Boolean,\n offsetX: [Number, String],\n offsetY: [Number, String],\n overlap: Boolean,\n tile: Boolean,\n transition: {\n type: String,\n default: 'scale-rotate-transition',\n },\n modelValue: { default: true },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-badge--avatar': this.avatar,\n 'v-badge--bordered': this.bordered,\n 'v-badge--bottom': this.bottom,\n 'v-badge--dot': this.dot,\n 'v-badge--icon': this.icon != null,\n 'v-badge--inline': this.inline,\n 'v-badge--left': this.left,\n 'v-badge--overlap': this.overlap,\n 'v-badge--tile': this.tile,\n ...this.themeClasses,\n }\n },\n computedBottom (): string {\n return this.bottom ? 'auto' : this.computedYOffset\n },\n computedLeft (): string {\n if (this.isRtl) {\n return this.left ? this.computedXOffset : 'auto'\n }\n\n return this.left ? 'auto' : this.computedXOffset\n },\n computedRight (): string {\n if (this.isRtl) {\n return this.left ? 'auto' : this.computedXOffset\n }\n\n return !this.left ? 'auto' : this.computedXOffset\n },\n computedTop (): string {\n return this.bottom ? this.computedYOffset : 'auto'\n },\n computedXOffset (): string {\n return this.calcPosition(this.offsetX)\n },\n computedYOffset (): string {\n return this.calcPosition(this.offsetY)\n },\n isRtl (): boolean {\n return this.$vuetify.rtl\n },\n // Default fallback if offsetX\n // or offsetY are undefined.\n offset (): number {\n if (this.overlap) return this.dot ? 8 : 12\n return this.dot ? 2 : 4\n },\n styles (): object {\n if (this.inline) return {}\n\n return {\n bottom: this.computedBottom,\n left: this.computedLeft,\n right: this.computedRight,\n top: this.computedTop,\n }\n },\n },\n\n methods: {\n calcPosition (offset: string | number): string {\n return `calc(100% - ${convertToUnit(offset || this.offset)})`\n },\n genBadge () {\n const lang = this.$vuetify.lang\n const label = this.$attrs['aria-label'] || lang.t(this.label)\n\n const data = this.setBackgroundColor(this.color, {\n class: 'v-badge__badge',\n style: this.styles,\n 'aria-atomic': this.$attrs['aria-atomic'] || 'true',\n 'aria-label': label,\n 'aria-live': this.$attrs['aria-live'] || 'polite',\n title: this.$attrs.title,\n role: this.$attrs.role || 'status',\n })\n\n const badge = withDirectives(\n h('span', data, [this.genBadgeContent()]),\n [[vShow, this.isActive]]\n )\n\n if (!this.transition) return badge\n\n return h(Transition, {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n }, {\n default: () => [badge],\n })\n },\n genBadgeContent () {\n // Dot prop shows no content\n if (this.dot) return undefined\n\n const slot = getSlot(this, 'badge')\n\n if (slot) return slot\n if (this.content) return String(this.content)\n if (this.icon) return h(VIcon, { icon: this.icon })\n\n return undefined\n },\n genBadgeWrapper () {\n return h('span', {\n class: 'v-badge__wrapper',\n }, [this.genBadge()])\n },\n },\n\n render (): VNode {\n const badge = [this.genBadgeWrapper()]\n const children = [getSlot(this)]\n const {\n 'aria-atomic': _x,\n 'aria-label': _y,\n 'aria-live': _z,\n role,\n title,\n ...attrs\n } = this.$attrs\n\n if (this.inline && this.left) children.unshift(badge)\n else children.push(badge)\n\n return h('span', mergeData({\n class: ['v-badge', this.classes],\n }, attrs), children)\n },\n})\n"],"sourceRoot":"","file":"VBadge.js"}
@@ -15,8 +15,6 @@ var _groupable = require("../../mixins/groupable");
15
15
 
16
16
  var _toggleable = require("../../mixins/toggleable");
17
17
 
18
- var _elevatable = _interopRequireDefault(require("../../mixins/elevatable"));
19
-
20
18
  var _positionable = _interopRequireDefault(require("../../mixins/positionable"));
21
19
 
22
20
  var _routable = _interopRequireDefault(require("../../mixins/routable"));
@@ -29,8 +27,6 @@ var _console = require("../../util/console");
29
27
 
30
28
  var _helpers = require("../../util/helpers");
31
29
 
32
- var _mergeData = _interopRequireDefault(require("../../util/mergeData"));
33
-
34
30
  var _vue = require("vue");
35
31
 
36
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -61,7 +57,6 @@ var baseMixins = (0, _mixins.default)(_VSheet.default, _routable.default, _posit
61
57
 
62
58
  var _default = baseMixins.extend({
63
59
  name: 'v-btn',
64
- inheritAttrs: false,
65
60
  props: {
66
61
  activeClass: {
67
62
  type: String
@@ -121,7 +116,7 @@ var _default = baseMixins.extend({
121
116
  },
122
117
  computedElevation: function computedElevation() {
123
118
  if (this.disabled) return undefined;
124
- return _elevatable.default.computed.computedElevation.call(this);
119
+ return this.elevation;
125
120
  },
126
121
  computedRipple: function computedRipple() {
127
122
  var _a;
@@ -189,20 +184,25 @@ var _default = baseMixins.extend({
189
184
  linkData = _this$generateRouteLi.data,
190
185
  directives = _this$generateRouteLi.directives;
191
186
 
192
- var setColor = this.hasBg ? this.setBackgroundColor : this.setTextColor;
193
- var data = {};
187
+ var setColor = this.hasBg ? this.setBackgroundColor : this.setTextColor; // Merge component classes with routable classes
188
+
189
+ var mergedClasses = _objectSpread(_objectSpread({}, this.classes), linkData.class);
194
190
 
195
191
  if (tag === 'button') {
196
- data.type = this.type;
197
- data.disabled = this.disabled;
192
+ linkData.type = this.type;
193
+ linkData.disabled = this.disabled;
198
194
  }
199
195
 
200
- data.value = ['string', 'number'].includes(_typeof(this.value)) ? this.value : JSON.stringify(this.value);
201
- data = _objectSpread(_objectSpread({}, data), linkData);
202
- data = (0, _mergeData.default)(data, {
203
- class: this.$attrs.class
204
- });
205
- return (0, _vue.withDirectives)((0, _vue.h)(tag, this.disabled ? data : setColor(this.color, data), children), directives);
196
+ linkData.value = ['string', 'number'].includes(_typeof(this.value)) ? this.value : JSON.stringify(this.value);
197
+
198
+ var data = _objectSpread(_objectSpread({}, linkData), {}, {
199
+ class: mergedClasses,
200
+ style: this.styles
201
+ }); // Apply color styling but preserve Vue's automatic attribute inheritance
202
+
203
+
204
+ var finalData = this.disabled ? data : setColor(this.color, data);
205
+ return (0, _vue.withDirectives)((0, _vue.h)(tag, finalData, children), directives);
206
206
  }
207
207
  });
208
208
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VBtn/VBtn.ts"],"names":[],"mappings":";;;;;;;AACA;;AAGA;;AAGA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AACA;;AAGA;;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAM,UAAU,GAAG,qBACjB,eADiB,EAEjB,iBAFiB,EAGjB,qBAHiB,EAIjB,iBAJiB,EAKjB,wBAAiB,WAAjB,CALiB,EAMjB,yBAAkB,YAAlB;AACA;AAPiB,CAAnB;;eAae,UAAU,CAAC,MAAX,CAAkB;AAC/B,EAAA,IAAI,EAAE,OADyB;AAE/B,EAAA,YAAY,EAAE,KAFiB;AAG/B,EAAA,KAAK,EAAE;AACL,IAAA,WAAW,EAAE;AACX,MAAA,IAAI,EAAE;AADK,KADR;AAIL,IAAA,KAAK,EAAE,OAJF;AAKL,IAAA,SAAS,EAAE,OALN;AAML,IAAA,GAAG,EAAE,OANA;AAOL,IAAA,IAAI,EAAE,OAPD;AAQL,IAAA,OAAO,EAAE,OARJ;AASL,IAAA,QAAQ,EAAE,OATL;AAUL,IAAA,KAAK,EAAE,OAVF;AAWL,IAAA,kBAAkB,EAAE,OAXf;AAYL,IAAA,OAAO,EAAE,OAZJ;AAaL,IAAA,GAAG,EAAE;AACH,MAAA,IAAI,EAAE,MADH;AAEH,MAAA,OAAO,EAAE;AAFN,KAbA;AAiBL,IAAA,IAAI,EAAE,OAjBD;AAkBL,IAAA,IAAI,EAAE,OAlBD;AAmBL,IAAA,IAAI,EAAE;AACJ,MAAA,IAAI,EAAE,MADF;AAEJ,MAAA,OAAO,EAAE;AAFL,KAnBD;AAuBL,IAAA,KAAK,EAAE;AAvBF,GAHwB;AA6B/B,EAAA,IAAI,EAAE;AAAA,WAAO;AACX,MAAA,UAAU,EAAE;AADD,KAAP;AAAA,GA7ByB;AAiC/B,EAAA,QAAQ,EAAE;AACR,IAAA,OADQ,qBACD;AACL;AACE,iBAAS;AADX,SAEK,kBAAS,QAAT,CAAkB,OAAlB,CAA0B,IAA1B,CAA+B,IAA/B,CAFL;AAGE,2BAAmB,KAAK,QAH1B;AAIE,wBAAgB,KAAK,KAJvB;AAKE,yBAAiB,KAAK,MALxB;AAME,2BAAmB,KAAK,QAN1B;AAOE,8BAAsB,KAAK,UAP7B;AAQE,sBAAc,KAAK,GARrB;AASE,wBAAgB,KAAK,KATvB;AAUE,yBAAiB,KAAK,KAVxB;AAWE,uBAAe,KAAK,IAXtB;AAYE,uBAAe,KAAK,IAZtB;AAaE,0BAAkB,KAAK,OAbzB;AAcE,2BAAmB,KAAK,QAd1B;AAeE,wBAAgB,KAAK,KAfvB;AAgBE,wBAAgB,KAAK,KAhBvB;AAiBE,wBAAgB,KAAK,OAjBvB;AAkBE,0BAAkB,KAAK,OAlBzB;AAmBE,yBAAiB,KAAK,EAnBxB;AAoBE,uBAAe,KAAK,IApBtB;AAqBE,uBAAe,KAAK,IArBtB;AAsBE,sBAAc,KAAK;AAtBrB,SAuBK,KAAK,YAvBV,GAwBK,KAAK,YAxBV,GAyBK,KAAK,gBAzBV,GA0BK,KAAK,eA1BV;AA4BD,KA9BO;AA+BR,IAAA,iBA/BQ,+BA+BS;AACf,UAAI,KAAK,QAAT,EAAmB,OAAO,SAAP;AAEnB,aAAO,oBAAW,QAAX,CAAoB,iBAApB,CAAsC,IAAtC,CAA2C,IAA3C,CAAP;AACD,KAnCO;AAoCR,IAAA,cApCQ,4BAoCM;;;AACZ,UAAM,aAAa,GAAG,KAAK,IAAL,IAAa,KAAK,GAAlB,GAAwB;AAAE,QAAA,MAAM,EAAE;AAAV,OAAxB,GAA2C,IAAjE;AACA,UAAI,KAAK,QAAT,EAAmB,OAAO,KAAP,CAAnB,KACK,OAAO,CAAA,EAAA,GAAA,KAAK,MAAL,MAAW,IAAX,IAAW,EAAA,KAAA,KAAA,CAAX,GAAW,EAAX,GAAe,aAAtB;AACN,KAxCO;AAyCR,IAAA,KAzCQ,mBAyCH;AACH,aAAO,CAAC,KAAK,IAAN,IAAc,CAAC,KAAK,KAApB,IAA6B,CAAC,KAAK,QAAnC,IAA+C,CAAC,KAAK,IAA5D;AACD,KA3CO;AA4CR,IAAA,UA5CQ,wBA4CE;AACR,aAAO,OAAO,CACZ,CAAC,KAAK,IAAN,IACA,CAAC,KAAK,IADN,IAEA,CAAC,KAAK,QAFN,IAGA,CAAC,KAAK,SAHN,IAIA,CAAC,KAAK,QAJN,IAKA,CAAC,KAAK,KALN,KAMC,KAAK,SAAL,IAAkB,IAAlB,IAA0B,MAAM,CAAC,KAAK,SAAN,CAAN,GAAyB,CANpD,CADY,CAAd;AASD,KAtDO;AAuDR,IAAA,OAvDQ,qBAuDD;AACL,aAAO,OAAO,CACZ,KAAK,IAAL,IACA,KAAK,GAFO,CAAd;AAID,KA5DO;AA6DR,IAAA,MA7DQ,oBA6DF;AACJ,+BACK,KAAK,gBADV;AAGD;AAjEO,GAjCqB;AAqG/B,EAAA,OArG+B,qBAqGxB;AAAA;;AACL,QAAM,aAAa,GAAG,CACpB,CAAC,MAAD,EAAS,MAAT,CADoB,EAEpB,CAAC,SAAD,EAAY,UAAZ,CAFoB,EAGpB,CAAC,OAAD,EAAU,SAAV,CAHoB,CAAtB;AAMA;;AACA,IAAA,aAAa,CAAC,OAAd,CAAsB,gBAA4B;AAAA;AAAA,UAA1B,QAA0B;AAAA,UAAhB,WAAgB;;AAChD,UAAI,KAAI,CAAC,MAAL,CAAY,cAAZ,CAA2B,QAA3B,CAAJ,EAA0C,uBAAS,QAAT,EAAmB,WAAnB,EAAgC,KAAhC;AAC3C,KAFD;AAGD,GAhH8B;AAkH/B,EAAA,OAAO,EAAE;AACP,IAAA,KADO,iBACA,CADA,EACa;AAClB;AACA,OAAC,KAAK,kBAAN,IAA4B,CAAC,KAAK,GAAlC,IAAyC,CAAC,CAAC,MAA3C,IAAqD,KAAK,GAAL,CAAS,IAAT,EAArD;AACA,WAAK,KAAL,CAAW,OAAX,EAAoB,CAApB;AACA,WAAK,WAAL,CAAiB,OAAjB,EAA0B,CAA1B;AAGA,WAAK,SAAL,IAAkB,KAAK,MAAL,EAAlB;AACD,KATM;AAUP,IAAA,UAVO,wBAUG;AACR,aAAO,YAAE,MAAF,EAAU;AACf,QAAA,KAAK,EAAE;AADQ,OAAV,EAEJ,sBAAQ,IAAR,CAFI,CAAP;AAGD,KAdM;AAeP,IAAA,SAfO,uBAeE;AACP,aAAO,YAAE,MAAF,EAAU;AACf,QAAA,KAAK,EAAE;AADQ,OAAV,EAEJ,sBAAQ,IAAR,EAAc,QAAd,KAA2B,CAAC,YAAE,0BAAF,EAAqB;AAClD,QAAA,aAAa,EAAE,IADmC;AAElD,QAAA,IAAI,EAAE,EAF4C;AAGlD,QAAA,KAAK,EAAE;AAH2C,OAArB,CAAD,CAFvB,CAAP;AAOD;AAvBM,GAlHsB;AA4I/B,EAAA,MA5I+B,oBA4IzB;AACJ,QAAM,QAAQ,GAAG,CACf,KAAK,UAAL,EADe,EAEf,KAAK,OAAL,IAAgB,KAAK,SAAL,EAFD,CAAjB;;AADI,gCAKwC,KAAK,iBAAL,EALxC;AAAA,QAKI,GALJ,yBAKI,GALJ;AAAA,QAKe,QALf,yBAKS,IALT;AAAA,QAKyB,UALzB,yBAKyB,UALzB;;AAMJ,QAAM,QAAQ,GAAG,KAAK,KAAL,GACb,KAAK,kBADQ,GAEb,KAAK,YAFT;AAIA,QAAI,IAAI,GAAG,EAAX;;AAEA,QAAI,GAAG,KAAK,QAAZ,EAAsB;AACpB,MAAA,IAAI,CAAC,IAAL,GAAY,KAAK,IAAjB;AACA,MAAA,IAAI,CAAC,QAAL,GAAgB,KAAK,QAArB;AACD;;AACD,IAAA,IAAI,CAAC,KAAL,GAAa,CAAC,QAAD,EAAW,QAAX,EAAqB,QAArB,SAAqC,KAAK,KAA1C,KACT,KAAK,KADI,GAET,IAAI,CAAC,SAAL,CAAe,KAAK,KAApB,CAFJ;AAIA,IAAA,IAAI,mCACC,IADD,GAEC,QAFD,CAAJ;AAKA,IAAA,IAAI,GAAG,wBAAU,IAAV,EAAgB;AAAE,MAAA,KAAK,EAAE,KAAK,MAAL,CAAY;AAArB,KAAhB,CAAP;AAEA,WAAO,yBACL,YAAE,GAAF,EAAO,KAAK,QAAL,GAAgB,IAAhB,GAAuB,QAAQ,CAAC,KAAK,KAAN,EAAa,IAAb,CAAtC,EAA0D,QAA1D,CADK,EAEL,UAFK,CAAP;AAID;AA3K8B,CAAlB,C","sourcesContent":["// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, withDirectives } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\nimport {h} from 'vue'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue<typeof baseMixins> {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend({\n name: 'v-btn',\n inheritAttrs: false,\n props: {\n activeClass: {\n type: String,\n } as any as PropValidator<string>,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType<any>,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n this.$emitLegacy('click', e)\n\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return h('span', {\n class: 'v-btn__content',\n }, getSlot(this))\n },\n genLoader (): VNode {\n return h('span', {\n class: 'v-btn__loader',\n }, getSlot(this, 'loader') || [h(VProgressCircular, {\n indeterminate: true,\n size: 23,\n width: 2\n })])\n },\n },\n\n render (): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data: linkData, directives } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n let data = {}\n\n if (tag === 'button') {\n data.type = this.type\n data.disabled = this.disabled\n }\n data.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n data = {\n ...data,\n ...linkData\n }\n\n data = mergeData(data, { class: this.$attrs.class })\n\n return withDirectives(\n h(tag, this.disabled ? data : setColor(this.color, data), children),\n directives\n )\n },\n})\n"],"sourceRoot":"","file":"VBtn.js"}
1
+ {"version":3,"sources":["../../../src/components/VBtn/VBtn.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode, withDirectives, h } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue<typeof baseMixins> {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend({\n name: 'v-btn',\n props: {\n activeClass: {\n type: String,\n } as any as PropValidator<string>,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType<any>,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return this.elevation\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n this.$emitLegacy('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return h('span', {\n class: 'v-btn__content',\n }, getSlot(this))\n },\n genLoader (): VNode {\n return h('span', {\n class: 'v-btn__loader',\n }, getSlot(this, 'loader') || [h(VProgressCircular, {\n indeterminate: true,\n size: 23,\n width: 2,\n })])\n },\n },\n\n render (): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data: linkData, directives } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n // Merge component classes with routable classes\n const mergedClasses = {\n ...this.classes,\n ...linkData.class,\n }\n\n if (tag === 'button') {\n linkData.type = this.type\n linkData.disabled = this.disabled\n }\n linkData.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n const data = {\n ...linkData,\n class: mergedClasses,\n style: this.styles,\n }\n\n // Apply color styling but preserve Vue's automatic attribute inheritance\n const finalData = this.disabled ? data : setColor(this.color, data)\n\n return withDirectives(\n h(tag, finalData, children),\n directives\n )\n },\n})\n"],"sourceRoot":"","file":"VBtn.js"}
@@ -23,8 +23,6 @@ var _VColorPickerSwatches = _interopRequireDefault(require("./VColorPickerSwatch
23
23
 
24
24
  var _util = require("./util");
25
25
 
26
- var _mixins = _interopRequireDefault(require("../../util/mixins"));
27
-
28
26
  var _helpers = require("../../util/helpers");
29
27
 
30
28
  var _elevatable = _interopRequireDefault(require("../../mixins/elevatable"));
@@ -43,8 +41,9 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
43
41
 
44
42
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
45
43
 
46
- var _default = (0, _mixins.default)(_elevatable.default, _themeable.default).extend({
44
+ var _default = (0, _vue.defineComponent)({
47
45
  name: 'v-color-picker',
46
+ mixins: [_elevatable.default, _themeable.default],
48
47
  props: {
49
48
  canvasHeight: {
50
49
  type: [String, Number],
@@ -81,6 +80,7 @@ var _default = (0, _mixins.default)(_elevatable.default, _themeable.default).ext
81
80
  default: 300
82
81
  }
83
82
  },
83
+ emits: ['update:modelValue', 'update:color', 'update:mode'],
84
84
  data: function data() {
85
85
  return {
86
86
  internalValue: (0, _util.fromRGBA)({
@@ -98,7 +98,7 @@ var _default = (0, _mixins.default)(_elevatable.default, _themeable.default).ext
98
98
  }
99
99
  },
100
100
  watch: {
101
- value: {
101
+ modelValue: {
102
102
  handler: function handler(color) {
103
103
  this.updateColor((0, _util.parseColor)(color, this.internalValue));
104
104
  },
@@ -147,42 +147,29 @@ var _default = (0, _mixins.default)(_elevatable.default, _themeable.default).ext
147
147
  },
148
148
  genPreview: function genPreview() {
149
149
  return (0, _vue.h)(_VColorPickerPreview.default, {
150
- props: {
151
- color: this.internalValue,
152
- disabled: this.disabled,
153
- hideAlpha: this.hideAlpha
154
- },
155
- on: {
156
- 'update:color': this.updateColor
157
- }
150
+ color: this.internalValue,
151
+ disabled: this.disabled,
152
+ hideAlpha: this.hideAlpha,
153
+ 'onUpdate:color': this.updateColor
158
154
  });
159
155
  },
160
156
  genSwatches: function genSwatches() {
161
157
  return (0, _vue.h)(_VColorPickerSwatches.default, {
162
- props: {
163
- dark: this.dark,
164
- light: this.light,
165
- disabled: this.disabled,
166
- swatches: this.swatches,
167
- color: this.internalValue,
168
- maxHeight: this.swatchesMaxHeight
169
- },
170
- on: {
171
- 'update:color': this.updateColor
172
- }
158
+ disabled: this.disabled,
159
+ swatches: this.swatches,
160
+ color: this.internalValue,
161
+ maxHeight: this.swatchesMaxHeight,
162
+ 'onUpdate:color': this.updateColor
173
163
  });
174
164
  }
175
165
  },
176
166
  render: function render() {
177
- var _h;
178
-
179
- return (0, _vue.h)(_VSheet.default, (_h = {
180
- class: 'v-color-picker'
181
- }, _defineProperty(_h, "class", _objectSpread(_objectSpread({
182
- 'v-color-picker--flat': this.flat
183
- }, this.themeClasses), this.elevationClasses)), _defineProperty(_h, "props", {
167
+ return (0, _vue.h)(_VSheet.default, {
168
+ class: ['v-color-picker', _objectSpread(_objectSpread({
169
+ 'v-color-picker--flat': this.flat
170
+ }, this.themeClasses), this.elevationClasses)],
184
171
  maxWidth: this.width
185
- }), _h), [!this.hideCanvas && this.genCanvas(), (!this.hideSliders || !this.hideInputs) && this.genControls(), this.showSwatches && this.genSwatches()]);
172
+ }, [!this.hideCanvas && this.genCanvas(), (!this.hideSliders || !this.hideInputs) && this.genControls(), this.showSwatches && this.genSwatches()]);
186
173
  }
187
174
  });
188
175
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VColorPicker/VColorPicker.ts"],"names":[],"mappings":"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","sourcesContent":["import {h} from 'vue'\n// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\nimport VColorPickerPreview from './VColorPickerPreview'\nimport VColorPickerCanvas from './VColorPickerCanvas'\nimport VColorPickerEdit, { Mode, modes } from './VColorPickerEdit'\nimport VColorPickerSwatches from './VColorPickerSwatches'\n\n// Helpers\nimport { VColorPickerColor, parseColor, fromRGBA, extractColor, hasAlpha } from './util'\nimport mixins from '../../util/mixins'\nimport { deepEqual } from '../../util/helpers'\n\n// Mixins\nimport Elevatable from '../../mixins/elevatable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\nexport default mixins(Elevatable, Themeable).extend({\n name: 'v-color-picker',\n\n props: {\n canvasHeight: {\n type: [String, Number],\n default: 150,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n flat: Boolean,\n hideCanvas: Boolean,\n hideSliders: Boolean,\n hideInputs: Boolean,\n hideModeSwitch: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n showSwatches: Boolean,\n swatches: Array as PropType<string[][]>,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150,\n },\n modelValue: {\n type: [Object, String],\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n },\n\n data: () => ({\n internalValue: fromRGBA({ r: 255, g: 0, b: 0, a: 1 }),\n }),\n\n computed: {\n hideAlpha (): boolean {\n if (!this.modelValue) return false\n\n return !hasAlpha(this.modelValue)\n },\n },\n\n watch: {\n value: {\n handler (color: any) {\n this.updateColor(parseColor(color, this.internalValue))\n },\n immediate: true,\n },\n },\n\n methods: {\n updateColor (color: VColorPickerColor) {\n this.internalValue = color\n const value = extractColor(this.internalValue, this.modelValue)\n\n if (!deepEqual(value, this.modelValue)) {\n this.$emit('update:modelValue', value)\n this.$emit('update:color', this.internalValue)\n }\n },\n genCanvas (): VNode {\n return h(VColorPickerCanvas, {\n color: this.internalValue,\n disabled: this.disabled,\n dotSize: this.dotSize,\n width: this.width,\n height: this.canvasHeight,\n 'onUpdate:color': this.updateColor\n })\n },\n genControls (): VNode {\n return h('div', {\n class: 'v-color-picker__controls',\n }, [\n !this.hideSliders && this.genPreview(),\n !this.hideInputs && this.genEdit(),\n ])\n },\n genEdit (): VNode {\n return h(VColorPickerEdit, {\n color: this.internalValue,\n disabled: this.disabled,\n hideAlpha: this.hideAlpha,\n hideModeSwitch: this.hideModeSwitch,\n mode: this.mode,\n 'onUpdate:color': this.updateColor,\n 'onUpdate:mode': (v: Mode) => this.$emit('update:mode', v),\n })\n },\n genPreview (): VNode {\n return h(VColorPickerPreview, {\n props: {\n color: this.internalValue,\n disabled: this.disabled,\n hideAlpha: this.hideAlpha,\n },\n on: {\n 'update:color': this.updateColor,\n },\n })\n },\n genSwatches (): VNode {\n return h(VColorPickerSwatches, {\n props: {\n dark: this.dark,\n light: this.light,\n disabled: this.disabled,\n swatches: this.swatches,\n color: this.internalValue,\n maxHeight: this.swatchesMaxHeight,\n },\n on: {\n 'update:color': this.updateColor,\n },\n })\n },\n },\n\n render (): VNode {\n return h(VSheet, {\n class: 'v-color-picker',\n class: {\n 'v-color-picker--flat': this.flat,\n ...this.themeClasses,\n ...this.elevationClasses,\n },\n props: {\n maxWidth: this.width,\n },\n }, [\n !this.hideCanvas && this.genCanvas(),\n (!this.hideSliders || !this.hideInputs) && this.genControls(),\n this.showSwatches && this.genSwatches(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VColorPicker.js"}
1
+ {"version":3,"sources":["../../../src/components/VColorPicker/VColorPicker.ts"],"names":[],"mappings":"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","sourcesContent":["import { h, defineComponent } from 'vue'\n\n// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\nimport VColorPickerPreview from './VColorPickerPreview'\nimport VColorPickerCanvas from './VColorPickerCanvas'\nimport VColorPickerEdit, { Mode, modes } from './VColorPickerEdit'\nimport VColorPickerSwatches from './VColorPickerSwatches'\n\n// Helpers\nimport { VColorPickerColor, parseColor, fromRGBA, extractColor, hasAlpha } from './util'\nimport { deepEqual } from '../../util/helpers'\n\n// Mixins\nimport Elevatable from '../../mixins/elevatable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport type { VNode, PropType } from 'vue'\n\nexport default defineComponent({\n name: 'v-color-picker',\n\n mixins: [Elevatable, Themeable],\n\n props: {\n canvasHeight: {\n type: [String, Number],\n default: 150,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n flat: Boolean,\n hideCanvas: Boolean,\n hideSliders: Boolean,\n hideInputs: Boolean,\n hideModeSwitch: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n showSwatches: Boolean,\n swatches: Array as PropType<string[][]>,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150,\n },\n modelValue: {\n type: [Object, String],\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n },\n\n emits: ['update:modelValue', 'update:color', 'update:mode'],\n\n data () {\n return {\n internalValue: fromRGBA({ r: 255, g: 0, b: 0, a: 1 }),\n }\n },\n\n computed: {\n hideAlpha (): boolean {\n if (!this.modelValue) return false\n return !hasAlpha(this.modelValue)\n },\n },\n\n watch: {\n modelValue: {\n handler (color: any) {\n this.updateColor(parseColor(color, this.internalValue))\n },\n immediate: true,\n },\n },\n\n methods: {\n updateColor (color: VColorPickerColor) {\n this.internalValue = color\n const value = extractColor(this.internalValue, this.modelValue)\n\n if (!deepEqual(value, this.modelValue)) {\n this.$emit('update:modelValue', value)\n this.$emit('update:color', this.internalValue)\n }\n },\n\n genCanvas (): VNode {\n return h(VColorPickerCanvas, {\n color: this.internalValue,\n disabled: this.disabled,\n dotSize: this.dotSize,\n width: this.width,\n height: this.canvasHeight,\n 'onUpdate:color': this.updateColor\n })\n },\n\n genControls (): VNode {\n return h('div', {\n class: 'v-color-picker__controls',\n }, [\n !this.hideSliders && this.genPreview(),\n !this.hideInputs && this.genEdit(),\n ])\n },\n\n genEdit (): VNode {\n return h(VColorPickerEdit, {\n color: this.internalValue,\n disabled: this.disabled,\n hideAlpha: this.hideAlpha,\n hideModeSwitch: this.hideModeSwitch,\n mode: this.mode,\n 'onUpdate:color': this.updateColor,\n 'onUpdate:mode': (v: string) => this.$emit('update:mode', v),\n })\n },\n\n genPreview (): VNode {\n return h(VColorPickerPreview, {\n color: this.internalValue,\n disabled: this.disabled,\n hideAlpha: this.hideAlpha,\n 'onUpdate:color': this.updateColor,\n })\n },\n\n genSwatches (): VNode {\n return h(VColorPickerSwatches, {\n disabled: this.disabled,\n swatches: this.swatches,\n color: this.internalValue,\n maxHeight: this.swatchesMaxHeight,\n 'onUpdate:color': this.updateColor,\n })\n },\n },\n\n render (): VNode {\n return h(VSheet, {\n class: ['v-color-picker', {\n 'v-color-picker--flat': this.flat,\n ...this.themeClasses,\n ...this.elevationClasses,\n }],\n maxWidth: this.width,\n }, [\n !this.hideCanvas && this.genCanvas(),\n (!this.hideSliders || !this.hideInputs) && this.genControls(),\n this.showSwatches && this.genSwatches(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VColorPicker.js"}
@@ -13,8 +13,8 @@ var _helpers = require("../../util/helpers");
13
13
 
14
14
  var _util = require("./util");
15
15
 
16
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
-
16
+ // Styles
17
+ // Helpers
18
18
  var _default2 = (0, _vue.defineComponent)({
19
19
  name: 'v-color-picker-canvas',
20
20
  props: {
@@ -43,6 +43,7 @@ var _default2 = (0, _vue.defineComponent)({
43
43
  default: 300
44
44
  }
45
45
  },
46
+ emits: ['update:color'],
46
47
  data: function data() {
47
48
  return {
48
49
  boundingRect: {
@@ -60,34 +61,24 @@ var _default2 = (0, _vue.defineComponent)({
60
61
  y: 0
61
62
  };
62
63
  return {
63
- x: this.color.hsva.s * parseInt(this.width, 10),
64
- y: (1 - this.color.hsva.v) * parseInt(this.height, 10)
64
+ x: this.color.hsva.s * parseInt(String(this.width), 10),
65
+ y: (1 - this.color.hsva.v) * parseInt(String(this.height), 10)
65
66
  };
66
67
  }
67
68
  },
68
69
  watch: {
69
- 'color.hue': 'updateCanvas'
70
+ 'color.hue': function colorHue() {
71
+ this.updateCanvas();
72
+ }
70
73
  },
71
74
  mounted: function mounted() {
72
75
  this.updateCanvas();
73
76
  },
74
77
  methods: {
75
- emitColor: function emitColor(x, y) {
76
- var _this$boundingRect = this.boundingRect,
77
- left = _this$boundingRect.left,
78
- top = _this$boundingRect.top,
79
- width = _this$boundingRect.width,
80
- height = _this$boundingRect.height;
81
- this.$emit('update:color', (0, _util.fromHSVA)({
82
- h: this.color.hue,
83
- s: (0, _helpers.clamp)(x - left, 0, width) / width,
84
- v: 1 - (0, _helpers.clamp)(y - top, 0, height) / height,
85
- a: this.color.alpha
86
- }));
87
- },
88
78
  updateCanvas: function updateCanvas() {
89
79
  if (!this.color) return;
90
80
  var canvas = this.$refs.canvas;
81
+ if (!canvas) return;
91
82
  var ctx = canvas.getContext('2d');
92
83
  if (!ctx) return;
93
84
  var saturationGradient = ctx.createLinearGradient(0, 0, canvas.width, 0);
@@ -104,19 +95,24 @@ var _default2 = (0, _vue.defineComponent)({
104
95
  ctx.fillStyle = valueGradient;
105
96
  ctx.fillRect(0, 0, canvas.width, canvas.height);
106
97
  },
98
+ emitColor: function emitColor(x, y) {
99
+ var _this$boundingRect = this.boundingRect,
100
+ left = _this$boundingRect.left,
101
+ top = _this$boundingRect.top,
102
+ width = _this$boundingRect.width,
103
+ height = _this$boundingRect.height;
104
+ this.$emit('update:color', (0, _util.fromHSVA)({
105
+ h: this.color.hue,
106
+ s: (0, _helpers.clamp)(x - left, 0, width) / width,
107
+ v: 1 - (0, _helpers.clamp)(y - top, 0, height) / height,
108
+ a: this.color.alpha
109
+ }));
110
+ },
107
111
  handleClick: function handleClick(e) {
108
112
  if (this.disabled) return;
109
113
  this.boundingRect = this.$el.getBoundingClientRect();
110
114
  this.emitColor(e.clientX, e.clientY);
111
115
  },
112
- handleMouseDown: function handleMouseDown(e) {
113
- // To prevent selection while moving cursor
114
- e.preventDefault();
115
- if (this.disabled) return;
116
- this.boundingRect = this.$el.getBoundingClientRect();
117
- window.addEventListener('mousemove', this.handleMouseMove);
118
- window.addEventListener('mouseup', this.handleMouseUp);
119
- },
120
116
  handleMouseMove: function handleMouseMove(e) {
121
117
  if (this.disabled) return;
122
118
  this.emitColor(e.clientX, e.clientY);
@@ -125,30 +121,35 @@ var _default2 = (0, _vue.defineComponent)({
125
121
  window.removeEventListener('mousemove', this.handleMouseMove);
126
122
  window.removeEventListener('mouseup', this.handleMouseUp);
127
123
  },
124
+ handleMouseDown: function handleMouseDown(e) {
125
+ // To prevent selection while moving cursor
126
+ e.preventDefault();
127
+ if (this.disabled) return;
128
+ this.boundingRect = this.$el.getBoundingClientRect();
129
+ window.addEventListener('mousemove', this.handleMouseMove);
130
+ window.addEventListener('mouseup', this.handleMouseUp);
131
+ },
128
132
  genCanvas: function genCanvas() {
129
133
  return (0, _vue.h)('canvas', {
130
134
  ref: 'canvas',
131
- attrs: {
132
- width: this.width,
133
- height: this.height
134
- }
135
+ width: this.width,
136
+ height: this.height
135
137
  });
136
138
  },
137
139
  genDot: function genDot() {
138
- var _h;
139
-
140
- var radius = parseInt(this.dotSize, 10) / 2;
140
+ var radius = parseInt(String(this.dotSize), 10) / 2;
141
141
  var x = (0, _helpers.convertToUnit)(this.dot.x - radius);
142
142
  var y = (0, _helpers.convertToUnit)(this.dot.y - radius);
143
- return (0, _vue.h)('div', (_h = {
144
- class: 'v-color-picker__canvas-dot'
145
- }, _defineProperty(_h, "class", {
146
- 'v-color-picker__canvas-dot--disabled': this.disabled
147
- }), _defineProperty(_h, "style", {
148
- width: (0, _helpers.convertToUnit)(this.dotSize),
149
- height: (0, _helpers.convertToUnit)(this.dotSize),
150
- transform: "translate(".concat(x, ", ").concat(y, ")")
151
- }), _h));
143
+ return (0, _vue.h)('div', {
144
+ class: ['v-color-picker__canvas-dot', {
145
+ 'v-color-picker__canvas-dot--disabled': this.disabled
146
+ }],
147
+ style: {
148
+ width: (0, _helpers.convertToUnit)(this.dotSize),
149
+ height: (0, _helpers.convertToUnit)(this.dotSize),
150
+ transform: "translate(".concat(x, ", ").concat(y, ")")
151
+ }
152
+ });
152
153
  }
153
154
  },
154
155
  render: function render() {
@@ -158,10 +159,8 @@ var _default2 = (0, _vue.defineComponent)({
158
159
  width: (0, _helpers.convertToUnit)(this.width),
159
160
  height: (0, _helpers.convertToUnit)(this.height)
160
161
  },
161
- on: {
162
- click: this.handleClick,
163
- mousedown: this.handleMouseDown
164
- }
162
+ onClick: this.handleClick,
163
+ onMousedown: this.handleMouseDown
165
164
  }, [this.genCanvas(), this.genDot()]);
166
165
  }
167
166
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VColorPicker/VColorPickerCanvas.ts"],"names":[],"mappings":"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","sourcesContent":["import {h} from 'vue'\n// Styles\nimport './VColorPickerCanvas.sass'\n\n// Helpers\nimport { clamp, convertToUnit } from '../../util/helpers'\nimport { fromHSVA, VColorPickerColor, fromRGBA } from './util'\n\n// Types\nimport { defineComponent, VNode, PropType } from 'vue'\n\nexport default defineComponent({\n name: 'v-color-picker-canvas',\n\n props: {\n color: {\n type: Object as PropType<VColorPickerColor>,\n default: () => fromRGBA({ r: 255, g: 0, b: 0, a: 1 }),\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n height: {\n type: [Number, String],\n default: 150,\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n },\n\n data () {\n return {\n boundingRect: {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n } as ClientRect,\n }\n },\n\n computed: {\n dot (): { x: number, y: number} {\n if (!this.color) return { x: 0, y: 0 }\n\n return {\n x: this.color.hsva.s * parseInt(this.width, 10),\n y: (1 - this.color.hsva.v) * parseInt(this.height, 10),\n }\n },\n },\n\n watch: {\n 'color.hue': 'updateCanvas',\n },\n\n mounted () {\n this.updateCanvas()\n },\n\n methods: {\n emitColor (x: number, y: number) {\n const { left, top, width, height } = this.boundingRect\n\n this.$emit('update:color', fromHSVA({\n h: this.color.hue,\n s: clamp(x - left, 0, width) / width,\n v: 1 - clamp(y - top, 0, height) / height,\n a: this.color.alpha,\n }))\n },\n updateCanvas () {\n if (!this.color) return\n\n const canvas = this.$refs.canvas as HTMLCanvasElement\n const ctx = canvas.getContext('2d')\n\n if (!ctx) return\n\n const saturationGradient = ctx.createLinearGradient(0, 0, canvas.width, 0)\n saturationGradient.addColorStop(0, 'hsla(0, 0%, 100%, 1)') // white\n saturationGradient.addColorStop(1, `hsla(${this.color.hue}, 100%, 50%, 1)`)\n ctx.fillStyle = saturationGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n\n const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height)\n valueGradient.addColorStop(0, 'hsla(0, 0%, 100%, 0)') // transparent\n valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)') // black\n ctx.fillStyle = valueGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n },\n handleClick (e: MouseEvent) {\n if (this.disabled) return\n\n this.boundingRect = this.$el.getBoundingClientRect()\n this.emitColor(e.clientX, e.clientY)\n },\n handleMouseDown (e: MouseEvent) {\n // To prevent selection while moving cursor\n e.preventDefault()\n\n if (this.disabled) return\n\n this.boundingRect = this.$el.getBoundingClientRect()\n\n window.addEventListener('mousemove', this.handleMouseMove)\n window.addEventListener('mouseup', this.handleMouseUp)\n },\n handleMouseMove (e: MouseEvent) {\n if (this.disabled) return\n\n this.emitColor(e.clientX, e.clientY)\n },\n handleMouseUp () {\n window.removeEventListener('mousemove', this.handleMouseMove)\n window.removeEventListener('mouseup', this.handleMouseUp)\n },\n genCanvas (): VNode {\n return h('canvas', {\n ref: 'canvas',\n attrs: {\n width: this.width,\n height: this.height,\n },\n })\n },\n genDot (): VNode {\n const radius = parseInt(this.dotSize, 10) / 2\n const x = convertToUnit(this.dot.x - radius)\n const y = convertToUnit(this.dot.y - radius)\n\n return h('div', {\n class: 'v-color-picker__canvas-dot',\n class: {\n 'v-color-picker__canvas-dot--disabled': this.disabled,\n },\n style: {\n width: convertToUnit(this.dotSize),\n height: convertToUnit(this.dotSize),\n transform: `translate(${x}, ${y})`,\n },\n })\n },\n },\n\n render (): VNode {\n return h('div', {\n class: 'v-color-picker__canvas',\n style: {\n width: convertToUnit(this.width),\n height: convertToUnit(this.height),\n },\n on: {\n click: this.handleClick,\n mousedown: this.handleMouseDown,\n },\n }, [\n this.genCanvas(),\n this.genDot(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VColorPickerCanvas.js"}
1
+ {"version":3,"sources":["../../../src/components/VColorPicker/VColorPickerCanvas.ts"],"names":[],"mappings":"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","sourcesContent":["import { h, defineComponent } from 'vue'\n\n// Styles\nimport './VColorPickerCanvas.sass'\n\n// Helpers\nimport { clamp, convertToUnit } from '../../util/helpers'\nimport { fromHSVA, VColorPickerColor, fromRGBA } from './util'\n\n// Types\nimport type { VNode, PropType } from 'vue'\n\nexport default defineComponent({\n name: 'v-color-picker-canvas',\n\n props: {\n color: {\n type: Object as PropType<VColorPickerColor>,\n default: () => fromRGBA({ r: 255, g: 0, b: 0, a: 1 }),\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n height: {\n type: [Number, String],\n default: 150,\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n },\n\n emits: ['update:color'],\n\n data () {\n return {\n boundingRect: {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n } as ClientRect,\n }\n },\n\n computed: {\n dot () {\n if (!this.color) return { x: 0, y: 0 }\n\n return {\n x: this.color.hsva.s * parseInt(String(this.width), 10),\n y: (1 - this.color.hsva.v) * parseInt(String(this.height), 10),\n }\n },\n },\n\n watch: {\n 'color.hue' () {\n this.updateCanvas()\n },\n },\n\n mounted () {\n this.updateCanvas()\n },\n\n methods: {\n updateCanvas () {\n if (!this.color) return\n\n const canvas = this.$refs.canvas as HTMLCanvasElement\n if (!canvas) return\n\n const ctx = canvas.getContext('2d')\n if (!ctx) return\n\n const saturationGradient = ctx.createLinearGradient(0, 0, canvas.width, 0)\n saturationGradient.addColorStop(0, 'hsla(0, 0%, 100%, 1)') // white\n saturationGradient.addColorStop(1, `hsla(${this.color.hue}, 100%, 50%, 1)`)\n ctx.fillStyle = saturationGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n\n const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height)\n valueGradient.addColorStop(0, 'hsla(0, 0%, 100%, 0)') // transparent\n valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)') // black\n ctx.fillStyle = valueGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n },\n\n emitColor (x: number, y: number) {\n const { left, top, width, height } = this.boundingRect\n\n this.$emit('update:color', fromHSVA({\n h: this.color!.hue,\n s: clamp(x - left, 0, width) / width,\n v: 1 - clamp(y - top, 0, height) / height,\n a: this.color!.alpha,\n }))\n },\n\n handleClick (e: MouseEvent) {\n if (this.disabled) return\n\n this.boundingRect = this.$el.getBoundingClientRect()\n this.emitColor(e.clientX, e.clientY)\n },\n\n handleMouseMove (e: MouseEvent) {\n if (this.disabled) return\n this.emitColor(e.clientX, e.clientY)\n },\n\n handleMouseUp () {\n window.removeEventListener('mousemove', this.handleMouseMove)\n window.removeEventListener('mouseup', this.handleMouseUp)\n },\n\n handleMouseDown (e: MouseEvent) {\n // To prevent selection while moving cursor\n e.preventDefault()\n\n if (this.disabled) return\n\n this.boundingRect = this.$el.getBoundingClientRect()\n\n window.addEventListener('mousemove', this.handleMouseMove)\n window.addEventListener('mouseup', this.handleMouseUp)\n },\n\n genCanvas (): VNode {\n return h('canvas', {\n ref: 'canvas',\n width: this.width,\n height: this.height,\n })\n },\n\n genDot (): VNode {\n const radius = parseInt(String(this.dotSize), 10) / 2\n const x = convertToUnit(this.dot.x - radius)\n const y = convertToUnit(this.dot.y - radius)\n\n return h('div', {\n class: ['v-color-picker__canvas-dot', {\n 'v-color-picker__canvas-dot--disabled': this.disabled,\n }],\n style: {\n width: convertToUnit(this.dotSize),\n height: convertToUnit(this.dotSize),\n transform: `translate(${x}, ${y})`,\n },\n })\n },\n },\n\n render (): VNode {\n return h('div', {\n class: 'v-color-picker__canvas',\n style: {\n width: convertToUnit(this.width),\n height: convertToUnit(this.height),\n },\n onClick: this.handleClick,\n onMousedown: this.handleMouseDown,\n }, [\n this.genCanvas(),\n this.genDot(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VColorPickerCanvas.js"}