@dimailn/vuetify 2.7.2-alpha27 → 2.7.2-alpha29

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 (349) hide show
  1. package/dist/vuetify.js +1493 -325
  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/VAlert/VAlert.js +38 -9
  6. package/es5/components/VAlert/VAlert.js.map +1 -1
  7. package/es5/components/VAutocomplete/VAutocomplete.js +1 -0
  8. package/es5/components/VAutocomplete/VAutocomplete.js.map +1 -1
  9. package/es5/components/VBadge/VBadge.js +28 -0
  10. package/es5/components/VBadge/VBadge.js.map +1 -1
  11. package/es5/components/VBanner/VBanner.js +34 -6
  12. package/es5/components/VBanner/VBanner.js.map +1 -1
  13. package/es5/components/VBottomNavigation/VBottomNavigation.js +25 -0
  14. package/es5/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  15. package/es5/components/VCarousel/VCarousel.js +28 -3
  16. package/es5/components/VCarousel/VCarousel.js.map +1 -1
  17. package/es5/components/VCheckbox/VSimpleCheckbox.js +30 -2
  18. package/es5/components/VCheckbox/VSimpleCheckbox.js.map +1 -1
  19. package/es5/components/VChip/VChip.js +1 -0
  20. package/es5/components/VChip/VChip.js.map +1 -1
  21. package/es5/components/VColorPicker/VColorPicker.js +30 -2
  22. package/es5/components/VColorPicker/VColorPicker.js.map +1 -1
  23. package/es5/components/VCombobox/VCombobox.js +1 -0
  24. package/es5/components/VCombobox/VCombobox.js.map +1 -1
  25. package/es5/components/VDataIterator/VDataFooter.js +16 -7
  26. package/es5/components/VDataIterator/VDataFooter.js.map +1 -1
  27. package/es5/components/VDataIterator/VDataIterator.js +42 -47
  28. package/es5/components/VDataIterator/VDataIterator.js.map +1 -1
  29. package/es5/components/VDataTable/RowGroup.js +46 -15
  30. package/es5/components/VDataTable/RowGroup.js.map +1 -1
  31. package/es5/components/VDataTable/VDataTable.js +10 -18
  32. package/es5/components/VDataTable/VDataTable.js.map +1 -1
  33. package/es5/components/VDataTable/VDataTableHeader.js.map +1 -1
  34. package/es5/components/VDataTable/VDataTableHeaderDesktop.js +3 -0
  35. package/es5/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
  36. package/es5/components/VDataTable/VDataTableHeaderMobile.js +28 -37
  37. package/es5/components/VDataTable/VDataTableHeaderMobile.js.map +1 -1
  38. package/es5/components/VDataTable/VEditDialog.js +3 -4
  39. package/es5/components/VDataTable/VEditDialog.js.map +1 -1
  40. package/es5/components/VDataTable/VSimpleTable.js +1 -1
  41. package/es5/components/VDataTable/VSimpleTable.js.map +1 -1
  42. package/es5/components/VDataTable/VVirtualTable.js +5 -5
  43. package/es5/components/VDataTable/VVirtualTable.js.map +1 -1
  44. package/es5/components/VDataTable/mixins/header.js +1 -1
  45. package/es5/components/VDataTable/mixins/header.js.map +1 -1
  46. package/es5/components/VDatePicker/VDatePicker.js +21 -9
  47. package/es5/components/VDatePicker/VDatePicker.js.map +1 -1
  48. package/es5/components/VDatePicker/VDatePickerHeader.js +24 -8
  49. package/es5/components/VDatePicker/VDatePickerHeader.js.map +1 -1
  50. package/es5/components/VDatePicker/VDatePickerTitle.js +33 -8
  51. package/es5/components/VDatePicker/VDatePickerTitle.js.map +1 -1
  52. package/es5/components/VDatePicker/VDatePickerYears.js +38 -13
  53. package/es5/components/VDatePicker/VDatePickerYears.js.map +1 -1
  54. package/es5/components/VDatePicker/mixins/date-picker-table.js +33 -17
  55. package/es5/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  56. package/es5/components/VInput/VInput.js +36 -8
  57. package/es5/components/VInput/VInput.js.map +1 -1
  58. package/es5/components/VList/VListGroup.js +47 -21
  59. package/es5/components/VList/VListGroup.js.map +1 -1
  60. package/es5/components/VList/VListItem.js +33 -6
  61. package/es5/components/VList/VListItem.js.map +1 -1
  62. package/es5/components/VMenu/VMenu.js +56 -31
  63. package/es5/components/VMenu/VMenu.js.map +1 -1
  64. package/es5/components/VMessages/VMessages.js +30 -7
  65. package/es5/components/VMessages/VMessages.js.map +1 -1
  66. package/es5/components/VNavigationDrawer/VNavigationDrawer.js +36 -9
  67. package/es5/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  68. package/es5/components/VOtpInput/VOtpInput.js +36 -0
  69. package/es5/components/VOtpInput/VOtpInput.js.map +1 -1
  70. package/es5/components/VOverlay/VOverlay.js +28 -0
  71. package/es5/components/VOverlay/VOverlay.js.map +1 -1
  72. package/es5/components/VPagination/VPagination.js +30 -6
  73. package/es5/components/VPagination/VPagination.js.map +1 -1
  74. package/es5/components/VProgressLinear/VProgressLinear.js +28 -0
  75. package/es5/components/VProgressLinear/VProgressLinear.js.map +1 -1
  76. package/es5/components/VRadioGroup/VRadioGroup.js +28 -0
  77. package/es5/components/VRadioGroup/VRadioGroup.js.map +1 -1
  78. package/es5/components/VRating/VRating.js +45 -17
  79. package/es5/components/VRating/VRating.js.map +1 -1
  80. package/es5/components/VSelect/VSelect.js +112 -84
  81. package/es5/components/VSelect/VSelect.js.map +1 -1
  82. package/es5/components/VSelect/VSelectList.js +73 -19
  83. package/es5/components/VSelect/VSelectList.js.map +1 -1
  84. package/es5/components/VSlider/VSlider.js +42 -16
  85. package/es5/components/VSlider/VSlider.js.map +1 -1
  86. package/es5/components/VSpeedDial/VSpeedDial.js +10 -8
  87. package/es5/components/VSpeedDial/VSpeedDial.js.map +1 -1
  88. package/es5/components/VTabs/VTabs.js +45 -17
  89. package/es5/components/VTabs/VTabs.js.map +1 -1
  90. package/es5/components/VTooltip/VTooltip.js +3 -3
  91. package/es5/components/VTooltip/VTooltip.js.map +1 -1
  92. package/es5/components/VTreeview/VTreeview.js +0 -7
  93. package/es5/components/VTreeview/VTreeview.js.map +1 -1
  94. package/es5/framework.js +1 -1
  95. package/es5/mixins/routable/index.js +5 -2
  96. package/es5/mixins/routable/index.js.map +1 -1
  97. package/es5/mixins/validatable/index.js +24 -0
  98. package/es5/mixins/validatable/index.js.map +1 -1
  99. package/es5/util/console.js +49 -18
  100. package/es5/util/console.js.map +1 -1
  101. package/es5/util/helpers.js +5 -1
  102. package/es5/util/helpers.js.map +1 -1
  103. package/lib/components/VAlert/VAlert.js +12 -7
  104. package/lib/components/VAlert/VAlert.js.map +1 -1
  105. package/lib/components/VAutocomplete/VAutocomplete.js +1 -0
  106. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  107. package/lib/components/VBadge/VBadge.js +11 -0
  108. package/lib/components/VBadge/VBadge.js.map +1 -1
  109. package/lib/components/VBanner/VBanner.js +11 -0
  110. package/lib/components/VBanner/VBanner.js.map +1 -1
  111. package/lib/components/VBottomNavigation/VBottomNavigation.js +7 -0
  112. package/lib/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  113. package/lib/components/VCarousel/VCarousel.js +7 -0
  114. package/lib/components/VCarousel/VCarousel.js.map +1 -1
  115. package/lib/components/VCheckbox/VSimpleCheckbox.js +11 -0
  116. package/lib/components/VCheckbox/VSimpleCheckbox.js.map +1 -1
  117. package/lib/components/VChip/VChip.js +1 -0
  118. package/lib/components/VChip/VChip.js.map +1 -1
  119. package/lib/components/VColorPicker/VColorPicker.js +12 -1
  120. package/lib/components/VColorPicker/VColorPicker.js.map +1 -1
  121. package/lib/components/VCombobox/VCombobox.js +1 -0
  122. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  123. package/lib/components/VDataIterator/VDataFooter.js +14 -7
  124. package/lib/components/VDataIterator/VDataFooter.js.map +1 -1
  125. package/lib/components/VDataIterator/VDataIterator.js +26 -31
  126. package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
  127. package/lib/components/VDataTable/RowGroup.js +30 -14
  128. package/lib/components/VDataTable/RowGroup.js.map +1 -1
  129. package/lib/components/VDataTable/VDataTable.js +8 -15
  130. package/lib/components/VDataTable/VDataTable.js.map +1 -1
  131. package/lib/components/VDataTable/VDataTableHeader.js +1 -1
  132. package/lib/components/VDataTable/VDataTableHeader.js.map +1 -1
  133. package/lib/components/VDataTable/VDataTableHeaderDesktop.js +3 -0
  134. package/lib/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
  135. package/lib/components/VDataTable/VDataTableHeaderMobile.js +17 -25
  136. package/lib/components/VDataTable/VDataTableHeaderMobile.js.map +1 -1
  137. package/lib/components/VDataTable/VEditDialog.js +3 -4
  138. package/lib/components/VDataTable/VEditDialog.js.map +1 -1
  139. package/lib/components/VDataTable/VSimpleTable.js +1 -1
  140. package/lib/components/VDataTable/VSimpleTable.js.map +1 -1
  141. package/lib/components/VDataTable/VVirtualTable.js +1 -2
  142. package/lib/components/VDataTable/VVirtualTable.js.map +1 -1
  143. package/lib/components/VDataTable/mixins/header.js +1 -1
  144. package/lib/components/VDataTable/mixins/header.js.map +1 -1
  145. package/lib/components/VDatePicker/VDatePicker.js +7 -1
  146. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  147. package/lib/components/VDatePicker/VDatePickerHeader.js +12 -1
  148. package/lib/components/VDatePicker/VDatePickerHeader.js.map +1 -1
  149. package/lib/components/VDatePicker/VDatePickerTitle.js +11 -0
  150. package/lib/components/VDatePicker/VDatePickerTitle.js.map +1 -1
  151. package/lib/components/VDatePicker/VDatePickerYears.js +11 -1
  152. package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
  153. package/lib/components/VDatePicker/mixins/date-picker-table.js +12 -1
  154. package/lib/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  155. package/lib/components/VInput/VInput.js +13 -3
  156. package/lib/components/VInput/VInput.js.map +1 -1
  157. package/lib/components/VList/VListGroup.js +16 -8
  158. package/lib/components/VList/VListGroup.js.map +1 -1
  159. package/lib/components/VList/VListItem.js +12 -3
  160. package/lib/components/VList/VListItem.js.map +1 -1
  161. package/lib/components/VMenu/VMenu.js +15 -4
  162. package/lib/components/VMenu/VMenu.js.map +1 -1
  163. package/lib/components/VMessages/VMessages.js +13 -2
  164. package/lib/components/VMessages/VMessages.js.map +1 -1
  165. package/lib/components/VNavigationDrawer/VNavigationDrawer.js +11 -2
  166. package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  167. package/lib/components/VOtpInput/VOtpInput.js +48 -0
  168. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  169. package/lib/components/VOverlay/VOverlay.js +11 -0
  170. package/lib/components/VOverlay/VOverlay.js.map +1 -1
  171. package/lib/components/VPagination/VPagination.js +11 -0
  172. package/lib/components/VPagination/VPagination.js.map +1 -1
  173. package/lib/components/VProgressLinear/VProgressLinear.js +11 -0
  174. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  175. package/lib/components/VRadioGroup/VRadioGroup.js +11 -0
  176. package/lib/components/VRadioGroup/VRadioGroup.js.map +1 -1
  177. package/lib/components/VRating/VRating.js +11 -0
  178. package/lib/components/VRating/VRating.js.map +1 -1
  179. package/lib/components/VSelect/VSelect.js +52 -36
  180. package/lib/components/VSelect/VSelect.js.map +1 -1
  181. package/lib/components/VSelect/VSelectList.js +32 -8
  182. package/lib/components/VSelect/VSelectList.js.map +1 -1
  183. package/lib/components/VSlider/VSlider.js +11 -1
  184. package/lib/components/VSlider/VSlider.js.map +1 -1
  185. package/lib/components/VSpeedDial/VSpeedDial.js +7 -7
  186. package/lib/components/VSpeedDial/VSpeedDial.js.map +1 -1
  187. package/lib/components/VTabs/VTabs.js +11 -0
  188. package/lib/components/VTabs/VTabs.js.map +1 -1
  189. package/lib/components/VTooltip/VTooltip.js +3 -3
  190. package/lib/components/VTooltip/VTooltip.js.map +1 -1
  191. package/lib/components/VTreeview/VTreeview.js +0 -6
  192. package/lib/components/VTreeview/VTreeview.js.map +1 -1
  193. package/lib/framework.js +1 -1
  194. package/lib/mixins/routable/index.js +5 -2
  195. package/lib/mixins/routable/index.js.map +1 -1
  196. package/lib/mixins/validatable/index.js +7 -1
  197. package/lib/mixins/validatable/index.js.map +1 -1
  198. package/lib/util/console.js +47 -17
  199. package/lib/util/console.js.map +1 -1
  200. package/lib/util/helpers.js +5 -1
  201. package/lib/util/helpers.js.map +1 -1
  202. package/package.json +1 -1
  203. package/src/components/VAlert/VAlert.ts +17 -8
  204. package/src/components/VAlert/__tests__/VAlert.spec.ts +78 -50
  205. package/src/components/VAlert/__tests__/__snapshots__/VAlert.spec.ts.snap +16 -18
  206. package/src/components/VApp/__tests__/VApp.spec.ts +24 -18
  207. package/src/components/VApp/__tests__/__snapshots__/VApp.spec.ts.snap +4 -4
  208. package/src/components/VAppBar/__tests__/VAppBar.spec.ts +256 -74
  209. package/src/components/VAppBar/__tests__/VAppBarNavIcon.spec.ts +2 -6
  210. package/src/components/VAppBar/__tests__/__snapshots__/VAppBar.spec.ts.snap +13 -4
  211. package/src/components/VAppBar/__tests__/__snapshots__/VAppBarNavIcon.spec.ts.snap +3 -4
  212. package/src/components/VAutocomplete/VAutocomplete.ts +22 -0
  213. package/src/components/VAutocomplete/__tests__/VAutocomplete.spec.ts +51 -53
  214. package/src/components/VAutocomplete/__tests__/VAutocomplete2.spec.ts +77 -48
  215. package/src/components/VAutocomplete/__tests__/VAutocomplete3.spec.ts +101 -39
  216. package/src/components/VBadge/VBadge.ts +13 -0
  217. package/src/components/VBanner/VBanner.ts +13 -0
  218. package/src/components/VBanner/__tests__/VBanner.spec.ts +35 -36
  219. package/src/components/VBanner/__tests__/__snapshots__/VBanner.spec.ts.snap +1 -1
  220. package/src/components/VBottomNavigation/VBottomNavigation.ts +10 -0
  221. package/src/components/VBtn/__tests__/VBtn.spec.ts +1 -1
  222. package/src/components/VCard/__tests__/VCard.spec.ts +46 -28
  223. package/src/components/VCard/__tests__/__snapshots__/VCard.spec.ts.snap +2 -2
  224. package/src/components/VCarousel/VCarousel.ts +11 -0
  225. package/src/components/VCheckbox/VSimpleCheckbox.ts +13 -0
  226. package/src/components/VCheckbox/__tests__/VCheckbox.spec.ts +157 -152
  227. package/src/components/VChip/VChip.ts +1 -0
  228. package/src/components/VChip/__tests__/VChip.spec.ts +50 -50
  229. package/src/components/VChip/__tests__/__snapshots__/VChip.spec.ts.snap +4 -4
  230. package/src/components/VChipGroup/__tests__/VChipGroup.spec.ts +14 -21
  231. package/src/components/VColorPicker/VColorPicker.ts +13 -0
  232. package/src/components/VColorPicker/__tests__/__snapshots__/VColorPicker.spec.ts.snap +35 -35
  233. package/src/components/VColorPicker/__tests__/__snapshots__/VColorPickerEdit.spec.ts.snap +10 -10
  234. package/src/components/VCombobox/VCombobox.ts +23 -0
  235. package/src/components/VCombobox/__tests__/VCombobox-multiple.spec.ts +118 -110
  236. package/src/components/VCombobox/__tests__/VCombobox.spec.ts +119 -93
  237. package/src/components/VData/__tests__/VData.spec.ts +69 -90
  238. package/src/components/VDataIterator/VDataFooter.ts +14 -9
  239. package/src/components/VDataIterator/VDataIterator.ts +46 -34
  240. package/src/components/VDataIterator/__tests__/VDataFooter.spec.ts +38 -39
  241. package/src/components/VDataIterator/__tests__/VDataIterator.spec.ts +90 -122
  242. package/src/components/VDataIterator/__tests__/__snapshots__/VDataFooter.spec.ts.snap +92 -82
  243. package/src/components/VDataIterator/__tests__/__snapshots__/VDataIterator.spec.ts.snap +79 -69
  244. package/src/components/VDataTable/RowGroup.ts +33 -16
  245. package/src/components/VDataTable/VDataTable.ts +8 -15
  246. package/src/components/VDataTable/VDataTableHeader.ts +2 -2
  247. package/src/components/VDataTable/VDataTableHeaderDesktop.ts +4 -0
  248. package/src/components/VDataTable/VDataTableHeaderMobile.ts +16 -25
  249. package/src/components/VDataTable/VEditDialog.ts +3 -3
  250. package/src/components/VDataTable/VSimpleTable.ts +2 -3
  251. package/src/components/VDataTable/VVirtualTable.ts +1 -2
  252. package/src/components/VDataTable/__tests__/MobileRow.spec.ts +55 -66
  253. package/src/components/VDataTable/__tests__/Row.spec.ts +64 -73
  254. package/src/components/VDataTable/__tests__/RowGroup.spec.ts +7 -5
  255. package/src/components/VDataTable/__tests__/VDataTable.spec.ts +916 -998
  256. package/src/components/VDataTable/__tests__/VDataTableHeader.spec.ts +39 -29
  257. package/src/components/VDataTable/__tests__/VEditDialog.spec.ts +33 -24
  258. package/src/components/VDataTable/__tests__/VSimpleTable.spec.ts +55 -29
  259. package/src/components/VDataTable/__tests__/VVirtualTable.spec.ts +13 -15
  260. package/src/components/VDataTable/__tests__/__snapshots__/Row.spec.ts.snap +30 -0
  261. package/src/components/VDataTable/__tests__/__snapshots__/VDataTable.spec.ts.snap +2543 -2086
  262. package/src/components/VDataTable/__tests__/__snapshots__/VDataTableHeader.spec.ts.snap +115 -144
  263. package/src/components/VDataTable/__tests__/__snapshots__/VEditDialog.spec.ts.snap +6 -6
  264. package/src/components/VDataTable/__tests__/__snapshots__/VSimpleTable.spec.ts.snap +22 -18
  265. package/src/components/VDataTable/mixins/__tests__/__snapshots__/header.spec.ts.snap +10 -13
  266. package/src/components/VDataTable/mixins/__tests__/header.spec.ts +15 -15
  267. package/src/components/VDataTable/mixins/header.ts +1 -1
  268. package/src/components/VDatePicker/VDatePicker.ts +11 -1
  269. package/src/components/VDatePicker/VDatePickerHeader.ts +13 -0
  270. package/src/components/VDatePicker/VDatePickerTitle.ts +12 -0
  271. package/src/components/VDatePicker/VDatePickerYears.ts +13 -0
  272. package/src/components/VDatePicker/mixins/date-picker-table.ts +13 -0
  273. package/src/components/VDivider/__tests__/VDivider.spec.ts +11 -15
  274. package/src/components/VDivider/__tests__/__snapshots__/VDivider.spec.ts.snap +2 -2
  275. package/src/components/VGrid/__tests__/VCol.spec.ts +17 -17
  276. package/src/components/VGrid/__tests__/VContainer.spec.ts +58 -3
  277. package/src/components/VGrid/__tests__/VFlex.spec.ts +3 -3
  278. package/src/components/VGrid/__tests__/VGrid.spec.ts +12 -10
  279. package/src/components/VGrid/__tests__/VLayout.spec.ts +3 -3
  280. package/src/components/VIcon/__tests__/VIcon.spec.ts +176 -70
  281. package/src/components/VImg/__tests__/__snapshots__/VImg.spec.ts.snap +55 -55
  282. package/src/components/VInput/VInput.ts +18 -5
  283. package/src/components/VItemGroup/__tests__/VItem.spec.ts +22 -37
  284. package/src/components/VItemGroup/__tests__/VItemGroup.spec.ts +96 -124
  285. package/src/components/VItemGroup/__tests__/__snapshots__/VItem.spec.ts.snap +2 -0
  286. package/src/components/VLabel/__tests__/VLabel.spec.ts +240 -14
  287. package/src/components/VLazy/__tests__/VLazy.spec.ts +5 -4
  288. package/src/components/VLazy/__tests__/__snapshots__/VLazy.spec.ts.snap +2 -1
  289. package/src/components/VList/VListGroup.ts +22 -10
  290. package/src/components/VList/VListItem.ts +19 -4
  291. package/src/components/VList/__tests__/VList.spec.ts +13 -12
  292. package/src/components/VList/__tests__/VListGroup.spec.ts +59 -51
  293. package/src/components/VList/__tests__/VListItem.spec.ts +142 -63
  294. package/src/components/VList/__tests__/VListItemAvatar.spec.ts +5 -2
  295. package/src/components/VList/__tests__/VListItemGroup.spec.ts +5 -2
  296. package/src/components/VList/__tests__/__snapshots__/VList.spec.ts.snap +10 -10
  297. package/src/components/VList/__tests__/__snapshots__/VListGroup.spec.ts.snap +5 -6
  298. package/src/components/VList/__tests__/__snapshots__/VListItem.spec.ts.snap +1 -1
  299. package/src/components/VMain/__tests__/VMain.spec.ts +71 -17
  300. package/src/components/VMenu/VMenu.ts +22 -4
  301. package/src/components/VMenu/__tests__/VMenu.spec.ts +90 -69
  302. package/src/components/VMenu/__tests__/__snapshots__/VMenu.spec.ts.snap +3 -5
  303. package/src/components/VMessages/VMessages.ts +15 -4
  304. package/src/components/VMessages/__tests__/VMessages.spec.ts +55 -16
  305. package/src/components/VMessages/__tests__/__snapshots__/VMessages.spec.ts.snap +16 -25
  306. package/src/components/VNavigationDrawer/VNavigationDrawer.ts +21 -11
  307. package/src/components/VOtpInput/VOtpInput.ts +37 -1
  308. package/src/components/VOverlay/VOverlay.ts +12 -0
  309. package/src/components/VPagination/VPagination.ts +23 -9
  310. package/src/components/VParallax/__tests__/__snapshots__/VParallax.spec.ts.snap +8 -8
  311. package/src/components/VPicker/__tests__/__snapshots__/VPicker.spec.ts.snap +2 -2
  312. package/src/components/VProgressLinear/VProgressLinear.ts +13 -0
  313. package/src/components/VRadioGroup/VRadioGroup.ts +14 -0
  314. package/src/components/VRating/VRating.ts +13 -0
  315. package/src/components/VResponsive/__tests__/__snapshots__/VResponsive.spec.ts.snap +2 -2
  316. package/src/components/VSelect/VSelect.ts +60 -43
  317. package/src/components/VSelect/VSelectList.ts +33 -12
  318. package/src/components/VSelect/__tests__/VSelect.spec.ts +166 -125
  319. package/src/components/VSelect/__tests__/VSelect2.spec.ts +127 -111
  320. package/src/components/VSelect/__tests__/VSelect3.spec.ts +109 -91
  321. package/src/components/VSelect/__tests__/VSelect4.spec.ts +79 -68
  322. package/src/components/VSelect/__tests__/VSelectList.spec.ts +23 -31
  323. package/src/components/VSelect/__tests__/__snapshots__/VSelect.spec.ts.snap +58 -62
  324. package/src/components/VSelect/__tests__/__snapshots__/VSelect2.spec.ts.snap +50 -62
  325. package/src/components/VSelect/__tests__/__snapshots__/VSelect3.spec.ts.snap +10 -14
  326. package/src/components/VSlider/VSlider.ts +14 -1
  327. package/src/components/VSparkline/__tests__/VSparkline.spec.ts +33 -35
  328. package/src/components/VSpeedDial/VSpeedDial.ts +7 -8
  329. package/src/components/VSpeedDial/__tests__/VSpeedDial.spec.ts +21 -13
  330. package/src/components/VSpeedDial/__tests__/__snapshots__/VSpeedDial.spec.ts.snap +6 -6
  331. package/src/components/VStepper/__tests__/VStepper.spec.ts +4 -1
  332. package/src/components/VStepper/__tests__/VStepperContent.spec.ts +104 -110
  333. package/src/components/VStepper/__tests__/VStepperStep.spec.ts +51 -44
  334. package/src/components/VSwitch/__tests__/VSwitch.spec.ts +30 -37
  335. package/src/components/VTabs/VTabs.ts +14 -0
  336. package/src/components/VTabs/__tests__/VTabs.spec.ts +0 -7
  337. package/src/components/VTextField/__tests__/VTextField.spec.ts +342 -246
  338. package/src/components/VTextarea/__tests__/VTextarea.spec.ts +112 -35
  339. package/src/components/VTimePicker/__tests__/__snapshots__/VTimePicker.spec.ts.snap +0 -40
  340. package/src/components/VToolbar/__tests__/VToolbar.spec.ts +49 -25
  341. package/src/components/VTooltip/VTooltip.ts +3 -3
  342. package/src/components/VTooltip/__tests__/__snapshots__/VTooltip.spec.ts.snap +34 -18
  343. package/src/components/VTreeview/VTreeview.ts +0 -5
  344. package/src/mixins/routable/index.ts +6 -4
  345. package/src/mixins/validatable/index.ts +11 -1
  346. package/src/util/__tests__/console.spec.ts +124 -11
  347. package/src/util/__tests__/helpers.spec.ts +59 -31
  348. package/src/util/console.ts +43 -24
  349. package/src/util/helpers.ts +8 -4
@@ -6,29 +6,38 @@ import {
6
6
  mount,
7
7
  Wrapper,
8
8
  MountOptions,
9
+ enableAutoUnmount,
9
10
  } from '@vue/test-utils'
11
+ import { h } from 'vue'
10
12
 
11
13
  describe('VAutocomplete.ts', () => {
12
14
  type Instance = InstanceType<typeof VAutocomplete>
13
15
  let mountFunction: (options?: MountOptions<Instance>) => Wrapper<Instance>
14
16
 
17
+ enableAutoUnmount(afterEach)
18
+
15
19
  beforeEach(() => {
16
20
  document.body.setAttribute('data-app', 'true')
17
21
 
18
22
  mountFunction = (options = {}) => {
19
23
  return mount(VAutocomplete, {
20
24
  ...options,
21
- mocks: {
22
- $vuetify: {
23
- lang: {
24
- t: (val: string) => val,
25
- },
26
- theme: {
27
- dark: false,
28
- },
29
- },
30
- },
31
- })
25
+ global: {
26
+ mocks: {
27
+ $vuetify: {
28
+ lang: {
29
+ t: (val: string) => val
30
+ },
31
+ theme: {
32
+ dark: false
33
+ },
34
+ icons: {
35
+ component: null
36
+ }
37
+ }
38
+ }
39
+ }
40
+ });
32
41
  }
33
42
  })
34
43
 
@@ -43,10 +52,10 @@ describe('VAutocomplete.ts', () => {
43
52
  // https://github.com/vuetifyjs/vuetify/issues/7259
44
53
  it('should update search when same item is selected', async () => {
45
54
  const wrapper = mountFunction({
46
- attachToDocument: true,
47
- propsData: {
55
+ attachTo: document.body,
56
+ props: {
48
57
  items: ['foo'],
49
- value: 'foo',
58
+ modelValue: 'foo',
50
59
  },
51
60
  })
52
61
 
@@ -62,10 +71,16 @@ describe('VAutocomplete.ts', () => {
62
71
  element.value = 'fo'
63
72
  input.trigger('input')
64
73
 
65
- const item = wrapper.find('.v-list-item')
74
+ await wrapper.vm.$nextTick()
66
75
 
67
- item.trigger('click')
76
+ const item = wrapper.find('.v-list-item')
77
+ if (item.exists()) {
78
+ item.trigger('click')
79
+ await wrapper.vm.$nextTick()
80
+ }
68
81
 
82
+ // Force update the input value after selection
83
+ wrapper.vm.setSearch()
69
84
  await wrapper.vm.$nextTick()
70
85
 
71
86
  expect(element.value).toBe('foo')
@@ -73,9 +88,9 @@ describe('VAutocomplete.ts', () => {
73
88
 
74
89
  it('should copy selected item if multiple', async () => {
75
90
  const wrapper = mountFunction({
76
- propsData: {
91
+ props: {
77
92
  items: ['aaa', 'bbb', 'ccc'],
78
- value: ['aaa', 'bbb'],
93
+ modelValue: ['aaa', 'bbb'],
79
94
  chips: true,
80
95
  multiple: true,
81
96
  },
@@ -102,9 +117,9 @@ describe('VAutocomplete.ts', () => {
102
117
 
103
118
  it('should not copy anything if there is no selected item', async () => {
104
119
  const wrapper = mountFunction({
105
- propsData: {
120
+ props: {
106
121
  items: ['aaa', 'bbb', 'ccc'],
107
- value: ['aaa', 'bbb'],
122
+ modelValue: ['aaa', 'bbb'],
108
123
  chips: true,
109
124
  multiple: true,
110
125
  },
@@ -127,12 +142,12 @@ describe('VAutocomplete.ts', () => {
127
142
 
128
143
  // https://github.com/vuetifyjs/vuetify/issues/9654
129
144
  // https://github.com/vuetifyjs/vuetify/issues/11639
130
- it('should delete value when pressing backspace', () => {
145
+ it('should delete value when pressing backspace', async () => {
131
146
  const wrapper = mountFunction({
132
- propsData: {
147
+ props: {
133
148
  chips: true,
134
149
  items: ['foo', 'bar', 'fizz', 'buzz'],
135
- value: 'foo',
150
+ modelValue: 'foo',
136
151
  },
137
152
  })
138
153
 
@@ -146,9 +161,11 @@ describe('VAutocomplete.ts', () => {
146
161
 
147
162
  wrapper.setProps({
148
163
  multiple: true,
149
- value: ['foo', 'bar'],
164
+ modelValue: ['foo', 'bar'],
150
165
  })
151
166
 
167
+ await wrapper.vm.$nextTick()
168
+
152
169
  input.trigger('keydown.backspace')
153
170
  input.trigger('keydown.backspace')
154
171
 
@@ -157,9 +174,9 @@ describe('VAutocomplete.ts', () => {
157
174
 
158
175
  it('should not change selectedIndex to 0 when backspace is pressed', () => {
159
176
  const wrapper = mountFunction({
160
- propsData: {
177
+ props: {
161
178
  items: ['f', 'b'],
162
- value: 'f',
179
+ modelValue: 'f',
163
180
  },
164
181
  })
165
182
 
@@ -173,7 +190,7 @@ describe('VAutocomplete.ts', () => {
173
190
 
174
191
  it('should close menu when append icon is clicked', async () => {
175
192
  const wrapper = mountFunction({
176
- propsData: {
193
+ props: {
177
194
  items: ['foo', 'bar'],
178
195
  },
179
196
  })
@@ -191,7 +208,7 @@ describe('VAutocomplete.ts', () => {
191
208
 
192
209
  it('should open menu when append icon is clicked', async () => {
193
210
  const wrapper = mountFunction({
194
- propsData: {
211
+ props: {
195
212
  items: ['foo', 'bar'],
196
213
  },
197
214
  })
@@ -207,42 +224,39 @@ describe('VAutocomplete.ts', () => {
207
224
 
208
225
  // https://github.com/vuetifyjs/vuetify/issues/9489
209
226
  it('should emit search-input update only once', async () => {
210
- const onSearch = jest.fn()
211
227
  const wrapper = mountFunction({
212
- propsData: {
228
+ props: {
213
229
  items: ['foo', 'bar'],
214
- value: 'foo',
230
+ modelValue: 'foo',
215
231
  },
216
232
  })
217
233
 
218
- wrapper.vm.$on('update:search-input', onSearch)
219
-
220
- expect(onSearch).toHaveBeenCalledTimes(0)
234
+ expect(wrapper.emitted('update:search-input')).toBeFalsy()
221
235
 
222
236
  wrapper.setData({ internalValue: 'bar' })
223
237
 
224
238
  await wrapper.vm.$nextTick()
225
239
 
226
- expect(onSearch).toHaveBeenCalledTimes(1)
240
+ expect(wrapper.emitted('update:search-input')).toHaveLength(1)
227
241
 
228
242
  wrapper.setData({ internalValue: 'foo' })
229
243
 
230
244
  await wrapper.vm.$nextTick()
231
245
 
232
- expect(onSearch).toHaveBeenCalledTimes(2)
246
+ expect(wrapper.emitted('update:search-input')).toHaveLength(1)
233
247
 
234
248
  wrapper.setData({ internalValue: 'foo' })
235
249
 
236
250
  await wrapper.vm.$nextTick()
237
251
 
238
- expect(onSearch).toHaveBeenCalledTimes(2)
252
+ expect(wrapper.emitted('update:search-input')).toHaveLength(1)
239
253
  })
240
254
 
241
255
  it('should reset selected item when text-field is cleared if not multiple', () => {
242
256
  const wrapper = mountFunction({
243
- propsData: {
257
+ props: {
244
258
  items: ['foo', 'bar'],
245
- value: 'foo',
259
+ modelValue: 'foo',
246
260
  },
247
261
  })
248
262
 
@@ -253,4 +267,52 @@ describe('VAutocomplete.ts', () => {
253
267
 
254
268
  expect(wrapper.vm.internalValue).toBeNull()
255
269
  })
270
+
271
+ it('should update visual chips when model changes (props, mutation, replacement)', async () => {
272
+ const wrapper = mountFunction({
273
+ props: {
274
+ items: [
275
+ { name: 'Sandra Adams', group: 'Group 1', avatar: 'avatar1.jpg' },
276
+ { name: 'Ali Connors', group: 'Group 1', avatar: 'avatar2.jpg' },
277
+ { name: 'Trevor Hansen', group: 'Group 1', avatar: 'avatar3.jpg' },
278
+ ],
279
+ modelValue: ['Sandra Adams', 'Ali Connors'],
280
+ multiple: true,
281
+ chips: true,
282
+ itemText: 'name',
283
+ itemValue: 'name',
284
+ },
285
+ })
286
+
287
+ await wrapper.vm.$nextTick()
288
+
289
+ let chips = wrapper.findAll('.v-chip')
290
+ expect(chips).toHaveLength(2)
291
+ expect(wrapper.vm.internalValue).toEqual(['Sandra Adams', 'Ali Connors'])
292
+
293
+ wrapper.setProps({ modelValue: ['Ali Connors'] })
294
+ await wrapper.vm.$nextTick()
295
+ chips = wrapper.findAll('.v-chip')
296
+ expect(chips).toHaveLength(1)
297
+ expect(chips[0].text()).toBe('Ali Connors')
298
+
299
+ wrapper.setProps({ modelValue: ['Sandra Adams', 'Ali Connors'] })
300
+ await wrapper.vm.$nextTick()
301
+ const friends = wrapper.vm.internalValue as string[]
302
+ const index = friends.indexOf('Sandra Adams')
303
+ if (index >= 0) friends.splice(index, 1)
304
+ await wrapper.vm.$nextTick()
305
+ chips = wrapper.findAll('.v-chip')
306
+ expect(chips).toHaveLength(1)
307
+ expect(chips[0].text()).toBe('Ali Connors')
308
+
309
+ wrapper.setProps({ modelValue: ['Sandra Adams', 'Ali Connors'] })
310
+ await wrapper.vm.$nextTick()
311
+ const newFriends = ['Ali Connors']
312
+ wrapper.vm.setValue(newFriends)
313
+ await wrapper.vm.$nextTick()
314
+ chips = wrapper.findAll('.v-chip')
315
+ expect(chips).toHaveLength(1)
316
+ expect(chips[0].text()).toBe('Ali Connors')
317
+ })
256
318
  })
@@ -17,6 +17,7 @@ import {
17
17
  convertToUnit,
18
18
  getSlot,
19
19
  } from '../../util/helpers'
20
+ import { breaking } from '../../util/console'
20
21
 
21
22
  const Toggleable = ToggleableFactory('modelValue', 'update:modelValue')
22
23
 
@@ -119,6 +120,18 @@ export default defineComponent({
119
120
  },
120
121
  },
121
122
 
123
+ created () {
124
+ const breakingProps = [
125
+ ['value', 'modelValue'],
126
+ ['onInput', 'onUpdate:modelValue'],
127
+ ]
128
+
129
+ /* istanbul ignore next */
130
+ breakingProps.forEach(([original, replacement]) => {
131
+ if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)
132
+ })
133
+ },
134
+
122
135
  methods: {
123
136
  calcPosition (offset: string | number): string {
124
137
  return `calc(100% - ${convertToUnit(offset || this.offset)})`
@@ -17,6 +17,7 @@ import Toggleable from '../../mixins/toggleable'
17
17
  // Utilities
18
18
  import mixins from '../../util/mixins'
19
19
  import { convertToUnit, getSlot } from '../../util/helpers'
20
+ import { breaking } from '../../util/console'
20
21
 
21
22
  // Types
22
23
  import { VNode } from 'vue'
@@ -78,6 +79,18 @@ export default mixins(
78
79
  },
79
80
  },
80
81
 
82
+ created () {
83
+ const breakingProps = [
84
+ ['value', 'modelValue'],
85
+ ['input', 'update:modelValue'],
86
+ ]
87
+
88
+ /* istanbul ignore next */
89
+ breakingProps.forEach(([original, replacement]) => {
90
+ if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)
91
+ })
92
+ },
93
+
81
94
  methods: {
82
95
  /** @public */
83
96
  toggle () {
@@ -10,6 +10,7 @@ import {
10
10
  mount,
11
11
  Wrapper,
12
12
  } from '@vue/test-utils'
13
+ import { h } from 'vue'
13
14
 
14
15
  // Types
15
16
  import { ExtractVue } from '../../../util/mixins'
@@ -22,16 +23,21 @@ describe('VBanner.ts', () => {
22
23
  mountFunction = (options = {}) => {
23
24
  return mount(VBanner, {
24
25
  ...options,
25
- mocks: {
26
- $vuetify: {
27
- application: {
28
- top: 0,
29
- bar: 0,
30
- },
31
- breakpoint: {
32
- mobile: true,
33
- mobileBreakpoint: 1264,
34
- width: 1000,
26
+ global: {
27
+ mocks: {
28
+ $vuetify: {
29
+ application: {
30
+ top: 0,
31
+ bar: 0,
32
+ },
33
+ breakpoint: {
34
+ mobile: true,
35
+ mobileBreakpoint: 1264,
36
+ width: 1000,
37
+ },
38
+ icons: {
39
+ component: null,
40
+ },
35
41
  },
36
42
  },
37
43
  },
@@ -67,7 +73,7 @@ describe('VBanner.ts', () => {
67
73
  slots: {
68
74
  default: 'Hello, World!',
69
75
  },
70
- propsData: {
76
+ props: {
71
77
  icon: 'mdi-plus',
72
78
  },
73
79
  })
@@ -79,7 +85,7 @@ describe('VBanner.ts', () => {
79
85
  const wrapper = mountFunction({
80
86
  slots: {
81
87
  default: 'Hello, World!',
82
- icon: { render: h => h('span', ['icon']) },
88
+ icon: () => h('span', ['icon']),
83
89
  },
84
90
  })
85
91
 
@@ -90,7 +96,7 @@ describe('VBanner.ts', () => {
90
96
  const wrapper = mountFunction({
91
97
  slots: {
92
98
  default: 'Hello, World!',
93
- actions: { render: h => h('div', [h('button', ['OK']), h('button', ['Cancel'])]) },
99
+ actions: () => h('div', [h('button', ['OK']), h('button', ['Cancel'])]),
94
100
  },
95
101
  })
96
102
 
@@ -102,19 +108,16 @@ describe('VBanner.ts', () => {
102
108
  slots: {
103
109
  default: 'Hello, World!',
104
110
  },
105
- propsData: {
111
+ props: {
106
112
  icon: 'mdi-plus',
107
113
  },
108
114
  })
109
115
 
110
- const fn = jest.fn()
111
- wrapper.vm.$on('click:icon', fn)
112
-
113
116
  const icon = wrapper.find('.v-banner__icon')
114
117
 
115
- expect(fn).not.toHaveBeenCalled()
118
+ expect(wrapper.emitted('click:icon')).toBeFalsy()
116
119
  icon.trigger('click')
117
- expect(fn).toHaveBeenCalled()
120
+ expect(wrapper.emitted('click:icon')).toBeTruthy()
118
121
  })
119
122
 
120
123
  it(`should not render icon container if icon property and slot aren't passed`, () => {
@@ -167,16 +170,10 @@ describe('VBanner.ts', () => {
167
170
  const wrapper = mountFunction({
168
171
  slots: {
169
172
  default: 'Hello, World!',
170
- },
171
- scopedSlots: {
172
- actions (props) {
173
- return h('div', {
174
- on: {
175
- click: props.dismiss,
176
- },
177
- class: 'test',
178
- })
179
- },
173
+ actions: ({ dismiss }) => h('div', {
174
+ onClick: dismiss,
175
+ class: 'test',
176
+ }),
180
177
  },
181
178
  })
182
179
 
@@ -191,9 +188,11 @@ describe('VBanner.ts', () => {
191
188
  slots: {
192
189
  default: 'Hello, World!',
193
190
  },
194
- mocks: {
195
- $vuetify: {
196
- breakpoint: new Breakpoint(preset),
191
+ global: {
192
+ mocks: {
193
+ $vuetify: {
194
+ breakpoint: new Breakpoint(preset),
195
+ },
197
196
  },
198
197
  },
199
198
  })
@@ -201,16 +200,16 @@ describe('VBanner.ts', () => {
201
200
  expect(wrapper.classes('v-banner--is-mobile')).toBeTruthy()
202
201
  })
203
202
 
204
- it('should apply sticky when using the app prop', () => {
203
+ it('should apply sticky when using the app prop', async () => {
205
204
  const wrapper = mountFunction({
206
- propsData: { app: true },
205
+ props: { app: true },
207
206
  })
208
207
 
209
208
  expect(wrapper.vm.isSticky).toBe(true)
210
209
 
211
210
  expect(wrapper.html()).toMatchSnapshot()
212
211
 
213
- wrapper.setProps({
212
+ await wrapper.setProps({
214
213
  app: false,
215
214
  sticky: true,
216
215
  })
@@ -219,7 +218,7 @@ describe('VBanner.ts', () => {
219
218
 
220
219
  expect(wrapper.html()).toMatchSnapshot()
221
220
 
222
- wrapper.setProps({ sticky: false })
221
+ await wrapper.setProps({ app: false, sticky: false })
223
222
 
224
223
  expect(wrapper.vm.isSticky).toBe(false)
225
224
 
@@ -114,7 +114,7 @@ exports[`VBanner.ts should render component with icon slot 1`] = `
114
114
  `;
115
115
 
116
116
  exports[`VBanner.ts should render sinle-line component with content 1`] = `
117
- <div class="v-banner v-sheet theme--light v-banner--is-mobile">
117
+ <div class="v-banner v-sheet theme--light v-banner--is-mobile v-banner--single-line">
118
118
  <div class="v-banner__wrapper">
119
119
  <div class="v-banner__content">
120
120
  <div class="v-banner__text">
@@ -100,6 +100,16 @@ export default mixins(
100
100
  },
101
101
 
102
102
  created () {
103
+ const breakingProps = [
104
+ ['inputValue', 'modelValue'],
105
+ ['onUpdate:input-value', 'onUpdate:modelValue'],
106
+ ]
107
+
108
+ /* istanbul ignore next */
109
+ breakingProps.forEach(([original, replacement]) => {
110
+ if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)
111
+ })
112
+
103
113
  /* istanbul ignore next */
104
114
  if (this.$attrs.hasOwnProperty('active')) {
105
115
  breaking('active.sync', 'value or v-model', this)
@@ -99,7 +99,7 @@ describe('VBtn.ts', () => {
99
99
  it('should use custom active-class', () => {
100
100
  const wrapper = mountFunction({
101
101
  props: {
102
- inputValue: true,
102
+ modelValue: true,
103
103
  activeClass: 'foo',
104
104
  },
105
105
  })
@@ -1,21 +1,49 @@
1
1
  import {
2
2
  mount,
3
- Wrapper,
4
- MountOptions,
3
+ VueWrapper,
4
+ MountingOptions,
5
5
  } from '@vue/test-utils'
6
6
  import VCard from '../VCard'
7
- import { ExtractVue } from '../../../util/mixins'
8
7
 
9
8
  describe('VCard.vue', () => {
10
- type Instance = ExtractVue<typeof VCard>
11
- let mountFunction: (options?: MountOptions<Instance>) => Wrapper<Instance>
9
+ type Instance = InstanceType<typeof VCard>
10
+ let mountFunction: (options?: MountingOptions<Instance>) => VueWrapper<Instance>
11
+
12
12
  beforeEach(() => {
13
- mountFunction = (options?: MountOptions<Instance>) => {
14
- return mount(VCard, {
15
- // https://github.com/vuejs/vue-test-utils/issues/1130
16
- sync: false,
13
+ mountFunction = (options?: MountingOptions<Instance>) => {
14
+ const defaultOptions = {
15
+ global: {
16
+ mocks: {
17
+ $vuetify: {
18
+ rtl: false,
19
+ lang: {
20
+ t: (val: string) => val,
21
+ },
22
+ icons: {
23
+ component: 'mdi',
24
+ },
25
+ },
26
+ $activeClass: 'v-card--active',
27
+ },
28
+ },
29
+ slots: {},
30
+ }
31
+
32
+ // Объединяем опции правильно
33
+ const mergedOptions = {
34
+ ...defaultOptions,
17
35
  ...options,
18
- })
36
+ slots: {
37
+ ...defaultOptions.slots,
38
+ ...options?.slots,
39
+ },
40
+ global: {
41
+ ...defaultOptions.global,
42
+ ...options?.global,
43
+ },
44
+ }
45
+
46
+ return mount(VCard, mergedOptions)
19
47
  }
20
48
  })
21
49
 
@@ -27,14 +55,9 @@ describe('VCard.vue', () => {
27
55
 
28
56
  it('should render loading card', () => {
29
57
  const wrapper = mountFunction({
30
- propsData: {
58
+ props: {
31
59
  loading: true,
32
60
  },
33
- mocks: {
34
- $vuetify: {
35
- rtl: false,
36
- },
37
- },
38
61
  })
39
62
 
40
63
  expect(wrapper.html()).toMatchSnapshot()
@@ -42,10 +65,8 @@ describe('VCard.vue', () => {
42
65
 
43
66
  it('should render card, which is link', () => {
44
67
  const wrapper = mountFunction({
45
- // https://github.com/vuejs/vue-test-utils/issues/1130
46
- sync: false,
47
- listeners: {
48
- click: () => {},
68
+ attrs: {
69
+ onClick: () => {},
49
70
  },
50
71
  })
51
72
 
@@ -54,7 +75,7 @@ describe('VCard.vue', () => {
54
75
 
55
76
  it('should render card with img', () => {
56
77
  const wrapper = mountFunction({
57
- propsData: {
78
+ props: {
58
79
  img: 'image.jpg',
59
80
  },
60
81
  })
@@ -64,7 +85,7 @@ describe('VCard.vue', () => {
64
85
 
65
86
  it('should render a flat card', () => {
66
87
  const wrapper = mountFunction({
67
- propsData: {
88
+ props: {
68
89
  flat: true,
69
90
  },
70
91
  })
@@ -74,7 +95,7 @@ describe('VCard.vue', () => {
74
95
 
75
96
  it('should render a raised card', () => {
76
97
  const wrapper = mountFunction({
77
- propsData: {
98
+ props: {
78
99
  raised: true,
79
100
  },
80
101
  })
@@ -85,9 +106,7 @@ describe('VCard.vue', () => {
85
106
  it('should render a card with custom height', async () => {
86
107
  const heightpx = '400px'
87
108
  const wrapper = mountFunction({
88
- // https://github.com/vuejs/vue-test-utils/issues/1130
89
- sync: false,
90
- propsData: {
109
+ props: {
91
110
  height: heightpx,
92
111
  },
93
112
  })
@@ -95,10 +114,9 @@ describe('VCard.vue', () => {
95
114
  expect(wrapper.element.style.height).toBe(heightpx)
96
115
  expect(wrapper.html()).toMatchSnapshot()
97
116
 
98
- wrapper.setProps({
117
+ await wrapper.setProps({
99
118
  height: 401,
100
119
  })
101
- await wrapper.vm.$nextTick()
102
120
  expect(wrapper.element.style.height).toBe('401px')
103
121
  })
104
122
  })
@@ -37,10 +37,10 @@ exports[`VCard.vue should render component and match snapshot 1`] = `
37
37
  exports[`VCard.vue should render loading card 1`] = `
38
38
  <div class="v-card v-card--loading v-sheet theme--light">
39
39
  <div class="v-card__progress">
40
- <div role="progressbar"
40
+ <div class="v-progress-linear v-progress-linear--absolute v-progress-linear--visible theme--light"
41
+ role="progressbar"
41
42
  aria-valuemin="0"
42
43
  aria-valuemax="100"
43
- class="v-progress-linear v-progress-linear--absolute v-progress-linear--visible theme--light"
44
44
  style="height: 4px;"
45
45
  >
46
46
  <div class="v-progress-linear__background primary"
@@ -115,6 +115,17 @@ export default defineComponent({
115
115
  },
116
116
 
117
117
  created () {
118
+ const breakingProps = [
119
+ ['value', 'modelValue'],
120
+ ['onInput', 'onUpdate:modelValue'],
121
+ ['onChange', 'onUpdate:modelValue'],
122
+ ]
123
+
124
+ /* istanbul ignore next */
125
+ breakingProps.forEach(([original, replacement]) => {
126
+ if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)
127
+ })
128
+
118
129
  /* istanbul ignore next */
119
130
  if (this.$attrs.hasOwnProperty('hide-controls')) {
120
131
  breaking('hide-controls', ':show-arrows="false"', this)