@dimailn/vuetify 2.7.2-alpha0 → 2.7.2-superbundle

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 (1011) hide show
  1. package/dist/vuetify.css +4806 -4806
  2. package/dist/vuetify.css.map +1 -1
  3. package/dist/vuetify.js +5556 -5330
  4. package/dist/vuetify.js.map +1 -1
  5. package/dist/vuetify.min.css +3 -3
  6. package/dist/vuetify.min.js +2 -2
  7. package/dist/vuetify.sass +109 -0
  8. package/es5/components/VAlert/VAlert.js +54 -38
  9. package/es5/components/VAlert/VAlert.js.map +1 -1
  10. package/es5/components/VApp/VApp.js +16 -12
  11. package/es5/components/VApp/VApp.js.map +1 -1
  12. package/es5/components/VAppBar/VAppBar.js +10 -12
  13. package/es5/components/VAppBar/VAppBar.js.map +1 -1
  14. package/es5/components/VAppBar/VAppBarNavIcon.js +20 -13
  15. package/es5/components/VAppBar/VAppBarNavIcon.js.map +1 -1
  16. package/es5/components/VAppBar/VAppBarTitle.js +8 -9
  17. package/es5/components/VAppBar/VAppBarTitle.js.map +1 -1
  18. package/es5/components/VAutocomplete/VAutocomplete.js +23 -22
  19. package/es5/components/VAutocomplete/VAutocomplete.js.map +1 -1
  20. package/es5/components/VAvatar/VAvatar.js +8 -9
  21. package/es5/components/VAvatar/VAvatar.js.map +1 -1
  22. package/es5/components/VBadge/VBadge.js +24 -20
  23. package/es5/components/VBadge/VBadge.js.map +1 -1
  24. package/es5/components/VBanner/VBanner.js +37 -32
  25. package/es5/components/VBanner/VBanner.js.map +1 -1
  26. package/es5/components/VBottomNavigation/VBottomNavigation.js +14 -11
  27. package/es5/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  28. package/es5/components/VBottomSheet/VBottomSheet.js +2 -5
  29. package/es5/components/VBottomSheet/VBottomSheet.js.map +1 -1
  30. package/es5/components/VBreadcrumbs/VBreadcrumbs.js +11 -11
  31. package/es5/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
  32. package/es5/components/VBreadcrumbs/VBreadcrumbsItem.js +7 -8
  33. package/es5/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
  34. package/es5/components/VBtn/VBtn.js +24 -30
  35. package/es5/components/VBtn/VBtn.js.map +1 -1
  36. package/es5/components/VBtnToggle/VBtnToggle.js +2 -2
  37. package/es5/components/VBtnToggle/VBtnToggle.js.map +1 -1
  38. package/es5/components/VCalendar/VCalendar.js +27 -25
  39. package/es5/components/VCalendar/VCalendar.js.map +1 -1
  40. package/es5/components/VCalendar/VCalendarCategory.js +21 -23
  41. package/es5/components/VCalendar/VCalendarCategory.js.map +1 -1
  42. package/es5/components/VCalendar/VCalendarDaily.js +69 -67
  43. package/es5/components/VCalendar/VCalendarDaily.js.map +1 -1
  44. package/es5/components/VCalendar/VCalendarMonthly.js +1 -4
  45. package/es5/components/VCalendar/VCalendarMonthly.js.map +1 -1
  46. package/es5/components/VCalendar/VCalendarWeekly.js +65 -64
  47. package/es5/components/VCalendar/VCalendarWeekly.js.map +1 -1
  48. package/es5/components/VCalendar/mixins/calendar-with-events.js +64 -58
  49. package/es5/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
  50. package/es5/components/VCalendar/mixins/calendar-with-intervals.js +1 -4
  51. package/es5/components/VCalendar/mixins/calendar-with-intervals.js.map +1 -1
  52. package/es5/components/VCalendar/mixins/times.js +4 -2
  53. package/es5/components/VCalendar/mixins/times.js.map +1 -1
  54. package/es5/components/VCard/VCard.js +11 -13
  55. package/es5/components/VCard/VCard.js.map +1 -1
  56. package/es5/components/VCarousel/VCarousel.js +37 -28
  57. package/es5/components/VCarousel/VCarousel.js.map +1 -1
  58. package/es5/components/VCarousel/VCarouselItem.js +18 -16
  59. package/es5/components/VCarousel/VCarouselItem.js.map +1 -1
  60. package/es5/components/VCheckbox/VCheckbox.js +10 -11
  61. package/es5/components/VCheckbox/VCheckbox.js.map +1 -1
  62. package/es5/components/VCheckbox/VSimpleCheckbox.js +29 -20
  63. package/es5/components/VCheckbox/VSimpleCheckbox.js.map +1 -1
  64. package/es5/components/VChip/VChip.js +44 -37
  65. package/es5/components/VChip/VChip.js.map +1 -1
  66. package/es5/components/VChipGroup/VChipGroup.js +2 -2
  67. package/es5/components/VChipGroup/VChipGroup.js.map +1 -1
  68. package/es5/components/VColorPicker/VColorPicker.js +38 -32
  69. package/es5/components/VColorPicker/VColorPicker.js.map +1 -1
  70. package/es5/components/VColorPicker/VColorPickerCanvas.js +22 -19
  71. package/es5/components/VColorPicker/VColorPickerCanvas.js.map +1 -1
  72. package/es5/components/VColorPicker/VColorPickerEdit.js +28 -25
  73. package/es5/components/VColorPicker/VColorPickerEdit.js.map +1 -1
  74. package/es5/components/VColorPicker/VColorPickerPreview.js +48 -37
  75. package/es5/components/VColorPicker/VColorPickerPreview.js.map +1 -1
  76. package/es5/components/VColorPicker/VColorPickerSwatches.js +15 -15
  77. package/es5/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
  78. package/es5/components/VCombobox/VCombobox.js +27 -22
  79. package/es5/components/VCombobox/VCombobox.js.map +1 -1
  80. package/es5/components/VContent/VContent.js +4 -8
  81. package/es5/components/VContent/VContent.js.map +1 -1
  82. package/es5/components/VCounter/VCounter.js +5 -7
  83. package/es5/components/VCounter/VCounter.js.map +1 -1
  84. package/es5/components/VData/VData.js +5 -3
  85. package/es5/components/VData/VData.js.map +1 -1
  86. package/es5/components/VDataIterator/VDataFooter.js +46 -34
  87. package/es5/components/VDataIterator/VDataFooter.js.map +1 -1
  88. package/es5/components/VDataIterator/VDataIterator.js +22 -20
  89. package/es5/components/VDataIterator/VDataIterator.js.map +1 -1
  90. package/es5/components/VDataTable/MobileRow.js +21 -15
  91. package/es5/components/VDataTable/MobileRow.js.map +1 -1
  92. package/es5/components/VDataTable/Row.js +15 -11
  93. package/es5/components/VDataTable/Row.js.map +1 -1
  94. package/es5/components/VDataTable/RowGroup.js +12 -9
  95. package/es5/components/VDataTable/RowGroup.js.map +1 -1
  96. package/es5/components/VDataTable/VDataTable.js +206 -176
  97. package/es5/components/VDataTable/VDataTable.js.map +1 -1
  98. package/es5/components/VDataTable/VDataTableHeader.js +20 -12
  99. package/es5/components/VDataTable/VDataTableHeader.js.map +1 -1
  100. package/es5/components/VDataTable/VDataTableHeaderDesktop.js +24 -21
  101. package/es5/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
  102. package/es5/components/VDataTable/VDataTableHeaderMobile.js +19 -22
  103. package/es5/components/VDataTable/VDataTableHeaderMobile.js.map +1 -1
  104. package/es5/components/VDataTable/VEditDialog.js +43 -34
  105. package/es5/components/VDataTable/VEditDialog.js.map +1 -1
  106. package/es5/components/VDataTable/VSimpleTable.js +7 -8
  107. package/es5/components/VDataTable/VSimpleTable.js.map +1 -1
  108. package/es5/components/VDataTable/VVirtualTable.js +16 -17
  109. package/es5/components/VDataTable/VVirtualTable.js.map +1 -1
  110. package/es5/components/VDataTable/mixins/header.js +18 -14
  111. package/es5/components/VDataTable/mixins/header.js.map +1 -1
  112. package/es5/components/VDatePicker/VDatePicker.js +113 -99
  113. package/es5/components/VDatePicker/VDatePicker.js.map +1 -1
  114. package/es5/components/VDatePicker/VDatePickerDateTable.js +12 -13
  115. package/es5/components/VDatePicker/VDatePickerDateTable.js.map +1 -1
  116. package/es5/components/VDatePicker/VDatePickerHeader.js +38 -26
  117. package/es5/components/VDatePicker/VDatePickerHeader.js.map +1 -1
  118. package/es5/components/VDatePicker/VDatePickerMonthTable.js +3 -3
  119. package/es5/components/VDatePicker/VDatePickerMonthTable.js.map +1 -1
  120. package/es5/components/VDatePicker/VDatePickerTitle.js +17 -12
  121. package/es5/components/VDatePicker/VDatePickerTitle.js.map +1 -1
  122. package/es5/components/VDatePicker/VDatePickerYears.js +3 -3
  123. package/es5/components/VDatePicker/VDatePickerYears.js.map +1 -1
  124. package/es5/components/VDatePicker/mixins/date-picker-table.js +47 -34
  125. package/es5/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  126. package/es5/components/VDatePicker/util/eventHelpers.js.map +1 -1
  127. package/es5/components/VDialog/VDialog.js +46 -29
  128. package/es5/components/VDialog/VDialog.js.map +1 -1
  129. package/es5/components/VDivider/VDivider.js +9 -11
  130. package/es5/components/VDivider/VDivider.js.map +1 -1
  131. package/es5/components/VExpansionPanel/VExpansionPanel.js +8 -9
  132. package/es5/components/VExpansionPanel/VExpansionPanel.js.map +1 -1
  133. package/es5/components/VExpansionPanel/VExpansionPanelContent.js +11 -9
  134. package/es5/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
  135. package/es5/components/VExpansionPanel/VExpansionPanelHeader.js +34 -31
  136. package/es5/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
  137. package/es5/components/VExpansionPanel/VExpansionPanels.js +2 -5
  138. package/es5/components/VExpansionPanel/VExpansionPanels.js.map +1 -1
  139. package/es5/components/VFileInput/VFileInput.js +35 -32
  140. package/es5/components/VFileInput/VFileInput.js.map +1 -1
  141. package/es5/components/VFooter/VFooter.js +9 -11
  142. package/es5/components/VFooter/VFooter.js.map +1 -1
  143. package/es5/components/VForm/VForm.js +12 -11
  144. package/es5/components/VForm/VForm.js.map +1 -1
  145. package/es5/components/VGrid/VCol.js +8 -8
  146. package/es5/components/VGrid/VCol.js.map +1 -1
  147. package/es5/components/VGrid/VContainer.js +19 -17
  148. package/es5/components/VGrid/VContainer.js.map +1 -1
  149. package/es5/components/VGrid/VRow.js +10 -7
  150. package/es5/components/VGrid/VRow.js.map +1 -1
  151. package/es5/components/VGrid/grid.js +9 -7
  152. package/es5/components/VGrid/grid.js.map +1 -1
  153. package/es5/components/VHover/VHover.js +3 -3
  154. package/es5/components/VHover/VHover.js.map +1 -1
  155. package/es5/components/VIcon/VIcon.js +36 -69
  156. package/es5/components/VIcon/VIcon.js.map +1 -1
  157. package/es5/components/VImg/VImg.js +41 -38
  158. package/es5/components/VImg/VImg.js.map +1 -1
  159. package/es5/components/VInput/VInput.js +77 -70
  160. package/es5/components/VInput/VInput.js.map +1 -1
  161. package/es5/components/VItemGroup/VItem.js +6 -5
  162. package/es5/components/VItemGroup/VItem.js.map +1 -1
  163. package/es5/components/VItemGroup/VItemGroup.js +4 -8
  164. package/es5/components/VItemGroup/VItemGroup.js.map +1 -1
  165. package/es5/components/VLabel/VLabel.js +15 -12
  166. package/es5/components/VLabel/VLabel.js.map +1 -1
  167. package/es5/components/VLazy/VLazy.js +7 -7
  168. package/es5/components/VLazy/VLazy.js.map +1 -1
  169. package/es5/components/VList/VList.js +12 -12
  170. package/es5/components/VList/VList.js.map +1 -1
  171. package/es5/components/VList/VListGroup.js +32 -31
  172. package/es5/components/VList/VListGroup.js.map +1 -1
  173. package/es5/components/VList/VListItem.js +22 -26
  174. package/es5/components/VList/VListItem.js.map +1 -1
  175. package/es5/components/VList/VListItemAction.js +11 -8
  176. package/es5/components/VList/VListItemAction.js.map +1 -1
  177. package/es5/components/VList/VListItemAvatar.js +9 -9
  178. package/es5/components/VList/VListItemAvatar.js.map +1 -1
  179. package/es5/components/VList/VListItemGroup.js +2 -2
  180. package/es5/components/VList/VListItemGroup.js.map +1 -1
  181. package/es5/components/VList/VListItemIcon.js +9 -11
  182. package/es5/components/VList/VListItemIcon.js.map +1 -1
  183. package/es5/components/VMain/VMain.js +5 -9
  184. package/es5/components/VMain/VMain.js.map +1 -1
  185. package/es5/components/VMenu/VMenu.js +66 -42
  186. package/es5/components/VMenu/VMenu.js.map +1 -1
  187. package/es5/components/VMessages/VMessages.js +12 -12
  188. package/es5/components/VMessages/VMessages.js.map +1 -1
  189. package/es5/components/VNavigationDrawer/VNavigationDrawer.js +59 -51
  190. package/es5/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  191. package/es5/components/VOtpInput/VOtpInput.js +57 -52
  192. package/es5/components/VOtpInput/VOtpInput.js.map +1 -1
  193. package/es5/components/VOverflowBtn/VOverflowBtn.js +8 -11
  194. package/es5/components/VOverflowBtn/VOverflowBtn.js.map +1 -1
  195. package/es5/components/VOverlay/VOverlay.js +8 -11
  196. package/es5/components/VOverlay/VOverlay.js.map +1 -1
  197. package/es5/components/VPagination/VPagination.js +48 -35
  198. package/es5/components/VPagination/VPagination.js.map +1 -1
  199. package/es5/components/VParallax/VParallax.js +20 -23
  200. package/es5/components/VParallax/VParallax.js.map +1 -1
  201. package/es5/components/VPicker/VPicker.js +21 -17
  202. package/es5/components/VPicker/VPicker.js.map +1 -1
  203. package/es5/components/VProgressCircular/VProgressCircular.js +40 -38
  204. package/es5/components/VProgressCircular/VProgressCircular.js.map +1 -1
  205. package/es5/components/VProgressLinear/VProgressLinear.js +32 -33
  206. package/es5/components/VProgressLinear/VProgressLinear.js.map +1 -1
  207. package/es5/components/VRadioGroup/VRadio.js +37 -29
  208. package/es5/components/VRadioGroup/VRadio.js.map +1 -1
  209. package/es5/components/VRadioGroup/VRadioGroup.js +17 -16
  210. package/es5/components/VRadioGroup/VRadioGroup.js.map +1 -1
  211. package/es5/components/VRangeSlider/VRangeSlider.js +7 -10
  212. package/es5/components/VRangeSlider/VRangeSlider.js.map +1 -1
  213. package/es5/components/VRating/VRating.js +48 -52
  214. package/es5/components/VRating/VRating.js.map +1 -1
  215. package/es5/components/VResponsive/VResponsive.js +11 -11
  216. package/es5/components/VResponsive/VResponsive.js.map +1 -1
  217. package/es5/components/VSelect/VSelect.js +125 -102
  218. package/es5/components/VSelect/VSelect.js.map +1 -1
  219. package/es5/components/VSelect/VSelectList.js +63 -44
  220. package/es5/components/VSelect/VSelectList.js.map +1 -1
  221. package/es5/components/VSheet/VSheet.js +5 -8
  222. package/es5/components/VSheet/VSheet.js.map +1 -1
  223. package/es5/components/VSkeletonLoader/VSkeletonLoader.js +22 -18
  224. package/es5/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
  225. package/es5/components/VSlideGroup/VSlideGroup.js +56 -39
  226. package/es5/components/VSlideGroup/VSlideGroup.js.map +1 -1
  227. package/es5/components/VSlider/VSlider.js +75 -62
  228. package/es5/components/VSlider/VSlider.js.map +1 -1
  229. package/es5/components/VSnackbar/VSnackbar.js +32 -22
  230. package/es5/components/VSnackbar/VSnackbar.js.map +1 -1
  231. package/es5/components/VSparkline/VSparkline.js +24 -24
  232. package/es5/components/VSparkline/VSparkline.js.map +1 -1
  233. package/es5/components/VSpeedDial/VSpeedDial.js +11 -11
  234. package/es5/components/VSpeedDial/VSpeedDial.js.map +1 -1
  235. package/es5/components/VStepper/VStepper.js +6 -7
  236. package/es5/components/VStepper/VStepper.js.map +1 -1
  237. package/es5/components/VStepper/VStepperContent.js +13 -15
  238. package/es5/components/VStepper/VStepperContent.js.map +1 -1
  239. package/es5/components/VStepper/VStepperStep.js +23 -22
  240. package/es5/components/VStepper/VStepperStep.js.map +1 -1
  241. package/es5/components/VSubheader/VSubheader.js +8 -7
  242. package/es5/components/VSubheader/VSubheader.js.map +1 -1
  243. package/es5/components/VSwitch/VSwitch.js +22 -22
  244. package/es5/components/VSwitch/VSwitch.js.map +1 -1
  245. package/es5/components/VSystemBar/VSystemBar.js +8 -9
  246. package/es5/components/VSystemBar/VSystemBar.js.map +1 -1
  247. package/es5/components/VTabs/VTab.js +10 -12
  248. package/es5/components/VTabs/VTab.js.map +1 -1
  249. package/es5/components/VTabs/VTabItem.js +4 -6
  250. package/es5/components/VTabs/VTabItem.js.map +1 -1
  251. package/es5/components/VTabs/VTabs.js +47 -34
  252. package/es5/components/VTabs/VTabs.js.map +1 -1
  253. package/es5/components/VTabs/VTabsBar.js +9 -8
  254. package/es5/components/VTabs/VTabsBar.js.map +1 -1
  255. package/es5/components/VTabs/VTabsItems.js +3 -6
  256. package/es5/components/VTabs/VTabsItems.js.map +1 -1
  257. package/es5/components/VTabs/VTabsSlider.js +3 -5
  258. package/es5/components/VTabs/VTabsSlider.js.map +1 -1
  259. package/es5/components/VTextField/VTextField.js +74 -59
  260. package/es5/components/VTextField/VTextField.js.map +1 -1
  261. package/es5/components/VTextarea/VTextarea.js +5 -6
  262. package/es5/components/VTextarea/VTextarea.js.map +1 -1
  263. package/es5/components/VThemeProvider/VThemeProvider.js +5 -5
  264. package/es5/components/VThemeProvider/VThemeProvider.js.map +1 -1
  265. package/es5/components/VTimePicker/VTimePicker.js +29 -25
  266. package/es5/components/VTimePicker/VTimePicker.js.map +1 -1
  267. package/es5/components/VTimePicker/VTimePickerClock.js +41 -40
  268. package/es5/components/VTimePicker/VTimePickerClock.js.map +1 -1
  269. package/es5/components/VTimePicker/VTimePickerTitle.js +14 -15
  270. package/es5/components/VTimePicker/VTimePickerTitle.js.map +1 -1
  271. package/es5/components/VTimeline/VTimeline.js +4 -5
  272. package/es5/components/VTimeline/VTimeline.js.map +1 -1
  273. package/es5/components/VTimeline/VTimelineItem.js +24 -24
  274. package/es5/components/VTimeline/VTimelineItem.js.map +1 -1
  275. package/es5/components/VToolbar/VToolbar.js +14 -17
  276. package/es5/components/VToolbar/VToolbar.js.map +1 -1
  277. package/es5/components/VTooltip/VTooltip.js +13 -11
  278. package/es5/components/VTooltip/VTooltip.js.map +1 -1
  279. package/es5/components/VTreeview/VTreeview.js +6 -7
  280. package/es5/components/VTreeview/VTreeview.js.map +1 -1
  281. package/es5/components/VTreeview/VTreeviewNode.js +109 -93
  282. package/es5/components/VTreeview/VTreeviewNode.js.map +1 -1
  283. package/es5/components/VVirtualScroll/VVirtualScroll.js +8 -12
  284. package/es5/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
  285. package/es5/components/VWindow/VWindow.js +38 -26
  286. package/es5/components/VWindow/VWindow.js.map +1 -1
  287. package/es5/components/VWindow/VWindowItem.js +30 -25
  288. package/es5/components/VWindow/VWindowItem.js.map +1 -1
  289. package/es5/components/index.js +112 -0
  290. package/es5/components/index.js.map +1 -1
  291. package/es5/components/transitions/createTransition.js +24 -22
  292. package/es5/components/transitions/createTransition.js.map +1 -1
  293. package/es5/directives/click-outside/index.js +6 -6
  294. package/es5/directives/click-outside/index.js.map +1 -1
  295. package/es5/directives/intersect/index.js +6 -6
  296. package/es5/directives/intersect/index.js.map +1 -1
  297. package/es5/directives/ripple/index.js +5 -11
  298. package/es5/directives/ripple/index.js.map +1 -1
  299. package/es5/directives/touch/index.js +6 -12
  300. package/es5/directives/touch/index.js.map +1 -1
  301. package/es5/framework.js +1 -1
  302. package/es5/framework.js.map +1 -1
  303. package/es5/helpers.js +64 -0
  304. package/es5/helpers.js.map +1 -0
  305. package/es5/index.js +36 -31
  306. package/es5/index.js.map +1 -1
  307. package/es5/install.js +15 -42
  308. package/es5/install.js.map +1 -1
  309. package/es5/mixins/activatable/index.js +8 -13
  310. package/es5/mixins/activatable/index.js.map +1 -1
  311. package/es5/mixins/binds-attrs/index.js +5 -3
  312. package/es5/mixins/binds-attrs/index.js.map +1 -1
  313. package/es5/mixins/bootable/index.js +5 -3
  314. package/es5/mixins/bootable/index.js.map +1 -1
  315. package/es5/mixins/button-group/index.js +3 -6
  316. package/es5/mixins/button-group/index.js.map +1 -1
  317. package/es5/mixins/colorable/index.js +8 -36
  318. package/es5/mixins/colorable/index.js.map +1 -1
  319. package/es5/mixins/comparable/index.js +4 -2
  320. package/es5/mixins/comparable/index.js.map +1 -1
  321. package/es5/mixins/delayable/index.js +4 -2
  322. package/es5/mixins/delayable/index.js.map +1 -1
  323. package/es5/mixins/dependent/index.js +2 -8
  324. package/es5/mixins/dependent/index.js.map +1 -1
  325. package/es5/mixins/detachable/index.js +2 -2
  326. package/es5/mixins/detachable/index.js.map +1 -1
  327. package/es5/mixins/elevatable/index.js +4 -2
  328. package/es5/mixins/elevatable/index.js.map +1 -1
  329. package/es5/mixins/filterable/index.js +4 -2
  330. package/es5/mixins/filterable/index.js.map +1 -1
  331. package/es5/mixins/groupable/index.js +11 -14
  332. package/es5/mixins/groupable/index.js.map +1 -1
  333. package/es5/mixins/intersectable/index.js +5 -11
  334. package/es5/mixins/intersectable/index.js.map +1 -1
  335. package/es5/mixins/loadable/index.js +9 -7
  336. package/es5/mixins/loadable/index.js.map +1 -1
  337. package/es5/mixins/localable/index.js +4 -2
  338. package/es5/mixins/localable/index.js.map +1 -1
  339. package/es5/mixins/measurable/index.js +4 -2
  340. package/es5/mixins/measurable/index.js.map +1 -1
  341. package/es5/mixins/menuable/index.js +5 -5
  342. package/es5/mixins/menuable/index.js.map +1 -1
  343. package/es5/mixins/mobile/index.js +13 -9
  344. package/es5/mixins/mobile/index.js.map +1 -1
  345. package/es5/mixins/mouse/index.js +6 -10
  346. package/es5/mixins/mouse/index.js.map +1 -1
  347. package/es5/mixins/overlayable/index.js +16 -46
  348. package/es5/mixins/overlayable/index.js.map +1 -1
  349. package/es5/mixins/picker/index.js +20 -19
  350. package/es5/mixins/picker/index.js.map +1 -1
  351. package/es5/mixins/picker-button/index.js +11 -14
  352. package/es5/mixins/picker-button/index.js.map +1 -1
  353. package/es5/mixins/positionable/index.js +4 -2
  354. package/es5/mixins/positionable/index.js.map +1 -1
  355. package/es5/mixins/proxyable/index.js +6 -4
  356. package/es5/mixins/proxyable/index.js.map +1 -1
  357. package/es5/mixins/registrable/index.js +5 -3
  358. package/es5/mixins/registrable/index.js.map +1 -1
  359. package/es5/mixins/returnable/index.js +4 -2
  360. package/es5/mixins/returnable/index.js.map +1 -1
  361. package/es5/mixins/rippleable/index.js +13 -21
  362. package/es5/mixins/rippleable/index.js.map +1 -1
  363. package/es5/mixins/roundable/index.js +4 -2
  364. package/es5/mixins/roundable/index.js.map +1 -1
  365. package/es5/mixins/routable/index.js +25 -24
  366. package/es5/mixins/routable/index.js.map +1 -1
  367. package/es5/mixins/scrollable/index.js +4 -2
  368. package/es5/mixins/scrollable/index.js.map +1 -1
  369. package/es5/mixins/selectable/index.js +33 -31
  370. package/es5/mixins/selectable/index.js.map +1 -1
  371. package/es5/mixins/sizeable/index.js +4 -2
  372. package/es5/mixins/sizeable/index.js.map +1 -1
  373. package/es5/mixins/ssr-bootable/index.js +4 -2
  374. package/es5/mixins/ssr-bootable/index.js.map +1 -1
  375. package/es5/mixins/stackable/index.js +4 -2
  376. package/es5/mixins/stackable/index.js.map +1 -1
  377. package/es5/mixins/themeable/index.js +16 -5
  378. package/es5/mixins/themeable/index.js.map +1 -1
  379. package/es5/mixins/toggleable/index.js +10 -4
  380. package/es5/mixins/toggleable/index.js.map +1 -1
  381. package/es5/mixins/transitionable/index.js +4 -2
  382. package/es5/mixins/transitionable/index.js.map +1 -1
  383. package/es5/mixins/translatable/index.js +4 -2
  384. package/es5/mixins/translatable/index.js.map +1 -1
  385. package/es5/mixins/validatable/index.js +1 -1
  386. package/es5/mixins/validatable/index.js.map +1 -1
  387. package/es5/services/goto/util.js.map +1 -1
  388. package/es5/services/theme/index.js +19 -6
  389. package/es5/services/theme/index.js.map +1 -1
  390. package/es5/util/helpers.js +20 -33
  391. package/es5/util/helpers.js.map +1 -1
  392. package/es5/util/mergeData.js +1 -1
  393. package/es5/util/mergeData.js.map +1 -1
  394. package/es5/util/mixins.js +5 -11
  395. package/es5/util/mixins.js.map +1 -1
  396. package/es5/vuetify.js +45 -0
  397. package/es5/vuetify.js.map +1 -0
  398. package/lib/components/VAlert/VAlert.js +54 -38
  399. package/lib/components/VAlert/VAlert.js.map +1 -1
  400. package/lib/components/VApp/VApp.js +14 -10
  401. package/lib/components/VApp/VApp.js.map +1 -1
  402. package/lib/components/VAppBar/VAppBar.js +11 -12
  403. package/lib/components/VAppBar/VAppBar.js.map +1 -1
  404. package/lib/components/VAppBar/VAppBarNavIcon.js +15 -10
  405. package/lib/components/VAppBar/VAppBarNavIcon.js.map +1 -1
  406. package/lib/components/VAppBar/VAppBarTitle.js +4 -6
  407. package/lib/components/VAppBar/VAppBarTitle.js.map +1 -1
  408. package/lib/components/VAutocomplete/VAutocomplete.js +23 -22
  409. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  410. package/lib/components/VAvatar/VAvatar.js +4 -4
  411. package/lib/components/VAvatar/VAvatar.js.map +1 -1
  412. package/lib/components/VBadge/VBadge.js +23 -19
  413. package/lib/components/VBadge/VBadge.js.map +1 -1
  414. package/lib/components/VBanner/VBanner.js +28 -23
  415. package/lib/components/VBanner/VBanner.js.map +1 -1
  416. package/lib/components/VBottomNavigation/VBottomNavigation.js +14 -10
  417. package/lib/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  418. package/lib/components/VBottomSheet/VBottomSheet.js +2 -4
  419. package/lib/components/VBottomSheet/VBottomSheet.js.map +1 -1
  420. package/lib/components/VBreadcrumbs/VBreadcrumbs.js +9 -9
  421. package/lib/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
  422. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js +7 -7
  423. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
  424. package/lib/components/VBtn/VBtn.js +25 -31
  425. package/lib/components/VBtn/VBtn.js.map +1 -1
  426. package/lib/components/VBtnToggle/VBtnToggle.js +2 -2
  427. package/lib/components/VBtnToggle/VBtnToggle.js.map +1 -1
  428. package/lib/components/VCalendar/VCalendar.js +25 -24
  429. package/lib/components/VCalendar/VCalendar.js.map +1 -1
  430. package/lib/components/VCalendar/VCalendarCategory.js +16 -19
  431. package/lib/components/VCalendar/VCalendarCategory.js.map +1 -1
  432. package/lib/components/VCalendar/VCalendarDaily.js +39 -41
  433. package/lib/components/VCalendar/VCalendarDaily.js.map +1 -1
  434. package/lib/components/VCalendar/VCalendarMonthly.js +1 -3
  435. package/lib/components/VCalendar/VCalendarMonthly.js.map +1 -1
  436. package/lib/components/VCalendar/VCalendarWeekly.js +30 -32
  437. package/lib/components/VCalendar/VCalendarWeekly.js.map +1 -1
  438. package/lib/components/VCalendar/mixins/calendar-with-events.js +24 -27
  439. package/lib/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
  440. package/lib/components/VCalendar/mixins/calendar-with-intervals.js +1 -3
  441. package/lib/components/VCalendar/mixins/calendar-with-intervals.js.map +1 -1
  442. package/lib/components/VCalendar/mixins/times.js +2 -2
  443. package/lib/components/VCalendar/mixins/times.js.map +1 -1
  444. package/lib/components/VCard/VCard.js +12 -14
  445. package/lib/components/VCard/VCard.js.map +1 -1
  446. package/lib/components/VCarousel/VCarousel.js +39 -31
  447. package/lib/components/VCarousel/VCarousel.js.map +1 -1
  448. package/lib/components/VCarousel/VCarouselItem.js +19 -17
  449. package/lib/components/VCarousel/VCarouselItem.js.map +1 -1
  450. package/lib/components/VCheckbox/VCheckbox.js +10 -10
  451. package/lib/components/VCheckbox/VCheckbox.js.map +1 -1
  452. package/lib/components/VCheckbox/VSimpleCheckbox.js +25 -19
  453. package/lib/components/VCheckbox/VSimpleCheckbox.js.map +1 -1
  454. package/lib/components/VChip/VChip.js +43 -34
  455. package/lib/components/VChip/VChip.js.map +1 -1
  456. package/lib/components/VChipGroup/VChipGroup.js +2 -2
  457. package/lib/components/VChipGroup/VChipGroup.js.map +1 -1
  458. package/lib/components/VColorPicker/VColorPicker.js +30 -23
  459. package/lib/components/VColorPicker/VColorPicker.js.map +1 -1
  460. package/lib/components/VColorPicker/VColorPickerCanvas.js +8 -9
  461. package/lib/components/VColorPicker/VColorPickerCanvas.js.map +1 -1
  462. package/lib/components/VColorPicker/VColorPickerEdit.js +24 -19
  463. package/lib/components/VColorPicker/VColorPickerEdit.js.map +1 -1
  464. package/lib/components/VColorPicker/VColorPickerPreview.js +45 -35
  465. package/lib/components/VColorPicker/VColorPickerPreview.js.map +1 -1
  466. package/lib/components/VColorPicker/VColorPickerSwatches.js +15 -14
  467. package/lib/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
  468. package/lib/components/VCombobox/VCombobox.js +20 -20
  469. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  470. package/lib/components/VContent/VContent.js +4 -8
  471. package/lib/components/VContent/VContent.js.map +1 -1
  472. package/lib/components/VCounter/VCounter.js +7 -7
  473. package/lib/components/VCounter/VCounter.js.map +1 -1
  474. package/lib/components/VData/VData.js +3 -3
  475. package/lib/components/VData/VData.js.map +1 -1
  476. package/lib/components/VDataIterator/VDataFooter.js +46 -34
  477. package/lib/components/VDataIterator/VDataFooter.js.map +1 -1
  478. package/lib/components/VDataIterator/VDataIterator.js +20 -16
  479. package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
  480. package/lib/components/VDataTable/MobileRow.js +16 -11
  481. package/lib/components/VDataTable/MobileRow.js.map +1 -1
  482. package/lib/components/VDataTable/Row.js +12 -6
  483. package/lib/components/VDataTable/Row.js.map +1 -1
  484. package/lib/components/VDataTable/RowGroup.js +9 -7
  485. package/lib/components/VDataTable/RowGroup.js.map +1 -1
  486. package/lib/components/VDataTable/VDataTable.js +169 -135
  487. package/lib/components/VDataTable/VDataTable.js.map +1 -1
  488. package/lib/components/VDataTable/VDataTableHeader.js +19 -11
  489. package/lib/components/VDataTable/VDataTableHeader.js.map +1 -1
  490. package/lib/components/VDataTable/VDataTableHeaderDesktop.js +24 -21
  491. package/lib/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
  492. package/lib/components/VDataTable/VDataTableHeaderMobile.js +9 -10
  493. package/lib/components/VDataTable/VDataTableHeaderMobile.js.map +1 -1
  494. package/lib/components/VDataTable/VEditDialog.js +41 -31
  495. package/lib/components/VDataTable/VEditDialog.js.map +1 -1
  496. package/lib/components/VDataTable/VSimpleTable.js +6 -6
  497. package/lib/components/VDataTable/VSimpleTable.js.map +1 -1
  498. package/lib/components/VDataTable/VVirtualTable.js +11 -12
  499. package/lib/components/VDataTable/VVirtualTable.js.map +1 -1
  500. package/lib/components/VDataTable/mixins/header.js +17 -12
  501. package/lib/components/VDataTable/mixins/header.js.map +1 -1
  502. package/lib/components/VDatePicker/VDatePicker.js +107 -92
  503. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  504. package/lib/components/VDatePicker/VDatePickerDateTable.js +11 -13
  505. package/lib/components/VDatePicker/VDatePickerDateTable.js.map +1 -1
  506. package/lib/components/VDatePicker/VDatePickerHeader.js +37 -25
  507. package/lib/components/VDatePicker/VDatePickerHeader.js.map +1 -1
  508. package/lib/components/VDatePicker/VDatePickerMonthTable.js +3 -3
  509. package/lib/components/VDatePicker/VDatePickerMonthTable.js.map +1 -1
  510. package/lib/components/VDatePicker/VDatePickerTitle.js +16 -10
  511. package/lib/components/VDatePicker/VDatePickerTitle.js.map +1 -1
  512. package/lib/components/VDatePicker/VDatePickerYears.js +3 -3
  513. package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
  514. package/lib/components/VDatePicker/mixins/date-picker-table.js +36 -27
  515. package/lib/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  516. package/lib/components/VDatePicker/util/eventHelpers.js.map +1 -1
  517. package/lib/components/VDialog/VDialog.js +46 -27
  518. package/lib/components/VDialog/VDialog.js.map +1 -1
  519. package/lib/components/VDivider/VDivider.js +12 -14
  520. package/lib/components/VDivider/VDivider.js.map +1 -1
  521. package/lib/components/VExpansionPanel/VExpansionPanel.js +8 -9
  522. package/lib/components/VExpansionPanel/VExpansionPanel.js.map +1 -1
  523. package/lib/components/VExpansionPanel/VExpansionPanelContent.js +9 -6
  524. package/lib/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
  525. package/lib/components/VExpansionPanel/VExpansionPanelHeader.js +31 -21
  526. package/lib/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
  527. package/lib/components/VExpansionPanel/VExpansionPanels.js +2 -4
  528. package/lib/components/VExpansionPanel/VExpansionPanels.js.map +1 -1
  529. package/lib/components/VFileInput/VFileInput.js +34 -31
  530. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  531. package/lib/components/VFooter/VFooter.js +5 -6
  532. package/lib/components/VFooter/VFooter.js.map +1 -1
  533. package/lib/components/VForm/VForm.js +11 -8
  534. package/lib/components/VForm/VForm.js.map +1 -1
  535. package/lib/components/VGrid/VCol.js +9 -9
  536. package/lib/components/VGrid/VCol.js.map +1 -1
  537. package/lib/components/VGrid/VContainer.js +22 -16
  538. package/lib/components/VGrid/VContainer.js.map +1 -1
  539. package/lib/components/VGrid/VRow.js +12 -9
  540. package/lib/components/VGrid/VRow.js.map +1 -1
  541. package/lib/components/VGrid/grid.js +7 -6
  542. package/lib/components/VGrid/grid.js.map +1 -1
  543. package/lib/components/VHover/VHover.js +3 -3
  544. package/lib/components/VHover/VHover.js.map +1 -1
  545. package/lib/components/VIcon/VIcon.js +36 -65
  546. package/lib/components/VIcon/VIcon.js.map +1 -1
  547. package/lib/components/VImg/VImg.js +41 -32
  548. package/lib/components/VImg/VImg.js.map +1 -1
  549. package/lib/components/VInput/VInput.js +61 -59
  550. package/lib/components/VInput/VInput.js.map +1 -1
  551. package/lib/components/VItemGroup/VItem.js +5 -5
  552. package/lib/components/VItemGroup/VItem.js.map +1 -1
  553. package/lib/components/VItemGroup/VItemGroup.js +4 -8
  554. package/lib/components/VItemGroup/VItemGroup.js.map +1 -1
  555. package/lib/components/VLabel/VLabel.js +18 -13
  556. package/lib/components/VLabel/VLabel.js.map +1 -1
  557. package/lib/components/VLazy/VLazy.js +7 -6
  558. package/lib/components/VLazy/VLazy.js.map +1 -1
  559. package/lib/components/VList/VList.js +12 -13
  560. package/lib/components/VList/VList.js.map +1 -1
  561. package/lib/components/VList/VListGroup.js +29 -21
  562. package/lib/components/VList/VListGroup.js.map +1 -1
  563. package/lib/components/VList/VListItem.js +26 -25
  564. package/lib/components/VList/VListItem.js.map +1 -1
  565. package/lib/components/VList/VListItemAction.js +8 -7
  566. package/lib/components/VList/VListItemAction.js.map +1 -1
  567. package/lib/components/VList/VListItemAvatar.js +9 -10
  568. package/lib/components/VList/VListItemAvatar.js.map +1 -1
  569. package/lib/components/VList/VListItemGroup.js +2 -2
  570. package/lib/components/VList/VListItemGroup.js.map +1 -1
  571. package/lib/components/VList/VListItemIcon.js +8 -7
  572. package/lib/components/VList/VListItemIcon.js.map +1 -1
  573. package/lib/components/VMain/VMain.js +5 -8
  574. package/lib/components/VMain/VMain.js.map +1 -1
  575. package/lib/components/VMenu/VMenu.js +65 -40
  576. package/lib/components/VMenu/VMenu.js.map +1 -1
  577. package/lib/components/VMessages/VMessages.js +12 -11
  578. package/lib/components/VMessages/VMessages.js.map +1 -1
  579. package/lib/components/VNavigationDrawer/VNavigationDrawer.js +60 -49
  580. package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  581. package/lib/components/VOtpInput/VOtpInput.js +46 -40
  582. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  583. package/lib/components/VOverflowBtn/VOverflowBtn.js +8 -10
  584. package/lib/components/VOverflowBtn/VOverflowBtn.js.map +1 -1
  585. package/lib/components/VOverlay/VOverlay.js +8 -10
  586. package/lib/components/VOverlay/VOverlay.js.map +1 -1
  587. package/lib/components/VPagination/VPagination.js +42 -30
  588. package/lib/components/VPagination/VPagination.js.map +1 -1
  589. package/lib/components/VParallax/VParallax.js +13 -12
  590. package/lib/components/VParallax/VParallax.js.map +1 -1
  591. package/lib/components/VPicker/VPicker.js +20 -15
  592. package/lib/components/VPicker/VPicker.js.map +1 -1
  593. package/lib/components/VProgressCircular/VProgressCircular.js +37 -30
  594. package/lib/components/VProgressCircular/VProgressCircular.js.map +1 -1
  595. package/lib/components/VProgressLinear/VProgressLinear.js +30 -24
  596. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  597. package/lib/components/VRadioGroup/VRadio.js +34 -24
  598. package/lib/components/VRadioGroup/VRadio.js.map +1 -1
  599. package/lib/components/VRadioGroup/VRadioGroup.js +18 -17
  600. package/lib/components/VRadioGroup/VRadioGroup.js.map +1 -1
  601. package/lib/components/VRangeSlider/VRangeSlider.js +7 -9
  602. package/lib/components/VRangeSlider/VRangeSlider.js.map +1 -1
  603. package/lib/components/VRating/VRating.js +34 -34
  604. package/lib/components/VRating/VRating.js.map +1 -1
  605. package/lib/components/VResponsive/VResponsive.js +11 -10
  606. package/lib/components/VResponsive/VResponsive.js.map +1 -1
  607. package/lib/components/VSelect/VSelect.js +122 -94
  608. package/lib/components/VSelect/VSelect.js.map +1 -1
  609. package/lib/components/VSelect/VSelectList.js +59 -39
  610. package/lib/components/VSelect/VSelectList.js.map +1 -1
  611. package/lib/components/VSheet/VSheet.js +6 -10
  612. package/lib/components/VSheet/VSheet.js.map +1 -1
  613. package/lib/components/VSkeletonLoader/VSkeletonLoader.js +21 -16
  614. package/lib/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
  615. package/lib/components/VSlideGroup/VSlideGroup.js +51 -35
  616. package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
  617. package/lib/components/VSlider/VSlider.js +75 -63
  618. package/lib/components/VSlider/VSlider.js.map +1 -1
  619. package/lib/components/VSnackbar/VSnackbar.js +31 -20
  620. package/lib/components/VSnackbar/VSnackbar.js.map +1 -1
  621. package/lib/components/VSparkline/VSparkline.js +16 -17
  622. package/lib/components/VSparkline/VSparkline.js.map +1 -1
  623. package/lib/components/VSpeedDial/VSpeedDial.js +10 -9
  624. package/lib/components/VSpeedDial/VSpeedDial.js.map +1 -1
  625. package/lib/components/VStepper/VStepper.js +6 -6
  626. package/lib/components/VStepper/VStepper.js.map +1 -1
  627. package/lib/components/VStepper/VStepperContent.js +8 -8
  628. package/lib/components/VStepper/VStepperContent.js.map +1 -1
  629. package/lib/components/VStepper/VStepperStep.js +9 -10
  630. package/lib/components/VStepper/VStepperStep.js.map +1 -1
  631. package/lib/components/VSubheader/VSubheader.js +7 -7
  632. package/lib/components/VSubheader/VSubheader.js.map +1 -1
  633. package/lib/components/VSwitch/VSwitch.js +26 -23
  634. package/lib/components/VSwitch/VSwitch.js.map +1 -1
  635. package/lib/components/VSystemBar/VSystemBar.js +3 -4
  636. package/lib/components/VSystemBar/VSystemBar.js.map +1 -1
  637. package/lib/components/VTabs/VTab.js +12 -13
  638. package/lib/components/VTabs/VTab.js.map +1 -1
  639. package/lib/components/VTabs/VTabItem.js +4 -5
  640. package/lib/components/VTabs/VTabItem.js.map +1 -1
  641. package/lib/components/VTabs/VTabs.js +48 -34
  642. package/lib/components/VTabs/VTabs.js.map +1 -1
  643. package/lib/components/VTabs/VTabsBar.js +10 -8
  644. package/lib/components/VTabs/VTabsBar.js.map +1 -1
  645. package/lib/components/VTabs/VTabsItems.js +3 -5
  646. package/lib/components/VTabs/VTabsItems.js.map +1 -1
  647. package/lib/components/VTabs/VTabsSlider.js +3 -4
  648. package/lib/components/VTabs/VTabsSlider.js.map +1 -1
  649. package/lib/components/VTextField/VTextField.js +73 -57
  650. package/lib/components/VTextField/VTextField.js.map +1 -1
  651. package/lib/components/VTextarea/VTextarea.js +5 -6
  652. package/lib/components/VTextarea/VTextarea.js.map +1 -1
  653. package/lib/components/VThemeProvider/VThemeProvider.js +4 -5
  654. package/lib/components/VThemeProvider/VThemeProvider.js.map +1 -1
  655. package/lib/components/VTimePicker/VTimePicker.js +26 -22
  656. package/lib/components/VTimePicker/VTimePicker.js.map +1 -1
  657. package/lib/components/VTimePicker/VTimePickerClock.js +7 -8
  658. package/lib/components/VTimePicker/VTimePickerClock.js.map +1 -1
  659. package/lib/components/VTimePicker/VTimePickerTitle.js +7 -8
  660. package/lib/components/VTimePicker/VTimePickerTitle.js.map +1 -1
  661. package/lib/components/VTimeline/VTimeline.js +4 -4
  662. package/lib/components/VTimeline/VTimeline.js.map +1 -1
  663. package/lib/components/VTimeline/VTimelineItem.js +26 -23
  664. package/lib/components/VTimeline/VTimelineItem.js.map +1 -1
  665. package/lib/components/VToolbar/VToolbar.js +15 -19
  666. package/lib/components/VToolbar/VToolbar.js.map +1 -1
  667. package/lib/components/VTooltip/VTooltip.js +12 -9
  668. package/lib/components/VTooltip/VTooltip.js.map +1 -1
  669. package/lib/components/VTreeview/VTreeview.js +6 -6
  670. package/lib/components/VTreeview/VTreeview.js.map +1 -1
  671. package/lib/components/VTreeview/VTreeviewNode.js +98 -83
  672. package/lib/components/VTreeview/VTreeviewNode.js.map +1 -1
  673. package/lib/components/VVirtualScroll/VVirtualScroll.js +8 -12
  674. package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
  675. package/lib/components/VWindow/VWindow.js +37 -27
  676. package/lib/components/VWindow/VWindow.js.map +1 -1
  677. package/lib/components/VWindow/VWindowItem.js +29 -23
  678. package/lib/components/VWindow/VWindowItem.js.map +1 -1
  679. package/lib/components/index.js +4 -0
  680. package/lib/components/index.js.map +1 -1
  681. package/lib/components/transitions/createTransition.js +25 -20
  682. package/lib/components/transitions/createTransition.js.map +1 -1
  683. package/lib/directives/click-outside/index.js +6 -6
  684. package/lib/directives/click-outside/index.js.map +1 -1
  685. package/lib/directives/intersect/index.js +6 -6
  686. package/lib/directives/intersect/index.js.map +1 -1
  687. package/lib/directives/ripple/index.js +5 -6
  688. package/lib/directives/ripple/index.js.map +1 -1
  689. package/lib/directives/touch/index.js +6 -7
  690. package/lib/directives/touch/index.js.map +1 -1
  691. package/lib/framework.js +1 -1
  692. package/lib/framework.js.map +1 -1
  693. package/lib/helpers.js +9 -0
  694. package/lib/helpers.js.map +1 -0
  695. package/lib/install.js +16 -39
  696. package/lib/install.js.map +1 -1
  697. package/lib/mixins/activatable/index.js +8 -9
  698. package/lib/mixins/activatable/index.js.map +1 -1
  699. package/lib/mixins/binds-attrs/index.js +3 -3
  700. package/lib/mixins/binds-attrs/index.js.map +1 -1
  701. package/lib/mixins/bootable/index.js +4 -5
  702. package/lib/mixins/bootable/index.js.map +1 -1
  703. package/lib/mixins/button-group/index.js +3 -5
  704. package/lib/mixins/button-group/index.js.map +1 -1
  705. package/lib/mixins/colorable/index.js +6 -42
  706. package/lib/mixins/colorable/index.js.map +1 -1
  707. package/lib/mixins/comparable/index.js +2 -2
  708. package/lib/mixins/comparable/index.js.map +1 -1
  709. package/lib/mixins/delayable/index.js +2 -2
  710. package/lib/mixins/delayable/index.js.map +1 -1
  711. package/lib/mixins/dependent/index.js +2 -8
  712. package/lib/mixins/dependent/index.js.map +1 -1
  713. package/lib/mixins/detachable/index.js +2 -2
  714. package/lib/mixins/detachable/index.js.map +1 -1
  715. package/lib/mixins/elevatable/index.js +2 -2
  716. package/lib/mixins/elevatable/index.js.map +1 -1
  717. package/lib/mixins/filterable/index.js +2 -2
  718. package/lib/mixins/filterable/index.js.map +1 -1
  719. package/lib/mixins/groupable/index.js +11 -13
  720. package/lib/mixins/groupable/index.js.map +1 -1
  721. package/lib/mixins/intersectable/index.js +5 -11
  722. package/lib/mixins/intersectable/index.js.map +1 -1
  723. package/lib/mixins/loadable/index.js +9 -7
  724. package/lib/mixins/loadable/index.js.map +1 -1
  725. package/lib/mixins/localable/index.js +2 -2
  726. package/lib/mixins/localable/index.js.map +1 -1
  727. package/lib/mixins/measurable/index.js +2 -2
  728. package/lib/mixins/measurable/index.js.map +1 -1
  729. package/lib/mixins/menuable/index.js +5 -5
  730. package/lib/mixins/menuable/index.js.map +1 -1
  731. package/lib/mixins/mobile/index.js +12 -9
  732. package/lib/mixins/mobile/index.js.map +1 -1
  733. package/lib/mixins/mouse/index.js +4 -11
  734. package/lib/mixins/mouse/index.js.map +1 -1
  735. package/lib/mixins/overlayable/index.js +13 -44
  736. package/lib/mixins/overlayable/index.js.map +1 -1
  737. package/lib/mixins/picker/index.js +21 -19
  738. package/lib/mixins/picker/index.js.map +1 -1
  739. package/lib/mixins/picker-button/index.js +9 -10
  740. package/lib/mixins/picker-button/index.js.map +1 -1
  741. package/lib/mixins/positionable/index.js +2 -2
  742. package/lib/mixins/positionable/index.js.map +1 -1
  743. package/lib/mixins/proxyable/index.js +3 -3
  744. package/lib/mixins/proxyable/index.js.map +1 -1
  745. package/lib/mixins/registrable/index.js +3 -3
  746. package/lib/mixins/registrable/index.js.map +1 -1
  747. package/lib/mixins/returnable/index.js +2 -2
  748. package/lib/mixins/returnable/index.js.map +1 -1
  749. package/lib/mixins/rippleable/index.js +11 -9
  750. package/lib/mixins/rippleable/index.js.map +1 -1
  751. package/lib/mixins/roundable/index.js +2 -2
  752. package/lib/mixins/roundable/index.js.map +1 -1
  753. package/lib/mixins/routable/index.js +24 -20
  754. package/lib/mixins/routable/index.js.map +1 -1
  755. package/lib/mixins/scrollable/index.js +2 -2
  756. package/lib/mixins/scrollable/index.js.map +1 -1
  757. package/lib/mixins/selectable/index.js +23 -17
  758. package/lib/mixins/selectable/index.js.map +1 -1
  759. package/lib/mixins/sizeable/index.js +2 -2
  760. package/lib/mixins/sizeable/index.js.map +1 -1
  761. package/lib/mixins/ssr-bootable/index.js +2 -2
  762. package/lib/mixins/ssr-bootable/index.js.map +1 -1
  763. package/lib/mixins/stackable/index.js +2 -2
  764. package/lib/mixins/stackable/index.js.map +1 -1
  765. package/lib/mixins/themeable/index.js +8 -5
  766. package/lib/mixins/themeable/index.js.map +1 -1
  767. package/lib/mixins/toggleable/index.js +7 -3
  768. package/lib/mixins/toggleable/index.js.map +1 -1
  769. package/lib/mixins/transitionable/index.js +2 -2
  770. package/lib/mixins/transitionable/index.js.map +1 -1
  771. package/lib/mixins/translatable/index.js +2 -2
  772. package/lib/mixins/translatable/index.js.map +1 -1
  773. package/lib/mixins/validatable/index.js +1 -1
  774. package/lib/mixins/validatable/index.js.map +1 -1
  775. package/lib/services/goto/util.js.map +1 -1
  776. package/lib/services/theme/index.js +11 -7
  777. package/lib/services/theme/index.js.map +1 -1
  778. package/lib/util/helpers.js +16 -28
  779. package/lib/util/helpers.js.map +1 -1
  780. package/lib/util/mergeData.js +1 -1
  781. package/lib/util/mergeData.js.map +1 -1
  782. package/lib/util/mixins.js +4 -9
  783. package/lib/util/mixins.js.map +1 -1
  784. package/lib/vuetify.js +19 -0
  785. package/lib/vuetify.js.map +1 -0
  786. package/package.json +9 -8
  787. package/src/components/VAlert/VAlert.ts +50 -42
  788. package/src/components/VApp/VApp.ts +9 -11
  789. package/src/components/VAppBar/VAppBar.ts +10 -11
  790. package/src/components/VAppBar/VAppBarNavIcon.ts +11 -9
  791. package/src/components/VAppBar/VAppBarTitle.ts +3 -5
  792. package/src/components/VAutocomplete/VAutocomplete.ts +22 -21
  793. package/src/components/VAvatar/VAvatar.ts +4 -4
  794. package/src/components/VBadge/VBadge.ts +22 -18
  795. package/src/components/VBanner/VBanner.ts +27 -22
  796. package/src/components/VBanner/__tests__/VBanner.spec.ts +2 -2
  797. package/src/components/VBottomNavigation/VBottomNavigation.ts +14 -12
  798. package/src/components/VBottomSheet/VBottomSheet.ts +2 -4
  799. package/src/components/VBreadcrumbs/VBreadcrumbs.ts +7 -7
  800. package/src/components/VBreadcrumbs/VBreadcrumbsItem.ts +8 -6
  801. package/src/components/VBreadcrumbs/__tests__/VBreadcrumbs.spec.ts +1 -1
  802. package/src/components/VBtn/VBtn.ts +25 -34
  803. package/src/components/VBtn/__tests__/VBtn.spec.ts +219 -219
  804. package/src/components/VBtnToggle/VBtnToggle.ts +2 -2
  805. package/src/components/VCalendar/VCalendar.ts +28 -22
  806. package/src/components/VCalendar/VCalendarCategory.ts +16 -17
  807. package/src/components/VCalendar/VCalendarDaily.ts +38 -38
  808. package/src/components/VCalendar/VCalendarMonthly.ts +1 -3
  809. package/src/components/VCalendar/VCalendarWeekly.ts +29 -29
  810. package/src/components/VCalendar/mixins/calendar-with-events.ts +21 -23
  811. package/src/components/VCalendar/mixins/calendar-with-intervals.ts +1 -3
  812. package/src/components/VCalendar/mixins/times.ts +2 -2
  813. package/src/components/VCard/VCard.ts +13 -12
  814. package/src/components/VCarousel/VCarousel.ts +37 -29
  815. package/src/components/VCarousel/VCarouselItem.ts +19 -19
  816. package/src/components/VCheckbox/VCheckbox.ts +10 -10
  817. package/src/components/VCheckbox/VSimpleCheckbox.ts +22 -23
  818. package/src/components/VChip/VChip.ts +41 -43
  819. package/src/components/VChipGroup/VChipGroup.ts +2 -2
  820. package/src/components/VColorPicker/VColorPicker.ts +29 -22
  821. package/src/components/VColorPicker/VColorPickerCanvas.ts +7 -8
  822. package/src/components/VColorPicker/VColorPickerEdit.ts +23 -18
  823. package/src/components/VColorPicker/VColorPickerPreview.ts +40 -30
  824. package/src/components/VColorPicker/VColorPickerSwatches.ts +14 -13
  825. package/src/components/VCombobox/VCombobox.ts +21 -21
  826. package/src/components/VContent/VContent.ts +4 -7
  827. package/src/components/VCounter/VCounter.ts +5 -5
  828. package/src/components/VData/VData.ts +3 -3
  829. package/src/components/VData/__tests__/VData.spec.ts +9 -9
  830. package/src/components/VDataIterator/VDataFooter.ts +48 -36
  831. package/src/components/VDataIterator/VDataIterator.ts +20 -16
  832. package/src/components/VDataIterator/__tests__/VDataIterator.spec.ts +4 -4
  833. package/src/components/VDataTable/MobileRow.ts +12 -12
  834. package/src/components/VDataTable/Row.ts +9 -8
  835. package/src/components/VDataTable/RowGroup.ts +6 -8
  836. package/src/components/VDataTable/VDataTable.ts +180 -148
  837. package/src/components/VDataTable/VDataTableHeader.ts +8 -9
  838. package/src/components/VDataTable/VDataTableHeaderDesktop.ts +25 -20
  839. package/src/components/VDataTable/VDataTableHeaderMobile.ts +9 -10
  840. package/src/components/VDataTable/VEditDialog.ts +39 -31
  841. package/src/components/VDataTable/VSimpleTable.ts +6 -6
  842. package/src/components/VDataTable/VVirtualTable.ts +12 -13
  843. package/src/components/VDataTable/__tests__/MobileRow.spec.ts +2 -2
  844. package/src/components/VDataTable/__tests__/Row.spec.ts +2 -2
  845. package/src/components/VDataTable/__tests__/VDataTable.spec.ts +992 -997
  846. package/src/components/VDataTable/__tests__/VVirtualTable.spec.ts +2 -2
  847. package/src/components/VDataTable/mixins/__tests__/header.spec.ts +2 -2
  848. package/src/components/VDataTable/mixins/header.ts +18 -12
  849. package/src/components/VDatePicker/VDatePicker.ts +108 -92
  850. package/src/components/VDatePicker/VDatePickerDateTable.ts +12 -12
  851. package/src/components/VDatePicker/VDatePickerHeader.ts +36 -24
  852. package/src/components/VDatePicker/VDatePickerMonthTable.ts +3 -3
  853. package/src/components/VDatePicker/VDatePickerTitle.ts +15 -11
  854. package/src/components/VDatePicker/VDatePickerYears.ts +3 -3
  855. package/src/components/VDatePicker/mixins/date-picker-table.ts +32 -29
  856. package/src/components/VDatePicker/util/eventHelpers.ts +3 -3
  857. package/src/components/VDialog/VDialog.ts +42 -38
  858. package/src/components/VDialog/__tests__/VDialog.spec.ts +10 -10
  859. package/src/components/VDivider/VDivider.ts +11 -12
  860. package/src/components/VExpansionPanel/VExpansionPanel.ts +7 -8
  861. package/src/components/VExpansionPanel/VExpansionPanelContent.ts +8 -10
  862. package/src/components/VExpansionPanel/VExpansionPanelHeader.ts +33 -33
  863. package/src/components/VExpansionPanel/VExpansionPanels.ts +2 -4
  864. package/src/components/VFileInput/VFileInput.ts +35 -31
  865. package/src/components/VFooter/VFooter.ts +4 -5
  866. package/src/components/VForm/VForm.ts +10 -7
  867. package/src/components/VGrid/VCol.ts +4 -9
  868. package/src/components/VGrid/VContainer.ts +15 -18
  869. package/src/components/VGrid/VRow.ts +8 -8
  870. package/src/components/VGrid/grid.ts +3 -7
  871. package/src/components/VHover/VHover.ts +3 -3
  872. package/src/components/VHover/__tests__/VHover.spec.ts +1 -1
  873. package/src/components/VIcon/VIcon.ts +39 -64
  874. package/src/components/VImg/VImg.ts +40 -44
  875. package/src/components/VInput/VInput.ts +61 -51
  876. package/src/components/VItemGroup/VItem.ts +5 -5
  877. package/src/components/VItemGroup/VItemGroup.ts +2 -6
  878. package/src/components/VLabel/VLabel.ts +13 -12
  879. package/src/components/VLazy/VLazy.ts +4 -5
  880. package/src/components/VList/VList.ts +11 -10
  881. package/src/components/VList/VListGroup.ts +28 -22
  882. package/src/components/VList/VListItem.ts +24 -31
  883. package/src/components/VList/VListItemAction.ts +5 -8
  884. package/src/components/VList/VListItemAvatar.ts +10 -8
  885. package/src/components/VList/VListItemGroup.ts +2 -2
  886. package/src/components/VList/VListItemIcon.ts +5 -7
  887. package/src/components/VList/__tests__/VListItemAction.spec.ts +1 -1
  888. package/src/components/VMain/VMain.ts +5 -7
  889. package/src/components/VMenu/VMenu.ts +60 -47
  890. package/src/components/VMenu/__tests__/VMenu.spec.ts +20 -20
  891. package/src/components/VMessages/VMessages.ts +12 -9
  892. package/src/components/VMessages/__tests__/VMessages.spec.ts +1 -1
  893. package/src/components/VNavigationDrawer/VNavigationDrawer.ts +49 -51
  894. package/src/components/VOtpInput/VOtpInput.ts +46 -39
  895. package/src/components/VOverflowBtn/VOverflowBtn.ts +9 -12
  896. package/src/components/VOverlay/VOverlay.ts +8 -8
  897. package/src/components/VPagination/VPagination.ts +37 -33
  898. package/src/components/VParallax/VParallax.ts +12 -11
  899. package/src/components/VPicker/VPicker.ts +20 -15
  900. package/src/components/VProgressCircular/VProgressCircular.ts +35 -32
  901. package/src/components/VProgressLinear/VProgressLinear.ts +32 -35
  902. package/src/components/VRadioGroup/VRadio.ts +31 -23
  903. package/src/components/VRadioGroup/VRadioGroup.ts +16 -18
  904. package/src/components/VRangeSlider/VRangeSlider.ts +7 -9
  905. package/src/components/VRating/VRating.ts +33 -35
  906. package/src/components/VRating/__tests__/VRating.spec.ts +64 -70
  907. package/src/components/VResponsive/VResponsive.ts +10 -10
  908. package/src/components/VSelect/VSelect.ts +116 -104
  909. package/src/components/VSelect/VSelectList.ts +59 -40
  910. package/src/components/VSheet/VSheet.ts +11 -13
  911. package/src/components/VSkeletonLoader/VSkeletonLoader.ts +20 -15
  912. package/src/components/VSlideGroup/VSlideGroup.ts +50 -44
  913. package/src/components/VSlideGroup/__tests__/VSlideGroup.spec.ts +4 -4
  914. package/src/components/VSlider/VSlider.ts +75 -62
  915. package/src/components/VSnackbar/VSnackbar.ts +29 -26
  916. package/src/components/VSparkline/VSparkline.ts +17 -18
  917. package/src/components/VSpeedDial/VSpeedDial.ts +9 -8
  918. package/src/components/VStepper/VStepper.ts +5 -5
  919. package/src/components/VStepper/VStepperContent.ts +6 -14
  920. package/src/components/VStepper/VStepperStep.ts +8 -9
  921. package/src/components/VSubheader/VSubheader.ts +6 -6
  922. package/src/components/VSubheader/__tests__/VSubheader.spec.ts +1 -1
  923. package/src/components/VSwitch/VSwitch.ts +27 -29
  924. package/src/components/VSystemBar/VSystemBar.ts +2 -3
  925. package/src/components/VTabs/VTab.ts +14 -14
  926. package/src/components/VTabs/VTabItem.ts +4 -6
  927. package/src/components/VTabs/VTabs.ts +43 -38
  928. package/src/components/VTabs/VTabsBar.ts +9 -7
  929. package/src/components/VTabs/VTabsItems.ts +3 -5
  930. package/src/components/VTabs/VTabsSlider.ts +2 -3
  931. package/src/components/VTabs/__tests__/VTabs.spec.ts +1 -1
  932. package/src/components/VTextField/VTextField.ts +68 -62
  933. package/src/components/VTextarea/VTextarea.ts +5 -6
  934. package/src/components/VThemeProvider/VThemeProvider.ts +4 -5
  935. package/src/components/VTimePicker/VTimePicker.ts +36 -32
  936. package/src/components/VTimePicker/VTimePickerClock.ts +7 -8
  937. package/src/components/VTimePicker/VTimePickerTitle.ts +7 -8
  938. package/src/components/VTimeline/VTimeline.ts +3 -3
  939. package/src/components/VTimeline/VTimelineItem.ts +25 -22
  940. package/src/components/VToolbar/VToolbar.ts +15 -17
  941. package/src/components/VTooltip/VTooltip.ts +12 -9
  942. package/src/components/VTreeview/VTreeview.ts +5 -6
  943. package/src/components/VTreeview/VTreeviewNode.ts +103 -88
  944. package/src/components/VVirtualScroll/VVirtualScroll.ts +7 -10
  945. package/src/components/VVirtualScroll/__tests__/VVirtualScroll.spec.ts +1 -1
  946. package/src/components/VWindow/VWindow.sass +5 -5
  947. package/src/components/VWindow/VWindow.ts +33 -31
  948. package/src/components/VWindow/VWindowItem.ts +32 -27
  949. package/src/components/index.ts +10 -0
  950. package/src/components/transitions/createTransition.ts +25 -23
  951. package/src/directives/click-outside/index.ts +6 -6
  952. package/src/directives/intersect/index.ts +6 -6
  953. package/src/directives/ripple/index.ts +6 -9
  954. package/src/directives/touch/index.ts +6 -9
  955. package/src/framework.ts +0 -2
  956. package/src/helpers.ts +18 -0
  957. package/src/index.ts +3 -19
  958. package/src/install.ts +12 -39
  959. package/src/mixins/activatable/__tests__/activatable.spec.ts +1 -1
  960. package/src/mixins/activatable/index.ts +8 -12
  961. package/src/mixins/binds-attrs/index.ts +3 -3
  962. package/src/mixins/bootable/index.ts +4 -5
  963. package/src/mixins/button-group/index.ts +3 -5
  964. package/src/mixins/colorable/index.ts +6 -49
  965. package/src/mixins/comparable/index.ts +2 -2
  966. package/src/mixins/delayable/index.ts +2 -2
  967. package/src/mixins/dependent/index.ts +3 -11
  968. package/src/mixins/detachable/__tests__/detachable.spec.ts +3 -3
  969. package/src/mixins/detachable/index.ts +2 -2
  970. package/src/mixins/elevatable/index.ts +2 -2
  971. package/src/mixins/filterable/index.ts +2 -2
  972. package/src/mixins/groupable/index.ts +9 -13
  973. package/src/mixins/intersectable/index.ts +5 -8
  974. package/src/mixins/loadable/index.ts +12 -10
  975. package/src/mixins/localable/index.ts +2 -2
  976. package/src/mixins/measurable/index.ts +2 -2
  977. package/src/mixins/menuable/index.ts +5 -5
  978. package/src/mixins/mobile/index.ts +12 -10
  979. package/src/mixins/mouse/index.ts +4 -10
  980. package/src/mixins/overlayable/index.ts +16 -44
  981. package/src/mixins/picker/index.ts +19 -17
  982. package/src/mixins/picker-button/index.ts +7 -6
  983. package/src/mixins/positionable/index.ts +2 -2
  984. package/src/mixins/proxyable/index.ts +5 -5
  985. package/src/mixins/registrable/index.ts +3 -3
  986. package/src/mixins/returnable/index.ts +2 -2
  987. package/src/mixins/rippleable/index.ts +9 -16
  988. package/src/mixins/roundable/index.ts +2 -2
  989. package/src/mixins/routable/__tests__/routable.spec.ts +3 -6
  990. package/src/mixins/routable/index.ts +23 -24
  991. package/src/mixins/scrollable/index.ts +2 -2
  992. package/src/mixins/selectable/index.ts +23 -18
  993. package/src/mixins/sizeable/index.ts +2 -2
  994. package/src/mixins/ssr-bootable/index.ts +2 -2
  995. package/src/mixins/stackable/index.ts +2 -2
  996. package/src/mixins/themeable/index.ts +10 -6
  997. package/src/mixins/toggleable/index.ts +6 -3
  998. package/src/mixins/transitionable/index.ts +2 -2
  999. package/src/mixins/translatable/index.ts +2 -2
  1000. package/src/mixins/validatable/index.ts +1 -1
  1001. package/src/services/goto/util.ts +0 -1
  1002. package/src/services/theme/index.ts +7 -12
  1003. package/src/util/helpers.ts +12 -30
  1004. package/src/util/mergeData.ts +1 -1
  1005. package/src/util/mixins.ts +20 -10
  1006. package/src/vuetify.ts +19 -0
  1007. package/es5/util/make-directive-activatable.js +0 -74
  1008. package/es5/util/make-directive-activatable.js.map +0 -1
  1009. package/lib/util/make-directive-activatable.js +0 -49
  1010. package/lib/util/make-directive-activatable.js.map +0 -1
  1011. package/src/util/make-directive-activatable.ts +0 -55
@@ -11,12 +11,12 @@ import { Lang } from '../../../services/lang'
11
11
  import { preset } from '../../../presets/default'
12
12
  import { resizeWindow } from '../../../../test'
13
13
 
14
- const $vuetify = {
14
+ Vue.prototype.$vuetify = {
15
15
  icons: {},
16
16
  rtl: false,
17
17
  lang: new Lang(preset),
18
18
  }
19
- // Vue.directive('ripple', ripple)
19
+ Vue.directive('ripple', ripple)
20
20
 
21
21
  const testHeaders = [
22
22
  {
@@ -127,19 +127,14 @@ describe('VDataTable.ts', () => {
127
127
 
128
128
  mountFunction = (options?: MountOptions<Instance>) => {
129
129
  return mount(VDataTable, {
130
- global: {
131
- config: {
132
- globalProperties: {
133
- $vuetify: {
134
- breakpoint: new Breakpoint(preset),
135
- lang: new Lang(preset),
136
- theme: {
137
- dark: false,
138
- },
139
- icons: {}
140
- }
141
- }
142
- }
130
+ mocks: {
131
+ $vuetify: {
132
+ breakpoint: new Breakpoint(preset),
133
+ lang: new Lang(preset),
134
+ theme: {
135
+ dark: false,
136
+ },
137
+ },
143
138
  },
144
139
  sync: false,
145
140
  ...options,
@@ -155,986 +150,986 @@ describe('VDataTable.ts', () => {
155
150
  expect(wrapper.html()).toMatchSnapshot()
156
151
  })
157
152
 
158
- // it('should render with data', () => {
159
- // const wrapper = mountFunction({
160
- // propsData: {
161
- // headers: testHeaders,
162
- // items: testItems,
163
- // itemsPerPage: 5,
164
- // },
165
- // })
166
-
167
- // expect(wrapper.html()).toMatchSnapshot()
168
- // })
169
-
170
- // it('should render with body slot', () => {
171
- // const wrapper = mountFunction({
172
- // propsData: {
173
- // headers: testHeaders,
174
- // items: testItems,
175
- // itemsPerPage: 5,
176
- // },
177
- // scopedSlots: {
178
- // body (props) {
179
- // return h('div', [props.items.length])
180
- // },
181
- // },
182
- // })
183
-
184
- // expect(wrapper.html()).toMatchSnapshot()
185
- // })
186
-
187
- // it('should render with foot slot', () => {
188
- // const wrapper = mountFunction({
189
- // propsData: {
190
- // headers: testHeaders,
191
- // items: testItems,
192
- // itemsPerPage: 5,
193
- // },
194
- // scopedSlots: {
195
- // foot (props) {
196
- // return h('tfoot', [props.items.length])
197
- // },
198
- // },
199
- // })
200
-
201
- // expect(wrapper.html()).toMatchSnapshot()
202
- // })
203
-
204
- // it.skip('should render virtual table', () => {
205
- // const wrapper = mountFunction({
206
- // propsData: {
207
- // headers: testHeaders,
208
- // items: testItems,
209
- // itemsPerPage: 5,
210
- // virtualRows: true,
211
- // },
212
- // })
213
-
214
- // expect(wrapper.html()).toMatchSnapshot()
215
- // })
216
-
217
- // it('should render with showExpand', async () => {
218
- // const expand = jest.fn()
219
- // const wrapper = mountFunction({
220
- // propsData: {
221
- // headers: testHeaders,
222
- // itemKey: 'name',
223
- // items: testItems,
224
- // itemsPerPage: 5,
225
- // showExpand: true,
226
- // },
227
- // listeners: {
228
- // 'update:expanded': expand,
229
- // },
230
- // })
231
-
232
- // expect(wrapper.html()).toMatchSnapshot()
233
- // const expandIcon = wrapper.findAll('.v-data-table__expand-icon').at(0)
234
- // expandIcon.trigger('click')
235
-
236
- // await wrapper.vm.$nextTick()
237
- // expect(expand).toHaveBeenCalledWith(testItems.slice(0, 1))
238
- // expect(wrapper.html()).toMatchSnapshot()
239
- // })
240
-
241
- // it('should render with showSelect', () => {
242
- // const wrapper = mountFunction({
243
- // propsData: {
244
- // headers: testHeaders,
245
- // items: testItems,
246
- // itemsPerPage: 5,
247
- // showSelect: true,
248
- // },
249
- // })
250
-
251
- // expect(wrapper.html()).toMatchSnapshot()
252
- // })
253
-
254
- // it('should render with item.expanded scoped slot', async () => {
255
- // const vm = new Vue()
256
-
257
- // const wrapper = mountFunction({
258
- // propsData: {
259
- // headers: testHeaders,
260
- // items: testItems,
261
- // itemsPerPage: 5,
262
- // expanded: testItems,
263
- // },
264
- // scopedSlots: {
265
- // 'expanded-item': props => vm.$createElement('div', ['expanded']),
266
- // },
267
- // })
268
-
269
- // await wrapper.vm.$nextTick()
270
-
271
- // expect(wrapper.html()).toMatchSnapshot()
272
- // })
273
-
274
- // it('should render with group.summary scoped slot', () => {
275
- // const vm = new Vue()
276
-
277
- // const wrapper = mountFunction({
278
- // propsData: {
279
- // headers: testHeaders,
280
- // items: testItems,
281
- // itemsPerPage: 5,
282
- // groupBy: 'calories',
283
- // },
284
- // scopedSlots: {
285
- // 'group.summary': props => vm.$createElement('div', ['summary']),
286
- // },
287
- // })
288
-
289
- // expect(wrapper.html()).toMatchSnapshot()
290
- // })
291
-
292
- // it('should render with item scoped slot', () => {
293
- // const vm = new Vue()
294
-
295
- // const wrapper = mountFunction({
296
- // propsData: {
297
- // headers: testHeaders,
298
- // items: testItems,
299
- // itemsPerPage: 5,
300
- // },
301
- // scopedSlots: {
302
- // item: props => vm.$createElement('div', [JSON.stringify(props)]),
303
- // },
304
- // })
305
-
306
- // expect(wrapper.html()).toMatchSnapshot()
307
- // })
308
-
309
- // it('should render with grouped rows', () => {
310
- // const wrapper = mountFunction({
311
- // propsData: {
312
- // headers: testHeaders,
313
- // items: testItems,
314
- // itemsPerPage: 5,
315
- // groupBy: ['protein'],
316
- // },
317
- // })
318
-
319
- // expect(wrapper.html()).toMatchSnapshot()
320
- // })
321
-
322
- // it('should render with group scoped slot', () => {
323
- // const vm = new Vue()
324
-
325
- // const wrapper = mountFunction({
326
- // propsData: {
327
- // headers: testHeaders,
328
- // items: testItems,
329
- // itemsPerPage: 5,
330
- // groupBy: ['protein'],
331
- // },
332
- // scopedSlots: {
333
- // group: props => vm.$createElement('div', [JSON.stringify(props)]),
334
- // },
335
- // })
336
-
337
- // expect(wrapper.html()).toMatchSnapshot()
338
- // })
339
-
340
- // it('should render loading state', () => {
341
- // const wrapper = mountFunction({
342
- // propsData: {
343
- // loading: true,
344
- // },
345
- // })
346
-
347
- // expect(wrapper.html()).toMatchSnapshot()
348
-
349
- // const wrapper2 = mountFunction({
350
- // propsData: {
351
- // headers: testHeaders,
352
- // loading: true,
353
- // },
354
- // slots: {
355
- // progress: '<div class="progress">50%</div>',
356
- // },
357
- // })
358
-
359
- // expect(wrapper2.html()).toMatchSnapshot()
360
- // })
361
-
362
- // it.each([
363
- // 'click',
364
- // 'contextmenu',
365
- // 'dblclick',
366
- // ])('should emit event when %sing on internally created row', async event => {
367
- // const eventToEmit = event + ':row'
368
- // const fn = jest.fn()
369
- // const wrapper = mountFunction({
370
- // propsData: {
371
- // headers: testHeaders,
372
- // items: testItems,
373
- // },
374
- // listeners: {
375
- // [eventToEmit]: fn,
376
- // },
377
- // })
378
-
379
- // wrapper.find('tbody tr').trigger(event)
380
- // await wrapper.vm.$nextTick()
381
-
382
- // expect(fn).toHaveBeenCalled()
383
- // })
384
-
385
- // // https://github.com/vuetifyjs/vuetify/issues/8254
386
- // it('should pass kebab-case footer props correctly', () => {
387
- // const wrapper = mountFunction({
388
- // propsData: {
389
- // headers: [],
390
- // items: [],
391
- // footerProps: {
392
- // 'items-per-page-text': 'Foo:',
393
- // },
394
- // },
395
- // })
396
-
397
- // expect(wrapper.html()).toMatchSnapshot()
398
- // })
399
-
400
- // // https://github.com/vuetifyjs/vuetify/issues/8266
401
- // it('should use options prop for initial values', () => {
402
- // const fn = jest.fn()
403
- // const wrapper = mountFunction({
404
- // propsData: {
405
- // headers: testHeaders,
406
- // items: testItems,
407
- // options: {
408
- // page: 2,
409
- // itemsPerPage: 5,
410
- // },
411
- // },
412
- // listeners: {
413
- // 'update:options': fn,
414
- // },
415
- // })
416
-
417
- // expect(fn).toHaveBeenCalledWith(expect.objectContaining({
418
- // page: 2,
419
- // }))
420
- // })
421
-
422
- // it('should render footer.prepend slot content', () => {
423
- // const wrapper = mountFunction({
424
- // propsData: {
425
- // headers: [],
426
- // items: [{}],
427
- // },
428
- // scopedSlots: {
429
- // 'footer.prepend' () {
430
- // return h('div', ['footer.prepend slot content'])
431
- // },
432
- // },
433
- // })
434
-
435
- // expect(wrapper.html()).toMatchSnapshot()
436
- // })
437
-
438
- // it('should render footer.page-text slot content', () => {
439
- // const wrapper = mountFunction({
440
- // propsData: {
441
- // headers: [],
442
- // items: [{}],
443
- // },
444
- // scopedSlots: {
445
- // 'footer.page-text' ({ pageStart, pageStop }) {
446
- // return h('div', [`foo ${pageStart} bar ${pageStop}`])
447
- // },
448
- // },
449
- // })
450
-
451
- // expect(wrapper.html()).toMatchSnapshot()
452
- // })
453
-
454
- // // https://github.com/vuetifyjs/vuetify/issues/8359
455
- // it('should not limit page to current item count when using server-items-length', async () => {
456
- // const wrapper = mountFunction({
457
- // propsData: {
458
- // headers: testHeaders,
459
- // items: [],
460
- // page: 2,
461
- // itemsPerPage: 5,
462
- // serverItemsLength: 0,
463
- // },
464
- // })
465
-
466
- // expect(wrapper.html()).toMatchSnapshot()
467
-
468
- // wrapper.setProps({
469
- // items: testItems.slice(5),
470
- // serverItemsLength: 20,
471
- // })
472
- // await wrapper.vm.$nextTick()
473
-
474
- // expect(wrapper.html()).toMatchSnapshot()
475
- // })
476
-
477
- // it('should not search column with filterable set to false', async () => {
478
- // const wrapper = mountFunction({
479
- // propsData: {
480
- // items: testItems,
481
- // headers: [
482
- // {
483
- // text: 'Dessert (100g serving)',
484
- // align: 'left',
485
- // filterable: false,
486
- // value: 'name',
487
- // },
488
- // { text: 'Calories', value: 'calories' },
489
- // { text: 'Fat (g)', value: 'fat' },
490
- // { text: 'Carbs (g)', value: 'carbs' },
491
- // { text: 'Protein (g)', value: 'protein' },
492
- // { text: 'Iron (%)', value: 'iron' },
493
- // ],
494
- // },
495
- // })
496
-
497
- // expect(wrapper.html()).toMatchSnapshot()
498
-
499
- // wrapper.setProps({
500
- // search: 'cup',
501
- // })
502
- // await wrapper.vm.$nextTick()
503
-
504
- // expect(wrapper.html()).toMatchSnapshot()
505
- // })
506
-
507
- // it('should not search column with filterable set to false and has filter function', async () => {
508
- // const wrapper = mountFunction({
509
- // propsData: {
510
- // items: testItems,
511
- // headers: [
512
- // {
513
- // text: 'Dessert (100g serving)',
514
- // align: 'left',
515
- // value: 'name',
516
- // },
517
- // { text: 'Calories', value: 'calories', filter: v => v > 400 },
518
- // { text: 'Fat (g)', value: 'fat' },
519
- // { text: 'Carbs (g)', value: 'carbs' },
520
- // { text: 'Protein (g)', value: 'protein' },
521
- // { text: 'Iron (%)', value: 'iron' },
522
- // ],
523
- // },
524
- // })
525
-
526
- // expect(wrapper.html()).toMatchSnapshot()
527
-
528
- // wrapper.setProps({
529
- // headers: [
530
- // {
531
- // text: 'Dessert (100g serving)',
532
- // align: 'left',
533
- // value: 'name',
534
- // },
535
- // { text: 'Calories', value: 'calories', filter: v => v > 400, filterable: false },
536
- // { text: 'Fat (g)', value: 'fat' },
537
- // { text: 'Carbs (g)', value: 'carbs' },
538
- // { text: 'Protein (g)', value: 'protein' },
539
- // { text: 'Iron (%)', value: 'iron' },
540
- // ],
541
- // })
542
- // await wrapper.vm.$nextTick()
543
-
544
- // expect(wrapper.html()).toMatchSnapshot()
545
- // })
546
-
547
- // // https://github.com/vuetifyjs/vuetify/issues/8359
548
- // it('should limit page to current page count if not using server-items-length', async () => {
549
- // const wrapper = mountFunction({
550
- // propsData: {
551
- // headers: testHeaders,
552
- // items: testItems,
553
- // page: 3,
554
- // itemsPerPage: 5,
555
- // },
556
- // })
557
-
558
- // expect(wrapper.html()).toMatchSnapshot()
559
- // })
560
-
561
- // // https://github.com/vuetifyjs/vuetify/issues/8184
562
- // it('should default to first option in itemsPerPageOptions if it does not include itemsPerPage', async () => {
563
- // const wrapper = mountFunction({
564
- // propsData: {
565
- // headers: testHeaders,
566
- // items: testItems,
567
- // footerProps: {
568
- // itemsPerPageOptions: [6, 7],
569
- // },
570
- // },
571
- // })
572
-
573
- // expect(wrapper.html()).toMatchSnapshot()
574
- // })
575
-
576
- // // https://github.com/vuetifyjs/vuetify/issues/8817
577
- // it('should handle object when checking if it should default to first option in itemsPerPageOptions', async () => {
578
- // const wrapper = mountFunction({
579
- // propsData: {
580
- // headers: testHeaders,
581
- // items: testItems,
582
- // itemsPerPage: -1,
583
- // footerProps: {
584
- // itemsPerPageOptions: [6, { text: 'All', value: -1 }],
585
- // },
586
- // },
587
- // })
588
-
589
- // expect(wrapper.html()).toMatchSnapshot()
590
- // })
591
-
592
- // // https://github.com/vuetifyjs/vuetify/issues/9599
593
- // it('should not immediately emit items-per-page', async () => {
594
- // const itemsPerPage = jest.fn()
595
- // const wrapper = mountFunction({
596
- // propsData: {
597
- // headers: testHeaders,
598
- // items: testItems,
599
- // footerProps: {
600
- // itemsPerPageOptions: [6, 7],
601
- // },
602
- // },
603
- // listeners: {
604
- // 'update:itemsPerPage': itemsPerPage,
605
- // },
606
- // })
607
-
608
- // expect(itemsPerPage).not.toHaveBeenCalled()
609
- // })
610
-
611
- // // https://github.com/vuetifyjs/vuetify/issues/9010
612
- // it('should change page if item count decreases below page start', async () => {
613
- // const page = jest.fn()
614
- // const wrapper = mountFunction({
615
- // propsData: {
616
- // headers: testHeaders,
617
- // items: testItems.slice(0, 4),
618
- // itemsPerPage: 2,
619
- // footerProps: {
620
- // itemsPerPageOptions: [2],
621
- // },
622
- // page: 2,
623
- // },
624
- // listeners: {
625
- // 'update:page': page,
626
- // },
627
- // })
628
-
629
- // expect(wrapper.html()).toMatchSnapshot()
630
-
631
- // wrapper.setProps({ items: testItems.slice(0, 2) })
632
- // await wrapper.vm.$nextTick()
633
-
634
- // expect(page).toHaveBeenCalledWith(1)
635
- // })
636
-
637
- // // https://github.com/vuetifyjs/vuetify/issues/8477
638
- // it('should emit two item-selected events when using single-select prop and selecting new item', async () => {
639
- // const itemSelected = jest.fn()
640
- // const wrapper = mountFunction({
641
- // propsData: {
642
- // headers: testHeaders,
643
- // itemKey: 'name',
644
- // items: testItems.slice(0, 2),
645
- // value: [testItems[0]],
646
- // showSelect: true,
647
- // singleSelect: true,
648
- // },
649
- // listeners: {
650
- // 'item-selected': itemSelected,
651
- // },
652
- // })
653
-
654
- // const checkbox = wrapper.findAll('.v-data-table__checkbox').at(1)
655
- // checkbox.trigger('click')
656
- // await wrapper.vm.$nextTick()
657
-
658
- // expect(itemSelected).toHaveBeenCalledTimes(2)
659
- // expect(itemSelected).toHaveBeenCalledWith({ item: testItems[0], value: false })
660
- // expect(itemSelected).toHaveBeenCalledWith({ item: testItems[1], value: true })
661
- // })
662
-
663
- // // https://github.com/vuetifyjs/vuetify/issues/8915
664
- // it('should not select item that is not selectable', async () => {
665
- // const items = [
666
- // { ...testItems[0], isSelectable: false },
667
- // { ...testItems[1] },
668
- // ]
669
- // const input = jest.fn()
670
- // const wrapper = mountFunction({
671
- // propsData: {
672
- // headers: testHeaders,
673
- // items,
674
- // showSelect: true,
675
- // },
676
- // listeners: {
677
- // input,
678
- // },
679
- // })
680
-
681
- // expect(wrapper.html()).toMatchSnapshot()
682
-
683
- // const selectAll = wrapper.findAll('.v-simple-checkbox').at(0)
684
- // selectAll.trigger('click')
685
- // await wrapper.vm.$nextTick()
686
-
687
- // expect(input).toHaveBeenNthCalledWith(1, [testItems[1]])
688
-
689
- // const single = wrapper.findAll('.v-simple-checkbox').at(1)
690
- // single.trigger('click')
691
- // await wrapper.vm.$nextTick()
692
-
693
- // expect(input.mock.calls).toHaveLength(1)
694
- // })
695
-
696
- // // https://github.com/vuetifyjs/vuetify/issues/8915
697
- // it('should toggle all selectable items', async () => {
698
- // const items = [
699
- // { ...testItems[0], isSelectable: false },
700
- // { ...testItems[1] },
701
- // ]
702
- // const input = jest.fn()
703
- // const wrapper = mountFunction({
704
- // propsData: {
705
- // headers: testHeaders,
706
- // items,
707
- // showSelect: true,
708
- // },
709
- // listeners: {
710
- // input,
711
- // },
712
- // })
713
-
714
- // const selectAll = wrapper.findAll('.v-simple-checkbox').at(0)
715
- // selectAll.trigger('click')
716
- // await wrapper.vm.$nextTick()
717
-
718
- // expect(input).toHaveBeenNthCalledWith(1, [testItems[1]])
719
-
720
- // selectAll.trigger('click')
721
- // await wrapper.vm.$nextTick()
722
-
723
- // expect(input).toHaveBeenNthCalledWith(2, [])
724
- // })
725
-
726
- // // https://github.com/vuetifyjs/vuetify/issues/10392
727
- // it('should search group-by column', async () => {
728
- // const headers = [
729
- // {
730
- // text: 'Name',
731
- // value: 'name',
732
- // },
733
- // {
734
- // text: 'ID',
735
- // value: 'id',
736
- // },
737
- // ]
738
-
739
- // const items = [
740
- // {
741
- // name: 'Assistance',
742
- // id: 1,
743
- // },
744
- // {
745
- // name: 'Candidat',
746
- // id: 2,
747
- // },
748
- // ]
749
-
750
- // const wrapper = mountFunction({
751
- // propsData: {
752
- // headers,
753
- // items,
754
- // itemKey: 'id',
755
- // groupBy: 'name',
756
- // },
757
- // })
758
-
759
- // expect(wrapper.html()).toMatchSnapshot()
760
-
761
- // wrapper.setProps({ search: 'candidat' })
762
- // await wrapper.vm.$nextTick()
763
-
764
- // expect(wrapper.html()).toMatchSnapshot()
765
- // })
766
-
767
- // // https://github.com/vuetifyjs/vuetify/issues/10289
768
- // it('should render item slot when using group-by function', async () => {
769
- // const wrapper = mountFunction({
770
- // propsData: {
771
- // headers: testHeaders,
772
- // itemKey: 'name',
773
- // items: testItems.slice(0, 2),
774
- // groupBy: 'name',
775
- // },
776
- // scopedSlots: {
777
- // item () {
778
- // return h('div', ['scoped'])
779
- // },
780
- // },
781
- // })
782
-
783
- // expect(wrapper.html()).toMatchSnapshot()
784
- // })
785
-
786
- // // https://github.com/vuetifyjs/vuetify/issues/10392
787
- // it('should emit pagination event when filtering', async () => {
788
- // const headers = [
789
- // {
790
- // text: 'Name',
791
- // value: 'name',
792
- // },
793
- // {
794
- // text: 'ID',
795
- // value: 'id',
796
- // },
797
- // ]
798
-
799
- // const items = [
800
- // {
801
- // name: 'Assistance',
802
- // id: 1,
803
- // },
804
- // {
805
- // name: 'Candidat',
806
- // id: 2,
807
- // },
808
- // ]
809
-
810
- // const pagination = jest.fn()
811
-
812
- // const wrapper = mountFunction({
813
- // propsData: {
814
- // headers,
815
- // items,
816
- // itemKey: 'id',
817
- // },
818
- // listeners: {
819
- // pagination,
820
- // },
821
- // })
822
-
823
- // expect(pagination).toHaveBeenLastCalledWith({
824
- // itemsLength: 2,
825
- // itemsPerPage: 10,
826
- // page: 1,
827
- // pageCount: 1,
828
- // pageStart: 0,
829
- // pageStop: 2,
830
- // })
831
-
832
- // wrapper.setProps({ search: 'candidat' })
833
- // await wrapper.vm.$nextTick()
834
-
835
- // expect(pagination).toHaveBeenLastCalledWith({
836
- // itemsLength: 1,
837
- // itemsPerPage: 10,
838
- // page: 1,
839
- // pageCount: 1,
840
- // pageStart: 0,
841
- // pageStop: 1,
842
- // })
843
-
844
- // expect(pagination).toHaveBeenCalledTimes(2)
845
- // })
846
-
847
- // // https://github.com/vuetifyjs/vuetify/issues/10715
848
- // // NOTE: This test currently succeeds regardless of fix
849
- // // It seems like the test environment does not double
850
- // // fire the events in the same way the browser does
851
- // it('should not emit too many pagination events', async () => {
852
- // const headers = [
853
- // {
854
- // text: 'Name',
855
- // value: 'name',
856
- // },
857
- // {
858
- // text: 'ID',
859
- // value: 'id',
860
- // },
861
- // ]
862
-
863
- // const items = [
864
- // {
865
- // name: 'Assistance',
866
- // id: 1,
867
- // },
868
- // {
869
- // name: 'Candidat',
870
- // id: 2,
871
- // },
872
- // ]
873
-
874
- // const wrapper = mountFunction({
875
- // propsData: {
876
- // headers,
877
- // itemKey: 'id',
878
- // serverItemsLength: 0,
879
- // },
880
- // })
881
-
882
- // wrapper.setProps({ items, serverItemsLength: items.length })
883
- // await wrapper.vm.$nextTick()
884
-
885
- // expect(wrapper.emitted().pagination).toHaveLength(2)
886
- // })
887
-
888
- // // https://github.com/vuetifyjs/vuetify/issues/4975
889
- // it('should show correct aria-labels when sorting', async () => {
890
- // const wrapper = mountFunction({
891
- // propsData: {
892
- // headers: testHeaders,
893
- // itemKey: 'name',
894
- // items: testItems.slice(0, 5),
895
- // sortBy: 'calories',
896
- // },
897
- // })
898
-
899
- // wrapper.setProps({ sortDesc: true })
900
- // await wrapper.vm.$nextTick()
901
-
902
- // expect(wrapper.html()).toMatchSnapshot()
903
-
904
- // wrapper.setProps({ mustSort: true })
905
- // await wrapper.vm.$nextTick()
906
-
907
- // expect(wrapper.html()).toMatchSnapshot()
908
- // })
909
-
910
- // it('should apply class list to rows', () => {
911
- // const wrapper = mountFunction({
912
- // propsData: {
913
- // headers: testHeaders,
914
- // items: testItems,
915
- // itemsPerPage: 5,
916
- // itemClass: () => ['my-class', 'my-other-class'],
917
- // },
918
- // })
919
-
920
- // expect(wrapper.html()).toMatchSnapshot()
921
- // })
922
-
923
- // it('should apply class unique to rows', () => {
924
- // const wrapper = mountFunction({
925
- // propsData: {
926
- // headers: testHeaders,
927
- // items: testItems,
928
- // itemsPerPage: 5,
929
- // itemClass: () => 'my-unique-class',
930
- // },
931
- // })
932
-
933
- // expect(wrapper.html()).toMatchSnapshot()
934
- // })
935
-
936
- // it('should apply class function to rows', () => {
937
- // const wrapper = mountFunction({
938
- // propsData: {
939
- // headers: testHeaders,
940
- // items: testItems,
941
- // itemsPerPage: 5,
942
- // itemClass: (item: Object) => ({
943
- // 'first-class': item.fat < 10,
944
- // 'second-class': item.protein > 4.0,
945
- // }),
946
- // },
947
- // })
948
-
949
- // expect(wrapper.html()).toMatchSnapshot()
950
- // })
951
-
952
- // it('should apply class from item to rows', () => {
953
- // const wrapper = mountFunction({
954
- // propsData: {
955
- // headers: testHeaders,
956
- // items: testItems,
957
- // itemsPerPage: 5,
958
- // itemClass: 'class',
959
- // },
960
- // })
961
-
962
- // expect(wrapper.html()).toMatchSnapshot()
963
- // })
964
-
965
- // // https://github.com/vuetifyjs/vuetify/issues/11600
966
- // it('should return rows from columns that match custom filters', async () => {
967
- // const wrapper = mountFunction({
968
- // propsData: {
969
- // items: testItems,
970
- // filterMode: 'union',
971
- // headers: [
972
- // { text: 'Dessert (100g serving)', align: 'left', value: 'name' },
973
- // { text: 'Calories', value: 'calories', filter: value => value === 159 },
974
- // { text: 'Fat (g)', value: 'fat' },
975
- // { text: 'Carbs (g)', value: 'carbs' },
976
- // { text: 'Protein (g)', value: 'protein' },
977
- // { text: 'Iron (%)', value: 'iron' },
978
- // ],
979
- // },
980
- // })
981
-
982
- // wrapper.setProps({ search: 'eclair' })
983
- // await wrapper.vm.$nextTick()
984
- // expect(wrapper.vm.internalCurrentItems).toHaveLength(2)
985
- // })
986
-
987
- // // https://github.com/vuetifyjs/vuetify/issues/11179
988
- // it('should return rows from columns that exclusively match custom filters', async () => {
989
- // const wrapper = mountFunction({
990
- // propsData: {
991
- // items: testItems,
992
- // filterMode: 'intersection',
993
- // headers: [
994
- // { text: 'Dessert (100g serving)', align: 'left', value: 'name' },
995
- // { text: 'Calories', value: 'calories', filter: value => value === 159 },
996
- // { text: 'Fat (g)', value: 'fat' },
997
- // { text: 'Carbs (g)', value: 'carbs' },
998
- // { text: 'Protein (g)', value: 'protein' },
999
- // { text: 'Iron (%)', value: 'iron' },
1000
- // ],
1001
- // },
1002
- // })
1003
-
1004
- // wrapper.setProps({ search: 'eclair' })
1005
- // await wrapper.vm.$nextTick()
1006
- // expect(wrapper.vm.internalCurrentItems).toHaveLength(0)
1007
-
1008
- // wrapper.setProps({ search: 'frozen' })
1009
- // await wrapper.vm.$nextTick()
1010
- // expect(wrapper.vm.internalCurrentItems).toHaveLength(1)
1011
- // })
1012
-
1013
- // // https://github.com/vuetifyjs/vuetify/issues/10244
1014
- // it('should respect mustSort property on options', async () => {
1015
- // const wrapper = mountFunction({
1016
- // propsData: {
1017
- // items: testItems,
1018
- // headers: [
1019
- // { text: 'Dessert (100g serving)', value: 'name' },
1020
- // ],
1021
- // options: {
1022
- // mustSort: true,
1023
- // },
1024
- // },
1025
- // })
1026
-
1027
- // wrapper.find('th').trigger('click')
1028
- // await wrapper.vm.$nextTick()
1029
-
1030
- // wrapper.find('th').trigger('click')
1031
- // await wrapper.vm.$nextTick()
1032
-
1033
- // wrapper.find('th').trigger('click')
1034
- // await wrapper.vm.$nextTick()
1035
-
1036
- // expect(wrapper.html()).toMatchSnapshot()
1037
- // })
1038
-
1039
- // it('should hide group button when column is not groupable', async () => {
1040
- // const wrapper = mountFunction({
1041
- // propsData: {
1042
- // showGroupBy: true,
1043
- // items: testItems,
1044
- // headers: [
1045
- // {
1046
- // text: 'Dessert (100g serving)',
1047
- // align: 'left',
1048
- // value: 'name',
1049
- // groupable: false,
1050
- // },
1051
- // { text: 'Calories', value: 'calories' },
1052
- // { text: 'Fat (g)', value: 'fat' },
1053
- // { text: 'Carbs (g)', value: 'carbs' },
1054
- // { text: 'Protein (g)', value: 'protein' },
1055
- // { text: 'Iron (%)', value: 'iron' },
1056
- // ],
1057
- // },
1058
- // })
1059
-
1060
- // expect(wrapper.html()).toMatchSnapshot()
1061
- // })
1062
-
1063
- // it('should return rows matching search term if specified', async () => {
1064
- // const wrapper = mountFunction({
1065
- // propsData: {
1066
- // items: testItems,
1067
- // headers: [
1068
- // { text: 'Dessert (100g serving)', align: 'left', value: 'name' },
1069
- // { text: 'Calories', value: 'calories' },
1070
- // { text: 'Fat (g)', value: 'fat' },
1071
- // { text: 'Carbs (g)', value: 'carbs' },
1072
- // { text: 'Protein (g)', value: 'protein' },
1073
- // { text: 'Iron (%)', value: 'iron' },
1074
- // ],
1075
- // },
1076
- // })
1077
-
1078
- // wrapper.setProps({ search: 'unknown-term' })
1079
- // await wrapper.vm.$nextTick()
1080
- // expect(wrapper.vm.internalCurrentItems).toHaveLength(0)
1081
-
1082
- // wrapper.setProps({ search: 'Eclair' })
1083
- // await wrapper.vm.$nextTick()
1084
- // expect(wrapper.vm.internalCurrentItems).toHaveLength(1)
1085
- // })
1086
-
1087
- // it('should return results which match both search term and column filters if both specified', async () => {
1088
- // const wrapper = mountFunction({
1089
- // propsData: {
1090
- // items: testItems,
1091
- // headers: [
1092
- // { text: 'Dessert (100g serving)', align: 'left', value: 'name' },
1093
- // { text: 'Calories', value: 'calories', filter: value => value < 300 },
1094
- // { text: 'Fat (g)', value: 'fat' },
1095
- // { text: 'Carbs (g)', value: 'carbs' },
1096
- // { text: 'Protein (g)', value: 'protein' },
1097
- // { text: 'Iron (%)', value: 'iron' },
1098
- // ],
1099
- // },
1100
- // })
1101
-
1102
- // wrapper.setProps({ search: 'EA' })
1103
- // await wrapper.vm.$nextTick()
1104
- // expect(wrapper.vm.internalCurrentItems).toHaveLength(1)
1105
- // })
1106
-
1107
- // // https://github.com/vuetifyjs/vuetify/issues/14006
1108
- // it('should allow selection on second page when using numbers as item key', async () => {
1109
- // const input = jest.fn()
1110
- // const items = testItems.map((item, index) => ({ ...item, name: index + 1 })).slice(0, 8)
1111
- // const wrapper = mountFunction({
1112
- // propsData: {
1113
- // items,
1114
- // itemKey: 'name',
1115
- // itemsPerPage: 5,
1116
- // showSelect: true,
1117
- // headers: testHeaders,
1118
- // mobileBreakpoint: 0,
1119
- // },
1120
- // listeners: {
1121
- // input,
1122
- // },
1123
- // })
1124
-
1125
- // let checkbox = wrapper.findAll('td > .v-data-table__checkbox').at(4)
1126
-
1127
- // checkbox.trigger('click')
1128
- // await wrapper.vm.$nextTick()
1129
-
1130
- // wrapper.setProps({ page: 2 })
1131
- // await wrapper.vm.$nextTick()
1132
-
1133
- // checkbox = wrapper.findAll('td > .v-data-table__checkbox').at(0)
1134
-
1135
- // checkbox.trigger('click')
1136
- // await wrapper.vm.$nextTick()
1137
-
1138
- // expect(input).toHaveBeenCalledWith([items[4], items[5]])
1139
- // })
153
+ it('should render with data', () => {
154
+ const wrapper = mountFunction({
155
+ propsData: {
156
+ headers: testHeaders,
157
+ items: testItems,
158
+ itemsPerPage: 5,
159
+ },
160
+ })
161
+
162
+ expect(wrapper.html()).toMatchSnapshot()
163
+ })
164
+
165
+ it('should render with body slot', () => {
166
+ const wrapper = mountFunction({
167
+ propsData: {
168
+ headers: testHeaders,
169
+ items: testItems,
170
+ itemsPerPage: 5,
171
+ },
172
+ scopedSlots: {
173
+ body (props) {
174
+ return this.$createElement('div', [props.items.length])
175
+ },
176
+ },
177
+ })
178
+
179
+ expect(wrapper.html()).toMatchSnapshot()
180
+ })
181
+
182
+ it('should render with foot slot', () => {
183
+ const wrapper = mountFunction({
184
+ propsData: {
185
+ headers: testHeaders,
186
+ items: testItems,
187
+ itemsPerPage: 5,
188
+ },
189
+ scopedSlots: {
190
+ foot (props) {
191
+ return this.$createElement('tfoot', [props.items.length])
192
+ },
193
+ },
194
+ })
195
+
196
+ expect(wrapper.html()).toMatchSnapshot()
197
+ })
198
+
199
+ it.skip('should render virtual table', () => {
200
+ const wrapper = mountFunction({
201
+ propsData: {
202
+ headers: testHeaders,
203
+ items: testItems,
204
+ itemsPerPage: 5,
205
+ virtualRows: true,
206
+ },
207
+ })
208
+
209
+ expect(wrapper.html()).toMatchSnapshot()
210
+ })
211
+
212
+ it('should render with showExpand', async () => {
213
+ const expand = jest.fn()
214
+ const wrapper = mountFunction({
215
+ propsData: {
216
+ headers: testHeaders,
217
+ itemKey: 'name',
218
+ items: testItems,
219
+ itemsPerPage: 5,
220
+ showExpand: true,
221
+ },
222
+ listeners: {
223
+ 'update:expanded': expand,
224
+ },
225
+ })
226
+
227
+ expect(wrapper.html()).toMatchSnapshot()
228
+ const expandIcon = wrapper.findAll('.v-data-table__expand-icon').at(0)
229
+ expandIcon.trigger('click')
230
+
231
+ await wrapper.vm.$nextTick()
232
+ expect(expand).toHaveBeenCalledWith(testItems.slice(0, 1))
233
+ expect(wrapper.html()).toMatchSnapshot()
234
+ })
235
+
236
+ it('should render with showSelect', () => {
237
+ const wrapper = mountFunction({
238
+ propsData: {
239
+ headers: testHeaders,
240
+ items: testItems,
241
+ itemsPerPage: 5,
242
+ showSelect: true,
243
+ },
244
+ })
245
+
246
+ expect(wrapper.html()).toMatchSnapshot()
247
+ })
248
+
249
+ it('should render with item.expanded scoped slot', async () => {
250
+ const vm = new Vue()
251
+
252
+ const wrapper = mountFunction({
253
+ propsData: {
254
+ headers: testHeaders,
255
+ items: testItems,
256
+ itemsPerPage: 5,
257
+ expanded: testItems,
258
+ },
259
+ scopedSlots: {
260
+ 'expanded-item': props => vm.$createElement('div', ['expanded']),
261
+ },
262
+ })
263
+
264
+ await wrapper.vm.$nextTick()
265
+
266
+ expect(wrapper.html()).toMatchSnapshot()
267
+ })
268
+
269
+ it('should render with group.summary scoped slot', () => {
270
+ const vm = new Vue()
271
+
272
+ const wrapper = mountFunction({
273
+ propsData: {
274
+ headers: testHeaders,
275
+ items: testItems,
276
+ itemsPerPage: 5,
277
+ groupBy: 'calories',
278
+ },
279
+ scopedSlots: {
280
+ 'group.summary': props => vm.$createElement('div', ['summary']),
281
+ },
282
+ })
283
+
284
+ expect(wrapper.html()).toMatchSnapshot()
285
+ })
286
+
287
+ it('should render with item scoped slot', () => {
288
+ const vm = new Vue()
289
+
290
+ const wrapper = mountFunction({
291
+ propsData: {
292
+ headers: testHeaders,
293
+ items: testItems,
294
+ itemsPerPage: 5,
295
+ },
296
+ scopedSlots: {
297
+ item: props => vm.$createElement('div', [JSON.stringify(props)]),
298
+ },
299
+ })
300
+
301
+ expect(wrapper.html()).toMatchSnapshot()
302
+ })
303
+
304
+ it('should render with grouped rows', () => {
305
+ const wrapper = mountFunction({
306
+ propsData: {
307
+ headers: testHeaders,
308
+ items: testItems,
309
+ itemsPerPage: 5,
310
+ groupBy: ['protein'],
311
+ },
312
+ })
313
+
314
+ expect(wrapper.html()).toMatchSnapshot()
315
+ })
316
+
317
+ it('should render with group scoped slot', () => {
318
+ const vm = new Vue()
319
+
320
+ const wrapper = mountFunction({
321
+ propsData: {
322
+ headers: testHeaders,
323
+ items: testItems,
324
+ itemsPerPage: 5,
325
+ groupBy: ['protein'],
326
+ },
327
+ scopedSlots: {
328
+ group: props => vm.$createElement('div', [JSON.stringify(props)]),
329
+ },
330
+ })
331
+
332
+ expect(wrapper.html()).toMatchSnapshot()
333
+ })
334
+
335
+ it('should render loading state', () => {
336
+ const wrapper = mountFunction({
337
+ propsData: {
338
+ loading: true,
339
+ },
340
+ })
341
+
342
+ expect(wrapper.html()).toMatchSnapshot()
343
+
344
+ const wrapper2 = mountFunction({
345
+ propsData: {
346
+ headers: testHeaders,
347
+ loading: true,
348
+ },
349
+ slots: {
350
+ progress: '<div class="progress">50%</div>',
351
+ },
352
+ })
353
+
354
+ expect(wrapper2.html()).toMatchSnapshot()
355
+ })
356
+
357
+ it.each([
358
+ 'click',
359
+ 'contextmenu',
360
+ 'dblclick',
361
+ ])('should emit event when %sing on internally created row', async event => {
362
+ const eventToEmit = event + ':row'
363
+ const fn = jest.fn()
364
+ const wrapper = mountFunction({
365
+ propsData: {
366
+ headers: testHeaders,
367
+ items: testItems,
368
+ },
369
+ listeners: {
370
+ [eventToEmit]: fn,
371
+ },
372
+ })
373
+
374
+ wrapper.find('tbody tr').trigger(event)
375
+ await wrapper.vm.$nextTick()
376
+
377
+ expect(fn).toHaveBeenCalled()
378
+ })
379
+
380
+ // https://github.com/vuetifyjs/vuetify/issues/8254
381
+ it('should pass kebab-case footer props correctly', () => {
382
+ const wrapper = mountFunction({
383
+ propsData: {
384
+ headers: [],
385
+ items: [],
386
+ footerProps: {
387
+ 'items-per-page-text': 'Foo:',
388
+ },
389
+ },
390
+ })
391
+
392
+ expect(wrapper.html()).toMatchSnapshot()
393
+ })
394
+
395
+ // https://github.com/vuetifyjs/vuetify/issues/8266
396
+ it('should use options prop for initial values', () => {
397
+ const fn = jest.fn()
398
+ const wrapper = mountFunction({
399
+ propsData: {
400
+ headers: testHeaders,
401
+ items: testItems,
402
+ options: {
403
+ page: 2,
404
+ itemsPerPage: 5,
405
+ },
406
+ },
407
+ listeners: {
408
+ 'update:options': fn,
409
+ },
410
+ })
411
+
412
+ expect(fn).toHaveBeenCalledWith(expect.objectContaining({
413
+ page: 2,
414
+ }))
415
+ })
416
+
417
+ it('should render footer.prepend slot content', () => {
418
+ const wrapper = mountFunction({
419
+ propsData: {
420
+ headers: [],
421
+ items: [{}],
422
+ },
423
+ scopedSlots: {
424
+ 'footer.prepend' () {
425
+ return this.$createElement('div', ['footer.prepend slot content'])
426
+ },
427
+ },
428
+ })
429
+
430
+ expect(wrapper.html()).toMatchSnapshot()
431
+ })
432
+
433
+ it('should render footer.page-text slot content', () => {
434
+ const wrapper = mountFunction({
435
+ propsData: {
436
+ headers: [],
437
+ items: [{}],
438
+ },
439
+ scopedSlots: {
440
+ 'footer.page-text' ({ pageStart, pageStop }) {
441
+ return this.$createElement('div', [`foo ${pageStart} bar ${pageStop}`])
442
+ },
443
+ },
444
+ })
445
+
446
+ expect(wrapper.html()).toMatchSnapshot()
447
+ })
448
+
449
+ // https://github.com/vuetifyjs/vuetify/issues/8359
450
+ it('should not limit page to current item count when using server-items-length', async () => {
451
+ const wrapper = mountFunction({
452
+ propsData: {
453
+ headers: testHeaders,
454
+ items: [],
455
+ page: 2,
456
+ itemsPerPage: 5,
457
+ serverItemsLength: 0,
458
+ },
459
+ })
460
+
461
+ expect(wrapper.html()).toMatchSnapshot()
462
+
463
+ wrapper.setProps({
464
+ items: testItems.slice(5),
465
+ serverItemsLength: 20,
466
+ })
467
+ await wrapper.vm.$nextTick()
468
+
469
+ expect(wrapper.html()).toMatchSnapshot()
470
+ })
471
+
472
+ it('should not search column with filterable set to false', async () => {
473
+ const wrapper = mountFunction({
474
+ propsData: {
475
+ items: testItems,
476
+ headers: [
477
+ {
478
+ text: 'Dessert (100g serving)',
479
+ align: 'left',
480
+ filterable: false,
481
+ value: 'name',
482
+ },
483
+ { text: 'Calories', value: 'calories' },
484
+ { text: 'Fat (g)', value: 'fat' },
485
+ { text: 'Carbs (g)', value: 'carbs' },
486
+ { text: 'Protein (g)', value: 'protein' },
487
+ { text: 'Iron (%)', value: 'iron' },
488
+ ],
489
+ },
490
+ })
491
+
492
+ expect(wrapper.html()).toMatchSnapshot()
493
+
494
+ wrapper.setProps({
495
+ search: 'cup',
496
+ })
497
+ await wrapper.vm.$nextTick()
498
+
499
+ expect(wrapper.html()).toMatchSnapshot()
500
+ })
501
+
502
+ it('should not search column with filterable set to false and has filter function', async () => {
503
+ const wrapper = mountFunction({
504
+ propsData: {
505
+ items: testItems,
506
+ headers: [
507
+ {
508
+ text: 'Dessert (100g serving)',
509
+ align: 'left',
510
+ value: 'name',
511
+ },
512
+ { text: 'Calories', value: 'calories', filter: v => v > 400 },
513
+ { text: 'Fat (g)', value: 'fat' },
514
+ { text: 'Carbs (g)', value: 'carbs' },
515
+ { text: 'Protein (g)', value: 'protein' },
516
+ { text: 'Iron (%)', value: 'iron' },
517
+ ],
518
+ },
519
+ })
520
+
521
+ expect(wrapper.html()).toMatchSnapshot()
522
+
523
+ wrapper.setProps({
524
+ headers: [
525
+ {
526
+ text: 'Dessert (100g serving)',
527
+ align: 'left',
528
+ value: 'name',
529
+ },
530
+ { text: 'Calories', value: 'calories', filter: v => v > 400, filterable: false },
531
+ { text: 'Fat (g)', value: 'fat' },
532
+ { text: 'Carbs (g)', value: 'carbs' },
533
+ { text: 'Protein (g)', value: 'protein' },
534
+ { text: 'Iron (%)', value: 'iron' },
535
+ ],
536
+ })
537
+ await wrapper.vm.$nextTick()
538
+
539
+ expect(wrapper.html()).toMatchSnapshot()
540
+ })
541
+
542
+ // https://github.com/vuetifyjs/vuetify/issues/8359
543
+ it('should limit page to current page count if not using server-items-length', async () => {
544
+ const wrapper = mountFunction({
545
+ propsData: {
546
+ headers: testHeaders,
547
+ items: testItems,
548
+ page: 3,
549
+ itemsPerPage: 5,
550
+ },
551
+ })
552
+
553
+ expect(wrapper.html()).toMatchSnapshot()
554
+ })
555
+
556
+ // https://github.com/vuetifyjs/vuetify/issues/8184
557
+ it('should default to first option in itemsPerPageOptions if it does not include itemsPerPage', async () => {
558
+ const wrapper = mountFunction({
559
+ propsData: {
560
+ headers: testHeaders,
561
+ items: testItems,
562
+ footerProps: {
563
+ itemsPerPageOptions: [6, 7],
564
+ },
565
+ },
566
+ })
567
+
568
+ expect(wrapper.html()).toMatchSnapshot()
569
+ })
570
+
571
+ // https://github.com/vuetifyjs/vuetify/issues/8817
572
+ it('should handle object when checking if it should default to first option in itemsPerPageOptions', async () => {
573
+ const wrapper = mountFunction({
574
+ propsData: {
575
+ headers: testHeaders,
576
+ items: testItems,
577
+ itemsPerPage: -1,
578
+ footerProps: {
579
+ itemsPerPageOptions: [6, { text: 'All', value: -1 }],
580
+ },
581
+ },
582
+ })
583
+
584
+ expect(wrapper.html()).toMatchSnapshot()
585
+ })
586
+
587
+ // https://github.com/vuetifyjs/vuetify/issues/9599
588
+ it('should not immediately emit items-per-page', async () => {
589
+ const itemsPerPage = jest.fn()
590
+ const wrapper = mountFunction({
591
+ propsData: {
592
+ headers: testHeaders,
593
+ items: testItems,
594
+ footerProps: {
595
+ itemsPerPageOptions: [6, 7],
596
+ },
597
+ },
598
+ listeners: {
599
+ 'update:itemsPerPage': itemsPerPage,
600
+ },
601
+ })
602
+
603
+ expect(itemsPerPage).not.toHaveBeenCalled()
604
+ })
605
+
606
+ // https://github.com/vuetifyjs/vuetify/issues/9010
607
+ it('should change page if item count decreases below page start', async () => {
608
+ const page = jest.fn()
609
+ const wrapper = mountFunction({
610
+ propsData: {
611
+ headers: testHeaders,
612
+ items: testItems.slice(0, 4),
613
+ itemsPerPage: 2,
614
+ footerProps: {
615
+ itemsPerPageOptions: [2],
616
+ },
617
+ page: 2,
618
+ },
619
+ listeners: {
620
+ 'update:page': page,
621
+ },
622
+ })
623
+
624
+ expect(wrapper.html()).toMatchSnapshot()
625
+
626
+ wrapper.setProps({ items: testItems.slice(0, 2) })
627
+ await wrapper.vm.$nextTick()
628
+
629
+ expect(page).toHaveBeenCalledWith(1)
630
+ })
631
+
632
+ // https://github.com/vuetifyjs/vuetify/issues/8477
633
+ it('should emit two item-selected events when using single-select prop and selecting new item', async () => {
634
+ const itemSelected = jest.fn()
635
+ const wrapper = mountFunction({
636
+ propsData: {
637
+ headers: testHeaders,
638
+ itemKey: 'name',
639
+ items: testItems.slice(0, 2),
640
+ value: [testItems[0]],
641
+ showSelect: true,
642
+ singleSelect: true,
643
+ },
644
+ listeners: {
645
+ 'item-selected': itemSelected,
646
+ },
647
+ })
648
+
649
+ const checkbox = wrapper.findAll('.v-data-table__checkbox').at(1)
650
+ checkbox.trigger('click')
651
+ await wrapper.vm.$nextTick()
652
+
653
+ expect(itemSelected).toHaveBeenCalledTimes(2)
654
+ expect(itemSelected).toHaveBeenCalledWith({ item: testItems[0], value: false })
655
+ expect(itemSelected).toHaveBeenCalledWith({ item: testItems[1], value: true })
656
+ })
657
+
658
+ // https://github.com/vuetifyjs/vuetify/issues/8915
659
+ it('should not select item that is not selectable', async () => {
660
+ const items = [
661
+ { ...testItems[0], isSelectable: false },
662
+ { ...testItems[1] },
663
+ ]
664
+ const input = jest.fn()
665
+ const wrapper = mountFunction({
666
+ propsData: {
667
+ headers: testHeaders,
668
+ items,
669
+ showSelect: true,
670
+ },
671
+ listeners: {
672
+ input,
673
+ },
674
+ })
675
+
676
+ expect(wrapper.html()).toMatchSnapshot()
677
+
678
+ const selectAll = wrapper.findAll('.v-simple-checkbox').at(0)
679
+ selectAll.trigger('click')
680
+ await wrapper.vm.$nextTick()
681
+
682
+ expect(input).toHaveBeenNthCalledWith(1, [testItems[1]])
683
+
684
+ const single = wrapper.findAll('.v-simple-checkbox').at(1)
685
+ single.trigger('click')
686
+ await wrapper.vm.$nextTick()
687
+
688
+ expect(input.mock.calls).toHaveLength(1)
689
+ })
690
+
691
+ // https://github.com/vuetifyjs/vuetify/issues/8915
692
+ it('should toggle all selectable items', async () => {
693
+ const items = [
694
+ { ...testItems[0], isSelectable: false },
695
+ { ...testItems[1] },
696
+ ]
697
+ const input = jest.fn()
698
+ const wrapper = mountFunction({
699
+ propsData: {
700
+ headers: testHeaders,
701
+ items,
702
+ showSelect: true,
703
+ },
704
+ listeners: {
705
+ input,
706
+ },
707
+ })
708
+
709
+ const selectAll = wrapper.findAll('.v-simple-checkbox').at(0)
710
+ selectAll.trigger('click')
711
+ await wrapper.vm.$nextTick()
712
+
713
+ expect(input).toHaveBeenNthCalledWith(1, [testItems[1]])
714
+
715
+ selectAll.trigger('click')
716
+ await wrapper.vm.$nextTick()
717
+
718
+ expect(input).toHaveBeenNthCalledWith(2, [])
719
+ })
720
+
721
+ // https://github.com/vuetifyjs/vuetify/issues/10392
722
+ it('should search group-by column', async () => {
723
+ const headers = [
724
+ {
725
+ text: 'Name',
726
+ value: 'name',
727
+ },
728
+ {
729
+ text: 'ID',
730
+ value: 'id',
731
+ },
732
+ ]
733
+
734
+ const items = [
735
+ {
736
+ name: 'Assistance',
737
+ id: 1,
738
+ },
739
+ {
740
+ name: 'Candidat',
741
+ id: 2,
742
+ },
743
+ ]
744
+
745
+ const wrapper = mountFunction({
746
+ propsData: {
747
+ headers,
748
+ items,
749
+ itemKey: 'id',
750
+ groupBy: 'name',
751
+ },
752
+ })
753
+
754
+ expect(wrapper.html()).toMatchSnapshot()
755
+
756
+ wrapper.setProps({ search: 'candidat' })
757
+ await wrapper.vm.$nextTick()
758
+
759
+ expect(wrapper.html()).toMatchSnapshot()
760
+ })
761
+
762
+ // https://github.com/vuetifyjs/vuetify/issues/10289
763
+ it('should render item slot when using group-by function', async () => {
764
+ const wrapper = mountFunction({
765
+ propsData: {
766
+ headers: testHeaders,
767
+ itemKey: 'name',
768
+ items: testItems.slice(0, 2),
769
+ groupBy: 'name',
770
+ },
771
+ scopedSlots: {
772
+ item () {
773
+ return this.$createElement('div', ['scoped'])
774
+ },
775
+ },
776
+ })
777
+
778
+ expect(wrapper.html()).toMatchSnapshot()
779
+ })
780
+
781
+ // https://github.com/vuetifyjs/vuetify/issues/10392
782
+ it('should emit pagination event when filtering', async () => {
783
+ const headers = [
784
+ {
785
+ text: 'Name',
786
+ value: 'name',
787
+ },
788
+ {
789
+ text: 'ID',
790
+ value: 'id',
791
+ },
792
+ ]
793
+
794
+ const items = [
795
+ {
796
+ name: 'Assistance',
797
+ id: 1,
798
+ },
799
+ {
800
+ name: 'Candidat',
801
+ id: 2,
802
+ },
803
+ ]
804
+
805
+ const pagination = jest.fn()
806
+
807
+ const wrapper = mountFunction({
808
+ propsData: {
809
+ headers,
810
+ items,
811
+ itemKey: 'id',
812
+ },
813
+ listeners: {
814
+ pagination,
815
+ },
816
+ })
817
+
818
+ expect(pagination).toHaveBeenLastCalledWith({
819
+ itemsLength: 2,
820
+ itemsPerPage: 10,
821
+ page: 1,
822
+ pageCount: 1,
823
+ pageStart: 0,
824
+ pageStop: 2,
825
+ })
826
+
827
+ wrapper.setProps({ search: 'candidat' })
828
+ await wrapper.vm.$nextTick()
829
+
830
+ expect(pagination).toHaveBeenLastCalledWith({
831
+ itemsLength: 1,
832
+ itemsPerPage: 10,
833
+ page: 1,
834
+ pageCount: 1,
835
+ pageStart: 0,
836
+ pageStop: 1,
837
+ })
838
+
839
+ expect(pagination).toHaveBeenCalledTimes(2)
840
+ })
841
+
842
+ // https://github.com/vuetifyjs/vuetify/issues/10715
843
+ // NOTE: This test currently succeeds regardless of fix
844
+ // It seems like the test environment does not double
845
+ // fire the events in the same way the browser does
846
+ it('should not emit too many pagination events', async () => {
847
+ const headers = [
848
+ {
849
+ text: 'Name',
850
+ value: 'name',
851
+ },
852
+ {
853
+ text: 'ID',
854
+ value: 'id',
855
+ },
856
+ ]
857
+
858
+ const items = [
859
+ {
860
+ name: 'Assistance',
861
+ id: 1,
862
+ },
863
+ {
864
+ name: 'Candidat',
865
+ id: 2,
866
+ },
867
+ ]
868
+
869
+ const wrapper = mountFunction({
870
+ propsData: {
871
+ headers,
872
+ itemKey: 'id',
873
+ serverItemsLength: 0,
874
+ },
875
+ })
876
+
877
+ wrapper.setProps({ items, serverItemsLength: items.length })
878
+ await wrapper.vm.$nextTick()
879
+
880
+ expect(wrapper.emitted().pagination).toHaveLength(2)
881
+ })
882
+
883
+ // https://github.com/vuetifyjs/vuetify/issues/4975
884
+ it('should show correct aria-labels when sorting', async () => {
885
+ const wrapper = mountFunction({
886
+ propsData: {
887
+ headers: testHeaders,
888
+ itemKey: 'name',
889
+ items: testItems.slice(0, 5),
890
+ sortBy: 'calories',
891
+ },
892
+ })
893
+
894
+ wrapper.setProps({ sortDesc: true })
895
+ await wrapper.vm.$nextTick()
896
+
897
+ expect(wrapper.html()).toMatchSnapshot()
898
+
899
+ wrapper.setProps({ mustSort: true })
900
+ await wrapper.vm.$nextTick()
901
+
902
+ expect(wrapper.html()).toMatchSnapshot()
903
+ })
904
+
905
+ it('should apply class list to rows', () => {
906
+ const wrapper = mountFunction({
907
+ propsData: {
908
+ headers: testHeaders,
909
+ items: testItems,
910
+ itemsPerPage: 5,
911
+ itemClass: () => ['my-class', 'my-other-class'],
912
+ },
913
+ })
914
+
915
+ expect(wrapper.html()).toMatchSnapshot()
916
+ })
917
+
918
+ it('should apply class unique to rows', () => {
919
+ const wrapper = mountFunction({
920
+ propsData: {
921
+ headers: testHeaders,
922
+ items: testItems,
923
+ itemsPerPage: 5,
924
+ itemClass: () => 'my-unique-class',
925
+ },
926
+ })
927
+
928
+ expect(wrapper.html()).toMatchSnapshot()
929
+ })
930
+
931
+ it('should apply class function to rows', () => {
932
+ const wrapper = mountFunction({
933
+ propsData: {
934
+ headers: testHeaders,
935
+ items: testItems,
936
+ itemsPerPage: 5,
937
+ itemClass: (item: Object) => ({
938
+ 'first-class': item.fat < 10,
939
+ 'second-class': item.protein > 4.0,
940
+ }),
941
+ },
942
+ })
943
+
944
+ expect(wrapper.html()).toMatchSnapshot()
945
+ })
946
+
947
+ it('should apply class from item to rows', () => {
948
+ const wrapper = mountFunction({
949
+ propsData: {
950
+ headers: testHeaders,
951
+ items: testItems,
952
+ itemsPerPage: 5,
953
+ itemClass: 'class',
954
+ },
955
+ })
956
+
957
+ expect(wrapper.html()).toMatchSnapshot()
958
+ })
959
+
960
+ // https://github.com/vuetifyjs/vuetify/issues/11600
961
+ it('should return rows from columns that match custom filters', async () => {
962
+ const wrapper = mountFunction({
963
+ propsData: {
964
+ items: testItems,
965
+ filterMode: 'union',
966
+ headers: [
967
+ { text: 'Dessert (100g serving)', align: 'left', value: 'name' },
968
+ { text: 'Calories', value: 'calories', filter: value => value === 159 },
969
+ { text: 'Fat (g)', value: 'fat' },
970
+ { text: 'Carbs (g)', value: 'carbs' },
971
+ { text: 'Protein (g)', value: 'protein' },
972
+ { text: 'Iron (%)', value: 'iron' },
973
+ ],
974
+ },
975
+ })
976
+
977
+ wrapper.setProps({ search: 'eclair' })
978
+ await wrapper.vm.$nextTick()
979
+ expect(wrapper.vm.internalCurrentItems).toHaveLength(2)
980
+ })
981
+
982
+ // https://github.com/vuetifyjs/vuetify/issues/11179
983
+ it('should return rows from columns that exclusively match custom filters', async () => {
984
+ const wrapper = mountFunction({
985
+ propsData: {
986
+ items: testItems,
987
+ filterMode: 'intersection',
988
+ headers: [
989
+ { text: 'Dessert (100g serving)', align: 'left', value: 'name' },
990
+ { text: 'Calories', value: 'calories', filter: value => value === 159 },
991
+ { text: 'Fat (g)', value: 'fat' },
992
+ { text: 'Carbs (g)', value: 'carbs' },
993
+ { text: 'Protein (g)', value: 'protein' },
994
+ { text: 'Iron (%)', value: 'iron' },
995
+ ],
996
+ },
997
+ })
998
+
999
+ wrapper.setProps({ search: 'eclair' })
1000
+ await wrapper.vm.$nextTick()
1001
+ expect(wrapper.vm.internalCurrentItems).toHaveLength(0)
1002
+
1003
+ wrapper.setProps({ search: 'frozen' })
1004
+ await wrapper.vm.$nextTick()
1005
+ expect(wrapper.vm.internalCurrentItems).toHaveLength(1)
1006
+ })
1007
+
1008
+ // https://github.com/vuetifyjs/vuetify/issues/10244
1009
+ it('should respect mustSort property on options', async () => {
1010
+ const wrapper = mountFunction({
1011
+ propsData: {
1012
+ items: testItems,
1013
+ headers: [
1014
+ { text: 'Dessert (100g serving)', value: 'name' },
1015
+ ],
1016
+ options: {
1017
+ mustSort: true,
1018
+ },
1019
+ },
1020
+ })
1021
+
1022
+ wrapper.find('th').trigger('click')
1023
+ await wrapper.vm.$nextTick()
1024
+
1025
+ wrapper.find('th').trigger('click')
1026
+ await wrapper.vm.$nextTick()
1027
+
1028
+ wrapper.find('th').trigger('click')
1029
+ await wrapper.vm.$nextTick()
1030
+
1031
+ expect(wrapper.html()).toMatchSnapshot()
1032
+ })
1033
+
1034
+ it('should hide group button when column is not groupable', async () => {
1035
+ const wrapper = mountFunction({
1036
+ propsData: {
1037
+ showGroupBy: true,
1038
+ items: testItems,
1039
+ headers: [
1040
+ {
1041
+ text: 'Dessert (100g serving)',
1042
+ align: 'left',
1043
+ value: 'name',
1044
+ groupable: false,
1045
+ },
1046
+ { text: 'Calories', value: 'calories' },
1047
+ { text: 'Fat (g)', value: 'fat' },
1048
+ { text: 'Carbs (g)', value: 'carbs' },
1049
+ { text: 'Protein (g)', value: 'protein' },
1050
+ { text: 'Iron (%)', value: 'iron' },
1051
+ ],
1052
+ },
1053
+ })
1054
+
1055
+ expect(wrapper.html()).toMatchSnapshot()
1056
+ })
1057
+
1058
+ it('should return rows matching search term if specified', async () => {
1059
+ const wrapper = mountFunction({
1060
+ propsData: {
1061
+ items: testItems,
1062
+ headers: [
1063
+ { text: 'Dessert (100g serving)', align: 'left', value: 'name' },
1064
+ { text: 'Calories', value: 'calories' },
1065
+ { text: 'Fat (g)', value: 'fat' },
1066
+ { text: 'Carbs (g)', value: 'carbs' },
1067
+ { text: 'Protein (g)', value: 'protein' },
1068
+ { text: 'Iron (%)', value: 'iron' },
1069
+ ],
1070
+ },
1071
+ })
1072
+
1073
+ wrapper.setProps({ search: 'unknown-term' })
1074
+ await wrapper.vm.$nextTick()
1075
+ expect(wrapper.vm.internalCurrentItems).toHaveLength(0)
1076
+
1077
+ wrapper.setProps({ search: 'Eclair' })
1078
+ await wrapper.vm.$nextTick()
1079
+ expect(wrapper.vm.internalCurrentItems).toHaveLength(1)
1080
+ })
1081
+
1082
+ it('should return results which match both search term and column filters if both specified', async () => {
1083
+ const wrapper = mountFunction({
1084
+ propsData: {
1085
+ items: testItems,
1086
+ headers: [
1087
+ { text: 'Dessert (100g serving)', align: 'left', value: 'name' },
1088
+ { text: 'Calories', value: 'calories', filter: value => value < 300 },
1089
+ { text: 'Fat (g)', value: 'fat' },
1090
+ { text: 'Carbs (g)', value: 'carbs' },
1091
+ { text: 'Protein (g)', value: 'protein' },
1092
+ { text: 'Iron (%)', value: 'iron' },
1093
+ ],
1094
+ },
1095
+ })
1096
+
1097
+ wrapper.setProps({ search: 'EA' })
1098
+ await wrapper.vm.$nextTick()
1099
+ expect(wrapper.vm.internalCurrentItems).toHaveLength(1)
1100
+ })
1101
+
1102
+ // https://github.com/vuetifyjs/vuetify/issues/14006
1103
+ it('should allow selection on second page when using numbers as item key', async () => {
1104
+ const input = jest.fn()
1105
+ const items = testItems.map((item, index) => ({ ...item, name: index + 1 })).slice(0, 8)
1106
+ const wrapper = mountFunction({
1107
+ propsData: {
1108
+ items,
1109
+ itemKey: 'name',
1110
+ itemsPerPage: 5,
1111
+ showSelect: true,
1112
+ headers: testHeaders,
1113
+ mobileBreakpoint: 0,
1114
+ },
1115
+ listeners: {
1116
+ input,
1117
+ },
1118
+ })
1119
+
1120
+ let checkbox = wrapper.findAll('td > .v-data-table__checkbox').at(4)
1121
+
1122
+ checkbox.trigger('click')
1123
+ await wrapper.vm.$nextTick()
1124
+
1125
+ wrapper.setProps({ page: 2 })
1126
+ await wrapper.vm.$nextTick()
1127
+
1128
+ checkbox = wrapper.findAll('td > .v-data-table__checkbox').at(0)
1129
+
1130
+ checkbox.trigger('click')
1131
+ await wrapper.vm.$nextTick()
1132
+
1133
+ expect(input).toHaveBeenCalledWith([items[4], items[5]])
1134
+ })
1140
1135
  })