vuetify 3.3.0 → 3.3.2

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 (536) hide show
  1. package/dist/json/attributes.json +88 -60
  2. package/dist/json/importMap.json +26 -26
  3. package/dist/json/tags.json +8 -1
  4. package/dist/json/web-types.json +836 -899
  5. package/dist/vuetify-labs.css +136 -114
  6. package/dist/vuetify-labs.d.ts +6688 -11806
  7. package/dist/vuetify-labs.esm.js +8271 -8060
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +8270 -8059
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +133 -112
  12. package/dist/vuetify.d.ts +4441 -8286
  13. package/dist/vuetify.esm.js +6686 -6548
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +6685 -6547
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +979 -975
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/blueprints/index.d.mts +31 -31
  21. package/lib/blueprints/md1.d.mts +31 -31
  22. package/lib/blueprints/md2.d.mts +31 -31
  23. package/lib/blueprints/md3.d.mts +31 -31
  24. package/lib/components/VAlert/VAlert.mjs +6 -6
  25. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  26. package/lib/components/VAlert/_variables.scss +2 -2
  27. package/lib/components/VAlert/index.d.mts +16 -74
  28. package/lib/components/VApp/VApp.mjs +4 -4
  29. package/lib/components/VApp/VApp.mjs.map +1 -1
  30. package/lib/components/VApp/index.d.mts +0 -15
  31. package/lib/components/VAppBar/VAppBar.mjs +9 -6
  32. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  33. package/lib/components/VAppBar/VAppBarNavIcon.mjs +1 -1
  34. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  35. package/lib/components/VAppBar/index.d.mts +1 -82
  36. package/lib/components/VAutocomplete/VAutocomplete.mjs +11 -11
  37. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  38. package/lib/components/VAutocomplete/index.d.mts +205 -259
  39. package/lib/components/VAvatar/VAvatar.mjs +4 -4
  40. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  41. package/lib/components/VAvatar/_variables.scss +1 -1
  42. package/lib/components/VAvatar/index.d.mts +0 -15
  43. package/lib/components/VBadge/VBadge.mjs +6 -6
  44. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  45. package/lib/components/VBadge/index.d.mts +0 -19
  46. package/lib/components/VBanner/VBanner.mjs +7 -10
  47. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  48. package/lib/components/VBanner/VBannerActions.mjs +2 -2
  49. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  50. package/lib/components/VBanner/VBannerText.mjs +1 -0
  51. package/lib/components/VBanner/VBannerText.mjs.map +1 -1
  52. package/lib/components/VBanner/index.d.mts +1 -58
  53. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +8 -8
  54. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  55. package/lib/components/VBottomNavigation/index.d.mts +0 -15
  56. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +6 -9
  57. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  58. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +2 -2
  59. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
  60. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +3 -3
  61. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  62. package/lib/components/VBreadcrumbs/index.d.mts +30 -60
  63. package/lib/components/VBtn/VBtn.mjs +6 -6
  64. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  65. package/lib/components/VBtn/_variables.scss +15 -15
  66. package/lib/components/VBtn/index.d.mts +0 -27
  67. package/lib/components/VBtnGroup/VBtnGroup.mjs +4 -4
  68. package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
  69. package/lib/components/VBtnGroup/index.d.mts +0 -15
  70. package/lib/components/VBtnToggle/VBtnToggle.mjs +2 -2
  71. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  72. package/lib/components/VBtnToggle/index.d.mts +19 -34
  73. package/lib/components/VCard/VCard.mjs +7 -7
  74. package/lib/components/VCard/VCard.mjs.map +1 -1
  75. package/lib/components/VCard/VCard.sass +2 -2
  76. package/lib/components/VCard/VCardItem.mjs +4 -4
  77. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  78. package/lib/components/VCard/VCardSubtitle.mjs +1 -0
  79. package/lib/components/VCard/VCardSubtitle.mjs.map +1 -1
  80. package/lib/components/VCard/VCardText.mjs +1 -0
  81. package/lib/components/VCard/VCardText.mjs.map +1 -1
  82. package/lib/components/VCard/VCardTitle.mjs +1 -0
  83. package/lib/components/VCard/VCardTitle.mjs.map +1 -1
  84. package/lib/components/VCard/_variables.scss +10 -11
  85. package/lib/components/VCard/index.d.mts +16 -158
  86. package/lib/components/VCarousel/VCarousel.mjs +4 -7
  87. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  88. package/lib/components/VCarousel/VCarouselItem.mjs +1 -1
  89. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  90. package/lib/components/VCarousel/index.d.mts +79 -237
  91. package/lib/components/VCheckbox/VCheckbox.mjs +3 -3
  92. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  93. package/lib/components/VCheckbox/VCheckboxBtn.mjs +4 -4
  94. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
  95. package/lib/components/VCheckbox/index.d.mts +191 -277
  96. package/lib/components/VChip/VChip.mjs +7 -7
  97. package/lib/components/VChip/VChip.mjs.map +1 -1
  98. package/lib/components/VChip/index.d.mts +19 -82
  99. package/lib/components/VChipGroup/VChipGroup.mjs +4 -7
  100. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  101. package/lib/components/VChipGroup/index.d.mts +19 -58
  102. package/lib/components/VCode/index.d.mts +0 -15
  103. package/lib/components/VCode/index.mjs +3 -0
  104. package/lib/components/VCode/index.mjs.map +1 -1
  105. package/lib/components/VColorPicker/VColorPicker.mjs +10 -12
  106. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  107. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +2 -5
  108. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  109. package/lib/components/VColorPicker/VColorPickerEdit.mjs +3 -3
  110. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  111. package/lib/components/VColorPicker/VColorPickerPreview.mjs +3 -3
  112. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  113. package/lib/components/VColorPicker/VColorPickerSwatches.mjs +1 -1
  114. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  115. package/lib/components/VCombobox/VCombobox.mjs +13 -12
  116. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  117. package/lib/components/VCombobox/index.d.mts +205 -259
  118. package/lib/components/VCounter/VCounter.mjs +2 -2
  119. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  120. package/lib/components/VCounter/index.d.mts +19 -34
  121. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +4 -4
  122. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
  123. package/lib/components/VDefaultsProvider/index.d.mts +7 -24
  124. package/lib/components/VDialog/VDialog.mjs +7 -7
  125. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  126. package/lib/components/VDialog/index.d.mts +175 -301
  127. package/lib/components/VDivider/VDivider.mjs +3 -3
  128. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  129. package/lib/components/VDivider/index.d.mts +0 -15
  130. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +5 -5
  131. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  132. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +3 -3
  133. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  134. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +5 -5
  135. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  136. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +3 -3
  137. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  138. package/lib/components/VExpansionPanel/index.d.mts +35 -107
  139. package/lib/components/VField/VField.mjs +8 -8
  140. package/lib/components/VField/VField.mjs.map +1 -1
  141. package/lib/components/VField/VField.sass +0 -1
  142. package/lib/components/VField/VFieldLabel.mjs +1 -1
  143. package/lib/components/VField/VFieldLabel.mjs.map +1 -1
  144. package/lib/components/VField/_variables.scss +1 -0
  145. package/lib/components/VField/index.d.mts +39 -54
  146. package/lib/components/VFileInput/VFileInput.mjs +5 -5
  147. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  148. package/lib/components/VFileInput/index.d.mts +381 -537
  149. package/lib/components/VFooter/VFooter.mjs +4 -4
  150. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  151. package/lib/components/VFooter/_variables.scss +1 -1
  152. package/lib/components/VFooter/index.d.mts +0 -15
  153. package/lib/components/VForm/VForm.mjs +3 -3
  154. package/lib/components/VForm/VForm.mjs.map +1 -1
  155. package/lib/components/VForm/index.d.mts +19 -146
  156. package/lib/components/VGrid/VCol.mjs +2 -2
  157. package/lib/components/VGrid/VCol.mjs.map +1 -1
  158. package/lib/components/VGrid/VContainer.mjs +3 -3
  159. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  160. package/lib/components/VGrid/VRow.mjs +2 -2
  161. package/lib/components/VGrid/VRow.mjs.map +1 -1
  162. package/lib/components/VGrid/VSpacer.mjs +1 -0
  163. package/lib/components/VGrid/VSpacer.mjs.map +1 -1
  164. package/lib/components/VGrid/index.d.mts +0 -60
  165. package/lib/components/VHover/VHover.mjs +1 -1
  166. package/lib/components/VHover/VHover.mjs.map +1 -1
  167. package/lib/components/VHover/index.d.mts +19 -46
  168. package/lib/components/VIcon/VIcon.mjs +4 -4
  169. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  170. package/lib/components/VIcon/index.d.mts +0 -30
  171. package/lib/components/VImg/VImg.mjs +5 -4
  172. package/lib/components/VImg/VImg.mjs.map +1 -1
  173. package/lib/components/VImg/index.d.mts +0 -27
  174. package/lib/components/VInput/InputIcon.mjs +3 -2
  175. package/lib/components/VInput/InputIcon.mjs.map +1 -1
  176. package/lib/components/VInput/VInput.mjs +9 -5
  177. package/lib/components/VInput/VInput.mjs.map +1 -1
  178. package/lib/components/VInput/_variables.scss +1 -1
  179. package/lib/components/VInput/index.d.mts +88 -119
  180. package/lib/components/VItemGroup/VItem.mjs +2 -2
  181. package/lib/components/VItemGroup/VItem.mjs.map +1 -1
  182. package/lib/components/VItemGroup/VItemGroup.mjs +1 -1
  183. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  184. package/lib/components/VItemGroup/index.d.mts +38 -120
  185. package/lib/components/VKbd/index.d.mts +0 -15
  186. package/lib/components/VKbd/index.mjs +3 -0
  187. package/lib/components/VKbd/index.mjs.map +1 -1
  188. package/lib/components/VLabel/VLabel.mjs +1 -1
  189. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  190. package/lib/components/VLabel/index.d.mts +0 -15
  191. package/lib/components/VLayout/VLayout.mjs +3 -3
  192. package/lib/components/VLayout/VLayout.mjs.map +1 -1
  193. package/lib/components/VLayout/VLayoutItem.mjs +1 -1
  194. package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
  195. package/lib/components/VLayout/index.d.mts +0 -30
  196. package/lib/components/VLazy/VLazy.mjs +3 -3
  197. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  198. package/lib/components/VLazy/index.d.mts +0 -15
  199. package/lib/components/VList/VList.css +1 -0
  200. package/lib/components/VList/VList.mjs +5 -4
  201. package/lib/components/VList/VList.mjs.map +1 -1
  202. package/lib/components/VList/VList.sass +1 -0
  203. package/lib/components/VList/VListChildren.mjs +3 -3
  204. package/lib/components/VList/VListChildren.mjs.map +1 -1
  205. package/lib/components/VList/VListGroup.mjs +8 -8
  206. package/lib/components/VList/VListGroup.mjs.map +1 -1
  207. package/lib/components/VList/VListImg.mjs +1 -0
  208. package/lib/components/VList/VListImg.mjs.map +1 -1
  209. package/lib/components/VList/VListItem.css +18 -0
  210. package/lib/components/VList/VListItem.mjs +9 -9
  211. package/lib/components/VList/VListItem.mjs.map +1 -1
  212. package/lib/components/VList/VListItem.sass +12 -0
  213. package/lib/components/VList/VListItemAction.mjs +1 -1
  214. package/lib/components/VList/VListItemAction.mjs.map +1 -1
  215. package/lib/components/VList/VListItemMedia.mjs +1 -1
  216. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  217. package/lib/components/VList/VListItemSubtitle.mjs +1 -0
  218. package/lib/components/VList/VListItemSubtitle.mjs.map +1 -1
  219. package/lib/components/VList/VListItemTitle.mjs +1 -0
  220. package/lib/components/VList/VListItemTitle.mjs.map +1 -1
  221. package/lib/components/VList/VListSubheader.mjs +3 -3
  222. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  223. package/lib/components/VList/_variables.scss +6 -6
  224. package/lib/components/VList/index.d.mts +185 -337
  225. package/lib/components/VLocaleProvider/VLocaleProvider.mjs +1 -1
  226. package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
  227. package/lib/components/VLocaleProvider/index.d.mts +0 -15
  228. package/lib/components/VMain/VMain.mjs +3 -3
  229. package/lib/components/VMain/VMain.mjs.map +1 -1
  230. package/lib/components/VMain/index.d.mts +0 -15
  231. package/lib/components/VMenu/VMenu.mjs +7 -7
  232. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  233. package/lib/components/VMenu/index.d.mts +222 -348
  234. package/lib/components/VMenu/shared.mjs +2 -0
  235. package/lib/components/VMenu/shared.mjs.map +1 -1
  236. package/lib/components/VMessages/VMessages.mjs +3 -3
  237. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  238. package/lib/components/VMessages/index.d.mts +15 -30
  239. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +17 -13
  240. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  241. package/lib/components/VNavigationDrawer/index.d.mts +15 -42
  242. package/lib/components/VOverlay/VOverlay.mjs +11 -14
  243. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  244. package/lib/components/VOverlay/index.d.mts +55 -94
  245. package/lib/components/VOverlay/locationStrategies.mjs +5 -5
  246. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  247. package/lib/components/VOverlay/scrollStrategies.mjs +3 -3
  248. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  249. package/lib/components/VOverlay/useActivator.mjs +6 -10
  250. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  251. package/lib/components/VOverlay/util/point.mjs +2 -0
  252. package/lib/components/VOverlay/util/point.mjs.map +1 -1
  253. package/lib/components/VPagination/VPagination.mjs +9 -9
  254. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  255. package/lib/components/VPagination/index.d.mts +75 -106
  256. package/lib/components/VParallax/VParallax.mjs +3 -6
  257. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  258. package/lib/components/VParallax/index.d.mts +0 -27
  259. package/lib/components/VProgressCircular/VProgressCircular.mjs +5 -5
  260. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  261. package/lib/components/VProgressCircular/index.d.mts +19 -42
  262. package/lib/components/VProgressLinear/VProgressLinear.mjs +6 -6
  263. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  264. package/lib/components/VProgressLinear/index.d.mts +19 -46
  265. package/lib/components/VRadio/VRadio.mjs +3 -3
  266. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  267. package/lib/components/VRadio/index.d.mts +33 -68
  268. package/lib/components/VRadioGroup/VRadioGroup.mjs +4 -4
  269. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  270. package/lib/components/VRadioGroup/index.d.mts +140 -191
  271. package/lib/components/VRangeSlider/VRangeSlider.mjs +4 -4
  272. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  273. package/lib/components/VRangeSlider/index.d.mts +100 -143
  274. package/lib/components/VRating/VRating.mjs +6 -9
  275. package/lib/components/VRating/VRating.mjs.map +1 -1
  276. package/lib/components/VRating/index.d.mts +30 -49
  277. package/lib/components/VResponsive/VResponsive.css +1 -0
  278. package/lib/components/VResponsive/VResponsive.mjs +1 -1
  279. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  280. package/lib/components/VResponsive/VResponsive.sass +1 -0
  281. package/lib/components/VResponsive/index.d.mts +0 -19
  282. package/lib/components/VSelect/VSelect.mjs +9 -9
  283. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  284. package/lib/components/VSelect/index.d.mts +205 -259
  285. package/lib/components/VSelectionControl/VSelectionControl.mjs +7 -7
  286. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  287. package/lib/components/VSelectionControl/index.d.mts +24 -24
  288. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +6 -6
  289. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  290. package/lib/components/VSelectionControlGroup/index.d.mts +0 -15
  291. package/lib/components/VSheet/VSheet.mjs +4 -4
  292. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  293. package/lib/components/VSheet/index.d.mts +0 -15
  294. package/lib/components/VSlideGroup/VSlideGroup.mjs +7 -7
  295. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  296. package/lib/components/VSlideGroup/VSlideGroupItem.mjs +2 -2
  297. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  298. package/lib/components/VSlideGroup/index.d.mts +68 -126
  299. package/lib/components/VSlider/VSlider.css +5 -4
  300. package/lib/components/VSlider/VSlider.mjs +6 -6
  301. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  302. package/lib/components/VSlider/VSlider.sass +5 -4
  303. package/lib/components/VSlider/VSliderThumb.mjs +6 -6
  304. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  305. package/lib/components/VSlider/VSliderTrack.mjs +3 -3
  306. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  307. package/lib/components/VSlider/index.d.mts +100 -143
  308. package/lib/components/VSlider/slider.mjs +4 -7
  309. package/lib/components/VSlider/slider.mjs.map +1 -1
  310. package/lib/components/VSnackbar/VSnackbar.mjs +7 -7
  311. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  312. package/lib/components/VSnackbar/_variables.scss +1 -1
  313. package/lib/components/VSnackbar/index.d.mts +167 -289
  314. package/lib/components/VStepper/index.mjs +3 -2
  315. package/lib/components/VStepper/index.mjs.map +1 -1
  316. package/lib/components/VSwitch/VSwitch.mjs +6 -6
  317. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  318. package/lib/components/VSwitch/index.d.mts +164 -219
  319. package/lib/components/VSystemBar/VSystemBar.mjs +4 -4
  320. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  321. package/lib/components/VSystemBar/_variables.scss +2 -2
  322. package/lib/components/VSystemBar/index.d.mts +0 -15
  323. package/lib/components/VTable/VTable.mjs +1 -1
  324. package/lib/components/VTable/VTable.mjs.map +1 -1
  325. package/lib/components/VTable/_variables.scss +1 -1
  326. package/lib/components/VTable/index.d.mts +0 -27
  327. package/lib/components/VTabs/VTab.mjs +3 -3
  328. package/lib/components/VTabs/VTab.mjs.map +1 -1
  329. package/lib/components/VTabs/VTabs.mjs +7 -7
  330. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  331. package/lib/components/VTabs/index.d.mts +0 -30
  332. package/lib/components/VTabs/shared.mjs +2 -0
  333. package/lib/components/VTabs/shared.mjs.map +1 -1
  334. package/lib/components/VTextField/VTextField.mjs +6 -6
  335. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  336. package/lib/components/VTextField/index.d.mts +423 -559
  337. package/lib/components/VTextarea/VTextarea.mjs +8 -11
  338. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  339. package/lib/components/VTextarea/index.d.mts +362 -494
  340. package/lib/components/VThemeProvider/VThemeProvider.mjs +1 -1
  341. package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
  342. package/lib/components/VThemeProvider/index.d.mts +0 -15
  343. package/lib/components/VTimeline/VTimeline.mjs +4 -4
  344. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  345. package/lib/components/VTimeline/VTimelineDivider.mjs +5 -5
  346. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  347. package/lib/components/VTimeline/VTimelineItem.mjs +4 -7
  348. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  349. package/lib/components/VTimeline/index.d.mts +0 -38
  350. package/lib/components/VToolbar/VToolbar.mjs +8 -8
  351. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  352. package/lib/components/VToolbar/VToolbarItems.mjs +4 -4
  353. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  354. package/lib/components/VToolbar/VToolbarTitle.mjs +1 -1
  355. package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
  356. package/lib/components/VToolbar/_variables.scss +2 -2
  357. package/lib/components/VToolbar/index.d.mts +1 -70
  358. package/lib/components/VTooltip/VTooltip.mjs +6 -6
  359. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  360. package/lib/components/VTooltip/index.d.mts +222 -348
  361. package/lib/components/VValidation/VValidation.mjs.map +1 -1
  362. package/lib/components/VValidation/index.d.mts +19 -90
  363. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +15 -93
  364. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  365. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs +9 -4
  366. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
  367. package/lib/components/VVirtualScroll/index.d.mts +25 -25
  368. package/lib/components/VWindow/VWindow.mjs +6 -6
  369. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  370. package/lib/components/VWindow/VWindowItem.mjs +5 -5
  371. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  372. package/lib/components/VWindow/index.d.mts +64 -138
  373. package/lib/components/index.d.mts +4688 -8535
  374. package/lib/components/transitions/createTransition.mjs +5 -8
  375. package/lib/components/transitions/createTransition.mjs.map +1 -1
  376. package/lib/components/transitions/dialog-transition.mjs +1 -3
  377. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  378. package/lib/components/transitions/index.d.mts +117 -357
  379. package/lib/composables/defaults.mjs +5 -0
  380. package/lib/composables/defaults.mjs.map +1 -1
  381. package/lib/composables/display.mjs +1 -1
  382. package/lib/composables/display.mjs.map +1 -1
  383. package/lib/composables/filter.mjs +2 -4
  384. package/lib/composables/filter.mjs.map +1 -1
  385. package/lib/composables/focus.mjs +1 -1
  386. package/lib/composables/focus.mjs.map +1 -1
  387. package/lib/composables/forwardRefs.mjs +2 -0
  388. package/lib/composables/forwardRefs.mjs.map +1 -1
  389. package/lib/composables/hydration.mjs +1 -1
  390. package/lib/composables/hydration.mjs.map +1 -1
  391. package/lib/composables/icons.mjs +7 -1
  392. package/lib/composables/icons.mjs.map +1 -1
  393. package/lib/composables/lazy.mjs +1 -3
  394. package/lib/composables/lazy.mjs.map +1 -1
  395. package/lib/composables/loader.mjs.map +1 -1
  396. package/lib/composables/locale.mjs +2 -1
  397. package/lib/composables/locale.mjs.map +1 -1
  398. package/lib/composables/mutationObserver.mjs +2 -5
  399. package/lib/composables/mutationObserver.mjs.map +1 -1
  400. package/lib/composables/nested/nested.mjs +2 -2
  401. package/lib/composables/nested/nested.mjs.map +1 -1
  402. package/lib/composables/nested/selectStrategies.mjs +1 -0
  403. package/lib/composables/nested/selectStrategies.mjs.map +1 -1
  404. package/lib/composables/proxiedModel.mjs +3 -3
  405. package/lib/composables/proxiedModel.mjs.map +1 -1
  406. package/lib/composables/refs.mjs +4 -1
  407. package/lib/composables/refs.mjs.map +1 -1
  408. package/lib/composables/resizeObserver.mjs +4 -4
  409. package/lib/composables/resizeObserver.mjs.map +1 -1
  410. package/lib/composables/router.mjs +1 -4
  411. package/lib/composables/router.mjs.map +1 -1
  412. package/lib/composables/scopeId.mjs +1 -0
  413. package/lib/composables/scopeId.mjs.map +1 -1
  414. package/lib/composables/theme.mjs.map +1 -1
  415. package/lib/composables/toggleScope.mjs +4 -0
  416. package/lib/composables/toggleScope.mjs.map +1 -1
  417. package/lib/composables/touch.mjs +1 -0
  418. package/lib/composables/touch.mjs.map +1 -1
  419. package/lib/composables/validation.mjs +2 -2
  420. package/lib/composables/validation.mjs.map +1 -1
  421. package/lib/composables/virtual.mjs +108 -0
  422. package/lib/composables/virtual.mjs.map +1 -0
  423. package/lib/directives/click-outside/index.mjs +2 -1
  424. package/lib/directives/click-outside/index.mjs.map +1 -1
  425. package/lib/directives/intersect/index.mjs +1 -1
  426. package/lib/directives/intersect/index.mjs.map +1 -1
  427. package/lib/directives/resize/index.mjs +2 -0
  428. package/lib/directives/resize/index.mjs.map +1 -1
  429. package/lib/directives/scroll/index.mjs +2 -0
  430. package/lib/directives/scroll/index.mjs.map +1 -1
  431. package/lib/directives/touch/index.mjs +1 -2
  432. package/lib/directives/touch/index.mjs.map +1 -1
  433. package/lib/entry-bundler.mjs +7 -2
  434. package/lib/entry-bundler.mjs.map +1 -1
  435. package/lib/framework.mjs +4 -6
  436. package/lib/framework.mjs.map +1 -1
  437. package/lib/iconsets/fa.mjs +1 -1
  438. package/lib/iconsets/fa.mjs.map +1 -1
  439. package/lib/iconsets/fa4.mjs +4 -3
  440. package/lib/iconsets/fa4.mjs.map +1 -1
  441. package/lib/iconsets/md.mjs +4 -3
  442. package/lib/iconsets/md.mjs.map +1 -1
  443. package/lib/iconsets/mdi-svg.mjs +1 -1
  444. package/lib/iconsets/mdi-svg.mjs.map +1 -1
  445. package/lib/iconsets/mdi.mjs +4 -3
  446. package/lib/iconsets/mdi.mjs.map +1 -1
  447. package/lib/index.d.mts +40 -38
  448. package/lib/labs/VBottomSheet/VBottomSheet.mjs +1 -1
  449. package/lib/labs/VBottomSheet/VBottomSheet.mjs.map +1 -1
  450. package/lib/labs/VBottomSheet/index.d.mts +55 -94
  451. package/lib/labs/VDataIterator/VDataIterator.mjs +13 -10
  452. package/lib/labs/VDataIterator/VDataIterator.mjs.map +1 -1
  453. package/lib/labs/VDataIterator/composables/items.mjs +9 -3
  454. package/lib/labs/VDataIterator/composables/items.mjs.map +1 -1
  455. package/lib/labs/VDataIterator/index.d.mts +143 -132
  456. package/lib/labs/VDataTable/VDataTable.css +1 -0
  457. package/lib/labs/VDataTable/VDataTable.mjs +14 -11
  458. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  459. package/lib/labs/VDataTable/VDataTable.sass +1 -0
  460. package/lib/labs/VDataTable/VDataTableColumn.mjs +2 -1
  461. package/lib/labs/VDataTable/VDataTableColumn.mjs.map +1 -1
  462. package/lib/labs/VDataTable/VDataTableFooter.mjs +3 -3
  463. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  464. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs +5 -5
  465. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
  466. package/lib/labs/VDataTable/VDataTableHeaders.mjs +10 -9
  467. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  468. package/lib/labs/VDataTable/VDataTableRow.mjs +2 -1
  469. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  470. package/lib/labs/VDataTable/VDataTableRows.mjs +20 -16
  471. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  472. package/lib/labs/VDataTable/VDataTableServer.mjs +15 -10
  473. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  474. package/lib/labs/VDataTable/VDataTableVirtual.mjs +40 -25
  475. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  476. package/lib/labs/VDataTable/composables/expand.mjs +4 -4
  477. package/lib/labs/VDataTable/composables/expand.mjs.map +1 -1
  478. package/lib/labs/VDataTable/composables/group.mjs +1 -1
  479. package/lib/labs/VDataTable/composables/group.mjs.map +1 -1
  480. package/lib/labs/VDataTable/composables/headers.mjs +2 -2
  481. package/lib/labs/VDataTable/composables/headers.mjs.map +1 -1
  482. package/lib/labs/VDataTable/composables/items.mjs +12 -9
  483. package/lib/labs/VDataTable/composables/items.mjs.map +1 -1
  484. package/lib/labs/VDataTable/composables/paginate.mjs +1 -1
  485. package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
  486. package/lib/labs/VDataTable/composables/select.mjs +125 -9
  487. package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
  488. package/lib/labs/VDataTable/composables/sort.mjs +4 -9
  489. package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
  490. package/lib/labs/VDataTable/index.d.mts +1792 -2979
  491. package/lib/labs/VDataTable/types.mjs.map +1 -1
  492. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +1 -1
  493. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  494. package/lib/labs/VInfiniteScroll/index.d.mts +60 -91
  495. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +4 -4
  496. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  497. package/lib/labs/VSkeletonLoader/index.d.mts +0 -15
  498. package/lib/labs/components.d.mts +2049 -3320
  499. package/lib/labs/date/date.mjs.map +1 -1
  500. package/lib/labs/entry-bundler.mjs +3 -1
  501. package/lib/labs/entry-bundler.mjs.map +1 -1
  502. package/lib/locale/adapters/vue-i18n.d.mts +1 -1
  503. package/lib/locale/adapters/vue-i18n.mjs +5 -1
  504. package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
  505. package/lib/locale/adapters/vuetify.mjs +1 -3
  506. package/lib/locale/adapters/vuetify.mjs.map +1 -1
  507. package/lib/styles/settings/_colors.scss +18 -15
  508. package/lib/util/anchor.mjs +1 -0
  509. package/lib/util/anchor.mjs.map +1 -1
  510. package/lib/util/animation.mjs +1 -0
  511. package/lib/util/animation.mjs.map +1 -1
  512. package/lib/util/color/APCA.mjs +1 -0
  513. package/lib/util/color/APCA.mjs.map +1 -1
  514. package/lib/util/color/transformCIELAB.mjs +2 -0
  515. package/lib/util/color/transformCIELAB.mjs.map +1 -1
  516. package/lib/util/color/transformSRGB.mjs +3 -1
  517. package/lib/util/color/transformSRGB.mjs.map +1 -1
  518. package/lib/util/colorUtils.mjs +2 -2
  519. package/lib/util/colorUtils.mjs.map +1 -1
  520. package/lib/util/console.mjs +1 -0
  521. package/lib/util/console.mjs.map +1 -1
  522. package/lib/util/createSimpleFunctional.mjs +2 -1
  523. package/lib/util/createSimpleFunctional.mjs.map +1 -1
  524. package/lib/util/defineComponent.mjs +5 -5
  525. package/lib/util/defineComponent.mjs.map +1 -1
  526. package/lib/util/getCurrentInstance.mjs +1 -2
  527. package/lib/util/getCurrentInstance.mjs.map +1 -1
  528. package/lib/util/helpers.mjs +3 -3
  529. package/lib/util/helpers.mjs.map +1 -1
  530. package/lib/util/injectSelf.mjs +2 -1
  531. package/lib/util/injectSelf.mjs.map +1 -1
  532. package/lib/util/propsFactory.mjs +1 -0
  533. package/lib/util/propsFactory.mjs.map +1 -1
  534. package/package.json +3 -2
  535. package/lib/labs/VDataTable/composables/virtual.mjs +0 -77
  536. package/lib/labs/VDataTable/composables/virtual.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableRows.mjs","names":["VDataTableGroupHeaderRow","VDataTableRow","useLocale","useExpanded","useHeaders","useSelection","useGroupBy","genericComponent","propsFactory","useRender","makeVDataTableRowsProps","loading","Boolean","String","loadingText","type","default","hideNoData","items","Array","noDataText","rowHeight","Number","Function","VDataTableRows","name","props","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, type VDataTableGroupHeaderRowSlots } 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, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { Group, provideGroupBy } from './composables/group'\nimport type { provideExpanded } from './composables/expand'\nimport type { provideSelection } from './composables/select'\nimport type { DataTableItem, InternalDataTableHeader } from './types'\n\ntype GroupHeaderSlot = {\n index: number\n item: Group\n columns: InternalDataTableHeader[]\n isExpanded: ReturnType<typeof provideExpanded>['isExpanded']\n toggleExpand: ReturnType<typeof provideExpanded>['toggleExpand']\n isSelected: ReturnType<typeof provideSelection>['isSelected']\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect']\n toggleGroup: ReturnType<typeof provideGroupBy>['toggleGroup']\n isGroupOpen: ReturnType<typeof provideGroupBy>['toggleGroup']\n}\n\ntype ItemSlot = {\n index: number\n item: DataTableItem\n columns: InternalDataTableHeader[]\n isExpanded: ReturnType<typeof provideExpanded>['isExpanded']\n toggleExpand: ReturnType<typeof provideExpanded>['toggleExpand']\n isSelected: ReturnType<typeof provideSelection>['isSelected']\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect']\n}\n\nexport type VDataTableRowsSlots = VDataTableGroupHeaderRowSlots & {\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 makeVDataTableRowsProps = propsFactory({\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<readonly (DataTableItem | Group)[]>,\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}, 'v-data-table-rows')\n\nexport const VDataTableRows = genericComponent<VDataTableRowsSlots>()({\n name: 'VDataTableRows',\n\n props: makeVDataTableRowsProps(),\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') {\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","useExpanded","useGroupBy","useHeaders","useSelection","useLocale","genericComponent","propsFactory","useRender","makeVDataTableRowsProps","loading","Boolean","String","loadingText","type","default","hideNoData","items","Array","noDataText","rowHeight","Number","Function","VDataTableRows","name","props","setup","_ref","emit","slots","columns","expandOnClick","toggleExpand","isExpanded","isSelected","toggleSelect","toggleGroup","isGroupOpen","t","_createVNode","value","length","_Fragment","map","item","index","id","slotProps","itemSlotProps","key","onClick","event","undefined"],"sources":["../../../src/labs/VDataTable/VDataTableRows.tsx"],"sourcesContent":["// Components\nimport { VDataTableGroupHeaderRow } from './VDataTableGroupHeaderRow'\nimport { VDataTableRow } from './VDataTableRow'\n\n// Composables\nimport { useExpanded } from './composables/expand'\nimport { useGroupBy } from './composables/group'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { provideExpanded } from './composables/expand'\nimport type { Group, provideGroupBy } from './composables/group'\nimport type { provideSelection } from './composables/select'\nimport type { DataTableItem, InternalDataTableHeader } from './types'\nimport type { VDataTableGroupHeaderRowSlots } from './VDataTableGroupHeaderRow'\n\ntype GroupHeaderSlot = {\n index: number\n item: Group\n columns: InternalDataTableHeader[]\n isExpanded: ReturnType<typeof provideExpanded>['isExpanded']\n toggleExpand: ReturnType<typeof provideExpanded>['toggleExpand']\n isSelected: ReturnType<typeof provideSelection>['isSelected']\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect']\n toggleGroup: ReturnType<typeof provideGroupBy>['toggleGroup']\n isGroupOpen: ReturnType<typeof provideGroupBy>['toggleGroup']\n}\n\ntype ItemSlot = {\n index: number\n item: DataTableItem\n columns: InternalDataTableHeader[]\n isExpanded: ReturnType<typeof provideExpanded>['isExpanded']\n toggleExpand: ReturnType<typeof provideExpanded>['toggleExpand']\n isSelected: ReturnType<typeof provideSelection>['isSelected']\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect']\n}\n\nexport type VDataTableRowsSlots = VDataTableGroupHeaderRowSlots & {\n item: ItemSlot & { props: Record<string, any> }\n loading: never\n 'group-header': GroupHeaderSlot\n 'no-data': never\n 'expanded-row': ItemSlot\n 'item.data-table-select': ItemSlot\n 'item.data-table-expand': ItemSlot\n} & { [key: `item.${string}`]: ItemSlot }\n\nexport const makeVDataTableRowsProps = propsFactory({\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<readonly (DataTableItem | Group)[]>,\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}, 'VDataTableRows')\n\nexport const VDataTableRows = genericComponent<VDataTableRowsSlots>()({\n name: 'VDataTableRows',\n\n props: makeVDataTableRowsProps(),\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') {\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 } satisfies ItemSlot\n\n const itemSlotProps = {\n ...slotProps,\n props: {\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,\n item,\n },\n }\n\n return (\n <>\n { slots.item ? slots.item(itemSlotProps) : (\n <VDataTableRow\n { ...itemSlotProps.props }\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,19 +1,19 @@
1
1
  import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective, Fragment as _Fragment } from "vue";
2
2
  // Components
3
+ import { makeDataTableProps } from "./VDataTable.mjs";
3
4
  import { makeVDataTableFooterProps, VDataTableFooter } from "./VDataTableFooter.mjs";
4
5
  import { VDataTableHeaders } from "./VDataTableHeaders.mjs";
5
6
  import { VDataTableRows } from "./VDataTableRows.mjs";
6
7
  import { VTable } from "../../components/VTable/index.mjs"; // Composables
8
+ import { provideExpanded } from "./composables/expand.mjs";
7
9
  import { createGroupBy, provideGroupBy, useGroupedItems } from "./composables/group.mjs";
8
10
  import { createHeaders } from "./composables/headers.mjs";
11
+ import { useDataTableItems } from "./composables/items.mjs";
12
+ import { useOptions } from "./composables/options.mjs";
9
13
  import { createPagination, makeDataTablePaginateProps, providePagination } from "./composables/paginate.mjs";
10
- import { createSort, provideSort } from "./composables/sort.mjs";
11
- import { makeDataTableProps } from "./VDataTable.mjs";
12
- import { provideDefaults } from "../../composables/defaults.mjs";
13
- import { provideExpanded } from "./composables/expand.mjs";
14
14
  import { provideSelection } from "./composables/select.mjs";
15
- import { useDataTableItems } from "./composables/items.mjs";
16
- import { useOptions } from "./composables/options.mjs"; // Utilities
15
+ import { createSort, provideSort } from "./composables/sort.mjs";
16
+ import { provideDefaults } from "../../composables/defaults.mjs"; // Utilities
17
17
  import { computed, provide, toRef } from 'vue';
18
18
  import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
19
19
  export const makeVDataTableServerProps = propsFactory({
@@ -24,7 +24,7 @@ export const makeVDataTableServerProps = propsFactory({
24
24
  ...makeDataTablePaginateProps(),
25
25
  ...makeDataTableProps(),
26
26
  ...makeVDataTableFooterProps()
27
- }, 'v-data-table-server');
27
+ }, 'VDataTableServer');
28
28
  export const VDataTableServer = genericComponent()({
29
29
  name: 'VDataTableServer',
30
30
  props: makeVDataTableServerProps(),
@@ -78,7 +78,8 @@ export const VDataTableServer = genericComponent()({
78
78
  const {
79
79
  opened,
80
80
  isGroupOpen,
81
- toggleGroup
81
+ toggleGroup,
82
+ extractRows
82
83
  } = provideGroupBy({
83
84
  groupBy,
84
85
  sortBy
@@ -101,11 +102,15 @@ export const VDataTableServer = genericComponent()({
101
102
  toggleSelect,
102
103
  someSelected,
103
104
  allSelected
104
- } = provideSelection(props, items);
105
+ } = provideSelection(props, {
106
+ allItems: items,
107
+ currentPage: items
108
+ });
105
109
  const {
106
110
  isExpanded,
107
111
  toggleExpand
108
112
  } = provideExpanded(props);
113
+ const itemsWithoutGroups = computed(() => extractRows(items.value));
109
114
  useOptions({
110
115
  page,
111
116
  itemsPerPage,
@@ -142,7 +147,7 @@ export const VDataTableServer = genericComponent()({
142
147
  toggleExpand,
143
148
  isGroupOpen,
144
149
  toggleGroup,
145
- items: items.value,
150
+ items: itemsWithoutGroups.value,
146
151
  groupedItems: flatItems.value,
147
152
  columns: columns.value,
148
153
  headers: headers.value
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableServer.mjs","names":["makeVDataTableFooterProps","VDataTableFooter","VDataTableHeaders","VDataTableRows","VTable","createGroupBy","provideGroupBy","useGroupedItems","createHeaders","createPagination","makeDataTablePaginateProps","providePagination","createSort","provideSort","makeDataTableProps","provideDefaults","provideExpanded","provideSelection","useDataTableItems","useOptions","computed","provide","toRef","genericComponent","propsFactory","useRender","makeVDataTableServerProps","itemsLength","type","Number","String","required","VDataTableServer","name","props","emits","value","page","sortBy","options","click:row","e","setup","_ref","emit","slots","groupBy","multiSort","mustSort","itemsPerPage","parseInt","columns","headers","showSelect","showExpand","items","toggleSort","opened","isGroupOpen","toggleGroup","pageCount","setItemsPerPage","flatItems","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","isExpanded","toggleExpand","search","hideNoData","noDataText","loading","loadingText","slotProps","groupedItems","dataTableFooterProps","filterProps","dataTableHeadersProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","top","default","_Fragment","colgroup","fixedHeader","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTableServer.tsx"],"sourcesContent":["// Components\nimport { makeVDataTableFooterProps, VDataTableFooter } from './VDataTableFooter'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\n\n// Composables\nimport { createGroupBy, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { createPagination, makeDataTablePaginateProps, providePagination } from './composables/paginate'\nimport { createSort, provideSort } from './composables/sort'\nimport { makeDataTableProps } from './VDataTable'\nimport { provideDefaults } from '@/composables/defaults'\nimport { provideExpanded } from './composables/expand'\nimport { provideSelection } from './composables/select'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\n\n// Utilities\nimport { computed, provide, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { DataTableItem } from './types'\nimport type { VDataTableSlotProps, VDataTableSlots } from './VDataTable'\n\nexport const makeVDataTableServerProps = propsFactory({\n itemsLength: {\n type: [Number, String],\n required: true,\n },\n\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeVDataTableFooterProps(),\n}, 'v-data-table-server')\n\nexport const VDataTableServer = genericComponent<VDataTableSlots>()({\n name: 'VDataTableServer',\n\n props: makeVDataTableServerProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (page: number) => true,\n 'update:itemsPerPage': (page: number) => true,\n 'update:sortBy': (sortBy: any) => true,\n 'update:options': (options: any) => true,\n 'update:expanded': (options: any) => true,\n 'update:groupBy': (value: any) => true,\n 'click:row': (e: Event, value: { item: DataTableItem }) => 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 const itemsLength = computed(() => parseInt(props.itemsLength, 10))\n\n const { columns, headers } = 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 { toggleSort } = provideSort({ sortBy, multiSort, mustSort, page })\n\n const { opened, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy })\n\n const { pageCount, setItemsPerPage } = providePagination({ page, itemsPerPage, itemsLength })\n\n const { flatItems } = useGroupedItems(items, groupBy, opened)\n\n const { isSelected, select, selectAll, toggleSelect, someSelected, allSelected } = provideSelection(props, items)\n\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search: toRef(props, 'search'),\n })\n\n provide('v-data-table', {\n toggleSort,\n sortBy,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n const slotProps = computed<VDataTableSlotProps>(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n setItemsPerPage,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: items.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const [dataTableFooterProps] = VDataTableFooter.filterProps(props)\n const [dataTableHeadersProps] = VDataTableHeaders.filterProps(props)\n const [dataTableRowsProps] = VDataTableRows.filterProps(props)\n const [tableProps] = VTable.filterProps(props)\n\n return (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n { ...tableProps }\n >\n {{\n top: () => slots.top?.(slotProps.value),\n default: () => slots.default ? slots.default(slotProps.value) : (\n <>\n { slots.colgroup?.(slotProps.value) }\n <thead class=\"v-data-table__thead\" role=\"rowgroup\">\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n sticky={ props.fixedHeader }\n v-slots={ slots }\n />\n </thead>\n { slots.thead?.(slotProps.value) }\n <tbody class=\"v-data-table__tbody\" role=\"rowgroup\">\n { slots.body ? slots.body(slotProps.value) : (\n <VDataTableRows\n { ...dataTableRowsProps }\n items={ flatItems.value }\n v-slots={ slots }\n />\n )}\n </tbody>\n { slots.tbody?.(slotProps.value) }\n { slots.tfoot?.(slotProps.value) }\n </>\n ),\n bottom: () => slots.bottom ? slots.bottom(slotProps.value) : (\n <VDataTableFooter\n { ...dataTableFooterProps }\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n ),\n }}\n </VTable>\n )\n })\n },\n})\n\nexport type VDataTableServer = InstanceType<typeof VDataTableServer>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTableServer.mjs","names":["makeDataTableProps","makeVDataTableFooterProps","VDataTableFooter","VDataTableHeaders","VDataTableRows","VTable","provideExpanded","createGroupBy","provideGroupBy","useGroupedItems","createHeaders","useDataTableItems","useOptions","createPagination","makeDataTablePaginateProps","providePagination","provideSelection","createSort","provideSort","provideDefaults","computed","provide","toRef","genericComponent","propsFactory","useRender","makeVDataTableServerProps","itemsLength","type","Number","String","required","VDataTableServer","name","props","emits","value","page","sortBy","options","click:row","e","setup","_ref","emit","slots","groupBy","multiSort","mustSort","itemsPerPage","parseInt","columns","headers","showSelect","showExpand","items","toggleSort","opened","isGroupOpen","toggleGroup","extractRows","pageCount","setItemsPerPage","flatItems","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","allItems","currentPage","isExpanded","toggleExpand","itemsWithoutGroups","search","hideNoData","noDataText","loading","loadingText","slotProps","groupedItems","dataTableFooterProps","filterProps","dataTableHeadersProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","top","default","_Fragment","colgroup","fixedHeader","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTableServer.tsx"],"sourcesContent":["// Components\nimport { makeDataTableProps } from './VDataTable'\nimport { makeVDataTableFooterProps, VDataTableFooter } from './VDataTableFooter'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\n\n// Composables\nimport { provideExpanded } from './composables/expand'\nimport { createGroupBy, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { createPagination, makeDataTablePaginateProps, providePagination } from './composables/paginate'\nimport { provideSelection } from './composables/select'\nimport { createSort, provideSort } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, provide, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { DataTableItem } from './types'\nimport type { VDataTableSlotProps, VDataTableSlots } from './VDataTable'\n\nexport const makeVDataTableServerProps = propsFactory({\n itemsLength: {\n type: [Number, String],\n required: true,\n },\n\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeVDataTableFooterProps(),\n}, 'VDataTableServer')\n\nexport const VDataTableServer = genericComponent<VDataTableSlots>()({\n name: 'VDataTableServer',\n\n props: makeVDataTableServerProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (page: number) => true,\n 'update:itemsPerPage': (page: number) => true,\n 'update:sortBy': (sortBy: any) => true,\n 'update:options': (options: any) => true,\n 'update:expanded': (options: any) => true,\n 'update:groupBy': (value: any) => true,\n 'click:row': (e: Event, value: { item: DataTableItem }) => 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 const itemsLength = computed(() => parseInt(props.itemsLength, 10))\n\n const { columns, headers } = 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 { toggleSort } = provideSort({ sortBy, multiSort, mustSort, page })\n\n const { opened, isGroupOpen, toggleGroup, extractRows } = provideGroupBy({ groupBy, sortBy })\n\n const { pageCount, setItemsPerPage } = providePagination({ page, itemsPerPage, itemsLength })\n\n const { flatItems } = useGroupedItems(items, groupBy, opened)\n\n const { isSelected, select, selectAll, toggleSelect, someSelected, allSelected } = provideSelection(props, {\n allItems: items,\n currentPage: items,\n })\n\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n const itemsWithoutGroups = computed(() => extractRows(items.value))\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search: toRef(props, 'search'),\n })\n\n provide('v-data-table', {\n toggleSort,\n sortBy,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n const slotProps = computed<VDataTableSlotProps>(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n setItemsPerPage,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: itemsWithoutGroups.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const [dataTableFooterProps] = VDataTableFooter.filterProps(props)\n const [dataTableHeadersProps] = VDataTableHeaders.filterProps(props)\n const [dataTableRowsProps] = VDataTableRows.filterProps(props)\n const [tableProps] = VTable.filterProps(props)\n\n return (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n { ...tableProps }\n >\n {{\n top: () => slots.top?.(slotProps.value),\n default: () => slots.default ? slots.default(slotProps.value) : (\n <>\n { slots.colgroup?.(slotProps.value) }\n <thead class=\"v-data-table__thead\" role=\"rowgroup\">\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n sticky={ props.fixedHeader }\n v-slots={ slots }\n />\n </thead>\n { slots.thead?.(slotProps.value) }\n <tbody class=\"v-data-table__tbody\" role=\"rowgroup\">\n { slots.body ? slots.body(slotProps.value) : (\n <VDataTableRows\n { ...dataTableRowsProps }\n items={ flatItems.value }\n v-slots={ slots }\n />\n )}\n </tbody>\n { slots.tbody?.(slotProps.value) }\n { slots.tfoot?.(slotProps.value) }\n </>\n ),\n bottom: () => slots.bottom ? slots.bottom(slotProps.value) : (\n <VDataTableFooter\n { ...dataTableFooterProps }\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n ),\n }}\n </VTable>\n )\n })\n },\n})\n\nexport type VDataTableServer = InstanceType<typeof VDataTableServer>\n"],"mappings":"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"}
@@ -1,27 +1,29 @@
1
1
  import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from "vue";
2
2
  // Components
3
+ import { makeDataTableProps } from "./VDataTable.mjs";
3
4
  import { VDataTableHeaders } from "./VDataTableHeaders.mjs";
5
+ import { VDataTableRow } from "./VDataTableRow.mjs";
4
6
  import { VDataTableRows } from "./VDataTableRows.mjs";
5
- import { VTable } from "../../components/VTable/index.mjs"; // Composables
7
+ import { VTable } from "../../components/VTable/index.mjs";
8
+ import { VVirtualScrollItem } from "../../components/VVirtualScroll/VVirtualScrollItem.mjs"; // Composables
9
+ import { provideExpanded } from "./composables/expand.mjs";
6
10
  import { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from "./composables/group.mjs";
7
11
  import { createHeaders } from "./composables/headers.mjs";
12
+ import { useDataTableItems } from "./composables/items.mjs";
13
+ import { useOptions } from "./composables/options.mjs";
14
+ import { provideSelection } from "./composables/select.mjs";
8
15
  import { createSort, provideSort, useSortedItems } from "./composables/sort.mjs";
9
- import { makeDataTableProps } from "./VDataTable.mjs";
10
- import { makeDataTableVirtualProps, useVirtual } from "./composables/virtual.mjs";
11
- import { makeFilterProps, useFilter } from "../../composables/filter.mjs";
12
16
  import { provideDefaults } from "../../composables/defaults.mjs";
13
- import { provideExpanded } from "./composables/expand.mjs";
14
- import { provideSelection } from "./composables/select.mjs";
15
- import { useDataTableItems } from "./composables/items.mjs";
16
- import { useOptions } from "./composables/options.mjs"; // Utlities
17
+ import { makeFilterProps, useFilter } from "../../composables/filter.mjs";
18
+ import { makeVirtualProps, useVirtual } from "../../composables/virtual.mjs"; // Utilities
17
19
  import { computed, shallowRef, toRef } from 'vue';
18
20
  import { convertToUnit, genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
19
21
  export const makeVDataTableVirtualProps = propsFactory({
20
22
  ...makeDataTableProps(),
21
23
  ...makeDataTableGroupProps(),
22
- ...makeDataTableVirtualProps(),
24
+ ...makeVirtualProps(),
23
25
  ...makeFilterProps()
24
- }, 'v-data-table-virtual');
26
+ }, 'VDataTableVirtual');
25
27
  export const VDataTableVirtual = genericComponent()({
26
28
  name: 'VDataTableVirtual',
27
29
  props: makeVDataTableVirtualProps(),
@@ -86,7 +88,7 @@ export const VDataTableVirtual = genericComponent()({
86
88
  const {
87
89
  flatItems
88
90
  } = useGroupedItems(sortedItems, groupBy, opened);
89
- const allRows = computed(() => extractRows(flatItems.value));
91
+ const allItems = computed(() => extractRows(flatItems.value));
90
92
  const {
91
93
  isSelected,
92
94
  select,
@@ -94,23 +96,24 @@ export const VDataTableVirtual = genericComponent()({
94
96
  toggleSelect,
95
97
  someSelected,
96
98
  allSelected
97
- } = provideSelection(props, allRows);
99
+ } = provideSelection(props, {
100
+ allItems,
101
+ currentPage: allItems
102
+ });
98
103
  const {
99
104
  isExpanded,
100
105
  toggleExpand
101
106
  } = provideExpanded(props);
107
+ const headerHeight = computed(() => headers.value.length * 56);
102
108
  const {
103
109
  containerRef,
104
110
  paddingTop,
105
111
  paddingBottom,
106
- startIndex,
107
- stopIndex,
108
- itemHeight,
112
+ computedItems,
113
+ handleItemResize,
109
114
  handleScroll
110
- } = useVirtual(props, flatItems);
111
- const visibleItems = computed(() => {
112
- return flatItems.value.slice(startIndex.value, stopIndex.value);
113
- });
115
+ } = useVirtual(props, flatItems, headerHeight);
116
+ const displayItems = computed(() => computedItems.value.map(item => item.raw));
114
117
  useOptions({
115
118
  sortBy,
116
119
  page: shallowRef(1),
@@ -139,7 +142,7 @@ export const VDataTableVirtual = genericComponent()({
139
142
  toggleExpand,
140
143
  isGroupOpen,
141
144
  toggleGroup,
142
- items: items.value,
145
+ items: allItems.value,
143
146
  groupedItems: flatItems.value,
144
147
  columns: columns.value,
145
148
  headers: headers.value
@@ -152,9 +155,7 @@ export const VDataTableVirtual = genericComponent()({
152
155
  "class": ['v-data-table', {
153
156
  'v-data-table--loading': props.loading
154
157
  }, props.class],
155
- "style": [{
156
- '--v-table-row-height': convertToUnit(itemHeight.value)
157
- }, props.style]
158
+ "style": props.style
158
159
  }, tableProps), {
159
160
  top: () => slots.top?.(slotProps.value),
160
161
  wrapper: () => _createVNode("div", {
@@ -178,8 +179,22 @@ export const VDataTableVirtual = genericComponent()({
178
179
  border: 0
179
180
  }
180
181
  }, null)]), _createVNode(VDataTableRows, _mergeProps(dataTableRowsProps, {
181
- "items": visibleItems.value
182
- }), slots), _createVNode("tr", {
182
+ "items": displayItems.value
183
+ }), {
184
+ ...slots,
185
+ item: itemSlotProps => {
186
+ return slots.item?.(itemSlotProps) ?? _createVNode(VVirtualScrollItem, {
187
+ "key": itemSlotProps.item.index,
188
+ "dynamicHeight": true,
189
+ "renderless": true,
190
+ "onUpdate:height": height => handleItemResize(itemSlotProps.item.index, height)
191
+ }, {
192
+ default: slotProps => _createVNode(VDataTableRow, _mergeProps(itemSlotProps.props, slotProps?.props, {
193
+ "key": itemSlotProps.item.index
194
+ }), slots)
195
+ });
196
+ }
197
+ }), _createVNode("tr", {
183
198
  "style": {
184
199
  height: convertToUnit(paddingBottom.value),
185
200
  border: 0
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableVirtual.mjs","names":["VDataTableHeaders","VDataTableRows","VTable","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createHeaders","createSort","provideSort","useSortedItems","makeDataTableProps","makeDataTableVirtualProps","useVirtual","makeFilterProps","useFilter","provideDefaults","provideExpanded","provideSelection","useDataTableItems","useOptions","computed","shallowRef","toRef","convertToUnit","genericComponent","propsFactory","useRender","makeVDataTableVirtualProps","VDataTableVirtual","name","props","emits","value","click:row","e","setup","_ref","emit","slots","groupBy","sortBy","multiSort","mustSort","columns","headers","showSelect","showExpand","items","search","filteredItems","transform","item","toggleSort","sortByWithGroups","opened","extractRows","isGroupOpen","toggleGroup","sortedItems","flatItems","allRows","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","isExpanded","toggleExpand","containerRef","paddingTop","paddingBottom","startIndex","stopIndex","itemHeight","handleScroll","visibleItems","slice","page","itemsPerPage","hideNoData","noDataText","loading","loadingText","slotProps","groupedItems","dataTableHeadersProps","filterProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","top","wrapper","height","fixedHeader","border","length","bottom"],"sources":["../../../src/labs/VDataTable/VDataTableVirtual.tsx"],"sourcesContent":["// Components\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\n\n// Composables\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { createSort, provideSort, useSortedItems } from './composables/sort'\nimport { makeDataTableProps } from './VDataTable'\nimport { makeDataTableVirtualProps, useVirtual } from './composables/virtual'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { provideDefaults } from '@/composables/defaults'\nimport { provideExpanded } from './composables/expand'\nimport { provideSelection } from './composables/select'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\n\n// Utlities\nimport { computed, shallowRef, toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { DataTableItem } from './types'\nimport type { VDataTableSlotProps } from './VDataTable'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport type { VDataTableHeadersSlots } from './VDataTableHeaders'\n\ntype VDataTableVirtualSlotProps = Omit<VDataTableSlotProps, 'setItemsPerPage' | 'page' | 'pageCount' | 'itemsPerPage'>\n\nexport type VDataTableVirtualSlots = VDataTableRowsSlots & VDataTableHeadersSlots & {\n top: [VDataTableVirtualSlotProps]\n headers: VDataTableHeadersSlots['headers']\n bottom: [VDataTableVirtualSlotProps]\n}\n\nexport const makeVDataTableVirtualProps = propsFactory({\n ...makeDataTableProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableVirtualProps(),\n ...makeFilterProps(),\n}, 'v-data-table-virtual')\n\nexport const VDataTableVirtual = genericComponent<VDataTableVirtualSlots>()({\n name: 'VDataTableVirtual',\n\n props: makeVDataTableVirtualProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => 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 'click:row': (e: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n\n const { columns, headers } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n const { items } = useDataTableItems(props, columns)\n\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter<DataTableItem>(props, items, search, { transform: item => item.columns })\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const allRows = computed(() => extractRows(flatItems.value))\n\n const { isSelected, select, selectAll, toggleSelect, someSelected, allSelected } = provideSelection(props, allRows)\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n const {\n containerRef,\n paddingTop,\n paddingBottom,\n startIndex,\n stopIndex,\n itemHeight,\n handleScroll,\n } = useVirtual(props, flatItems)\n\n const visibleItems = computed(() => {\n return flatItems.value.slice(startIndex.value, stopIndex.value)\n })\n\n useOptions({\n sortBy,\n page: shallowRef(1),\n itemsPerPage: shallowRef(-1),\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n const slotProps = computed<VDataTableVirtualSlotProps>(() => ({\n sortBy: sortBy.value,\n toggleSort,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: items.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const [dataTableHeadersProps] = VDataTableHeaders.filterProps(props)\n const [dataTableRowsProps] = VDataTableRows.filterProps(props)\n const [tableProps] = VTable.filterProps(props)\n\n return (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n props.class,\n ]}\n style={[\n { '--v-table-row-height': convertToUnit(itemHeight.value) },\n props.style,\n ]}\n { ...tableProps }\n >\n {{\n top: () => slots.top?.(slotProps.value),\n wrapper: () => (\n <div\n ref={ containerRef }\n onScroll={ handleScroll }\n class=\"v-table__wrapper\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <table>\n <thead>\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n sticky={ props.fixedHeader }\n v-slots={ slots }\n />\n </thead>\n <tbody>\n <tr style={{ height: convertToUnit(paddingTop.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: convertToUnit(paddingTop.value), border: 0 }}></td>\n </tr>\n\n <VDataTableRows\n { ...dataTableRowsProps }\n items={ visibleItems.value }\n v-slots={ slots }\n />\n\n <tr style={{ height: convertToUnit(paddingBottom.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: convertToUnit(paddingBottom.value), border: 0 }}></td>\n </tr>\n </tbody>\n </table>\n </div>\n ),\n bottom: () => slots.bottom?.(slotProps.value),\n }}\n </VTable>\n )\n })\n },\n})\n\nexport type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTableVirtual.mjs","names":["makeDataTableProps","VDataTableHeaders","VDataTableRow","VDataTableRows","VTable","VVirtualScrollItem","provideExpanded","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createHeaders","useDataTableItems","useOptions","provideSelection","createSort","provideSort","useSortedItems","provideDefaults","makeFilterProps","useFilter","makeVirtualProps","useVirtual","computed","shallowRef","toRef","convertToUnit","genericComponent","propsFactory","useRender","makeVDataTableVirtualProps","VDataTableVirtual","name","props","emits","value","click:row","e","setup","_ref","emit","slots","groupBy","sortBy","multiSort","mustSort","columns","headers","showSelect","showExpand","items","search","filteredItems","transform","item","toggleSort","sortByWithGroups","opened","extractRows","isGroupOpen","toggleGroup","sortedItems","flatItems","allItems","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","currentPage","isExpanded","toggleExpand","headerHeight","length","containerRef","paddingTop","paddingBottom","computedItems","handleItemResize","handleScroll","displayItems","map","raw","page","itemsPerPage","hideNoData","noDataText","loading","loadingText","slotProps","groupedItems","dataTableHeadersProps","filterProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","top","wrapper","height","fixedHeader","border","itemSlotProps","index","default","bottom"],"sources":["../../../src/labs/VDataTable/VDataTableVirtual.tsx"],"sourcesContent":["// Components\nimport { makeDataTableProps } from './VDataTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRow } from './VDataTableRow'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\nimport { VVirtualScrollItem } from '@/components/VVirtualScroll/VVirtualScrollItem'\n\n// Composables\nimport { provideExpanded } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { provideSelection } from './composables/select'\nimport { createSort, provideSort, useSortedItems } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeVirtualProps, useVirtual } from '@/composables/virtual'\n\n// Utilities\nimport { computed, shallowRef, toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { DataTableItem } from './types'\nimport type { VDataTableSlotProps } from './VDataTable'\nimport type { VDataTableHeadersSlots } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\n\ntype VDataTableVirtualSlotProps = Omit<VDataTableSlotProps, 'setItemsPerPage' | 'page' | 'pageCount' | 'itemsPerPage'>\n\nexport type VDataTableVirtualSlots = VDataTableRowsSlots & VDataTableHeadersSlots & {\n top: VDataTableVirtualSlotProps\n headers: VDataTableHeadersSlots['headers']\n bottom: VDataTableVirtualSlotProps\n}\n\nexport const makeVDataTableVirtualProps = propsFactory({\n ...makeDataTableProps(),\n ...makeDataTableGroupProps(),\n ...makeVirtualProps(),\n ...makeFilterProps(),\n}, 'VDataTableVirtual')\n\nexport const VDataTableVirtual = genericComponent<VDataTableVirtualSlots>()({\n name: 'VDataTableVirtual',\n\n props: makeVDataTableVirtualProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => 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 'click:row': (e: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n\n const { columns, headers } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n const { items } = useDataTableItems(props, columns)\n\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter<DataTableItem>(props, items, search, { transform: item => item.columns })\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const allItems = computed(() => extractRows(flatItems.value))\n\n const { isSelected, select, selectAll, toggleSelect, someSelected, allSelected } = provideSelection(props, {\n allItems,\n currentPage: allItems,\n })\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n const headerHeight = computed(() => headers.value.length * 56)\n\n const {\n containerRef,\n paddingTop,\n paddingBottom,\n computedItems,\n handleItemResize,\n handleScroll,\n } = useVirtual(props, flatItems, headerHeight)\n const displayItems = computed(() => computedItems.value.map(item => item.raw))\n\n useOptions({\n sortBy,\n page: shallowRef(1),\n itemsPerPage: shallowRef(-1),\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n const slotProps = computed<VDataTableVirtualSlotProps>(() => ({\n sortBy: sortBy.value,\n toggleSort,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: allItems.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const [dataTableHeadersProps] = VDataTableHeaders.filterProps(props)\n const [dataTableRowsProps] = VDataTableRows.filterProps(props)\n const [tableProps] = VTable.filterProps(props)\n\n return (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n { ...tableProps }\n >\n {{\n top: () => slots.top?.(slotProps.value),\n wrapper: () => (\n <div\n ref={ containerRef }\n onScroll={ handleScroll }\n class=\"v-table__wrapper\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <table>\n <thead>\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n sticky={ props.fixedHeader }\n v-slots={ slots }\n />\n </thead>\n <tbody>\n <tr style={{ height: convertToUnit(paddingTop.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: convertToUnit(paddingTop.value), border: 0 }}></td>\n </tr>\n\n <VDataTableRows\n { ...dataTableRowsProps }\n items={ displayItems.value }\n >\n {{\n ...slots,\n item: itemSlotProps => {\n return slots.item?.(itemSlotProps) ?? (\n <VVirtualScrollItem\n key={ itemSlotProps.item.index }\n dynamicHeight\n renderless\n onUpdate:height={ height => handleItemResize(itemSlotProps.item.index, height) }\n >\n { slotProps => (\n <VDataTableRow\n { ...itemSlotProps.props }\n { ...slotProps?.props }\n key={ itemSlotProps.item.index }\n v-slots={ slots }\n />\n )}\n </VVirtualScrollItem>\n )\n },\n }}\n </VDataTableRows>\n\n <tr style={{ height: convertToUnit(paddingBottom.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: convertToUnit(paddingBottom.value), border: 0 }}></td>\n </tr>\n </tbody>\n </table>\n </div>\n ),\n bottom: () => slots.bottom?.(slotProps.value),\n }}\n </VTable>\n )\n })\n },\n})\n\nexport type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- // Utilities
1
+ // Composables
2
+ import { useProxiedModel } from "../../../composables/proxiedModel.mjs"; // Utilities
2
3
  import { inject, provide, toRef } from 'vue';
3
- import { propsFactory } from "../../../util/index.mjs"; // Composables
4
- import { useProxiedModel } from "../../../composables/proxiedModel.mjs"; // Types
4
+ import { propsFactory } from "../../../util/index.mjs"; // Types
5
5
  export const makeDataTableExpandProps = propsFactory({
6
6
  expandOnClick: Boolean,
7
7
  showExpand: Boolean,
@@ -9,7 +9,7 @@ export const makeDataTableExpandProps = propsFactory({
9
9
  type: Array,
10
10
  default: () => []
11
11
  }
12
- }, 'v-data-table-expand');
12
+ }, 'DataTable-expand');
13
13
  export const VDataTableExpandedKey = Symbol.for('vuetify:datatable:expanded');
14
14
  export function provideExpanded(props) {
15
15
  const expandOnClick = toRef(props, 'expandOnClick');
@@ -1 +1 @@
1
- {"version":3,"file":"expand.mjs","names":["inject","provide","toRef","propsFactory","useProxiedModel","makeDataTableExpandProps","expandOnClick","Boolean","showExpand","expanded","type","Array","default","VDataTableExpandedKey","Symbol","for","provideExpanded","props","v","Set","values","expand","item","value","newExpanded","delete","add","isExpanded","has","toggleExpand","data","useExpanded","Error"],"sources":["../../../../src/labs/VDataTable/composables/expand.ts"],"sourcesContent":["// Utilities\nimport { inject, provide, toRef } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableItem } from '../types'\n\nexport const makeDataTableExpandProps = propsFactory({\n expandOnClick: Boolean,\n showExpand: Boolean,\n expanded: {\n type: Array as PropType<readonly string[]>,\n default: () => ([]),\n },\n}, 'v-data-table-expand')\n\nexport const VDataTableExpandedKey: InjectionKey<{\n expand: (item: DataTableItem, value: boolean) => void\n expanded: Ref<Set<string>>\n expandOnClick: Ref<boolean | undefined>\n isExpanded: (item: DataTableItem) => boolean\n toggleExpand: (item: DataTableItem) => void\n}> = Symbol.for('vuetify:datatable:expanded')\n\ntype ExpandProps = {\n expandOnClick: boolean\n expanded: readonly string[]\n 'onUpdate:expanded': ((value: any[]) => void) | undefined\n}\n\nexport function provideExpanded (props: ExpandProps) {\n const expandOnClick = toRef(props, 'expandOnClick')\n const expanded = useProxiedModel(props, 'expanded', props.expanded, v => {\n return new Set(v)\n }, v => {\n return [...v.values()]\n })\n\n function expand (item: DataTableItem, value: boolean) {\n const newExpanded = new Set(expanded.value)\n\n if (!value) {\n newExpanded.delete(item.value)\n } else {\n newExpanded.add(item.value)\n }\n\n expanded.value = newExpanded\n }\n\n function isExpanded (item: DataTableItem) {\n return expanded.value.has(item.value)\n }\n\n function toggleExpand (item: DataTableItem) {\n expand(item, !isExpanded(item))\n }\n\n const data = { expand, expanded, expandOnClick, isExpanded, toggleExpand }\n\n provide(VDataTableExpandedKey, data)\n\n return data\n}\n\nexport function useExpanded () {\n const data = inject(VDataTableExpandedKey)\n\n if (!data) throw new Error('foo')\n\n return data\n}\n"],"mappings":"AAAA;AACA,SAASA,MAAM,EAAEC,OAAO,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACnCC,YAAY,mCAErB;AAAA,SACSC,eAAe,iDAExB;AAIA,OAAO,MAAMC,wBAAwB,GAAGF,YAAY,CAAC;EACnDG,aAAa,EAAEC,OAAO;EACtBC,UAAU,EAAED,OAAO;EACnBE,QAAQ,EAAE;IACRC,IAAI,EAAEC,KAAoC;IAC1CC,OAAO,EAAEA,CAAA,KAAO;EAClB;AACF,CAAC,EAAE,qBAAqB,CAAC;AAEzB,OAAO,MAAMC,qBAMX,GAAGC,MAAM,CAACC,GAAG,CAAC,4BAA4B,CAAC;AAQ7C,OAAO,SAASC,eAAeA,CAAEC,KAAkB,EAAE;EACnD,MAAMX,aAAa,GAAGJ,KAAK,CAACe,KAAK,EAAE,eAAe,CAAC;EACnD,MAAMR,QAAQ,GAAGL,eAAe,CAACa,KAAK,EAAE,UAAU,EAAEA,KAAK,CAACR,QAAQ,EAAES,CAAC,IAAI;IACvE,OAAO,IAAIC,GAAG,CAACD,CAAC,CAAC;EACnB,CAAC,EAAEA,CAAC,IAAI;IACN,OAAO,CAAC,GAAGA,CAAC,CAACE,MAAM,EAAE,CAAC;EACxB,CAAC,CAAC;EAEF,SAASC,MAAMA,CAAEC,IAAmB,EAAEC,KAAc,EAAE;IACpD,MAAMC,WAAW,GAAG,IAAIL,GAAG,CAACV,QAAQ,CAACc,KAAK,CAAC;IAE3C,IAAI,CAACA,KAAK,EAAE;MACVC,WAAW,CAACC,MAAM,CAACH,IAAI,CAACC,KAAK,CAAC;IAChC,CAAC,MAAM;MACLC,WAAW,CAACE,GAAG,CAACJ,IAAI,CAACC,KAAK,CAAC;IAC7B;IAEAd,QAAQ,CAACc,KAAK,GAAGC,WAAW;EAC9B;EAEA,SAASG,UAAUA,CAAEL,IAAmB,EAAE;IACxC,OAAOb,QAAQ,CAACc,KAAK,CAACK,GAAG,CAACN,IAAI,CAACC,KAAK,CAAC;EACvC;EAEA,SAASM,YAAYA,CAAEP,IAAmB,EAAE;IAC1CD,MAAM,CAACC,IAAI,EAAE,CAACK,UAAU,CAACL,IAAI,CAAC,CAAC;EACjC;EAEA,MAAMQ,IAAI,GAAG;IAAET,MAAM;IAAEZ,QAAQ;IAAEH,aAAa;IAAEqB,UAAU;IAAEE;EAAa,CAAC;EAE1E5B,OAAO,CAACY,qBAAqB,EAAEiB,IAAI,CAAC;EAEpC,OAAOA,IAAI;AACb;AAEA,OAAO,SAASC,WAAWA,CAAA,EAAI;EAC7B,MAAMD,IAAI,GAAG9B,MAAM,CAACa,qBAAqB,CAAC;EAE1C,IAAI,CAACiB,IAAI,EAAE,MAAM,IAAIE,KAAK,CAAC,KAAK,CAAC;EAEjC,OAAOF,IAAI;AACb"}
1
+ {"version":3,"file":"expand.mjs","names":["useProxiedModel","inject","provide","toRef","propsFactory","makeDataTableExpandProps","expandOnClick","Boolean","showExpand","expanded","type","Array","default","VDataTableExpandedKey","Symbol","for","provideExpanded","props","v","Set","values","expand","item","value","newExpanded","delete","add","isExpanded","has","toggleExpand","data","useExpanded","Error"],"sources":["../../../../src/labs/VDataTable/composables/expand.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { inject, provide, toRef } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableItem } from '../types'\n\nexport const makeDataTableExpandProps = propsFactory({\n expandOnClick: Boolean,\n showExpand: Boolean,\n expanded: {\n type: Array as PropType<readonly string[]>,\n default: () => ([]),\n },\n}, 'DataTable-expand')\n\nexport const VDataTableExpandedKey: InjectionKey<{\n expand: (item: DataTableItem, value: boolean) => void\n expanded: Ref<Set<string>>\n expandOnClick: Ref<boolean | undefined>\n isExpanded: (item: DataTableItem) => boolean\n toggleExpand: (item: DataTableItem) => void\n}> = Symbol.for('vuetify:datatable:expanded')\n\ntype ExpandProps = {\n expandOnClick: boolean\n expanded: readonly string[]\n 'onUpdate:expanded': ((value: any[]) => void) | undefined\n}\n\nexport function provideExpanded (props: ExpandProps) {\n const expandOnClick = toRef(props, 'expandOnClick')\n const expanded = useProxiedModel(props, 'expanded', props.expanded, v => {\n return new Set(v)\n }, v => {\n return [...v.values()]\n })\n\n function expand (item: DataTableItem, value: boolean) {\n const newExpanded = new Set(expanded.value)\n\n if (!value) {\n newExpanded.delete(item.value)\n } else {\n newExpanded.add(item.value)\n }\n\n expanded.value = newExpanded\n }\n\n function isExpanded (item: DataTableItem) {\n return expanded.value.has(item.value)\n }\n\n function toggleExpand (item: DataTableItem) {\n expand(item, !isExpanded(item))\n }\n\n const data = { expand, expanded, expandOnClick, isExpanded, toggleExpand }\n\n provide(VDataTableExpandedKey, data)\n\n return data\n}\n\nexport function useExpanded () {\n const data = inject(VDataTableExpandedKey)\n\n if (!data) throw new Error('foo')\n\n return data\n}\n"],"mappings":"AAAA;AAAA,SACSA,eAAe,iDAExB;AACA,SAASC,MAAM,EAAEC,OAAO,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACnCC,YAAY,mCAErB;AAIA,OAAO,MAAMC,wBAAwB,GAAGD,YAAY,CAAC;EACnDE,aAAa,EAAEC,OAAO;EACtBC,UAAU,EAAED,OAAO;EACnBE,QAAQ,EAAE;IACRC,IAAI,EAAEC,KAAoC;IAC1CC,OAAO,EAAEA,CAAA,KAAO;EAClB;AACF,CAAC,EAAE,kBAAkB,CAAC;AAEtB,OAAO,MAAMC,qBAMX,GAAGC,MAAM,CAACC,GAAG,CAAC,4BAA4B,CAAC;AAQ7C,OAAO,SAASC,eAAeA,CAAEC,KAAkB,EAAE;EACnD,MAAMX,aAAa,GAAGH,KAAK,CAACc,KAAK,EAAE,eAAe,CAAC;EACnD,MAAMR,QAAQ,GAAGT,eAAe,CAACiB,KAAK,EAAE,UAAU,EAAEA,KAAK,CAACR,QAAQ,EAAES,CAAC,IAAI;IACvE,OAAO,IAAIC,GAAG,CAACD,CAAC,CAAC;EACnB,CAAC,EAAEA,CAAC,IAAI;IACN,OAAO,CAAC,GAAGA,CAAC,CAACE,MAAM,EAAE,CAAC;EACxB,CAAC,CAAC;EAEF,SAASC,MAAMA,CAAEC,IAAmB,EAAEC,KAAc,EAAE;IACpD,MAAMC,WAAW,GAAG,IAAIL,GAAG,CAACV,QAAQ,CAACc,KAAK,CAAC;IAE3C,IAAI,CAACA,KAAK,EAAE;MACVC,WAAW,CAACC,MAAM,CAACH,IAAI,CAACC,KAAK,CAAC;IAChC,CAAC,MAAM;MACLC,WAAW,CAACE,GAAG,CAACJ,IAAI,CAACC,KAAK,CAAC;IAC7B;IAEAd,QAAQ,CAACc,KAAK,GAAGC,WAAW;EAC9B;EAEA,SAASG,UAAUA,CAAEL,IAAmB,EAAE;IACxC,OAAOb,QAAQ,CAACc,KAAK,CAACK,GAAG,CAACN,IAAI,CAACC,KAAK,CAAC;EACvC;EAEA,SAASM,YAAYA,CAAEP,IAAmB,EAAE;IAC1CD,MAAM,CAACC,IAAI,EAAE,CAACK,UAAU,CAACL,IAAI,CAAC,CAAC;EACjC;EAEA,MAAMQ,IAAI,GAAG;IAAET,MAAM;IAAEZ,QAAQ;IAAEH,aAAa;IAAEqB,UAAU;IAAEE;EAAa,CAAC;EAE1E3B,OAAO,CAACW,qBAAqB,EAAEiB,IAAI,CAAC;EAEpC,OAAOA,IAAI;AACb;AAEA,OAAO,SAASC,WAAWA,CAAA,EAAI;EAC7B,MAAMD,IAAI,GAAG7B,MAAM,CAACY,qBAAqB,CAAC;EAE1C,IAAI,CAACiB,IAAI,EAAE,MAAM,IAAIE,KAAK,CAAC,KAAK,CAAC;EAEjC,OAAOF,IAAI;AACb"}
@@ -7,7 +7,7 @@ export const makeDataTableGroupProps = propsFactory({
7
7
  type: Array,
8
8
  default: () => []
9
9
  }
10
- }, 'data-table-group');
10
+ }, 'DataTable-group');
11
11
  const VDataTableGroupSymbol = Symbol.for('vuetify:data-table-group');
12
12
  export function createGroupBy(props) {
13
13
  const groupBy = useProxiedModel(props, 'groupBy');
@@ -1 +1 @@
1
- {"version":3,"file":"group.mjs","names":["useProxiedModel","computed","inject","provide","ref","getObjectValueByPath","propsFactory","makeDataTableGroupProps","groupBy","type","Array","default","VDataTableGroupSymbol","Symbol","for","createGroupBy","props","provideGroupBy","options","sortBy","opened","Set","sortByWithGroups","value","map","val","order","concat","isGroupOpen","group","has","id","toggleGroup","newOpened","add","delete","extractRows","items","dive","arr","item","push","key","depth","data","useGroupBy","Error","groupItemsByProperty","length","groups","Map","raw","set","get","groupItems","arguments","undefined","prefix","groupedItems","rest","slice","forEach","flattenItems","flatItems","useGroupedItems"],"sources":["../../../../src/labs/VDataTable/composables/group.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, ref } from 'vue'\nimport { getObjectValueByPath, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableItem } from '../types'\nimport type { SortItem } from './sort'\n\nexport interface GroupableItem<T = any> {\n type: 'item'\n raw: T\n}\n\nexport interface Group<T = any> {\n type: 'group'\n depth: number\n id: string\n key: string\n value: any\n items: readonly (T | Group<T>)[]\n}\n\nexport const makeDataTableGroupProps = propsFactory({\n groupBy: {\n type: Array as PropType<readonly SortItem[]>,\n default: () => ([]),\n },\n}, 'data-table-group')\n\nconst VDataTableGroupSymbol: InjectionKey<{\n opened: Ref<Set<string>>\n toggleGroup: (group: Group) => void\n isGroupOpen: (group: Group) => boolean\n sortByWithGroups: Ref<SortItem[]>\n groupBy: Ref<readonly SortItem[]>\n extractRows: (items: (DataTableItem | Group<DataTableItem>)[]) => DataTableItem[]\n}> = Symbol.for('vuetify:data-table-group')\n\ntype GroupProps = {\n groupBy: readonly SortItem[]\n 'onUpdate:groupBy': ((value: SortItem[]) => void) | undefined\n}\n\nexport function createGroupBy (props: GroupProps) {\n const groupBy = useProxiedModel(props, 'groupBy')\n\n return { groupBy }\n}\n\nexport function provideGroupBy (options: { groupBy: Ref<readonly SortItem[]>, sortBy: Ref<readonly SortItem[]> }) {\n const { groupBy, sortBy } = options\n const opened = ref(new Set<string>())\n\n const sortByWithGroups = computed(() => {\n return groupBy.value.map<SortItem>(val => ({\n ...val,\n order: val.order ?? false,\n })).concat(sortBy.value)\n })\n\n function isGroupOpen (group: Group) {\n return opened.value.has(group.id)\n }\n\n function toggleGroup (group: Group) {\n const newOpened = new Set(opened.value)\n if (!isGroupOpen(group)) newOpened.add(group.id)\n else newOpened.delete(group.id)\n\n opened.value = newOpened\n }\n\n function extractRows <T extends GroupableItem> (items: readonly (T | Group<T>)[]) {\n function dive (group: Group<T>): T[] {\n const arr = []\n\n for (const item of group.items) {\n if ('type' in item && item.type === 'group') {\n arr.push(...dive(item))\n } else {\n arr.push(item as T)\n }\n }\n\n return arr\n }\n return dive({ type: 'group', items, id: 'dummy', key: 'dummy', value: 'dummy', depth: 0 })\n }\n\n // onBeforeMount(() => {\n // for (const key of groupedItems.value.keys()) {\n // opened.value.add(key)\n // }\n // })\n\n const data = { sortByWithGroups, toggleGroup, opened, groupBy, extractRows, isGroupOpen }\n\n provide(VDataTableGroupSymbol, data)\n\n return data\n}\n\nexport function useGroupBy () {\n const data = inject(VDataTableGroupSymbol)\n\n if (!data) throw new Error('Missing group!')\n\n return data\n}\n\nfunction groupItemsByProperty <T extends GroupableItem> (items: readonly T[], groupBy: string) {\n if (!items.length) return []\n\n const groups = new Map<any, T[]>()\n for (const item of items) {\n const value = getObjectValueByPath(item.raw, groupBy)\n\n if (!groups.has(value)) {\n groups.set(value, [])\n }\n groups.get(value)!.push(item)\n }\n\n return groups\n}\n\nfunction groupItems <T extends GroupableItem> (items: readonly T[], groupBy: readonly string[], depth = 0, prefix = 'root') {\n if (!groupBy.length) return []\n\n const groupedItems = groupItemsByProperty(items, groupBy[0])\n const groups: Group<T>[] = []\n\n const rest = groupBy.slice(1)\n groupedItems.forEach((items, value) => {\n const key = groupBy[0]\n const id = `${prefix}_${key}_${value}`\n groups.push({\n depth,\n id,\n key,\n value,\n items: rest.length ? groupItems(items, rest, depth + 1, id) : items,\n type: 'group',\n })\n })\n\n return groups\n}\n\nfunction flattenItems <T extends GroupableItem> (items: readonly (T | Group<T>)[], opened: Set<string>): readonly (T | Group<T>)[] {\n const flatItems: (T | Group<T>)[] = []\n\n for (const item of items) {\n // TODO: make this better\n if ('type' in item && item.type === 'group') {\n if (item.value != null) {\n flatItems.push(item)\n }\n\n if (opened.has(item.id) || item.value == null) {\n flatItems.push(...flattenItems(item.items, opened))\n }\n } else {\n flatItems.push(item)\n }\n }\n\n return flatItems\n}\n\nexport function useGroupedItems <T extends GroupableItem> (\n items: Ref<T[]>,\n groupBy: Ref<readonly SortItem[]>,\n opened: Ref<Set<string>>\n) {\n const flatItems = computed(() => {\n if (!groupBy.value.length) return items.value\n\n const groupedItems = groupItems(items.value, groupBy.value.map(item => item.key))\n\n return flattenItems(groupedItems, opened.value)\n })\n\n return { flatItems }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"group.mjs","names":["useProxiedModel","computed","inject","provide","ref","getObjectValueByPath","propsFactory","makeDataTableGroupProps","groupBy","type","Array","default","VDataTableGroupSymbol","Symbol","for","createGroupBy","props","provideGroupBy","options","sortBy","opened","Set","sortByWithGroups","value","map","val","order","concat","isGroupOpen","group","has","id","toggleGroup","newOpened","add","delete","extractRows","items","dive","arr","item","push","key","depth","data","useGroupBy","Error","groupItemsByProperty","length","groups","Map","raw","set","get","groupItems","arguments","undefined","prefix","groupedItems","rest","slice","forEach","flattenItems","flatItems","useGroupedItems"],"sources":["../../../../src/labs/VDataTable/composables/group.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, ref } from 'vue'\nimport { getObjectValueByPath, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { SortItem } from './sort'\nimport type { DataTableItem } from '../types'\n\nexport interface GroupableItem<T = any> {\n type: 'item'\n raw: T\n}\n\nexport interface Group<T = any> {\n type: 'group'\n depth: number\n id: string\n key: string\n value: any\n items: readonly (T | Group<T>)[]\n}\n\nexport const makeDataTableGroupProps = propsFactory({\n groupBy: {\n type: Array as PropType<readonly SortItem[]>,\n default: () => ([]),\n },\n}, 'DataTable-group')\n\nconst VDataTableGroupSymbol: InjectionKey<{\n opened: Ref<Set<string>>\n toggleGroup: (group: Group) => void\n isGroupOpen: (group: Group) => boolean\n sortByWithGroups: Ref<SortItem[]>\n groupBy: Ref<readonly SortItem[]>\n extractRows: (items: (DataTableItem | Group<DataTableItem>)[]) => DataTableItem[]\n}> = Symbol.for('vuetify:data-table-group')\n\ntype GroupProps = {\n groupBy: readonly SortItem[]\n 'onUpdate:groupBy': ((value: SortItem[]) => void) | undefined\n}\n\nexport function createGroupBy (props: GroupProps) {\n const groupBy = useProxiedModel(props, 'groupBy')\n\n return { groupBy }\n}\n\nexport function provideGroupBy (options: { groupBy: Ref<readonly SortItem[]>, sortBy: Ref<readonly SortItem[]> }) {\n const { groupBy, sortBy } = options\n const opened = ref(new Set<string>())\n\n const sortByWithGroups = computed(() => {\n return groupBy.value.map<SortItem>(val => ({\n ...val,\n order: val.order ?? false,\n })).concat(sortBy.value)\n })\n\n function isGroupOpen (group: Group) {\n return opened.value.has(group.id)\n }\n\n function toggleGroup (group: Group) {\n const newOpened = new Set(opened.value)\n if (!isGroupOpen(group)) newOpened.add(group.id)\n else newOpened.delete(group.id)\n\n opened.value = newOpened\n }\n\n function extractRows <T extends GroupableItem> (items: readonly (T | Group<T>)[]) {\n function dive (group: Group<T>): T[] {\n const arr = []\n\n for (const item of group.items) {\n if ('type' in item && item.type === 'group') {\n arr.push(...dive(item))\n } else {\n arr.push(item as T)\n }\n }\n\n return arr\n }\n return dive({ type: 'group', items, id: 'dummy', key: 'dummy', value: 'dummy', depth: 0 })\n }\n\n // onBeforeMount(() => {\n // for (const key of groupedItems.value.keys()) {\n // opened.value.add(key)\n // }\n // })\n\n const data = { sortByWithGroups, toggleGroup, opened, groupBy, extractRows, isGroupOpen }\n\n provide(VDataTableGroupSymbol, data)\n\n return data\n}\n\nexport function useGroupBy () {\n const data = inject(VDataTableGroupSymbol)\n\n if (!data) throw new Error('Missing group!')\n\n return data\n}\n\nfunction groupItemsByProperty <T extends GroupableItem> (items: readonly T[], groupBy: string) {\n if (!items.length) return []\n\n const groups = new Map<any, T[]>()\n for (const item of items) {\n const value = getObjectValueByPath(item.raw, groupBy)\n\n if (!groups.has(value)) {\n groups.set(value, [])\n }\n groups.get(value)!.push(item)\n }\n\n return groups\n}\n\nfunction groupItems <T extends GroupableItem> (items: readonly T[], groupBy: readonly string[], depth = 0, prefix = 'root') {\n if (!groupBy.length) return []\n\n const groupedItems = groupItemsByProperty(items, groupBy[0])\n const groups: Group<T>[] = []\n\n const rest = groupBy.slice(1)\n groupedItems.forEach((items, value) => {\n const key = groupBy[0]\n const id = `${prefix}_${key}_${value}`\n groups.push({\n depth,\n id,\n key,\n value,\n items: rest.length ? groupItems(items, rest, depth + 1, id) : items,\n type: 'group',\n })\n })\n\n return groups\n}\n\nfunction flattenItems <T extends GroupableItem> (items: readonly (T | Group<T>)[], opened: Set<string>): readonly (T | Group<T>)[] {\n const flatItems: (T | Group<T>)[] = []\n\n for (const item of items) {\n // TODO: make this better\n if ('type' in item && item.type === 'group') {\n if (item.value != null) {\n flatItems.push(item)\n }\n\n if (opened.has(item.id) || item.value == null) {\n flatItems.push(...flattenItems(item.items, opened))\n }\n } else {\n flatItems.push(item)\n }\n }\n\n return flatItems\n}\n\nexport function useGroupedItems <T extends GroupableItem> (\n items: Ref<T[]>,\n groupBy: Ref<readonly SortItem[]>,\n opened: Ref<Set<string>>\n) {\n const flatItems = computed(() => {\n if (!groupBy.value.length) return items.value\n\n const groupedItems = groupItems(items.value, groupBy.value.map(item => item.key))\n\n return flattenItems(groupedItems, opened.value)\n })\n\n return { flatItems }\n}\n"],"mappings":"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"}
@@ -6,7 +6,7 @@ export const makeDataTableHeaderProps = propsFactory({
6
6
  type: Array,
7
7
  default: () => []
8
8
  }
9
- }, 'v-data-table-header');
9
+ }, 'DataTable-header');
10
10
  export const VDataTableHeadersSymbol = Symbol.for('vuetify:data-table-headers');
11
11
  export function createHeaders(props, options) {
12
12
  const headers = ref([]);
@@ -108,7 +108,7 @@ export function createHeaders(props, options) {
108
108
  fixedOffset: fixedOffsets[i],
109
109
  sortable: column.sortable ?? !!column.key
110
110
  });
111
- fixedOffsets[i] += column.width ?? 0;
111
+ fixedOffsets[i] += Number(column.width ?? 0);
112
112
  }
113
113
  });
114
114
  fixedRows.forEach(row => {
@@ -1 +1 @@
1
- {"version":3,"file":"headers.mjs","names":["inject","provide","ref","watch","createRange","propsFactory","makeDataTableHeaderProps","headers","type","Array","default","VDataTableHeadersSymbol","Symbol","for","createHeaders","props","options","columns","wrapped","length","isArray","flat","flatMap","row","index","map","column","rowCount","defaultHeader","title","sortable","defaultActionHeader","width","groupBy","value","findIndex","_ref","key","unshift","rowspan","splice","showSelect","_ref2","showExpand","_ref3","push","fixedRows","fixedOffsets","fill","forEach","_ref4","i","fixedOffset","fixed","lastFixed","seen","Set","filtered","has","add","at","deep","immediate","data","useHeaders","Error"],"sources":["../../../../src/labs/VDataTable/composables/headers.ts"],"sourcesContent":["// Utilities\nimport { inject, provide, ref, watch } from 'vue'\nimport { createRange, propsFactory } from '@/util'\n\n// Types\nimport type { DeepReadonly, InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableHeader, InternalDataTableHeader } from '../types'\nimport type { SortItem } from './sort'\n\nexport const makeDataTableHeaderProps = propsFactory({\n headers: {\n type: Array as PropType<DeepReadonly<DataTableHeader[] | DataTableHeader[][]>>,\n default: () => ([]),\n },\n}, 'v-data-table-header')\n\nexport const VDataTableHeadersSymbol: InjectionKey<{\n headers: Ref<InternalDataTableHeader[][]>\n columns: Ref<InternalDataTableHeader[]>\n}> = Symbol.for('vuetify:data-table-headers')\n\ntype HeaderProps = {\n headers: DeepReadonly<DataTableHeader[] | DataTableHeader[][]>\n}\n\nexport function createHeaders (\n props: HeaderProps,\n options?: {\n groupBy?: Ref<readonly SortItem[]>\n showSelect?: Ref<boolean>\n showExpand?: Ref<boolean>\n }\n) {\n const headers = ref<InternalDataTableHeader[][]>([])\n const columns = ref<InternalDataTableHeader[]>([])\n\n watch(() => props.headers, () => {\n const wrapped = !props.headers.length\n ? []\n : Array.isArray(props.headers[0])\n ? props.headers as DataTableHeader[][]\n : [props.headers as DataTableHeader[]]\n const flat = wrapped.flatMap((row, index) => row.map(column => ({ column, row: index })))\n\n const rowCount = wrapped.length\n const defaultHeader = { title: '', sortable: false }\n const defaultActionHeader = { ...defaultHeader, width: 48 }\n\n if (options?.groupBy?.value.length) {\n const index = flat.findIndex(({ column }) => column.key === 'data-table-group')\n if (index < 0) flat.unshift({ column: { ...defaultHeader, key: 'data-table-group', title: 'Group', rowspan: rowCount }, row: 0 })\n else flat.splice(index, 1, { column: { ...defaultHeader, ...flat[index].column }, row: flat[index].row })\n }\n\n if (options?.showSelect?.value) {\n const index = flat.findIndex(({ column }) => column.key === 'data-table-select')\n if (index < 0) flat.unshift({ column: { ...defaultActionHeader, key: 'data-table-select', rowspan: rowCount }, row: 0 })\n else flat.splice(index, 1, { column: { ...defaultActionHeader, ...flat[index].column }, row: flat[index].row })\n }\n\n if (options?.showExpand?.value) {\n const index = flat.findIndex(({ column }) => column.key === 'data-table-expand')\n if (index < 0) flat.push({ column: { ...defaultActionHeader, key: 'data-table-expand', rowspan: rowCount }, row: 0 })\n else flat.splice(index, 1, { column: { ...defaultActionHeader, ...flat[index].column }, row: flat[index].row })\n }\n\n const fixedRows: InternalDataTableHeader[][] = createRange(rowCount).map(() => [])\n const fixedOffsets = createRange(rowCount).fill(0)\n\n flat.forEach(({ column, row }) => {\n const key = column.key\n for (let i = row; i <= row + (column.rowspan ?? 1) - 1; i++) {\n fixedRows[i].push({\n ...column,\n key,\n fixedOffset: fixedOffsets[i],\n sortable: column.sortable ?? !!column.key,\n })\n\n fixedOffsets[i] += column.width ?? 0\n }\n })\n\n fixedRows.forEach(row => {\n for (let i = row.length; i--; i >= 0) {\n if (row[i].fixed) {\n row[i].lastFixed = true\n return\n }\n }\n })\n\n const seen = new Set()\n headers.value = fixedRows.map(row => {\n const filtered = []\n for (const column of row) {\n if (!seen.has(column.key)) {\n seen.add(column.key)\n filtered.push(column)\n }\n }\n\n return filtered\n })\n\n columns.value = fixedRows.at(-1) ?? []\n }, {\n deep: true,\n immediate: true,\n })\n\n const data = { headers, columns }\n\n provide(VDataTableHeadersSymbol, data)\n\n return data\n}\n\nexport function useHeaders () {\n const data = inject(VDataTableHeadersSymbol)\n\n if (!data) throw new Error('Missing headers!')\n\n return data\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"headers.mjs","names":["inject","provide","ref","watch","createRange","propsFactory","makeDataTableHeaderProps","headers","type","Array","default","VDataTableHeadersSymbol","Symbol","for","createHeaders","props","options","columns","wrapped","length","isArray","flat","flatMap","row","index","map","column","rowCount","defaultHeader","title","sortable","defaultActionHeader","width","groupBy","value","findIndex","_ref","key","unshift","rowspan","splice","showSelect","_ref2","showExpand","_ref3","push","fixedRows","fixedOffsets","fill","forEach","_ref4","i","fixedOffset","Number","fixed","lastFixed","seen","Set","filtered","has","add","at","deep","immediate","data","useHeaders","Error"],"sources":["../../../../src/labs/VDataTable/composables/headers.ts"],"sourcesContent":["// Utilities\nimport { inject, provide, ref, watch } from 'vue'\nimport { createRange, propsFactory } from '@/util'\n\n// Types\nimport type { DeepReadonly, InjectionKey, PropType, Ref } from 'vue'\nimport type { SortItem } from './sort'\nimport type { DataTableHeader, InternalDataTableHeader } from '../types'\n\nexport const makeDataTableHeaderProps = propsFactory({\n headers: {\n type: Array as PropType<DeepReadonly<DataTableHeader[] | DataTableHeader[][]>>,\n default: () => ([]),\n },\n}, 'DataTable-header')\n\nexport const VDataTableHeadersSymbol: InjectionKey<{\n headers: Ref<InternalDataTableHeader[][]>\n columns: Ref<InternalDataTableHeader[]>\n}> = Symbol.for('vuetify:data-table-headers')\n\ntype HeaderProps = {\n headers: DeepReadonly<DataTableHeader[] | DataTableHeader[][]>\n}\n\nexport function createHeaders (\n props: HeaderProps,\n options?: {\n groupBy?: Ref<readonly SortItem[]>\n showSelect?: Ref<boolean>\n showExpand?: Ref<boolean>\n }\n) {\n const headers = ref<InternalDataTableHeader[][]>([])\n const columns = ref<InternalDataTableHeader[]>([])\n\n watch(() => props.headers, () => {\n const wrapped = !props.headers.length\n ? []\n : Array.isArray(props.headers[0])\n ? props.headers as DataTableHeader[][]\n : [props.headers as DataTableHeader[]]\n const flat = wrapped.flatMap((row, index) => row.map(column => ({ column, row: index })))\n\n const rowCount = wrapped.length\n const defaultHeader = { title: '', sortable: false }\n const defaultActionHeader = { ...defaultHeader, width: 48 }\n\n if (options?.groupBy?.value.length) {\n const index = flat.findIndex(({ column }) => column.key === 'data-table-group')\n if (index < 0) flat.unshift({ column: { ...defaultHeader, key: 'data-table-group', title: 'Group', rowspan: rowCount }, row: 0 })\n else flat.splice(index, 1, { column: { ...defaultHeader, ...flat[index].column }, row: flat[index].row })\n }\n\n if (options?.showSelect?.value) {\n const index = flat.findIndex(({ column }) => column.key === 'data-table-select')\n if (index < 0) flat.unshift({ column: { ...defaultActionHeader, key: 'data-table-select', rowspan: rowCount }, row: 0 })\n else flat.splice(index, 1, { column: { ...defaultActionHeader, ...flat[index].column }, row: flat[index].row })\n }\n\n if (options?.showExpand?.value) {\n const index = flat.findIndex(({ column }) => column.key === 'data-table-expand')\n if (index < 0) flat.push({ column: { ...defaultActionHeader, key: 'data-table-expand', rowspan: rowCount }, row: 0 })\n else flat.splice(index, 1, { column: { ...defaultActionHeader, ...flat[index].column }, row: flat[index].row })\n }\n\n const fixedRows: InternalDataTableHeader[][] = createRange(rowCount).map(() => [])\n const fixedOffsets = createRange(rowCount).fill(0)\n\n flat.forEach(({ column, row }) => {\n const key = column.key\n for (let i = row; i <= row + (column.rowspan ?? 1) - 1; i++) {\n fixedRows[i].push({\n ...column,\n key,\n fixedOffset: fixedOffsets[i],\n sortable: column.sortable ?? !!column.key,\n })\n\n fixedOffsets[i] += Number(column.width ?? 0)\n }\n })\n\n fixedRows.forEach(row => {\n for (let i = row.length; i--; i >= 0) {\n if (row[i].fixed) {\n row[i].lastFixed = true\n return\n }\n }\n })\n\n const seen = new Set()\n headers.value = fixedRows.map(row => {\n const filtered = []\n for (const column of row) {\n if (!seen.has(column.key)) {\n seen.add(column.key)\n filtered.push(column)\n }\n }\n\n return filtered\n })\n\n columns.value = fixedRows.at(-1) ?? []\n }, {\n deep: true,\n immediate: true,\n })\n\n const data = { headers, columns }\n\n provide(VDataTableHeadersSymbol, data)\n\n return data\n}\n\nexport function useHeaders () {\n const data = inject(VDataTableHeadersSymbol)\n\n if (!data) throw new Error('Missing headers!')\n\n return data\n}\n"],"mappings":"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"}