vuetify 2.3.14 → 2.3.15

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 (201) hide show
  1. package/dist/json/attributes.json +16 -16
  2. package/dist/json/web-types.json +131 -61
  3. package/dist/vuetify.css +0 -2
  4. package/dist/vuetify.css.map +1 -1
  5. package/dist/vuetify.js +137 -112
  6. package/dist/vuetify.js.map +1 -1
  7. package/dist/vuetify.min.css +2 -2
  8. package/dist/vuetify.min.js +2 -2
  9. package/es5/components/VCalendar/VCalendar.js +1 -1
  10. package/es5/components/VCalendar/VCalendar.js.map +1 -1
  11. package/es5/components/VCalendar/util/events.js.map +1 -1
  12. package/es5/components/VCalendar/util/timestamp.js.map +1 -1
  13. package/es5/components/VColorPicker/VColorPickerEdit.js +36 -42
  14. package/es5/components/VColorPicker/VColorPickerEdit.js.map +1 -1
  15. package/es5/components/VData/VData.js +1 -2
  16. package/es5/components/VData/VData.js.map +1 -1
  17. package/es5/components/VDataIterator/VDataIterator.js +1 -1
  18. package/es5/components/VDataIterator/VDataIterator.js.map +1 -1
  19. package/es5/components/VDataTable/VDataTableHeaderDesktop.js +1 -1
  20. package/es5/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
  21. package/es5/components/VDatePicker/VDatePicker.js +1 -3
  22. package/es5/components/VDatePicker/VDatePicker.js.map +1 -1
  23. package/es5/components/VList/VListItem.js +1 -1
  24. package/es5/components/VList/VListItem.js.map +1 -1
  25. package/es5/components/VMenu/VMenu.js +4 -4
  26. package/es5/components/VMenu/VMenu.js.map +1 -1
  27. package/es5/components/VNavigationDrawer/VNavigationDrawer.js +6 -7
  28. package/es5/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  29. package/es5/components/VOverflowBtn/VOverflowBtn.js +1 -1
  30. package/es5/components/VOverflowBtn/VOverflowBtn.js.map +1 -1
  31. package/es5/components/VSelect/VSelect.js +1 -0
  32. package/es5/components/VSelect/VSelect.js.map +1 -1
  33. package/es5/components/VSlider/VSlider.js +1 -2
  34. package/es5/components/VSlider/VSlider.js.map +1 -1
  35. package/es5/components/VTextField/VTextField.js +12 -4
  36. package/es5/components/VTextField/VTextField.js.map +1 -1
  37. package/es5/components/VWindow/VWindow.js +3 -3
  38. package/es5/components/VWindow/VWindow.js.map +1 -1
  39. package/es5/components/transitions/expand-transition.js.map +1 -1
  40. package/es5/directives/ripple/index.js +3 -3
  41. package/es5/directives/ripple/index.js.map +1 -1
  42. package/es5/framework.js +1 -1
  43. package/es5/install.js +1 -1
  44. package/es5/install.js.map +1 -1
  45. package/es5/locale/ca.js +1 -1
  46. package/es5/locale/ca.js.map +1 -1
  47. package/es5/locale/fr.js +2 -2
  48. package/es5/locale/fr.js.map +1 -1
  49. package/es5/locale/it.js +3 -3
  50. package/es5/locale/it.js.map +1 -1
  51. package/es5/mixins/groupable/index.js +1 -1
  52. package/es5/mixins/groupable/index.js.map +1 -1
  53. package/es5/mixins/proxyable/index.js +1 -1
  54. package/es5/mixins/proxyable/index.js.map +1 -1
  55. package/es5/mixins/themeable/index.js +9 -10
  56. package/es5/mixins/themeable/index.js.map +1 -1
  57. package/es5/mixins/toggleable/index.js +1 -1
  58. package/es5/mixins/toggleable/index.js.map +1 -1
  59. package/es5/services/goto/index.js +0 -1
  60. package/es5/services/goto/index.js.map +1 -1
  61. package/es5/services/icons/presets/mdi.js +1 -1
  62. package/es5/services/icons/presets/mdi.js.map +1 -1
  63. package/es5/services/theme/index.js +3 -2
  64. package/es5/services/theme/index.js.map +1 -1
  65. package/es5/util/helpers.js +3 -3
  66. package/es5/util/helpers.js.map +1 -1
  67. package/lib/components/VCalendar/VCalendar.js +1 -1
  68. package/lib/components/VCalendar/VCalendar.js.map +1 -1
  69. package/lib/components/VCalendar/util/events.js.map +1 -1
  70. package/lib/components/VCalendar/util/timestamp.js.map +1 -1
  71. package/lib/components/VColorPicker/VColorPickerEdit.js +31 -37
  72. package/lib/components/VColorPicker/VColorPickerEdit.js.map +1 -1
  73. package/lib/components/VData/VData.js +1 -2
  74. package/lib/components/VData/VData.js.map +1 -1
  75. package/lib/components/VDataIterator/VDataIterator.js +1 -1
  76. package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
  77. package/lib/components/VDataTable/VDataTableHeaderDesktop.js +1 -1
  78. package/lib/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
  79. package/lib/components/VDatePicker/VDatePicker.js +1 -3
  80. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  81. package/lib/components/VList/VListItem.js +1 -1
  82. package/lib/components/VList/VListItem.js.map +1 -1
  83. package/lib/components/VMenu/VMenu.js +4 -4
  84. package/lib/components/VMenu/VMenu.js.map +1 -1
  85. package/lib/components/VNavigationDrawer/VNavigationDrawer.js +6 -7
  86. package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  87. package/lib/components/VOverflowBtn/VOverflowBtn.js +1 -1
  88. package/lib/components/VOverflowBtn/VOverflowBtn.js.map +1 -1
  89. package/lib/components/VSelect/VSelect.js +1 -0
  90. package/lib/components/VSelect/VSelect.js.map +1 -1
  91. package/lib/components/VSlider/VSlider.js +1 -2
  92. package/lib/components/VSlider/VSlider.js.map +1 -1
  93. package/lib/components/VTextField/VTextField.js +4 -4
  94. package/lib/components/VTextField/VTextField.js.map +1 -1
  95. package/lib/components/VWindow/VWindow.js +3 -3
  96. package/lib/components/VWindow/VWindow.js.map +1 -1
  97. package/lib/components/transitions/expand-transition.js.map +1 -1
  98. package/lib/directives/ripple/index.js +3 -3
  99. package/lib/directives/ripple/index.js.map +1 -1
  100. package/lib/framework.js +1 -1
  101. package/lib/install.js +4 -1
  102. package/lib/install.js.map +1 -1
  103. package/lib/locale/ca.js +1 -1
  104. package/lib/locale/ca.js.map +1 -1
  105. package/lib/locale/fr.js +2 -2
  106. package/lib/locale/fr.js.map +1 -1
  107. package/lib/locale/it.js +3 -3
  108. package/lib/locale/it.js.map +1 -1
  109. package/lib/mixins/groupable/index.js +1 -1
  110. package/lib/mixins/groupable/index.js.map +1 -1
  111. package/lib/mixins/proxyable/index.js +1 -1
  112. package/lib/mixins/proxyable/index.js.map +1 -1
  113. package/lib/mixins/themeable/index.js +9 -9
  114. package/lib/mixins/themeable/index.js.map +1 -1
  115. package/lib/mixins/toggleable/index.js +1 -1
  116. package/lib/mixins/toggleable/index.js.map +1 -1
  117. package/lib/services/goto/index.js +0 -1
  118. package/lib/services/goto/index.js.map +1 -1
  119. package/lib/services/icons/presets/mdi.js +1 -1
  120. package/lib/services/icons/presets/mdi.js.map +1 -1
  121. package/lib/services/theme/index.js +3 -2
  122. package/lib/services/theme/index.js.map +1 -1
  123. package/lib/util/helpers.js +3 -3
  124. package/lib/util/helpers.js.map +1 -1
  125. package/package.json +10 -11
  126. package/src/components/VAppBar/__tests__/VAppBar.spec.ts +1 -1
  127. package/src/components/VAutocomplete/__tests__/VAutocomplete2.spec.ts +1 -1
  128. package/src/components/VBanner/__tests__/VBanner.spec.ts +4 -4
  129. package/src/components/VCalendar/VCalendar.ts +1 -1
  130. package/src/components/VCalendar/mixins/__tests__/calendar-with-events.spec.ts +0 -1
  131. package/src/components/VCalendar/util/__tests__/events.spec.ts +1 -1
  132. package/src/components/VCalendar/util/__tests__/timestamp.spec.ts +6 -6
  133. package/src/components/VCalendar/util/events.ts +1 -1
  134. package/src/components/VCalendar/util/timestamp.ts +2 -2
  135. package/src/components/VColorPicker/VColorPickerEdit.ts +35 -38
  136. package/src/components/VColorPicker/__tests__/VColorPicker.spec.ts +2 -11
  137. package/src/components/VColorPicker/__tests__/__snapshots__/VColorPicker.spec.ts.snap +0 -154
  138. package/src/components/VData/VData.ts +1 -3
  139. package/src/components/VDataIterator/VDataIterator.ts +1 -1
  140. package/src/components/VDataTable/VDataTableHeaderDesktop.ts +1 -1
  141. package/src/components/VDataTable/__tests__/VDataTable.spec.ts +2 -0
  142. package/src/components/VDataTable/__tests__/VDataTableHeader.spec.ts +1 -1
  143. package/src/components/VDataTable/__tests__/VEditDialog.spec.ts +1 -1
  144. package/src/components/VDataTable/__tests__/__snapshots__/VDataTable.spec.ts.snap +238 -0
  145. package/src/components/VDatePicker/VDatePicker.ts +4 -3
  146. package/src/components/VDatePicker/__tests__/VDatePicker.date.spec.ts +7 -5
  147. package/src/components/VDialog/__tests__/VDialog.spec.ts +4 -0
  148. package/src/components/VExpansionPanel/__tests__/VExpansionPanel.spec.ts +4 -4
  149. package/src/components/VForm/__tests__/VForm.spec.ts +12 -62
  150. package/src/components/VGrid/__tests__/VCol.spec.ts +2 -2
  151. package/src/components/VHover/__tests__/VHover.spec.ts +7 -13
  152. package/src/components/VList/VListItem.ts +2 -2
  153. package/src/components/VMenu/VMenu.ts +5 -5
  154. package/src/components/VNavigationDrawer/VNavigationDrawer.ts +7 -9
  155. package/src/components/VNavigationDrawer/__tests__/VNavigationDrawer.spec.ts +34 -22
  156. package/src/components/VOverflowBtn/VOverflowBtn.ts +1 -1
  157. package/src/components/VProgressLinear/VProgressLinear.sass +0 -2
  158. package/src/components/VProgressLinear/__tests__/VProgressLinear.spec.ts +1 -0
  159. package/src/components/VProgressLinear/__tests__/__snapshots__/VProgressLinear.spec.ts.snap +1 -1
  160. package/src/components/VRadioGroup/__tests__/VRadio.spec.ts +0 -15
  161. package/src/components/VRadioGroup/__tests__/__snapshots__/VRadio.spec.ts.snap +3 -3
  162. package/src/components/VRating/__tests__/VRating.spec.ts +1 -1
  163. package/src/components/VSelect/VSelect.ts +1 -0
  164. package/src/components/VSlideGroup/__tests__/VSlideGroup.spec.ts +1 -1
  165. package/src/components/VSlider/VSlider.ts +1 -3
  166. package/src/components/VSnackbar/__tests__/VSnackbar.spec.ts +0 -15
  167. package/src/components/VTextField/VTextField.ts +4 -4
  168. package/src/components/VTextField/__tests__/VTextField.spec.ts +1 -0
  169. package/src/components/VTextarea/__tests__/VTextarea.spec.ts +1 -1
  170. package/src/components/VTreeview/__tests__/VTreeview.spec.ts +23 -19
  171. package/src/components/VVirtualScroll/__tests__/VVirtualScroll.spec.ts +1 -1
  172. package/src/components/VWindow/VWindow.ts +2 -2
  173. package/src/components/VWindow/__tests__/VWindow.spec.ts +1 -1
  174. package/src/components/transitions/expand-transition.ts +4 -4
  175. package/src/directives/intersect/__tests__/intersect.spec.ts +2 -2
  176. package/src/directives/ripple/__tests__/ripple.spec.ts +4 -4
  177. package/src/directives/ripple/index.ts +3 -3
  178. package/src/directives/touch/__tests__/touch.spec.ts +1 -1
  179. package/src/install.ts +4 -1
  180. package/src/locale/ca.ts +1 -1
  181. package/src/locale/fr.ts +2 -2
  182. package/src/locale/it.ts +3 -3
  183. package/src/mixins/activatable/__tests__/activatable.spec.ts +1 -1
  184. package/src/mixins/detachable/__tests__/detachable.spec.ts +0 -26
  185. package/src/mixins/groupable/index.ts +1 -2
  186. package/src/mixins/proxyable/index.ts +1 -2
  187. package/src/mixins/scrollable/__tests__/scrollable.spec.ts +1 -1
  188. package/src/mixins/themeable/index.ts +11 -12
  189. package/src/mixins/toggleable/index.ts +1 -2
  190. package/src/mixins/validatable/__tests__/validatable.spec.ts +1 -1
  191. package/src/services/application/__tests__/application.spec.ts +1 -1
  192. package/src/services/goto/__tests__/goto.spec.ts +1 -1
  193. package/src/services/goto/index.ts +0 -1
  194. package/src/services/icons/__tests__/__snapshots__/icons.spec.ts.snap +1 -1
  195. package/src/services/icons/presets/mdi.ts +1 -1
  196. package/src/services/theme/__tests__/theme.spec.ts +2 -2
  197. package/src/services/theme/index.ts +2 -2
  198. package/src/util/__tests__/helpers.spec.ts +1 -1
  199. package/src/util/helpers.ts +7 -3
  200. package/types/index.d.ts +1 -0
  201. package/src/mixins/groupable/__tests__/groupable.spec.ts +0 -5
@@ -89,7 +89,7 @@ describe('layout > col', () => {
89
89
  expect(wrapper.classes()).toHaveLength(6)
90
90
  })
91
91
 
92
- it("should apply boolean breakpoint classes for 'sm', 'md', 'lg', 'xl' prop", async () => {
92
+ it(`should apply boolean breakpoint classes for 'sm', 'md', 'lg', 'xl' prop`, async () => {
93
93
  const wrapper = mount(VCol, {
94
94
  propsData: {
95
95
  sm: true,
@@ -108,7 +108,7 @@ describe('layout > col', () => {
108
108
  expect(wrapper.classes()).toHaveLength(5)
109
109
  })
110
110
 
111
- it("should apply boolean breakpoint classes for 'sm', 'md', 'lg', 'xl' prop set to empty string", async () => {
111
+ it(`should apply boolean breakpoint classes for 'sm', 'md', 'lg', 'xl' prop set to empty string`, async () => {
112
112
  const wrapper = mount(VCol, {
113
113
  propsData: {
114
114
  sm: '',
@@ -11,6 +11,12 @@ import {
11
11
  } from '@vue/test-utils'
12
12
  import { wait } from '../../../../test'
13
13
 
14
+ const vm = new Vue()
15
+ const item = props => vm.$createElement('div', {
16
+ staticClass: 'foobar',
17
+ class: { fizzbuzz: props.hover },
18
+ })
19
+
14
20
  describe('VHover.ts', () => {
15
21
  let mountFunction: (options?: object) => Wrapper<Vue>
16
22
 
@@ -23,12 +29,6 @@ describe('VHover.ts', () => {
23
29
  })
24
30
 
25
31
  it('should change class when hovered', async () => {
26
- const vm = new Vue()
27
- const item = props => vm.$createElement('div', {
28
- staticClass: 'foobar',
29
- class: { fizzbuzz: props.hover },
30
- })
31
-
32
32
  const wrapper = mountFunction({
33
33
  scopedSlots: {
34
34
  default: item,
@@ -51,13 +51,7 @@ describe('VHover.ts', () => {
51
51
  expect(div.element.classList.contains('fizzbuzz')).toBe(false)
52
52
  })
53
53
 
54
- it('should not react to changes when disable', async () => {
55
- const vm = new Vue()
56
- const item = props => vm.$createElement('div', {
57
- staticClass: 'foobar',
58
- class: { fizzbuzz: props.hover },
59
- })
60
-
54
+ it('should not react to changes when disabled', async () => {
61
55
  const wrapper = mountFunction({
62
56
  propsData: {
63
57
  disabled: true,
@@ -45,8 +45,6 @@ export default baseMixins.extend<options>().extend({
45
45
  Ripple,
46
46
  },
47
47
 
48
- inheritAttrs: false,
49
-
50
48
  inject: {
51
49
  isInGroup: {
52
50
  default: false,
@@ -62,6 +60,8 @@ export default baseMixins.extend<options>().extend({
62
60
  },
63
61
  },
64
62
 
63
+ inheritAttrs: false,
64
+
65
65
  props: {
66
66
  activeClass: {
67
67
  type: String,
@@ -45,6 +45,11 @@ const baseMixins = mixins(
45
45
  export default baseMixins.extend({
46
46
  name: 'v-menu',
47
47
 
48
+ directives: {
49
+ ClickOutside,
50
+ Resize,
51
+ },
52
+
48
53
  provide (): object {
49
54
  return {
50
55
  isInMenu: true,
@@ -53,11 +58,6 @@ export default baseMixins.extend({
53
58
  }
54
59
  },
55
60
 
56
- directives: {
57
- ClickOutside,
58
- Resize,
59
- },
60
-
61
61
  props: {
62
62
  auto: Boolean,
63
63
  closeOnClick: {
@@ -49,18 +49,18 @@ const baseMixins = mixins(
49
49
  export default baseMixins.extend({
50
50
  name: 'v-navigation-drawer',
51
51
 
52
- provide (): object {
53
- return {
54
- isInNav: this.tag === 'nav',
55
- }
56
- },
57
-
58
52
  directives: {
59
53
  ClickOutside,
60
54
  Resize,
61
55
  Touch,
62
56
  },
63
57
 
58
+ provide (): object {
59
+ return {
60
+ isInNav: this.tag === 'nav',
61
+ }
62
+ },
63
+
64
64
  props: {
65
65
  bottom: Boolean,
66
66
  clipped: Boolean,
@@ -230,7 +230,7 @@ export default baseMixins.extend({
230
230
  },
231
231
  styles (): object {
232
232
  const translate = this.isBottom ? 'translateY' : 'translateX'
233
- const styles = {
233
+ return {
234
234
  height: convertToUnit(this.height),
235
235
  top: !this.isBottom ? convertToUnit(this.computedTop) : 'auto',
236
236
  maxHeight: this.computedMaxHeight != null
@@ -239,8 +239,6 @@ export default baseMixins.extend({
239
239
  transform: `${translate}(${convertToUnit(this.computedTransform, '%')})`,
240
240
  width: convertToUnit(this.computedWidth),
241
241
  }
242
-
243
- return styles
244
242
  },
245
243
  },
246
244
 
@@ -70,11 +70,13 @@ describe('VNavigationDrawer', () => { // eslint-disable-line max-statements
70
70
  })
71
71
 
72
72
  it('should not resize the content when permanent and stateless', async () => {
73
- const wrapper = mountFunction({ propsData: {
74
- app: true,
75
- permanent: true,
76
- stateless: true,
77
- } })
73
+ const wrapper = mountFunction({
74
+ propsData: {
75
+ app: true,
76
+ permanent: true,
77
+ stateless: true,
78
+ },
79
+ })
78
80
 
79
81
  await wrapper.vm.$nextTick()
80
82
  expect(wrapper.vm.$vuetify.application.left).toBe(256)
@@ -151,9 +153,11 @@ describe('VNavigationDrawer', () => { // eslint-disable-line max-statements
151
153
  })
152
154
 
153
155
  it('should update content padding when temporary state is changed', async () => {
154
- const wrapper = mountFunction({ propsData: {
155
- app: true,
156
- } })
156
+ const wrapper = mountFunction({
157
+ propsData: {
158
+ app: true,
159
+ },
160
+ })
157
161
  await wrapper.vm.$nextTick()
158
162
 
159
163
  expect(wrapper.vm.$vuetify.application.left).toBe(256)
@@ -166,9 +170,11 @@ describe('VNavigationDrawer', () => { // eslint-disable-line max-statements
166
170
  })
167
171
 
168
172
  it('should update content padding when permanent state is changed', async () => {
169
- const wrapper = mountFunction({ propsData: {
170
- app: true,
171
- } })
173
+ const wrapper = mountFunction({
174
+ propsData: {
175
+ app: true,
176
+ },
177
+ })
172
178
  await resizeWindow(800)
173
179
  wrapper.vm.$vuetify.breakpoint.width = 800
174
180
  await wrapper.vm.$nextTick()
@@ -183,9 +189,11 @@ describe('VNavigationDrawer', () => { // eslint-disable-line max-statements
183
189
  })
184
190
 
185
191
  it('should update content padding when miniVariant is changed', async () => {
186
- const wrapper = mountFunction({ propsData: {
187
- app: true,
188
- } })
192
+ const wrapper = mountFunction({
193
+ propsData: {
194
+ app: true,
195
+ },
196
+ })
189
197
  await wrapper.vm.$nextTick()
190
198
 
191
199
  expect(wrapper.vm.$vuetify.application.left).toBe(256)
@@ -199,9 +207,11 @@ describe('VNavigationDrawer', () => { // eslint-disable-line max-statements
199
207
 
200
208
  it('should not remain mobile when temporary is toggled', async () => {
201
209
  await resizeWindow(800)
202
- const wrapper = mountFunction({ propsData: {
203
- temporary: true,
204
- } })
210
+ const wrapper = mountFunction({
211
+ propsData: {
212
+ temporary: true,
213
+ },
214
+ })
205
215
 
206
216
  await resizeWindow(1920)
207
217
  expect(wrapper.vm.isMobile).toBe(false)
@@ -226,11 +236,13 @@ describe('VNavigationDrawer', () => { // eslint-disable-line max-statements
226
236
 
227
237
  it('should update content padding when mobile is toggled', async () => {
228
238
  const input = jest.fn()
229
- const wrapper = mountFunction({ propsData: {
230
- app: true,
231
- fixed: true,
232
- value: true,
233
- } })
239
+ const wrapper = mountFunction({
240
+ propsData: {
241
+ app: true,
242
+ fixed: true,
243
+ value: true,
244
+ },
245
+ })
234
246
  await wrapper.vm.$nextTick()
235
247
 
236
248
  wrapper.vm.$on('input', input)
@@ -81,7 +81,7 @@ export default VAutocomplete.extend({
81
81
  const itemObj = this.computedItems.find(i => this.getValue(i) === itemValue) || item
82
82
 
83
83
  if (!itemObj.text || !itemObj.callback) {
84
- consoleWarn('When using \'segmented\' prop without a selection slot, items must contain both a text and callback property', this)
84
+ consoleWarn('When using "segmented" prop without a selection slot, items must contain both a text and callback property', this)
85
85
  return null
86
86
  }
87
87
 
@@ -19,7 +19,6 @@
19
19
  top: 0
20
20
  transition: inherit
21
21
  width: 100%
22
- z-index: 1
23
22
 
24
23
  .v-progress-linear--reverse
25
24
  .v-progress-linear__buffer
@@ -47,7 +46,6 @@
47
46
  position: absolute
48
47
  top: 0
49
48
  width: 100%
50
- z-index: 2
51
49
 
52
50
  .v-progress-linear--reverse
53
51
  .v-progress-linear__content
@@ -191,6 +191,7 @@ describe('VProgressLinear.ts', () => {
191
191
  const wrapper = mountFunction({
192
192
  propsData: {
193
193
  indeterminate: true,
194
+ query: true,
194
195
  },
195
196
  })
196
197
 
@@ -293,7 +293,7 @@ exports[`VProgressLinear.ts should render indeterminate progress with query prop
293
293
  <div role="progressbar"
294
294
  aria-valuemin="0"
295
295
  aria-valuemax="100"
296
- class="v-progress-linear theme--light"
296
+ class="v-progress-linear v-progress-linear--query theme--light"
297
297
  style="height: 4px;"
298
298
  >
299
299
  <div class="v-progress-linear__background primary"
@@ -90,21 +90,6 @@ describe('VRadio.ts', () => {
90
90
  expect(change).toHaveBeenCalledTimes(1)
91
91
  })
92
92
 
93
- it('should not generate own colors when parent is in error', async () => {
94
- const wrapper = mountFunction({
95
- provide: {
96
- radioGroup: {
97
- register: () => {},
98
- unregister: () => {},
99
- },
100
- },
101
- })
102
-
103
- wrapper.setData({ isActive: true })
104
-
105
- await wrapper.vm.$nextTick()
106
- })
107
-
108
93
  it('should use custom icons', () => {
109
94
  const wrapper = mountFunction({
110
95
  propsData: {
@@ -9,7 +9,7 @@ exports[`VRadio.ts should be render colored radio 1`] = `
9
9
  $radioOff
10
10
  </i>
11
11
  <input aria-checked="false"
12
- id="input-25"
12
+ id="input-22"
13
13
  role="radio"
14
14
  type="radio"
15
15
  value
@@ -90,7 +90,7 @@ exports[`VRadio.ts should use custom icons 1`] = `
90
90
  bar
91
91
  </i>
92
92
  <input aria-checked="false"
93
- id="input-16"
93
+ id="input-13"
94
94
  role="radio"
95
95
  type="radio"
96
96
  value
@@ -110,7 +110,7 @@ exports[`VRadio.ts should use custom icons 2`] = `
110
110
  foo
111
111
  </i>
112
112
  <input aria-checked="true"
113
- id="input-16"
113
+ id="input-13"
114
114
  role="radio"
115
115
  type="radio"
116
116
  value
@@ -229,7 +229,7 @@ describe('VRating.ts', () => {
229
229
  expect(wrapper.html()).toMatchSnapshot()
230
230
  })
231
231
 
232
- it('it should bind mousemove listener', () => {
232
+ it('should bind mousemove listener', () => {
233
233
  const onMouseEnter = jest.fn()
234
234
  const wrapper = mountFunction({
235
235
  propsData: {
@@ -701,6 +701,7 @@ export default baseMixins.extend<options>().extend({
701
701
  }
702
702
  },
703
703
  onMouseUp (e: MouseEvent) {
704
+ // eslint-disable-next-line sonarjs/no-collapsible-if
704
705
  if (
705
706
  this.hasMouseDown &&
706
707
  e.which !== 3 &&
@@ -210,7 +210,7 @@ describe('VSlideGroup.ts', () => {
210
210
  expect(fn).toHaveBeenCalled()
211
211
  })
212
212
 
213
- it('it should scroll from affix click', async () => {
213
+ it('should scroll from affix click', async () => {
214
214
  const onClick = jest.fn()
215
215
  const scrollTo = jest.fn()
216
216
  const setWidths = jest.fn()
@@ -139,9 +139,7 @@ export default mixins<options &
139
139
  return this.step > 0 ? parseFloat(this.step) : 0
140
140
  },
141
141
  inputWidth (): number {
142
- const value = (this.roundValue(this.internalValue) - this.minValue) / (this.maxValue - this.minValue) * 100
143
-
144
- return value
142
+ return (this.roundValue(this.internalValue) - this.minValue) / (this.maxValue - this.minValue) * 100
145
143
  },
146
144
  trackFillStyles (): Partial<CSSStyleDeclaration> {
147
145
  const startDir = this.vertical ? 'bottom' : 'left'
@@ -103,21 +103,6 @@ describe('VSnackbar.ts', () => {
103
103
  expect(genTransition.mock.calls.length > 0).toBe(!expected)
104
104
  })
105
105
 
106
- it.each([
107
- [undefined, false],
108
- [false, false],
109
- [true, true],
110
- ])('should conditionally invoke setTimeout method using %s', (value, expected) => {
111
- const setTimeout = jest.fn()
112
-
113
- mountFunction({
114
- propsData: { value },
115
- methods: { setTimeout },
116
- })
117
-
118
- expect(setTimeout.mock.calls.length > 0).toBe(expected)
119
- })
120
-
121
106
  it.each([
122
107
  [undefined, true],
123
108
  [100, true],
@@ -131,7 +131,7 @@ export default baseMixins.extend<options>().extend({
131
131
  if (typeof this.counterValue === 'function') {
132
132
  return this.counterValue(this.internalValue)
133
133
  }
134
- return (this.internalValue || '').toString().length
134
+ return [...(this.internalValue || '')].length
135
135
  },
136
136
  hasCounter (): boolean {
137
137
  return this.counter !== false && this.counter != null
@@ -278,8 +278,8 @@ export default baseMixins.extend<options>().extend({
278
278
  genIconSlot () {
279
279
  const slot = []
280
280
 
281
- if (this.$slots['append']) {
282
- slot.push(this.$slots['append'] as VNode[])
281
+ if (this.$slots.append) {
282
+ slot.push(this.$slots.append as VNode[])
283
283
  } else if (this.appendIcon) {
284
284
  slot.push(this.genIcon('append'))
285
285
  }
@@ -376,7 +376,7 @@ export default baseMixins.extend<options>().extend({
376
376
  },
377
377
  genInput () {
378
378
  const listeners = Object.assign({}, this.listeners$)
379
- delete listeners['change'] // Change should not be bound externally
379
+ delete listeners.change // Change should not be bound externally
380
380
 
381
381
  return this.$createElement('input', {
382
382
  style: {},
@@ -330,6 +330,7 @@ describe('VTextField.ts', () => { // eslint-disable-line max-statements
330
330
  const change = jest.fn()
331
331
  let value = 'test'
332
332
  const component = {
333
+ // eslint-disable-next-line sonarjs/no-identical-functions
333
334
  render (h) {
334
335
  return h(VTextField, {
335
336
  on: {
@@ -37,7 +37,7 @@ describe('VTextarea.ts', () => {
37
37
 
38
38
  // TODO: switch to e2e, jest doesn't do inline styles
39
39
  expect(wrapper.html()).toMatchSnapshot()
40
- expect(el.element.style.getPropertyValue('height').length).not.toBe(0)
40
+ expect(el.element.style.getPropertyValue('height')).not.toHaveLength(0)
41
41
  })
42
42
 
43
43
  it('should watch lazy value', async () => {
@@ -136,8 +136,8 @@ describe('VTreeView.ts', () => { // eslint-disable-line max-statements
136
136
  await wrapper.vm.$nextTick()
137
137
 
138
138
  expect(wrapper.html()).toMatchSnapshot()
139
- expect('[Vue warn]: Error in created hook: "TypeError: Cannot set property \'vnode\' of undefined"').toHaveBeenWarned()
140
- expect('TypeError: Cannot set property \'vnode\' of undefined').toHaveBeenWarned()
139
+ expect(`[Vue warn]: Error in created hook: "TypeError: Cannot set property 'vnode' of undefined"`).toHaveBeenWarned()
140
+ expect(`TypeError: Cannot set property 'vnode' of undefined`).toHaveBeenWarned()
141
141
  })
142
142
 
143
143
  it('should load children when selecting, but not render', async () => {
@@ -394,7 +394,7 @@ describe('VTreeView.ts', () => { // eslint-disable-line max-statements
394
394
 
395
395
  await wrapper.vm.$nextTick()
396
396
 
397
- expect(wrapper.vm.nodes['Foobar']).toBeTruthy()
397
+ expect(wrapper.vm.nodes.Foobar).toBeTruthy()
398
398
 
399
399
  wrapper.setProps({ value: ['Foobar'] })
400
400
 
@@ -492,26 +492,30 @@ describe('VTreeView.ts', () => { // eslint-disable-line max-statements
492
492
 
493
493
  expect(wrapper.html()).toMatchSnapshot()
494
494
 
495
- wrapper.setProps({ items: [
496
- {
497
- id: 1,
498
- name: 'one',
499
- },
500
- ] })
495
+ wrapper.setProps({
496
+ items: [
497
+ {
498
+ id: 1,
499
+ name: 'one',
500
+ },
501
+ ],
502
+ })
501
503
 
502
504
  await wrapper.vm.$nextTick()
503
505
  expect(wrapper.html()).toMatchSnapshot()
504
506
 
505
- wrapper.setProps({ items: [
506
- {
507
- id: 1,
508
- name: 'one',
509
- },
510
- {
511
- id: 3,
512
- name: 'three',
513
- },
514
- ] })
507
+ wrapper.setProps({
508
+ items: [
509
+ {
510
+ id: 1,
511
+ name: 'one',
512
+ },
513
+ {
514
+ id: 3,
515
+ name: 'three',
516
+ },
517
+ ],
518
+ })
515
519
 
516
520
  await wrapper.vm.$nextTick()
517
521
  expect(wrapper.html()).toMatchSnapshot()
@@ -12,7 +12,7 @@ describe('VVirtualScroll.ts', () => {
12
12
  let mountFunction: (options?: object) => Wrapper<Instance>
13
13
  let propsData: Object
14
14
  let mock: jest.SpyInstance
15
- const elementHeight: number = 100
15
+ const elementHeight = 100
16
16
 
17
17
  beforeEach(() => {
18
18
  mountFunction = (options = {}) => {
@@ -18,14 +18,14 @@ import { BaseItemGroup } from '../VItemGroup/VItemGroup'
18
18
  export default BaseItemGroup.extend({
19
19
  name: 'v-window',
20
20
 
21
+ directives: { Touch },
22
+
21
23
  provide (): object {
22
24
  return {
23
25
  windowGroup: this,
24
26
  }
25
27
  },
26
28
 
27
- directives: { Touch },
28
-
29
29
  props: {
30
30
  activeClass: {
31
31
  type: String,
@@ -30,7 +30,7 @@ describe('VWindow.ts', () => {
30
30
  }
31
31
  })
32
32
 
33
- it('it should return the correct transition', async () => {
33
+ it('should return the correct transition', async () => {
34
34
  const wrapper = mountFunction()
35
35
  // Force booted
36
36
  wrapper.setData({ isBooted: true })
@@ -2,7 +2,7 @@ import { upperFirst } from '../../util/helpers'
2
2
 
3
3
  interface HTMLExpandElement extends HTMLElement {
4
4
  _parent?: (Node & ParentNode & HTMLElement) | null
5
- _initialStyle: {
5
+ _initialStyle?: {
6
6
  transition: string
7
7
  overflow: string
8
8
  height?: string | null
@@ -25,7 +25,7 @@ export default function (expandedParentClass = '', x = false) {
25
25
  },
26
26
 
27
27
  enter (el: HTMLExpandElement) {
28
- const initialStyle = el._initialStyle
28
+ const initialStyle = el._initialStyle!
29
29
 
30
30
  el.style.setProperty('transition', 'none', 'important')
31
31
  // Hide overflow to account for collapsed margins in the calculated height
@@ -76,8 +76,8 @@ export default function (expandedParentClass = '', x = false) {
76
76
  }
77
77
 
78
78
  function resetStyles (el: HTMLExpandElement) {
79
- const size = el._initialStyle[sizeProperty]
80
- el.style.overflow = el._initialStyle.overflow
79
+ const size = el._initialStyle![sizeProperty]
80
+ el.style.overflow = el._initialStyle!.overflow
81
81
  if (size != null) el.style[sizeProperty] = size
82
82
  delete el._initialStyle
83
83
  }
@@ -9,8 +9,8 @@ describe('resize.ts', () => {
9
9
 
10
10
  Intersect.inserted(el, {
11
11
  value: callback,
12
- modifiers: { quiet: true } } as any
13
- )
12
+ modifiers: { quiet: true },
13
+ } as any)
14
14
 
15
15
  expect((el as any)._observe).toBeTruthy()
16
16
  expect(callback).not.toHaveBeenCalled()
@@ -42,7 +42,7 @@ describe('ripple.ts', () => {
42
42
  const wrapper = mountFunction()
43
43
 
44
44
  const div = wrapper.find('div')
45
- expect(div.element['_ripple'].enabled).toBe(true)
45
+ expect(div.element._ripple.enabled).toBe(true)
46
46
  })
47
47
 
48
48
  it('should update element property reactively', () => {
@@ -72,13 +72,13 @@ describe('ripple.ts', () => {
72
72
  })
73
73
 
74
74
  const div = wrapper.find('div')
75
- expect(div.element['_ripple'].enabled).toBe(true)
75
+ expect(div.element._ripple.enabled).toBe(true)
76
76
 
77
77
  wrapper.setProps({ ripple: false })
78
- expect(div.element['_ripple'].enabled).toBe(false)
78
+ expect(div.element._ripple.enabled).toBe(false)
79
79
 
80
80
  wrapper.setProps({ ripple: true })
81
- expect(div.element['_ripple'].enabled).toBe(true)
81
+ expect(div.element._ripple.enabled).toBe(true)
82
82
  })
83
83
 
84
84
  it('should trigger ripple on mousedown', () => {
@@ -13,12 +13,12 @@ type VuetifyRippleEvent = MouseEvent | TouchEvent | KeyboardEvent
13
13
  const DELAY_RIPPLE = 80
14
14
 
15
15
  function transform (el: HTMLElement, value: string) {
16
- el.style['transform'] = value
17
- el.style['webkitTransform'] = value
16
+ el.style.transform = value
17
+ el.style.webkitTransform = value
18
18
  }
19
19
 
20
20
  function opacity (el: HTMLElement, value: number) {
21
- el.style['opacity'] = value.toString()
21
+ el.style.opacity = value.toString()
22
22
  }
23
23
 
24
24
  export interface RippleOptions {
@@ -66,7 +66,7 @@ describe('touch.ts', () => {
66
66
  expect(down).toHaveBeenCalled()
67
67
  })
68
68
 
69
- it('should not call directive handlers if distance is too small ', async () => {
69
+ it('should not call directive handlers if distance is too small', async () => {
70
70
  const down = jest.fn()
71
71
  touch(mountFunction({ down })).start(0, 0).end(0, 10)
72
72
  expect(down).not.toHaveBeenCalled()
package/src/install.ts CHANGED
@@ -7,7 +7,10 @@ export function install (Vue: VueConstructor, args: VuetifyUseOptions = {}) {
7
7
  (install as any).installed = true
8
8
 
9
9
  if (OurVue !== Vue) {
10
- consoleError('Multiple instances of Vue detected\nSee https://github.com/vuetifyjs/vuetify/issues/4068\n\nIf you\'re seeing "$attrs is readonly", it\'s caused by this')
10
+ consoleError(`Multiple instances of Vue detected
11
+ See https://github.com/vuetifyjs/vuetify/issues/4068
12
+
13
+ If you're seeing "$attrs is readonly", it's caused by this`)
11
14
  }
12
15
 
13
16
  const components = args.components || {}