@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.
- package/CHANGELOG.md +207 -15
- package/dist/json/attributes.json +7202 -0
- package/dist/json/importMap-labs.json +4 -0
- package/dist/json/importMap.json +102 -102
- package/dist/json/tags.json +2492 -0
- package/dist/json/web-types.json +24081 -0
- package/dist/vuetify-labs.css +163 -147
- package/dist/vuetify-labs.d.ts +441 -176
- package/dist/vuetify-labs.esm.js +328 -225
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +327 -224
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +53 -46
- package/dist/vuetify.d.ts +342 -203
- package/dist/vuetify.esm.js +249 -185
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +248 -184
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +696 -685
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.ts +2 -2
- package/lib/blueprints/md1.d.ts +2 -2
- package/lib/blueprints/md2.d.ts +2 -2
- package/lib/blueprints/md3.d.ts +2 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs +3 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.ts +43 -20
- package/lib/components/VBottomSheet/VBottomSheet.mjs +1 -4
- package/lib/components/VBottomSheet/VBottomSheet.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.css +7 -7
- package/lib/components/VBtn/VBtn.mjs +8 -3
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.mjs +15 -11
- package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
- package/lib/components/VBtnGroup/index.d.ts +2 -1
- package/lib/components/VBtnToggle/VBtnToggle.mjs +9 -5
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VBtnToggle/index.d.ts +122 -1
- package/lib/components/VCalendar/VCalendar.mjs +3 -0
- package/lib/components/VCalendar/VCalendar.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarCategory.sass +9 -3
- package/lib/components/VCalendar/VCalendarDaily.mjs +20 -8
- package/lib/components/VCalendar/VCalendarDaily.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarWeekly.mjs +25 -5
- package/lib/components/VCalendar/VCalendarWeekly.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/calendar-with-events.mjs +20 -16
- package/lib/components/VCalendar/mixins/calendar-with-events.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/mouse.mjs +16 -30
- package/lib/components/VCalendar/mixins/mouse.mjs.map +1 -1
- package/lib/components/VCard/VCard.css +7 -7
- package/lib/components/VChip/VChip.css +7 -7
- package/lib/components/VCombobox/VCombobox.mjs +3 -3
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +43 -20
- package/lib/components/VData/VData.mjs +2 -4
- package/lib/components/VData/VData.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.mjs +7 -5
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDefaultsProvider/index.d.ts +5 -4
- package/lib/components/VDialog/VDialog.mjs +6 -5
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/index.d.ts +57 -34
- package/lib/components/VDivider/VDivider.mjs +6 -6
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.css +7 -7
- package/lib/components/VField/VField.css +2 -2
- package/lib/components/VField/VField.mjs +28 -26
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +2 -2
- package/lib/components/VFileInput/VFileInput.mjs +7 -4
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VForm/index.d.ts +0 -3
- package/lib/components/VList/VList.mjs +4 -1
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +7 -7
- package/lib/components/VList/VListItem.mjs +29 -19
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.mjs +6 -5
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.ts +57 -34
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +4 -0
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +4 -0
- package/lib/components/VNavigationDrawer/index.d.ts +3 -3
- package/lib/components/VNavigationDrawer/touch.mjs +7 -6
- package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.mjs +22 -46
- package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
- package/lib/components/VOverflowBtn/VOverflowBtn.mjs +3 -0
- package/lib/components/VOverflowBtn/VOverflowBtn.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.ts +34 -11
- package/lib/components/VOverlay/locationStrategies.mjs +40 -29
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.mjs +25 -16
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +1 -1
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +3 -4
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +43 -20
- package/lib/components/VSelectionControl/VSelectionControl.css +2 -2
- package/lib/components/VSkeletonLoader/VSkeletonLoader.sass +1 -1
- package/lib/components/VSnackbar/index.d.ts +42 -19
- package/lib/components/VStepper/VStepper.sass +6 -6
- package/lib/components/VStepper/VStepperStep.mjs +12 -2
- package/lib/components/VStepper/VStepperStep.mjs.map +1 -1
- package/lib/components/VTable/VTable.css +4 -4
- package/lib/components/VTable/VTable.sass +2 -2
- package/lib/components/VTimePicker/VTimePicker.mjs.map +1 -1
- package/lib/components/VTimeline/_mixins.sass +1 -1
- package/lib/components/VTooltip/VTooltip.mjs +4 -3
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/index.d.ts +57 -34
- package/lib/components/VTreeview/VTreeview.mjs +1 -1
- package/lib/components/VTreeview/VTreeview.mjs.map +1 -1
- package/lib/components/index.d.ts +316 -176
- package/lib/composables/defaults.mjs +1 -1
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/filter.mjs +3 -3
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/composables/form.mjs +0 -1
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/toggleScope.mjs +14 -7
- package/lib/composables/toggleScope.mjs.map +1 -1
- package/lib/directives/ripple/VRipple.css +3 -0
- package/lib/directives/ripple/VRipple.sass +3 -0
- package/lib/directives/ripple/_variables.scss +1 -1
- package/lib/directives/ripple/index.mjs +2 -7
- package/lib/directives/ripple/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.ts +29 -29
- package/lib/labs/VDataTable/VDataTable.mjs +6 -6
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.css +9 -0
- package/lib/labs/VDataTable/VDataTableFooter.mjs +51 -13
- package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.sass +7 -0
- package/lib/labs/VDataTable/VDataTableRows.mjs +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +19 -12
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +6 -5
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/options.mjs +3 -7
- package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/paginate.mjs +1 -1
- package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.ts +125 -1
- package/lib/labs/VDataTable/index.mjs +1 -0
- package/lib/labs/VDataTable/index.mjs.map +1 -1
- package/lib/labs/components.d.ts +125 -1
- package/lib/locale/adapters/vue-i18n.mjs +12 -2
- package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
- package/lib/locale/ar.mjs +20 -20
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/en.mjs +2 -2
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +3 -3
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/fi.mjs +5 -5
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/it.mjs +6 -6
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/sv.mjs +13 -13
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/styles/settings/_variables.scss +6 -6
- package/lib/styles/tools/_states.sass +3 -3
- package/lib/util/defineComponent.mjs +21 -18
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/helpers.mjs +5 -19
- package/lib/util/helpers.mjs.map +1 -1
- 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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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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"}
|
@@ -1,11 +1,13 @@
|
|
1
|
-
import { createVNode as _createVNode
|
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";
|
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: '
|
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, [
|
69
|
-
"items":
|
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, [(
|
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
|
-
|
90
|
-
|
91
|
-
|
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: '
|
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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"}
|
@@ -103,7 +103,7 @@ export const VDataTableRows = defineComponent({
|
|
103
103
|
});
|
104
104
|
},
|
105
105
|
"item": item
|
106
|
-
}, slots), isExpanded(item
|
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
|
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":";AAAA;AAAA,SACSA,wBAAwB;AAAA,SACxBC,aAAa,+BAEtB;AAAA,SACSC,SAAS;AAAA,SACTC,WAAW;AAAA,SACXC,UAAU;AAAA,SACVC,YAAY;AAAA,SACZC,UAAU,mCAEnB;AAAA,SACSC,eAAe,EAAEC,SAAS,gCAEnC;AAIA,OAAO,MAAMC,cAAc,GAAGF,eAAe,CAAC;EAC5CG,IAAI,EAAE,gBAAgB;EAEtBC,KAAK,EAAE;IACLC,OAAO,EAAE,CAACC,OAAO,EAAEC,MAAM,CAAC;IAC1BC,WAAW,EAAE;MACXC,IAAI,EAAEF,MAAM;MACZG,OAAO,EAAE;IACX,CAAC;IACDC,UAAU,EAAEL,OAAO;IACnBM,KAAK,EAAE;MACLH,IAAI,EAAEI,KAA0C;MAChDH,OAAO,EAAE,MAAO;IAClB,CAAC;IACDI,UAAU,EAAE;MACVL,IAAI,EAAEF,MAAM;MACZG,OAAO,EAAE;IACX,CAAC;IACDK,SAAS,EAAEC;EACb,CAAC;EAEDC,KAAK,EAAE;IACL,WAAW,EAAE,CAACC,KAAY,EAAEC,KAA8B,KAAK;EACjE,CAAC;EAEDC,KAAK,CAAEhB,KAAK,QAAmB;IAAA,IAAjB;MAAEiB,IAAI;MAAEC;IAAM,CAAC;IAC3B,MAAM;MAAEC;IAAQ,CAAC,GAAG1B,UAAU,EAAE;IAChC,MAAM;MAAE2B,aAAa;MAAEC,YAAY;MAAEC;IAAW,CAAC,GAAG9B,WAAW,EAAE;IACjE,MAAM;MAAE+B,UAAU;MAAEC;IAAa,CAAC,GAAG9B,YAAY,EAAE;IACnD,MAAM;MAAE+B,WAAW;MAAEC;IAAY,CAAC,GAAG/B,UAAU,EAAE;IACjD,MAAM;MAAEgC;IAAE,CAAC,GAAGpC,SAAS,EAAE;IAEzBM,SAAS,CAAC;MAAA;MAAA,sCAEJG,KAAK,CAACC,OAAO,GAAG,mBAAAiB,KAAK,CAACjB,OAAO,qBAAb,oBAAAiB,KAAK,CAAY;QAAA,SAEzB,2BAA2B;QAAA,OAC7B;MAAS;QAAA,gBAEXS,CAAC,CAAC3B,KAAK,CAACI,WAAW,CAAC;MAAA,EAEzB,GAAGwB,SAAS,EAEX,CAAC5B,KAAK,CAACC,OAAO,IAAI,CAACD,KAAK,CAACQ,KAAK,CAACqB,MAAM,IAAI,CAAC7B,KAAK,CAACO,UAAU,KAAK,kBAAAW,KAAK,CAAC,SAAS,CAAC,qBAAhB,mBAAAA,KAAK,CAAe;QAAA,SAE3E,2BAA2B;QAAA,OAC7B;MAAS;QAAA,gBAEXS,CAAC,CAAC3B,KAAK,CAACU,UAAU,CAAC;MAAA,EAExB,CAAC,EAEAV,KAAK,CAACQ,KAAK,CAACsB,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;QAAA;QACjC,IAAID,IAAI,CAAC1B,IAAI,KAAK,cAAc,EAAE;UAChC,OAAOa,KAAK,CAAC,cAAc,CAAC,GAAGA,KAAK,CAAC,cAAc,CAAC,CAAC;YACnDc,KAAK;YACLD,IAAI;YACJZ,OAAO,EAAEA,OAAO,CAACJ,KAAK;YACtBO,UAAU;YACVD,YAAY;YACZE,UAAU;YACVC,YAAY;YACZC,WAAW;YACXC;UACF,CAAC,CAAC;YAAA,OAES,gBAAeK,IAAI,CAACE,EAAG,EAAC;YAAA,QACxBF;UAAI,GACDb,KAAK,CAElB;QACH;QAEA,sCAEMA,KAAK,CAACa,IAAI,GAAGb,KAAK,CAACa,IAAI,CAAC;UACxBC,KAAK;UACLD,IAAI;UACJZ,OAAO,EAAEA,OAAO,CAACJ,KAAK;UACtBO,UAAU;UACVD,YAAY;UACZE,UAAU;UACVC;QACF,CAAC,CAAC;UAAA,OAES,QAAOO,IAAI,CAAChB,KAAM,EAAC;UAAA,WACfD,KAAY,IAAK;YAC1B,IAAIM,aAAa,CAACL,KAAK,EAAE;cACvBM,YAAY,CAACU,IAAI,CAAChB,KAAK,CAAC;YAC1B;YAEAE,IAAI,CAAC,WAAW,EAAEH,KAAK,EAAE;cAAEiB;YAAK,CAAC,CAAC;UACpC,CAAC;UAAA,QACMA;QAAI,GACDb,KAAK,CAElB,EAECI,UAAU,CAACS,IAAI,CAAC,2BAAIb,KAAK,CAAC,cAAc,CAAC,qBAArB,wBAAAA,KAAK,EAAmB;UAAEa,IAAI;UAAEZ,OAAO,EAAEA,OAAO,CAACJ;QAAM,CAAC,CAAC;MAGrF,CAAC,CAAC;IAAA,CAEL,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
|
@@ -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 {
|
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 {
|
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
|
-
|
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":
|
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
|
}),
|