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
@@ -2,36 +2,39 @@
2
2
  import { computed } from 'vue';
3
3
  import { getPropertyFromItem, propsFactory } from "../../../util/index.mjs"; // Types
4
4
  // Composables
5
- export const makeDataTableItemProps = propsFactory({
5
+ export const makeDataTableItemsProps = propsFactory({
6
6
  items: {
7
7
  type: Array,
8
8
  default: () => []
9
9
  },
10
10
  itemValue: {
11
11
  type: [String, Array, Function],
12
- default: 'value'
12
+ default: 'id'
13
+ },
14
+ itemSelectable: {
15
+ type: [String, Array, Function],
16
+ default: null
13
17
  },
14
18
  returnObject: Boolean
15
- }, 'v-data-table-item');
16
- export function transformItem(props, item, columns) {
19
+ }, 'DataTable-items');
20
+ export function transformItem(props, item, index, columns) {
17
21
  const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue);
22
+ const selectable = getPropertyFromItem(item, props.itemSelectable, true);
18
23
  const itemColumns = columns.reduce((obj, column) => {
19
24
  obj[column.key] = getPropertyFromItem(item, column.value ?? column.key);
20
25
  return obj;
21
26
  }, {});
22
27
  return {
23
28
  type: 'item',
29
+ index,
24
30
  value,
31
+ selectable,
25
32
  columns: itemColumns,
26
33
  raw: item
27
34
  };
28
35
  }
29
36
  export function transformItems(props, items, columns) {
30
- const array = [];
31
- for (const item of items) {
32
- array.push(transformItem(props, item, columns));
33
- }
34
- return array;
37
+ return items.map((item, index) => transformItem(props, item, index, columns));
35
38
  }
36
39
  export function useDataTableItems(props, columns) {
37
40
  const items = computed(() => transformItems(props, props.items, columns.value));
@@ -1 +1 @@
1
- {"version":3,"file":"items.mjs","names":["computed","getPropertyFromItem","propsFactory","makeDataTableItemProps","items","type","Array","default","itemValue","String","Function","returnObject","Boolean","transformItem","props","item","columns","value","itemColumns","reduce","obj","column","key","raw","transformItems","array","push","useDataTableItems"],"sources":["../../../../src/labs/VDataTable/composables/items.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { getPropertyFromItem, propsFactory } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { SelectItemKey } from '@/util'\nimport type { DataTableItem, InternalDataTableHeader } from '../types'\n\nexport interface DataTableItemProps {\n items: any[]\n itemValue: SelectItemKey\n returnObject: boolean\n}\n\n// Composables\nexport const makeDataTableItemProps = propsFactory({\n items: {\n type: Array as PropType<DataTableItemProps['items']>,\n default: () => ([]),\n },\n itemValue: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'value',\n },\n returnObject: Boolean,\n}, 'v-data-table-item')\n\nexport function transformItem (\n props: Omit<DataTableItemProps, 'items'>,\n item: any,\n columns: InternalDataTableHeader[]\n): DataTableItem {\n const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue)\n const itemColumns = columns.reduce((obj, column) => {\n obj[column.key] = getPropertyFromItem(item, column.value ?? column.key)\n return obj\n }, {} as Record<string, unknown>)\n\n return {\n type: 'item',\n value,\n columns: itemColumns,\n raw: item,\n }\n}\n\nexport function transformItems (\n props: Omit<DataTableItemProps, 'items'>,\n items: DataTableItemProps['items'],\n columns: InternalDataTableHeader[]\n) {\n const array: DataTableItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item, columns))\n }\n\n return array\n}\n\nexport function useDataTableItems (props: DataTableItemProps, columns: Ref<InternalDataTableHeader[]>) {\n const items = computed(() => transformItems(props, props.items, columns.value))\n\n return { items }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,QAAQ,KAAK;AAAA,SACrBC,mBAAmB,EAAEC,YAAY,mCAE1C;AAWA;AACA,OAAO,MAAMC,sBAAsB,GAAGD,YAAY,CAAC;EACjDE,KAAK,EAAE;IACLC,IAAI,EAAEC,KAA8C;IACpDC,OAAO,EAAEA,CAAA,KAAO;EAClB,CAAC;EACDC,SAAS,EAAE;IACTH,IAAI,EAAE,CAACI,MAAM,EAAEH,KAAK,EAAEI,QAAQ,CAA4B;IAC1DH,OAAO,EAAE;EACX,CAAC;EACDI,YAAY,EAAEC;AAChB,CAAC,EAAE,mBAAmB,CAAC;AAEvB,OAAO,SAASC,aAAaA,CAC3BC,KAAwC,EACxCC,IAAS,EACTC,OAAkC,EACnB;EACf,MAAMC,KAAK,GAAGH,KAAK,CAACH,YAAY,GAAGI,IAAI,GAAGd,mBAAmB,CAACc,IAAI,EAAED,KAAK,CAACN,SAAS,CAAC;EACpF,MAAMU,WAAW,GAAGF,OAAO,CAACG,MAAM,CAAC,CAACC,GAAG,EAAEC,MAAM,KAAK;IAClDD,GAAG,CAACC,MAAM,CAACC,GAAG,CAAC,GAAGrB,mBAAmB,CAACc,IAAI,EAAEM,MAAM,CAACJ,KAAK,IAAII,MAAM,CAACC,GAAG,CAAC;IACvE,OAAOF,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAA4B;EAEjC,OAAO;IACLf,IAAI,EAAE,MAAM;IACZY,KAAK;IACLD,OAAO,EAAEE,WAAW;IACpBK,GAAG,EAAER;EACP,CAAC;AACH;AAEA,OAAO,SAASS,cAAcA,CAC5BV,KAAwC,EACxCV,KAAkC,EAClCY,OAAkC,EAClC;EACA,MAAMS,KAAsB,GAAG,EAAE;EAEjC,KAAK,MAAMV,IAAI,IAAIX,KAAK,EAAE;IACxBqB,KAAK,CAACC,IAAI,CAACb,aAAa,CAACC,KAAK,EAAEC,IAAI,EAAEC,OAAO,CAAC,CAAC;EACjD;EAEA,OAAOS,KAAK;AACd;AAEA,OAAO,SAASE,iBAAiBA,CAAEb,KAAyB,EAAEE,OAAuC,EAAE;EACrG,MAAMZ,KAAK,GAAGJ,QAAQ,CAAC,MAAMwB,cAAc,CAACV,KAAK,EAAEA,KAAK,CAACV,KAAK,EAAEY,OAAO,CAACC,KAAK,CAAC,CAAC;EAE/E,OAAO;IAAEb;EAAM,CAAC;AAClB"}
1
+ {"version":3,"file":"items.mjs","names":["computed","getPropertyFromItem","propsFactory","makeDataTableItemsProps","items","type","Array","default","itemValue","String","Function","itemSelectable","returnObject","Boolean","transformItem","props","item","index","columns","value","selectable","itemColumns","reduce","obj","column","key","raw","transformItems","map","useDataTableItems"],"sources":["../../../../src/labs/VDataTable/composables/items.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { getPropertyFromItem, propsFactory } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { DataTableItem, InternalDataTableHeader } from '../types'\nimport type { SelectItemKey } from '@/util'\n\nexport interface DataTableItemProps {\n items: any[]\n itemValue: SelectItemKey\n itemSelectable: SelectItemKey\n returnObject: boolean\n}\n\n// Composables\nexport const makeDataTableItemsProps = propsFactory({\n items: {\n type: Array as PropType<DataTableItemProps['items']>,\n default: () => ([]),\n },\n itemValue: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'id',\n },\n itemSelectable: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: null,\n },\n returnObject: Boolean,\n}, 'DataTable-items')\n\nexport function transformItem (\n props: Omit<DataTableItemProps, 'items'>,\n item: any,\n index: number,\n columns: InternalDataTableHeader[]\n): DataTableItem {\n const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue)\n const selectable = getPropertyFromItem(item, props.itemSelectable, true)\n const itemColumns = columns.reduce((obj, column) => {\n obj[column.key] = getPropertyFromItem(item, column.value ?? column.key)\n return obj\n }, {} as Record<string, unknown>)\n\n return {\n type: 'item',\n index,\n value,\n selectable,\n columns: itemColumns,\n raw: item,\n }\n}\n\nexport function transformItems (\n props: Omit<DataTableItemProps, 'items'>,\n items: DataTableItemProps['items'],\n columns: InternalDataTableHeader[]\n): DataTableItem[] {\n return items.map((item, index) => transformItem(props, item, index, columns))\n}\n\nexport function useDataTableItems (props: DataTableItemProps, columns: Ref<InternalDataTableHeader[]>) {\n const items = computed(() => transformItems(props, props.items, columns.value))\n\n return { items }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,QAAQ,KAAK;AAAA,SACrBC,mBAAmB,EAAEC,YAAY,mCAE1C;AAYA;AACA,OAAO,MAAMC,uBAAuB,GAAGD,YAAY,CAAC;EAClDE,KAAK,EAAE;IACLC,IAAI,EAAEC,KAA8C;IACpDC,OAAO,EAAEA,CAAA,KAAO;EAClB,CAAC;EACDC,SAAS,EAAE;IACTH,IAAI,EAAE,CAACI,MAAM,EAAEH,KAAK,EAAEI,QAAQ,CAA4B;IAC1DH,OAAO,EAAE;EACX,CAAC;EACDI,cAAc,EAAE;IACdN,IAAI,EAAE,CAACI,MAAM,EAAEH,KAAK,EAAEI,QAAQ,CAA4B;IAC1DH,OAAO,EAAE;EACX,CAAC;EACDK,YAAY,EAAEC;AAChB,CAAC,EAAE,iBAAiB,CAAC;AAErB,OAAO,SAASC,aAAaA,CAC3BC,KAAwC,EACxCC,IAAS,EACTC,KAAa,EACbC,OAAkC,EACnB;EACf,MAAMC,KAAK,GAAGJ,KAAK,CAACH,YAAY,GAAGI,IAAI,GAAGf,mBAAmB,CAACe,IAAI,EAAED,KAAK,CAACP,SAAS,CAAC;EACpF,MAAMY,UAAU,GAAGnB,mBAAmB,CAACe,IAAI,EAAED,KAAK,CAACJ,cAAc,EAAE,IAAI,CAAC;EACxE,MAAMU,WAAW,GAAGH,OAAO,CAACI,MAAM,CAAC,CAACC,GAAG,EAAEC,MAAM,KAAK;IAClDD,GAAG,CAACC,MAAM,CAACC,GAAG,CAAC,GAAGxB,mBAAmB,CAACe,IAAI,EAAEQ,MAAM,CAACL,KAAK,IAAIK,MAAM,CAACC,GAAG,CAAC;IACvE,OAAOF,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAA4B;EAEjC,OAAO;IACLlB,IAAI,EAAE,MAAM;IACZY,KAAK;IACLE,KAAK;IACLC,UAAU;IACVF,OAAO,EAAEG,WAAW;IACpBK,GAAG,EAAEV;EACP,CAAC;AACH;AAEA,OAAO,SAASW,cAAcA,CAC5BZ,KAAwC,EACxCX,KAAkC,EAClCc,OAAkC,EACjB;EACjB,OAAOd,KAAK,CAACwB,GAAG,CAAC,CAACZ,IAAI,EAAEC,KAAK,KAAKH,aAAa,CAACC,KAAK,EAAEC,IAAI,EAAEC,KAAK,EAAEC,OAAO,CAAC,CAAC;AAC/E;AAEA,OAAO,SAASW,iBAAiBA,CAAEd,KAAyB,EAAEG,OAAuC,EAAE;EACrG,MAAMd,KAAK,GAAGJ,QAAQ,CAAC,MAAM2B,cAAc,CAACZ,KAAK,EAAEA,KAAK,CAACX,KAAK,EAAEc,OAAO,CAACC,KAAK,CAAC,CAAC;EAE/E,OAAO;IAAEf;EAAM,CAAC;AAClB"}
@@ -11,7 +11,7 @@ export const makeDataTablePaginateProps = propsFactory({
11
11
  type: [Number, String],
12
12
  default: 10
13
13
  }
14
- }, 'v-data-table-paginate');
14
+ }, 'DataTable-paginate');
15
15
  const VDataTablePaginationSymbol = Symbol.for('vuetify:data-table-pagination');
16
16
  export function createPagination(props) {
17
17
  const page = useProxiedModel(props, 'page', undefined, value => +(value ?? 1));
@@ -1 +1 @@
1
- {"version":3,"file":"paginate.mjs","names":["useProxiedModel","computed","inject","provide","watchEffect","clamp","propsFactory","makeDataTablePaginateProps","page","type","Number","String","default","itemsPerPage","VDataTablePaginationSymbol","Symbol","for","createPagination","props","undefined","value","providePagination","options","itemsLength","startIndex","stopIndex","Math","min","pageCount","ceil","setItemsPerPage","nextPage","prevPage","setPage","data","usePagination","Error","usePaginatedItems","items","paginatedItems","slice"],"sources":["../../../../src/labs/VDataTable/composables/paginate.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, watchEffect } from 'vue'\nimport { clamp, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\nexport const makeDataTablePaginateProps = propsFactory({\n page: {\n type: [Number, String],\n default: 1,\n },\n itemsPerPage: {\n type: [Number, String],\n default: 10,\n },\n}, 'v-data-table-paginate')\n\nconst VDataTablePaginationSymbol: InjectionKey<{\n page: Ref<number>\n itemsPerPage: Ref<number>\n startIndex: Ref<number>\n stopIndex: Ref<number>\n pageCount: Ref<number>\n itemsLength: Ref<number>\n prevPage: () => void\n nextPage: () => void\n setPage: (value: number) => void\n setItemsPerPage: (value: number) => void\n}> = Symbol.for('vuetify:data-table-pagination')\n\ntype PaginationProps = {\n page: number | string\n 'onUpdate:page': ((val: any) => void) | undefined\n itemsPerPage: number | string\n 'onUpdate:itemsPerPage': ((val: any) => void) | undefined\n itemsLength?: number | string\n}\n\nexport function createPagination (props: PaginationProps) {\n const page = useProxiedModel(props, 'page', undefined, value => +(value ?? 1))\n const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => +(value ?? 10))\n\n return { page, itemsPerPage }\n}\n\nexport function providePagination (options: {\n page: Ref<number>\n itemsPerPage: Ref<number>\n itemsLength: Ref<number>\n}) {\n const { page, itemsPerPage, itemsLength } = options\n\n const startIndex = computed(() => {\n if (itemsPerPage.value === -1) return 0\n\n return itemsPerPage.value * (page.value - 1)\n })\n const stopIndex = computed(() => {\n if (itemsPerPage.value === -1) return itemsLength.value\n\n return Math.min(itemsLength.value, startIndex.value + itemsPerPage.value)\n })\n\n const pageCount = computed(() => {\n if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1\n\n return Math.ceil(itemsLength.value / itemsPerPage.value)\n })\n\n watchEffect(() => {\n if (page.value > pageCount.value) {\n page.value = pageCount.value\n }\n })\n\n function setItemsPerPage (value: number) {\n itemsPerPage.value = value\n page.value = 1\n }\n\n function nextPage () {\n page.value = clamp(page.value + 1, 1, pageCount.value)\n }\n\n function prevPage () {\n page.value = clamp(page.value - 1, 1, pageCount.value)\n }\n\n function setPage (value: number) {\n page.value = clamp(value, 1, pageCount.value)\n }\n\n const data = { page, itemsPerPage, startIndex, stopIndex, pageCount, itemsLength, nextPage, prevPage, setPage, setItemsPerPage }\n\n provide(VDataTablePaginationSymbol, data)\n\n return data\n}\n\nexport function usePagination () {\n const data = inject(VDataTablePaginationSymbol)\n\n if (!data) throw new Error('Missing pagination!')\n\n return data\n}\n\nexport function usePaginatedItems (options: {\n items: Ref<readonly any[]>\n startIndex: Ref<number>\n stopIndex: Ref<number>\n itemsPerPage: Ref<number>\n}) {\n const { items, startIndex, stopIndex, itemsPerPage } = options\n const paginatedItems = computed(() => {\n if (itemsPerPage.value <= 0) return items.value\n\n return items.value.slice(startIndex.value, stopIndex.value)\n })\n\n return { paginatedItems }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"paginate.mjs","names":["useProxiedModel","computed","inject","provide","watchEffect","clamp","propsFactory","makeDataTablePaginateProps","page","type","Number","String","default","itemsPerPage","VDataTablePaginationSymbol","Symbol","for","createPagination","props","undefined","value","providePagination","options","itemsLength","startIndex","stopIndex","Math","min","pageCount","ceil","setItemsPerPage","nextPage","prevPage","setPage","data","usePagination","Error","usePaginatedItems","items","paginatedItems","slice"],"sources":["../../../../src/labs/VDataTable/composables/paginate.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, watchEffect } from 'vue'\nimport { clamp, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\nimport type { Group } from './group'\n\nexport const makeDataTablePaginateProps = propsFactory({\n page: {\n type: [Number, String],\n default: 1,\n },\n itemsPerPage: {\n type: [Number, String],\n default: 10,\n },\n}, 'DataTable-paginate')\n\nconst VDataTablePaginationSymbol: InjectionKey<{\n page: Ref<number>\n itemsPerPage: Ref<number>\n startIndex: Ref<number>\n stopIndex: Ref<number>\n pageCount: Ref<number>\n itemsLength: Ref<number>\n prevPage: () => void\n nextPage: () => void\n setPage: (value: number) => void\n setItemsPerPage: (value: number) => void\n}> = Symbol.for('vuetify:data-table-pagination')\n\ntype PaginationProps = {\n page: number | string\n 'onUpdate:page': ((val: any) => void) | undefined\n itemsPerPage: number | string\n 'onUpdate:itemsPerPage': ((val: any) => void) | undefined\n itemsLength?: number | string\n}\n\nexport function createPagination (props: PaginationProps) {\n const page = useProxiedModel(props, 'page', undefined, value => +(value ?? 1))\n const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => +(value ?? 10))\n\n return { page, itemsPerPage }\n}\n\nexport function providePagination (options: {\n page: Ref<number>\n itemsPerPage: Ref<number>\n itemsLength: Ref<number>\n}) {\n const { page, itemsPerPage, itemsLength } = options\n\n const startIndex = computed(() => {\n if (itemsPerPage.value === -1) return 0\n\n return itemsPerPage.value * (page.value - 1)\n })\n const stopIndex = computed(() => {\n if (itemsPerPage.value === -1) return itemsLength.value\n\n return Math.min(itemsLength.value, startIndex.value + itemsPerPage.value)\n })\n\n const pageCount = computed(() => {\n if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1\n\n return Math.ceil(itemsLength.value / itemsPerPage.value)\n })\n\n watchEffect(() => {\n if (page.value > pageCount.value) {\n page.value = pageCount.value\n }\n })\n\n function setItemsPerPage (value: number) {\n itemsPerPage.value = value\n page.value = 1\n }\n\n function nextPage () {\n page.value = clamp(page.value + 1, 1, pageCount.value)\n }\n\n function prevPage () {\n page.value = clamp(page.value - 1, 1, pageCount.value)\n }\n\n function setPage (value: number) {\n page.value = clamp(value, 1, pageCount.value)\n }\n\n const data = { page, itemsPerPage, startIndex, stopIndex, pageCount, itemsLength, nextPage, prevPage, setPage, setItemsPerPage }\n\n provide(VDataTablePaginationSymbol, data)\n\n return data\n}\n\nexport function usePagination () {\n const data = inject(VDataTablePaginationSymbol)\n\n if (!data) throw new Error('Missing pagination!')\n\n return data\n}\n\nexport function usePaginatedItems <T> (options: {\n items: Ref<readonly (T | Group<T>)[]>\n startIndex: Ref<number>\n stopIndex: Ref<number>\n itemsPerPage: Ref<number>\n}) {\n const { items, startIndex, stopIndex, itemsPerPage } = options\n const paginatedItems = computed(() => {\n if (itemsPerPage.value <= 0) return items.value\n\n return items.value.slice(startIndex.value, stopIndex.value)\n })\n\n return { paginatedItems }\n}\n"],"mappings":"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"}
@@ -2,20 +2,122 @@
2
2
  import { useProxiedModel } from "../../../composables/proxiedModel.mjs"; // Utilities
3
3
  import { computed, inject, provide } from 'vue';
4
4
  import { propsFactory, wrapInArray } from "../../../util/index.mjs"; // Types
5
+ const singleSelectStrategy = {
6
+ showSelectAll: false,
7
+ allSelected: () => [],
8
+ select: _ref => {
9
+ let {
10
+ items
11
+ } = _ref;
12
+ return new Set([items[0]?.value]);
13
+ },
14
+ selectAll: _ref2 => {
15
+ let {
16
+ selected
17
+ } = _ref2;
18
+ return selected;
19
+ }
20
+ };
21
+ const pageSelectStrategy = {
22
+ showSelectAll: true,
23
+ allSelected: _ref3 => {
24
+ let {
25
+ currentPage
26
+ } = _ref3;
27
+ return currentPage;
28
+ },
29
+ select: _ref4 => {
30
+ let {
31
+ items,
32
+ value,
33
+ selected
34
+ } = _ref4;
35
+ for (const item of items) {
36
+ if (value) selected.add(item.value);else selected.delete(item.value);
37
+ }
38
+ return selected;
39
+ },
40
+ selectAll: _ref5 => {
41
+ let {
42
+ value,
43
+ currentPage,
44
+ selected
45
+ } = _ref5;
46
+ return pageSelectStrategy.select({
47
+ items: currentPage,
48
+ value,
49
+ selected
50
+ });
51
+ }
52
+ };
53
+ const allSelectStrategy = {
54
+ showSelectAll: true,
55
+ allSelected: _ref6 => {
56
+ let {
57
+ allItems
58
+ } = _ref6;
59
+ return allItems;
60
+ },
61
+ select: _ref7 => {
62
+ let {
63
+ items,
64
+ value,
65
+ selected
66
+ } = _ref7;
67
+ for (const item of items) {
68
+ if (value) selected.add(item.value);else selected.delete(item.value);
69
+ }
70
+ return selected;
71
+ },
72
+ selectAll: _ref8 => {
73
+ let {
74
+ value,
75
+ allItems,
76
+ selected
77
+ } = _ref8;
78
+ return allSelectStrategy.select({
79
+ items: allItems,
80
+ value,
81
+ selected
82
+ });
83
+ }
84
+ };
5
85
  export const makeDataTableSelectProps = propsFactory({
6
86
  showSelect: Boolean,
87
+ selectStrategy: {
88
+ type: [String, Object],
89
+ default: 'page'
90
+ },
7
91
  modelValue: {
8
92
  type: Array,
9
93
  default: () => []
10
94
  }
11
- }, 'v-data-table-select');
95
+ }, 'DataTable-select');
12
96
  export const VDataTableSelectionSymbol = Symbol.for('vuetify:data-table-selection');
13
- export function provideSelection(props, allItems) {
97
+ export function provideSelection(props, _ref9) {
98
+ let {
99
+ allItems,
100
+ currentPage
101
+ } = _ref9;
14
102
  const selected = useProxiedModel(props, 'modelValue', props.modelValue, v => {
15
103
  return new Set(v);
16
104
  }, v => {
17
105
  return [...v.values()];
18
106
  });
107
+ const allSelectable = computed(() => allItems.value.filter(item => item.selectable));
108
+ const currentPageSelectable = computed(() => currentPage.value.filter(item => item.selectable));
109
+ const selectStrategy = computed(() => {
110
+ if (typeof props.selectStrategy === 'object') return props.selectStrategy;
111
+ switch (props.selectStrategy) {
112
+ case 'single':
113
+ return singleSelectStrategy;
114
+ case 'all':
115
+ return allSelectStrategy;
116
+ case 'page':
117
+ default:
118
+ return pageSelectStrategy;
119
+ }
120
+ });
19
121
  function isSelected(items) {
20
122
  return wrapInArray(items).every(item => selected.value.has(item.value));
21
123
  }
@@ -23,20 +125,33 @@ export function provideSelection(props, allItems) {
23
125
  return wrapInArray(items).some(item => selected.value.has(item.value));
24
126
  }
25
127
  function select(items, value) {
26
- const newSelected = new Set(selected.value);
27
- for (const item of items) {
28
- if (value) newSelected.add(item.value);else newSelected.delete(item.value);
29
- }
128
+ const newSelected = selectStrategy.value.select({
129
+ items,
130
+ value,
131
+ selected: new Set(selected.value)
132
+ });
30
133
  selected.value = newSelected;
31
134
  }
32
135
  function toggleSelect(item) {
33
136
  select([item], !isSelected([item]));
34
137
  }
35
138
  function selectAll(value) {
36
- select(allItems.value, value);
139
+ const newSelected = selectStrategy.value.selectAll({
140
+ value,
141
+ allItems: allSelectable.value,
142
+ currentPage: currentPageSelectable.value,
143
+ selected: new Set(selected.value)
144
+ });
145
+ selected.value = newSelected;
37
146
  }
38
147
  const someSelected = computed(() => selected.value.size > 0);
39
- const allSelected = computed(() => isSelected(allItems.value));
148
+ const allSelected = computed(() => {
149
+ const items = selectStrategy.value.allSelected({
150
+ allItems: allSelectable.value,
151
+ currentPage: currentPageSelectable.value
152
+ });
153
+ return isSelected(items);
154
+ });
40
155
  const data = {
41
156
  toggleSelect,
42
157
  select,
@@ -44,7 +159,8 @@ export function provideSelection(props, allItems) {
44
159
  isSelected,
45
160
  isSomeSelected,
46
161
  someSelected,
47
- allSelected
162
+ allSelected,
163
+ showSelectAll: selectStrategy.value.showSelectAll
48
164
  };
49
165
  provide(VDataTableSelectionSymbol, data);
50
166
  return data;
@@ -1 +1 @@
1
- {"version":3,"file":"select.mjs","names":["useProxiedModel","computed","inject","provide","propsFactory","wrapInArray","makeDataTableSelectProps","showSelect","Boolean","modelValue","type","Array","default","VDataTableSelectionSymbol","Symbol","for","provideSelection","props","allItems","selected","v","Set","values","isSelected","items","every","item","value","has","isSomeSelected","some","select","newSelected","add","delete","toggleSelect","selectAll","someSelected","size","allSelected","data","useSelection","Error"],"sources":["../../../../src/labs/VDataTable/composables/select.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide } from 'vue'\nimport { propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableItemProps } from './items'\nimport type { DataTableItem } from '../types'\n\nexport const makeDataTableSelectProps = propsFactory({\n showSelect: Boolean,\n modelValue: {\n type: Array as PropType<readonly any[]>,\n default: () => ([]),\n },\n}, 'v-data-table-select')\n\nexport const VDataTableSelectionSymbol: InjectionKey<{\n toggleSelect: (item: any) => void\n select: (items: any[], value: boolean) => void\n selectAll: (value: boolean) => void\n isSelected: (items: any[]) => boolean\n isSomeSelected: (items: any[]) => boolean\n someSelected: Ref<boolean>\n allSelected: Ref<boolean>\n}> = Symbol.for('vuetify:data-table-selection')\n\ntype SelectionProps = Pick<DataTableItemProps, 'itemValue'> & {\n modelValue: readonly any[]\n 'onUpdate:modelValue': ((value: any[]) => void) | undefined\n}\n\nexport function provideSelection <T extends DataTableItem> (props: SelectionProps, allItems: Ref<T[]>) {\n const selected = useProxiedModel(props, 'modelValue', props.modelValue, v => {\n return new Set(v)\n }, v => {\n return [...v.values()]\n })\n\n function isSelected (items: T | T[]) {\n return wrapInArray(items).every(item => selected.value.has(item.value))\n }\n\n function isSomeSelected (items: T | T[]) {\n return wrapInArray(items).some(item => selected.value.has(item.value))\n }\n\n function select (items: T[], value: boolean) {\n const newSelected = new Set(selected.value)\n\n for (const item of items) {\n if (value) newSelected.add(item.value)\n else newSelected.delete(item.value)\n }\n\n selected.value = newSelected\n }\n\n function toggleSelect (item: T) {\n select([item], !isSelected([item]))\n }\n\n function selectAll (value: boolean) {\n select(allItems.value, value)\n }\n\n const someSelected = computed(() => selected.value.size > 0)\n const allSelected = computed(() => isSelected(allItems.value))\n\n const data = { toggleSelect, select, selectAll, isSelected, isSomeSelected, someSelected, allSelected }\n\n provide(VDataTableSelectionSymbol, data)\n\n return data\n}\n\nexport function useSelection () {\n const data = inject(VDataTableSelectionSymbol)\n\n if (!data) throw new Error('Missing selection!')\n\n return data\n}\n"],"mappings":"AAAA;AAAA,SACSA,eAAe,iDAExB;AACA,SAASC,QAAQ,EAAEC,MAAM,EAAEC,OAAO,QAAQ,KAAK;AAAA,SACtCC,YAAY,EAAEC,WAAW,mCAElC;AAKA,OAAO,MAAMC,wBAAwB,GAAGF,YAAY,CAAC;EACnDG,UAAU,EAAEC,OAAO;EACnBC,UAAU,EAAE;IACVC,IAAI,EAAEC,KAAiC;IACvCC,OAAO,EAAEA,CAAA,KAAO;EAClB;AACF,CAAC,EAAE,qBAAqB,CAAC;AAEzB,OAAO,MAAMC,yBAQX,GAAGC,MAAM,CAACC,GAAG,CAAC,8BAA8B,CAAC;AAO/C,OAAO,SAASC,gBAAgBA,CAA4BC,KAAqB,EAAEC,QAAkB,EAAE;EACrG,MAAMC,QAAQ,GAAGnB,eAAe,CAACiB,KAAK,EAAE,YAAY,EAAEA,KAAK,CAACR,UAAU,EAAEW,CAAC,IAAI;IAC3E,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,UAAUA,CAAEC,KAAc,EAAE;IACnC,OAAOnB,WAAW,CAACmB,KAAK,CAAC,CAACC,KAAK,CAACC,IAAI,IAAIP,QAAQ,CAACQ,KAAK,CAACC,GAAG,CAACF,IAAI,CAACC,KAAK,CAAC,CAAC;EACzE;EAEA,SAASE,cAAcA,CAAEL,KAAc,EAAE;IACvC,OAAOnB,WAAW,CAACmB,KAAK,CAAC,CAACM,IAAI,CAACJ,IAAI,IAAIP,QAAQ,CAACQ,KAAK,CAACC,GAAG,CAACF,IAAI,CAACC,KAAK,CAAC,CAAC;EACxE;EAEA,SAASI,MAAMA,CAAEP,KAAU,EAAEG,KAAc,EAAE;IAC3C,MAAMK,WAAW,GAAG,IAAIX,GAAG,CAACF,QAAQ,CAACQ,KAAK,CAAC;IAE3C,KAAK,MAAMD,IAAI,IAAIF,KAAK,EAAE;MACxB,IAAIG,KAAK,EAAEK,WAAW,CAACC,GAAG,CAACP,IAAI,CAACC,KAAK,CAAC,MACjCK,WAAW,CAACE,MAAM,CAACR,IAAI,CAACC,KAAK,CAAC;IACrC;IAEAR,QAAQ,CAACQ,KAAK,GAAGK,WAAW;EAC9B;EAEA,SAASG,YAAYA,CAAET,IAAO,EAAE;IAC9BK,MAAM,CAAC,CAACL,IAAI,CAAC,EAAE,CAACH,UAAU,CAAC,CAACG,IAAI,CAAC,CAAC,CAAC;EACrC;EAEA,SAASU,SAASA,CAAET,KAAc,EAAE;IAClCI,MAAM,CAACb,QAAQ,CAACS,KAAK,EAAEA,KAAK,CAAC;EAC/B;EAEA,MAAMU,YAAY,GAAGpC,QAAQ,CAAC,MAAMkB,QAAQ,CAACQ,KAAK,CAACW,IAAI,GAAG,CAAC,CAAC;EAC5D,MAAMC,WAAW,GAAGtC,QAAQ,CAAC,MAAMsB,UAAU,CAACL,QAAQ,CAACS,KAAK,CAAC,CAAC;EAE9D,MAAMa,IAAI,GAAG;IAAEL,YAAY;IAAEJ,MAAM;IAAEK,SAAS;IAAEb,UAAU;IAAEM,cAAc;IAAEQ,YAAY;IAAEE;EAAY,CAAC;EAEvGpC,OAAO,CAACU,yBAAyB,EAAE2B,IAAI,CAAC;EAExC,OAAOA,IAAI;AACb;AAEA,OAAO,SAASC,YAAYA,CAAA,EAAI;EAC9B,MAAMD,IAAI,GAAGtC,MAAM,CAACW,yBAAyB,CAAC;EAE9C,IAAI,CAAC2B,IAAI,EAAE,MAAM,IAAIE,KAAK,CAAC,oBAAoB,CAAC;EAEhD,OAAOF,IAAI;AACb"}
1
+ {"version":3,"file":"select.mjs","names":["useProxiedModel","computed","inject","provide","propsFactory","wrapInArray","singleSelectStrategy","showSelectAll","allSelected","select","_ref","items","Set","value","selectAll","_ref2","selected","pageSelectStrategy","_ref3","currentPage","_ref4","item","add","delete","_ref5","allSelectStrategy","_ref6","allItems","_ref7","_ref8","makeDataTableSelectProps","showSelect","Boolean","selectStrategy","type","String","Object","default","modelValue","Array","VDataTableSelectionSymbol","Symbol","for","provideSelection","props","_ref9","v","values","allSelectable","filter","selectable","currentPageSelectable","isSelected","every","has","isSomeSelected","some","newSelected","toggleSelect","someSelected","size","data","useSelection","Error"],"sources":["../../../../src/labs/VDataTable/composables/select.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide } from 'vue'\nimport { propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableItemProps } from './items'\n\nexport interface SelectableItem {\n value: any\n selectable: boolean\n}\n\nexport interface DataTableSelectStrategy {\n showSelectAll: boolean\n allSelected: (data: {\n allItems: SelectableItem[]\n currentPage: SelectableItem[]\n }) => SelectableItem[]\n select: (data: {\n items: SelectableItem[]\n value: boolean\n selected: Set<unknown>\n }) => Set<unknown>\n selectAll: (data: {\n value: boolean\n allItems: SelectableItem[]\n currentPage: SelectableItem[]\n selected: Set<unknown>\n }) => Set<unknown>\n}\n\ntype SelectionProps = Pick<DataTableItemProps, 'itemValue'> & {\n modelValue: readonly any[]\n selectStrategy: 'single' | 'page' | 'all'\n 'onUpdate:modelValue': ((value: any[]) => void) | undefined\n}\n\nconst singleSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: false,\n allSelected: () => [],\n select: ({ items }) => {\n return new Set([items[0]?.value])\n },\n selectAll: ({ selected }) => selected,\n}\n\nconst pageSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: true,\n allSelected: ({ currentPage }) => currentPage,\n select: ({ items, value, selected }) => {\n for (const item of items) {\n if (value) selected.add(item.value)\n else selected.delete(item.value)\n }\n\n return selected\n },\n selectAll: ({ value, currentPage, selected }) => pageSelectStrategy.select({ items: currentPage, value, selected }),\n}\n\nconst allSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: true,\n allSelected: ({ allItems }) => allItems,\n select: ({ items, value, selected }) => {\n for (const item of items) {\n if (value) selected.add(item.value)\n else selected.delete(item.value)\n }\n\n return selected\n },\n selectAll: ({ value, allItems, selected }) => allSelectStrategy.select({ items: allItems, value, selected }),\n}\n\nexport const makeDataTableSelectProps = propsFactory({\n showSelect: Boolean,\n selectStrategy: {\n type: [String, Object] as PropType<'single' | 'page' | 'all'>,\n default: 'page',\n },\n modelValue: {\n type: Array as PropType<readonly any[]>,\n default: () => ([]),\n },\n}, 'DataTable-select')\n\nexport const VDataTableSelectionSymbol: InjectionKey<ReturnType<typeof provideSelection>> = Symbol.for('vuetify:data-table-selection')\n\nexport function provideSelection (\n props: SelectionProps,\n { allItems, currentPage }: { allItems: Ref<SelectableItem[]>, currentPage: Ref<SelectableItem[]> }\n) {\n const selected = useProxiedModel(props, 'modelValue', props.modelValue, v => {\n return new Set(v)\n }, v => {\n return [...v.values()]\n })\n\n const allSelectable = computed(() => allItems.value.filter(item => item.selectable))\n const currentPageSelectable = computed(() => currentPage.value.filter(item => item.selectable))\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n\n switch (props.selectStrategy) {\n case 'single': return singleSelectStrategy\n case 'all': return allSelectStrategy\n case 'page':\n default: return pageSelectStrategy\n }\n })\n\n function isSelected (items: SelectableItem | SelectableItem[]) {\n return wrapInArray(items).every(item => selected.value.has(item.value))\n }\n\n function isSomeSelected (items: SelectableItem | SelectableItem[]) {\n return wrapInArray(items).some(item => selected.value.has(item.value))\n }\n\n function select (items: SelectableItem[], value: boolean) {\n const newSelected = selectStrategy.value.select({\n items,\n value,\n selected: new Set(selected.value),\n })\n\n selected.value = newSelected\n }\n\n function toggleSelect (item: SelectableItem) {\n select([item], !isSelected([item]))\n }\n\n function selectAll (value: boolean) {\n const newSelected = selectStrategy.value.selectAll({\n value,\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n selected: new Set(selected.value),\n })\n\n selected.value = newSelected\n }\n\n const someSelected = computed(() => selected.value.size > 0)\n const allSelected = computed(() => {\n const items = selectStrategy.value.allSelected({\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n })\n return isSelected(items)\n })\n\n const data = {\n toggleSelect,\n select,\n selectAll,\n isSelected,\n isSomeSelected,\n someSelected,\n allSelected,\n showSelectAll: selectStrategy.value.showSelectAll,\n }\n\n provide(VDataTableSelectionSymbol, data)\n\n return data\n}\n\nexport function useSelection () {\n const data = inject(VDataTableSelectionSymbol)\n\n if (!data) throw new Error('Missing selection!')\n\n return data\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  // Composables
2
- import { useProxiedModel } from "../../../composables/proxiedModel.mjs";
3
- import { useLocale } from "../../../composables/index.mjs"; // Utilities
2
+ import { useLocale } from "../../../composables/index.mjs";
3
+ import { useProxiedModel } from "../../../composables/proxiedModel.mjs"; // Utilities
4
4
  import { computed, inject, provide, toRef } from 'vue';
5
5
  import { getObjectValueByPath, propsFactory } from "../../../util/index.mjs"; // Types
6
6
  export const makeDataTableSortProps = propsFactory({
@@ -11,7 +11,7 @@ export const makeDataTableSortProps = propsFactory({
11
11
  customKeySort: Object,
12
12
  multiSort: Boolean,
13
13
  mustSort: Boolean
14
- }, 'v-data-table-sort');
14
+ }, 'DataTable-sort');
15
15
  const VDataTableSortSymbol = Symbol.for('vuetify:data-table-sort');
16
16
  export function createSort(props) {
17
17
  const sortBy = useProxiedModel(props, 'sortBy');
@@ -102,16 +102,11 @@ export function sortItems(items, sortByItems, locale, customSorters) {
102
102
  return customResult;
103
103
  }
104
104
 
105
- // Check if both cannot be evaluated
106
- if (sortA == null || sortB == null) {
107
- continue;
108
- }
109
-
110
105
  // Dates should be compared numerically
111
106
  if (sortA instanceof Date && sortB instanceof Date) {
112
107
  return sortA.getTime() - sortB.getTime();
113
108
  }
114
- [sortA, sortB] = [sortA, sortB].map(s => (s || '').toString().toLocaleLowerCase());
109
+ [sortA, sortB] = [sortA, sortB].map(s => s != null ? s.toString().toLocaleLowerCase() : s);
115
110
  if (sortA !== sortB) {
116
111
  if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB);
117
112
  return stringCollator.compare(sortA, sortB);
@@ -1 +1 @@
1
- {"version":3,"file":"sort.mjs","names":["useProxiedModel","useLocale","computed","inject","provide","toRef","getObjectValueByPath","propsFactory","makeDataTableSortProps","sortBy","type","Array","default","customKeySort","Object","multiSort","Boolean","mustSort","VDataTableSortSymbol","Symbol","for","createSort","props","provideSort","options","page","toggleSort","column","newSortBy","value","map","x","item","find","key","order","filter","isSorted","data","useSort","Error","useSortedItems","items","locale","sortedItems","length","sortItems","current","sortByItems","customSorters","stringCollator","Intl","Collator","sensitivity","usage","sort","a","b","i","sortKey","sortOrder","sortA","raw","sortB","customResult","Date","getTime","s","toString","toLocaleLowerCase","isNaN","Number","compare"],"sources":["../../../../src/labs/VDataTable/composables/sort.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useLocale } from '@/composables'\n\n// Utilities\nimport { computed, inject, provide, toRef } from 'vue'\nimport { getObjectValueByPath, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableCompareFunction, InternalDataTableHeader } from '../types'\n\nexport const makeDataTableSortProps = propsFactory({\n sortBy: {\n type: Array as PropType<readonly SortItem[]>,\n default: () => ([]),\n },\n customKeySort: Object as PropType<Record<string, DataTableCompareFunction>>,\n multiSort: Boolean,\n mustSort: Boolean,\n}, 'v-data-table-sort')\n\nconst VDataTableSortSymbol: InjectionKey<{\n sortBy: Ref<readonly SortItem[]>\n toggleSort: (column: InternalDataTableHeader) => void\n isSorted: (column: InternalDataTableHeader) => boolean\n}> = Symbol.for('vuetify:data-table-sort')\n\nexport type SortItem = { key: string, order?: boolean | 'asc' | 'desc' }\n\ntype SortProps = {\n sortBy: readonly SortItem[]\n 'onUpdate:sortBy': ((value: any) => void) | undefined\n mustSort: boolean\n multiSort: boolean\n}\n\nexport function createSort (props: SortProps) {\n const sortBy = useProxiedModel(props, 'sortBy')\n const mustSort = toRef(props, 'mustSort')\n const multiSort = toRef(props, 'multiSort')\n\n return { sortBy, mustSort, multiSort }\n}\n\nexport function provideSort (options: {\n sortBy: Ref<readonly SortItem[]>\n mustSort: Ref<boolean>\n multiSort: Ref<boolean>\n page?: Ref<number>\n}) {\n const { sortBy, mustSort, multiSort, page } = options\n\n const toggleSort = (column: InternalDataTableHeader) => {\n let newSortBy = sortBy.value.map(x => ({ ...x })) ?? []\n const item = newSortBy.find(x => x.key === column.key)\n\n if (!item) {\n if (multiSort.value) newSortBy = [...newSortBy, { key: column.key, order: 'asc' }]\n else newSortBy = [{ key: column.key, order: 'asc' }]\n } else if (item.order === 'desc') {\n if (mustSort.value) {\n item.order = 'asc'\n } else {\n newSortBy = newSortBy.filter(x => x.key !== column.key)\n }\n } else {\n item.order = 'desc'\n }\n\n sortBy.value = newSortBy\n if (page) page.value = 1\n }\n\n function isSorted (column: InternalDataTableHeader) {\n return !!sortBy.value.find(item => item.key === column.key)\n }\n\n const data = { sortBy, toggleSort, isSorted }\n\n provide(VDataTableSortSymbol, data)\n\n return data\n}\n\nexport function useSort () {\n const data = inject(VDataTableSortSymbol)\n\n if (!data) throw new Error('Missing sort!')\n\n return data\n}\n\nexport function useSortedItems <T extends Record<string, any>> (\n props: { customKeySort?: Record<string, DataTableCompareFunction> },\n items: Ref<T[]>,\n sortBy: Ref<readonly SortItem[]>,\n) {\n const locale = useLocale()\n const sortedItems = computed(() => {\n if (!sortBy.value.length) return items.value\n\n return sortItems(items.value, sortBy.value, locale.current.value, props.customKeySort)\n })\n\n return { sortedItems }\n}\n\nexport function sortItems<T extends Record<string, any>> (\n items: T[],\n sortByItems: readonly SortItem[],\n locale: string,\n customSorters?: Record<string, DataTableCompareFunction>\n): T[] {\n const stringCollator = new Intl.Collator(locale, { sensitivity: 'accent', usage: 'sort' })\n\n return [...items].sort((a, b) => {\n for (let i = 0; i < sortByItems.length; i++) {\n const sortKey = sortByItems[i].key\n const sortOrder = sortByItems[i].order ?? 'asc'\n\n if (sortOrder === false) continue\n\n let sortA = getObjectValueByPath(a.raw, sortKey)\n let sortB = getObjectValueByPath(b.raw, sortKey)\n\n if (sortOrder === 'desc') {\n [sortA, sortB] = [sortB, sortA]\n }\n\n if (customSorters?.[sortKey]) {\n const customResult = customSorters[sortKey](sortA, sortB)\n\n if (!customResult) continue\n\n return customResult\n }\n\n // Check if both cannot be evaluated\n if (sortA == null || sortB == null) {\n continue\n }\n\n // Dates should be compared numerically\n if (sortA instanceof Date && sortB instanceof Date) {\n return sortA.getTime() - sortB.getTime()\n }\n\n [sortA, sortB] = [sortA, sortB].map(s => (s || '').toString().toLocaleLowerCase())\n\n if (sortA !== sortB) {\n if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB)\n return stringCollator.compare(sortA, sortB)\n }\n }\n\n return 0\n })\n}\n"],"mappings":"AAAA;AAAA,SACSA,eAAe;AAAA,SACfC,SAAS,0CAElB;AACA,SAASC,QAAQ,EAAEC,MAAM,EAAEC,OAAO,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC7CC,oBAAoB,EAAEC,YAAY,mCAE3C;AAIA,OAAO,MAAMC,sBAAsB,GAAGD,YAAY,CAAC;EACjDE,MAAM,EAAE;IACNC,IAAI,EAAEC,KAAsC;IAC5CC,OAAO,EAAEA,CAAA,KAAO;EAClB,CAAC;EACDC,aAAa,EAAEC,MAA4D;EAC3EC,SAAS,EAAEC,OAAO;EAClBC,QAAQ,EAAED;AACZ,CAAC,EAAE,mBAAmB,CAAC;AAEvB,MAAME,oBAIJ,GAAGC,MAAM,CAACC,GAAG,CAAC,yBAAyB,CAAC;AAW1C,OAAO,SAASC,UAAUA,CAAEC,KAAgB,EAAE;EAC5C,MAAMb,MAAM,GAAGT,eAAe,CAACsB,KAAK,EAAE,QAAQ,CAAC;EAC/C,MAAML,QAAQ,GAAGZ,KAAK,CAACiB,KAAK,EAAE,UAAU,CAAC;EACzC,MAAMP,SAAS,GAAGV,KAAK,CAACiB,KAAK,EAAE,WAAW,CAAC;EAE3C,OAAO;IAAEb,MAAM;IAAEQ,QAAQ;IAAEF;EAAU,CAAC;AACxC;AAEA,OAAO,SAASQ,WAAWA,CAAEC,OAK5B,EAAE;EACD,MAAM;IAAEf,MAAM;IAAEQ,QAAQ;IAAEF,SAAS;IAAEU;EAAK,CAAC,GAAGD,OAAO;EAErD,MAAME,UAAU,GAAIC,MAA+B,IAAK;IACtD,IAAIC,SAAS,GAAGnB,MAAM,CAACoB,KAAK,CAACC,GAAG,CAACC,CAAC,KAAK;MAAE,GAAGA;IAAE,CAAC,CAAC,CAAC,IAAI,EAAE;IACvD,MAAMC,IAAI,GAAGJ,SAAS,CAACK,IAAI,CAACF,CAAC,IAAIA,CAAC,CAACG,GAAG,KAAKP,MAAM,CAACO,GAAG,CAAC;IAEtD,IAAI,CAACF,IAAI,EAAE;MACT,IAAIjB,SAAS,CAACc,KAAK,EAAED,SAAS,GAAG,CAAC,GAAGA,SAAS,EAAE;QAAEM,GAAG,EAAEP,MAAM,CAACO,GAAG;QAAEC,KAAK,EAAE;MAAM,CAAC,CAAC,MAC7EP,SAAS,GAAG,CAAC;QAAEM,GAAG,EAAEP,MAAM,CAACO,GAAG;QAAEC,KAAK,EAAE;MAAM,CAAC,CAAC;IACtD,CAAC,MAAM,IAAIH,IAAI,CAACG,KAAK,KAAK,MAAM,EAAE;MAChC,IAAIlB,QAAQ,CAACY,KAAK,EAAE;QAClBG,IAAI,CAACG,KAAK,GAAG,KAAK;MACpB,CAAC,MAAM;QACLP,SAAS,GAAGA,SAAS,CAACQ,MAAM,CAACL,CAAC,IAAIA,CAAC,CAACG,GAAG,KAAKP,MAAM,CAACO,GAAG,CAAC;MACzD;IACF,CAAC,MAAM;MACLF,IAAI,CAACG,KAAK,GAAG,MAAM;IACrB;IAEA1B,MAAM,CAACoB,KAAK,GAAGD,SAAS;IACxB,IAAIH,IAAI,EAAEA,IAAI,CAACI,KAAK,GAAG,CAAC;EAC1B,CAAC;EAED,SAASQ,QAAQA,CAAEV,MAA+B,EAAE;IAClD,OAAO,CAAC,CAAClB,MAAM,CAACoB,KAAK,CAACI,IAAI,CAACD,IAAI,IAAIA,IAAI,CAACE,GAAG,KAAKP,MAAM,CAACO,GAAG,CAAC;EAC7D;EAEA,MAAMI,IAAI,GAAG;IAAE7B,MAAM;IAAEiB,UAAU;IAAEW;EAAS,CAAC;EAE7CjC,OAAO,CAACc,oBAAoB,EAAEoB,IAAI,CAAC;EAEnC,OAAOA,IAAI;AACb;AAEA,OAAO,SAASC,OAAOA,CAAA,EAAI;EACzB,MAAMD,IAAI,GAAGnC,MAAM,CAACe,oBAAoB,CAAC;EAEzC,IAAI,CAACoB,IAAI,EAAE,MAAM,IAAIE,KAAK,CAAC,eAAe,CAAC;EAE3C,OAAOF,IAAI;AACb;AAEA,OAAO,SAASG,cAAcA,CAC5BnB,KAAmE,EACnEoB,KAAe,EACfjC,MAAgC,EAChC;EACA,MAAMkC,MAAM,GAAG1C,SAAS,EAAE;EAC1B,MAAM2C,WAAW,GAAG1C,QAAQ,CAAC,MAAM;IACjC,IAAI,CAACO,MAAM,CAACoB,KAAK,CAACgB,MAAM,EAAE,OAAOH,KAAK,CAACb,KAAK;IAE5C,OAAOiB,SAAS,CAACJ,KAAK,CAACb,KAAK,EAAEpB,MAAM,CAACoB,KAAK,EAAEc,MAAM,CAACI,OAAO,CAAClB,KAAK,EAAEP,KAAK,CAACT,aAAa,CAAC;EACxF,CAAC,CAAC;EAEF,OAAO;IAAE+B;EAAY,CAAC;AACxB;AAEA,OAAO,SAASE,SAASA,CACvBJ,KAAU,EACVM,WAAgC,EAChCL,MAAc,EACdM,aAAwD,EACnD;EACL,MAAMC,cAAc,GAAG,IAAIC,IAAI,CAACC,QAAQ,CAACT,MAAM,EAAE;IAAEU,WAAW,EAAE,QAAQ;IAAEC,KAAK,EAAE;EAAO,CAAC,CAAC;EAE1F,OAAO,CAAC,GAAGZ,KAAK,CAAC,CAACa,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;IAC/B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGV,WAAW,CAACH,MAAM,EAAEa,CAAC,EAAE,EAAE;MAC3C,MAAMC,OAAO,GAAGX,WAAW,CAACU,CAAC,CAAC,CAACxB,GAAG;MAClC,MAAM0B,SAAS,GAAGZ,WAAW,CAACU,CAAC,CAAC,CAACvB,KAAK,IAAI,KAAK;MAE/C,IAAIyB,SAAS,KAAK,KAAK,EAAE;MAEzB,IAAIC,KAAK,GAAGvD,oBAAoB,CAACkD,CAAC,CAACM,GAAG,EAAEH,OAAO,CAAC;MAChD,IAAII,KAAK,GAAGzD,oBAAoB,CAACmD,CAAC,CAACK,GAAG,EAAEH,OAAO,CAAC;MAEhD,IAAIC,SAAS,KAAK,MAAM,EAAE;QACxB,CAACC,KAAK,EAAEE,KAAK,CAAC,GAAG,CAACA,KAAK,EAAEF,KAAK,CAAC;MACjC;MAEA,IAAIZ,aAAa,GAAGU,OAAO,CAAC,EAAE;QAC5B,MAAMK,YAAY,GAAGf,aAAa,CAACU,OAAO,CAAC,CAACE,KAAK,EAAEE,KAAK,CAAC;QAEzD,IAAI,CAACC,YAAY,EAAE;QAEnB,OAAOA,YAAY;MACrB;;MAEA;MACA,IAAIH,KAAK,IAAI,IAAI,IAAIE,KAAK,IAAI,IAAI,EAAE;QAClC;MACF;;MAEA;MACA,IAAIF,KAAK,YAAYI,IAAI,IAAIF,KAAK,YAAYE,IAAI,EAAE;QAClD,OAAOJ,KAAK,CAACK,OAAO,EAAE,GAAGH,KAAK,CAACG,OAAO,EAAE;MAC1C;MAEA,CAACL,KAAK,EAAEE,KAAK,CAAC,GAAG,CAACF,KAAK,EAAEE,KAAK,CAAC,CAACjC,GAAG,CAACqC,CAAC,IAAI,CAACA,CAAC,IAAI,EAAE,EAAEC,QAAQ,EAAE,CAACC,iBAAiB,EAAE,CAAC;MAElF,IAAIR,KAAK,KAAKE,KAAK,EAAE;QACnB,IAAI,CAACO,KAAK,CAACT,KAAK,CAAC,IAAI,CAACS,KAAK,CAACP,KAAK,CAAC,EAAE,OAAOQ,MAAM,CAACV,KAAK,CAAC,GAAGU,MAAM,CAACR,KAAK,CAAC;QACxE,OAAOb,cAAc,CAACsB,OAAO,CAACX,KAAK,EAAEE,KAAK,CAAC;MAC7C;IACF;IAEA,OAAO,CAAC;EACV,CAAC,CAAC;AACJ"}
1
+ {"version":3,"file":"sort.mjs","names":["useLocale","useProxiedModel","computed","inject","provide","toRef","getObjectValueByPath","propsFactory","makeDataTableSortProps","sortBy","type","Array","default","customKeySort","Object","multiSort","Boolean","mustSort","VDataTableSortSymbol","Symbol","for","createSort","props","provideSort","options","page","toggleSort","column","newSortBy","value","map","x","item","find","key","order","filter","isSorted","data","useSort","Error","useSortedItems","items","locale","sortedItems","length","sortItems","current","sortByItems","customSorters","stringCollator","Intl","Collator","sensitivity","usage","sort","a","b","i","sortKey","sortOrder","sortA","raw","sortB","customResult","Date","getTime","s","toString","toLocaleLowerCase","isNaN","Number","compare"],"sources":["../../../../src/labs/VDataTable/composables/sort.ts"],"sourcesContent":["// Composables\nimport { useLocale } from '@/composables'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, toRef } from 'vue'\nimport { getObjectValueByPath, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableCompareFunction, InternalDataTableHeader } from '../types'\n\nexport const makeDataTableSortProps = propsFactory({\n sortBy: {\n type: Array as PropType<readonly SortItem[]>,\n default: () => ([]),\n },\n customKeySort: Object as PropType<Record<string, DataTableCompareFunction>>,\n multiSort: Boolean,\n mustSort: Boolean,\n}, 'DataTable-sort')\n\nconst VDataTableSortSymbol: InjectionKey<{\n sortBy: Ref<readonly SortItem[]>\n toggleSort: (column: InternalDataTableHeader) => void\n isSorted: (column: InternalDataTableHeader) => boolean\n}> = Symbol.for('vuetify:data-table-sort')\n\nexport type SortItem = { key: string, order?: boolean | 'asc' | 'desc' }\n\ntype SortProps = {\n sortBy: readonly SortItem[]\n 'onUpdate:sortBy': ((value: any) => void) | undefined\n mustSort: boolean\n multiSort: boolean\n}\n\nexport function createSort (props: SortProps) {\n const sortBy = useProxiedModel(props, 'sortBy')\n const mustSort = toRef(props, 'mustSort')\n const multiSort = toRef(props, 'multiSort')\n\n return { sortBy, mustSort, multiSort }\n}\n\nexport function provideSort (options: {\n sortBy: Ref<readonly SortItem[]>\n mustSort: Ref<boolean>\n multiSort: Ref<boolean>\n page?: Ref<number>\n}) {\n const { sortBy, mustSort, multiSort, page } = options\n\n const toggleSort = (column: InternalDataTableHeader) => {\n let newSortBy = sortBy.value.map(x => ({ ...x })) ?? []\n const item = newSortBy.find(x => x.key === column.key)\n\n if (!item) {\n if (multiSort.value) newSortBy = [...newSortBy, { key: column.key, order: 'asc' }]\n else newSortBy = [{ key: column.key, order: 'asc' }]\n } else if (item.order === 'desc') {\n if (mustSort.value) {\n item.order = 'asc'\n } else {\n newSortBy = newSortBy.filter(x => x.key !== column.key)\n }\n } else {\n item.order = 'desc'\n }\n\n sortBy.value = newSortBy\n if (page) page.value = 1\n }\n\n function isSorted (column: InternalDataTableHeader) {\n return !!sortBy.value.find(item => item.key === column.key)\n }\n\n const data = { sortBy, toggleSort, isSorted }\n\n provide(VDataTableSortSymbol, data)\n\n return data\n}\n\nexport function useSort () {\n const data = inject(VDataTableSortSymbol)\n\n if (!data) throw new Error('Missing sort!')\n\n return data\n}\n\nexport function useSortedItems <T extends Record<string, any>> (\n props: { customKeySort?: Record<string, DataTableCompareFunction> },\n items: Ref<T[]>,\n sortBy: Ref<readonly SortItem[]>,\n) {\n const locale = useLocale()\n const sortedItems = computed(() => {\n if (!sortBy.value.length) return items.value\n\n return sortItems(items.value, sortBy.value, locale.current.value, props.customKeySort)\n })\n\n return { sortedItems }\n}\n\nexport function sortItems<T extends Record<string, any>> (\n items: T[],\n sortByItems: readonly SortItem[],\n locale: string,\n customSorters?: Record<string, DataTableCompareFunction>\n): T[] {\n const stringCollator = new Intl.Collator(locale, { sensitivity: 'accent', usage: 'sort' })\n\n return [...items].sort((a, b) => {\n for (let i = 0; i < sortByItems.length; i++) {\n const sortKey = sortByItems[i].key\n const sortOrder = sortByItems[i].order ?? 'asc'\n\n if (sortOrder === false) continue\n\n let sortA = getObjectValueByPath(a.raw, sortKey)\n let sortB = getObjectValueByPath(b.raw, sortKey)\n\n if (sortOrder === 'desc') {\n [sortA, sortB] = [sortB, sortA]\n }\n\n if (customSorters?.[sortKey]) {\n const customResult = customSorters[sortKey](sortA, sortB)\n\n if (!customResult) continue\n\n return customResult\n }\n\n // Dates should be compared numerically\n if (sortA instanceof Date && sortB instanceof Date) {\n return sortA.getTime() - sortB.getTime()\n }\n\n [sortA, sortB] = [sortA, sortB].map(s => s != null ? s.toString().toLocaleLowerCase() : s)\n\n if (sortA !== sortB) {\n if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB)\n return stringCollator.compare(sortA, sortB)\n }\n }\n\n return 0\n })\n}\n"],"mappings":"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"}