vuetify 3.1.15 → 3.2.0

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 (486) hide show
  1. package/dist/_component-variables-labs.sass +1 -0
  2. package/dist/json/attributes.json +368 -216
  3. package/dist/json/importMap-labs.json +4 -4
  4. package/dist/json/importMap.json +72 -68
  5. package/dist/json/tags.json +45 -2
  6. package/dist/json/web-types.json +898 -376
  7. package/dist/vuetify-labs.css +577 -355
  8. package/dist/vuetify-labs.d.ts +5910 -7620
  9. package/dist/vuetify-labs.esm.js +1702 -693
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +1701 -691
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +266 -60
  14. package/dist/vuetify.d.ts +6218 -7204
  15. package/dist/vuetify.esm.js +1425 -461
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +1424 -459
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +819 -746
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/blueprints/index.d.ts +35 -1
  23. package/lib/blueprints/md1.d.ts +35 -1
  24. package/lib/blueprints/md2.d.ts +35 -1
  25. package/lib/blueprints/md3.d.ts +35 -1
  26. package/lib/components/VAlert/VAlert.mjs +6 -4
  27. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  28. package/lib/components/VAlert/index.d.ts +57 -55
  29. package/lib/components/VApp/VApp.mjs +4 -2
  30. package/lib/components/VApp/VApp.mjs.map +1 -1
  31. package/lib/components/VApp/index.d.ts +22 -13
  32. package/lib/components/VAppBar/VAppBar.mjs +65 -13
  33. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  34. package/lib/components/VAppBar/VAppBarNavIcon.mjs +7 -4
  35. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  36. package/lib/components/VAppBar/index.d.ts +113 -92
  37. package/lib/components/VAutocomplete/VAutocomplete.mjs +2 -1
  38. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  39. package/lib/components/VAutocomplete/index.d.ts +276 -418
  40. package/lib/components/VAvatar/VAvatar.mjs +4 -2
  41. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  42. package/lib/components/VAvatar/index.d.ts +23 -14
  43. package/lib/components/VBadge/VBadge.mjs +6 -5
  44. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  45. package/lib/components/VBadge/index.d.ts +27 -22
  46. package/lib/components/VBanner/VBanner.mjs +6 -4
  47. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  48. package/lib/components/VBanner/VBannerActions.mjs +5 -2
  49. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  50. package/lib/components/VBanner/index.d.ts +92 -66
  51. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +4 -2
  52. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  53. package/lib/components/VBottomNavigation/index.d.ts +22 -13
  54. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +35 -18
  55. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  56. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +6 -3
  57. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
  58. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +4 -2
  59. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  60. package/lib/components/VBreadcrumbs/index.d.ts +134 -93
  61. package/lib/components/VBtn/VBtn.mjs +9 -4
  62. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  63. package/lib/components/VBtn/_mixins.scss +1 -1
  64. package/lib/components/VBtn/index.d.ts +39 -36
  65. package/lib/components/VBtnGroup/VBtnGroup.mjs +4 -1
  66. package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
  67. package/lib/components/VBtnGroup/index.d.ts +22 -13
  68. package/lib/components/VBtnToggle/VBtnToggle.mjs +4 -2
  69. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  70. package/lib/components/VBtnToggle/index.d.ts +30 -21
  71. package/lib/components/VCard/VCard.mjs +5 -3
  72. package/lib/components/VCard/VCard.mjs.map +1 -1
  73. package/lib/components/VCard/VCardActions.mjs +7 -4
  74. package/lib/components/VCard/VCardActions.mjs.map +1 -1
  75. package/lib/components/VCard/VCardItem.mjs +5 -2
  76. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  77. package/lib/components/VCard/index.d.ts +250 -141
  78. package/lib/components/VCarousel/VCarousel.mjs +3 -3
  79. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  80. package/lib/components/VCarousel/VCarouselItem.mjs +6 -3
  81. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  82. package/lib/components/VCarousel/index.d.ts +78 -141
  83. package/lib/components/VCheckbox/VCheckbox.mjs +3 -2
  84. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  85. package/lib/components/VCheckbox/VCheckboxBtn.mjs +2 -1
  86. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
  87. package/lib/components/VCheckbox/index.d.ts +75 -109
  88. package/lib/components/VChip/VChip.mjs +7 -8
  89. package/lib/components/VChip/VChip.mjs.map +1 -1
  90. package/lib/components/VChip/index.d.ts +27 -30
  91. package/lib/components/VChipGroup/VChipGroup.mjs +4 -1
  92. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  93. package/lib/components/VChipGroup/index.d.ts +22 -13
  94. package/lib/components/VCode/index.d.ts +30 -17
  95. package/lib/components/VColorPicker/VColorPicker.mjs +3 -3
  96. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  97. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +5 -2
  98. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  99. package/lib/components/VColorPicker/VColorPickerEdit.mjs +6 -3
  100. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  101. package/lib/components/VColorPicker/VColorPickerPreview.mjs +6 -3
  102. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  103. package/lib/components/VColorPicker/VColorPickerSwatches.mjs +7 -5
  104. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  105. package/lib/components/VColorPicker/index.d.ts +34 -1
  106. package/lib/components/VCombobox/VCombobox.mjs +2 -1
  107. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  108. package/lib/components/VCombobox/index.d.ts +276 -418
  109. package/lib/components/VCounter/VCounter.mjs +4 -1
  110. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  111. package/lib/components/VCounter/index.d.ts +22 -145
  112. package/lib/components/VDefaultsProvider/index.d.ts +0 -12
  113. package/lib/components/VDialog/VDialog.mjs +4 -3
  114. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  115. package/lib/components/VDialog/index.d.ts +104 -282
  116. package/lib/components/VDivider/VDivider.mjs +4 -2
  117. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  118. package/lib/components/VDivider/index.d.ts +22 -13
  119. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +4 -2
  120. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  121. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +4 -1
  122. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  123. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +4 -2
  124. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  125. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +4 -1
  126. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  127. package/lib/components/VExpansionPanel/index.d.ts +109 -81
  128. package/lib/components/VField/VField.css +59 -12
  129. package/lib/components/VField/VField.mjs +18 -8
  130. package/lib/components/VField/VField.mjs.map +1 -1
  131. package/lib/components/VField/VField.sass +57 -6
  132. package/lib/components/VField/VFieldLabel.mjs +6 -3
  133. package/lib/components/VField/VFieldLabel.mjs.map +1 -1
  134. package/lib/components/VField/_variables.scss +4 -0
  135. package/lib/components/VField/index.d.ts +169 -84
  136. package/lib/components/VFileInput/VFileInput.mjs +2 -1
  137. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  138. package/lib/components/VFileInput/index.d.ts +147 -174
  139. package/lib/components/VFooter/VFooter.mjs +4 -2
  140. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  141. package/lib/components/VFooter/index.d.ts +22 -13
  142. package/lib/components/VForm/VForm.mjs +5 -2
  143. package/lib/components/VForm/VForm.mjs.map +1 -1
  144. package/lib/components/VForm/index.d.ts +30 -17
  145. package/lib/components/VGrid/VCol.mjs +4 -1
  146. package/lib/components/VGrid/VCol.mjs.map +1 -1
  147. package/lib/components/VGrid/VContainer.mjs +4 -1
  148. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  149. package/lib/components/VGrid/VRow.mjs +4 -1
  150. package/lib/components/VGrid/VRow.mjs.map +1 -1
  151. package/lib/components/VGrid/index.d.ts +104 -60
  152. package/lib/components/VHover/index.d.ts +20 -44
  153. package/lib/components/VIcon/VIcon.mjs +4 -2
  154. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  155. package/lib/components/VIcon/index.d.ts +23 -26
  156. package/lib/components/VImg/VImg.mjs +5 -3
  157. package/lib/components/VImg/VImg.mjs.map +1 -1
  158. package/lib/components/VImg/index.d.ts +26 -29
  159. package/lib/components/VInput/VInput.mjs +4 -1
  160. package/lib/components/VInput/VInput.mjs.map +1 -1
  161. package/lib/components/VInput/index.d.ts +37 -40
  162. package/lib/components/VItemGroup/VItemGroup.mjs +4 -1
  163. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  164. package/lib/components/VItemGroup/index.d.ts +30 -33
  165. package/lib/components/VKbd/index.d.ts +30 -17
  166. package/lib/components/VLabel/VLabel.mjs +4 -1
  167. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  168. package/lib/components/VLabel/index.d.ts +22 -13
  169. package/lib/components/VLayout/VLayout.mjs +8 -4
  170. package/lib/components/VLayout/VLayout.mjs.map +1 -1
  171. package/lib/components/VLayout/VLayoutItem.mjs +4 -2
  172. package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
  173. package/lib/components/VLayout/index.d.ts +44 -26
  174. package/lib/components/VLazy/VLazy.mjs +4 -2
  175. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  176. package/lib/components/VLazy/index.d.ts +22 -13
  177. package/lib/components/VList/VList.mjs +7 -24
  178. package/lib/components/VList/VList.mjs.map +1 -1
  179. package/lib/components/VList/VListChildren.mjs.map +1 -1
  180. package/lib/components/VList/VListGroup.mjs +5 -2
  181. package/lib/components/VList/VListGroup.mjs.map +1 -1
  182. package/lib/components/VList/VListItem.mjs +4 -2
  183. package/lib/components/VList/VListItem.mjs.map +1 -1
  184. package/lib/components/VList/VListItemAction.mjs +4 -1
  185. package/lib/components/VList/VListItemAction.mjs.map +1 -1
  186. package/lib/components/VList/VListItemMedia.mjs +4 -1
  187. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  188. package/lib/components/VList/VListSubheader.mjs +5 -3
  189. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  190. package/lib/components/VList/index.d.ts +932 -826
  191. package/lib/components/VLocaleProvider/VLocaleProvider.mjs +5 -2
  192. package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
  193. package/lib/components/VLocaleProvider/index.d.ts +30 -17
  194. package/lib/components/VMain/VMain.mjs +4 -2
  195. package/lib/components/VMain/VMain.mjs.map +1 -1
  196. package/lib/components/VMain/index.d.ts +30 -17
  197. package/lib/components/VMenu/VMenu.mjs +2 -1
  198. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  199. package/lib/components/VMenu/index.d.ts +104 -282
  200. package/lib/components/VMessages/VMessages.mjs +4 -2
  201. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  202. package/lib/components/VMessages/index.d.ts +22 -145
  203. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +4 -2
  204. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  205. package/lib/components/VNavigationDrawer/index.d.ts +26 -29
  206. package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
  207. package/lib/components/VNoSsr/index.d.ts +3 -13
  208. package/lib/components/VOverlay/VOverlay.mjs +5 -3
  209. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  210. package/lib/components/VOverlay/index.d.ts +38 -45
  211. package/lib/components/VPagination/VPagination.mjs +4 -1
  212. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  213. package/lib/components/VPagination/index.d.ts +23 -30
  214. package/lib/components/VParallax/VParallax.mjs +5 -2
  215. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  216. package/lib/components/VParallax/index.d.ts +34 -33
  217. package/lib/components/VProgressCircular/VProgressCircular.mjs +4 -2
  218. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  219. package/lib/components/VProgressCircular/index.d.ts +22 -13
  220. package/lib/components/VProgressLinear/VProgressLinear.mjs +6 -4
  221. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  222. package/lib/components/VProgressLinear/index.d.ts +42 -45
  223. package/lib/components/VRadio/VRadio.mjs +2 -1
  224. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  225. package/lib/components/VRadio/index.d.ts +27 -38
  226. package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -1
  227. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  228. package/lib/components/VRadioGroup/index.d.ts +45 -68
  229. package/lib/components/VRangeSlider/VRangeSlider.mjs +33 -21
  230. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  231. package/lib/components/VRangeSlider/index.d.ts +50 -49
  232. package/lib/components/VRating/VRating.css +0 -4
  233. package/lib/components/VRating/VRating.mjs +10 -36
  234. package/lib/components/VRating/VRating.mjs.map +1 -1
  235. package/lib/components/VRating/VRating.sass +0 -5
  236. package/lib/components/VRating/index.d.ts +24 -18
  237. package/lib/components/VResponsive/VResponsive.mjs +4 -2
  238. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  239. package/lib/components/VResponsive/index.d.ts +43 -31
  240. package/lib/components/VSelect/VSelect.mjs +2 -1
  241. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  242. package/lib/components/VSelect/index.d.ts +245 -567
  243. package/lib/components/VSelectionControl/VSelectionControl.mjs +6 -2
  244. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  245. package/lib/components/VSelectionControl/index.d.ts +76 -46
  246. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +4 -1
  247. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  248. package/lib/components/VSelectionControlGroup/index.d.ts +23 -14
  249. package/lib/components/VSheet/VSheet.mjs +4 -2
  250. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  251. package/lib/components/VSheet/index.d.ts +22 -13
  252. package/lib/components/VSlideGroup/VSlideGroup.mjs +6 -3
  253. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  254. package/lib/components/VSlideGroup/index.d.ts +59 -90
  255. package/lib/components/VSlider/VSlider.mjs +33 -14
  256. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  257. package/lib/components/VSlider/VSliderThumb.mjs +6 -4
  258. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  259. package/lib/components/VSlider/VSliderTrack.mjs +6 -4
  260. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  261. package/lib/components/VSlider/index.d.ts +50 -49
  262. package/lib/components/VSlider/slider.mjs +43 -23
  263. package/lib/components/VSlider/slider.mjs.map +1 -1
  264. package/lib/components/VSnackbar/VSnackbar.mjs +2 -1
  265. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  266. package/lib/components/VSnackbar/index.d.ts +92 -142
  267. package/lib/components/VSwitch/VSwitch.mjs +2 -1
  268. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  269. package/lib/components/VSwitch/index.d.ts +45 -72
  270. package/lib/components/VSystemBar/VSystemBar.mjs +4 -2
  271. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  272. package/lib/components/VSystemBar/index.d.ts +22 -13
  273. package/lib/components/VTable/VTable.mjs +4 -1
  274. package/lib/components/VTable/VTable.mjs.map +1 -1
  275. package/lib/components/VTable/index.d.ts +26 -29
  276. package/lib/components/VTabs/VTab.mjs +3 -4
  277. package/lib/components/VTabs/VTab.mjs.map +1 -1
  278. package/lib/components/VTabs/VTabs.mjs +2 -2
  279. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  280. package/lib/components/VTabs/index.d.ts +51 -33
  281. package/lib/components/VTextField/VTextField.mjs +2 -1
  282. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  283. package/lib/components/VTextField/index.d.ts +337 -317
  284. package/lib/components/VTextarea/VTextarea.mjs +2 -1
  285. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  286. package/lib/components/VTextarea/index.d.ts +127 -146
  287. package/lib/components/VThemeProvider/VThemeProvider.mjs +6 -3
  288. package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
  289. package/lib/components/VThemeProvider/index.d.ts +22 -13
  290. package/lib/components/VTimeline/VTimeline.mjs +5 -3
  291. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  292. package/lib/components/VTimeline/VTimelineDivider.mjs +4 -1
  293. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  294. package/lib/components/VTimeline/VTimelineItem.mjs +8 -6
  295. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  296. package/lib/components/VTimeline/index.d.ts +67 -57
  297. package/lib/components/VToolbar/VToolbar.css +3 -1
  298. package/lib/components/VToolbar/VToolbar.mjs +4 -2
  299. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  300. package/lib/components/VToolbar/VToolbar.sass +3 -1
  301. package/lib/components/VToolbar/VToolbarItems.mjs +9 -4
  302. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  303. package/lib/components/VToolbar/VToolbarTitle.mjs +5 -2
  304. package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
  305. package/lib/components/VToolbar/index.d.ts +74 -71
  306. package/lib/components/VTooltip/VTooltip.mjs +4 -3
  307. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  308. package/lib/components/VTooltip/index.d.ts +119 -150
  309. package/lib/components/VValidation/index.d.ts +6 -18
  310. package/lib/{labs → components}/VVirtualScroll/VVirtualScroll.mjs +21 -23
  311. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -0
  312. package/lib/{labs → components}/VVirtualScroll/VVirtualScrollItem.mjs +5 -2
  313. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -0
  314. package/lib/{labs → components}/VVirtualScroll/index.d.ts +70 -30
  315. package/lib/components/VVirtualScroll/index.mjs.map +1 -0
  316. package/lib/components/VWindow/VWindow.mjs +4 -1
  317. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  318. package/lib/components/VWindow/VWindowItem.mjs +4 -1
  319. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  320. package/lib/components/VWindow/index.d.ts +61 -79
  321. package/lib/components/index.d.ts +5834 -6865
  322. package/lib/components/index.mjs +2 -1
  323. package/lib/components/index.mjs.map +1 -1
  324. package/lib/components/transitions/index.d.ts +0 -192
  325. package/lib/composables/component.mjs +11 -0
  326. package/lib/composables/component.mjs.map +1 -0
  327. package/lib/composables/defaults.mjs +53 -5
  328. package/lib/composables/defaults.mjs.map +1 -1
  329. package/lib/composables/focus.mjs.map +1 -1
  330. package/lib/composables/icons.mjs +15 -4
  331. package/lib/composables/icons.mjs.map +1 -1
  332. package/lib/composables/index.mjs +1 -0
  333. package/lib/composables/index.mjs.map +1 -1
  334. package/lib/composables/intersectionObserver.mjs +2 -2
  335. package/lib/composables/intersectionObserver.mjs.map +1 -1
  336. package/lib/composables/loader.mjs.map +1 -1
  337. package/lib/composables/scroll.mjs +3 -0
  338. package/lib/composables/scroll.mjs.map +1 -1
  339. package/lib/entry-bundler.mjs +1 -1
  340. package/lib/entry-bundler.mjs.map +1 -1
  341. package/lib/framework.mjs +8 -3
  342. package/lib/framework.mjs.map +1 -1
  343. package/lib/iconsets/fa-svg.d.ts +1 -1
  344. package/lib/iconsets/fa.d.ts +1 -1
  345. package/lib/iconsets/fa4.d.ts +1 -1
  346. package/lib/iconsets/md.d.ts +1 -1
  347. package/lib/iconsets/mdi-svg.d.ts +1 -1
  348. package/lib/iconsets/mdi.d.ts +1 -1
  349. package/lib/index.d.ts +65 -22
  350. package/lib/labs/VDataTable/VDataTable.mjs +1 -1
  351. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  352. package/lib/labs/VDataTable/VDataTableHeaders.mjs +34 -20
  353. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  354. package/lib/labs/VDataTable/VDataTableRow.mjs +2 -4
  355. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  356. package/lib/labs/VDataTable/VDataTableRows.mjs +2 -2
  357. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  358. package/lib/labs/VDataTable/VDataTableServer.mjs +1 -1
  359. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  360. package/lib/labs/VDataTable/index.d.ts +61 -933
  361. package/lib/labs/VInfiniteScroll/VInfiniteScroll.css +26 -0
  362. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +215 -0
  363. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -0
  364. package/lib/labs/VInfiniteScroll/VInfiniteScroll.sass +25 -0
  365. package/lib/labs/VInfiniteScroll/_variables.scss +3 -0
  366. package/lib/labs/VInfiniteScroll/index.d.ts +321 -0
  367. package/lib/labs/VInfiniteScroll/index.mjs +2 -0
  368. package/lib/labs/VInfiniteScroll/index.mjs.map +1 -0
  369. package/lib/labs/VSkeletonLoader/index.d.ts +0 -12
  370. package/lib/labs/components.d.ts +377 -1097
  371. package/lib/labs/components.mjs +1 -1
  372. package/lib/labs/components.mjs.map +1 -1
  373. package/lib/labs/date/DateAdapter.mjs +2 -0
  374. package/lib/labs/date/DateAdapter.mjs.map +1 -0
  375. package/lib/labs/date/adapters/vuetify.d.ts +52 -0
  376. package/lib/labs/date/adapters/vuetify.mjs +399 -0
  377. package/lib/labs/date/adapters/vuetify.mjs.map +1 -0
  378. package/lib/labs/date/date.mjs +39 -0
  379. package/lib/labs/date/date.mjs.map +1 -0
  380. package/lib/labs/date/index.d.ts +40 -0
  381. package/lib/labs/date/index.mjs +2 -0
  382. package/lib/labs/date/index.mjs.map +1 -0
  383. package/lib/labs/index.mjs +3 -2
  384. package/lib/labs/index.mjs.map +1 -1
  385. package/lib/locale/af.mjs +5 -1
  386. package/lib/locale/af.mjs.map +1 -1
  387. package/lib/locale/ar.mjs +5 -1
  388. package/lib/locale/ar.mjs.map +1 -1
  389. package/lib/locale/az.mjs +5 -1
  390. package/lib/locale/az.mjs.map +1 -1
  391. package/lib/locale/bg.mjs +5 -1
  392. package/lib/locale/bg.mjs.map +1 -1
  393. package/lib/locale/ca.mjs +5 -1
  394. package/lib/locale/ca.mjs.map +1 -1
  395. package/lib/locale/ckb.mjs +5 -1
  396. package/lib/locale/ckb.mjs.map +1 -1
  397. package/lib/locale/cs.mjs +5 -1
  398. package/lib/locale/cs.mjs.map +1 -1
  399. package/lib/locale/da.mjs +5 -1
  400. package/lib/locale/da.mjs.map +1 -1
  401. package/lib/locale/de.mjs +5 -1
  402. package/lib/locale/de.mjs.map +1 -1
  403. package/lib/locale/el.mjs +5 -1
  404. package/lib/locale/el.mjs.map +1 -1
  405. package/lib/locale/en.mjs +5 -1
  406. package/lib/locale/en.mjs.map +1 -1
  407. package/lib/locale/es.mjs +5 -1
  408. package/lib/locale/es.mjs.map +1 -1
  409. package/lib/locale/et.mjs +5 -1
  410. package/lib/locale/et.mjs.map +1 -1
  411. package/lib/locale/fa.mjs +5 -1
  412. package/lib/locale/fa.mjs.map +1 -1
  413. package/lib/locale/fi.mjs +5 -1
  414. package/lib/locale/fi.mjs.map +1 -1
  415. package/lib/locale/fr.mjs +5 -1
  416. package/lib/locale/fr.mjs.map +1 -1
  417. package/lib/locale/he.mjs +5 -1
  418. package/lib/locale/he.mjs.map +1 -1
  419. package/lib/locale/hr.mjs +5 -1
  420. package/lib/locale/hr.mjs.map +1 -1
  421. package/lib/locale/hu.mjs +5 -1
  422. package/lib/locale/hu.mjs.map +1 -1
  423. package/lib/locale/id.mjs +5 -1
  424. package/lib/locale/id.mjs.map +1 -1
  425. package/lib/locale/index.d.ts +168 -0
  426. package/lib/locale/it.mjs +5 -1
  427. package/lib/locale/it.mjs.map +1 -1
  428. package/lib/locale/ja.mjs +5 -1
  429. package/lib/locale/ja.mjs.map +1 -1
  430. package/lib/locale/ko.mjs +5 -1
  431. package/lib/locale/ko.mjs.map +1 -1
  432. package/lib/locale/lt.mjs +5 -1
  433. package/lib/locale/lt.mjs.map +1 -1
  434. package/lib/locale/lv.mjs +5 -1
  435. package/lib/locale/lv.mjs.map +1 -1
  436. package/lib/locale/nl.mjs +5 -1
  437. package/lib/locale/nl.mjs.map +1 -1
  438. package/lib/locale/no.mjs +5 -1
  439. package/lib/locale/no.mjs.map +1 -1
  440. package/lib/locale/pl.mjs +5 -1
  441. package/lib/locale/pl.mjs.map +1 -1
  442. package/lib/locale/pt.mjs +5 -1
  443. package/lib/locale/pt.mjs.map +1 -1
  444. package/lib/locale/ro.mjs +5 -1
  445. package/lib/locale/ro.mjs.map +1 -1
  446. package/lib/locale/ru.mjs +5 -1
  447. package/lib/locale/ru.mjs.map +1 -1
  448. package/lib/locale/sk.mjs +5 -1
  449. package/lib/locale/sk.mjs.map +1 -1
  450. package/lib/locale/sl.mjs +5 -1
  451. package/lib/locale/sl.mjs.map +1 -1
  452. package/lib/locale/sr-Cyrl.mjs +5 -1
  453. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  454. package/lib/locale/sr-Latn.mjs +5 -1
  455. package/lib/locale/sr-Latn.mjs.map +1 -1
  456. package/lib/locale/sv.mjs +5 -1
  457. package/lib/locale/sv.mjs.map +1 -1
  458. package/lib/locale/th.mjs +5 -1
  459. package/lib/locale/th.mjs.map +1 -1
  460. package/lib/locale/tr.mjs +5 -1
  461. package/lib/locale/tr.mjs.map +1 -1
  462. package/lib/locale/uk.mjs +5 -1
  463. package/lib/locale/uk.mjs.map +1 -1
  464. package/lib/locale/vi.mjs +5 -1
  465. package/lib/locale/vi.mjs.map +1 -1
  466. package/lib/locale/zh-Hans.mjs +5 -1
  467. package/lib/locale/zh-Hans.mjs.map +1 -1
  468. package/lib/locale/zh-Hant.mjs +5 -1
  469. package/lib/locale/zh-Hant.mjs.map +1 -1
  470. package/lib/styles/main.css +152 -0
  471. package/lib/styles/settings/_utilities.scss +11 -1
  472. package/lib/util/createSimpleFunctional.mjs +9 -4
  473. package/lib/util/createSimpleFunctional.mjs.map +1 -1
  474. package/lib/util/defineComponent.mjs +11 -43
  475. package/lib/util/defineComponent.mjs.map +1 -1
  476. package/lib/util/helpers.mjs +32 -2
  477. package/lib/util/helpers.mjs.map +1 -1
  478. package/lib/util/index.mjs +1 -0
  479. package/lib/util/index.mjs.map +1 -1
  480. package/package.json +4 -3
  481. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +0 -1
  482. package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs.map +0 -1
  483. package/lib/labs/VVirtualScroll/index.mjs.map +0 -1
  484. /package/lib/{labs → components}/VVirtualScroll/VVirtualScroll.css +0 -0
  485. /package/lib/{labs → components}/VVirtualScroll/VVirtualScroll.sass +0 -0
  486. /package/lib/{labs → components}/VVirtualScroll/index.mjs +0 -0
package/lib/index.d.ts CHANGED
@@ -147,8 +147,45 @@ type DefaultsInstance = undefined | {
147
147
  global?: Record<string, unknown>;
148
148
  };
149
149
  type DefaultsOptions = Partial<DefaultsInstance>;
150
+ declare function useDefaults(props?: Record<string, any>, name?: string, defaults?: Ref<DefaultsInstance>): {
151
+ props: Record<string, any>;
152
+ provideSubDefaults: () => void;
153
+ };
154
+
155
+ interface DateAdapter<Date> {
156
+ date(value?: any): Date | null;
157
+ format(date: Date, formatString: string): string;
158
+ startOfMonth(date: Date): Date;
159
+ endOfMonth(date: Date): Date;
160
+ startOfYear(date: Date): Date;
161
+ endOfYear(date: Date): Date;
162
+ isAfter(date: Date, comparing: Date): boolean;
163
+ isEqual(date: Date, comparing: Date): boolean;
164
+ isSameDay(date: Date, comparing: Date): boolean;
165
+ isSameMonth(date: Date, comparing: Date): boolean;
166
+ isValid(date: any): boolean;
167
+ isWithinRange(date: Date, range: [Date, Date]): boolean;
168
+ addDays(date: Date, amount: number): Date;
169
+ addMonths(date: Date, amount: number): Date;
170
+ getYear(date: Date): number;
171
+ setYear(date: Date, year: number): Date;
172
+ getDiff(date: Date, comparing: Date | string, unit?: string): number;
173
+ getWeek(date: Date): number;
174
+ getWeekArray(date: Date): (Date | null)[][];
175
+ getWeekdays(): string[];
176
+ getMonth(date: Date): number;
177
+ }
178
+
179
+ interface DateInstance extends DateAdapter<Date> {
180
+ locale: string;
181
+ }
182
+ type DateOptions = {
183
+ adapter: {
184
+ new (locale: string): DateInstance;
185
+ };
186
+ };
150
187
 
151
- type IconValue = string | JSXComponent;
188
+ type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
152
189
  declare const IconValue: PropType<IconValue>;
153
190
  interface IconAliases {
154
191
  [name: string]: IconValue;
@@ -235,6 +272,7 @@ interface VuetifyOptions {
235
272
  aliases?: Record<string, any>;
236
273
  blueprint?: Blueprint;
237
274
  components?: Record<string, any>;
275
+ date?: DateOptions;
238
276
  directives?: Record<string, any>;
239
277
  defaults?: DefaultsOptions;
240
278
  display?: DisplayOptions;
@@ -265,16 +303,19 @@ declare function createVuetify(vuetify?: VuetifyOptions): {
265
303
  n: (value: number) => string;
266
304
  provide: (props: LocaleOptions) => LocaleInstance;
267
305
  };
306
+ date: DateOptions;
268
307
  };
269
308
  declare namespace createVuetify {
270
309
  var version: string;
271
310
  }
272
311
  declare const version: string;
273
312
 
274
- export { Blueprint, DefaultsInstance, DisplayBreakpoint, DisplayInstance, DisplayThresholds, IconAliases, IconOptions, IconProps, IconSet, LocaleInstance, LocaleMessages, LocaleOptions, RtlInstance, RtlOptions, SubmitEventPromise, ThemeDefinition, ThemeInstance, VuetifyOptions, createVuetify, useDisplay, useLayout, useLocale, useRtl, useTheme, version };
313
+ export { Blueprint, DefaultsInstance, DisplayBreakpoint, DisplayInstance, DisplayThresholds, IconAliases, IconOptions, IconProps, IconSet, LocaleInstance, LocaleMessages, LocaleOptions, RtlInstance, RtlOptions, SubmitEventPromise, ThemeDefinition, ThemeInstance, VuetifyOptions, createVuetify, useDefaults, useDisplay, useLayout, useLocale, useRtl, useTheme, version };
275
314
 
276
315
  import type { ComponentPublicInstance, FunctionalComponent, UnwrapNestedRefs, VNodeChild } from 'vue'
277
316
 
317
+ // @skip-build
318
+ import type { DateOptions } from './labs'
278
319
 
279
320
  declare global {
280
321
  namespace JSX {
@@ -304,6 +345,7 @@ declare module '@vue/runtime-core' {
304
345
  theme: UnwrapNestedRefs<ThemeInstance>
305
346
  icons: IconOptions
306
347
  locale: UnwrapNestedRefs<LocaleInstance & RtlInstance>
348
+ date: DateOptions
307
349
  }
308
350
 
309
351
  export interface ComponentCustomProperties {
@@ -312,32 +354,32 @@ declare module '@vue/runtime-core' {
312
354
 
313
355
  export interface GlobalComponents {
314
356
  VApp: typeof import('vuetify/components')['VApp']
315
- VAlert: typeof import('vuetify/components')['VAlert']
316
- VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
317
- VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
318
357
  VAppBar: typeof import('vuetify/components')['VAppBar']
319
358
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
320
359
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
360
+ VAlert: typeof import('vuetify/components')['VAlert']
361
+ VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
362
+ VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
363
+ VAvatar: typeof import('vuetify/components')['VAvatar']
321
364
  VBadge: typeof import('vuetify/components')['VBadge']
322
365
  VBanner: typeof import('vuetify/components')['VBanner']
323
366
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
324
367
  VBannerText: typeof import('vuetify/components')['VBannerText']
325
- VAvatar: typeof import('vuetify/components')['VAvatar']
326
368
  VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
327
369
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
328
370
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
329
371
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
330
372
  VBtn: typeof import('vuetify/components')['VBtn']
331
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
332
373
  VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
333
- VCarousel: typeof import('vuetify/components')['VCarousel']
334
- VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
374
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
335
375
  VCard: typeof import('vuetify/components')['VCard']
336
376
  VCardActions: typeof import('vuetify/components')['VCardActions']
337
377
  VCardItem: typeof import('vuetify/components')['VCardItem']
338
378
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
339
379
  VCardText: typeof import('vuetify/components')['VCardText']
340
380
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
381
+ VCarousel: typeof import('vuetify/components')['VCarousel']
382
+ VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
341
383
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
342
384
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
343
385
  VChip: typeof import('vuetify/components')['VChip']
@@ -345,8 +387,8 @@ declare module '@vue/runtime-core' {
345
387
  VCode: typeof import('vuetify/components')['VCode']
346
388
  VColorPicker: typeof import('vuetify/components')['VColorPicker']
347
389
  VCombobox: typeof import('vuetify/components')['VCombobox']
348
- VDialog: typeof import('vuetify/components')['VDialog']
349
390
  VCounter: typeof import('vuetify/components')['VCounter']
391
+ VDialog: typeof import('vuetify/components')['VDialog']
350
392
  VDivider: typeof import('vuetify/components')['VDivider']
351
393
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
352
394
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
@@ -356,13 +398,13 @@ declare module '@vue/runtime-core' {
356
398
  VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
357
399
  VFileInput: typeof import('vuetify/components')['VFileInput']
358
400
  VFooter: typeof import('vuetify/components')['VFooter']
359
- VImg: typeof import('vuetify/components')['VImg']
360
- VInput: typeof import('vuetify/components')['VInput']
361
401
  VIcon: typeof import('vuetify/components')['VIcon']
362
402
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
363
403
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
364
404
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
365
405
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
406
+ VImg: typeof import('vuetify/components')['VImg']
407
+ VInput: typeof import('vuetify/components')['VInput']
366
408
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
367
409
  VItem: typeof import('vuetify/components')['VItem']
368
410
  VKbd: typeof import('vuetify/components')['VKbd']
@@ -376,10 +418,10 @@ declare module '@vue/runtime-core' {
376
418
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
377
419
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
378
420
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
421
+ VMain: typeof import('vuetify/components')['VMain']
379
422
  VMenu: typeof import('vuetify/components')['VMenu']
380
423
  VMessages: typeof import('vuetify/components')['VMessages']
381
424
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
382
- VMain: typeof import('vuetify/components')['VMain']
383
425
  VOverlay: typeof import('vuetify/components')['VOverlay']
384
426
  VPagination: typeof import('vuetify/components')['VPagination']
385
427
  VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
@@ -393,11 +435,11 @@ declare module '@vue/runtime-core' {
393
435
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
394
436
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
395
437
  VSlider: typeof import('vuetify/components')['VSlider']
396
- VSystemBar: typeof import('vuetify/components')['VSystemBar']
397
438
  VSnackbar: typeof import('vuetify/components')['VSnackbar']
439
+ VSwitch: typeof import('vuetify/components')['VSwitch']
440
+ VSystemBar: typeof import('vuetify/components')['VSystemBar']
398
441
  VTabs: typeof import('vuetify/components')['VTabs']
399
442
  VTab: typeof import('vuetify/components')['VTab']
400
- VSwitch: typeof import('vuetify/components')['VSwitch']
401
443
  VTable: typeof import('vuetify/components')['VTable']
402
444
  VTextarea: typeof import('vuetify/components')['VTextarea']
403
445
  VTextField: typeof import('vuetify/components')['VTextField']
@@ -406,26 +448,28 @@ declare module '@vue/runtime-core' {
406
448
  VToolbar: typeof import('vuetify/components')['VToolbar']
407
449
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
408
450
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
451
+ VTooltip: typeof import('vuetify/components')['VTooltip']
409
452
  VWindow: typeof import('vuetify/components')['VWindow']
410
453
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
411
- VTooltip: typeof import('vuetify/components')['VTooltip']
412
- VHover: typeof import('vuetify/components')['VHover']
454
+ VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
455
+ VForm: typeof import('vuetify/components')['VForm']
413
456
  VContainer: typeof import('vuetify/components')['VContainer']
414
457
  VCol: typeof import('vuetify/components')['VCol']
415
458
  VRow: typeof import('vuetify/components')['VRow']
416
459
  VSpacer: typeof import('vuetify/components')['VSpacer']
417
- VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
418
- VForm: typeof import('vuetify/components')['VForm']
460
+ VHover: typeof import('vuetify/components')['VHover']
419
461
  VLayout: typeof import('vuetify/components')['VLayout']
420
462
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
421
463
  VLazy: typeof import('vuetify/components')['VLazy']
422
464
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
423
465
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
466
+ VParallax: typeof import('vuetify/components')['VParallax']
424
467
  VRadio: typeof import('vuetify/components')['VRadio']
425
- VResponsive: typeof import('vuetify/components')['VResponsive']
426
468
  VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
427
- VParallax: typeof import('vuetify/components')['VParallax']
469
+ VResponsive: typeof import('vuetify/components')['VResponsive']
470
+ VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
428
471
  VValidation: typeof import('vuetify/components')['VValidation']
472
+ VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
429
473
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
430
474
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
431
475
  VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
@@ -442,6 +486,5 @@ declare module '@vue/runtime-core' {
442
486
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
443
487
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
444
488
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
445
- VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
446
489
  }
447
490
  }
@@ -154,7 +154,7 @@ export const VDataTable = genericComponent()({
154
154
  top: slots.top,
155
155
  default: slots.default ?? (() => _createVNode(_Fragment, null, [slots.colgroup?.({
156
156
  columns
157
- }), _createVNode("thead", null, [slots.headers ? slots.headers() : _createVNode(VDataTableHeaders, {
157
+ }), _createVNode("thead", null, [_createVNode(VDataTableHeaders, {
158
158
  "sticky": props.fixedHeader,
159
159
  "multiSort": props.multiSort
160
160
  }, slots)]), slots.thead?.(), _createVNode("tbody", null, [slots.body ? slots.body() : _createVNode(VDataTableRows, {
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTable.mjs","names":["VTable","VDataTableHeaders","VDataTableRows","VDataTableFooter","makeDataTableItemProps","useDataTableItems","createHeaders","makeDataTableHeaderProps","createSort","makeDataTableSortProps","provideSort","useSortedItems","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createPagination","makeDataTablePaginateProps","providePagination","usePaginatedItems","makeDataTableSelectProps","provideSelection","makeDataTableExpandProps","provideExpanded","useOptions","provideDefaults","computed","toRef","genericComponent","propsFactory","useRender","makeFilterProps","useFilter","makeVDataTableProps","hideNoData","Boolean","hover","noDataText","type","String","default","height","Number","width","fixedHeader","fixedFooter","Function","search","VDataTable","name","props","emits","value","setup","_ref","emit","slots","groupBy","sortBy","multiSort","mustSort","page","itemsPerPage","columns","showSelect","showExpand","items","filterKeys","map","c","key","filteredItems","sortByWithGroups","opened","extractRows","sortedItems","flatItems","itemsLength","length","startIndex","stopIndex","paginatedItems","paginatedItemsWithoutGroups","_createVNode","top","_Fragment","colgroup","headers","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTable.tsx"],"sourcesContent":["// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VDataTableFooter } from './VDataTableFooter'\n\n// Composables\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from './composables/sort'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from './composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { useOptions } from './composables/options'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DataTableItem, InternalDataTableHeader } from './types'\n\nexport type VDataTableSlots = VDataTableRowsSlots & {\n colgroup: [InternalDataTableHeader]\n default: []\n top: []\n headers: []\n body: []\n tbody: []\n thead: []\n tfoot: []\n bottom: []\n 'footer.prepend': []\n}\n\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTableItemProps(),\n ...makeDataTableHeaderProps(),\n hideNoData: Boolean,\n hover: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n height: [String, Number],\n width: [String, Number],\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n 'onClick:row': Function as PropType<(e: Event, value: { item: DataTableItem }) => void>,\n search: String,\n}, 'v-data-table')\n\nexport const VDataTable = genericComponent<VDataTableSlots>()({\n name: 'VDataTable',\n\n props: {\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n ...makeFilterProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key))\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter<DataTableItem>(props, items, search, { filterKeys })\n\n provideSort({ sortBy, multiSort, mustSort, page })\n const { sortByWithGroups, opened, extractRows } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n const itemsLength = computed(() => flatItems.value.length)\n\n const { startIndex, stopIndex } = providePagination({ page, itemsPerPage, itemsLength })\n const { paginatedItems } = usePaginatedItems({ items: flatItems, startIndex, stopIndex, itemsPerPage })\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n provideSelection(props, paginatedItemsWithoutGroups)\n\n provideExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n },\n })\n\n useRender(() => (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--show-select': props.showSelect,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n hover={ props.hover }\n >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n { slots.colgroup?.({ columns }) }\n <thead>\n { slots.headers ? slots.headers() : (\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n multiSort={ props.multiSort }\n v-slots={ slots }\n />\n )}\n </thead>\n { slots.thead?.() }\n <tbody>\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ paginatedItems.value }\n onClick:row={ props['onClick:row'] }\n v-slots={ slots }\n />\n )}\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n ))\n\n return {}\n },\n})\n\nexport type VDataTable = InstanceType<typeof VDataTable>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTable.mjs","names":["VTable","VDataTableHeaders","VDataTableRows","VDataTableFooter","makeDataTableItemProps","useDataTableItems","createHeaders","makeDataTableHeaderProps","createSort","makeDataTableSortProps","provideSort","useSortedItems","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createPagination","makeDataTablePaginateProps","providePagination","usePaginatedItems","makeDataTableSelectProps","provideSelection","makeDataTableExpandProps","provideExpanded","useOptions","provideDefaults","computed","toRef","genericComponent","propsFactory","useRender","makeFilterProps","useFilter","makeVDataTableProps","hideNoData","Boolean","hover","noDataText","type","String","default","height","Number","width","fixedHeader","fixedFooter","Function","search","VDataTable","name","props","emits","value","setup","_ref","emit","slots","groupBy","sortBy","multiSort","mustSort","page","itemsPerPage","columns","showSelect","showExpand","items","filterKeys","map","c","key","filteredItems","sortByWithGroups","opened","extractRows","sortedItems","flatItems","itemsLength","length","startIndex","stopIndex","paginatedItems","paginatedItemsWithoutGroups","_createVNode","top","_Fragment","colgroup","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTable.tsx"],"sourcesContent":["// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VDataTableFooter } from './VDataTableFooter'\n\n// Composables\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from './composables/sort'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from './composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { useOptions } from './composables/options'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DataTableItem, InternalDataTableHeader } from './types'\n\nexport type VDataTableSlots = VDataTableRowsSlots & {\n colgroup: [InternalDataTableHeader]\n default: []\n top: []\n headers: []\n body: []\n tbody: []\n thead: []\n tfoot: []\n bottom: []\n 'footer.prepend': []\n}\n\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTableItemProps(),\n ...makeDataTableHeaderProps(),\n hideNoData: Boolean,\n hover: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n height: [String, Number],\n width: [String, Number],\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n 'onClick:row': Function as PropType<(e: Event, value: { item: DataTableItem }) => void>,\n search: String,\n}, 'v-data-table')\n\nexport const VDataTable = genericComponent<VDataTableSlots>()({\n name: 'VDataTable',\n\n props: {\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n ...makeFilterProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key))\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter<DataTableItem>(props, items, search, { filterKeys })\n\n provideSort({ sortBy, multiSort, mustSort, page })\n const { sortByWithGroups, opened, extractRows } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n const itemsLength = computed(() => flatItems.value.length)\n\n const { startIndex, stopIndex } = providePagination({ page, itemsPerPage, itemsLength })\n const { paginatedItems } = usePaginatedItems({ items: flatItems, startIndex, stopIndex, itemsPerPage })\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n provideSelection(props, paginatedItemsWithoutGroups)\n\n provideExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n },\n })\n\n useRender(() => (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--show-select': props.showSelect,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n hover={ props.hover }\n >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n { slots.colgroup?.({ columns }) }\n <thead>\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n multiSort={ props.multiSort }\n v-slots={ slots }\n />\n </thead>\n { slots.thead?.() }\n <tbody>\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ paginatedItems.value }\n onClick:row={ props['onClick:row'] }\n v-slots={ slots }\n />\n )}\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n ))\n\n return {}\n },\n})\n\nexport type VDataTable = InstanceType<typeof VDataTable>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,MAAM;AAAA,SACNC,iBAAiB;AAAA,SAEjBC,cAAc;AAAA,SACdC,gBAAgB,kCAEzB;AAAA,SACSC,sBAAsB,EAAEC,iBAAiB;AAAA,SACzCC,aAAa,EAAEC,wBAAwB;AAAA,SACvCC,UAAU,EAAEC,sBAAsB,EAAEC,WAAW,EAAEC,cAAc;AAAA,SAC/DC,aAAa,EAAEC,uBAAuB,EAAEC,cAAc,EAAEC,eAAe;AAAA,SACvEC,gBAAgB,EAAEC,0BAA0B,EAAEC,iBAAiB,EAAEC,iBAAiB;AAAA,SAClFC,wBAAwB,EAAEC,gBAAgB;AAAA,SAC1CC,wBAAwB,EAAEC,eAAe;AAAA,SACzCC,UAAU;AAAA,SACVC,eAAe,0CAExB;AACA,SAASC,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAAA,SACzCC,eAAe,EAAEC,SAAS,wCAEnC;AAiBA,OAAO,MAAMC,mBAAmB,GAAGJ,YAAY,CAAC;EAC9C,GAAGzB,sBAAsB,EAAE;EAC3B,GAAGG,wBAAwB,EAAE;EAC7B2B,UAAU,EAAEC,OAAO;EACnBC,KAAK,EAAED,OAAO;EACdE,UAAU,EAAE;IACVC,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDC,MAAM,EAAE,CAACF,MAAM,EAAEG,MAAM,CAAC;EACxBC,KAAK,EAAE,CAACJ,MAAM,EAAEG,MAAM,CAAC;EACvBE,WAAW,EAAET,OAAO;EACpBU,WAAW,EAAEV,OAAO;EACpB,aAAa,EAAEW,QAAwE;EACvFC,MAAM,EAAER;AACV,CAAC,EAAE,cAAc,CAAC;AAElB,OAAO,MAAMS,UAAU,GAAGpB,gBAAgB,EAAmB,CAAC;EAC5DqB,IAAI,EAAE,YAAY;EAElBC,KAAK,EAAE;IACL,GAAGjB,mBAAmB,EAAE;IACxB,GAAGX,wBAAwB,EAAE;IAC7B,GAAGT,uBAAuB,EAAE;IAC5B,GAAGO,wBAAwB,EAAE;IAC7B,GAAGX,sBAAsB,EAAE;IAC3B,GAAGQ,0BAA0B,EAAE;IAC/B,GAAGc,eAAe;EACpB,CAAC;EAEDoB,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAY,IAAK,IAAI;IAC3C,aAAa,EAAGA,KAAa,IAAK,IAAI;IACtC,qBAAqB,EAAGA,KAAa,IAAK,IAAI;IAC9C,eAAe,EAAGA,KAAU,IAAK,IAAI;IACrC,gBAAgB,EAAGA,KAAU,IAAK,IAAI;IACtC,gBAAgB,EAAGA,KAAU,IAAK,IAAI;IACtC,iBAAiB,EAAGA,KAAU,IAAK;EACrC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAM;MAAEG;IAAQ,CAAC,GAAG7C,aAAa,CAACsC,KAAK,CAAC;IACxC,MAAM;MAAEQ,MAAM;MAAEC,SAAS;MAAEC;IAAS,CAAC,GAAGpD,UAAU,CAAC0C,KAAK,CAAC;IACzD,MAAM;MAAEW,IAAI;MAAEC;IAAa,CAAC,GAAG9C,gBAAgB,CAACkC,KAAK,CAAC;IAEtD,MAAM;MAAEa;IAAQ,CAAC,GAAGzD,aAAa,CAAC4C,KAAK,EAAE;MACvCO,OAAO;MACPO,UAAU,EAAErC,KAAK,CAACuB,KAAK,EAAE,YAAY,CAAC;MACtCe,UAAU,EAAEtC,KAAK,CAACuB,KAAK,EAAE,YAAY;IACvC,CAAC,CAAC;IAEF,MAAM;MAAEgB;IAAM,CAAC,GAAG7D,iBAAiB,CAAC6C,KAAK,EAAEa,OAAO,CAAC;IAEnD,MAAMI,UAAU,GAAGzC,QAAQ,CAAC,MAAMqC,OAAO,CAACX,KAAK,CAACgB,GAAG,CAACC,CAAC,IAAI,UAAU,GAAGA,CAAC,CAACC,GAAG,CAAC,CAAC;IAC7E,MAAMvB,MAAM,GAAGpB,KAAK,CAACuB,KAAK,EAAE,QAAQ,CAAC;IACrC,MAAM;MAAEqB;IAAc,CAAC,GAAGvC,SAAS,CAAgBkB,KAAK,EAAEgB,KAAK,EAAEnB,MAAM,EAAE;MAAEoB;IAAW,CAAC,CAAC;IAExFzD,WAAW,CAAC;MAAEgD,MAAM;MAAEC,SAAS;MAAEC,QAAQ;MAAEC;IAAK,CAAC,CAAC;IAClD,MAAM;MAAEW,gBAAgB;MAAEC,MAAM;MAAEC;IAAY,CAAC,GAAG5D,cAAc,CAAC;MAAE2C,OAAO;MAAEC;IAAO,CAAC,CAAC;IAErF,MAAM;MAAEiB;IAAY,CAAC,GAAGhE,cAAc,CAAC4D,aAAa,EAAEC,gBAAgB,EAAET,OAAO,CAAC;IAChF,MAAM;MAAEa;IAAU,CAAC,GAAG7D,eAAe,CAAC4D,WAAW,EAAElB,OAAO,EAAEgB,MAAM,CAAC;IACnE,MAAMI,WAAW,GAAGnD,QAAQ,CAAC,MAAMkD,SAAS,CAACxB,KAAK,CAAC0B,MAAM,CAAC;IAE1D,MAAM;MAAEC,UAAU;MAAEC;IAAU,CAAC,GAAG9D,iBAAiB,CAAC;MAAE2C,IAAI;MAAEC,YAAY;MAAEe;IAAY,CAAC,CAAC;IACxF,MAAM;MAAEI;IAAe,CAAC,GAAG9D,iBAAiB,CAAC;MAAE+C,KAAK,EAAEU,SAAS;MAAEG,UAAU;MAAEC,SAAS;MAAElB;IAAa,CAAC,CAAC;IAEvG,MAAMoB,2BAA2B,GAAGxD,QAAQ,CAAC,MAAMgD,WAAW,CAACO,cAAc,CAAC7B,KAAK,CAAC,CAAC;IAErF/B,gBAAgB,CAAC6B,KAAK,EAAEgC,2BAA2B,CAAC;IAEpD3D,eAAe,CAAC2B,KAAK,CAAC;IAEtB1B,UAAU,CAAC;MACTqC,IAAI;MACJC,YAAY;MACZJ,MAAM;MACND,OAAO;MACPV;IACF,CAAC,CAAC;IAEFtB,eAAe,CAAC;MACdvB,cAAc,EAAE;QACdgC,UAAU,EAAEP,KAAK,CAACuB,KAAK,EAAE,YAAY,CAAC;QACtCb,UAAU,EAAEV,KAAK,CAACuB,KAAK,EAAE,YAAY;MACvC;IACF,CAAC,CAAC;IAEFpB,SAAS,CAAC,MAAAqD,YAAA,CAAAnF,MAAA;MAAA,SAEC,CACL,cAAc,EACd;QACE,2BAA2B,EAAEkD,KAAK,CAACc;MACrC,CAAC,CACF;MAAA,eACad,KAAK,CAACN,WAAW;MAAA,eACjBM,KAAK,CAACL,WAAW;MAAA,UACtBK,KAAK,CAACT,MAAM;MAAA,SACbS,KAAK,CAACd;IAAK;MAGjBgD,GAAG,EAAE5B,KAAK,CAAC4B,GAAG;MACd5C,OAAO,EAAEgB,KAAK,CAAChB,OAAO,KAAK,MAAA2C,YAAA,CAAAE,SAAA,SAErB7B,KAAK,CAAC8B,QAAQ,GAAG;QAAEvB;MAAQ,CAAC,CAAC,EAAAoB,YAAA,iBAAAA,YAAA,CAAAlF,iBAAA;QAAA,UAGlBiD,KAAK,CAACN,WAAW;QAAA,aACdM,KAAK,CAACS;MAAS,GACjBH,KAAK,KAGjBA,KAAK,CAAC+B,KAAK,IAAI,EAAAJ,YAAA,iBAEb3B,KAAK,CAACgC,IAAI,GAAGhC,KAAK,CAACgC,IAAI,EAAE,GAAAL,YAAA,CAAAjF,cAAA;QAAA,SAEf+E,cAAc,CAAC7B,KAAK;QAAA,eACdF,KAAK,CAAC,aAAa;MAAC,GACxBM,KAAK,CAElB,IAEDA,KAAK,CAACiC,KAAK,IAAI,EACfjC,KAAK,CAACkC,KAAK,IAAI,EAEpB,CAAC;MACFC,MAAM,EAAEnC,KAAK,CAACmC,MAAM,KAAK,MAAAR,YAAA,CAAAhF,gBAAA,QAEZ;QACPyF,OAAO,EAAEpC,KAAK,CAAC,gBAAgB;MACjC,CAAC,CAEJ;IAAC,EAGP,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -9,6 +9,7 @@ import { useBackgroundColor } from "../../composables/color.mjs";
9
9
  import { useHeaders } from "./composables/headers.mjs";
10
10
  import { useSelection } from "./composables/select.mjs";
11
11
  import { useSort } from "./composables/sort.mjs"; // Utilities
12
+ import { computed } from 'vue';
12
13
  import { convertToUnit, genericComponent, useRender } from "../../util/index.mjs"; // Types
13
14
  export const VDataTableHeaders = genericComponent()({
14
15
  name: 'VDataTableHeaders',
@@ -67,6 +68,17 @@ export const VDataTableHeaders = genericComponent()({
67
68
  backgroundColorClasses,
68
69
  backgroundColorStyles
69
70
  } = useBackgroundColor(props, 'color');
71
+ const slotProps = computed(() => ({
72
+ headers: headers.value,
73
+ columns: columns.value,
74
+ toggleSort,
75
+ sortBy: sortBy.value,
76
+ someSelected: someSelected.value,
77
+ allSelected: allSelected.value,
78
+ selectAll,
79
+ getSortIcon,
80
+ getFixedStyles
81
+ }));
70
82
  const VDataTableHeaderCell = _ref2 => {
71
83
  let {
72
84
  column,
@@ -94,14 +106,14 @@ export const VDataTableHeaders = genericComponent()({
94
106
  "noPadding": noPadding
95
107
  }, {
96
108
  default: () => {
97
- const slotName = `column.${column.key}`;
98
- const slotProps = {
109
+ const columnSlotName = `column.${column.key}`;
110
+ const columnSlotProps = {
99
111
  column,
100
112
  selectAll
101
113
  };
102
- if (slots[slotName]) return slots[slotName](slotProps);
114
+ if (slots[columnSlotName]) return slots[columnSlotName](columnSlotProps);
103
115
  if (column.key === 'data-table-select') {
104
- return slots['column.data-table-select']?.(slotProps) ?? _createVNode(VCheckboxBtn, {
116
+ return slots['column.data-table-select']?.(columnSlotProps) ?? _createVNode(VCheckboxBtn, {
105
117
  "modelValue": allSelected.value,
106
118
  "indeterminate": someSelected.value && !allSelected.value,
107
119
  "onUpdate:modelValue": selectAll
@@ -121,22 +133,24 @@ export const VDataTableHeaders = genericComponent()({
121
133
  }
122
134
  });
123
135
  };
124
- useRender(() => _createVNode(_Fragment, null, [headers.value.map((row, y) => _createVNode("tr", null, [row.map((column, x) => _createVNode(VDataTableHeaderCell, {
125
- "column": column,
126
- "x": x,
127
- "y": y
128
- }, null))])), props.loading && _createVNode("tr", {
129
- "class": "v-data-table__progress"
130
- }, [_createVNode("th", {
131
- "colspan": columns.value.length
132
- }, [_createVNode(LoaderSlot, {
133
- "name": "v-data-table-headers",
134
- "active": true,
135
- "color": typeof props.loading === 'boolean' ? undefined : props.loading,
136
- "indeterminate": true
137
- }, {
138
- default: slots.loader
139
- })])])]));
136
+ useRender(() => {
137
+ return _createVNode(_Fragment, null, [slots.headers ? slots.headers(slotProps.value) : headers.value.map((row, y) => _createVNode("tr", null, [row.map((column, x) => _createVNode(VDataTableHeaderCell, {
138
+ "column": column,
139
+ "x": x,
140
+ "y": y
141
+ }, null))])), props.loading && _createVNode("tr", {
142
+ "class": "v-data-table__progress"
143
+ }, [_createVNode("th", {
144
+ "colspan": columns.value.length
145
+ }, [_createVNode(LoaderSlot, {
146
+ "name": "v-data-table-headers",
147
+ "active": true,
148
+ "color": typeof props.loading === 'boolean' ? undefined : props.loading,
149
+ "indeterminate": true
150
+ }, {
151
+ default: slots.loader
152
+ })])])]);
153
+ });
140
154
  }
141
155
  });
142
156
  //# sourceMappingURL=VDataTableHeaders.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableHeaders.mjs","names":["VCheckboxBtn","VDataTableColumn","VIcon","IconValue","LoaderSlot","makeLoaderProps","useLoader","useBackgroundColor","useHeaders","useSelection","useSort","convertToUnit","genericComponent","useRender","VDataTableHeaders","name","props","color","String","sticky","Boolean","multiSort","sortAscIcon","type","default","sortDescIcon","setup","_ref","slots","emit","toggleSort","sortBy","someSelected","allSelected","selectAll","columns","headers","loaderClasses","getFixedStyles","column","y","fixed","position","zIndex","undefined","left","fixedOffset","top","getSortIcon","id","item","value","find","key","order","backgroundColorClasses","backgroundColorStyles","VDataTableHeaderCell","_ref2","x","isSorted","noPadding","_createVNode","align","sortable","width","minWidth","colspan","rowspan","lastFixed","slotName","slotProps","title","findIndex","_Fragment","map","row","loading","length","loader"],"sources":["../../../src/labs/VDataTable/VDataTableHeaders.tsx"],"sourcesContent":["// Components\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VDataTableColumn } from './VDataTableColumn'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useSort } from './composables/sort'\n\n// Utilities\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { InternalDataTableHeader } from './types'\nimport type { LoaderSlotProps } from '@/composables/loader'\n\nexport type VDataTableHeadersSlots = {\n default: []\n loader: [LoaderSlotProps]\n 'column.data-table-select': [InternalDataTableHeader, (value: boolean) => void]\n}\n\nexport const VDataTableHeaders = genericComponent<VDataTableHeadersSlots>()({\n name: 'VDataTableHeaders',\n\n props: {\n color: String,\n sticky: Boolean,\n multiSort: Boolean,\n sortAscIcon: {\n type: IconValue,\n default: '$sortAsc',\n },\n sortDescIcon: {\n type: IconValue,\n default: '$sortDesc',\n },\n\n ...makeLoaderProps(),\n },\n\n setup (props, { slots, emit }) {\n const { toggleSort, sortBy } = useSort()\n const { someSelected, allSelected, selectAll } = useSelection()\n const { columns, headers } = useHeaders()\n const { loaderClasses } = useLoader(props)\n\n const getFixedStyles = (column: InternalDataTableHeader, y: number) => {\n if (!props.sticky && !column.fixed) return null\n\n return {\n position: 'sticky',\n zIndex: column.fixed ? 4 : props.sticky ? 3 : undefined, // TODO: This needs to account for possible previous fixed columns.\n left: column.fixed ? convertToUnit(column.fixedOffset) : undefined, // TODO: This needs to account for possible row/colspan of previous columns\n top: props.sticky ? `calc(var(--v-table-header-height) * ${y})` : undefined,\n }\n }\n\n function getSortIcon (id: string) {\n const item = sortBy.value.find(item => item.key === id)\n\n if (!item) return props.sortAscIcon\n\n return item.order === 'asc' ? props.sortAscIcon : props.sortDescIcon\n }\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n const VDataTableHeaderCell = ({ column, x, y }: { column: InternalDataTableHeader, x: number, y: number }) => {\n const isSorted = !!sortBy.value.find(x => x.key === column.key)\n const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand'\n\n return (\n <VDataTableColumn\n tag=\"th\"\n align={ column.align }\n class={[\n 'v-data-table__th',\n {\n 'v-data-table__th--sortable': column.sortable,\n 'v-data-table__th--sorted': isSorted,\n },\n loaderClasses.value,\n ]}\n style={{\n width: convertToUnit(column.width),\n minWidth: convertToUnit(column.width),\n ...getFixedStyles(column, y),\n }}\n colspan={ column.colspan }\n rowspan={ column.rowspan }\n onClick={ column.sortable ? () => toggleSort(column.key) : undefined }\n lastFixed={ column.lastFixed }\n noPadding={ noPadding }\n >\n {{\n default: () => {\n const slotName = `column.${column.key}`\n const slotProps = {\n column,\n selectAll,\n }\n\n if (slots[slotName]) return slots[slotName]!(slotProps)\n\n if (column.key === 'data-table-select') {\n return slots['column.data-table-select']?.(slotProps) ?? (\n <VCheckboxBtn\n modelValue={ allSelected.value }\n indeterminate={ someSelected.value && !allSelected.value }\n onUpdate:modelValue={ selectAll }\n />\n )\n }\n\n return (\n <div class=\"v-data-table-header__content\">\n <span>{ column.title }</span>\n { column.sortable && (\n <VIcon\n key=\"icon\"\n class=\"v-data-table-header__sort-icon\"\n icon={ getSortIcon(column.key) }\n />\n )}\n { props.multiSort && isSorted && (\n <div\n key=\"badge\"\n class={[\n 'v-data-table-header__sort-badge',\n ...backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n { sortBy.value.findIndex(x => x.key === column.key) + 1 }\n </div>\n )}\n </div>\n )\n },\n }}\n </VDataTableColumn>\n )\n }\n\n useRender(() => (\n <>\n { headers.value.map((row, y) => (\n <tr>\n { row.map((column, x) => (\n <VDataTableHeaderCell column={ column } x={ x } y={ y } />\n ))}\n </tr>\n ))}\n\n { props.loading && (\n <tr class=\"v-data-table__progress\">\n <th colspan={ columns.value.length }>\n <LoaderSlot\n name=\"v-data-table-headers\"\n active\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n indeterminate\n v-slots={{ default: slots.loader }}\n />\n </th>\n </tr>\n )}\n </>\n ))\n },\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTableHeaders.mjs","names":["VCheckboxBtn","VDataTableColumn","VIcon","IconValue","LoaderSlot","makeLoaderProps","useLoader","useBackgroundColor","useHeaders","useSelection","useSort","computed","convertToUnit","genericComponent","useRender","VDataTableHeaders","name","props","color","String","sticky","Boolean","multiSort","sortAscIcon","type","default","sortDescIcon","setup","_ref","slots","emit","toggleSort","sortBy","someSelected","allSelected","selectAll","columns","headers","loaderClasses","getFixedStyles","column","y","fixed","position","zIndex","undefined","left","fixedOffset","top","getSortIcon","id","item","value","find","key","order","backgroundColorClasses","backgroundColorStyles","slotProps","VDataTableHeaderCell","_ref2","x","isSorted","noPadding","_createVNode","align","sortable","width","minWidth","colspan","rowspan","lastFixed","columnSlotName","columnSlotProps","title","findIndex","_Fragment","map","row","loading","length","loader"],"sources":["../../../src/labs/VDataTable/VDataTableHeaders.tsx"],"sourcesContent":["// Components\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VDataTableColumn } from './VDataTableColumn'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useSort } from './composables/sort'\n\n// Utilities\nimport { computed } from 'vue'\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { InternalDataTableHeader } from './types'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { SortItem } from './composables/sort'\n\ntype HeadersSlotProps = {\n headers: InternalDataTableHeader[][]\n columns: InternalDataTableHeader[]\n sortBy: SortItem[]\n someSelected: boolean\n allSelected: boolean\n toggleSort: (key: string) => void\n selectAll: (value: boolean) => void\n getSortIcon: (key: string) => IconValue\n getFixedStyles: (column: InternalDataTableHeader) => Record<string, string>\n}\n\nexport type VDataTableHeadersSlots = {\n default: []\n headers: [HeadersSlotProps]\n loader: [LoaderSlotProps]\n 'column.data-table-select': [InternalDataTableHeader, (value: boolean) => void]\n}\n\nexport const VDataTableHeaders = genericComponent<VDataTableHeadersSlots>()({\n name: 'VDataTableHeaders',\n\n props: {\n color: String,\n sticky: Boolean,\n multiSort: Boolean,\n sortAscIcon: {\n type: IconValue,\n default: '$sortAsc',\n },\n sortDescIcon: {\n type: IconValue,\n default: '$sortDesc',\n },\n\n ...makeLoaderProps(),\n },\n\n setup (props, { slots, emit }) {\n const { toggleSort, sortBy } = useSort()\n const { someSelected, allSelected, selectAll } = useSelection()\n const { columns, headers } = useHeaders()\n const { loaderClasses } = useLoader(props)\n\n const getFixedStyles = (column: InternalDataTableHeader, y: number) => {\n if (!props.sticky && !column.fixed) return null\n\n return {\n position: 'sticky',\n zIndex: column.fixed ? 4 : props.sticky ? 3 : undefined, // TODO: This needs to account for possible previous fixed columns.\n left: column.fixed ? convertToUnit(column.fixedOffset) : undefined, // TODO: This needs to account for possible row/colspan of previous columns\n top: props.sticky ? `calc(var(--v-table-header-height) * ${y})` : undefined,\n }\n }\n\n function getSortIcon (id: string) {\n const item = sortBy.value.find(item => item.key === id)\n\n if (!item) return props.sortAscIcon\n\n return item.order === 'asc' ? props.sortAscIcon : props.sortDescIcon\n }\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n const slotProps = computed(() => ({\n headers: headers.value,\n columns: columns.value,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n selectAll,\n getSortIcon,\n getFixedStyles,\n }))\n\n const VDataTableHeaderCell = ({ column, x, y }: { column: InternalDataTableHeader, x: number, y: number }) => {\n const isSorted = !!sortBy.value.find(x => x.key === column.key)\n const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand'\n\n return (\n <VDataTableColumn\n tag=\"th\"\n align={ column.align }\n class={[\n 'v-data-table__th',\n {\n 'v-data-table__th--sortable': column.sortable,\n 'v-data-table__th--sorted': isSorted,\n },\n loaderClasses.value,\n ]}\n style={{\n width: convertToUnit(column.width),\n minWidth: convertToUnit(column.width),\n ...getFixedStyles(column, y),\n }}\n colspan={ column.colspan }\n rowspan={ column.rowspan }\n onClick={ column.sortable ? () => toggleSort(column.key) : undefined }\n lastFixed={ column.lastFixed }\n noPadding={ noPadding }\n >\n {{\n default: () => {\n const columnSlotName = `column.${column.key}`\n const columnSlotProps = {\n column,\n selectAll,\n }\n\n if (slots[columnSlotName]) return slots[columnSlotName]!(columnSlotProps)\n\n if (column.key === 'data-table-select') {\n return slots['column.data-table-select']?.(columnSlotProps) ?? (\n <VCheckboxBtn\n modelValue={ allSelected.value }\n indeterminate={ someSelected.value && !allSelected.value }\n onUpdate:modelValue={ selectAll }\n />\n )\n }\n\n return (\n <div class=\"v-data-table-header__content\">\n <span>{ column.title }</span>\n { column.sortable && (\n <VIcon\n key=\"icon\"\n class=\"v-data-table-header__sort-icon\"\n icon={ getSortIcon(column.key) }\n />\n )}\n { props.multiSort && isSorted && (\n <div\n key=\"badge\"\n class={[\n 'v-data-table-header__sort-badge',\n ...backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n { sortBy.value.findIndex(x => x.key === column.key) + 1 }\n </div>\n )}\n </div>\n )\n },\n }}\n </VDataTableColumn>\n )\n }\n\n useRender(() => {\n return (\n <>\n { slots.headers\n ? slots.headers(slotProps.value)\n : headers.value.map((row, y) => (\n <tr>\n { row.map((column, x) => (\n <VDataTableHeaderCell column={ column } x={ x } y={ y } />\n ))}\n </tr>\n ))}\n\n { props.loading && (\n <tr class=\"v-data-table__progress\">\n <th colspan={ columns.value.length }>\n\n <LoaderSlot\n name=\"v-data-table-headers\"\n active\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n indeterminate\n v-slots={{ default: slots.loader }}\n />\n </th>\n </tr>\n )}\n </>\n )\n })\n },\n})\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { createVNode as _createVNode, resolveDirective as _resolveDirective } from "vue";
1
+ import { createVNode as _createVNode } from "vue";
2
2
  // Components
3
3
  import { VBtn } from "../../components/VBtn/index.mjs";
4
4
  import { VCheckboxBtn } from "../../components/VCheckbox/index.mjs"; // Composables
@@ -35,9 +35,7 @@ export const VDataTableRow = defineComponent({
35
35
  'v-data-table__tr--clickable': !!props.onClick
36
36
  }],
37
37
  "onClick": props.onClick
38
- }, [!columns.value.length && _createVNode(VDataTableColumn, {
39
- "key": "no-data"
40
- }, slots), props.item && columns.value.map((column, i) => _createVNode(VDataTableColumn, {
38
+ }, [props.item && columns.value.map((column, i) => _createVNode(VDataTableColumn, {
41
39
  "align": column.align,
42
40
  "fixed": column.fixed,
43
41
  "fixedOffset": column.fixedOffset,
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableRow.mjs","names":["VBtn","VCheckboxBtn","useExpanded","useHeaders","useSelection","VDataTableColumn","withModifiers","defineComponent","getPropertyFromItem","useRender","VDataTableRow","name","props","index","Number","item","Object","onClick","Function","setup","_ref","slots","isSelected","toggleSelect","isExpanded","toggleExpand","columns","_createVNode","value","length","map","column","i","align","fixed","fixedOffset","lastFixed","key","width","default","slotName","slotProps"],"sources":["../../../src/labs/VDataTable/VDataTableRow.tsx"],"sourcesContent":["// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\n\n// Composables\nimport { useExpanded } from './composables/expand'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { VDataTableColumn } from './VDataTableColumn'\n\n// Utilities\nimport { withModifiers } from 'vue'\nimport { defineComponent, getPropertyFromItem, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DataTableItem } from './types'\n\nexport const VDataTableRow = defineComponent({\n name: 'VDataTableRow',\n\n props: {\n index: Number as PropType<Number>,\n item: Object as PropType<DataTableItem>,\n onClick: Function as PropType<(e: MouseEvent) => void>,\n },\n\n setup (props, { slots }) {\n const { isSelected, toggleSelect } = useSelection()\n const { isExpanded, toggleExpand } = useExpanded()\n const { columns } = useHeaders()\n\n useRender(() => (\n <tr\n class={[\n 'v-data-table__tr',\n {\n 'v-data-table__tr--clickable': !!props.onClick,\n },\n ]}\n onClick={ props.onClick }\n >\n { !columns.value.length && (\n <VDataTableColumn\n key=\"no-data\"\n v-slots={ slots }\n />\n )}\n\n { props.item && columns.value.map((column, i) => (\n <VDataTableColumn\n align={ column.align }\n fixed={ column.fixed }\n fixedOffset={ column.fixedOffset }\n lastFixed={ column.lastFixed }\n noPadding={ column.key === 'data-table-select' || column.key === 'data-table-expand' }\n width={ column.width }\n >\n {{\n default: () => {\n const item = props.item!\n const slotName = `item.${column.key}`\n const slotProps = {\n index: props.index,\n item: props.item,\n columns: columns.value,\n isSelected,\n toggleSelect,\n isExpanded,\n toggleExpand,\n }\n\n if (slots[slotName]) return slots[slotName]!(slotProps)\n\n if (column.key === 'data-table-select') {\n return slots['item.data-table-select']?.(slotProps) ?? (\n <VCheckboxBtn\n modelValue={ isSelected([item]) }\n onClick={ withModifiers(() => toggleSelect(item), ['stop']) }\n />\n )\n }\n\n if (column.key === 'data-table-expand') {\n return slots['item.data-table-expand']?.(slotProps) ?? (\n <VBtn\n icon={ isExpanded(item) ? '$collapse' : '$expand' }\n size=\"small\"\n variant=\"text\"\n onClick={ withModifiers(() => toggleExpand(item), ['stop']) }\n />\n )\n }\n\n return getPropertyFromItem(item.columns, column.key)\n },\n }}\n </VDataTableColumn>\n ))}\n </tr>\n ))\n },\n})\n\nexport type VDataTableRow = InstanceType<typeof VDataTableRow>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTableRow.mjs","names":["VBtn","VCheckboxBtn","useExpanded","useHeaders","useSelection","VDataTableColumn","withModifiers","defineComponent","getPropertyFromItem","useRender","VDataTableRow","name","props","index","Number","item","Object","onClick","Function","setup","_ref","slots","isSelected","toggleSelect","isExpanded","toggleExpand","columns","_createVNode","value","map","column","i","align","fixed","fixedOffset","lastFixed","key","width","default","slotName","slotProps"],"sources":["../../../src/labs/VDataTable/VDataTableRow.tsx"],"sourcesContent":["// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\n\n// Composables\nimport { useExpanded } from './composables/expand'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { VDataTableColumn } from './VDataTableColumn'\n\n// Utilities\nimport { withModifiers } from 'vue'\nimport { defineComponent, getPropertyFromItem, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DataTableItem } from './types'\n\nexport const VDataTableRow = defineComponent({\n name: 'VDataTableRow',\n\n props: {\n index: Number as PropType<Number>,\n item: Object as PropType<DataTableItem>,\n onClick: Function as PropType<(e: MouseEvent) => void>,\n },\n\n setup (props, { slots }) {\n const { isSelected, toggleSelect } = useSelection()\n const { isExpanded, toggleExpand } = useExpanded()\n const { columns } = useHeaders()\n\n useRender(() => (\n <tr\n class={[\n 'v-data-table__tr',\n {\n 'v-data-table__tr--clickable': !!props.onClick,\n },\n ]}\n onClick={ props.onClick }\n >\n { props.item && columns.value.map((column, i) => (\n <VDataTableColumn\n align={ column.align }\n fixed={ column.fixed }\n fixedOffset={ column.fixedOffset }\n lastFixed={ column.lastFixed }\n noPadding={ column.key === 'data-table-select' || column.key === 'data-table-expand' }\n width={ column.width }\n >\n {{\n default: () => {\n const item = props.item!\n const slotName = `item.${column.key}`\n const slotProps = {\n index: props.index,\n item: props.item,\n columns: columns.value,\n isSelected,\n toggleSelect,\n isExpanded,\n toggleExpand,\n }\n\n if (slots[slotName]) return slots[slotName]!(slotProps)\n\n if (column.key === 'data-table-select') {\n return slots['item.data-table-select']?.(slotProps) ?? (\n <VCheckboxBtn\n modelValue={ isSelected([item]) }\n onClick={ withModifiers(() => toggleSelect(item), ['stop']) }\n />\n )\n }\n\n if (column.key === 'data-table-expand') {\n return slots['item.data-table-expand']?.(slotProps) ?? (\n <VBtn\n icon={ isExpanded(item) ? '$collapse' : '$expand' }\n size=\"small\"\n variant=\"text\"\n onClick={ withModifiers(() => toggleExpand(item), ['stop']) }\n />\n )\n }\n\n return getPropertyFromItem(item.columns, column.key)\n },\n }}\n </VDataTableColumn>\n ))}\n </tr>\n ))\n },\n})\n\nexport type VDataTableRow = InstanceType<typeof VDataTableRow>\n"],"mappings":"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"}
@@ -55,13 +55,13 @@ export const VDataTableRows = genericComponent()({
55
55
  useRender(() => {
56
56
  if (props.loading && slots.loading) {
57
57
  return _createVNode("tr", {
58
- "class": "v-data-table-rows-no-data",
58
+ "class": "v-data-table-rows-loading",
59
59
  "key": "loading"
60
60
  }, [_createVNode("td", {
61
61
  "colspan": columns.value.length
62
62
  }, [slots.loading()])]);
63
63
  }
64
- if (!props.loading && !props.items.length && !props.hideNoData && slots['no-data']) {
64
+ if (!props.loading && !props.items.length && !props.hideNoData) {
65
65
  return _createVNode("tr", {
66
66
  "class": "v-data-table-rows-no-data",
67
67
  "key": "no-data"
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableRows.mjs","names":["VDataTableGroupHeaderRow","VDataTableRow","useLocale","useExpanded","useHeaders","useSelection","useGroupBy","genericComponent","useRender","VDataTableRows","name","props","loading","Boolean","String","loadingText","type","default","hideNoData","items","Array","noDataText","rowHeight","Number","Function","setup","_ref","emit","slots","columns","expandOnClick","toggleExpand","isExpanded","isSelected","toggleSelect","toggleGroup","isGroupOpen","t","_createVNode","value","length","_Fragment","map","item","index","id","slotProps","event","undefined"],"sources":["../../../src/labs/VDataTable/VDataTableRows.tsx"],"sourcesContent":["// Components\nimport { VDataTableGroupHeaderRow } from './VDataTableGroupHeaderRow'\nimport { VDataTableRow } from './VDataTableRow'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\nimport { useExpanded } from './composables/expand'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useGroupBy } from './composables/group'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { DataTableItem, GroupHeaderItem, InternalDataTableHeader, InternalDataTableItem } from './types'\nimport type { PropType } from 'vue'\n\ntype GroupHeaderSlot = {\n index: number\n item: GroupHeaderItem\n columns: InternalDataTableHeader[]\n isExpanded: (item: DataTableItem) => boolean\n toggleExpand: (item: DataTableItem) => void\n isSelected: (items: DataTableItem[]) => boolean\n toggleSelect: (item: DataTableItem) => void\n toggleGroup: (group: GroupHeaderItem) => void\n isGroupOpen: (group: GroupHeaderItem) => boolean\n}\n\ntype ItemSlot = {\n index: number\n item: DataTableItem\n columns: InternalDataTableHeader[]\n isExpanded: (item: DataTableItem) => boolean\n toggleExpand: (item: DataTableItem) => void\n isSelected: (items: DataTableItem[]) => boolean\n toggleSelect: (item: DataTableItem) => void\n}\n\nexport type VDataTableRowsSlots = {\n default: []\n item: [ItemSlot]\n loading: []\n 'group-header': [GroupHeaderSlot]\n 'no-data': []\n 'expanded-row': [ItemSlot]\n 'item.data-table-select': [ItemSlot]\n 'item.data-table-expand': [ItemSlot]\n} & { [key: `item.${string}`]: [ItemSlot] }\n\nexport const VDataTableRows = genericComponent<VDataTableRowsSlots>()({\n name: 'VDataTableRows',\n\n props: {\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n hideNoData: Boolean,\n items: {\n type: Array as PropType<InternalDataTableItem[]>,\n default: () => ([]),\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n rowHeight: Number,\n 'onClick:row': Function as PropType<(e: Event, value: { item: DataTableItem }) => void>,\n },\n\n setup (props, { emit, slots }) {\n const { columns } = useHeaders()\n const { expandOnClick, toggleExpand, isExpanded } = useExpanded()\n const { isSelected, toggleSelect } = useSelection()\n const { toggleGroup, isGroupOpen } = useGroupBy()\n const { t } = useLocale()\n\n useRender(() => {\n if (props.loading && slots.loading) {\n return (\n <tr\n class=\"v-data-table-rows-no-data\"\n key=\"loading\"\n >\n <td colspan={ columns.value.length }>\n { slots.loading() }\n </td>\n </tr>\n )\n }\n\n if (!props.loading && !props.items.length && !props.hideNoData && slots['no-data']) {\n return (\n <tr\n class=\"v-data-table-rows-no-data\"\n key=\"no-data\"\n >\n <td colspan={ columns.value.length }>\n { slots['no-data']?.() ?? t(props.noDataText) }\n </td>\n </tr>\n )\n }\n\n return (\n <>\n { props.items.map((item, index) => {\n if (item.type === 'group-header') {\n return slots['group-header'] ? slots['group-header']({\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n toggleGroup,\n isGroupOpen,\n } as GroupHeaderSlot) : (\n <VDataTableGroupHeaderRow\n key={ `group-header_${item.id}` }\n item={ item }\n v-slots={ slots }\n />\n )\n }\n\n const slotProps = {\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n } as ItemSlot\n\n return (\n <>\n { slots.item ? slots.item(slotProps) : (\n <VDataTableRow\n key={ `item_${item.value}` }\n onClick={ expandOnClick.value || props['onClick:row'] ? (event: Event) => {\n if (expandOnClick.value) {\n toggleExpand(item)\n }\n props['onClick:row']?.(event, { item })\n } : undefined }\n index={ index }\n item={ item }\n v-slots={ slots }\n />\n )}\n\n { isExpanded(item) && slots['expanded-row']?.(slotProps) }\n </>\n )\n })}\n </>\n )\n })\n\n return {}\n },\n})\n\nexport type VDataTableRows = InstanceType<typeof VDataTableRows>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTableRows.mjs","names":["VDataTableGroupHeaderRow","VDataTableRow","useLocale","useExpanded","useHeaders","useSelection","useGroupBy","genericComponent","useRender","VDataTableRows","name","props","loading","Boolean","String","loadingText","type","default","hideNoData","items","Array","noDataText","rowHeight","Number","Function","setup","_ref","emit","slots","columns","expandOnClick","toggleExpand","isExpanded","isSelected","toggleSelect","toggleGroup","isGroupOpen","t","_createVNode","value","length","_Fragment","map","item","index","id","slotProps","event","undefined"],"sources":["../../../src/labs/VDataTable/VDataTableRows.tsx"],"sourcesContent":["// Components\nimport { VDataTableGroupHeaderRow } from './VDataTableGroupHeaderRow'\nimport { VDataTableRow } from './VDataTableRow'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\nimport { useExpanded } from './composables/expand'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useGroupBy } from './composables/group'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { DataTableItem, GroupHeaderItem, InternalDataTableHeader, InternalDataTableItem } from './types'\nimport type { PropType } from 'vue'\n\ntype GroupHeaderSlot = {\n index: number\n item: GroupHeaderItem\n columns: InternalDataTableHeader[]\n isExpanded: (item: DataTableItem) => boolean\n toggleExpand: (item: DataTableItem) => void\n isSelected: (items: DataTableItem[]) => boolean\n toggleSelect: (item: DataTableItem) => void\n toggleGroup: (group: GroupHeaderItem) => void\n isGroupOpen: (group: GroupHeaderItem) => boolean\n}\n\ntype ItemSlot = {\n index: number\n item: DataTableItem\n columns: InternalDataTableHeader[]\n isExpanded: (item: DataTableItem) => boolean\n toggleExpand: (item: DataTableItem) => void\n isSelected: (items: DataTableItem[]) => boolean\n toggleSelect: (item: DataTableItem) => void\n}\n\nexport type VDataTableRowsSlots = {\n default: []\n item: [ItemSlot]\n loading: []\n 'group-header': [GroupHeaderSlot]\n 'no-data': []\n 'expanded-row': [ItemSlot]\n 'item.data-table-select': [ItemSlot]\n 'item.data-table-expand': [ItemSlot]\n} & { [key: `item.${string}`]: [ItemSlot] }\n\nexport const VDataTableRows = genericComponent<VDataTableRowsSlots>()({\n name: 'VDataTableRows',\n\n props: {\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n hideNoData: Boolean,\n items: {\n type: Array as PropType<InternalDataTableItem[]>,\n default: () => ([]),\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n rowHeight: Number,\n 'onClick:row': Function as PropType<(e: Event, value: { item: DataTableItem }) => void>,\n },\n\n setup (props, { emit, slots }) {\n const { columns } = useHeaders()\n const { expandOnClick, toggleExpand, isExpanded } = useExpanded()\n const { isSelected, toggleSelect } = useSelection()\n const { toggleGroup, isGroupOpen } = useGroupBy()\n const { t } = useLocale()\n\n useRender(() => {\n if (props.loading && slots.loading) {\n return (\n <tr\n class=\"v-data-table-rows-loading\"\n key=\"loading\"\n >\n <td colspan={ columns.value.length }>\n { slots.loading() }\n </td>\n </tr>\n )\n }\n\n if (!props.loading && !props.items.length && !props.hideNoData) {\n return (\n <tr\n class=\"v-data-table-rows-no-data\"\n key=\"no-data\"\n >\n <td colspan={ columns.value.length }>\n { slots['no-data']?.() ?? t(props.noDataText) }\n </td>\n </tr>\n )\n }\n\n return (\n <>\n { props.items.map((item, index) => {\n if (item.type === 'group-header') {\n return slots['group-header'] ? slots['group-header']({\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n toggleGroup,\n isGroupOpen,\n } as GroupHeaderSlot) : (\n <VDataTableGroupHeaderRow\n key={ `group-header_${item.id}` }\n item={ item }\n v-slots={ slots }\n />\n )\n }\n\n const slotProps = {\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n } as ItemSlot\n\n return (\n <>\n { slots.item ? slots.item(slotProps) : (\n <VDataTableRow\n key={ `item_${item.value}` }\n onClick={ expandOnClick.value || props['onClick:row'] ? (event: Event) => {\n if (expandOnClick.value) {\n toggleExpand(item)\n }\n props['onClick:row']?.(event, { item })\n } : undefined }\n index={ index }\n item={ item }\n v-slots={ slots }\n />\n )}\n\n { isExpanded(item) && slots['expanded-row']?.(slotProps) }\n </>\n )\n })}\n </>\n )\n })\n\n return {}\n },\n})\n\nexport type VDataTableRows = InstanceType<typeof VDataTableRows>\n"],"mappings":"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"}
@@ -134,7 +134,7 @@ export const VDataTableServer = genericComponent()({
134
134
  }), _createVNode("thead", {
135
135
  "class": "v-data-table__thead",
136
136
  "role": "rowgroup"
137
- }, [slots.headers ? slots.headers() : _createVNode(VDataTableHeaders, {
137
+ }, [_createVNode(VDataTableHeaders, {
138
138
  "sticky": props.fixedHeader,
139
139
  "loading": props.loading,
140
140
  "color": props.color