@vuetify/nightly 3.2.0-next-20230118.0 → 4.0.0-dev-20230211.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 (177) hide show
  1. package/CHANGELOG.md +207 -15
  2. package/dist/json/attributes.json +7202 -0
  3. package/dist/json/importMap-labs.json +4 -0
  4. package/dist/json/importMap.json +102 -102
  5. package/dist/json/tags.json +2492 -0
  6. package/dist/json/web-types.json +24081 -0
  7. package/dist/vuetify-labs.css +163 -147
  8. package/dist/vuetify-labs.d.ts +441 -176
  9. package/dist/vuetify-labs.esm.js +328 -225
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +327 -224
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +53 -46
  14. package/dist/vuetify.d.ts +342 -203
  15. package/dist/vuetify.esm.js +249 -185
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +248 -184
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +696 -685
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/blueprints/index.d.ts +2 -2
  23. package/lib/blueprints/md1.d.ts +2 -2
  24. package/lib/blueprints/md2.d.ts +2 -2
  25. package/lib/blueprints/md3.d.ts +2 -2
  26. package/lib/components/VAutocomplete/VAutocomplete.mjs +3 -2
  27. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  28. package/lib/components/VAutocomplete/index.d.ts +43 -20
  29. package/lib/components/VBottomSheet/VBottomSheet.mjs +1 -4
  30. package/lib/components/VBottomSheet/VBottomSheet.mjs.map +1 -1
  31. package/lib/components/VBtn/VBtn.css +7 -7
  32. package/lib/components/VBtn/VBtn.mjs +8 -3
  33. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  34. package/lib/components/VBtnGroup/VBtnGroup.mjs +15 -11
  35. package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
  36. package/lib/components/VBtnGroup/index.d.ts +2 -1
  37. package/lib/components/VBtnToggle/VBtnToggle.mjs +9 -5
  38. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  39. package/lib/components/VBtnToggle/index.d.ts +122 -1
  40. package/lib/components/VCalendar/VCalendar.mjs +3 -0
  41. package/lib/components/VCalendar/VCalendar.mjs.map +1 -1
  42. package/lib/components/VCalendar/VCalendarCategory.sass +9 -3
  43. package/lib/components/VCalendar/VCalendarDaily.mjs +20 -8
  44. package/lib/components/VCalendar/VCalendarDaily.mjs.map +1 -1
  45. package/lib/components/VCalendar/VCalendarWeekly.mjs +25 -5
  46. package/lib/components/VCalendar/VCalendarWeekly.mjs.map +1 -1
  47. package/lib/components/VCalendar/mixins/calendar-with-events.mjs +20 -16
  48. package/lib/components/VCalendar/mixins/calendar-with-events.mjs.map +1 -1
  49. package/lib/components/VCalendar/mixins/mouse.mjs +16 -30
  50. package/lib/components/VCalendar/mixins/mouse.mjs.map +1 -1
  51. package/lib/components/VCard/VCard.css +7 -7
  52. package/lib/components/VChip/VChip.css +7 -7
  53. package/lib/components/VCombobox/VCombobox.mjs +3 -3
  54. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  55. package/lib/components/VCombobox/index.d.ts +43 -20
  56. package/lib/components/VData/VData.mjs +2 -4
  57. package/lib/components/VData/VData.mjs.map +1 -1
  58. package/lib/components/VDatePicker/VDatePicker.mjs +7 -5
  59. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  60. package/lib/components/VDefaultsProvider/index.d.ts +5 -4
  61. package/lib/components/VDialog/VDialog.mjs +6 -5
  62. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  63. package/lib/components/VDialog/index.d.ts +57 -34
  64. package/lib/components/VDivider/VDivider.mjs +6 -6
  65. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  66. package/lib/components/VExpansionPanel/VExpansionPanel.css +7 -7
  67. package/lib/components/VField/VField.css +2 -2
  68. package/lib/components/VField/VField.mjs +28 -26
  69. package/lib/components/VField/VField.mjs.map +1 -1
  70. package/lib/components/VField/VField.sass +2 -2
  71. package/lib/components/VFileInput/VFileInput.mjs +7 -4
  72. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  73. package/lib/components/VForm/index.d.ts +0 -3
  74. package/lib/components/VList/VList.mjs +4 -1
  75. package/lib/components/VList/VList.mjs.map +1 -1
  76. package/lib/components/VList/VListItem.css +7 -7
  77. package/lib/components/VList/VListItem.mjs +29 -19
  78. package/lib/components/VList/VListItem.mjs.map +1 -1
  79. package/lib/components/VMenu/VMenu.mjs +6 -5
  80. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  81. package/lib/components/VMenu/index.d.ts +57 -34
  82. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +4 -0
  83. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -1
  84. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  85. package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +4 -0
  86. package/lib/components/VNavigationDrawer/index.d.ts +3 -3
  87. package/lib/components/VNavigationDrawer/touch.mjs +7 -6
  88. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  89. package/lib/components/VOtpInput/VOtpInput.mjs +22 -46
  90. package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
  91. package/lib/components/VOverflowBtn/VOverflowBtn.mjs +3 -0
  92. package/lib/components/VOverflowBtn/VOverflowBtn.mjs.map +1 -1
  93. package/lib/components/VOverlay/index.d.ts +34 -11
  94. package/lib/components/VOverlay/locationStrategies.mjs +40 -29
  95. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  96. package/lib/components/VOverlay/scrollStrategies.mjs +25 -16
  97. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  98. package/lib/components/VPagination/VPagination.mjs +1 -1
  99. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  100. package/lib/components/VSelect/VSelect.mjs +3 -4
  101. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  102. package/lib/components/VSelect/index.d.ts +43 -20
  103. package/lib/components/VSelectionControl/VSelectionControl.css +2 -2
  104. package/lib/components/VSkeletonLoader/VSkeletonLoader.sass +1 -1
  105. package/lib/components/VSnackbar/index.d.ts +42 -19
  106. package/lib/components/VStepper/VStepper.sass +6 -6
  107. package/lib/components/VStepper/VStepperStep.mjs +12 -2
  108. package/lib/components/VStepper/VStepperStep.mjs.map +1 -1
  109. package/lib/components/VTable/VTable.css +4 -4
  110. package/lib/components/VTable/VTable.sass +2 -2
  111. package/lib/components/VTimePicker/VTimePicker.mjs.map +1 -1
  112. package/lib/components/VTimeline/_mixins.sass +1 -1
  113. package/lib/components/VTooltip/VTooltip.mjs +4 -3
  114. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  115. package/lib/components/VTooltip/index.d.ts +57 -34
  116. package/lib/components/VTreeview/VTreeview.mjs +1 -1
  117. package/lib/components/VTreeview/VTreeview.mjs.map +1 -1
  118. package/lib/components/index.d.ts +316 -176
  119. package/lib/composables/defaults.mjs +1 -1
  120. package/lib/composables/defaults.mjs.map +1 -1
  121. package/lib/composables/filter.mjs +3 -3
  122. package/lib/composables/filter.mjs.map +1 -1
  123. package/lib/composables/form.mjs +0 -1
  124. package/lib/composables/form.mjs.map +1 -1
  125. package/lib/composables/toggleScope.mjs +14 -7
  126. package/lib/composables/toggleScope.mjs.map +1 -1
  127. package/lib/directives/ripple/VRipple.css +3 -0
  128. package/lib/directives/ripple/VRipple.sass +3 -0
  129. package/lib/directives/ripple/_variables.scss +1 -1
  130. package/lib/directives/ripple/index.mjs +2 -7
  131. package/lib/directives/ripple/index.mjs.map +1 -1
  132. package/lib/entry-bundler.mjs +1 -1
  133. package/lib/entry-bundler.mjs.map +1 -1
  134. package/lib/framework.mjs +1 -1
  135. package/lib/framework.mjs.map +1 -1
  136. package/lib/index.d.ts +29 -29
  137. package/lib/labs/VDataTable/VDataTable.mjs +6 -6
  138. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  139. package/lib/labs/VDataTable/VDataTableFooter.css +9 -0
  140. package/lib/labs/VDataTable/VDataTableFooter.mjs +51 -13
  141. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  142. package/lib/labs/VDataTable/VDataTableFooter.sass +7 -0
  143. package/lib/labs/VDataTable/VDataTableRows.mjs +1 -1
  144. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  145. package/lib/labs/VDataTable/VDataTableServer.mjs +19 -12
  146. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  147. package/lib/labs/VDataTable/VDataTableVirtual.mjs +6 -5
  148. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  149. package/lib/labs/VDataTable/composables/options.mjs +3 -7
  150. package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
  151. package/lib/labs/VDataTable/composables/paginate.mjs +1 -1
  152. package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
  153. package/lib/labs/VDataTable/index.d.ts +125 -1
  154. package/lib/labs/VDataTable/index.mjs +1 -0
  155. package/lib/labs/VDataTable/index.mjs.map +1 -1
  156. package/lib/labs/components.d.ts +125 -1
  157. package/lib/locale/adapters/vue-i18n.mjs +12 -2
  158. package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
  159. package/lib/locale/ar.mjs +20 -20
  160. package/lib/locale/ar.mjs.map +1 -1
  161. package/lib/locale/en.mjs +2 -2
  162. package/lib/locale/en.mjs.map +1 -1
  163. package/lib/locale/es.mjs +3 -3
  164. package/lib/locale/es.mjs.map +1 -1
  165. package/lib/locale/fi.mjs +5 -5
  166. package/lib/locale/fi.mjs.map +1 -1
  167. package/lib/locale/it.mjs +6 -6
  168. package/lib/locale/it.mjs.map +1 -1
  169. package/lib/locale/sv.mjs +13 -13
  170. package/lib/locale/sv.mjs.map +1 -1
  171. package/lib/styles/settings/_variables.scss +6 -6
  172. package/lib/styles/tools/_states.sass +3 -3
  173. package/lib/util/defineComponent.mjs +21 -18
  174. package/lib/util/defineComponent.mjs.map +1 -1
  175. package/lib/util/helpers.mjs +5 -19
  176. package/lib/util/helpers.mjs.map +1 -1
  177. package/package.json +1 -1
package/lib/index.d.ts CHANGED
@@ -145,10 +145,10 @@ interface DisplayInstance {
145
145
  }
146
146
  declare function useDisplay(): DisplayInstance;
147
147
 
148
- interface DefaultsInstance {
148
+ declare type DefaultsInstance = undefined | {
149
149
  [key: string]: undefined | Record<string, unknown>;
150
150
  global?: Record<string, unknown>;
151
- }
151
+ };
152
152
  declare type DefaultsOptions = Partial<DefaultsInstance>;
153
153
 
154
154
  declare type IconValue = string | JSXComponent;
@@ -315,21 +315,18 @@ declare module '@vue/runtime-core' {
315
315
 
316
316
  export interface GlobalComponents {
317
317
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
318
- VForm: typeof import('vuetify/components')['VForm']
319
318
  VContainer: typeof import('vuetify/components')['VContainer']
320
319
  VCol: typeof import('vuetify/components')['VCol']
321
320
  VRow: typeof import('vuetify/components')['VRow']
322
321
  VSpacer: typeof import('vuetify/components')['VSpacer']
323
322
  VHover: typeof import('vuetify/components')['VHover']
324
- VLayout: typeof import('vuetify/components')['VLayout']
325
- VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
326
- VLazy: typeof import('vuetify/components')['VLazy']
323
+ VForm: typeof import('vuetify/components')['VForm']
327
324
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
328
325
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
329
- VParallax: typeof import('vuetify/components')['VParallax']
330
326
  VRadio: typeof import('vuetify/components')['VRadio']
331
327
  VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
332
328
  VResponsive: typeof import('vuetify/components')['VResponsive']
329
+ VParallax: typeof import('vuetify/components')['VParallax']
333
330
  VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
334
331
  VValidation: typeof import('vuetify/components')['VValidation']
335
332
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
@@ -354,35 +351,35 @@ declare module '@vue/runtime-core' {
354
351
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
355
352
  VAlert: typeof import('vuetify/components')['VAlert']
356
353
  VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
357
- VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
358
354
  VAvatar: typeof import('vuetify/components')['VAvatar']
359
- VBadge: typeof import('vuetify/components')['VBadge']
360
- VBanner: typeof import('vuetify/components')['VBanner']
361
- VBannerActions: typeof import('vuetify/components')['VBannerActions']
362
- VBannerText: typeof import('vuetify/components')['VBannerText']
355
+ VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
363
356
  VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
357
+ VBadge: typeof import('vuetify/components')['VBadge']
364
358
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
365
359
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
366
360
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
361
+ VBanner: typeof import('vuetify/components')['VBanner']
362
+ VBannerActions: typeof import('vuetify/components')['VBannerActions']
363
+ VBannerText: typeof import('vuetify/components')['VBannerText']
367
364
  VBtn: typeof import('vuetify/components')['VBtn']
368
- VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
369
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
370
365
  VCard: typeof import('vuetify/components')['VCard']
371
366
  VCardActions: typeof import('vuetify/components')['VCardActions']
372
367
  VCardItem: typeof import('vuetify/components')['VCardItem']
373
368
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
374
369
  VCardText: typeof import('vuetify/components')['VCardText']
375
370
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
371
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
372
+ VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
376
373
  VCarousel: typeof import('vuetify/components')['VCarousel']
377
374
  VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
378
375
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
379
376
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
380
377
  VChip: typeof import('vuetify/components')['VChip']
381
- VChipGroup: typeof import('vuetify/components')['VChipGroup']
382
378
  VCode: typeof import('vuetify/components')['VCode']
379
+ VChipGroup: typeof import('vuetify/components')['VChipGroup']
383
380
  VColorPicker: typeof import('vuetify/components')['VColorPicker']
384
- VCombobox: typeof import('vuetify/components')['VCombobox']
385
381
  VCounter: typeof import('vuetify/components')['VCounter']
382
+ VCombobox: typeof import('vuetify/components')['VCombobox']
386
383
  VDialog: typeof import('vuetify/components')['VDialog']
387
384
  VDivider: typeof import('vuetify/components')['VDivider']
388
385
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
@@ -399,20 +396,11 @@ declare module '@vue/runtime-core' {
399
396
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
400
397
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
401
398
  VImg: typeof import('vuetify/components')['VImg']
402
- VInput: typeof import('vuetify/components')['VInput']
403
399
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
404
400
  VItem: typeof import('vuetify/components')['VItem']
401
+ VInput: typeof import('vuetify/components')['VInput']
405
402
  VKbd: typeof import('vuetify/components')['VKbd']
406
403
  VLabel: typeof import('vuetify/components')['VLabel']
407
- VList: typeof import('vuetify/components')['VList']
408
- VListGroup: typeof import('vuetify/components')['VListGroup']
409
- VListImg: typeof import('vuetify/components')['VListImg']
410
- VListItem: typeof import('vuetify/components')['VListItem']
411
- VListItemAction: typeof import('vuetify/components')['VListItemAction']
412
- VListItemMedia: typeof import('vuetify/components')['VListItemMedia']
413
- VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
414
- VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
415
- VListSubheader: typeof import('vuetify/components')['VListSubheader']
416
404
  VMain: typeof import('vuetify/components')['VMain']
417
405
  VMenu: typeof import('vuetify/components')['VMenu']
418
406
  VMessages: typeof import('vuetify/components')['VMessages']
@@ -423,15 +411,15 @@ declare module '@vue/runtime-core' {
423
411
  VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
424
412
  VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
425
413
  VRating: typeof import('vuetify/components')['VRating']
426
- VSelect: typeof import('vuetify/components')['VSelect']
427
414
  VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
415
+ VSelect: typeof import('vuetify/components')['VSelect']
428
416
  VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
429
417
  VSheet: typeof import('vuetify/components')['VSheet']
430
418
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
431
419
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
432
420
  VSlider: typeof import('vuetify/components')['VSlider']
433
- VSwitch: typeof import('vuetify/components')['VSwitch']
434
421
  VSnackbar: typeof import('vuetify/components')['VSnackbar']
422
+ VSwitch: typeof import('vuetify/components')['VSwitch']
435
423
  VSystemBar: typeof import('vuetify/components')['VSystemBar']
436
424
  VTabs: typeof import('vuetify/components')['VTabs']
437
425
  VTab: typeof import('vuetify/components')['VTab']
@@ -440,11 +428,23 @@ declare module '@vue/runtime-core' {
440
428
  VTextField: typeof import('vuetify/components')['VTextField']
441
429
  VTimeline: typeof import('vuetify/components')['VTimeline']
442
430
  VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
431
+ VTooltip: typeof import('vuetify/components')['VTooltip']
443
432
  VToolbar: typeof import('vuetify/components')['VToolbar']
444
433
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
445
434
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
446
- VTooltip: typeof import('vuetify/components')['VTooltip']
447
435
  VWindow: typeof import('vuetify/components')['VWindow']
448
436
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
437
+ VLazy: typeof import('vuetify/components')['VLazy']
438
+ VLayout: typeof import('vuetify/components')['VLayout']
439
+ VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
440
+ VList: typeof import('vuetify/components')['VList']
441
+ VListGroup: typeof import('vuetify/components')['VListGroup']
442
+ VListImg: typeof import('vuetify/components')['VListImg']
443
+ VListItem: typeof import('vuetify/components')['VListItem']
444
+ VListItemAction: typeof import('vuetify/components')['VListItemAction']
445
+ VListItemMedia: typeof import('vuetify/components')['VListItemMedia']
446
+ VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
447
+ VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
448
+ VListSubheader: typeof import('vuetify/components')['VListSubheader']
449
449
  }
450
450
  }
@@ -71,9 +71,12 @@ export const VDataTable = defineComponent({
71
71
  const {
72
72
  items
73
73
  } = useDataTableItems(props, columns);
74
+ const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key));
74
75
  const {
75
76
  filteredItems
76
- } = useFilter(props, items, toRef(props, 'search'));
77
+ } = useFilter(props, items, toRef(props, 'search'), {
78
+ filterKeys
79
+ });
77
80
  const {
78
81
  sortBy
79
82
  } = createSort(props);
@@ -92,8 +95,7 @@ export const VDataTable = defineComponent({
92
95
  page,
93
96
  itemsPerPage,
94
97
  startIndex,
95
- stopIndex,
96
- pageCount
98
+ stopIndex
97
99
  } = createPagination(props, flatItems);
98
100
  const {
99
101
  paginatedItems
@@ -105,9 +107,7 @@ export const VDataTable = defineComponent({
105
107
  page,
106
108
  itemsPerPage,
107
109
  sortBy,
108
- pageCount,
109
- startIndex,
110
- stopIndex
110
+ groupBy
111
111
  });
112
112
  provideDefaults({
113
113
  VDataTableRows: {
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTable.mjs","names":["VTable","VDataTableHeaders","VDataTableRows","VDataTableFooter","useProxiedModel","makeDataTableItemProps","useDataTableItems","createHeaders","makeDataTableHeaderProps","createSort","makeDataTableSortProps","useSortedItems","createGroupBy","makeDataTableGroupProps","useGroupedItems","createPagination","makeDataTablePaginateProps","usePaginatedItems","createSelection","makeDataTableSelectProps","createExpanded","makeDataTableExpandProps","useOptions","provideDefaults","computed","toRef","defineComponent","propsFactory","useRender","makeFilterProps","useFilter","makeVDataTableProps","hideNoData","Boolean","noDataText","type","String","default","height","Number","width","fixedHeader","fixedFooter","VDataTable","name","props","search","emits","value","event","setup","emit","slots","groupBy","columns","showSelect","showExpand","items","filteredItems","sortBy","sortByWithGroups","opened","extractRows","sortedItems","flatItems","page","itemsPerPage","startIndex","stopIndex","pageCount","paginatedItems","paginatedItemsWithoutGroups","top","colgroup","headers","multiSort","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTable.tsx"],"sourcesContent":["// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VDataTableFooter } from './VDataTableFooter'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { createSort, makeDataTableSortProps, useSortedItems } from './composables/sort'\nimport { createGroupBy, makeDataTableGroupProps, useGroupedItems } from './composables/group'\nimport { createPagination, makeDataTablePaginateProps, usePaginatedItems } from './composables/paginate'\nimport { createSelection, makeDataTableSelectProps } from './composables/select'\nimport { createExpanded, makeDataTableExpandProps } from './composables/expand'\nimport { useOptions } from './composables/options'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, propsFactory, useRender } from '@/util'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\n\n// Types\nimport type { DataTableItem } from './types'\n\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTableItemProps(),\n ...makeDataTableHeaderProps(),\n hideNoData: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n height: [String, Number],\n width: [String, Number],\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n}, 'v-data-table')\n\nexport const VDataTable = defineComponent({\n name: 'VDataTable',\n\n props: {\n search: String,\n\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n ...makeFilterProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n 'click:row': (event: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const groupBy = useProxiedModel(props, 'groupBy')\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const { filteredItems } = useFilter<DataTableItem>(props, items, toRef(props, 'search'))\n\n const { sortBy } = createSort(props)\n const { sortByWithGroups, opened, extractRows } = createGroupBy(props, groupBy, sortBy)\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const { page, itemsPerPage, startIndex, stopIndex, pageCount } = createPagination(props, flatItems)\n const { paginatedItems } = usePaginatedItems(flatItems, startIndex, stopIndex, itemsPerPage)\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n createSelection(props, paginatedItemsWithoutGroups)\n\n createExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n pageCount,\n startIndex,\n stopIndex,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n },\n })\n\n useRender(() => (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--show-select': props.showSelect,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n { slots.colgroup?.({ columns }) }\n <thead>\n { slots.headers ? slots.headers() : (\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n multiSort={ props.multiSort }\n v-slots={ slots }\n />\n ) }\n </thead>\n { slots.thead?.() }\n <tbody>\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ paginatedItems.value }\n onClick:row={ (event, value) => emit('click:row', event, value) }\n v-slots={ slots }\n />\n ) }\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n ))\n\n return {}\n },\n})\n\nexport type VDataTable = InstanceType<typeof VDataTable>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTable.mjs","names":["VTable","VDataTableHeaders","VDataTableRows","VDataTableFooter","useProxiedModel","makeDataTableItemProps","useDataTableItems","createHeaders","makeDataTableHeaderProps","createSort","makeDataTableSortProps","useSortedItems","createGroupBy","makeDataTableGroupProps","useGroupedItems","createPagination","makeDataTablePaginateProps","usePaginatedItems","createSelection","makeDataTableSelectProps","createExpanded","makeDataTableExpandProps","useOptions","provideDefaults","computed","toRef","defineComponent","propsFactory","useRender","makeFilterProps","useFilter","makeVDataTableProps","hideNoData","Boolean","noDataText","type","String","default","height","Number","width","fixedHeader","fixedFooter","VDataTable","name","props","search","emits","value","event","setup","emit","slots","groupBy","columns","showSelect","showExpand","items","filterKeys","map","c","key","filteredItems","sortBy","sortByWithGroups","opened","extractRows","sortedItems","flatItems","page","itemsPerPage","startIndex","stopIndex","paginatedItems","paginatedItemsWithoutGroups","top","colgroup","headers","multiSort","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTable.tsx"],"sourcesContent":["// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VDataTableFooter } from './VDataTableFooter'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { createSort, makeDataTableSortProps, useSortedItems } from './composables/sort'\nimport { createGroupBy, makeDataTableGroupProps, useGroupedItems } from './composables/group'\nimport { createPagination, makeDataTablePaginateProps, usePaginatedItems } from './composables/paginate'\nimport { createSelection, makeDataTableSelectProps } from './composables/select'\nimport { createExpanded, makeDataTableExpandProps } from './composables/expand'\nimport { useOptions } from './composables/options'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, propsFactory, useRender } from '@/util'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\n\n// Types\nimport type { DataTableItem } from './types'\n\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTableItemProps(),\n ...makeDataTableHeaderProps(),\n hideNoData: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n height: [String, Number],\n width: [String, Number],\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n}, 'v-data-table')\n\nexport const VDataTable = defineComponent({\n name: 'VDataTable',\n\n props: {\n search: String,\n\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n ...makeFilterProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n 'click:row': (event: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const groupBy = useProxiedModel(props, 'groupBy')\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key))\n const { filteredItems } = useFilter<DataTableItem>(props, items, toRef(props, 'search'), { filterKeys })\n\n const { sortBy } = createSort(props)\n const { sortByWithGroups, opened, extractRows } = createGroupBy(props, groupBy, sortBy)\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const { page, itemsPerPage, startIndex, stopIndex } = createPagination(props, flatItems)\n const { paginatedItems } = usePaginatedItems(flatItems, startIndex, stopIndex, itemsPerPage)\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n createSelection(props, paginatedItemsWithoutGroups)\n\n createExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n },\n })\n\n useRender(() => (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--show-select': props.showSelect,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n { slots.colgroup?.({ columns }) }\n <thead>\n { slots.headers ? slots.headers() : (\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n multiSort={ props.multiSort }\n v-slots={ slots }\n />\n ) }\n </thead>\n { slots.thead?.() }\n <tbody>\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ paginatedItems.value }\n onClick:row={ (event, value) => emit('click:row', event, value) }\n v-slots={ slots }\n />\n ) }\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n ))\n\n return {}\n },\n})\n\nexport type VDataTable = InstanceType<typeof VDataTable>\n"],"mappings":"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"}
@@ -19,4 +19,13 @@
19
19
  .v-data-table-footer__info {
20
20
  display: flex;
21
21
  padding-inline-end: 24px;
22
+ }
23
+
24
+ .v-data-table-footer__pagination {
25
+ display: flex;
26
+ align-items: center;
27
+ }
28
+
29
+ .v-data-table-footer__page {
30
+ padding: 0 8px;
22
31
  }
@@ -1,11 +1,13 @@
1
- import { createVNode as _createVNode, createTextVNode as _createTextVNode } from "vue";
1
+ import { createVNode as _createVNode } from "vue";
2
2
  // Styles
3
3
  import "./VDataTableFooter.css";
4
4
 
5
5
  // Components
6
6
  import { VBtn } from "../../components/VBtn/index.mjs";
7
7
  import { VSelect } from "../../components/VSelect/index.mjs"; // Composables
8
- import { usePagination } from "./composables/paginate.mjs"; // Utilities
8
+ import { usePagination } from "./composables/paginate.mjs";
9
+ import { useLocale } from "../entry-bundler.mjs"; // Utilities
10
+ import { computed } from 'vue';
9
11
  import { defineComponent } from "../../util/index.mjs"; // Types
10
12
  export const VDataTableFooter = defineComponent({
11
13
  name: 'VDataTableFooter',
@@ -26,6 +28,30 @@ export const VDataTableFooter = defineComponent({
26
28
  type: String,
27
29
  default: '$last'
28
30
  },
31
+ itemsPerPageText: {
32
+ type: String,
33
+ default: '$vuetify.dataFooter.itemsPerPageText'
34
+ },
35
+ pageText: {
36
+ type: String,
37
+ default: '$vuetify.dataFooter.pageText'
38
+ },
39
+ firstPageLabel: {
40
+ type: String,
41
+ default: '$vuetify.dataFooter.firstPage'
42
+ },
43
+ prevPageLabel: {
44
+ type: String,
45
+ default: '$vuetify.dataFooter.prevPage'
46
+ },
47
+ nextPageLabel: {
48
+ type: String,
49
+ default: '$vuetify.dataFooter.nextPage'
50
+ },
51
+ lastPageLabel: {
52
+ type: String,
53
+ default: '$vuetify.dataFooter.lastPage'
54
+ },
29
55
  itemsPerPageOptions: {
30
56
  type: Array,
31
57
  default: () => [{
@@ -42,7 +68,7 @@ export const VDataTableFooter = defineComponent({
42
68
  title: '100'
43
69
  }, {
44
70
  value: -1,
45
- title: 'All'
71
+ title: '$vuetify.dataFooter.itemsPerPageAll'
46
72
  }]
47
73
  },
48
74
  showCurrentPage: Boolean
@@ -51,6 +77,9 @@ export const VDataTableFooter = defineComponent({
51
77
  let {
52
78
  slots
53
79
  } = _ref;
80
+ const {
81
+ t
82
+ } = useLocale();
54
83
  const {
55
84
  page,
56
85
  pageCount,
@@ -59,14 +88,18 @@ export const VDataTableFooter = defineComponent({
59
88
  itemsLength,
60
89
  itemsPerPage
61
90
  } = usePagination();
91
+ const itemsPerPageOptions = computed(() => props.itemsPerPageOptions.map(option => ({
92
+ ...option,
93
+ title: t(option.title)
94
+ })));
62
95
  return () => {
63
96
  var _slots$prepend;
64
97
  return _createVNode("div", {
65
98
  "class": "v-data-table-footer"
66
99
  }, [(_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots), _createVNode("div", {
67
100
  "class": "v-data-table-footer__items-per-page"
68
- }, [_createVNode("span", null, [_createTextVNode("Items per page:")]), _createVNode(VSelect, {
69
- "items": props.itemsPerPageOptions,
101
+ }, [_createVNode("span", null, [t(props.itemsPerPageText)]), _createVNode(VSelect, {
102
+ "items": itemsPerPageOptions.value,
70
103
  "modelValue": itemsPerPage.value,
71
104
  "onUpdate:modelValue": v => itemsPerPage.value = Number(v),
72
105
  "density": "compact",
@@ -74,30 +107,35 @@ export const VDataTableFooter = defineComponent({
74
107
  "hide-details": true
75
108
  }, null)]), _createVNode("div", {
76
109
  "class": "v-data-table-footer__info"
77
- }, [_createVNode("div", null, [(startIndex.value ?? -1) + 1, _createTextVNode(" - "), stopIndex.value ?? 0, _createTextVNode(" of "), itemsLength.value ?? 0])]), _createVNode("div", {
110
+ }, [_createVNode("div", null, [t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value)])]), _createVNode("div", {
78
111
  "class": "v-data-table-footer__pagination"
79
112
  }, [_createVNode(VBtn, {
80
113
  "icon": props.firstIcon,
81
114
  "variant": "plain",
82
115
  "onClick": () => page.value = 1,
83
- "disabled": page.value === 1
116
+ "disabled": page.value === 1,
117
+ "aria-label": t(props.firstPageLabel)
84
118
  }, null), _createVNode(VBtn, {
85
119
  "icon": props.prevIcon,
86
120
  "variant": "plain",
87
121
  "onClick": () => page.value = Math.max(1, page.value - 1),
88
- "disabled": page.value === 1
89
- }, null), props.showCurrentPage && _createVNode("div", {
90
- "key": "page"
91
- }, [_createTextVNode("page.value")]), _createVNode(VBtn, {
122
+ "disabled": page.value === 1,
123
+ "aria-label": t(props.prevPageLabel)
124
+ }, null), props.showCurrentPage && _createVNode("span", {
125
+ "key": "page",
126
+ "class": "v-data-table-footer__page"
127
+ }, [page.value]), _createVNode(VBtn, {
92
128
  "icon": props.nextIcon,
93
129
  "variant": "plain",
94
130
  "onClick": () => page.value = Math.min(pageCount.value, page.value + 1),
95
- "disabled": page.value === pageCount.value
131
+ "disabled": page.value === pageCount.value,
132
+ "aria-label": t(props.nextPageLabel)
96
133
  }, null), _createVNode(VBtn, {
97
134
  "icon": props.lastIcon,
98
135
  "variant": "plain",
99
136
  "onClick": () => page.value = pageCount.value,
100
- "disabled": page.value === pageCount.value
137
+ "disabled": page.value === pageCount.value,
138
+ "aria-label": t(props.lastPageLabel)
101
139
  }, null)])]);
102
140
  };
103
141
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableFooter.mjs","names":["VBtn","VSelect","usePagination","defineComponent","VDataTableFooter","name","props","prevIcon","type","String","default","nextIcon","firstIcon","lastIcon","itemsPerPageOptions","Array","value","title","showCurrentPage","Boolean","setup","slots","page","pageCount","startIndex","stopIndex","itemsLength","itemsPerPage","prepend","v","Number","Math","max","min"],"sources":["../../../src/labs/VDataTable/VDataTableFooter.tsx"],"sourcesContent":["// Styles\nimport './VDataTableFooter.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { usePagination } from './composables/paginate'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { InternalItem } from '@/composables/items'\n\nexport const VDataTableFooter = defineComponent({\n name: 'VDataTableFooter',\n\n props: {\n prevIcon: {\n type: String,\n default: '$prev',\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n firstIcon: {\n type: String,\n default: '$first',\n },\n lastIcon: {\n type: String,\n default: '$last',\n },\n itemsPerPageOptions: {\n type: Array as PropType<InternalItem[]>,\n default: () => ([\n { value: 10, title: '10' },\n { value: 25, title: '25' },\n { value: 50, title: '50' },\n { value: 100, title: '100' },\n { value: -1, title: 'All' },\n ]),\n },\n showCurrentPage: Boolean,\n },\n\n setup (props, { slots }) {\n const { page, pageCount, startIndex, stopIndex, itemsLength, itemsPerPage } = usePagination()\n\n return () => (\n <div\n class=\"v-data-table-footer\"\n >\n { slots.prepend?.() }\n <div class=\"v-data-table-footer__items-per-page\">\n <span>Items per page:</span>\n <VSelect\n items={ props.itemsPerPageOptions }\n modelValue={ itemsPerPage.value }\n onUpdate:modelValue={ v => itemsPerPage.value = Number(v) }\n density=\"compact\"\n variant=\"outlined\"\n hide-details\n />\n </div>\n <div class=\"v-data-table-footer__info\">\n <div>{ (startIndex.value ?? -1) + 1 } - { stopIndex.value ?? 0 } of { itemsLength.value ?? 0 }</div>\n </div>\n <div class=\"v-data-table-footer__pagination\">\n <VBtn\n icon={ props.firstIcon }\n variant=\"plain\"\n onClick={ () => page.value = 1 }\n disabled={ page.value === 1 }\n />\n <VBtn\n icon={ props.prevIcon }\n variant=\"plain\"\n onClick={ () => page.value = Math.max(1, page.value - 1) }\n disabled={ page.value === 1 }\n />\n { props.showCurrentPage && (\n <div key=\"page\">page.value</div>\n ) }\n <VBtn\n icon={ props.nextIcon }\n variant=\"plain\"\n onClick={ () => page.value = Math.min(pageCount.value, page.value + 1) }\n disabled={ page.value === pageCount.value }\n />\n <VBtn\n icon={ props.lastIcon }\n variant=\"plain\"\n onClick={ () => page.value = pageCount.value }\n disabled={ page.value === pageCount.value }\n />\n </div>\n </div>\n )\n },\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTableFooter.mjs","names":["VBtn","VSelect","usePagination","useLocale","computed","defineComponent","VDataTableFooter","name","props","prevIcon","type","String","default","nextIcon","firstIcon","lastIcon","itemsPerPageText","pageText","firstPageLabel","prevPageLabel","nextPageLabel","lastPageLabel","itemsPerPageOptions","Array","value","title","showCurrentPage","Boolean","setup","slots","t","page","pageCount","startIndex","stopIndex","itemsLength","itemsPerPage","map","option","prepend","v","Number","Math","max","min"],"sources":["../../../src/labs/VDataTable/VDataTableFooter.tsx"],"sourcesContent":["// Styles\nimport './VDataTableFooter.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { usePagination } from './composables/paginate'\nimport { useLocale } from '../entry-bundler'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { InternalItem } from '@/composables/items'\n\nexport const VDataTableFooter = defineComponent({\n name: 'VDataTableFooter',\n\n props: {\n prevIcon: {\n type: String,\n default: '$prev',\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n firstIcon: {\n type: String,\n default: '$first',\n },\n lastIcon: {\n type: String,\n default: '$last',\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText',\n },\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText',\n },\n firstPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.firstPage',\n },\n prevPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.prevPage',\n },\n nextPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.nextPage',\n },\n lastPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.lastPage',\n },\n itemsPerPageOptions: {\n type: Array as PropType<InternalItem[]>,\n default: () => ([\n { value: 10, title: '10' },\n { value: 25, title: '25' },\n { value: 50, title: '50' },\n { value: 100, title: '100' },\n { value: -1, title: '$vuetify.dataFooter.itemsPerPageAll' },\n ]),\n },\n showCurrentPage: Boolean,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { page, pageCount, startIndex, stopIndex, itemsLength, itemsPerPage } = usePagination()\n\n const itemsPerPageOptions = computed(() => props.itemsPerPageOptions.map(option => ({\n ...option,\n title: t(option.title),\n })))\n\n return () => (\n <div\n class=\"v-data-table-footer\"\n >\n { slots.prepend?.() }\n <div class=\"v-data-table-footer__items-per-page\">\n <span>{ t(props.itemsPerPageText) }</span>\n <VSelect\n items={ itemsPerPageOptions.value }\n modelValue={ itemsPerPage.value }\n onUpdate:modelValue={ v => itemsPerPage.value = Number(v) }\n density=\"compact\"\n variant=\"outlined\"\n hide-details\n />\n </div>\n <div class=\"v-data-table-footer__info\">\n <div>\n { t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value) }\n </div>\n </div>\n <div class=\"v-data-table-footer__pagination\">\n <VBtn\n icon={ props.firstIcon }\n variant=\"plain\"\n onClick={ () => page.value = 1 }\n disabled={ page.value === 1 }\n aria-label={ t(props.firstPageLabel) }\n />\n <VBtn\n icon={ props.prevIcon }\n variant=\"plain\"\n onClick={ () => page.value = Math.max(1, page.value - 1) }\n disabled={ page.value === 1 }\n aria-label={ t(props.prevPageLabel) }\n />\n { props.showCurrentPage && (\n <span key=\"page\" class=\"v-data-table-footer__page\">{ page.value }</span>\n ) }\n <VBtn\n icon={ props.nextIcon }\n variant=\"plain\"\n onClick={ () => page.value = Math.min(pageCount.value, page.value + 1) }\n disabled={ page.value === pageCount.value }\n aria-label={ t(props.nextPageLabel) }\n />\n <VBtn\n icon={ props.lastIcon }\n variant=\"plain\"\n onClick={ () => page.value = pageCount.value }\n disabled={ page.value === pageCount.value }\n aria-label={ t(props.lastPageLabel) }\n />\n </div>\n </div>\n )\n },\n})\n"],"mappings":"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"}
@@ -21,3 +21,10 @@
21
21
  .v-data-table-footer__info
22
22
  display: flex
23
23
  padding-inline-end: 24px
24
+
25
+ .v-data-table-footer__pagination
26
+ display: flex
27
+ align-items: center
28
+
29
+ .v-data-table-footer__page
30
+ padding: 0 8px
@@ -103,7 +103,7 @@ export const VDataTableRows = defineComponent({
103
103
  });
104
104
  },
105
105
  "item": item
106
- }, slots), isExpanded(item.value) && ((_slots$expandedRow = slots['expanded-row']) == null ? void 0 : _slots$expandedRow.call(slots, {
106
+ }, slots), isExpanded(item) && ((_slots$expandedRow = slots['expanded-row']) == null ? void 0 : _slots$expandedRow.call(slots, {
107
107
  item,
108
108
  columns: columns.value
109
109
  }))]);
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableRows.mjs","names":["VDataTableGroupHeaderRow","VDataTableRow","useLocale","useExpanded","useHeaders","useSelection","useGroupBy","defineComponent","useRender","VDataTableRows","name","props","loading","Boolean","String","loadingText","type","default","hideNoData","items","Array","noDataText","rowHeight","Number","emits","event","value","setup","emit","slots","columns","expandOnClick","toggleExpand","isExpanded","isSelected","toggleSelect","toggleGroup","isGroupOpen","t","undefined","length","map","item","index","id"],"sources":["../../../src/labs/VDataTable/VDataTableRows.tsx"],"sourcesContent":["// Components\nimport { VDataTableGroupHeaderRow } from './VDataTableGroupHeaderRow'\nimport { VDataTableRow } from './VDataTableRow'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\nimport { useExpanded } from './composables/expand'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useGroupBy } from './composables/group'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DataTableItem, InternalDataTableItem } from './types'\n\nexport const VDataTableRows = defineComponent({\n name: 'VDataTableRows',\n\n props: {\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n hideNoData: Boolean,\n items: {\n type: Array as PropType<InternalDataTableItem[]>,\n default: () => ([]),\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n rowHeight: Number,\n },\n\n emits: {\n 'click:row': (event: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const { columns } = useHeaders()\n const { expandOnClick, toggleExpand, isExpanded } = useExpanded()\n const { isSelected, toggleSelect } = useSelection()\n const { toggleGroup, isGroupOpen } = useGroupBy()\n const { t } = useLocale()\n\n useRender(() => (\n <>\n { props.loading ? slots.loading?.() ?? (\n <VDataTableRow\n class=\"v-data-table-rows-no-data\"\n key=\"loading\"\n >\n { t(props.loadingText) }\n </VDataTableRow>\n ) : undefined }\n\n { !props.loading && !props.items.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VDataTableRow\n class=\"v-data-table-rows-no-data\"\n key=\"no-data\"\n >\n { t(props.noDataText) }\n </VDataTableRow>\n )) }\n\n { props.items.map((item, index) => {\n if (item.type === 'group-header') {\n return slots['group-header'] ? slots['group-header']({\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n toggleGroup,\n isGroupOpen,\n }) : (\n <VDataTableGroupHeaderRow\n key={ `group-header_${item.id}` }\n item={ item }\n v-slots={ slots }\n />\n )\n }\n\n return (\n <>\n { slots.item ? slots.item({\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n }) : (\n <VDataTableRow\n key={ `item_${item.value}` }\n onClick={ (event: Event) => {\n if (expandOnClick.value) {\n toggleExpand(item.value)\n }\n\n emit('click:row', event, { item })\n } }\n item={ item }\n v-slots={ slots }\n />\n ) }\n\n { isExpanded(item.value) && slots['expanded-row']?.({ item, columns: columns.value }) }\n </>\n )\n }) }\n </>\n ))\n\n return {}\n },\n})\n\nexport type VDataTableRows = InstanceType<typeof VDataTableRows>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTableRows.mjs","names":["VDataTableGroupHeaderRow","VDataTableRow","useLocale","useExpanded","useHeaders","useSelection","useGroupBy","defineComponent","useRender","VDataTableRows","name","props","loading","Boolean","String","loadingText","type","default","hideNoData","items","Array","noDataText","rowHeight","Number","emits","event","value","setup","emit","slots","columns","expandOnClick","toggleExpand","isExpanded","isSelected","toggleSelect","toggleGroup","isGroupOpen","t","undefined","length","map","item","index","id"],"sources":["../../../src/labs/VDataTable/VDataTableRows.tsx"],"sourcesContent":["// Components\nimport { VDataTableGroupHeaderRow } from './VDataTableGroupHeaderRow'\nimport { VDataTableRow } from './VDataTableRow'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\nimport { useExpanded } from './composables/expand'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useGroupBy } from './composables/group'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DataTableItem, InternalDataTableItem } from './types'\n\nexport const VDataTableRows = defineComponent({\n name: 'VDataTableRows',\n\n props: {\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n hideNoData: Boolean,\n items: {\n type: Array as PropType<InternalDataTableItem[]>,\n default: () => ([]),\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n rowHeight: Number,\n },\n\n emits: {\n 'click:row': (event: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const { columns } = useHeaders()\n const { expandOnClick, toggleExpand, isExpanded } = useExpanded()\n const { isSelected, toggleSelect } = useSelection()\n const { toggleGroup, isGroupOpen } = useGroupBy()\n const { t } = useLocale()\n\n useRender(() => (\n <>\n { props.loading ? slots.loading?.() ?? (\n <VDataTableRow\n class=\"v-data-table-rows-no-data\"\n key=\"loading\"\n >\n { t(props.loadingText) }\n </VDataTableRow>\n ) : undefined }\n\n { !props.loading && !props.items.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VDataTableRow\n class=\"v-data-table-rows-no-data\"\n key=\"no-data\"\n >\n { t(props.noDataText) }\n </VDataTableRow>\n )) }\n\n { props.items.map((item, index) => {\n if (item.type === 'group-header') {\n return slots['group-header'] ? slots['group-header']({\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n toggleGroup,\n isGroupOpen,\n }) : (\n <VDataTableGroupHeaderRow\n key={ `group-header_${item.id}` }\n item={ item }\n v-slots={ slots }\n />\n )\n }\n\n return (\n <>\n { slots.item ? slots.item({\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n }) : (\n <VDataTableRow\n key={ `item_${item.value}` }\n onClick={ (event: Event) => {\n if (expandOnClick.value) {\n toggleExpand(item.value)\n }\n\n emit('click:row', event, { item })\n } }\n item={ item }\n v-slots={ slots }\n />\n ) }\n\n { isExpanded(item) && slots['expanded-row']?.({ item, columns: columns.value }) }\n </>\n )\n }) }\n </>\n ))\n\n return {}\n },\n})\n\nexport type VDataTableRows = InstanceType<typeof VDataTableRows>\n"],"mappings":"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"}
@@ -4,14 +4,16 @@ import { VTable } from "../../components/VTable/index.mjs";
4
4
  import { VDataTableFooter } from "./VDataTableFooter.mjs";
5
5
  import { VDataTableHeaders } from "./VDataTableHeaders.mjs";
6
6
  import { VDataTableRows } from "./VDataTableRows.mjs"; // Composables
7
+ import { provideDefaults } from "../../composables/defaults.mjs";
8
+ import { useProxiedModel } from "../../composables/proxiedModel.mjs";
7
9
  import { createExpanded, makeDataTableExpandProps } from "./composables/expand.mjs";
10
+ import { createGroupBy, makeDataTableGroupProps, useGroupedItems } from "./composables/group.mjs";
8
11
  import { createHeaders, makeDataTableHeaderProps } from "./composables/headers.mjs";
9
12
  import { makeDataTableItemProps, useDataTableItems } from "./composables/items.mjs";
10
- import { createSort, makeDataTableSortProps } from "./composables/sort.mjs";
13
+ import { useOptions } from "./composables/options.mjs";
11
14
  import { createPagination, makeDataTablePaginateProps } from "./composables/paginate.mjs";
12
15
  import { createSelection, makeDataTableSelectProps } from "./composables/select.mjs";
13
- import { useOptions } from "./composables/options.mjs";
14
- import { provideDefaults } from "../../composables/defaults.mjs"; // Utilities
16
+ import { createSort, makeDataTableSortProps } from "./composables/sort.mjs"; // Utilities
15
17
  import { provide, toRef } from 'vue';
16
18
  import { defineComponent, useRender } from "../../util/index.mjs";
17
19
  import { makeVDataTableProps } from "./VDataTable.mjs"; // Types
@@ -31,7 +33,8 @@ export const VDataTableServer = defineComponent({
31
33
  ...makeDataTableItemProps(),
32
34
  ...makeDataTableSelectProps(),
33
35
  ...makeDataTableSortProps(),
34
- ...makeDataTablePaginateProps()
36
+ ...makeDataTablePaginateProps(),
37
+ ...makeDataTableGroupProps()
35
38
  },
36
39
  emits: {
37
40
  'update:modelValue': value => true,
@@ -40,6 +43,7 @@ export const VDataTableServer = defineComponent({
40
43
  'update:sortBy': sortBy => true,
41
44
  'update:options': options => true,
42
45
  'update:expanded': options => true,
46
+ 'update:groupBy': value => true,
43
47
  'click:row': (event, value) => true
44
48
  },
45
49
  setup(props, _ref) {
@@ -47,10 +51,12 @@ export const VDataTableServer = defineComponent({
47
51
  emit,
48
52
  slots
49
53
  } = _ref;
54
+ const groupBy = useProxiedModel(props, 'groupBy');
50
55
  createExpanded(props);
51
56
  const {
52
57
  columns
53
58
  } = createHeaders(props, {
59
+ groupBy,
54
60
  showSelect: toRef(props, 'showSelect'),
55
61
  showExpand: toRef(props, 'showExpand')
56
62
  });
@@ -61,21 +67,22 @@ export const VDataTableServer = defineComponent({
61
67
  sortBy,
62
68
  toggleSort
63
69
  } = createSort(props);
70
+ const {
71
+ opened
72
+ } = createGroupBy(props, groupBy, sortBy);
64
73
  const {
65
74
  page,
66
- itemsPerPage,
67
- startIndex,
68
- stopIndex,
69
- pageCount
75
+ itemsPerPage
70
76
  } = createPagination(props, items);
77
+ const {
78
+ flatItems
79
+ } = useGroupedItems(items, groupBy, opened);
71
80
  createSelection(props, items);
72
81
  useOptions({
73
82
  page,
74
83
  itemsPerPage,
75
84
  sortBy,
76
- startIndex,
77
- stopIndex,
78
- pageCount
85
+ groupBy
79
86
  });
80
87
  provide('v-data-table', {
81
88
  toggleSort,
@@ -111,7 +118,7 @@ export const VDataTableServer = defineComponent({
111
118
  "class": "v-data-table__tbody",
112
119
  "role": "rowgroup"
113
120
  }, [slots.body ? slots.body() : _createVNode(VDataTableRows, {
114
- "items": items.value,
121
+ "items": flatItems.value,
115
122
  "onClick:row": (event, value) => emit('click:row', event, value)
116
123
  }, slots)]), (_slots$tbody = slots.tbody) == null ? void 0 : _slots$tbody.call(slots), (_slots$tfoot = slots.tfoot) == null ? void 0 : _slots$tfoot.call(slots)]);
117
124
  }),