vuetify 3.2.4 → 3.3.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 (335) hide show
  1. package/dist/_component-variables-labs.sass +1 -0
  2. package/dist/json/attributes.json +2503 -2151
  3. package/dist/json/importMap-labs.json +12 -4
  4. package/dist/json/importMap.json +28 -28
  5. package/dist/json/tags.json +107 -9
  6. package/dist/json/web-types.json +10785 -7110
  7. package/dist/vuetify-labs.css +263 -153
  8. package/dist/vuetify-labs.d.ts +35870 -16257
  9. package/dist/vuetify-labs.esm.js +1466 -934
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +1465 -933
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +246 -168
  14. package/dist/vuetify.d.ts +27883 -14061
  15. package/dist/vuetify.esm.js +477 -300
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +476 -299
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +811 -806
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/blueprints/{index.d.ts → index.d.mts} +5 -1
  23. package/lib/blueprints/{md1.d.ts → md1.d.mts} +5 -1
  24. package/lib/blueprints/{md2.d.ts → md2.d.mts} +5 -1
  25. package/lib/blueprints/{md3.d.ts → md3.d.mts} +5 -1
  26. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  27. package/lib/components/VAlert/{index.d.ts → index.d.mts} +284 -69
  28. package/lib/components/VApp/{index.d.ts → index.d.mts} +80 -19
  29. package/lib/components/VAppBar/{index.d.ts → index.d.mts} +391 -119
  30. package/lib/components/VAutocomplete/VAutocomplete.css +15 -9
  31. package/lib/components/VAutocomplete/VAutocomplete.mjs +82 -34
  32. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  33. package/lib/components/VAutocomplete/VAutocomplete.sass +15 -11
  34. package/lib/components/VAutocomplete/index.d.mts +2048 -0
  35. package/lib/components/VAvatar/{index.d.ts → index.d.mts} +85 -30
  36. package/lib/components/VBadge/_variables.scss +1 -1
  37. package/lib/components/VBadge/{index.d.ts → index.d.mts} +105 -42
  38. package/lib/components/VBanner/{index.d.ts → index.d.mts} +282 -63
  39. package/lib/components/VBottomNavigation/{index.d.ts → index.d.mts} +93 -45
  40. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +1 -1
  41. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  42. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +1 -1
  43. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
  44. package/lib/components/VBreadcrumbs/{index.d.ts → index.d.mts} +348 -212
  45. package/lib/components/VBtn/{index.d.ts → index.d.mts} +139 -53
  46. package/lib/components/VBtnGroup/{index.d.ts → index.d.mts} +84 -27
  47. package/lib/components/VBtnToggle/{index.d.ts → index.d.mts} +88 -35
  48. package/lib/components/VCalendar/util/props.mjs.map +1 -1
  49. package/lib/components/VCard/VCard.mjs.map +1 -1
  50. package/lib/components/VCard/{index.d.ts → index.d.mts} +957 -419
  51. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  52. package/lib/components/VCarousel/{index.d.ts → index.d.mts} +616 -111
  53. package/lib/components/VCheckbox/VCheckboxBtn.mjs +3 -3
  54. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
  55. package/lib/components/VCheckbox/{index.d.ts → index.d.mts} +408 -141
  56. package/lib/components/VChip/VChip.css +4 -2
  57. package/lib/components/VChip/VChip.mjs.map +1 -1
  58. package/lib/components/VChip/VChip.sass +3 -2
  59. package/lib/components/VChip/{index.d.ts → index.d.mts} +376 -85
  60. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  61. package/lib/components/VChipGroup/index.d.mts +470 -0
  62. package/lib/components/VCode/{index.d.ts → index.d.mts} +78 -17
  63. package/lib/components/VColorPicker/VColorPicker.mjs +9 -4
  64. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  65. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  66. package/lib/components/VColorPicker/VColorPickerSwatches.mjs +5 -4
  67. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  68. package/lib/components/VColorPicker/{index.d.ts → index.d.mts} +241 -109
  69. package/lib/components/VColorPicker/util/index.mjs +2 -22
  70. package/lib/components/VColorPicker/util/index.mjs.map +1 -1
  71. package/lib/components/VCombobox/VCombobox.css +15 -9
  72. package/lib/components/VCombobox/VCombobox.mjs +82 -37
  73. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  74. package/lib/components/VCombobox/VCombobox.sass +15 -11
  75. package/lib/components/VCombobox/index.d.mts +2060 -0
  76. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  77. package/lib/components/VCounter/{index.d.ts → index.d.mts} +105 -45
  78. package/lib/components/VDefaultsProvider/{index.d.ts → index.d.mts} +82 -20
  79. package/lib/components/VDialog/{index.d.ts → index.d.mts} +571 -305
  80. package/lib/components/VDivider/{index.d.ts → index.d.mts} +81 -21
  81. package/lib/components/VExpansionPanel/{index.d.ts → index.d.mts} +374 -110
  82. package/lib/components/VField/VField.css +49 -16
  83. package/lib/components/VField/VField.mjs +12 -2
  84. package/lib/components/VField/VField.mjs.map +1 -1
  85. package/lib/components/VField/VField.sass +40 -11
  86. package/lib/components/VField/_variables.scss +8 -2
  87. package/lib/components/VField/index.d.mts +682 -0
  88. package/lib/components/VFileInput/VFileInput.css +3 -0
  89. package/lib/components/VFileInput/VFileInput.mjs +7 -1
  90. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  91. package/lib/components/VFileInput/VFileInput.sass +6 -1
  92. package/lib/components/VFileInput/{index.d.ts → index.d.mts} +1033 -399
  93. package/lib/components/VFooter/{index.d.ts → index.d.mts} +85 -29
  94. package/lib/components/VForm/VForm.mjs.map +1 -1
  95. package/lib/components/VForm/index.d.mts +993 -0
  96. package/lib/components/VGrid/{index.d.ts → index.d.mts} +334 -100
  97. package/lib/components/VHover/VHover.mjs.map +1 -1
  98. package/lib/components/VHover/{index.d.ts → index.d.mts} +120 -37
  99. package/lib/components/VIcon/{index.d.ts → index.d.mts} +322 -81
  100. package/lib/components/VImg/VImg.css +2 -4
  101. package/lib/components/VImg/VImg.mjs +25 -24
  102. package/lib/components/VImg/VImg.mjs.map +1 -1
  103. package/lib/components/VImg/VImg.sass +4 -3
  104. package/lib/components/VImg/{index.d.ts → index.d.mts} +177 -40
  105. package/lib/components/VInput/VInput.css +10 -4
  106. package/lib/components/VInput/VInput.mjs +9 -3
  107. package/lib/components/VInput/VInput.mjs.map +1 -1
  108. package/lib/components/VInput/VInput.sass +7 -2
  109. package/lib/components/VInput/_variables.scss +1 -0
  110. package/lib/components/VInput/{index.d.ts → index.d.mts} +237 -93
  111. package/lib/components/VItemGroup/VItem.mjs +1 -1
  112. package/lib/components/VItemGroup/VItem.mjs.map +1 -1
  113. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  114. package/lib/components/VItemGroup/index.d.mts +781 -0
  115. package/lib/components/VKbd/{index.d.ts → index.d.mts} +78 -17
  116. package/lib/components/VLabel/{index.d.ts → index.d.mts} +79 -18
  117. package/lib/components/VLayout/{index.d.ts → index.d.mts} +161 -42
  118. package/lib/components/VLazy/{index.d.ts → index.d.mts} +82 -27
  119. package/lib/components/VList/VList.mjs +6 -1
  120. package/lib/components/VList/VList.mjs.map +1 -1
  121. package/lib/components/VList/VListChildren.mjs +4 -8
  122. package/lib/components/VList/VListChildren.mjs.map +1 -1
  123. package/lib/components/VList/VListGroup.mjs +3 -0
  124. package/lib/components/VList/VListGroup.mjs.map +1 -1
  125. package/lib/components/VList/VListItem.mjs +11 -6
  126. package/lib/components/VList/VListItem.mjs.map +1 -1
  127. package/lib/components/VList/{index.d.ts → index.d.mts} +1245 -619
  128. package/lib/components/VLocaleProvider/{index.d.ts → index.d.mts} +80 -19
  129. package/lib/components/VMain/{index.d.ts → index.d.mts} +79 -19
  130. package/lib/components/VMenu/{index.d.ts → index.d.mts} +567 -299
  131. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  132. package/lib/components/VMessages/{index.d.ts → index.d.mts} +87 -34
  133. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +2 -0
  134. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  135. package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +2 -0
  136. package/lib/components/VNavigationDrawer/{index.d.ts → index.d.mts} +139 -57
  137. package/lib/components/VOverlay/{index.d.ts → index.d.mts} +159 -75
  138. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  139. package/lib/components/VPagination/{index.d.ts → index.d.mts} +229 -125
  140. package/lib/components/VParallax/{index.d.ts → index.d.mts} +118 -18
  141. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  142. package/lib/components/VProgressCircular/{index.d.ts → index.d.mts} +148 -45
  143. package/lib/components/VProgressLinear/{index.d.ts → index.d.mts} +119 -52
  144. package/lib/components/VRadio/{index.d.ts → index.d.mts} +139 -40
  145. package/lib/components/VRadioGroup/{index.d.ts → index.d.mts} +265 -93
  146. package/lib/components/VRangeSlider/VRangeSlider.mjs +4 -4
  147. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  148. package/lib/components/VRangeSlider/{index.d.ts → index.d.mts} +313 -132
  149. package/lib/components/VRating/{index.d.ts → index.d.mts} +108 -49
  150. package/lib/components/VResponsive/VResponsive.css +13 -5
  151. package/lib/components/VResponsive/VResponsive.mjs +4 -1
  152. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  153. package/lib/components/VResponsive/VResponsive.sass +12 -4
  154. package/lib/components/VResponsive/{index.d.ts → index.d.mts} +99 -16
  155. package/lib/components/VSelect/VSelect.css +15 -9
  156. package/lib/components/VSelect/VSelect.mjs +23 -18
  157. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  158. package/lib/components/VSelect/VSelect.sass +14 -11
  159. package/lib/components/VSelect/index.d.mts +1986 -0
  160. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  161. package/lib/components/VSelectionControl/index.d.mts +403 -0
  162. package/lib/components/VSelectionControlGroup/{index.d.ts → index.d.mts} +90 -38
  163. package/lib/components/VSheet/{index.d.ts → index.d.mts} +81 -21
  164. package/lib/components/VSlideGroup/{index.d.ts → index.d.mts} +236 -61
  165. package/lib/components/VSlider/VSlider.mjs +2 -2
  166. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  167. package/lib/components/VSlider/VSliderThumb.mjs +1 -1
  168. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  169. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  170. package/lib/components/VSlider/{index.d.ts → index.d.mts} +308 -126
  171. package/lib/components/VSlider/slider.mjs +8 -2
  172. package/lib/components/VSlider/slider.mjs.map +1 -1
  173. package/lib/components/VSnackbar/{index.d.ts → index.d.mts} +566 -297
  174. package/lib/components/VSwitch/VSwitch.css +3 -3
  175. package/lib/components/VSwitch/VSwitch.sass +4 -3
  176. package/lib/components/VSwitch/{index.d.ts → index.d.mts} +284 -101
  177. package/lib/components/VSystemBar/{index.d.ts → index.d.mts} +84 -27
  178. package/lib/components/VTable/{index.d.ts → index.d.mts} +122 -26
  179. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  180. package/lib/components/VTabs/{index.d.ts → index.d.mts} +203 -113
  181. package/lib/components/VTextField/VTextField.css +9 -1
  182. package/lib/components/VTextField/VTextField.mjs +4 -2
  183. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  184. package/lib/components/VTextField/VTextField.sass +8 -1
  185. package/lib/components/VTextField/index.d.mts +2735 -0
  186. package/lib/components/VTextarea/VTextarea.mjs +13 -4
  187. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  188. package/lib/components/VTextarea/{index.d.ts → index.d.mts} +933 -393
  189. package/lib/components/VThemeProvider/{index.d.ts → index.d.mts} +80 -20
  190. package/lib/components/VTimeline/{index.d.ts → index.d.mts} +201 -62
  191. package/lib/components/VToolbar/{index.d.ts → index.d.mts} +325 -73
  192. package/lib/components/VTooltip/{index.d.ts → index.d.mts} +568 -297
  193. package/lib/components/VValidation/VValidation.mjs.map +1 -1
  194. package/lib/components/VValidation/index.d.mts +634 -0
  195. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  196. package/lib/components/VVirtualScroll/index.d.mts +229 -0
  197. package/lib/components/VWindow/{index.d.ts → index.d.mts} +271 -68
  198. package/lib/components/{index.d.ts → index.d.mts} +27847 -14031
  199. package/lib/components/index.mjs +2 -3
  200. package/lib/components/index.mjs.map +1 -1
  201. package/lib/components/transitions/{index.d.ts → index.d.mts} +1330 -355
  202. package/lib/composables/display.mjs +6 -6
  203. package/lib/composables/display.mjs.map +1 -1
  204. package/lib/composables/filter.mjs +5 -4
  205. package/lib/composables/filter.mjs.map +1 -1
  206. package/lib/composables/form.mjs +2 -3
  207. package/lib/composables/form.mjs.map +1 -1
  208. package/lib/composables/forwardRefs.mjs.map +1 -1
  209. package/lib/composables/group.mjs +13 -13
  210. package/lib/composables/group.mjs.map +1 -1
  211. package/lib/composables/icons.mjs.map +1 -1
  212. package/lib/composables/{items.mjs → list-items.mjs} +9 -6
  213. package/lib/composables/list-items.mjs.map +1 -0
  214. package/lib/composables/nested/nested.mjs.map +1 -1
  215. package/lib/composables/nested/selectStrategies.mjs.map +1 -1
  216. package/lib/composables/scroll.mjs +2 -2
  217. package/lib/composables/scroll.mjs.map +1 -1
  218. package/lib/composables/validation.mjs +44 -16
  219. package/lib/composables/validation.mjs.map +1 -1
  220. package/lib/entry-bundler.mjs +1 -1
  221. package/lib/framework.mjs +1 -1
  222. package/lib/framework.mjs.map +1 -1
  223. package/lib/{index.d.ts → index.d.mts} +16 -10
  224. package/lib/labs/VBottomSheet/VBottomSheet.css +33 -0
  225. package/lib/labs/VBottomSheet/VBottomSheet.mjs +40 -0
  226. package/lib/labs/VBottomSheet/VBottomSheet.mjs.map +1 -0
  227. package/lib/labs/VBottomSheet/VBottomSheet.sass +37 -0
  228. package/lib/labs/VBottomSheet/_variables.scss +5 -0
  229. package/lib/labs/VBottomSheet/index.d.mts +871 -0
  230. package/lib/labs/VBottomSheet/index.mjs +2 -0
  231. package/lib/labs/VBottomSheet/index.mjs.map +1 -0
  232. package/lib/labs/VDataIterator/VDataIterator.mjs +160 -0
  233. package/lib/labs/VDataIterator/VDataIterator.mjs.map +1 -0
  234. package/lib/labs/VDataIterator/composables/items.mjs +37 -0
  235. package/lib/labs/VDataIterator/composables/items.mjs.map +1 -0
  236. package/lib/labs/VDataIterator/index.d.mts +704 -0
  237. package/lib/labs/VDataIterator/index.mjs +2 -0
  238. package/lib/labs/VDataIterator/index.mjs.map +1 -0
  239. package/lib/labs/VDataTable/VDataTable.mjs +58 -20
  240. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  241. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  242. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
  243. package/lib/labs/VDataTable/VDataTableHeaders.mjs +17 -10
  244. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  245. package/lib/labs/VDataTable/VDataTableRows.mjs +1 -1
  246. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  247. package/lib/labs/VDataTable/VDataTableServer.mjs +50 -14
  248. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  249. package/lib/labs/VDataTable/VDataTableVirtual.mjs +50 -13
  250. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  251. package/lib/labs/VDataTable/composables/expand.mjs.map +1 -1
  252. package/lib/labs/VDataTable/composables/group.mjs +8 -6
  253. package/lib/labs/VDataTable/composables/group.mjs.map +1 -1
  254. package/lib/labs/VDataTable/composables/headers.mjs +2 -3
  255. package/lib/labs/VDataTable/composables/headers.mjs.map +1 -1
  256. package/lib/labs/VDataTable/composables/items.mjs +31 -32
  257. package/lib/labs/VDataTable/composables/items.mjs.map +1 -1
  258. package/lib/labs/VDataTable/composables/paginate.mjs +14 -2
  259. package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
  260. package/lib/labs/VDataTable/composables/select.mjs +3 -3
  261. package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
  262. package/lib/labs/VDataTable/composables/sort.mjs +17 -17
  263. package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
  264. package/lib/labs/VDataTable/composables/virtual.mjs.map +1 -1
  265. package/lib/labs/VDataTable/index.d.mts +9681 -0
  266. package/lib/labs/VDataTable/index.mjs +1 -1
  267. package/lib/labs/VDataTable/index.mjs.map +1 -1
  268. package/lib/labs/VDataTable/types.mjs.map +1 -1
  269. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  270. package/lib/labs/VInfiniteScroll/{index.d.ts → index.d.mts} +161 -54
  271. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  272. package/lib/labs/VSkeletonLoader/{index.d.ts → index.d.mts} +92 -31
  273. package/lib/labs/components.d.mts +11806 -0
  274. package/lib/labs/components.mjs +2 -0
  275. package/lib/labs/components.mjs.map +1 -1
  276. package/lib/labs/date/date.mjs.map +1 -1
  277. package/lib/labs/date/index.d.mts +70 -0
  278. package/lib/labs/date/index.mjs +1 -1
  279. package/lib/labs/date/index.mjs.map +1 -1
  280. package/lib/styles/settings/_variables.scss +3 -3
  281. package/lib/util/colorUtils.mjs +68 -3
  282. package/lib/util/colorUtils.mjs.map +1 -1
  283. package/lib/util/console.mjs +12 -81
  284. package/lib/util/console.mjs.map +1 -1
  285. package/lib/util/defineComponent.mjs.map +1 -1
  286. package/lib/util/helpers.mjs +4 -18
  287. package/lib/util/helpers.mjs.map +1 -1
  288. package/lib/util/propsFactory.mjs +2 -0
  289. package/lib/util/propsFactory.mjs.map +1 -1
  290. package/package.json +13 -9
  291. package/lib/components/VAutocomplete/index.d.ts +0 -2050
  292. package/lib/components/VBottomSheet/VBottomSheet.mjs +0 -29
  293. package/lib/components/VBottomSheet/VBottomSheet.mjs.map +0 -1
  294. package/lib/components/VBottomSheet/VBottomSheet.sass +0 -23
  295. package/lib/components/VBottomSheet/_variables.scss +0 -3
  296. package/lib/components/VBottomSheet/index.mjs +0 -4
  297. package/lib/components/VBottomSheet/index.mjs.map +0 -1
  298. package/lib/components/VChipGroup/index.d.ts +0 -280
  299. package/lib/components/VCombobox/index.d.ts +0 -2086
  300. package/lib/components/VData/VData.mjs +0 -374
  301. package/lib/components/VData/VData.mjs.map +0 -1
  302. package/lib/components/VData/index.mjs +0 -4
  303. package/lib/components/VData/index.mjs.map +0 -1
  304. package/lib/components/VDataIterator/VDataFooter.mjs +0 -194
  305. package/lib/components/VDataIterator/VDataFooter.mjs.map +0 -1
  306. package/lib/components/VDataIterator/VDataFooter.sass +0 -71
  307. package/lib/components/VDataIterator/VDataIterator.mjs +0 -316
  308. package/lib/components/VDataIterator/VDataIterator.mjs.map +0 -1
  309. package/lib/components/VDataIterator/_variables.scss +0 -13
  310. package/lib/components/VDataIterator/index.mjs +0 -10
  311. package/lib/components/VDataIterator/index.mjs.map +0 -1
  312. package/lib/components/VField/index.d.ts +0 -563
  313. package/lib/components/VForm/index.d.ts +0 -284
  314. package/lib/components/VItemGroup/index.d.ts +0 -396
  315. package/lib/components/VSelect/index.d.ts +0 -1981
  316. package/lib/components/VSelectionControl/index.d.ts +0 -387
  317. package/lib/components/VTextField/index.d.ts +0 -2061
  318. package/lib/components/VValidation/index.d.ts +0 -243
  319. package/lib/components/VVirtualScroll/index.d.ts +0 -197
  320. package/lib/composables/items.mjs.map +0 -1
  321. package/lib/labs/VDataTable/index.d.ts +0 -5415
  322. package/lib/labs/components.d.ts +0 -5945
  323. package/lib/labs/date/index.d.ts +0 -38
  324. /package/lib/components/VNoSsr/{index.d.ts → index.d.mts} +0 -0
  325. /package/lib/directives/{index.d.ts → index.d.mts} +0 -0
  326. /package/lib/iconsets/{fa-svg.d.ts → fa-svg.d.mts} +0 -0
  327. /package/lib/iconsets/{fa.d.ts → fa.d.mts} +0 -0
  328. /package/lib/iconsets/{fa4.d.ts → fa4.d.mts} +0 -0
  329. /package/lib/iconsets/{md.d.ts → md.d.mts} +0 -0
  330. /package/lib/iconsets/{mdi-svg.d.ts → mdi-svg.d.mts} +0 -0
  331. /package/lib/iconsets/{mdi.d.ts → mdi.d.mts} +0 -0
  332. /package/lib/labs/date/adapters/{vuetify.d.ts → vuetify.d.mts} +0 -0
  333. /package/lib/locale/adapters/{vue-i18n.d.ts → vue-i18n.d.mts} +0 -0
  334. /package/lib/locale/adapters/{vuetify.d.ts → vuetify.d.mts} +0 -0
  335. /package/lib/locale/{index.d.ts → index.d.mts} +0 -0
@@ -1,43 +1,42 @@
1
- // Composables
2
- import { makeItemsProps, useItems } from "../../../composables/items.mjs"; // Utilities
1
+ // Utilities
3
2
  import { computed } from 'vue';
4
3
  import { getPropertyFromItem, propsFactory } from "../../../util/index.mjs"; // Types
4
+ // Composables
5
5
  export const makeDataTableItemProps = propsFactory({
6
- // TODO: Worth it to make specific datatable implementation
7
- // without title, children?
8
- ...makeItemsProps({
9
- itemValue: 'id'
10
- })
6
+ items: {
7
+ type: Array,
8
+ default: () => []
9
+ },
10
+ itemValue: {
11
+ type: [String, Array, Function],
12
+ default: 'value'
13
+ },
14
+ returnObject: Boolean
11
15
  }, 'v-data-table-item');
12
- function add(obj, key, value) {
13
- const path = key.split('.');
14
- while (path.length > 1) {
15
- const part = path.shift();
16
- if (obj[part] == null) {
17
- obj[part] = {};
18
- }
19
- if (typeof obj[part] === 'object') {
20
- obj = obj[part];
21
- }
16
+ export function transformItem(props, item, columns) {
17
+ const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue);
18
+ const itemColumns = columns.reduce((obj, column) => {
19
+ obj[column.key] = getPropertyFromItem(item, column.value ?? column.key);
20
+ return obj;
21
+ }, {});
22
+ return {
23
+ type: 'item',
24
+ value,
25
+ columns: itemColumns,
26
+ raw: item
27
+ };
28
+ }
29
+ export function transformItems(props, items, columns) {
30
+ const array = [];
31
+ for (const item of items) {
32
+ array.push(transformItem(props, item, columns));
22
33
  }
23
- obj[path[0]] = value;
34
+ return array;
24
35
  }
25
36
  export function useDataTableItems(props, columns) {
26
- const {
27
- items
28
- } = useItems(props);
29
- const dataTableItems = computed(() => items.value.map(item => {
30
- return {
31
- ...item,
32
- type: 'item',
33
- columns: columns.value.reduce((obj, column) => {
34
- add(obj, column.key, getPropertyFromItem(item.raw, column.value ?? column.key));
35
- return obj;
36
- }, {})
37
- };
38
- }));
37
+ const items = computed(() => transformItems(props, props.items, columns.value));
39
38
  return {
40
- items: dataTableItems
39
+ items
41
40
  };
42
41
  }
43
42
  //# sourceMappingURL=items.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"items.mjs","names":["makeItemsProps","useItems","computed","getPropertyFromItem","propsFactory","makeDataTableItemProps","itemValue","add","obj","key","value","path","split","length","part","shift","useDataTableItems","props","columns","items","dataTableItems","map","item","type","reduce","column","raw"],"sources":["../../../../src/labs/VDataTable/composables/items.ts"],"sourcesContent":["// Composables\nimport { makeItemsProps, useItems } from '@/composables/items'\n\n// Utilities\nimport { computed } from 'vue'\nimport { getPropertyFromItem, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { ItemProps } from '@/composables/items'\nimport type { DataTableItem, InternalDataTableHeader } from '../types'\n\nexport const makeDataTableItemProps = propsFactory({\n // TODO: Worth it to make specific datatable implementation\n // without title, children?\n ...makeItemsProps({\n itemValue: 'id',\n }),\n}, 'v-data-table-item')\n\nfunction add (obj: Record<string, unknown>, key: string, value: unknown) {\n const path = key.split('.')\n\n while (path.length > 1) {\n const part = path.shift()!\n if (obj[part] == null) {\n obj[part] = {}\n }\n\n if (typeof obj[part] === 'object') {\n obj = obj[part] as Record<string, unknown>\n }\n }\n\n obj[path[0]] = value\n}\n\nexport function useDataTableItems (props: ItemProps, columns: Ref<InternalDataTableHeader[]>) {\n const { items } = useItems(props)\n\n const dataTableItems = computed<DataTableItem[]>(() => items.value.map(item => {\n return {\n ...item,\n type: 'item',\n columns: columns.value.reduce((obj, column) => {\n add(obj, column.key, getPropertyFromItem(item.raw, column.value ?? column.key))\n return obj\n }, {} as Record<string, unknown>),\n }\n }))\n\n return { items: dataTableItems }\n}\n"],"mappings":"AAAA;AAAA,SACSA,cAAc,EAAEC,QAAQ,0CAEjC;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,mBAAmB,EAAEC,YAAY,mCAE1C;AAKA,OAAO,MAAMC,sBAAsB,GAAGD,YAAY,CAAC;EACjD;EACA;EACA,GAAGJ,cAAc,CAAC;IAChBM,SAAS,EAAE;EACb,CAAC;AACH,CAAC,EAAE,mBAAmB,CAAC;AAEvB,SAASC,GAAGA,CAAEC,GAA4B,EAAEC,GAAW,EAAEC,KAAc,EAAE;EACvE,MAAMC,IAAI,GAAGF,GAAG,CAACG,KAAK,CAAC,GAAG,CAAC;EAE3B,OAAOD,IAAI,CAACE,MAAM,GAAG,CAAC,EAAE;IACtB,MAAMC,IAAI,GAAGH,IAAI,CAACI,KAAK,EAAG;IAC1B,IAAIP,GAAG,CAACM,IAAI,CAAC,IAAI,IAAI,EAAE;MACrBN,GAAG,CAACM,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB;IAEA,IAAI,OAAON,GAAG,CAACM,IAAI,CAAC,KAAK,QAAQ,EAAE;MACjCN,GAAG,GAAGA,GAAG,CAACM,IAAI,CAA4B;IAC5C;EACF;EAEAN,GAAG,CAACG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAGD,KAAK;AACtB;AAEA,OAAO,SAASM,iBAAiBA,CAAEC,KAAgB,EAAEC,OAAuC,EAAE;EAC5F,MAAM;IAAEC;EAAM,CAAC,GAAGlB,QAAQ,CAACgB,KAAK,CAAC;EAEjC,MAAMG,cAAc,GAAGlB,QAAQ,CAAkB,MAAMiB,KAAK,CAACT,KAAK,CAACW,GAAG,CAACC,IAAI,IAAI;IAC7E,OAAO;MACL,GAAGA,IAAI;MACPC,IAAI,EAAE,MAAM;MACZL,OAAO,EAAEA,OAAO,CAACR,KAAK,CAACc,MAAM,CAAC,CAAChB,GAAG,EAAEiB,MAAM,KAAK;QAC7ClB,GAAG,CAACC,GAAG,EAAEiB,MAAM,CAAChB,GAAG,EAAEN,mBAAmB,CAACmB,IAAI,CAACI,GAAG,EAAED,MAAM,CAACf,KAAK,IAAIe,MAAM,CAAChB,GAAG,CAAC,CAAC;QAC/E,OAAOD,GAAG;MACZ,CAAC,EAAE,CAAC,CAAC;IACP,CAAC;EACH,CAAC,CAAC,CAAC;EAEH,OAAO;IAAEW,KAAK,EAAEC;EAAe,CAAC;AAClC"}
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,7 +1,7 @@
1
1
  // Composables
2
2
  import { useProxiedModel } from "../../../composables/proxiedModel.mjs"; // Utilities
3
3
  import { computed, inject, provide, watchEffect } from 'vue';
4
- import { propsFactory } from "../../../util/index.mjs"; // Types
4
+ import { clamp, propsFactory } from "../../../util/index.mjs"; // Types
5
5
  export const makeDataTablePaginateProps = propsFactory({
6
6
  page: {
7
7
  type: [Number, String],
@@ -48,13 +48,25 @@ export function providePagination(options) {
48
48
  itemsPerPage.value = value;
49
49
  page.value = 1;
50
50
  }
51
+ function nextPage() {
52
+ page.value = clamp(page.value + 1, 1, pageCount.value);
53
+ }
54
+ function prevPage() {
55
+ page.value = clamp(page.value - 1, 1, pageCount.value);
56
+ }
57
+ function setPage(value) {
58
+ page.value = clamp(value, 1, pageCount.value);
59
+ }
51
60
  const data = {
52
61
  page,
53
62
  itemsPerPage,
54
- itemsLength,
55
63
  startIndex,
56
64
  stopIndex,
57
65
  pageCount,
66
+ itemsLength,
67
+ nextPage,
68
+ prevPage,
69
+ setPage,
58
70
  setItemsPerPage
59
71
  };
60
72
  provide(VDataTablePaginationSymbol, data);
@@ -1 +1 @@
1
- {"version":3,"file":"paginate.mjs","names":["useProxiedModel","computed","inject","provide","watchEffect","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","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 { 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 setItemsPerPage: (value: number) => void\n startIndex: Ref<number>\n stopIndex: Ref<number>\n pageCount: Ref<number>\n itemsLength: Ref<number>\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 const data = { page, itemsPerPage, itemsLength, startIndex, stopIndex, pageCount, 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<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'\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,7 +1,7 @@
1
1
  // Composables
2
2
  import { useProxiedModel } from "../../../composables/proxiedModel.mjs"; // Utilities
3
3
  import { computed, inject, provide } from 'vue';
4
- import { propsFactory } from "../../../util/index.mjs"; // Types
4
+ import { propsFactory, wrapInArray } from "../../../util/index.mjs"; // Types
5
5
  export const makeDataTableSelectProps = propsFactory({
6
6
  showSelect: Boolean,
7
7
  modelValue: {
@@ -17,10 +17,10 @@ export function provideSelection(props, allItems) {
17
17
  return [...v.values()];
18
18
  });
19
19
  function isSelected(items) {
20
- return items.every(item => selected.value.has(item.value));
20
+ return wrapInArray(items).every(item => selected.value.has(item.value));
21
21
  }
22
22
  function isSomeSelected(items) {
23
- return items.some(item => selected.value.has(item.value));
23
+ return wrapInArray(items).some(item => selected.value.has(item.value));
24
24
  }
25
25
  function select(items, value) {
26
26
  const newSelected = new Set(selected.value);
@@ -1 +1 @@
1
- {"version":3,"file":"select.mjs","names":["useProxiedModel","computed","inject","provide","propsFactory","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 } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { ItemProps } from '@/composables/items'\nimport type { DataTableItem } from '../types'\n\nexport const makeDataTableSelectProps = propsFactory({\n showSelect: Boolean,\n modelValue: {\n type: Array as PropType<any[]>,\n default: () => ([]),\n },\n}, 'v-data-table-select')\n\nexport const VDataTableSelectionSymbol: InjectionKey<{\n toggleSelect: (item: DataTableItem) => void\n select: (items: DataTableItem[], value: boolean) => void\n selectAll: (value: boolean) => void\n isSelected: (items: DataTableItem[]) => boolean\n isSomeSelected: (items: DataTableItem[]) => boolean\n someSelected: Ref<boolean>\n allSelected: Ref<boolean>\n}> = Symbol.for('vuetify:data-table-selection')\n\ntype SelectionProps = Pick<ItemProps, 'itemValue'> & { modelValue: any[], 'onUpdate:modelValue': ((value: any[]) => void) | undefined }\n\nexport function provideSelection (props: SelectionProps, allItems: Ref<DataTableItem[]>) {\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: DataTableItem[]) {\n return items.every(item => selected.value.has(item.value))\n }\n\n function isSomeSelected (items: DataTableItem[]) {\n return items.some(item => selected.value.has(item.value))\n }\n\n function select (items: DataTableItem[], 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: DataTableItem) {\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,mCAErB;AAKA,OAAO,MAAMC,wBAAwB,GAAGD,YAAY,CAAC;EACnDE,UAAU,EAAEC,OAAO;EACnBC,UAAU,EAAE;IACVC,IAAI,EAAEC,KAAwB;IAC9BC,OAAO,EAAEA,CAAA,KAAO;EAClB;AACF,CAAC,EAAE,qBAAqB,CAAC;AAEzB,OAAO,MAAMC,yBAQX,GAAGC,MAAM,CAACC,GAAG,CAAC,8BAA8B,CAAC;AAI/C,OAAO,SAASC,gBAAgBA,CAAEC,KAAqB,EAAEC,QAA8B,EAAE;EACvF,MAAMC,QAAQ,GAAGlB,eAAe,CAACgB,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,KAAsB,EAAE;IAC3C,OAAOA,KAAK,CAACC,KAAK,CAACC,IAAI,IAAIP,QAAQ,CAACQ,KAAK,CAACC,GAAG,CAACF,IAAI,CAACC,KAAK,CAAC,CAAC;EAC5D;EAEA,SAASE,cAAcA,CAAEL,KAAsB,EAAE;IAC/C,OAAOA,KAAK,CAACM,IAAI,CAACJ,IAAI,IAAIP,QAAQ,CAACQ,KAAK,CAACC,GAAG,CAACF,IAAI,CAACC,KAAK,CAAC,CAAC;EAC3D;EAEA,SAASI,MAAMA,CAAEP,KAAsB,EAAEG,KAAc,EAAE;IACvD,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,IAAmB,EAAE;IAC1CK,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,GAAGnC,QAAQ,CAAC,MAAMiB,QAAQ,CAACQ,KAAK,CAACW,IAAI,GAAG,CAAC,CAAC;EAC5D,MAAMC,WAAW,GAAGrC,QAAQ,CAAC,MAAMqB,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;EAEvGnC,OAAO,CAACS,yBAAyB,EAAE2B,IAAI,CAAC;EAExC,OAAOA,IAAI;AACb;AAEA,OAAO,SAASC,YAAYA,CAAA,EAAI;EAC9B,MAAMD,IAAI,GAAGrC,MAAM,CAACU,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","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,5 +1,6 @@
1
1
  // Composables
2
- import { useProxiedModel } from "../../../composables/proxiedModel.mjs"; // Utilities
2
+ import { useProxiedModel } from "../../../composables/proxiedModel.mjs";
3
+ import { useLocale } from "../../../composables/index.mjs"; // Utilities
3
4
  import { computed, inject, provide, toRef } from 'vue';
4
5
  import { getObjectValueByPath, propsFactory } from "../../../util/index.mjs"; // Types
5
6
  export const makeDataTableSortProps = propsFactory({
@@ -7,6 +8,7 @@ export const makeDataTableSortProps = propsFactory({
7
8
  type: Array,
8
9
  default: () => []
9
10
  },
11
+ customKeySort: Object,
10
12
  multiSort: Boolean,
11
13
  mustSort: Boolean
12
14
  }, 'v-data-table-sort');
@@ -28,24 +30,24 @@ export function provideSort(options) {
28
30
  multiSort,
29
31
  page
30
32
  } = options;
31
- const toggleSort = key => {
33
+ const toggleSort = column => {
32
34
  let newSortBy = sortBy.value.map(x => ({
33
35
  ...x
34
36
  })) ?? [];
35
- const item = newSortBy.find(x => x.key === key);
37
+ const item = newSortBy.find(x => x.key === column.key);
36
38
  if (!item) {
37
39
  if (multiSort.value) newSortBy = [...newSortBy, {
38
- key,
40
+ key: column.key,
39
41
  order: 'asc'
40
42
  }];else newSortBy = [{
41
- key,
43
+ key: column.key,
42
44
  order: 'asc'
43
45
  }];
44
46
  } else if (item.order === 'desc') {
45
47
  if (mustSort.value) {
46
48
  item.order = 'asc';
47
49
  } else {
48
- newSortBy = newSortBy.filter(x => x.key !== key);
50
+ newSortBy = newSortBy.filter(x => x.key !== column.key);
49
51
  }
50
52
  } else {
51
53
  item.order = 'desc';
@@ -53,9 +55,13 @@ export function provideSort(options) {
53
55
  sortBy.value = newSortBy;
54
56
  if (page) page.value = 1;
55
57
  };
58
+ function isSorted(column) {
59
+ return !!sortBy.value.find(item => item.key === column.key);
60
+ }
56
61
  const data = {
57
62
  sortBy,
58
- toggleSort
63
+ toggleSort,
64
+ isSorted
59
65
  };
60
66
  provide(VDataTableSortSymbol, data);
61
67
  return data;
@@ -65,17 +71,11 @@ export function useSort() {
65
71
  if (!data) throw new Error('Missing sort!');
66
72
  return data;
67
73
  }
68
- export function useSortedItems(items, sortBy, columns) {
69
- // TODO: Put this in separate prop customKeySort to match filter composable?
70
- const customSorters = computed(() => {
71
- return columns.value.reduce((obj, item) => {
72
- if (item.sort) obj[item.key] = item.sort;
73
- return obj;
74
- }, {});
75
- });
74
+ export function useSortedItems(props, items, sortBy) {
75
+ const locale = useLocale();
76
76
  const sortedItems = computed(() => {
77
77
  if (!sortBy.value.length) return items.value;
78
- return sortItems(items.value, sortBy.value, 'en', customSorters.value);
78
+ return sortItems(items.value, sortBy.value, locale.current.value, props.customKeySort);
79
79
  });
80
80
  return {
81
81
  sortedItems
@@ -89,7 +89,7 @@ export function sortItems(items, sortByItems, locale, customSorters) {
89
89
  return [...items].sort((a, b) => {
90
90
  for (let i = 0; i < sortByItems.length; i++) {
91
91
  const sortKey = sortByItems[i].key;
92
- const sortOrder = sortByItems[i].order;
92
+ const sortOrder = sortByItems[i].order ?? 'asc';
93
93
  if (sortOrder === false) continue;
94
94
  let sortA = getObjectValueByPath(a.raw, sortKey);
95
95
  let sortB = getObjectValueByPath(b.raw, sortKey);
@@ -1 +1 @@
1
- {"version":3,"file":"sort.mjs","names":["useProxiedModel","computed","inject","provide","toRef","getObjectValueByPath","propsFactory","makeDataTableSortProps","sortBy","type","Array","default","multiSort","Boolean","mustSort","VDataTableSortSymbol","Symbol","for","createSort","props","provideSort","options","page","toggleSort","key","newSortBy","value","map","x","item","find","order","filter","data","useSort","Error","useSortedItems","items","columns","customSorters","reduce","obj","sort","sortedItems","length","sortItems","sortByItems","locale","stringCollator","Intl","Collator","sensitivity","usage","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'\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 { InternalItem } from '@/composables/items'\nimport type { DataTableCompareFunction, DataTableItem, InternalDataTableHeader } from '../types'\n\nexport const makeDataTableSortProps = propsFactory({\n sortBy: {\n type: Array as PropType<SortItem[]>,\n default: () => ([]),\n },\n multiSort: Boolean,\n mustSort: Boolean,\n}, 'v-data-table-sort')\n\nconst VDataTableSortSymbol: InjectionKey<{\n sortBy: Ref<readonly SortItem[]>\n toggleSort: (key: string) => void\n}> = Symbol.for('vuetify:data-table-sort')\n\nexport type SortItem = { key: string, order?: boolean | 'asc' | 'desc' }\n\ntype SortProps = {\n sortBy: 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 = (key: string) => {\n let newSortBy = sortBy.value.map(x => ({ ...x })) ?? []\n const item = newSortBy.find(x => x.key === key)\n\n if (!item) {\n if (multiSort.value) newSortBy = [...newSortBy, { key, order: 'asc' }]\n else newSortBy = [{ 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 !== key)\n }\n } else {\n item.order = 'desc'\n }\n\n sortBy.value = newSortBy\n if (page) page.value = 1\n }\n\n const data = { sortBy, toggleSort }\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 (items: Ref<DataTableItem[]>, sortBy: Ref<readonly SortItem[]>, columns: Ref<InternalDataTableHeader[]>) {\n // TODO: Put this in separate prop customKeySort to match filter composable?\n const customSorters = computed(() => {\n return columns.value.reduce<Record<string, DataTableCompareFunction>>((obj, item) => {\n if (item.sort) obj[item.key] = item.sort\n\n return obj\n }, {})\n })\n\n const sortedItems = computed(() => {\n if (!sortBy.value.length) return items.value\n\n return sortItems(items.value, sortBy.value, 'en', customSorters.value)\n })\n\n return { sortedItems }\n}\n\nexport function sortItems<T extends InternalItem> (\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\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":"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"}
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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"virtual.mjs","names":["computed","ref","shallowRef","propsFactory","makeDataTableVirtualProps","visibleItems","type","String","Number","default","itemHeight","UP","DOWN","useVirtual","props","items","startIndex","parseInt","containerRef","isScrolling","calculateOffset","index","value","calculateMidPointIndex","scrollTop","start","end","length","middle","Math","floor","middleOffset","lastScrollTop","scrollTimeout","handleScroll","clearTimeout","setTimeout","direction","midPointIndex","buffer","round","max","min","stopIndex","paddingTop","paddingBottom"],"sources":["../../../../src/labs/VDataTable/composables/virtual.ts"],"sourcesContent":["// Utilities\nimport { computed, ref, shallowRef } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport const makeDataTableVirtualProps = propsFactory({\n visibleItems: {\n type: [String, Number],\n default: 20,\n },\n itemHeight: {\n type: [String, Number],\n default: 52,\n },\n}, 'virtual')\n\ntype VirtualProps = {\n itemHeight: string | number\n visibleItems: string | number\n}\n\nconst UP = -1\nconst DOWN = 1\n\n// TODO: Replace this with composable from v-virtual-scroll\nexport function useVirtual (props: VirtualProps, items: Ref<any[]>) {\n const startIndex = shallowRef(0)\n const itemHeight = computed(() => parseInt(props.itemHeight, 10))\n const visibleItems = computed(() => parseInt(props.visibleItems, 10))\n const containerRef = ref<HTMLDivElement>()\n const isScrolling = shallowRef(false)\n\n function calculateOffset (index: number) {\n return index * itemHeight.value\n }\n\n function calculateMidPointIndex (scrollTop: number) {\n let start = 0\n let end = items.value.length\n\n while (start <= end) {\n const middle = start + Math.floor((end - start) / 2)\n const middleOffset = calculateOffset(middle)\n\n if (middleOffset === scrollTop) {\n return middle\n } else if (middleOffset < scrollTop) {\n start = middle + 1\n } else if (middleOffset > scrollTop) {\n end = middle - 1\n }\n }\n\n return start\n }\n\n let lastScrollTop = 0\n let scrollTimeout: any\n function handleScroll () {\n if (!containerRef.value) return\n\n isScrolling.value = true\n clearTimeout(scrollTimeout)\n scrollTimeout = setTimeout(() => {\n isScrolling.value = false\n }, 100)\n\n const scrollTop = containerRef.value.scrollTop\n const direction = scrollTop < lastScrollTop ? UP : DOWN\n\n const midPointIndex = calculateMidPointIndex(scrollTop)\n\n const buffer = Math.round(visibleItems.value / 3)\n if (direction === UP && midPointIndex <= startIndex.value) {\n startIndex.value = Math.max(midPointIndex - buffer, 0)\n } else if (direction === DOWN && midPointIndex >= startIndex.value + (buffer * 2)) {\n startIndex.value = Math.min(Math.max(0, midPointIndex - buffer), items.value.length - visibleItems.value)\n }\n\n lastScrollTop = containerRef.value.scrollTop\n }\n\n const stopIndex = computed(() => Math.min(items.value.length, startIndex.value + visibleItems.value))\n const paddingTop = computed(() => calculateOffset(startIndex.value))\n const paddingBottom = computed(() => calculateOffset(items.value.length) - calculateOffset(stopIndex.value))\n\n return {\n startIndex,\n stopIndex,\n paddingTop,\n paddingBottom,\n handleScroll,\n containerRef,\n itemHeight,\n isScrolling,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"virtual.mjs","names":["computed","ref","shallowRef","propsFactory","makeDataTableVirtualProps","visibleItems","type","String","Number","default","itemHeight","UP","DOWN","useVirtual","props","items","startIndex","parseInt","containerRef","isScrolling","calculateOffset","index","value","calculateMidPointIndex","scrollTop","start","end","length","middle","Math","floor","middleOffset","lastScrollTop","scrollTimeout","handleScroll","clearTimeout","setTimeout","direction","midPointIndex","buffer","round","max","min","stopIndex","paddingTop","paddingBottom"],"sources":["../../../../src/labs/VDataTable/composables/virtual.ts"],"sourcesContent":["// Utilities\nimport { computed, ref, shallowRef } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport const makeDataTableVirtualProps = propsFactory({\n visibleItems: {\n type: [String, Number],\n default: 20,\n },\n itemHeight: {\n type: [String, Number],\n default: 52,\n },\n}, 'virtual')\n\ntype VirtualProps = {\n itemHeight: string | number\n visibleItems: string | number\n}\n\nconst UP = -1\nconst DOWN = 1\n\n// TODO: Replace this with composable from v-virtual-scroll\nexport function useVirtual (props: VirtualProps, items: Ref<readonly any[]>) {\n const startIndex = shallowRef(0)\n const itemHeight = computed(() => parseInt(props.itemHeight, 10))\n const visibleItems = computed(() => parseInt(props.visibleItems, 10))\n const containerRef = ref<HTMLDivElement>()\n const isScrolling = shallowRef(false)\n\n function calculateOffset (index: number) {\n return index * itemHeight.value\n }\n\n function calculateMidPointIndex (scrollTop: number) {\n let start = 0\n let end = items.value.length\n\n while (start <= end) {\n const middle = start + Math.floor((end - start) / 2)\n const middleOffset = calculateOffset(middle)\n\n if (middleOffset === scrollTop) {\n return middle\n } else if (middleOffset < scrollTop) {\n start = middle + 1\n } else if (middleOffset > scrollTop) {\n end = middle - 1\n }\n }\n\n return start\n }\n\n let lastScrollTop = 0\n let scrollTimeout: any\n function handleScroll () {\n if (!containerRef.value) return\n\n isScrolling.value = true\n clearTimeout(scrollTimeout)\n scrollTimeout = setTimeout(() => {\n isScrolling.value = false\n }, 100)\n\n const scrollTop = containerRef.value.scrollTop\n const direction = scrollTop < lastScrollTop ? UP : DOWN\n\n const midPointIndex = calculateMidPointIndex(scrollTop)\n\n const buffer = Math.round(visibleItems.value / 3)\n if (direction === UP && midPointIndex <= startIndex.value) {\n startIndex.value = Math.max(midPointIndex - buffer, 0)\n } else if (direction === DOWN && midPointIndex >= startIndex.value + (buffer * 2)) {\n startIndex.value = Math.min(Math.max(0, midPointIndex - buffer), items.value.length - visibleItems.value)\n }\n\n lastScrollTop = containerRef.value.scrollTop\n }\n\n const stopIndex = computed(() => Math.min(items.value.length, startIndex.value + visibleItems.value))\n const paddingTop = computed(() => calculateOffset(startIndex.value))\n const paddingBottom = computed(() => calculateOffset(items.value.length) - calculateOffset(stopIndex.value))\n\n return {\n startIndex,\n stopIndex,\n paddingTop,\n paddingBottom,\n handleScroll,\n containerRef,\n itemHeight,\n isScrolling,\n }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,GAAG,EAAEC,UAAU,QAAQ,KAAK;AAAA,SACtCC,YAAY,mCAErB;AAGA,OAAO,MAAMC,yBAAyB,GAAGD,YAAY,CAAC;EACpDE,YAAY,EAAE;IACZC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX,CAAC;EACDC,UAAU,EAAE;IACVJ,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX;AACF,CAAC,EAAE,SAAS,CAAC;AAOb,MAAME,EAAE,GAAG,CAAC,CAAC;AACb,MAAMC,IAAI,GAAG,CAAC;;AAEd;AACA,OAAO,SAASC,UAAUA,CAAEC,KAAmB,EAAEC,KAA0B,EAAE;EAC3E,MAAMC,UAAU,GAAGd,UAAU,CAAC,CAAC,CAAC;EAChC,MAAMQ,UAAU,GAAGV,QAAQ,CAAC,MAAMiB,QAAQ,CAACH,KAAK,CAACJ,UAAU,EAAE,EAAE,CAAC,CAAC;EACjE,MAAML,YAAY,GAAGL,QAAQ,CAAC,MAAMiB,QAAQ,CAACH,KAAK,CAACT,YAAY,EAAE,EAAE,CAAC,CAAC;EACrE,MAAMa,YAAY,GAAGjB,GAAG,EAAkB;EAC1C,MAAMkB,WAAW,GAAGjB,UAAU,CAAC,KAAK,CAAC;EAErC,SAASkB,eAAeA,CAAEC,KAAa,EAAE;IACvC,OAAOA,KAAK,GAAGX,UAAU,CAACY,KAAK;EACjC;EAEA,SAASC,sBAAsBA,CAAEC,SAAiB,EAAE;IAClD,IAAIC,KAAK,GAAG,CAAC;IACb,IAAIC,GAAG,GAAGX,KAAK,CAACO,KAAK,CAACK,MAAM;IAE5B,OAAOF,KAAK,IAAIC,GAAG,EAAE;MACnB,MAAME,MAAM,GAAGH,KAAK,GAAGI,IAAI,CAACC,KAAK,CAAC,CAACJ,GAAG,GAAGD,KAAK,IAAI,CAAC,CAAC;MACpD,MAAMM,YAAY,GAAGX,eAAe,CAACQ,MAAM,CAAC;MAE5C,IAAIG,YAAY,KAAKP,SAAS,EAAE;QAC9B,OAAOI,MAAM;MACf,CAAC,MAAM,IAAIG,YAAY,GAAGP,SAAS,EAAE;QACnCC,KAAK,GAAGG,MAAM,GAAG,CAAC;MACpB,CAAC,MAAM,IAAIG,YAAY,GAAGP,SAAS,EAAE;QACnCE,GAAG,GAAGE,MAAM,GAAG,CAAC;MAClB;IACF;IAEA,OAAOH,KAAK;EACd;EAEA,IAAIO,aAAa,GAAG,CAAC;EACrB,IAAIC,aAAkB;EACtB,SAASC,YAAYA,CAAA,EAAI;IACvB,IAAI,CAAChB,YAAY,CAACI,KAAK,EAAE;IAEzBH,WAAW,CAACG,KAAK,GAAG,IAAI;IACxBa,YAAY,CAACF,aAAa,CAAC;IAC3BA,aAAa,GAAGG,UAAU,CAAC,MAAM;MAC/BjB,WAAW,CAACG,KAAK,GAAG,KAAK;IAC3B,CAAC,EAAE,GAAG,CAAC;IAEP,MAAME,SAAS,GAAGN,YAAY,CAACI,KAAK,CAACE,SAAS;IAC9C,MAAMa,SAAS,GAAGb,SAAS,GAAGQ,aAAa,GAAGrB,EAAE,GAAGC,IAAI;IAEvD,MAAM0B,aAAa,GAAGf,sBAAsB,CAACC,SAAS,CAAC;IAEvD,MAAMe,MAAM,GAAGV,IAAI,CAACW,KAAK,CAACnC,YAAY,CAACiB,KAAK,GAAG,CAAC,CAAC;IACjD,IAAIe,SAAS,KAAK1B,EAAE,IAAI2B,aAAa,IAAItB,UAAU,CAACM,KAAK,EAAE;MACzDN,UAAU,CAACM,KAAK,GAAGO,IAAI,CAACY,GAAG,CAACH,aAAa,GAAGC,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC,MAAM,IAAIF,SAAS,KAAKzB,IAAI,IAAI0B,aAAa,IAAItB,UAAU,CAACM,KAAK,GAAIiB,MAAM,GAAG,CAAE,EAAE;MACjFvB,UAAU,CAACM,KAAK,GAAGO,IAAI,CAACa,GAAG,CAACb,IAAI,CAACY,GAAG,CAAC,CAAC,EAAEH,aAAa,GAAGC,MAAM,CAAC,EAAExB,KAAK,CAACO,KAAK,CAACK,MAAM,GAAGtB,YAAY,CAACiB,KAAK,CAAC;IAC3G;IAEAU,aAAa,GAAGd,YAAY,CAACI,KAAK,CAACE,SAAS;EAC9C;EAEA,MAAMmB,SAAS,GAAG3C,QAAQ,CAAC,MAAM6B,IAAI,CAACa,GAAG,CAAC3B,KAAK,CAACO,KAAK,CAACK,MAAM,EAAEX,UAAU,CAACM,KAAK,GAAGjB,YAAY,CAACiB,KAAK,CAAC,CAAC;EACrG,MAAMsB,UAAU,GAAG5C,QAAQ,CAAC,MAAMoB,eAAe,CAACJ,UAAU,CAACM,KAAK,CAAC,CAAC;EACpE,MAAMuB,aAAa,GAAG7C,QAAQ,CAAC,MAAMoB,eAAe,CAACL,KAAK,CAACO,KAAK,CAACK,MAAM,CAAC,GAAGP,eAAe,CAACuB,SAAS,CAACrB,KAAK,CAAC,CAAC;EAE5G,OAAO;IACLN,UAAU;IACV2B,SAAS;IACTC,UAAU;IACVC,aAAa;IACbX,YAAY;IACZhB,YAAY;IACZR,UAAU;IACVS;EACF,CAAC;AACH"}