@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
@@ -1,13 +1,11 @@
1
- import { h } from 'vue'; // Styles
1
+ import { h, defineComponent } from 'vue'; // Styles
2
2
 
3
3
  import "../../../src/components/VColorPicker/VColorPickerEdit.sass"; // Components
4
4
 
5
5
  import VBtn from '../VBtn';
6
6
  import VIcon from '../VIcon'; // Helpers
7
7
 
8
- import { parseHex } from '../../util/colorUtils'; // Types
9
-
10
- import { defineComponent } from 'vue';
8
+ import { parseHex } from '../../util/colorUtils';
11
9
  import { fromRGBA, fromHexa, fromHSLA } from './util';
12
10
  export const modes = {
13
11
  rgba: {
@@ -25,7 +23,10 @@ export const modes = {
25
23
  export default defineComponent({
26
24
  name: 'v-color-picker-edit',
27
25
  props: {
28
- color: Object,
26
+ color: {
27
+ type: Object,
28
+ required: true
29
+ },
29
30
  disabled: Boolean,
30
31
  hideAlpha: Boolean,
31
32
  hideModeSwitch: Boolean,
@@ -35,17 +36,17 @@ export default defineComponent({
35
36
  validator: v => Object.keys(modes).includes(v)
36
37
  }
37
38
  },
39
+ emits: ['update:color', 'update:mode'],
38
40
 
39
41
  data() {
40
42
  return {
41
- modes,
42
43
  internalMode: this.mode
43
44
  };
44
45
  },
45
46
 
46
47
  computed: {
47
48
  currentMode() {
48
- return this.modes[this.internalMode];
49
+ return modes[this.internalMode];
49
50
  }
50
51
 
51
52
  },
@@ -55,11 +56,6 @@ export default defineComponent({
55
56
  }
56
57
 
57
58
  },
58
-
59
- created() {
60
- this.internalMode = this.mode;
61
- },
62
-
63
59
  methods: {
64
60
  getValue(v, type) {
65
61
  if (type === 'float') return Math.round(v * 100) / 100;else if (type === 'int') return Math.round(v);else return 0;
@@ -70,21 +66,21 @@ export default defineComponent({
70
66
  },
71
67
 
72
68
  changeMode() {
73
- const modes = Object.keys(this.modes);
74
- const index = modes.indexOf(this.internalMode);
75
- const newMode = modes[(index + 1) % modes.length];
69
+ const modeKeys = Object.keys(modes);
70
+ const index = modeKeys.indexOf(this.internalMode);
71
+ const newMode = modeKeys[(index + 1) % modeKeys.length];
76
72
  this.internalMode = newMode;
77
73
  this.$emit('update:mode', newMode);
78
74
  },
79
75
 
80
- genInput(target, attrs, value, on) {
76
+ genInput(target, attrs, value, onChange) {
81
77
  return h('div', {
82
78
  class: 'v-color-picker__input'
83
79
  }, [h('input', {
84
80
  key: target,
85
81
  ...attrs,
86
82
  value,
87
- ...on
83
+ onChange
88
84
  }), h('span', target.toUpperCase())]);
89
85
  },
90
86
 
@@ -95,11 +91,9 @@ export default defineComponent({
95
91
  return this.genInput('hex', {
96
92
  maxlength: this.hideAlpha ? 7 : 9,
97
93
  disabled: this.disabled
98
- }, value, {
99
- change: e => {
100
- const el = e.target;
101
- this.$emit('update:color', this.currentMode.from(parseHex(el.value)));
102
- }
94
+ }, value, e => {
95
+ const el = e.target;
96
+ this.$emit('update:color', this.currentMode.from(parseHex(el.value)));
103
97
  });
104
98
  } else {
105
99
  const inputs = this.hideAlpha ? this.currentMode.inputs.slice(0, -1) : this.currentMode.inputs;
@@ -111,14 +105,12 @@ export default defineComponent({
111
105
  max,
112
106
  step: type === 'float' ? '0.01' : type === 'int' ? '1' : undefined,
113
107
  disabled: this.disabled
114
- }, this.getValue(value[target], type), {
115
- input: e => {
116
- const el = e.target;
117
- const newVal = this.parseValue(el.value || '0', type);
118
- this.$emit('update:color', this.currentMode.from(Object.assign({}, value, {
119
- [target]: newVal
120
- }), this.color.alpha));
121
- }
108
+ }, this.getValue(value[target], type), e => {
109
+ const el = e.target;
110
+ const newVal = this.parseValue(el.value || '0', type);
111
+ this.$emit('update:color', this.currentMode.from(Object.assign({}, value, {
112
+ [target]: newVal
113
+ }), this.color.alpha));
122
114
  });
123
115
  });
124
116
  }
@@ -130,7 +122,9 @@ export default defineComponent({
130
122
  icon: true,
131
123
  disabled: this.disabled,
132
124
  onClick: this.changeMode
133
- }, [h(VIcon, '$unfold')]);
125
+ }, {
126
+ default: () => [h(VIcon, {}, '$unfold')]
127
+ });
134
128
  }
135
129
 
136
130
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VColorPicker/VColorPickerEdit.ts"],"names":[],"mappings":"AAAA,SAAQ,CAAR,QAAgB,KAAhB,C,CACA;;AACA,OAAO,4DAAP,C,CAEA;;AACA,OAAO,IAAP,MAAiB,SAAjB;AACA,OAAO,KAAP,MAAkB,UAAlB,C,CAEA;;AACA,SAAS,QAAT,QAAyB,uBAAzB,C,CAEA;;AACA,SAAS,eAAT,QAAiD,KAAjD;AACA,SAA4B,QAA5B,EAAsC,QAAtC,EAAgD,QAAhD,QAAgE,QAAhE;AASA,OAAO,MAAM,KAAK,GAAG;AACnB,EAAA,IAAI,EAAE;AACJ,IAAA,MAAM,EAAE,CACN,CAAC,GAAD,EAAM,GAAN,EAAW,KAAX,CADM,EAEN,CAAC,GAAD,EAAM,GAAN,EAAW,KAAX,CAFM,EAGN,CAAC,GAAD,EAAM,GAAN,EAAW,KAAX,CAHM,EAIN,CAAC,GAAD,EAAM,CAAN,EAAS,OAAT,CAJM,CADJ;AAOJ,IAAA,IAAI,EAAE;AAPF,GADa;AAUnB,EAAA,IAAI,EAAE;AACJ,IAAA,MAAM,EAAE,CACN,CAAC,GAAD,EAAM,GAAN,EAAW,KAAX,CADM,EAEN,CAAC,GAAD,EAAM,CAAN,EAAS,OAAT,CAFM,EAGN,CAAC,GAAD,EAAM,CAAN,EAAS,OAAT,CAHM,EAIN,CAAC,GAAD,EAAM,CAAN,EAAS,OAAT,CAJM,CADJ;AAOJ,IAAA,IAAI,EAAE;AAPF,GAVa;AAmBnB,EAAA,IAAI,EAAE;AACJ,IAAA,IAAI,EAAE;AADF;AAnBa,CAAd;AAwBP,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,qBADuB;AAG7B,EAAA,KAAK,EAAE;AACL,IAAA,KAAK,EAAE,MADF;AAEL,IAAA,QAAQ,EAAE,OAFL;AAGL,IAAA,SAAS,EAAE,OAHN;AAIL,IAAA,cAAc,EAAE,OAJX;AAKL,IAAA,IAAI,EAAE;AACJ,MAAA,IAAI,EAAE,MADF;AAEJ,MAAA,OAAO,EAAE,MAFL;AAGJ,MAAA,SAAS,EAAG,CAAD,IAAe,MAAM,CAAC,IAAP,CAAY,KAAZ,EAAmB,QAAnB,CAA4B,CAA5B;AAHtB;AALD,GAHsB;;AAe7B,EAAA,IAAI,GAAA;AACF,WAAO;AACL,MAAA,KADK;AAEL,MAAA,YAAY,EAAE,KAAK;AAFd,KAAP;AAID,GApB4B;;AAsB7B,EAAA,QAAQ,EAAE;AACR,IAAA,WAAW,GAAA;AACT,aAAO,KAAK,KAAL,CAAW,KAAK,YAAhB,CAAP;AACD;;AAHO,GAtBmB;AA4B7B,EAAA,KAAK,EAAE;AACL,IAAA,IAAI,CAAE,IAAF,EAAM;AACR,WAAK,YAAL,GAAoB,IAApB;AACD;;AAHI,GA5BsB;;AAkC7B,EAAA,OAAO,GAAA;AACL,SAAK,YAAL,GAAoB,KAAK,IAAzB;AACD,GApC4B;;AAsC7B,EAAA,OAAO,EAAE;AACP,IAAA,QAAQ,CAAE,CAAF,EAAU,IAAV,EAAsB;AAC5B,UAAI,IAAI,KAAK,OAAb,EAAsB,OAAO,IAAI,CAAC,KAAL,CAAW,CAAC,GAAG,GAAf,IAAsB,GAA7B,CAAtB,KACK,IAAI,IAAI,KAAK,KAAb,EAAoB,OAAO,IAAI,CAAC,KAAL,CAAW,CAAX,CAAP,CAApB,KACA,OAAO,CAAP;AACN,KALM;;AAMP,IAAA,UAAU,CAAE,CAAF,EAAa,IAAb,EAAyB;AACjC,UAAI,IAAI,KAAK,OAAb,EAAsB,OAAO,UAAU,CAAC,CAAD,CAAjB,CAAtB,KACK,IAAI,IAAI,KAAK,KAAb,EAAoB,OAAO,QAAQ,CAAC,CAAD,EAAI,EAAJ,CAAR,IAAmB,CAA1B,CAApB,KACA,OAAO,CAAP;AACN,KAVM;;AAWP,IAAA,UAAU,GAAA;AACR,YAAM,KAAK,GAAG,MAAM,CAAC,IAAP,CAAY,KAAK,KAAjB,CAAd;AACA,YAAM,KAAK,GAAG,KAAK,CAAC,OAAN,CAAc,KAAK,YAAnB,CAAd;AACA,YAAM,OAAO,GAAG,KAAK,CAAC,CAAC,KAAK,GAAG,CAAT,IAAc,KAAK,CAAC,MAArB,CAArB;AACA,WAAK,YAAL,GAAoB,OAApB;AACA,WAAK,KAAL,CAAW,aAAX,EAA0B,OAA1B;AACD,KAjBM;;AAkBP,IAAA,QAAQ,CAAE,MAAF,EAAkB,KAAlB,EAA8B,KAA9B,EAA0C,EAA1C,EAAiD;AACvD,aAAO,CAAC,CAAC,KAAD,EAAQ;AACd,QAAA,KAAK,EAAE;AADO,OAAR,EAEL,CACD,CAAC,CAAC,OAAD,EAAU;AACT,QAAA,GAAG,EAAE,MADI;AAET,WAAG,KAFM;AAGT,QAAA,KAHS;AAIT,WAAG;AAJM,OAAV,CADA,EAOD,CAAC,CAAC,MAAD,EAAS,MAAM,CAAC,WAAP,EAAT,CAPA,CAFK,CAAR;AAWD,KA9BM;;AA+BP,IAAA,SAAS,GAAA;AACP,UAAI,KAAK,YAAL,KAAsB,MAA1B,EAAkC;AAChC,cAAM,GAAG,GAAG,KAAK,KAAL,CAAW,IAAvB;AACA,cAAM,KAAK,GAAG,KAAK,SAAL,IAAkB,GAAG,CAAC,QAAJ,CAAa,IAAb,CAAlB,GAAuC,GAAG,CAAC,MAAJ,CAAW,CAAX,EAAc,CAAd,CAAvC,GAA0D,GAAxE;AACA,eAAO,KAAK,QAAL,CACL,KADK,EAEL;AACE,UAAA,SAAS,EAAE,KAAK,SAAL,GAAiB,CAAjB,GAAqB,CADlC;AAEE,UAAA,QAAQ,EAAE,KAAK;AAFjB,SAFK,EAML,KANK,EAOL;AACE,UAAA,MAAM,EAAG,CAAD,IAAa;AACnB,kBAAM,EAAE,GAAG,CAAC,CAAC,MAAb;AACA,iBAAK,KAAL,CAAW,cAAX,EAA2B,KAAK,WAAL,CAAiB,IAAjB,CAAsB,QAAQ,CAAC,EAAE,CAAC,KAAJ,CAA9B,CAA3B;AACD;AAJH,SAPK,CAAP;AAcD,OAjBD,MAiBO;AACL,cAAM,MAAM,GAAG,KAAK,SAAL,GAAiB,KAAK,WAAL,CAAiB,MAAjB,CAAyB,KAAzB,CAA+B,CAA/B,EAAkC,CAAC,CAAnC,CAAjB,GAAyD,KAAK,WAAL,CAAiB,MAAzF;AACA,eAAO,MAAM,CAAC,GAAP,CAAW,CAAC,CAAC,MAAD,EAAS,GAAT,EAAc,IAAd,CAAD,KAAwB;AACxC,gBAAM,KAAK,GAAG,KAAK,KAAL,CAAW,KAAK,YAAhB,CAAd;AACA,iBAAO,KAAK,QAAL,CACL,MADK,EAEL;AACE,YAAA,IAAI,EAAE,QADR;AAEE,YAAA,GAAG,EAAE,CAFP;AAGE,YAAA,GAHF;AAIE,YAAA,IAAI,EAAE,IAAI,KAAK,OAAT,GAAmB,MAAnB,GAA4B,IAAI,KAAK,KAAT,GAAiB,GAAjB,GAAuB,SAJ3D;AAKE,YAAA,QAAQ,EAAE,KAAK;AALjB,WAFK,EASL,KAAK,QAAL,CAAc,KAAK,CAAC,MAAD,CAAnB,EAA6B,IAA7B,CATK,EAUL;AACE,YAAA,KAAK,EAAG,CAAD,IAAa;AAClB,oBAAM,EAAE,GAAG,CAAC,CAAC,MAAb;AACA,oBAAM,MAAM,GAAG,KAAK,UAAL,CAAgB,EAAE,CAAC,KAAH,IAAY,GAA5B,EAAiC,IAAjC,CAAf;AAEA,mBAAK,KAAL,CAAW,cAAX,EAA2B,KAAK,WAAL,CAAiB,IAAjB,CACzB,MAAM,CAAC,MAAP,CAAc,EAAd,EAAkB,KAAlB,EAAyB;AAAE,iBAAC,MAAD,GAAU;AAAZ,eAAzB,CADyB,EAEzB,KAAK,KAAL,CAAW,KAFc,CAA3B;AAID;AATH,WAVK,CAAP;AAsBD,SAxBM,CAAP;AAyBD;AACF,KA7EM;;AA8EP,IAAA,SAAS,GAAA;AACP,aAAO,CAAC,CAAC,IAAD,EAAO;AACb,QAAA,KAAK,EAAE,IADM;AAEb,QAAA,IAAI,EAAE,IAFO;AAGb,QAAA,QAAQ,EAAE,KAAK,QAHF;AAIb,QAAA,OAAO,EAAE,KAAK;AAJD,OAAP,EAKL,CACD,CAAC,CAAC,KAAD,EAAQ,SAAR,CADA,CALK,CAAR;AAQD;;AAvFM,GAtCoB;;AAgI7B,EAAA,MAAM,GAAA;AACJ,WAAO,CAAC,CAAC,KAAD,EAAQ;AACd,MAAA,KAAK,EAAE;AADO,KAAR,EAEL,CACD,KAAK,SAAL,EADC,EAED,CAAC,KAAK,cAAN,IAAwB,KAAK,SAAL,EAFvB,CAFK,CAAR;AAMD;;AAvI4B,CAAD,CAA9B","sourcesContent":["import {h} from 'vue'\n// Styles\nimport './VColorPickerEdit.sass'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Helpers\nimport { parseHex } from '../../util/colorUtils'\n\n// Types\nimport { defineComponent, VNode, PropType } from 'vue'\nimport { VColorPickerColor, fromRGBA, fromHexa, fromHSLA } from './util'\n\ntype Input = [string, number, string]\n\nexport type Mode = {\n inputs?: Input[]\n from: Function\n}\n\nexport const modes = {\n rgba: {\n inputs: [\n ['r', 255, 'int'],\n ['g', 255, 'int'],\n ['b', 255, 'int'],\n ['a', 1, 'float'],\n ],\n from: fromRGBA,\n },\n hsla: {\n inputs: [\n ['h', 360, 'int'],\n ['s', 1, 'float'],\n ['l', 1, 'float'],\n ['a', 1, 'float'],\n ],\n from: fromHSLA,\n },\n hexa: {\n from: fromHexa,\n },\n} as { [key: string]: Mode }\n\nexport default defineComponent({\n name: 'v-color-picker-edit',\n\n props: {\n color: Object as PropType<VColorPickerColor>,\n disabled: Boolean,\n hideAlpha: Boolean,\n hideModeSwitch: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n },\n\n data () {\n return {\n modes,\n internalMode: this.mode,\n }\n },\n\n computed: {\n currentMode (): Mode {\n return this.modes[this.internalMode]\n },\n },\n\n watch: {\n mode (mode) {\n this.internalMode = mode\n },\n },\n\n created () {\n this.internalMode = this.mode\n },\n\n methods: {\n getValue (v: any, type: string) {\n if (type === 'float') return Math.round(v * 100) / 100\n else if (type === 'int') return Math.round(v)\n else return 0\n },\n parseValue (v: string, type: string) {\n if (type === 'float') return parseFloat(v)\n else if (type === 'int') return parseInt(v, 10) || 0\n else return 0\n },\n changeMode () {\n const modes = Object.keys(this.modes)\n const index = modes.indexOf(this.internalMode)\n const newMode = modes[(index + 1) % modes.length]\n this.internalMode = newMode\n this.$emit('update:mode', newMode)\n },\n genInput (target: string, attrs: any, value: any, on: any): VNode {\n return h('div', {\n class: 'v-color-picker__input',\n }, [\n h('input', {\n key: target,\n ...attrs,\n value,\n ...on,\n }),\n h('span', target.toUpperCase()),\n ])\n },\n genInputs (): VNode[] | VNode {\n if (this.internalMode === 'hexa') {\n const hex = this.color.hexa\n const value = this.hideAlpha && hex.endsWith('FF') ? hex.substr(0, 7) : hex\n return this.genInput(\n 'hex',\n {\n maxlength: this.hideAlpha ? 7 : 9,\n disabled: this.disabled,\n },\n value,\n {\n change: (e: Event) => {\n const el = e.target as HTMLInputElement\n this.$emit('update:color', this.currentMode.from(parseHex(el.value)))\n },\n }\n )\n } else {\n const inputs = this.hideAlpha ? this.currentMode.inputs!.slice(0, -1) : this.currentMode.inputs!\n return inputs.map(([target, max, type]) => {\n const value = this.color[this.internalMode as keyof VColorPickerColor] as any\n return this.genInput(\n target,\n {\n type: 'number',\n min: 0,\n max,\n step: type === 'float' ? '0.01' : type === 'int' ? '1' : undefined,\n disabled: this.disabled,\n },\n this.getValue(value[target], type),\n {\n input: (e: Event) => {\n const el = e.target as HTMLInputElement\n const newVal = this.parseValue(el.value || '0', type)\n\n this.$emit('update:color', this.currentMode.from(\n Object.assign({}, value, { [target]: newVal }),\n this.color.alpha\n ))\n },\n }\n )\n })\n }\n },\n genSwitch (): VNode {\n return h(VBtn, {\n small: true,\n icon: true,\n disabled: this.disabled,\n onClick: this.changeMode,\n }, [\n h(VIcon, '$unfold'),\n ])\n },\n },\n\n render (): VNode {\n return h('div', {\n class: 'v-color-picker__edit',\n }, [\n this.genInputs(),\n !this.hideModeSwitch && this.genSwitch(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VColorPickerEdit.js"}
1
+ {"version":3,"sources":["../../../src/components/VColorPicker/VColorPickerEdit.ts"],"names":[],"mappings":"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","sourcesContent":["import { h, defineComponent } from 'vue'\n\n// Styles\nimport './VColorPickerEdit.sass'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Helpers\nimport { parseHex } from '../../util/colorUtils'\n\n// Types\nimport type { VNode, PropType } from 'vue'\nimport { VColorPickerColor, fromRGBA, fromHexa, fromHSLA } from './util'\n\ntype Input = [string, number, string]\n\nexport type Mode = {\n inputs?: Input[]\n from: Function\n}\n\nexport const modes = {\n rgba: {\n inputs: [\n ['r', 255, 'int'],\n ['g', 255, 'int'],\n ['b', 255, 'int'],\n ['a', 1, 'float'],\n ],\n from: fromRGBA,\n },\n hsla: {\n inputs: [\n ['h', 360, 'int'],\n ['s', 1, 'float'],\n ['l', 1, 'float'],\n ['a', 1, 'float'],\n ],\n from: fromHSLA,\n },\n hexa: {\n from: fromHexa,\n },\n} as { [key: string]: Mode }\n\nexport default defineComponent({\n name: 'v-color-picker-edit',\n\n props: {\n color: {\n type: Object as PropType<VColorPickerColor>,\n required: true,\n },\n disabled: Boolean,\n hideAlpha: Boolean,\n hideModeSwitch: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n },\n\n emits: ['update:color', 'update:mode'],\n\n data () {\n return {\n internalMode: this.mode,\n }\n },\n\n computed: {\n currentMode (): Mode {\n return modes[this.internalMode]\n },\n },\n\n watch: {\n mode (mode: string) {\n this.internalMode = mode\n },\n },\n\n methods: {\n getValue (v: any, type: string) {\n if (type === 'float') return Math.round(v * 100) / 100\n else if (type === 'int') return Math.round(v)\n else return 0\n },\n\n parseValue (v: string, type: string) {\n if (type === 'float') return parseFloat(v)\n else if (type === 'int') return parseInt(v, 10) || 0\n else return 0\n },\n\n changeMode () {\n const modeKeys = Object.keys(modes)\n const index = modeKeys.indexOf(this.internalMode)\n const newMode = modeKeys[(index + 1) % modeKeys.length]\n this.internalMode = newMode\n this.$emit('update:mode', newMode)\n },\n\n genInput (target: string, attrs: any, value: any, onChange: any): VNode {\n return h('div', {\n class: 'v-color-picker__input',\n }, [\n h('input', {\n key: target,\n ...attrs,\n value,\n onChange,\n }),\n h('span', target.toUpperCase()),\n ])\n },\n\n genInputs (): VNode[] | VNode {\n if (this.internalMode === 'hexa') {\n const hex = this.color!.hexa\n const value = this.hideAlpha && hex.endsWith('FF') ? hex.substr(0, 7) : hex\n return this.genInput(\n 'hex',\n {\n maxlength: this.hideAlpha ? 7 : 9,\n disabled: this.disabled,\n },\n value,\n (e: Event) => {\n const el = e.target as HTMLInputElement\n this.$emit('update:color', this.currentMode.from(parseHex(el.value)))\n }\n )\n } else {\n const inputs = this.hideAlpha ? this.currentMode.inputs!.slice(0, -1) : this.currentMode.inputs!\n return inputs.map(([target, max, type]) => {\n const value = this.color![this.internalMode as keyof VColorPickerColor] as any\n return this.genInput(\n target,\n {\n type: 'number',\n min: 0,\n max,\n step: type === 'float' ? '0.01' : type === 'int' ? '1' : undefined,\n disabled: this.disabled,\n },\n this.getValue(value[target], type),\n (e: Event) => {\n const el = e.target as HTMLInputElement\n const newVal = this.parseValue(el.value || '0', type)\n\n this.$emit('update:color', this.currentMode.from(\n Object.assign({}, value, { [target]: newVal }),\n this.color!.alpha\n ))\n }\n )\n })\n }\n },\n\n genSwitch (): VNode {\n return h(VBtn, {\n small: true,\n icon: true,\n disabled: this.disabled,\n onClick: this.changeMode,\n }, {\n default: () => [h(VIcon, {}, '$unfold')]\n })\n },\n },\n\n render (): VNode {\n return h('div', {\n class: 'v-color-picker__edit',\n }, [\n this.genInputs(),\n !this.hideModeSwitch && this.genSwitch(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VColorPickerEdit.js"}
@@ -1,77 +1,90 @@
1
- import { h } from 'vue'; // Styles
1
+ import { h, defineComponent } from 'vue'; // Styles
2
2
 
3
3
  import "../../../src/components/VColorPicker/VColorPickerPreview.sass"; // Components
4
4
 
5
5
  import VSlider from '../VSlider/VSlider'; // Utilities
6
6
 
7
- import { RGBtoCSS, RGBAtoCSS } from '../../util/colorUtils'; // Types
8
-
9
- import { defineComponent } from 'vue';
7
+ import { RGBtoCSS, RGBAtoCSS } from '../../util/colorUtils';
10
8
  import { fromHSVA } from './util';
11
9
  export default defineComponent({
12
10
  name: 'v-color-picker-preview',
13
11
  props: {
14
- color: Object,
12
+ color: {
13
+ type: Object,
14
+ required: true
15
+ },
15
16
  disabled: Boolean,
16
17
  hideAlpha: Boolean
17
18
  },
19
+ emits: ['update:color'],
18
20
  methods: {
19
21
  genAlpha() {
22
+ var _a;
23
+
24
+ if (!this.color) return h('div');
20
25
  return this.genTrack({
21
26
  class: 'v-color-picker__alpha',
22
27
  thumbColor: 'grey lighten-2',
23
28
  hideDetails: true,
24
- value: this.color.alpha,
29
+ modelValue: this.color.alpha,
25
30
  step: 0,
26
31
  min: 0,
27
32
  max: 1,
28
33
  style: {
29
- backgroundImage: this.disabled ? undefined : `linear-gradient(to ${this.$vuetify.rtl ? 'left' : 'right'}, transparent, ${RGBtoCSS(this.color.rgba)})`
34
+ backgroundImage: this.disabled ? undefined : `linear-gradient(to ${((_a = this.$vuetify) === null || _a === void 0 ? void 0 : _a.rtl) ? 'left' : 'right'}, transparent, ${RGBtoCSS(this.color.rgba)})`
30
35
  },
31
- onInput: val => this.color.alpha !== val && this.$emit('update:color', fromHSVA({ ...this.color.hsva,
32
- a: val
33
- }))
34
- });
35
- },
36
-
37
- genSliders() {
38
- return h('div', {
39
- class: 'v-color-picker__sliders'
40
- }, [this.genHue(), !this.hideAlpha && this.genAlpha()]);
41
- },
42
-
43
- genDot() {
44
- return h('div', {
45
- class: 'v-color-picker__dot'
46
- }, [h('div', {
47
- style: {
48
- background: RGBAtoCSS(this.color.rgba)
36
+ 'onUpdate:modelValue': val => {
37
+ if (this.color && this.color.alpha !== val) {
38
+ this.$emit('update:color', fromHSVA({ ...this.color.hsva,
39
+ a: val
40
+ }));
41
+ }
49
42
  }
50
- })]);
43
+ });
51
44
  },
52
45
 
53
46
  genHue() {
47
+ if (!this.color) return h('div');
54
48
  return this.genTrack({
55
49
  class: 'v-color-picker__hue',
56
50
  thumbColor: 'grey lighten-2',
57
51
  hideDetails: true,
58
- value: this.color.hue,
52
+ modelValue: this.color.hue,
59
53
  step: 0,
60
54
  min: 0,
61
55
  max: 360,
62
- onInput: val => this.color.hue !== val && this.$emit('update:color', fromHSVA({ ...this.color.hsva,
63
- h: val
64
- }))
56
+ 'onUpdate:modelValue': val => {
57
+ if (this.color && this.color.hue !== val) {
58
+ this.$emit('update:color', fromHSVA({ ...this.color.hsva,
59
+ h: val
60
+ }));
61
+ }
62
+ }
65
63
  });
66
64
  },
67
65
 
68
66
  genTrack(options) {
69
67
  return h(VSlider, {
70
68
  class: 'v-color-picker__track',
71
- ...options,
72
69
  disabled: this.disabled,
73
- ...options.props
70
+ ...options
74
71
  });
72
+ },
73
+
74
+ genSliders() {
75
+ return h('div', {
76
+ class: 'v-color-picker__sliders'
77
+ }, [this.genHue(), !this.hideAlpha && this.genAlpha()]);
78
+ },
79
+
80
+ genDot() {
81
+ return h('div', {
82
+ class: 'v-color-picker__dot'
83
+ }, [h('div', {
84
+ style: {
85
+ background: this.color ? RGBAtoCSS(this.color.rgba) : 'transparent'
86
+ }
87
+ })]);
75
88
  }
76
89
 
77
90
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VColorPicker/VColorPickerPreview.ts"],"names":[],"mappings":"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","sourcesContent":["import {h} from 'vue'\n// Styles\nimport './VColorPickerPreview.sass'\n\n// Components\nimport VSlider from '../VSlider/VSlider'\n\n// Utilities\nimport { RGBtoCSS, RGBAtoCSS } from '../../util/colorUtils'\n\n// Types\nimport { defineComponent, VNode, VNodeData, PropType } from 'vue'\nimport { VColorPickerColor, fromHSVA } from './util'\n\nexport default defineComponent({\n name: 'v-color-picker-preview',\n\n props: {\n color: Object as PropType<VColorPickerColor>,\n disabled: Boolean,\n hideAlpha: Boolean,\n },\n\n methods: {\n genAlpha (): VNode {\n return this.genTrack({\n class: 'v-color-picker__alpha',\n thumbColor: 'grey lighten-2',\n hideDetails: true,\n value: this.color.alpha,\n step: 0,\n min: 0,\n max: 1,\n style: {\n backgroundImage: this.disabled\n ? undefined\n : `linear-gradient(to ${this.$vuetify.rtl ? 'left' : 'right'}, transparent, ${RGBtoCSS(this.color.rgba)})`,\n },\n onInput: (val: number) => this.color.alpha !== val && this.$emit('update:color', fromHSVA({ ...this.color.hsva, a: val })),\n })\n },\n genSliders (): VNode {\n return h('div', {\n class: 'v-color-picker__sliders',\n }, [\n this.genHue(),\n !this.hideAlpha && this.genAlpha(),\n ])\n },\n genDot (): VNode {\n return h('div', {\n class: 'v-color-picker__dot',\n }, [\n h('div', {\n style: {\n background: RGBAtoCSS(this.color.rgba),\n },\n }),\n ])\n },\n genHue (): VNode {\n return this.genTrack({\n class: 'v-color-picker__hue',\n thumbColor: 'grey lighten-2',\n hideDetails: true,\n value: this.color.hue,\n step: 0,\n min: 0,\n max: 360,\n onInput: (val: number) => this.color.hue !== val && this.$emit('update:color', fromHSVA({ ...this.color.hsva, h: val })),\n })\n },\n genTrack (options: VNodeData): VNode {\n return h(VSlider, {\n class: 'v-color-picker__track',\n ...options,\n disabled: this.disabled,\n ...options.props\n })\n },\n },\n\n render (): VNode {\n return h('div', {\n class: ['v-color-picker__preview', {\n 'v-color-picker__preview--hide-alpha': this.hideAlpha,\n }],\n }, [\n this.genDot(),\n this.genSliders(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VColorPickerPreview.js"}
1
+ {"version":3,"sources":["../../../src/components/VColorPicker/VColorPickerPreview.ts"],"names":[],"mappings":"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","sourcesContent":["import { h, defineComponent } from 'vue'\n\n// Styles\nimport './VColorPickerPreview.sass'\n\n// Components\nimport VSlider from '../VSlider/VSlider'\n\n// Utilities\nimport { RGBtoCSS, RGBAtoCSS } from '../../util/colorUtils'\n\n// Types\nimport type { VNode, PropType } from 'vue'\nimport type { VColorPickerColor } from './util'\nimport { fromHSVA } from './util'\n\nexport default defineComponent({\n name: 'v-color-picker-preview',\n\n props: {\n color: {\n type: Object as PropType<VColorPickerColor>,\n required: true,\n },\n disabled: Boolean,\n hideAlpha: Boolean,\n },\n\n emits: ['update:color'],\n\n methods: {\n genAlpha (): VNode {\n if (!this.color) return h('div')\n return this.genTrack({\n class: 'v-color-picker__alpha',\n thumbColor: 'grey lighten-2',\n hideDetails: true,\n modelValue: this.color.alpha,\n step: 0,\n min: 0,\n max: 1,\n style: {\n backgroundImage: this.disabled\n ? undefined\n : `linear-gradient(to ${this.$vuetify?.rtl ? 'left' : 'right'}, transparent, ${RGBtoCSS(this.color.rgba)})`,\n },\n 'onUpdate:modelValue': (val: number) => {\n if (this.color && this.color.alpha !== val) {\n this.$emit('update:color', fromHSVA({ ...this.color.hsva, a: val }))\n }\n },\n })\n },\n\n genHue (): VNode {\n if (!this.color) return h('div')\n return this.genTrack({\n class: 'v-color-picker__hue',\n thumbColor: 'grey lighten-2',\n hideDetails: true,\n modelValue: this.color.hue,\n step: 0,\n min: 0,\n max: 360,\n 'onUpdate:modelValue': (val: number) => {\n if (this.color && this.color.hue !== val) {\n this.$emit('update:color', fromHSVA({ ...this.color.hsva, h: val }))\n }\n },\n })\n },\n\n genTrack (options: Record<string, any>): VNode {\n return h(VSlider, {\n class: 'v-color-picker__track',\n disabled: this.disabled,\n ...options,\n })\n },\n\n genSliders (): VNode {\n return h('div', {\n class: 'v-color-picker__sliders',\n }, [\n this.genHue(),\n !this.hideAlpha && this.genAlpha(),\n ])\n },\n\n genDot (): VNode {\n return h('div', {\n class: 'v-color-picker__dot',\n }, [\n h('div', {\n style: {\n background: this.color ? RGBAtoCSS(this.color.rgba) : 'transparent',\n },\n }),\n ])\n },\n },\n\n render (): VNode {\n return h('div', {\n class: ['v-color-picker__preview', {\n 'v-color-picker__preview--hide-alpha': this.hideAlpha,\n }],\n }, [\n this.genDot(),\n this.genSliders(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VColorPickerPreview.js"}
@@ -1,4 +1,4 @@
1
- import { h } from 'vue'; // Styles
1
+ import { h, defineComponent } from 'vue'; // Styles
2
2
 
3
3
  import "../../../src/components/VColorPicker/VColorPickerSwatches.sass"; // Components
4
4
 
@@ -7,9 +7,9 @@ import VIcon from '../VIcon'; // Helpers
7
7
  import colors from '../../util/colors';
8
8
  import { fromHex, parseColor } from './util';
9
9
  import { convertToUnit, deepEqual } from '../../util/helpers';
10
- import mixins from '../../util/mixins';
10
+ import { contrastRatio } from '../../util/colorUtils'; // Mixins
11
+
11
12
  import Themeable from '../../mixins/themeable';
12
- import { contrastRatio } from '../../util/colorUtils';
13
13
 
14
14
  function parseDefaultColors(colors) {
15
15
  return Object.keys(colors).map(key => {
@@ -20,18 +20,23 @@ function parseDefaultColors(colors) {
20
20
 
21
21
  const white = fromHex('#FFFFFF').rgba;
22
22
  const black = fromHex('#000000').rgba;
23
- export default mixins(Themeable).extend({
23
+ export default defineComponent({
24
24
  name: 'v-color-picker-swatches',
25
+ mixins: [Themeable],
25
26
  props: {
26
27
  swatches: {
27
28
  type: Array,
28
29
  default: () => parseDefaultColors(colors)
29
30
  },
30
31
  disabled: Boolean,
31
- color: Object,
32
+ color: {
33
+ type: Object,
34
+ required: true
35
+ },
32
36
  maxWidth: [Number, String],
33
37
  maxHeight: [Number, String]
34
38
  },
39
+ emits: ['update:color'],
35
40
  methods: {
36
41
  genColor(color) {
37
42
  const content = h('div', {
@@ -45,9 +50,10 @@ export default mixins(Themeable).extend({
45
50
  }, '$success')]);
46
51
  return h('div', {
47
52
  class: 'v-color-picker__color',
48
- on: {
49
- // TODO: Less hacky way of catching transparent
50
- click: () => this.disabled || this.$emit('update:color', fromHex(color === 'transparent' ? '#00000000' : color))
53
+ onClick: () => {
54
+ if (!this.disabled) {
55
+ this.$emit('update:color', fromHex(color === 'transparent' ? '#00000000' : color));
56
+ }
51
57
  }
52
58
  }, [content]);
53
59
  },
@@ -65,7 +71,7 @@ export default mixins(Themeable).extend({
65
71
 
66
72
  render() {
67
73
  return h('div', {
68
- class: 'v-color-picker__swatches',
74
+ class: ['v-color-picker__swatches', this.themeClasses],
69
75
  style: {
70
76
  maxWidth: convertToUnit(this.maxWidth),
71
77
  maxHeight: convertToUnit(this.maxHeight)
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VColorPicker/VColorPickerSwatches.ts"],"names":[],"mappings":"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","sourcesContent":["import {h} from 'vue'\n// Styles\nimport './VColorPickerSwatches.sass'\n\n// Components\nimport VIcon from '../VIcon'\n\n// Helpers\nimport colors from '../../util/colors'\nimport { VColorPickerColor, fromHex, parseColor } from './util'\nimport { convertToUnit, deepEqual } from '../../util/helpers'\nimport mixins from '../../util/mixins'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode, PropType } from 'vue'\nimport { contrastRatio } from '../../util/colorUtils'\n\nfunction parseDefaultColors (colors: Record<string, Record<string, string>>) {\n return Object.keys(colors).map(key => {\n const color = colors[key]\n return color.base ? [\n color.base,\n color.darken4,\n color.darken3,\n color.darken2,\n color.darken1,\n color.lighten1,\n color.lighten2,\n color.lighten3,\n color.lighten4,\n color.lighten5,\n ] : [\n color.black,\n color.white,\n color.transparent,\n ]\n })\n}\n\nconst white = fromHex('#FFFFFF').rgba\nconst black = fromHex('#000000').rgba\n\nexport default mixins(Themeable).extend({\n name: 'v-color-picker-swatches',\n\n props: {\n swatches: {\n type: Array as PropType<string[][]>,\n default: () => parseDefaultColors(colors),\n },\n disabled: Boolean,\n color: Object as PropType<VColorPickerColor>,\n maxWidth: [Number, String],\n maxHeight: [Number, String],\n },\n\n methods: {\n genColor (color: string) {\n const content = h('div', {\n style: {\n background: color,\n },\n }, [\n deepEqual(this.color, parseColor(color, null)) && h(VIcon, {\n small: true,\n dark: contrastRatio(this.color.rgba, white) > 2 && this.color.alpha > 0.5,\n light: contrastRatio(this.color.rgba, black) > 2 && this.color.alpha > 0.5\n }, '$success'),\n ])\n\n return h('div', {\n class: 'v-color-picker__color',\n on: {\n // TODO: Less hacky way of catching transparent\n click: () => this.disabled || this.$emit('update:color', fromHex(color === 'transparent' ? '#00000000' : color)),\n },\n }, [content])\n },\n genSwatches () {\n return this.swatches.map(swatch => {\n const colors = swatch.map(this.genColor)\n\n return h('div', {\n class: 'v-color-picker__swatch',\n }, colors)\n })\n },\n },\n\n render (): VNode {\n return h('div', {\n class: 'v-color-picker__swatches',\n style: {\n maxWidth: convertToUnit(this.maxWidth),\n maxHeight: convertToUnit(this.maxHeight),\n },\n }, [\n h('div', this.genSwatches()),\n ])\n },\n})\n"],"sourceRoot":"","file":"VColorPickerSwatches.js"}
1
+ {"version":3,"sources":["../../../src/components/VColorPicker/VColorPickerSwatches.ts"],"names":[],"mappings":"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","sourcesContent":["import { h, defineComponent } from 'vue'\n\n// Styles\nimport './VColorPickerSwatches.sass'\n\n// Components\nimport VIcon from '../VIcon'\n\n// Helpers\nimport colors from '../../util/colors'\nimport { VColorPickerColor, fromHex, parseColor } from './util'\nimport { convertToUnit, deepEqual } from '../../util/helpers'\nimport { contrastRatio } from '../../util/colorUtils'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport type { VNode, PropType } from 'vue'\n\nfunction parseDefaultColors (colors: Record<string, Record<string, string>>) {\n return Object.keys(colors).map(key => {\n const color = colors[key]\n return color.base ? [\n color.base,\n color.darken4,\n color.darken3,\n color.darken2,\n color.darken1,\n color.lighten1,\n color.lighten2,\n color.lighten3,\n color.lighten4,\n color.lighten5,\n ] : [\n color.black,\n color.white,\n color.transparent,\n ]\n })\n}\n\nconst white = fromHex('#FFFFFF').rgba\nconst black = fromHex('#000000').rgba\n\nexport default defineComponent({\n name: 'v-color-picker-swatches',\n\n mixins: [Themeable],\n\n props: {\n swatches: {\n type: Array as PropType<string[][]>,\n default: () => parseDefaultColors(colors),\n },\n disabled: Boolean,\n color: {\n type: Object as PropType<VColorPickerColor>,\n required: true,\n },\n maxWidth: [Number, String],\n maxHeight: [Number, String],\n },\n\n emits: ['update:color'],\n\n methods: {\n genColor (color: string): VNode {\n const content = h('div', {\n style: {\n background: color,\n },\n }, [\n deepEqual(this.color, parseColor(color, null)) && h(VIcon, {\n small: true,\n dark: contrastRatio(this.color.rgba, white) > 2 && this.color.alpha > 0.5,\n light: contrastRatio(this.color.rgba, black) > 2 && this.color.alpha > 0.5\n }, '$success'),\n ])\n\n return h('div', {\n class: 'v-color-picker__color',\n onClick: () => {\n if (!this.disabled) {\n this.$emit('update:color', fromHex(color === 'transparent' ? '#00000000' : color))\n }\n },\n }, [content])\n },\n\n genSwatches (): VNode[] {\n return this.swatches.map(swatch => {\n const colors = swatch.map(this.genColor)\n\n return h('div', {\n class: 'v-color-picker__swatch',\n }, colors)\n })\n },\n },\n\n render (): VNode {\n return h('div', {\n class: ['v-color-picker__swatches', this.themeClasses],\n style: {\n maxWidth: convertToUnit(this.maxWidth),\n maxHeight: convertToUnit(this.maxHeight),\n },\n }, [\n h('div', this.genSwatches()),\n ])\n },\n})\n"],"sourceRoot":"","file":"VColorPickerSwatches.js"}
@@ -274,7 +274,7 @@ export default mixins(VDataIterator, Loadable, Mouse).extend({
274
274
  genLoading() {
275
275
  const th = h('th', {
276
276
  class: 'column',
277
- attrs: this.colspanAttrs
277
+ ...this.colspanAttrs
278
278
  }, [this.genProgress()]);
279
279
  const tr = h('tr', {
280
280
  class: 'v-data-table__progress'
@@ -315,8 +315,7 @@ export default mixins(VDataIterator, Loadable, Mouse).extend({
315
315
  genEmptyWrapper(content) {
316
316
  return h('tr', {
317
317
  class: 'v-data-table__empty-wrapper'
318
- }, [h('td', {
319
- attrs: this.colspanAttrs
318
+ }, [h('td', { ...this.colspanAttrs
320
319
  }, content)]);
321
320
  },
322
321
 
@@ -389,7 +388,7 @@ export default mixins(VDataIterator, Loadable, Mouse).extend({
389
388
  }, [h(VIcon, ['$close'])]);
390
389
  const column = h('td', {
391
390
  class: 'text-start',
392
- attrs: this.colspanAttrs
391
+ ...this.colspanAttrs
393
392
  }, [toggle, `${this.groupByText}: ${group}`, remove]);
394
393
  children.unshift(h('template', {
395
394
  slot: 'column.header'