@vuetify/nightly 4.0.0-dev-20230511.0 → 4.0.0-dev-20230512.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. package/CHANGELOG.md +6 -14
  2. package/dist/json/attributes.json +564 -256
  3. package/dist/json/importMap-labs.json +4 -4
  4. package/dist/json/tags.json +80 -2
  5. package/dist/json/web-types.json +2399 -606
  6. package/dist/vuetify-labs.css +45 -42
  7. package/dist/vuetify-labs.d.ts +26350 -24518
  8. package/dist/vuetify-labs.esm.js +2485 -2382
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +2485 -2382
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +11 -8
  13. package/dist/vuetify.d.ts +23046 -23682
  14. package/dist/vuetify.esm.js +1865 -1748
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +1865 -1748
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +658 -658
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/blueprints/index.d.mts +1 -3
  22. package/lib/blueprints/md1.d.mts +1 -3
  23. package/lib/blueprints/md2.d.mts +1 -3
  24. package/lib/blueprints/md3.d.mts +1 -3
  25. package/lib/components/VAlert/VAlert.mjs +48 -48
  26. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  27. package/lib/components/VAlert/index.d.mts +228 -71
  28. package/lib/components/VApp/VApp.mjs +9 -8
  29. package/lib/components/VApp/VApp.mjs.map +1 -1
  30. package/lib/components/VApp/index.d.mts +65 -19
  31. package/lib/components/VAppBar/VAppBar.mjs +23 -22
  32. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  33. package/lib/components/VAppBar/VAppBarNavIcon.mjs +9 -7
  34. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  35. package/lib/components/VAppBar/VAppBarTitle.mjs +1 -2
  36. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  37. package/lib/components/VAppBar/index.d.mts +314 -123
  38. package/lib/components/VAutocomplete/VAutocomplete.css +0 -4
  39. package/lib/components/VAutocomplete/VAutocomplete.mjs +36 -39
  40. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  41. package/lib/components/VAutocomplete/VAutocomplete.sass +0 -5
  42. package/lib/components/VAutocomplete/index.d.mts +1264 -2467
  43. package/lib/components/VAvatar/index.d.mts +70 -30
  44. package/lib/components/VBadge/VBadge.mjs +33 -32
  45. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  46. package/lib/components/VBadge/index.d.mts +86 -42
  47. package/lib/components/VBanner/VBanner.mjs +21 -20
  48. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  49. package/lib/components/VBanner/VBannerActions.mjs +7 -6
  50. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  51. package/lib/components/VBanner/index.d.mts +227 -65
  52. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +35 -34
  53. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  54. package/lib/components/VBottomNavigation/index.d.mts +78 -45
  55. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +24 -23
  56. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  57. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +6 -5
  58. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
  59. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +15 -14
  60. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  61. package/lib/components/VBreadcrumbs/index.d.mts +311 -208
  62. package/lib/components/VBtn/index.d.mts +112 -53
  63. package/lib/components/VBtnGroup/index.d.mts +69 -27
  64. package/lib/components/VBtnToggle/VBtnToggle.mjs +6 -5
  65. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  66. package/lib/components/VBtnToggle/index.d.mts +73 -35
  67. package/lib/components/VCard/VCard.mjs +38 -37
  68. package/lib/components/VCard/VCard.mjs.map +1 -1
  69. package/lib/components/VCard/VCardItem.mjs +12 -11
  70. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  71. package/lib/components/VCard/index.d.mts +764 -368
  72. package/lib/components/VCarousel/VCarousel.mjs +28 -27
  73. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  74. package/lib/components/VCarousel/VCarouselItem.mjs +18 -16
  75. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  76. package/lib/components/VCarousel/index.d.mts +600 -103
  77. package/lib/components/VCheckbox/VCheckbox.mjs +6 -5
  78. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  79. package/lib/components/VCheckbox/index.d.mts +304 -125
  80. package/lib/components/VChip/VChip.css +7 -0
  81. package/lib/components/VChip/VChip.mjs +60 -57
  82. package/lib/components/VChip/VChip.mjs.map +1 -1
  83. package/lib/components/VChip/VChip.sass +9 -0
  84. package/lib/components/VChip/index.d.mts +318 -90
  85. package/lib/components/VChipGroup/VChipGroup.mjs +19 -18
  86. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  87. package/lib/components/VChipGroup/index.d.mts +204 -53
  88. package/lib/components/VCode/index.d.mts +63 -17
  89. package/lib/components/VColorPicker/VColorPicker.mjs +44 -39
  90. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  91. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +26 -25
  92. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  93. package/lib/components/VColorPicker/VColorPickerEdit.mjs +17 -16
  94. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  95. package/lib/components/VColorPicker/VColorPickerPreview.mjs +10 -9
  96. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  97. package/lib/components/VColorPicker/VColorPickerSwatches.mjs +12 -11
  98. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  99. package/lib/components/VColorPicker/index.d.mts +74 -85
  100. package/lib/components/VColorPicker/util/index.mjs +2 -2
  101. package/lib/components/VColorPicker/util/index.mjs.map +1 -1
  102. package/lib/components/VCombobox/VCombobox.mjs +39 -42
  103. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  104. package/lib/components/VCombobox/index.d.mts +1264 -2488
  105. package/lib/components/VCounter/VCounter.mjs +16 -15
  106. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  107. package/lib/components/VCounter/index.d.mts +113 -1817
  108. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +9 -8
  109. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
  110. package/lib/components/VDefaultsProvider/index.d.mts +67 -20
  111. package/lib/components/VDialog/VDialog.mjs +18 -17
  112. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  113. package/lib/components/VDialog/index.d.mts +551 -1401
  114. package/lib/components/VDivider/VDivider.mjs +11 -10
  115. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  116. package/lib/components/VDivider/index.d.mts +66 -21
  117. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +15 -15
  118. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  119. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +6 -5
  120. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  121. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +3 -5
  122. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  123. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +15 -14
  124. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  125. package/lib/components/VExpansionPanel/index.d.mts +317 -125
  126. package/lib/components/VField/VField.mjs +7 -2
  127. package/lib/components/VField/VField.mjs.map +1 -1
  128. package/lib/components/VField/VFieldLabel.mjs +6 -5
  129. package/lib/components/VField/VFieldLabel.mjs.map +1 -1
  130. package/lib/components/VField/index.d.mts +310 -230
  131. package/lib/components/VFileInput/VFileInput.mjs +35 -34
  132. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  133. package/lib/components/VFileInput/index.d.mts +760 -320
  134. package/lib/components/VFooter/VFooter.mjs +21 -20
  135. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  136. package/lib/components/VFooter/index.d.mts +70 -29
  137. package/lib/components/VForm/VForm.mjs +6 -5
  138. package/lib/components/VForm/VForm.mjs.map +1 -1
  139. package/lib/components/VForm/index.d.mts +568 -52
  140. package/lib/components/VGrid/VCol.mjs +26 -25
  141. package/lib/components/VGrid/VCol.mjs.map +1 -1
  142. package/lib/components/VGrid/VContainer.mjs +16 -11
  143. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  144. package/lib/components/VGrid/VRow.mjs +26 -25
  145. package/lib/components/VGrid/VRow.mjs.map +1 -1
  146. package/lib/components/VGrid/index.d.mts +274 -100
  147. package/lib/components/VHover/VHover.mjs +10 -9
  148. package/lib/components/VHover/VHover.mjs.map +1 -1
  149. package/lib/components/VHover/index.d.mts +93 -37
  150. package/lib/components/VIcon/VIcon.mjs +28 -29
  151. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  152. package/lib/components/VIcon/index.d.mts +292 -81
  153. package/lib/components/VImg/VImg.mjs +34 -33
  154. package/lib/components/VImg/VImg.mjs.map +1 -1
  155. package/lib/components/VImg/index.d.mts +118 -53
  156. package/lib/components/VInput/VInput.mjs +1 -1
  157. package/lib/components/VInput/VInput.mjs.map +1 -1
  158. package/lib/components/VInput/index.d.mts +137 -50
  159. package/lib/components/VItemGroup/VItem.mjs +1 -1
  160. package/lib/components/VItemGroup/VItem.mjs.map +1 -1
  161. package/lib/components/VItemGroup/VItemGroup.mjs +10 -9
  162. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  163. package/lib/components/VItemGroup/index.d.mts +414 -111
  164. package/lib/components/VKbd/index.d.mts +63 -17
  165. package/lib/components/VLabel/VLabel.mjs +8 -7
  166. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  167. package/lib/components/VLabel/index.d.mts +64 -18
  168. package/lib/components/VLayout/VLayout.mjs +6 -5
  169. package/lib/components/VLayout/VLayout.mjs.map +1 -1
  170. package/lib/components/VLayout/VLayoutItem.mjs +15 -14
  171. package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
  172. package/lib/components/VLayout/index.d.mts +131 -42
  173. package/lib/components/VLazy/VLazy.mjs +21 -20
  174. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  175. package/lib/components/VLazy/index.d.mts +67 -27
  176. package/lib/components/VList/VList.mjs +37 -36
  177. package/lib/components/VList/VList.mjs.map +1 -1
  178. package/lib/components/VList/VListChildren.mjs +9 -12
  179. package/lib/components/VList/VListChildren.mjs.map +1 -1
  180. package/lib/components/VList/VListGroup.mjs +2 -4
  181. package/lib/components/VList/VListGroup.mjs.map +1 -1
  182. package/lib/components/VList/VListItem.mjs +44 -43
  183. package/lib/components/VList/VListItem.mjs.map +1 -1
  184. package/lib/components/VList/VListItemAction.mjs +8 -7
  185. package/lib/components/VList/VListItemAction.mjs.map +1 -1
  186. package/lib/components/VList/VListItemMedia.mjs +8 -7
  187. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  188. package/lib/components/VList/VListSubheader.mjs +10 -9
  189. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  190. package/lib/components/VList/index.d.mts +1069 -617
  191. package/lib/components/VList/list.mjs +4 -4
  192. package/lib/components/VList/list.mjs.map +1 -1
  193. package/lib/components/VLocaleProvider/VLocaleProvider.mjs +12 -11
  194. package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
  195. package/lib/components/VLocaleProvider/index.d.mts +65 -19
  196. package/lib/components/VMain/VMain.mjs +9 -8
  197. package/lib/components/VMain/VMain.mjs.map +1 -1
  198. package/lib/components/VMain/index.d.mts +64 -19
  199. package/lib/components/VMenu/VMenu.mjs +21 -20
  200. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  201. package/lib/components/VMenu/index.d.mts +479 -1327
  202. package/lib/components/VMessages/VMessages.mjs +18 -17
  203. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  204. package/lib/components/VMessages/index.d.mts +88 -1799
  205. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +50 -49
  206. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  207. package/lib/components/VNavigationDrawer/index.d.mts +115 -60
  208. package/lib/components/VNavigationDrawer/sticky.mjs +14 -7
  209. package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
  210. package/lib/components/VNavigationDrawer/touch.mjs +4 -4
  211. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  212. package/lib/components/VOverlay/index.d.mts +120 -75
  213. package/lib/components/VOverlay/locationStrategies.mjs +5 -3
  214. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  215. package/lib/components/VPagination/VPagination.mjs +84 -83
  216. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  217. package/lib/components/VPagination/index.d.mts +203 -130
  218. package/lib/components/VParallax/VParallax.mjs +9 -8
  219. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  220. package/lib/components/VParallax/index.d.mts +91 -18
  221. package/lib/components/VProgressCircular/VProgressCircular.mjs +25 -24
  222. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  223. package/lib/components/VProgressCircular/index.d.mts +125 -45
  224. package/lib/components/VProgressLinear/VProgressLinear.mjs +44 -42
  225. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  226. package/lib/components/VProgressLinear/index.d.mts +97 -57
  227. package/lib/components/VRadio/VRadio.mjs +8 -7
  228. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  229. package/lib/components/VRadio/index.d.mts +121 -51
  230. package/lib/components/VRadioGroup/VRadioGroup.mjs +22 -21
  231. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  232. package/lib/components/VRadioGroup/index.d.mts +189 -76
  233. package/lib/components/VRangeSlider/VRangeSlider.mjs +18 -13
  234. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  235. package/lib/components/VRangeSlider/index.d.mts +192 -80
  236. package/lib/components/VRating/VRating.mjs +49 -45
  237. package/lib/components/VRating/VRating.mjs.map +1 -1
  238. package/lib/components/VRating/index.d.mts +94 -54
  239. package/lib/components/VResponsive/index.d.mts +73 -18
  240. package/lib/components/VSelect/VSelect.mjs +22 -21
  241. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  242. package/lib/components/VSelect/index.d.mts +1192 -3713
  243. package/lib/components/VSelectionControl/VSelectionControl.mjs +3 -3
  244. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  245. package/lib/components/VSelectionControl/index.d.mts +212 -194
  246. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +10 -10
  247. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  248. package/lib/components/VSelectionControlGroup/index.d.mts +100 -63
  249. package/lib/components/VSheet/VSheet.mjs +1 -3
  250. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  251. package/lib/components/VSheet/index.d.mts +66 -21
  252. package/lib/components/VSlideGroup/VSlideGroup.mjs +7 -7
  253. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  254. package/lib/components/VSlideGroup/VSlideGroupItem.mjs +1 -3
  255. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  256. package/lib/components/VSlideGroup/index.d.mts +181 -64
  257. package/lib/components/VSlider/VSlider.mjs +18 -13
  258. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  259. package/lib/components/VSlider/VSliderThumb.mjs +26 -25
  260. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  261. package/lib/components/VSlider/VSliderTrack.mjs +13 -12
  262. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  263. package/lib/components/VSlider/index.d.mts +194 -81
  264. package/lib/components/VSlider/slider.mjs +3 -3
  265. package/lib/components/VSlider/slider.mjs.map +1 -1
  266. package/lib/components/VSnackbar/VSnackbar.mjs +20 -19
  267. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  268. package/lib/components/VSnackbar/index.d.mts +444 -297
  269. package/lib/components/VSwitch/VSwitch.css +3 -3
  270. package/lib/components/VSwitch/VSwitch.mjs +13 -12
  271. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  272. package/lib/components/VSwitch/VSwitch.sass +4 -3
  273. package/lib/components/VSwitch/index.d.mts +206 -86
  274. package/lib/components/VSystemBar/VSystemBar.mjs +15 -14
  275. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  276. package/lib/components/VSystemBar/index.d.mts +69 -27
  277. package/lib/components/VTable/VTable.mjs +12 -11
  278. package/lib/components/VTable/VTable.mjs.map +1 -1
  279. package/lib/components/VTable/index.d.mts +95 -26
  280. package/lib/components/VTabs/VTab.mjs +19 -19
  281. package/lib/components/VTabs/VTab.mjs.map +1 -1
  282. package/lib/components/VTabs/VTabs.mjs +28 -27
  283. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  284. package/lib/components/VTabs/index.d.mts +175 -115
  285. package/lib/components/VTextField/VTextField.mjs +1 -1
  286. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  287. package/lib/components/VTextField/index.d.mts +1254 -770
  288. package/lib/components/VTextarea/VTextarea.mjs +32 -28
  289. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  290. package/lib/components/VTextarea/index.d.mts +683 -313
  291. package/lib/components/VThemeProvider/VThemeProvider.mjs +8 -7
  292. package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
  293. package/lib/components/VThemeProvider/index.d.mts +65 -20
  294. package/lib/components/VTimeline/VTimeline.mjs +46 -41
  295. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  296. package/lib/components/VTimeline/VTimelineDivider.mjs +14 -13
  297. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  298. package/lib/components/VTimeline/VTimelineItem.mjs +23 -22
  299. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  300. package/lib/components/VTimeline/index.d.mts +163 -62
  301. package/lib/components/VToolbar/VToolbar.mjs +8 -4
  302. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  303. package/lib/components/VToolbar/VToolbarItems.mjs +8 -7
  304. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  305. package/lib/components/VToolbar/index.d.mts +265 -82
  306. package/lib/components/VTooltip/VTooltip.mjs +20 -19
  307. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  308. package/lib/components/VTooltip/index.d.mts +442 -297
  309. package/lib/components/VValidation/VValidation.mjs +1 -3
  310. package/lib/components/VValidation/VValidation.mjs.map +1 -1
  311. package/lib/components/VValidation/index.d.mts +358 -50
  312. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +14 -13
  313. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  314. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs +6 -5
  315. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
  316. package/lib/components/VVirtualScroll/index.d.mts +110 -82
  317. package/lib/components/VWindow/VWindow.mjs +3 -3
  318. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  319. package/lib/components/VWindow/VWindowItem.mjs +18 -17
  320. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  321. package/lib/components/VWindow/index.d.mts +204 -75
  322. package/lib/components/index.d.mts +23230 -23871
  323. package/lib/components/transitions/createTransition.mjs +16 -15
  324. package/lib/components/transitions/createTransition.mjs.map +1 -1
  325. package/lib/components/transitions/dialog-transition.mjs +5 -4
  326. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  327. package/lib/components/transitions/index.d.mts +1207 -472
  328. package/lib/composables/display.mjs +3 -3
  329. package/lib/composables/display.mjs.map +1 -1
  330. package/lib/composables/form.mjs +4 -4
  331. package/lib/composables/form.mjs.map +1 -1
  332. package/lib/composables/forwardRefs.mjs.map +1 -1
  333. package/lib/composables/group.mjs +13 -13
  334. package/lib/composables/group.mjs.map +1 -1
  335. package/lib/composables/hydration.mjs +6 -6
  336. package/lib/composables/hydration.mjs.map +1 -1
  337. package/lib/composables/icons.mjs +2 -2
  338. package/lib/composables/icons.mjs.map +1 -1
  339. package/lib/composables/intersectionObserver.mjs +2 -2
  340. package/lib/composables/intersectionObserver.mjs.map +1 -1
  341. package/lib/composables/layout.mjs +3 -3
  342. package/lib/composables/layout.mjs.map +1 -1
  343. package/lib/composables/lazy.mjs +2 -2
  344. package/lib/composables/lazy.mjs.map +1 -1
  345. package/lib/composables/nested/nested.mjs +5 -4
  346. package/lib/composables/nested/nested.mjs.map +1 -1
  347. package/lib/composables/scroll.mjs +6 -6
  348. package/lib/composables/scroll.mjs.map +1 -1
  349. package/lib/composables/ssrBoot.mjs +2 -2
  350. package/lib/composables/ssrBoot.mjs.map +1 -1
  351. package/lib/composables/stack.mjs +5 -4
  352. package/lib/composables/stack.mjs.map +1 -1
  353. package/lib/composables/theme.mjs +3 -3
  354. package/lib/composables/theme.mjs.map +1 -1
  355. package/lib/composables/transition.mjs +5 -2
  356. package/lib/composables/transition.mjs.map +1 -1
  357. package/lib/composables/validation.mjs +3 -3
  358. package/lib/composables/validation.mjs.map +1 -1
  359. package/lib/directives/click-outside/index.mjs +1 -1
  360. package/lib/directives/click-outside/index.mjs.map +1 -1
  361. package/lib/entry-bundler.mjs +1 -1
  362. package/lib/framework.mjs +1 -1
  363. package/lib/index.d.mts +10 -5
  364. package/lib/labs/VDataTable/VDataTable.mjs +54 -66
  365. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  366. package/lib/labs/VDataTable/VDataTableFooter.mjs +64 -63
  367. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  368. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs +8 -7
  369. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
  370. package/lib/labs/VDataTable/VDataTableHeaders.mjs +17 -16
  371. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  372. package/lib/labs/VDataTable/VDataTableRow.mjs +7 -6
  373. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  374. package/lib/labs/VDataTable/VDataTableRows.mjs +20 -19
  375. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  376. package/lib/labs/VDataTable/VDataTableServer.mjs +54 -59
  377. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  378. package/lib/labs/VDataTable/VDataTableVirtual.mjs +72 -80
  379. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  380. package/lib/labs/VDataTable/composables/virtual.mjs +3 -3
  381. package/lib/labs/VDataTable/composables/virtual.mjs.map +1 -1
  382. package/lib/labs/VDataTable/index.d.mts +2974 -631
  383. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +54 -48
  384. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  385. package/lib/labs/VInfiniteScroll/index.d.mts +143 -52
  386. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +18 -17
  387. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  388. package/lib/labs/VSkeletonLoader/index.d.mts +77 -31
  389. package/lib/labs/components.d.mts +3188 -708
  390. package/lib/labs/date/date.mjs +7 -7
  391. package/lib/labs/date/date.mjs.map +1 -1
  392. package/lib/labs/date/index.d.mts +1 -3
  393. package/lib/locale/adapters/vuetify.mjs +8 -5
  394. package/lib/locale/adapters/vuetify.mjs.map +1 -1
  395. package/lib/util/defineComponent.mjs.map +1 -1
  396. package/lib/util/propsFactory.mjs +2 -0
  397. package/lib/util/propsFactory.mjs.map +1 -1
  398. package/package.json +3 -3
@@ -3,7 +3,7 @@ import { useForm } from "./form.mjs";
3
3
  import { useProxiedModel } from "./proxiedModel.mjs";
4
4
  import { useToggleScope } from "./toggleScope.mjs";
5
5
  import { makeFocusProps } from "./focus.mjs"; // Utilities
6
- import { computed, onBeforeMount, onBeforeUnmount, onMounted, ref, unref, watch } from 'vue';
6
+ import { computed, onBeforeMount, onBeforeUnmount, onMounted, ref, shallowRef, unref, watch } from 'vue';
7
7
  import { getCurrentInstanceName, getUid, propsFactory, wrapInArray } from "../util/index.mjs"; // Types
8
8
  export const makeValidationProps = propsFactory({
9
9
  disabled: Boolean,
@@ -35,7 +35,7 @@ export function useValidation(props) {
35
35
  const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue);
36
36
  const form = useForm();
37
37
  const internalErrorMessages = ref([]);
38
- const isPristine = ref(true);
38
+ const isPristine = shallowRef(true);
39
39
  const isDirty = computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));
40
40
  const isDisabled = computed(() => !!(props.disabled || form?.isDisabled.value));
41
41
  const isReadonly = computed(() => !!(props.readonly || form?.isReadonly.value));
@@ -47,7 +47,7 @@ export function useValidation(props) {
47
47
  if (!props.rules.length) return true;
48
48
  return isPristine.value ? null : true;
49
49
  });
50
- const isValidating = ref(false);
50
+ const isValidating = shallowRef(false);
51
51
  const validationClasses = computed(() => {
52
52
  return {
53
53
  [`${name}--error`]: isValid.value === false,
@@ -1 +1 @@
1
- {"version":3,"file":"validation.mjs","names":["useForm","useProxiedModel","useToggleScope","makeFocusProps","computed","onBeforeMount","onBeforeUnmount","onMounted","ref","unref","watch","getCurrentInstanceName","getUid","propsFactory","wrapInArray","makeValidationProps","disabled","Boolean","error","errorMessages","type","Array","String","default","maxErrors","Number","name","label","readonly","rules","modelValue","validateOn","validationValue","useValidation","props","arguments","length","undefined","id","model","validationModel","value","form","internalErrorMessages","isPristine","isDirty","isDisabled","isReadonly","slice","Math","max","isValid","isValidating","validationClasses","uid","register","validate","reset","resetValidation","unregister","update","focused","unwatch","val","results","rule","handler","result","console","warn","push"],"sources":["../../src/composables/validation.ts"],"sourcesContent":["// Composables\nimport { useForm } from '@/composables/form'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { makeFocusProps } from '@/composables/focus'\n\n// Utilities\nimport { computed, onBeforeMount, onBeforeUnmount, onMounted, ref, unref, watch } from 'vue'\nimport { getCurrentInstanceName, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport type ValidationResult = string | boolean\nexport type ValidationRule =\n | ValidationResult\n | PromiseLike<ValidationResult>\n | ((value: any) => ValidationResult)\n | ((value: any) => PromiseLike<ValidationResult>)\n\nexport interface ValidationProps {\n disabled: boolean\n error: boolean\n errorMessages: string | string[]\n focused: boolean\n maxErrors: string | number\n name: string | undefined\n label: string | undefined\n readonly: boolean\n rules: ValidationRule[]\n modelValue: any\n 'onUpdate:modelValue': ((val: any) => void) | undefined\n validateOn?: 'blur' | 'input' | 'submit'\n validationValue: any\n}\n\nexport const makeValidationProps = propsFactory({\n disabled: Boolean,\n error: Boolean,\n errorMessages: {\n type: [Array, String] as PropType<string | string[]>,\n default: () => ([]),\n },\n maxErrors: {\n type: [Number, String],\n default: 1,\n },\n name: String,\n label: String,\n readonly: Boolean,\n rules: {\n type: Array as PropType<ValidationRule[]>,\n default: () => ([]),\n },\n modelValue: null,\n validateOn: String as PropType<ValidationProps['validateOn']>,\n validationValue: null,\n\n ...makeFocusProps(),\n}, 'validation')\n\nexport function useValidation (\n props: ValidationProps,\n name = getCurrentInstanceName(),\n id: MaybeRef<string | number> = getUid(),\n) {\n const model = useProxiedModel(props, 'modelValue')\n const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue)\n const form = useForm()\n const internalErrorMessages = ref<string[]>([])\n const isPristine = ref(true)\n const isDirty = computed(() => !!(\n wrapInArray(model.value === '' ? null : model.value).length ||\n wrapInArray(validationModel.value === '' ? null : validationModel.value).length\n ))\n const isDisabled = computed(() => !!(props.disabled || form?.isDisabled.value))\n const isReadonly = computed(() => !!(props.readonly || form?.isReadonly.value))\n const errorMessages = computed(() => {\n return props.errorMessages.length\n ? wrapInArray(props.errorMessages).slice(0, Math.max(0, +props.maxErrors))\n : internalErrorMessages.value\n })\n const isValid = computed(() => {\n if (props.error || errorMessages.value.length) return false\n if (!props.rules.length) return true\n\n return isPristine.value ? null : true\n })\n const isValidating = ref(false)\n const validationClasses = computed(() => {\n return {\n [`${name}--error`]: isValid.value === false,\n [`${name}--dirty`]: isDirty.value,\n [`${name}--disabled`]: isDisabled.value,\n [`${name}--readonly`]: isReadonly.value,\n }\n })\n\n const uid = computed(() => props.name ?? unref(id))\n\n onBeforeMount(() => {\n form?.register({\n id: uid.value,\n validate,\n reset,\n resetValidation,\n })\n })\n\n onBeforeUnmount(() => {\n form?.unregister(uid.value)\n })\n\n const validateOn = computed(() => props.validateOn || form?.validateOn.value || 'input')\n\n // Set initial valid state, for inputs that might not have rules\n onMounted(() => form?.update(uid.value, isValid.value, errorMessages.value))\n\n useToggleScope(() => validateOn.value === 'input', () => {\n watch(validationModel, () => {\n if (validationModel.value != null) {\n validate()\n } else if (props.focused) {\n const unwatch = watch(() => props.focused, val => {\n if (!val) validate()\n\n unwatch()\n })\n }\n })\n })\n\n useToggleScope(() => validateOn.value === 'blur', () => {\n watch(() => props.focused, val => {\n if (!val) validate()\n })\n })\n\n watch(isValid, () => {\n form?.update(uid.value, isValid.value, errorMessages.value)\n })\n\n function reset () {\n resetValidation()\n model.value = null\n }\n\n function resetValidation () {\n isPristine.value = true\n internalErrorMessages.value = []\n }\n\n async function validate () {\n const results = []\n\n isValidating.value = true\n\n for (const rule of props.rules) {\n if (results.length >= +(props.maxErrors ?? 1)) {\n break\n }\n\n const handler = typeof rule === 'function' ? rule : () => rule\n const result = await handler(validationModel.value)\n\n if (result === true) continue\n\n if (typeof result !== 'string') {\n // eslint-disable-next-line no-console\n console.warn(`${result} is not a valid value. Rule functions must return boolean true or a string.`)\n\n continue\n }\n\n results.push(result)\n }\n\n internalErrorMessages.value = results\n isValidating.value = false\n isPristine.value = false\n\n return internalErrorMessages.value\n }\n\n return {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"validation.mjs","names":["useForm","useProxiedModel","useToggleScope","makeFocusProps","computed","onBeforeMount","onBeforeUnmount","onMounted","ref","shallowRef","unref","watch","getCurrentInstanceName","getUid","propsFactory","wrapInArray","makeValidationProps","disabled","Boolean","error","errorMessages","type","Array","String","default","maxErrors","Number","name","label","readonly","rules","modelValue","validateOn","validationValue","useValidation","props","arguments","length","undefined","id","model","validationModel","value","form","internalErrorMessages","isPristine","isDirty","isDisabled","isReadonly","slice","Math","max","isValid","isValidating","validationClasses","uid","register","validate","reset","resetValidation","unregister","update","focused","unwatch","val","results","rule","handler","result","console","warn","push"],"sources":["../../src/composables/validation.ts"],"sourcesContent":["// Composables\nimport { useForm } from '@/composables/form'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { makeFocusProps } from '@/composables/focus'\n\n// Utilities\nimport { computed, onBeforeMount, onBeforeUnmount, onMounted, ref, shallowRef, unref, watch } from 'vue'\nimport { getCurrentInstanceName, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport type ValidationResult = string | boolean\nexport type ValidationRule =\n | ValidationResult\n | PromiseLike<ValidationResult>\n | ((value: any) => ValidationResult)\n | ((value: any) => PromiseLike<ValidationResult>)\n\nexport interface ValidationProps {\n disabled: boolean\n error: boolean\n errorMessages: string | string[]\n focused: boolean\n maxErrors: string | number\n name: string | undefined\n label: string | undefined\n readonly: boolean\n rules: ValidationRule[]\n modelValue: any\n 'onUpdate:modelValue': ((val: any) => void) | undefined\n validateOn?: 'blur' | 'input' | 'submit'\n validationValue: any\n}\n\nexport const makeValidationProps = propsFactory({\n disabled: Boolean,\n error: Boolean,\n errorMessages: {\n type: [Array, String] as PropType<string | string[]>,\n default: () => ([]),\n },\n maxErrors: {\n type: [Number, String],\n default: 1,\n },\n name: String,\n label: String,\n readonly: Boolean,\n rules: {\n type: Array as PropType<ValidationRule[]>,\n default: () => ([]),\n },\n modelValue: null,\n validateOn: String as PropType<ValidationProps['validateOn']>,\n validationValue: null,\n\n ...makeFocusProps(),\n}, 'validation')\n\nexport function useValidation (\n props: ValidationProps,\n name = getCurrentInstanceName(),\n id: MaybeRef<string | number> = getUid(),\n) {\n const model = useProxiedModel(props, 'modelValue')\n const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue)\n const form = useForm()\n const internalErrorMessages = ref<string[]>([])\n const isPristine = shallowRef(true)\n const isDirty = computed(() => !!(\n wrapInArray(model.value === '' ? null : model.value).length ||\n wrapInArray(validationModel.value === '' ? null : validationModel.value).length\n ))\n const isDisabled = computed(() => !!(props.disabled || form?.isDisabled.value))\n const isReadonly = computed(() => !!(props.readonly || form?.isReadonly.value))\n const errorMessages = computed(() => {\n return props.errorMessages.length\n ? wrapInArray(props.errorMessages).slice(0, Math.max(0, +props.maxErrors))\n : internalErrorMessages.value\n })\n const isValid = computed(() => {\n if (props.error || errorMessages.value.length) return false\n if (!props.rules.length) return true\n\n return isPristine.value ? null : true\n })\n const isValidating = shallowRef(false)\n const validationClasses = computed(() => {\n return {\n [`${name}--error`]: isValid.value === false,\n [`${name}--dirty`]: isDirty.value,\n [`${name}--disabled`]: isDisabled.value,\n [`${name}--readonly`]: isReadonly.value,\n }\n })\n\n const uid = computed(() => props.name ?? unref(id))\n\n onBeforeMount(() => {\n form?.register({\n id: uid.value,\n validate,\n reset,\n resetValidation,\n })\n })\n\n onBeforeUnmount(() => {\n form?.unregister(uid.value)\n })\n\n const validateOn = computed(() => props.validateOn || form?.validateOn.value || 'input')\n\n // Set initial valid state, for inputs that might not have rules\n onMounted(() => form?.update(uid.value, isValid.value, errorMessages.value))\n\n useToggleScope(() => validateOn.value === 'input', () => {\n watch(validationModel, () => {\n if (validationModel.value != null) {\n validate()\n } else if (props.focused) {\n const unwatch = watch(() => props.focused, val => {\n if (!val) validate()\n\n unwatch()\n })\n }\n })\n })\n\n useToggleScope(() => validateOn.value === 'blur', () => {\n watch(() => props.focused, val => {\n if (!val) validate()\n })\n })\n\n watch(isValid, () => {\n form?.update(uid.value, isValid.value, errorMessages.value)\n })\n\n function reset () {\n resetValidation()\n model.value = null\n }\n\n function resetValidation () {\n isPristine.value = true\n internalErrorMessages.value = []\n }\n\n async function validate () {\n const results = []\n\n isValidating.value = true\n\n for (const rule of props.rules) {\n if (results.length >= +(props.maxErrors ?? 1)) {\n break\n }\n\n const handler = typeof rule === 'function' ? rule : () => rule\n const result = await handler(validationModel.value)\n\n if (result === true) continue\n\n if (typeof result !== 'string') {\n // eslint-disable-next-line no-console\n console.warn(`${result} is not a valid value. Rule functions must return boolean true or a string.`)\n\n continue\n }\n\n results.push(result)\n }\n\n internalErrorMessages.value = results\n isValidating.value = false\n isPristine.value = false\n\n return internalErrorMessages.value\n }\n\n return {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n }\n}\n"],"mappings":"AAAA;AAAA,SACSA,OAAO;AAAA,SACPC,eAAe;AAAA,SACfC,cAAc;AAAA,SACdC,cAAc,uBAEvB;AACA,SAASC,QAAQ,EAAEC,aAAa,EAAEC,eAAe,EAAEC,SAAS,EAAEC,GAAG,EAAEC,UAAU,EAAEC,KAAK,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC/FC,sBAAsB,EAAEC,MAAM,EAAEC,YAAY,EAAEC,WAAW,6BAElE;AA2BA,OAAO,MAAMC,mBAAmB,GAAGF,YAAY,CAAC;EAC9CG,QAAQ,EAAEC,OAAO;EACjBC,KAAK,EAAED,OAAO;EACdE,aAAa,EAAE;IACbC,IAAI,EAAE,CAACC,KAAK,EAAEC,MAAM,CAAgC;IACpDC,OAAO,EAAEA,CAAA,KAAO;EAClB,CAAC;EACDC,SAAS,EAAE;IACTJ,IAAI,EAAE,CAACK,MAAM,EAAEH,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX,CAAC;EACDG,IAAI,EAAEJ,MAAM;EACZK,KAAK,EAAEL,MAAM;EACbM,QAAQ,EAAEX,OAAO;EACjBY,KAAK,EAAE;IACLT,IAAI,EAAEC,KAAmC;IACzCE,OAAO,EAAEA,CAAA,KAAO;EAClB,CAAC;EACDO,UAAU,EAAE,IAAI;EAChBC,UAAU,EAAET,MAAiD;EAC7DU,eAAe,EAAE,IAAI;EAErB,GAAG9B,cAAc;AACnB,CAAC,EAAE,YAAY,CAAC;AAEhB,OAAO,SAAS+B,aAAaA,CAC3BC,KAAsB,EAGtB;EAAA,IAFAR,IAAI,GAAAS,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGxB,sBAAsB,EAAE;EAAA,IAC/B2B,EAA6B,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGvB,MAAM,EAAE;EAExC,MAAM2B,KAAK,GAAGvC,eAAe,CAACkC,KAAK,EAAE,YAAY,CAAC;EAClD,MAAMM,eAAe,GAAGrC,QAAQ,CAAC,MAAM+B,KAAK,CAACF,eAAe,KAAKK,SAAS,GAAGE,KAAK,CAACE,KAAK,GAAGP,KAAK,CAACF,eAAe,CAAC;EACjH,MAAMU,IAAI,GAAG3C,OAAO,EAAE;EACtB,MAAM4C,qBAAqB,GAAGpC,GAAG,CAAW,EAAE,CAAC;EAC/C,MAAMqC,UAAU,GAAGpC,UAAU,CAAC,IAAI,CAAC;EACnC,MAAMqC,OAAO,GAAG1C,QAAQ,CAAC,MAAM,CAAC,EAC9BW,WAAW,CAACyB,KAAK,CAACE,KAAK,KAAK,EAAE,GAAG,IAAI,GAAGF,KAAK,CAACE,KAAK,CAAC,CAACL,MAAM,IAC3DtB,WAAW,CAAC0B,eAAe,CAACC,KAAK,KAAK,EAAE,GAAG,IAAI,GAAGD,eAAe,CAACC,KAAK,CAAC,CAACL,MAAM,CAChF,CAAC;EACF,MAAMU,UAAU,GAAG3C,QAAQ,CAAC,MAAM,CAAC,EAAE+B,KAAK,CAAClB,QAAQ,IAAI0B,IAAI,EAAEI,UAAU,CAACL,KAAK,CAAC,CAAC;EAC/E,MAAMM,UAAU,GAAG5C,QAAQ,CAAC,MAAM,CAAC,EAAE+B,KAAK,CAACN,QAAQ,IAAIc,IAAI,EAAEK,UAAU,CAACN,KAAK,CAAC,CAAC;EAC/E,MAAMtB,aAAa,GAAGhB,QAAQ,CAAC,MAAM;IACnC,OAAO+B,KAAK,CAACf,aAAa,CAACiB,MAAM,GAC7BtB,WAAW,CAACoB,KAAK,CAACf,aAAa,CAAC,CAAC6B,KAAK,CAAC,CAAC,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE,CAAChB,KAAK,CAACV,SAAS,CAAC,CAAC,GACxEmB,qBAAqB,CAACF,KAAK;EACjC,CAAC,CAAC;EACF,MAAMU,OAAO,GAAGhD,QAAQ,CAAC,MAAM;IAC7B,IAAI+B,KAAK,CAAChB,KAAK,IAAIC,aAAa,CAACsB,KAAK,CAACL,MAAM,EAAE,OAAO,KAAK;IAC3D,IAAI,CAACF,KAAK,CAACL,KAAK,CAACO,MAAM,EAAE,OAAO,IAAI;IAEpC,OAAOQ,UAAU,CAACH,KAAK,GAAG,IAAI,GAAG,IAAI;EACvC,CAAC,CAAC;EACF,MAAMW,YAAY,GAAG5C,UAAU,CAAC,KAAK,CAAC;EACtC,MAAM6C,iBAAiB,GAAGlD,QAAQ,CAAC,MAAM;IACvC,OAAO;MACL,CAAE,GAAEuB,IAAK,SAAQ,GAAGyB,OAAO,CAACV,KAAK,KAAK,KAAK;MAC3C,CAAE,GAAEf,IAAK,SAAQ,GAAGmB,OAAO,CAACJ,KAAK;MACjC,CAAE,GAAEf,IAAK,YAAW,GAAGoB,UAAU,CAACL,KAAK;MACvC,CAAE,GAAEf,IAAK,YAAW,GAAGqB,UAAU,CAACN;IACpC,CAAC;EACH,CAAC,CAAC;EAEF,MAAMa,GAAG,GAAGnD,QAAQ,CAAC,MAAM+B,KAAK,CAACR,IAAI,IAAIjB,KAAK,CAAC6B,EAAE,CAAC,CAAC;EAEnDlC,aAAa,CAAC,MAAM;IAClBsC,IAAI,EAAEa,QAAQ,CAAC;MACbjB,EAAE,EAAEgB,GAAG,CAACb,KAAK;MACbe,QAAQ;MACRC,KAAK;MACLC;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFrD,eAAe,CAAC,MAAM;IACpBqC,IAAI,EAAEiB,UAAU,CAACL,GAAG,CAACb,KAAK,CAAC;EAC7B,CAAC,CAAC;EAEF,MAAMV,UAAU,GAAG5B,QAAQ,CAAC,MAAM+B,KAAK,CAACH,UAAU,IAAIW,IAAI,EAAEX,UAAU,CAACU,KAAK,IAAI,OAAO,CAAC;;EAExF;EACAnC,SAAS,CAAC,MAAMoC,IAAI,EAAEkB,MAAM,CAACN,GAAG,CAACb,KAAK,EAAEU,OAAO,CAACV,KAAK,EAAEtB,aAAa,CAACsB,KAAK,CAAC,CAAC;EAE5ExC,cAAc,CAAC,MAAM8B,UAAU,CAACU,KAAK,KAAK,OAAO,EAAE,MAAM;IACvD/B,KAAK,CAAC8B,eAAe,EAAE,MAAM;MAC3B,IAAIA,eAAe,CAACC,KAAK,IAAI,IAAI,EAAE;QACjCe,QAAQ,EAAE;MACZ,CAAC,MAAM,IAAItB,KAAK,CAAC2B,OAAO,EAAE;QACxB,MAAMC,OAAO,GAAGpD,KAAK,CAAC,MAAMwB,KAAK,CAAC2B,OAAO,EAAEE,GAAG,IAAI;UAChD,IAAI,CAACA,GAAG,EAAEP,QAAQ,EAAE;UAEpBM,OAAO,EAAE;QACX,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF7D,cAAc,CAAC,MAAM8B,UAAU,CAACU,KAAK,KAAK,MAAM,EAAE,MAAM;IACtD/B,KAAK,CAAC,MAAMwB,KAAK,CAAC2B,OAAO,EAAEE,GAAG,IAAI;MAChC,IAAI,CAACA,GAAG,EAAEP,QAAQ,EAAE;IACtB,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF9C,KAAK,CAACyC,OAAO,EAAE,MAAM;IACnBT,IAAI,EAAEkB,MAAM,CAACN,GAAG,CAACb,KAAK,EAAEU,OAAO,CAACV,KAAK,EAAEtB,aAAa,CAACsB,KAAK,CAAC;EAC7D,CAAC,CAAC;EAEF,SAASgB,KAAKA,CAAA,EAAI;IAChBC,eAAe,EAAE;IACjBnB,KAAK,CAACE,KAAK,GAAG,IAAI;EACpB;EAEA,SAASiB,eAAeA,CAAA,EAAI;IAC1Bd,UAAU,CAACH,KAAK,GAAG,IAAI;IACvBE,qBAAqB,CAACF,KAAK,GAAG,EAAE;EAClC;EAEA,eAAee,QAAQA,CAAA,EAAI;IACzB,MAAMQ,OAAO,GAAG,EAAE;IAElBZ,YAAY,CAACX,KAAK,GAAG,IAAI;IAEzB,KAAK,MAAMwB,IAAI,IAAI/B,KAAK,CAACL,KAAK,EAAE;MAC9B,IAAImC,OAAO,CAAC5B,MAAM,IAAI,EAAEF,KAAK,CAACV,SAAS,IAAI,CAAC,CAAC,EAAE;QAC7C;MACF;MAEA,MAAM0C,OAAO,GAAG,OAAOD,IAAI,KAAK,UAAU,GAAGA,IAAI,GAAG,MAAMA,IAAI;MAC9D,MAAME,MAAM,GAAG,MAAMD,OAAO,CAAC1B,eAAe,CAACC,KAAK,CAAC;MAEnD,IAAI0B,MAAM,KAAK,IAAI,EAAE;MAErB,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;QAC9B;QACAC,OAAO,CAACC,IAAI,CAAE,GAAEF,MAAO,6EAA4E,CAAC;QAEpG;MACF;MAEAH,OAAO,CAACM,IAAI,CAACH,MAAM,CAAC;IACtB;IAEAxB,qBAAqB,CAACF,KAAK,GAAGuB,OAAO;IACrCZ,YAAY,CAACX,KAAK,GAAG,KAAK;IAC1BG,UAAU,CAACH,KAAK,GAAG,KAAK;IAExB,OAAOE,qBAAqB,CAACF,KAAK;EACpC;EAEA,OAAO;IACLtB,aAAa;IACb0B,OAAO;IACPC,UAAU;IACVC,UAAU;IACVH,UAAU;IACVO,OAAO;IACPC,YAAY;IACZK,KAAK;IACLC,eAAe;IACfF,QAAQ;IACRH;EACF,CAAC;AACH"}
@@ -62,7 +62,7 @@ export const ClickOutside = {
62
62
  });
63
63
  if (!el._clickOutside) {
64
64
  el._clickOutside = {
65
- lastMousedownWasOutside: true
65
+ lastMousedownWasOutside: false
66
66
  };
67
67
  }
68
68
  el._clickOutside[binding.instance.$.uid] = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["attachedRoot","defaultConditional","checkEvent","e","el","binding","checkIsActive","root","ShadowRoot","host","target","elements","value","include","push","some","contains","isActive","closeConditional","directive","handler","_clickOutside","lastMousedownWasOutside","setTimeout","handleShadow","callback","document","ClickOutside","mounted","onClick","onMousedown","app","addEventListener","instance","$","uid","unmounted","removeEventListener"],"sources":["../../../src/directives/click-outside/index.ts"],"sourcesContent":["import { attachedRoot } from '@/util'\nimport type { DirectiveBinding } from 'vue'\n\ninterface ClickOutsideBindingArgs {\n handler: (e: MouseEvent) => void\n closeConditional?: (e: Event) => boolean\n include?: () => HTMLElement[]\n}\n\ninterface ClickOutsideDirectiveBinding extends DirectiveBinding {\n value: ((e: MouseEvent) => void) | ClickOutsideBindingArgs\n}\n\nfunction defaultConditional () {\n return true\n}\n\nfunction checkEvent (e: MouseEvent, el: HTMLElement, binding: ClickOutsideDirectiveBinding): boolean {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el)\n if (\n typeof ShadowRoot !== 'undefined' &&\n root instanceof ShadowRoot &&\n root.host === e.target\n ) return false\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))()\n // Add the root element for the component this directive was defined on\n elements.push(el)\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el?.contains(e.target as Node))\n}\n\nfunction checkIsActive (e: MouseEvent, binding: ClickOutsideDirectiveBinding): boolean | void {\n const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional\n\n return isActive(e)\n}\n\nfunction directive (e: MouseEvent, el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value.handler\n\n el._clickOutside!.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e)\n }, 0)\n}\n\nfunction handleShadow (el: HTMLElement, callback: Function): void {\n const root = attachedRoot(el)\n\n callback(document)\n\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) {\n callback(root)\n }\n}\n\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n mounted (el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n const onClick = (e: Event) => directive(e as MouseEvent, el, binding)\n const onMousedown = (e: Event) => {\n el._clickOutside!.lastMousedownWasOutside = checkEvent(e as MouseEvent, el, binding)\n }\n\n handleShadow(el, (app: HTMLElement) => {\n app.addEventListener('click', onClick, true)\n app.addEventListener('mousedown', onMousedown, true)\n })\n\n if (!el._clickOutside) {\n el._clickOutside = {\n lastMousedownWasOutside: true,\n }\n }\n\n el._clickOutside[binding.instance!.$.uid] = {\n onClick,\n onMousedown,\n }\n },\n\n unmounted (el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n if (!el._clickOutside) return\n\n handleShadow(el, (app: HTMLElement) => {\n if (!app || !el._clickOutside?.[binding.instance!.$.uid]) return\n\n const { onClick, onMousedown } = el._clickOutside[binding.instance!.$.uid]!\n\n app.removeEventListener('click', onClick, true)\n app.removeEventListener('mousedown', onMousedown, true)\n })\n\n delete el._clickOutside[binding.instance!.$.uid]\n },\n}\n\nexport default ClickOutside\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["attachedRoot","defaultConditional","checkEvent","e","el","binding","checkIsActive","root","ShadowRoot","host","target","elements","value","include","push","some","contains","isActive","closeConditional","directive","handler","_clickOutside","lastMousedownWasOutside","setTimeout","handleShadow","callback","document","ClickOutside","mounted","onClick","onMousedown","app","addEventListener","instance","$","uid","unmounted","removeEventListener"],"sources":["../../../src/directives/click-outside/index.ts"],"sourcesContent":["import { attachedRoot } from '@/util'\nimport type { DirectiveBinding } from 'vue'\n\ninterface ClickOutsideBindingArgs {\n handler: (e: MouseEvent) => void\n closeConditional?: (e: Event) => boolean\n include?: () => HTMLElement[]\n}\n\ninterface ClickOutsideDirectiveBinding extends DirectiveBinding {\n value: ((e: MouseEvent) => void) | ClickOutsideBindingArgs\n}\n\nfunction defaultConditional () {\n return true\n}\n\nfunction checkEvent (e: MouseEvent, el: HTMLElement, binding: ClickOutsideDirectiveBinding): boolean {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el)\n if (\n typeof ShadowRoot !== 'undefined' &&\n root instanceof ShadowRoot &&\n root.host === e.target\n ) return false\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))()\n // Add the root element for the component this directive was defined on\n elements.push(el)\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el?.contains(e.target as Node))\n}\n\nfunction checkIsActive (e: MouseEvent, binding: ClickOutsideDirectiveBinding): boolean | void {\n const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional\n\n return isActive(e)\n}\n\nfunction directive (e: MouseEvent, el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value.handler\n\n el._clickOutside!.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e)\n }, 0)\n}\n\nfunction handleShadow (el: HTMLElement, callback: Function): void {\n const root = attachedRoot(el)\n\n callback(document)\n\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) {\n callback(root)\n }\n}\n\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n mounted (el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n const onClick = (e: Event) => directive(e as MouseEvent, el, binding)\n const onMousedown = (e: Event) => {\n el._clickOutside!.lastMousedownWasOutside = checkEvent(e as MouseEvent, el, binding)\n }\n\n handleShadow(el, (app: HTMLElement) => {\n app.addEventListener('click', onClick, true)\n app.addEventListener('mousedown', onMousedown, true)\n })\n\n if (!el._clickOutside) {\n el._clickOutside = {\n lastMousedownWasOutside: false,\n }\n }\n\n el._clickOutside[binding.instance!.$.uid] = {\n onClick,\n onMousedown,\n }\n },\n\n unmounted (el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n if (!el._clickOutside) return\n\n handleShadow(el, (app: HTMLElement) => {\n if (!app || !el._clickOutside?.[binding.instance!.$.uid]) return\n\n const { onClick, onMousedown } = el._clickOutside[binding.instance!.$.uid]!\n\n app.removeEventListener('click', onClick, true)\n app.removeEventListener('mousedown', onMousedown, true)\n })\n\n delete el._clickOutside[binding.instance!.$.uid]\n },\n}\n\nexport default ClickOutside\n"],"mappings":"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"}
@@ -10,7 +10,7 @@ export const createVuetify = function () {
10
10
  ...options
11
11
  });
12
12
  };
13
- export const version = "4.0.0-dev-20230511.0";
13
+ export const version = "4.0.0-dev-20230512.0";
14
14
  createVuetify.version = version;
15
15
  export { components, directives };
16
16
  export * from "./composables/index.mjs";
package/lib/framework.mjs CHANGED
@@ -94,7 +94,7 @@ export function createVuetify() {
94
94
  date
95
95
  };
96
96
  }
97
- export const version = "4.0.0-dev-20230511.0";
97
+ export const version = "4.0.0-dev-20230512.0";
98
98
  createVuetify.version = version;
99
99
 
100
100
  // Vue's inject() can only be used in setup
package/lib/index.d.mts CHANGED
@@ -181,9 +181,7 @@ interface DateInstance extends DateAdapter<Date> {
181
181
  locale: string;
182
182
  }
183
183
  type DateOptions = {
184
- adapter: {
185
- new (locale: string): DateInstance;
186
- };
184
+ adapter: (new (locale: string) => DateInstance) | DateInstance;
187
185
  };
188
186
 
189
187
  type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
@@ -315,8 +313,7 @@ export { Blueprint, DateInstance, DateOptions, DefaultsInstance, DisplayBreakpoi
315
313
 
316
314
  import type { ComponentPublicInstance, FunctionalComponent, UnwrapNestedRefs, VNodeChild } from 'vue'
317
315
 
318
- // @skip-build
319
- import type { DateOptions } from './labs'
316
+
320
317
 
321
318
  declare global {
322
319
  namespace JSX {
@@ -487,5 +484,13 @@ declare module '@vue/runtime-core' {
487
484
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
488
485
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
489
486
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
487
+ VDataTable: typeof import('vuetify/labs/components')['VDataTable']
488
+ VDataTableRows: typeof import('vuetify/labs/components')['VDataTableRows']
489
+ VDataTableRow: typeof import('vuetify/labs/components')['VDataTableRow']
490
+ VDataTableVirtual: typeof import('vuetify/labs/components')['VDataTableVirtual']
491
+ VDataTableServer: typeof import('vuetify/labs/components')['VDataTableServer']
492
+ VDataTableFooter: typeof import('vuetify/labs/components')['VDataTableFooter']
493
+ VInfiniteScroll: typeof import('vuetify/labs/components')['VInfiniteScroll']
494
+ VSkeletonLoader: typeof import('vuetify/labs/components')['VSkeletonLoader']
490
495
  }
491
496
  }
@@ -1,56 +1,46 @@
1
- import { createVNode as _createVNode, resolveDirective as _resolveDirective, Fragment as _Fragment } from "vue";
1
+ import { mergeProps as _mergeProps, createVNode as _createVNode, resolveDirective as _resolveDirective, Fragment as _Fragment } from "vue";
2
2
  // Styles
3
3
  import "./VDataTable.css";
4
4
 
5
5
  // Components
6
- import { VTable } from "../../components/VTable/index.mjs";
7
- import { VDataTableHeaders } from "./VDataTableHeaders.mjs";
8
- import { VDataTableRows } from "./VDataTableRows.mjs";
9
- import { VDataTableFooter } from "./VDataTableFooter.mjs"; // Composables
10
- import { makeDataTableItemProps, useDataTableItems } from "./composables/items.mjs";
11
- import { createHeaders, makeDataTableHeaderProps } from "./composables/headers.mjs";
12
- import { createSort, makeDataTableSortProps, provideSort, useSortedItems } from "./composables/sort.mjs";
6
+ import { makeVDataTableFooterProps, VDataTableFooter } from "./VDataTableFooter.mjs";
7
+ import { makeVDataTableHeadersProps, VDataTableHeaders } from "./VDataTableHeaders.mjs";
8
+ import { makeVDataTableRowsProps, VDataTableRows } from "./VDataTableRows.mjs";
9
+ import { makeVTableProps, VTable } from "../../components/VTable/VTable.mjs"; // Composables
13
10
  import { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from "./composables/group.mjs";
11
+ import { createHeaders, makeDataTableHeaderProps } from "./composables/headers.mjs";
14
12
  import { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from "./composables/paginate.mjs";
15
- import { makeDataTableSelectProps, provideSelection } from "./composables/select.mjs";
13
+ import { createSort, makeDataTableSortProps, provideSort, useSortedItems } from "./composables/sort.mjs";
16
14
  import { makeDataTableExpandProps, provideExpanded } from "./composables/expand.mjs";
17
- import { useOptions } from "./composables/options.mjs";
18
- import { provideDefaults } from "../../composables/defaults.mjs"; // Utilities
15
+ import { makeDataTableItemProps, useDataTableItems } from "./composables/items.mjs";
16
+ import { makeDataTableSelectProps, provideSelection } from "./composables/select.mjs";
17
+ import { makeFilterProps, useFilter } from "../../composables/filter.mjs";
18
+ import { provideDefaults } from "../../composables/defaults.mjs";
19
+ import { useOptions } from "./composables/options.mjs"; // Utilities
19
20
  import { computed, toRef } from 'vue';
20
- import { genericComponent, propsFactory, useRender } from "../../util/index.mjs";
21
- import { makeFilterProps, useFilter } from "../../composables/filter.mjs"; // Types
22
- export const makeVDataTableProps = propsFactory({
23
- ...makeDataTableItemProps(),
24
- ...makeDataTableHeaderProps(),
25
- hideNoData: Boolean,
26
- hover: Boolean,
27
- noDataText: {
28
- type: String,
29
- default: '$vuetify.noDataText'
30
- },
31
- height: [String, Number],
21
+ import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
22
+ export const makeDataTableProps = propsFactory({
23
+ ...makeVDataTableRowsProps(),
32
24
  width: [String, Number],
33
- fixedHeader: Boolean,
34
- fixedFooter: Boolean,
35
- loading: [Boolean, String],
36
- loadingText: {
37
- type: String,
38
- default: '$vuetify.dataIterator.loadingText'
39
- },
40
- 'onClick:row': Function,
41
- search: String
25
+ search: String,
26
+ ...makeDataTableExpandProps(),
27
+ ...makeDataTableGroupProps(),
28
+ ...makeDataTableHeaderProps(),
29
+ ...makeDataTableItemProps(),
30
+ ...makeDataTableSelectProps(),
31
+ ...makeDataTableSortProps(),
32
+ ...makeVDataTableHeadersProps(),
33
+ ...makeVTableProps()
34
+ }, 'data-table');
35
+ export const makeVDataTableProps = propsFactory({
36
+ ...makeDataTablePaginateProps(),
37
+ ...makeDataTableProps(),
38
+ ...makeFilterProps(),
39
+ ...makeVDataTableFooterProps()
42
40
  }, 'v-data-table');
43
41
  export const VDataTable = genericComponent()({
44
42
  name: 'VDataTable',
45
- props: {
46
- ...makeVDataTableProps(),
47
- ...makeDataTableExpandProps(),
48
- ...makeDataTableGroupProps(),
49
- ...makeDataTableSelectProps(),
50
- ...makeDataTableSortProps(),
51
- ...makeDataTablePaginateProps(),
52
- ...makeFilterProps()
53
- },
43
+ props: makeVDataTableProps(),
54
44
  emits: {
55
45
  'update:modelValue': value => true,
56
46
  'update:page': value => true,
@@ -149,31 +139,29 @@ export const VDataTable = genericComponent()({
149
139
  loadingText: toRef(props, 'loadingText')
150
140
  }
151
141
  });
152
- useRender(() => _createVNode(VTable, {
153
- "class": ['v-data-table', {
154
- 'v-data-table--show-select': props.showSelect,
155
- 'v-data-table--loading': props.loading
156
- }],
157
- "fixedHeader": props.fixedHeader,
158
- "fixedFooter": props.fixedFooter,
159
- "height": props.height,
160
- "hover": props.hover
161
- }, {
162
- top: slots.top,
163
- default: slots.default ?? (() => _createVNode(_Fragment, null, [slots.colgroup?.({
164
- columns
165
- }), _createVNode("thead", null, [_createVNode(VDataTableHeaders, {
166
- "sticky": props.fixedHeader,
167
- "loading": props.loading,
168
- "multiSort": props.multiSort
169
- }, slots)]), slots.thead?.(), _createVNode("tbody", null, [slots.body ? slots.body() : _createVNode(VDataTableRows, {
170
- "items": paginatedItems.value,
171
- "onClick:row": props['onClick:row']
172
- }, slots)]), slots.tbody?.(), slots.tfoot?.()])),
173
- bottom: slots.bottom ?? (() => _createVNode(VDataTableFooter, null, {
174
- prepend: slots['footer.prepend']
175
- }))
176
- }));
142
+ useRender(() => {
143
+ const [dataTableFooterProps] = VDataTableFooter.filterProps(props);
144
+ const [dataTableHeadersProps] = VDataTableHeaders.filterProps(props);
145
+ const [dataTableRowsProps] = VDataTableRows.filterProps(props);
146
+ const [tableProps] = VTable.filterProps(props);
147
+ return _createVNode(VTable, _mergeProps({
148
+ "class": ['v-data-table', {
149
+ 'v-data-table--show-select': props.showSelect,
150
+ 'v-data-table--loading': props.loading
151
+ }, props.class],
152
+ "style": props.style
153
+ }, tableProps), {
154
+ top: slots.top,
155
+ default: slots.default ?? (() => _createVNode(_Fragment, null, [slots.colgroup?.({
156
+ columns
157
+ }), _createVNode("thead", null, [_createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(), _createVNode("tbody", null, [slots.body ? slots.body() : _createVNode(VDataTableRows, _mergeProps(dataTableRowsProps, {
158
+ "items": paginatedItems.value
159
+ }), slots)]), slots.tbody?.(), slots.tfoot?.()])),
160
+ bottom: slots.bottom ?? (() => _createVNode(VDataTableFooter, dataTableFooterProps, {
161
+ prepend: slots['footer.prepend']
162
+ }))
163
+ });
164
+ });
177
165
  return {};
178
166
  }
179
167
  });
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTable.mjs","names":["VTable","VDataTableHeaders","VDataTableRows","VDataTableFooter","makeDataTableItemProps","useDataTableItems","createHeaders","makeDataTableHeaderProps","createSort","makeDataTableSortProps","provideSort","useSortedItems","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createPagination","makeDataTablePaginateProps","providePagination","usePaginatedItems","makeDataTableSelectProps","provideSelection","makeDataTableExpandProps","provideExpanded","useOptions","provideDefaults","computed","toRef","genericComponent","propsFactory","useRender","makeFilterProps","useFilter","makeVDataTableProps","hideNoData","Boolean","hover","noDataText","type","String","default","height","Number","width","fixedHeader","fixedFooter","loading","loadingText","Function","search","VDataTable","name","props","emits","value","setup","_ref","emit","slots","groupBy","sortBy","multiSort","mustSort","page","itemsPerPage","columns","showSelect","showExpand","items","filterKeys","map","c","key","filteredItems","sortByWithGroups","opened","extractRows","sortedItems","flatItems","itemsLength","length","startIndex","stopIndex","paginatedItems","paginatedItemsWithoutGroups","_createVNode","top","_Fragment","colgroup","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTable.tsx"],"sourcesContent":["// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VDataTableFooter } from './VDataTableFooter'\n\n// Composables\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from './composables/sort'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from './composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { useOptions } from './composables/options'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DataTableItem, InternalDataTableHeader } from './types'\n\nexport type VDataTableSlots = VDataTableRowsSlots & {\n colgroup: [InternalDataTableHeader]\n default: []\n top: []\n headers: []\n body: []\n tbody: []\n thead: []\n tfoot: []\n bottom: []\n 'footer.prepend': []\n}\n\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTableItemProps(),\n ...makeDataTableHeaderProps(),\n hideNoData: Boolean,\n hover: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n height: [String, Number],\n width: [String, Number],\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n 'onClick:row': Function as PropType<(e: Event, value: { item: DataTableItem }) => void>,\n search: String,\n}, 'v-data-table')\n\nexport const VDataTable = genericComponent<VDataTableSlots>()({\n name: 'VDataTable',\n\n props: {\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n ...makeFilterProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key))\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter<DataTableItem>(props, items, search, { filterKeys })\n\n provideSort({ sortBy, multiSort, mustSort, page })\n const { sortByWithGroups, opened, extractRows } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n const itemsLength = computed(() => flatItems.value.length)\n\n const { startIndex, stopIndex } = providePagination({ page, itemsPerPage, itemsLength })\n const { paginatedItems } = usePaginatedItems({ items: flatItems, startIndex, stopIndex, itemsPerPage })\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n provideSelection(props, paginatedItemsWithoutGroups)\n\n provideExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n useRender(() => (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--show-select': props.showSelect,\n 'v-data-table--loading': props.loading,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n hover={ props.hover }\n >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n { slots.colgroup?.({ columns }) }\n <thead>\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n loading={ props.loading }\n multiSort={ props.multiSort }\n v-slots={ slots }\n />\n </thead>\n { slots.thead?.() }\n <tbody>\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ paginatedItems.value }\n onClick:row={ props['onClick:row'] }\n v-slots={ slots }\n />\n )}\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n ))\n\n return {}\n },\n})\n\nexport type VDataTable = InstanceType<typeof VDataTable>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTable.mjs","names":["makeVDataTableFooterProps","VDataTableFooter","makeVDataTableHeadersProps","VDataTableHeaders","makeVDataTableRowsProps","VDataTableRows","makeVTableProps","VTable","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createHeaders","makeDataTableHeaderProps","createPagination","makeDataTablePaginateProps","providePagination","usePaginatedItems","createSort","makeDataTableSortProps","provideSort","useSortedItems","makeDataTableExpandProps","provideExpanded","makeDataTableItemProps","useDataTableItems","makeDataTableSelectProps","provideSelection","makeFilterProps","useFilter","provideDefaults","useOptions","computed","toRef","genericComponent","propsFactory","useRender","makeDataTableProps","width","String","Number","search","makeVDataTableProps","VDataTable","name","props","emits","value","setup","_ref","emit","slots","groupBy","sortBy","multiSort","mustSort","page","itemsPerPage","columns","showSelect","showExpand","items","filterKeys","map","c","key","filteredItems","sortByWithGroups","opened","extractRows","sortedItems","flatItems","itemsLength","length","startIndex","stopIndex","paginatedItems","paginatedItemsWithoutGroups","hideNoData","noDataText","loading","loadingText","dataTableFooterProps","filterProps","dataTableHeadersProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","top","default","_Fragment","colgroup","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTable.tsx"],"sourcesContent":["// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { makeVDataTableFooterProps, VDataTableFooter } from './VDataTableFooter'\nimport { makeVDataTableHeadersProps, VDataTableHeaders } from './VDataTableHeaders'\nimport { makeVDataTableRowsProps, VDataTableRows } from './VDataTableRows'\nimport { makeVTableProps, VTable } from '@/components/VTable/VTable'\n\n// Composables\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from './composables/paginate'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from './composables/sort'\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useOptions } from './composables/options'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { DataTableItem, InternalDataTableHeader } from './types'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\n\nexport type VDataTableSlots = VDataTableRowsSlots & {\n colgroup: [{ columns: Ref<InternalDataTableHeader[]> }]\n default: []\n top: []\n headers: []\n body: []\n tbody: []\n thead: []\n tfoot: []\n bottom: []\n 'footer.prepend': []\n}\n\nexport const makeDataTableProps = propsFactory({\n ...makeVDataTableRowsProps(),\n\n width: [String, Number],\n search: String,\n\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeVDataTableHeadersProps(),\n ...makeVTableProps(),\n}, 'data-table')\n\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeFilterProps(),\n ...makeVDataTableFooterProps(),\n}, 'v-data-table')\n\nexport const VDataTable = genericComponent<VDataTableSlots>()({\n name: 'VDataTable',\n\n props: makeVDataTableProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key))\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter<DataTableItem>(props, items, search, { filterKeys })\n\n provideSort({ sortBy, multiSort, mustSort, page })\n const { sortByWithGroups, opened, extractRows } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n const itemsLength = computed(() => flatItems.value.length)\n\n const { startIndex, stopIndex } = providePagination({ page, itemsPerPage, itemsLength })\n const { paginatedItems } = usePaginatedItems({ items: flatItems, startIndex, stopIndex, itemsPerPage })\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n provideSelection(props, paginatedItemsWithoutGroups)\n\n provideExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\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--show-select': props.showSelect,\n 'v-data-table--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n { ...tableProps }\n >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n { slots.colgroup?.({ columns }) }\n <thead>\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n v-slots={ slots }\n />\n </thead>\n { slots.thead?.() }\n <tbody>\n { slots.body ? slots.body() : (\n <VDataTableRows\n { ...dataTableRowsProps }\n items={ paginatedItems.value }\n v-slots={ slots }\n />\n )}\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n { ...dataTableFooterProps }\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n )\n })\n\n return {}\n },\n})\n\nexport type VDataTable = InstanceType<typeof VDataTable>\n"],"mappings":"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"}
@@ -8,71 +8,72 @@ import { VSelect } from "../../components/VSelect/index.mjs"; // Composables
8
8
  import { useLocale } from "../../composables/locale.mjs";
9
9
  import { usePagination } from "./composables/paginate.mjs"; // Utilities
10
10
  import { computed } from 'vue';
11
- import { genericComponent } from "../../util/index.mjs"; // Types
11
+ import { genericComponent, propsFactory } from "../../util/index.mjs"; // Types
12
+ export const makeVDataTableFooterProps = propsFactory({
13
+ prevIcon: {
14
+ type: String,
15
+ default: '$prev'
16
+ },
17
+ nextIcon: {
18
+ type: String,
19
+ default: '$next'
20
+ },
21
+ firstIcon: {
22
+ type: String,
23
+ default: '$first'
24
+ },
25
+ lastIcon: {
26
+ type: String,
27
+ default: '$last'
28
+ },
29
+ itemsPerPageText: {
30
+ type: String,
31
+ default: '$vuetify.dataFooter.itemsPerPageText'
32
+ },
33
+ pageText: {
34
+ type: String,
35
+ default: '$vuetify.dataFooter.pageText'
36
+ },
37
+ firstPageLabel: {
38
+ type: String,
39
+ default: '$vuetify.dataFooter.firstPage'
40
+ },
41
+ prevPageLabel: {
42
+ type: String,
43
+ default: '$vuetify.dataFooter.prevPage'
44
+ },
45
+ nextPageLabel: {
46
+ type: String,
47
+ default: '$vuetify.dataFooter.nextPage'
48
+ },
49
+ lastPageLabel: {
50
+ type: String,
51
+ default: '$vuetify.dataFooter.lastPage'
52
+ },
53
+ itemsPerPageOptions: {
54
+ type: Array,
55
+ default: () => [{
56
+ value: 10,
57
+ title: '10'
58
+ }, {
59
+ value: 25,
60
+ title: '25'
61
+ }, {
62
+ value: 50,
63
+ title: '50'
64
+ }, {
65
+ value: 100,
66
+ title: '100'
67
+ }, {
68
+ value: -1,
69
+ title: '$vuetify.dataFooter.itemsPerPageAll'
70
+ }]
71
+ },
72
+ showCurrentPage: Boolean
73
+ }, 'v-data-table-footer');
12
74
  export const VDataTableFooter = genericComponent()({
13
75
  name: 'VDataTableFooter',
14
- props: {
15
- prevIcon: {
16
- type: String,
17
- default: '$prev'
18
- },
19
- nextIcon: {
20
- type: String,
21
- default: '$next'
22
- },
23
- firstIcon: {
24
- type: String,
25
- default: '$first'
26
- },
27
- lastIcon: {
28
- type: String,
29
- default: '$last'
30
- },
31
- itemsPerPageText: {
32
- type: String,
33
- default: '$vuetify.dataFooter.itemsPerPageText'
34
- },
35
- pageText: {
36
- type: String,
37
- default: '$vuetify.dataFooter.pageText'
38
- },
39
- firstPageLabel: {
40
- type: String,
41
- default: '$vuetify.dataFooter.firstPage'
42
- },
43
- prevPageLabel: {
44
- type: String,
45
- default: '$vuetify.dataFooter.prevPage'
46
- },
47
- nextPageLabel: {
48
- type: String,
49
- default: '$vuetify.dataFooter.nextPage'
50
- },
51
- lastPageLabel: {
52
- type: String,
53
- default: '$vuetify.dataFooter.lastPage'
54
- },
55
- itemsPerPageOptions: {
56
- type: Array,
57
- default: () => [{
58
- value: 10,
59
- title: '10'
60
- }, {
61
- value: 25,
62
- title: '25'
63
- }, {
64
- value: 50,
65
- title: '50'
66
- }, {
67
- value: 100,
68
- title: '100'
69
- }, {
70
- value: -1,
71
- title: '$vuetify.dataFooter.itemsPerPageAll'
72
- }]
73
- },
74
- showCurrentPage: Boolean
75
- },
76
+ props: makeVDataTableFooterProps(),
76
77
  setup(props, _ref) {
77
78
  let {
78
79
  slots
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableFooter.mjs","names":["VBtn","VSelect","useLocale","usePagination","computed","genericComponent","VDataTableFooter","name","props","prevIcon","type","String","default","nextIcon","firstIcon","lastIcon","itemsPerPageText","pageText","firstPageLabel","prevPageLabel","nextPageLabel","lastPageLabel","itemsPerPageOptions","Array","value","title","showCurrentPage","Boolean","setup","_ref","slots","t","page","pageCount","startIndex","stopIndex","itemsLength","itemsPerPage","setItemsPerPage","map","option","_createVNode","prepend","v","Number","onClick","Math","max","min"],"sources":["../../../src/labs/VDataTable/VDataTableFooter.tsx"],"sourcesContent":["// Styles\nimport './VDataTableFooter.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\nimport { usePagination } from './composables/paginate'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VDataTableFooter = genericComponent<{ prepend: [] }>()({\n name: 'VDataTableFooter',\n\n props: {\n prevIcon: {\n type: String,\n default: '$prev',\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n firstIcon: {\n type: String,\n default: '$first',\n },\n lastIcon: {\n type: String,\n default: '$last',\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText',\n },\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText',\n },\n firstPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.firstPage',\n },\n prevPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.prevPage',\n },\n nextPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.nextPage',\n },\n lastPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.lastPage',\n },\n itemsPerPageOptions: {\n type: Array as PropType<{ title: string, value: number }[]>,\n default: () => ([\n { value: 10, title: '10' },\n { value: 25, title: '25' },\n { value: 50, title: '50' },\n { value: 100, title: '100' },\n { value: -1, title: '$vuetify.dataFooter.itemsPerPageAll' },\n ]),\n },\n showCurrentPage: Boolean,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { page, pageCount, startIndex, stopIndex, itemsLength, itemsPerPage, setItemsPerPage } = usePagination()\n\n const itemsPerPageOptions = computed(() => (\n props.itemsPerPageOptions.map(option => ({\n ...option,\n title: t(option.title),\n }))\n ))\n\n return () => (\n <div\n class=\"v-data-table-footer\"\n >\n { slots.prepend?.() }\n <div class=\"v-data-table-footer__items-per-page\">\n <span>{ t(props.itemsPerPageText) }</span>\n <VSelect\n items={ itemsPerPageOptions.value }\n modelValue={ itemsPerPage.value }\n onUpdate:modelValue={ v => setItemsPerPage(Number(v)) }\n density=\"compact\"\n variant=\"outlined\"\n hide-details\n />\n </div>\n <div class=\"v-data-table-footer__info\">\n <div>\n { t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value) }\n </div>\n </div>\n <div class=\"v-data-table-footer__pagination\">\n <VBtn\n icon={ props.firstIcon }\n variant=\"plain\"\n onClick={ () => page.value = 1 }\n disabled={ page.value === 1 }\n aria-label={ t(props.firstPageLabel) }\n />\n <VBtn\n icon={ props.prevIcon }\n variant=\"plain\"\n onClick={ () => page.value = Math.max(1, page.value - 1) }\n disabled={ page.value === 1 }\n aria-label={ t(props.prevPageLabel) }\n />\n { props.showCurrentPage && (\n <span key=\"page\" class=\"v-data-table-footer__page\">{ page.value }</span>\n )}\n <VBtn\n icon={ props.nextIcon }\n variant=\"plain\"\n onClick={ () => page.value = Math.min(pageCount.value, page.value + 1) }\n disabled={ page.value === pageCount.value }\n aria-label={ t(props.nextPageLabel) }\n />\n <VBtn\n icon={ props.lastIcon }\n variant=\"plain\"\n onClick={ () => page.value = pageCount.value }\n disabled={ page.value === pageCount.value }\n aria-label={ t(props.lastPageLabel) }\n />\n </div>\n </div>\n )\n },\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTableFooter.mjs","names":["VBtn","VSelect","useLocale","usePagination","computed","genericComponent","propsFactory","makeVDataTableFooterProps","prevIcon","type","String","default","nextIcon","firstIcon","lastIcon","itemsPerPageText","pageText","firstPageLabel","prevPageLabel","nextPageLabel","lastPageLabel","itemsPerPageOptions","Array","value","title","showCurrentPage","Boolean","VDataTableFooter","name","props","setup","_ref","slots","t","page","pageCount","startIndex","stopIndex","itemsLength","itemsPerPage","setItemsPerPage","map","option","_createVNode","prepend","v","Number","onClick","Math","max","min"],"sources":["../../../src/labs/VDataTable/VDataTableFooter.tsx"],"sourcesContent":["// Styles\nimport './VDataTableFooter.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\nimport { usePagination } from './composables/paginate'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVDataTableFooterProps = propsFactory({\n prevIcon: {\n type: String,\n default: '$prev',\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n firstIcon: {\n type: String,\n default: '$first',\n },\n lastIcon: {\n type: String,\n default: '$last',\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText',\n },\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText',\n },\n firstPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.firstPage',\n },\n prevPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.prevPage',\n },\n nextPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.nextPage',\n },\n lastPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.lastPage',\n },\n itemsPerPageOptions: {\n type: Array as PropType<{ title: string, value: number }[]>,\n default: () => ([\n { value: 10, title: '10' },\n { value: 25, title: '25' },\n { value: 50, title: '50' },\n { value: 100, title: '100' },\n { value: -1, title: '$vuetify.dataFooter.itemsPerPageAll' },\n ]),\n },\n showCurrentPage: Boolean,\n}, 'v-data-table-footer')\n\nexport const VDataTableFooter = genericComponent<{ prepend: [] }>()({\n name: 'VDataTableFooter',\n\n props: makeVDataTableFooterProps(),\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { page, pageCount, startIndex, stopIndex, itemsLength, itemsPerPage, setItemsPerPage } = usePagination()\n\n const itemsPerPageOptions = computed(() => (\n props.itemsPerPageOptions.map(option => ({\n ...option,\n title: t(option.title),\n }))\n ))\n\n return () => (\n <div\n class=\"v-data-table-footer\"\n >\n { slots.prepend?.() }\n <div class=\"v-data-table-footer__items-per-page\">\n <span>{ t(props.itemsPerPageText) }</span>\n <VSelect\n items={ itemsPerPageOptions.value }\n modelValue={ itemsPerPage.value }\n onUpdate:modelValue={ v => setItemsPerPage(Number(v)) }\n density=\"compact\"\n variant=\"outlined\"\n hide-details\n />\n </div>\n <div class=\"v-data-table-footer__info\">\n <div>\n { t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value) }\n </div>\n </div>\n <div class=\"v-data-table-footer__pagination\">\n <VBtn\n icon={ props.firstIcon }\n variant=\"plain\"\n onClick={ () => page.value = 1 }\n disabled={ page.value === 1 }\n aria-label={ t(props.firstPageLabel) }\n />\n <VBtn\n icon={ props.prevIcon }\n variant=\"plain\"\n onClick={ () => page.value = Math.max(1, page.value - 1) }\n disabled={ page.value === 1 }\n aria-label={ t(props.prevPageLabel) }\n />\n { props.showCurrentPage && (\n <span key=\"page\" class=\"v-data-table-footer__page\">{ page.value }</span>\n )}\n <VBtn\n icon={ props.nextIcon }\n variant=\"plain\"\n onClick={ () => page.value = Math.min(pageCount.value, page.value + 1) }\n disabled={ page.value === pageCount.value }\n aria-label={ t(props.nextPageLabel) }\n />\n <VBtn\n icon={ props.lastIcon }\n variant=\"plain\"\n onClick={ () => page.value = pageCount.value }\n disabled={ page.value === pageCount.value }\n aria-label={ t(props.lastPageLabel) }\n />\n </div>\n </div>\n )\n },\n})\n"],"mappings":"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"}
@@ -7,15 +7,16 @@ import { useHeaders } from "./composables/headers.mjs";
7
7
  import { useSelection } from "./composables/select.mjs";
8
8
  import { useGroupBy } from "./composables/group.mjs"; // Utilities
9
9
  import { computed } from 'vue';
10
- import { genericComponent } from "../../util/index.mjs"; // Types
10
+ import { genericComponent, propsFactory } from "../../util/index.mjs"; // Types
11
+ export const makeVDataTableGroupHeaderRowProps = propsFactory({
12
+ item: {
13
+ type: Object,
14
+ required: true
15
+ }
16
+ }, 'v-data-table-group-header-row');
11
17
  export const VDataTableGroupHeaderRow = genericComponent()({
12
18
  name: 'VDataTableGroupHeaderRow',
13
- props: {
14
- item: {
15
- type: Object,
16
- required: true
17
- }
18
- },
19
+ props: makeVDataTableGroupHeaderRowProps(),
19
20
  setup(props, _ref) {
20
21
  let {
21
22
  slots