@vuetify/nightly 3.2.0-dev-20230214.0 → 3.2.0-dev-20230322.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 +5 -17
- package/dist/json/attributes.json +243 -59
- package/dist/json/tags.json +48 -2
- package/dist/json/web-types.json +1648 -279
- package/dist/vuetify-labs.css +666 -482
- package/dist/vuetify-labs.d.ts +59419 -13475
- package/dist/vuetify-labs.esm.js +797 -531
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +797 -531
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +524 -355
- package/dist/vuetify.d.ts +55670 -14368
- package/dist/vuetify.esm.js +607 -462
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +607 -462
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +793 -793
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.ts +6 -9
- package/lib/blueprints/md1.d.ts +6 -9
- package/lib/blueprints/md2.d.ts +6 -9
- package/lib/blueprints/md3.d.ts +6 -9
- package/lib/blueprints/md3.mjs +6 -0
- package/lib/blueprints/md3.mjs.map +1 -1
- package/lib/components/VAlert/VAlert.css +1 -1
- package/lib/components/VAlert/VAlert.mjs +29 -15
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/_variables.scss +1 -1
- package/lib/components/VAlert/index.d.ts +515 -65
- package/lib/components/VApp/VApp.css +1 -0
- package/lib/components/VApp/VApp.sass +1 -0
- package/lib/components/VApp/index.d.ts +161 -17
- package/lib/components/VAppBar/VAppBar.mjs +9 -4
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.ts +624 -82
- package/lib/components/VAutocomplete/VAutocomplete.mjs +23 -8
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.ts +1744 -113
- package/lib/components/VAvatar/index.d.ts +207 -25
- package/lib/components/VBadge/index.d.ts +286 -36
- package/lib/components/VBanner/VBanner.mjs +19 -12
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/index.d.ts +485 -67
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +6 -2
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBottomNavigation/index.d.ts +323 -36
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +11 -7
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.ts +346 -42
- package/lib/components/VBtn/VBtn.css +0 -5
- package/lib/components/VBtn/VBtn.mjs +65 -58
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +0 -7
- package/lib/components/VBtn/_variables.scss +0 -2
- package/lib/components/VBtn/index.d.ts +454 -59
- package/lib/components/VBtnGroup/VBtnGroup.mjs +1 -7
- package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
- package/lib/components/VBtnGroup/index.d.ts +187 -22
- package/lib/components/VBtnToggle/VBtnToggle.mjs +2 -2
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VBtnToggle/index.d.ts +248 -32
- package/lib/components/VCard/VCard.mjs +10 -6
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCardItem.mjs +27 -23
- package/lib/components/VCard/VCardItem.mjs.map +1 -1
- package/lib/components/VCard/index.d.ts +958 -132
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/index.d.ts +585 -87
- package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +1 -4
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.ts +841 -119
- package/lib/components/VChip/VChip.css +110 -90
- package/lib/components/VChip/VChip.mjs +70 -48
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/_mixins.scss +27 -23
- package/lib/components/VChip/index.d.ts +476 -66
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VChipGroup/index.d.ts +229 -28
- package/lib/components/VCode/index.d.ts +112 -13
- package/lib/components/VColorPicker/VColorPicker.mjs +9 -1
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.css +2 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +36 -18
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.sass +2 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs +4 -4
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +2 -2
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VColorPicker/index.d.ts +284 -20
- package/lib/components/VColorPicker/util/index.mjs +2 -5
- package/lib/components/VColorPicker/util/index.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +23 -8
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +1756 -113
- package/lib/components/VCounter/index.d.ts +1909 -78
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +4 -1
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
- package/lib/components/VDefaultsProvider/index.d.ts +136 -18
- package/lib/components/VDialog/VDialog.css +31 -24
- package/lib/components/VDialog/VDialog.mjs +2 -2
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +19 -12
- package/lib/components/VDialog/index.d.ts +2403 -124
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VDivider/index.d.ts +132 -19
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.ts +741 -104
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/index.d.ts +179 -23
- package/lib/components/VFileInput/VFileInput.mjs +1 -0
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.ts +1069 -93
- package/lib/components/VFooter/VFooter.css +2 -0
- package/lib/components/VFooter/VFooter.sass +2 -0
- package/lib/components/VFooter/_variables.scss +2 -0
- package/lib/components/VFooter/index.d.ts +206 -25
- package/lib/components/VForm/index.d.ts +207 -20
- package/lib/components/VGrid/VCol.mjs +6 -5
- package/lib/components/VGrid/VCol.mjs.map +1 -1
- package/lib/components/VGrid/VRow.mjs +4 -4
- package/lib/components/VGrid/VRow.mjs.map +1 -1
- package/lib/components/VGrid/index.d.ts +745 -64
- package/lib/components/VHover/index.d.ts +188 -29
- package/lib/components/VIcon/index.d.ts +500 -44
- package/lib/components/VImg/VImg.mjs +2 -2
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/index.d.ts +281 -40
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/index.d.ts +321 -47
- package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
- package/lib/components/VItemGroup/index.d.ts +313 -45
- package/lib/components/VKbd/VKbd.css +1 -0
- package/lib/components/VKbd/VKbd.sass +1 -0
- package/lib/components/VKbd/_variables.scss +1 -0
- package/lib/components/VKbd/index.d.ts +112 -13
- package/lib/components/VLabel/index.d.ts +115 -16
- package/lib/components/VLayout/index.d.ts +302 -35
- package/lib/components/VLazy/VLazy.mjs +4 -1
- package/lib/components/VLazy/VLazy.mjs.map +1 -1
- package/lib/components/VLazy/index.d.ts +222 -27
- package/lib/components/VList/VListChildren.mjs +2 -2
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +1 -4
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +23 -19
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListSubheader.mjs.map +1 -1
- package/lib/components/VList/index.d.ts +1500 -191
- package/lib/components/VLocaleProvider/index.d.ts +123 -16
- package/lib/components/VMain/index.d.ts +121 -14
- package/lib/components/VMenu/VMenu.css +4 -4
- package/lib/components/VMenu/VMenu.mjs +8 -7
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.sass +1 -1
- package/lib/components/VMenu/index.d.ts +2411 -121
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VMessages/index.d.ts +1934 -87
- package/lib/components/VNavigationDrawer/index.d.ts +382 -47
- package/lib/components/VNoSsr/index.d.ts +6 -0
- package/lib/components/VOverlay/VOverlay.css +2 -2
- package/lib/components/VOverlay/VOverlay.mjs +1 -4
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.sass +1 -1
- package/lib/components/VOverlay/_variables.scss +1 -1
- package/lib/components/VOverlay/index.d.ts +527 -75
- package/lib/components/VOverlay/scrollStrategies.mjs +2 -2
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/index.d.ts +504 -56
- package/lib/components/VParallax/VParallax.mjs +3 -3
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VParallax/index.d.ts +144 -19
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressCircular/index.d.ts +189 -22
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/index.d.ts +325 -42
- package/lib/components/VRadio/index.d.ts +318 -46
- package/lib/components/VRadioGroup/VRadioGroup.mjs +4 -6
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.d.ts +468 -66
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.ts +530 -66
- package/lib/components/VRating/VRating.css +0 -4
- package/lib/components/VRating/VRating.mjs +6 -35
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/VRating.sass +0 -5
- package/lib/components/VRating/index.d.ts +309 -38
- package/lib/components/VResponsive/index.d.ts +144 -21
- package/lib/components/VSelect/VSelect.mjs +23 -8
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +3150 -247
- package/lib/components/VSelectionControl/VSelectionControl.mjs +1 -4
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.ts +90 -10
- package/lib/components/VSelectionControlGroup/index.d.ts +245 -35
- package/lib/components/VSheet/VSheet.mjs +16 -12
- package/lib/components/VSheet/VSheet.mjs.map +1 -1
- package/lib/components/VSheet/index.d.ts +196 -27
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.ts +488 -70
- package/lib/components/VSlider/VSliderTrack.mjs +1 -0
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/index.d.ts +523 -65
- package/lib/components/VSlider/slider.mjs +5 -6
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.css +2 -9
- package/lib/components/VSnackbar/VSnackbar.mjs +10 -11
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.sass +3 -10
- package/lib/components/VSnackbar/index.d.ts +1255 -74
- package/lib/components/VSwitch/VSwitch.mjs +2 -2
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/index.d.ts +503 -75
- package/lib/components/VSystemBar/VSystemBar.css +5 -1
- package/lib/components/VSystemBar/VSystemBar.mjs +6 -2
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.sass +5 -1
- package/lib/components/VSystemBar/_variables.scss +4 -1
- package/lib/components/VSystemBar/index.d.ts +186 -23
- package/lib/components/VTable/VTable.mjs.map +1 -1
- package/lib/components/VTable/index.d.ts +193 -26
- package/lib/components/VTabs/VTab.mjs +7 -23
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/index.d.ts +628 -64
- package/lib/components/VTextField/VTextField.mjs +9 -5
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/index.d.ts +1447 -101
- package/lib/components/VTextarea/VTextarea.mjs +8 -1
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/index.d.ts +1043 -93
- package/lib/components/VThemeProvider/index.d.ts +127 -16
- package/lib/components/VTimeline/VTimelineDivider.mjs +18 -10
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VTimeline/index.d.ts +446 -60
- package/lib/components/VToolbar/VToolbar.mjs +10 -9
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
- package/lib/components/VToolbar/index.d.ts +552 -73
- package/lib/components/VTooltip/VTooltip.css +3 -3
- package/lib/components/VTooltip/VTooltip.mjs +4 -4
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/VTooltip.sass +1 -1
- package/lib/components/VTooltip/index.d.ts +1315 -73
- package/lib/components/VValidation/index.d.ts +204 -27
- package/lib/components/VWindow/index.d.ts +541 -75
- package/lib/components/index.d.ts +55694 -14389
- package/lib/components/transitions/createTransition.mjs +1 -1
- package/lib/components/transitions/createTransition.mjs.map +1 -1
- package/lib/components/transitions/index.d.ts +2144 -259
- package/lib/composables/defaults.mjs +5 -1
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/display.mjs +15 -10
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/loader.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs +2 -2
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/nested/selectStrategies.mjs +7 -1
- package/lib/composables/nested/selectStrategies.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs +1 -1
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/resizeObserver.mjs.map +1 -1
- package/lib/composables/stack.mjs +2 -2
- package/lib/composables/stack.mjs.map +1 -1
- package/lib/composables/theme.mjs +28 -23
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/variant.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.ts +6 -9
- package/lib/labs/VDataTable/VDataTable.css +15 -0
- package/lib/labs/VDataTable/VDataTable.mjs +45 -19
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTable.sass +9 -0
- package/lib/labs/VDataTable/VDataTableFooter.mjs +3 -2
- package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRow.mjs +8 -2
- package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +6 -7
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +41 -19
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +27 -14
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/expand.mjs +1 -1
- package/lib/labs/VDataTable/composables/expand.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/group.mjs +12 -1
- package/lib/labs/VDataTable/composables/group.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/options.mjs +4 -10
- package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/paginate.mjs +25 -4
- package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/select.mjs +1 -1
- package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/sort.mjs +19 -3
- package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.ts +4934 -317
- package/lib/labs/VVirtualScroll/VVirtualScroll.mjs +18 -5
- package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/labs/VVirtualScroll/index.d.ts +41 -7
- package/lib/labs/components.d.ts +4970 -324
- package/lib/locale/adapters/vue-i18n.d.ts +1 -1
- package/lib/locale/adapters/vue-i18n.mjs +1 -1
- package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
- package/lib/locale/index.mjs +1 -1
- package/lib/locale/index.mjs.map +1 -1
- package/lib/styles/elements/_global.sass +0 -4
- package/lib/styles/generic/_index.scss +0 -1
- package/lib/styles/generic/_transitions.scss +111 -9
- package/lib/styles/main.css +316 -167
- package/lib/styles/settings/_utilities.scss +7 -0
- package/lib/styles/tools/_sheet.sass +3 -6
- package/lib/styles/utilities/_display.sass +6 -5
- package/lib/styles/utilities/_elevation.scss +13 -0
- package/lib/styles/utilities/_index.sass +3 -2
- package/lib/styles/utilities/_screenreaders.sass +13 -11
- package/lib/util/animation.mjs +8 -1
- package/lib/util/animation.mjs.map +1 -1
- package/lib/util/colorUtils.mjs +4 -5
- package/lib/util/colorUtils.mjs.map +1 -1
- package/lib/util/defineComponent.mjs +15 -7
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/helpers.mjs +4 -0
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +15 -7
- package/lib/styles/generic/_elevation.scss +0 -10
|
@@ -13,10 +13,20 @@ export const makeDataTablePaginateProps = propsFactory({
|
|
|
13
13
|
}
|
|
14
14
|
}, 'v-data-table-paginate');
|
|
15
15
|
const VDataTablePaginationSymbol = Symbol.for('vuetify:data-table-pagination');
|
|
16
|
-
export function createPagination(props
|
|
16
|
+
export function createPagination(props) {
|
|
17
17
|
const page = useProxiedModel(props, 'page', undefined, value => +(value ?? 1));
|
|
18
18
|
const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => +(value ?? 10));
|
|
19
|
-
|
|
19
|
+
return {
|
|
20
|
+
page,
|
|
21
|
+
itemsPerPage
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export function providePagination(options) {
|
|
25
|
+
const {
|
|
26
|
+
page,
|
|
27
|
+
itemsPerPage,
|
|
28
|
+
itemsLength
|
|
29
|
+
} = options;
|
|
20
30
|
const startIndex = computed(() => {
|
|
21
31
|
if (itemsPerPage.value === -1) return 0;
|
|
22
32
|
return itemsPerPage.value * (page.value - 1);
|
|
@@ -29,13 +39,18 @@ export function createPagination(props, items) {
|
|
|
29
39
|
if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1;
|
|
30
40
|
return Math.ceil(itemsLength.value / itemsPerPage.value);
|
|
31
41
|
});
|
|
42
|
+
function setItemsPerPage(value) {
|
|
43
|
+
itemsPerPage.value = value;
|
|
44
|
+
page.value = 1;
|
|
45
|
+
}
|
|
32
46
|
const data = {
|
|
33
47
|
page,
|
|
34
48
|
itemsPerPage,
|
|
49
|
+
itemsLength,
|
|
35
50
|
startIndex,
|
|
36
51
|
stopIndex,
|
|
37
52
|
pageCount,
|
|
38
|
-
|
|
53
|
+
setItemsPerPage
|
|
39
54
|
};
|
|
40
55
|
provide(VDataTablePaginationSymbol, data);
|
|
41
56
|
return data;
|
|
@@ -45,7 +60,13 @@ export function usePagination() {
|
|
|
45
60
|
if (!data) throw new Error('Missing pagination!');
|
|
46
61
|
return data;
|
|
47
62
|
}
|
|
48
|
-
export function usePaginatedItems(
|
|
63
|
+
export function usePaginatedItems(options) {
|
|
64
|
+
const {
|
|
65
|
+
items,
|
|
66
|
+
startIndex,
|
|
67
|
+
stopIndex,
|
|
68
|
+
itemsPerPage
|
|
69
|
+
} = options;
|
|
49
70
|
const paginatedItems = computed(() => {
|
|
50
71
|
if (itemsPerPage.value <= 0) return items.value;
|
|
51
72
|
return items.value.slice(startIndex.value, stopIndex.value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paginate.mjs","names":["useProxiedModel","computed","inject","provide","propsFactory","makeDataTablePaginateProps","page","type","Number","String","default","itemsPerPage","VDataTablePaginationSymbol","Symbol","for","createPagination","props","
|
|
1
|
+
{"version":3,"file":"paginate.mjs","names":["useProxiedModel","computed","inject","provide","propsFactory","makeDataTablePaginateProps","page","type","Number","String","default","itemsPerPage","VDataTablePaginationSymbol","Symbol","for","createPagination","props","undefined","value","providePagination","options","itemsLength","startIndex","stopIndex","Math","min","pageCount","ceil","setItemsPerPage","data","usePagination","Error","usePaginatedItems","items","paginatedItems","slice"],"sources":["../../../../src/labs/VDataTable/composables/paginate.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\nexport const makeDataTablePaginateProps = propsFactory({\n page: {\n type: [Number, String],\n default: 1,\n },\n itemsPerPage: {\n type: [Number, String],\n default: 10,\n },\n}, 'v-data-table-paginate')\n\nconst VDataTablePaginationSymbol: InjectionKey<{\n page: Ref<number>\n itemsPerPage: Ref<number>\n setItemsPerPage: (value: number) => void\n startIndex: Ref<number>\n stopIndex: Ref<number>\n pageCount: Ref<number>\n itemsLength: Ref<number>\n}> = Symbol.for('vuetify:data-table-pagination')\n\ntype PaginationProps = {\n page: number | string\n 'onUpdate:page': ((val: any) => void) | undefined\n itemsPerPage: number | string\n 'onUpdate:itemsPerPage': ((val: any) => void) | undefined\n itemsLength?: number | string\n}\n\nexport function createPagination (props: PaginationProps) {\n const page = useProxiedModel(props, 'page', undefined, value => +(value ?? 1))\n const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => +(value ?? 10))\n\n return { page, itemsPerPage }\n}\n\nexport function providePagination (options: {\n page: Ref<number>\n itemsPerPage: Ref<number>\n itemsLength: Ref<number>\n}) {\n const { page, itemsPerPage, itemsLength } = options\n\n const startIndex = computed(() => {\n if (itemsPerPage.value === -1) return 0\n\n return itemsPerPage.value * (page.value - 1)\n })\n const stopIndex = computed(() => {\n if (itemsPerPage.value === -1) return itemsLength.value\n\n return Math.min(itemsLength.value, startIndex.value + itemsPerPage.value)\n })\n\n const pageCount = computed(() => {\n if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1\n\n return Math.ceil(itemsLength.value / itemsPerPage.value)\n })\n\n function setItemsPerPage (value: number) {\n itemsPerPage.value = value\n page.value = 1\n }\n\n const data = { page, itemsPerPage, itemsLength, startIndex, stopIndex, pageCount, setItemsPerPage }\n\n provide(VDataTablePaginationSymbol, data)\n\n return data\n}\n\nexport function usePagination () {\n const data = inject(VDataTablePaginationSymbol)\n\n if (!data) throw new Error('Missing pagination!')\n\n return data\n}\n\nexport function usePaginatedItems (options: {\n items: Ref<any[]>\n startIndex: Ref<number>\n stopIndex: Ref<number>\n itemsPerPage: Ref<number>\n}) {\n const { items, startIndex, stopIndex, itemsPerPage } = options\n const paginatedItems = computed(() => {\n if (itemsPerPage.value <= 0) return items.value\n\n return items.value.slice(startIndex.value, stopIndex.value)\n })\n\n return { paginatedItems }\n}\n"],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export const makeDataTableSelectProps = propsFactory({
|
|
|
10
10
|
}
|
|
11
11
|
}, 'v-data-table-select');
|
|
12
12
|
export const VDataTableSelectionSymbol = Symbol.for('vuetify:data-table-selection');
|
|
13
|
-
export function
|
|
13
|
+
export function provideSelection(props, allItems) {
|
|
14
14
|
const selected = useProxiedModel(props, 'modelValue', props.modelValue, v => {
|
|
15
15
|
return new Set(v);
|
|
16
16
|
}, v => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.mjs","names":["useProxiedModel","computed","inject","provide","propsFactory","makeDataTableSelectProps","showSelect","Boolean","modelValue","type","Array","default","VDataTableSelectionSymbol","Symbol","for","
|
|
1
|
+
{"version":3,"file":"select.mjs","names":["useProxiedModel","computed","inject","provide","propsFactory","makeDataTableSelectProps","showSelect","Boolean","modelValue","type","Array","default","VDataTableSelectionSymbol","Symbol","for","provideSelection","props","allItems","selected","v","Set","values","isSelected","items","every","item","value","has","isSomeSelected","some","select","newSelected","add","delete","toggleSelect","selectAll","someSelected","size","allSelected","data","useSelection","Error"],"sources":["../../../../src/labs/VDataTable/composables/select.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { ItemProps } from '@/composables/items'\nimport type { DataTableItem } from '../types'\n\nexport const makeDataTableSelectProps = propsFactory({\n showSelect: Boolean,\n modelValue: {\n type: Array as PropType<any[]>,\n default: () => ([]),\n },\n}, 'v-data-table-select')\n\nexport const VDataTableSelectionSymbol: InjectionKey<{\n toggleSelect: (item: DataTableItem) => void\n select: (items: DataTableItem[], value: boolean) => void\n selectAll: (value: boolean) => void\n isSelected: (items: DataTableItem[]) => boolean\n isSomeSelected: (items: DataTableItem[]) => boolean\n someSelected: Ref<boolean>\n allSelected: Ref<boolean>\n}> = Symbol.for('vuetify:data-table-selection')\n\ntype SelectionProps = Pick<ItemProps, 'itemValue'> & { modelValue: any[], 'onUpdate:modelValue': ((value: any[]) => void) | undefined }\n\nexport function provideSelection (props: SelectionProps, allItems: Ref<DataTableItem[]>) {\n const selected = useProxiedModel(props, 'modelValue', props.modelValue, v => {\n return new Set(v)\n }, v => {\n return [...v.values()]\n })\n\n function isSelected (items: DataTableItem[]) {\n return items.every(item => selected.value.has(item.value))\n }\n\n function isSomeSelected (items: DataTableItem[]) {\n return items.some(item => selected.value.has(item.value))\n }\n\n function select (items: DataTableItem[], value: boolean) {\n const newSelected = new Set(selected.value)\n\n for (const item of items) {\n if (value) newSelected.add(item.value)\n else newSelected.delete(item.value)\n }\n\n selected.value = newSelected\n }\n\n function toggleSelect (item: DataTableItem) {\n select([item], !isSelected([item]))\n }\n\n function selectAll (value: boolean) {\n select(allItems.value, value)\n }\n\n const someSelected = computed(() => selected.value.size > 0)\n const allSelected = computed(() => isSelected(allItems.value))\n\n const data = { toggleSelect, select, selectAll, isSelected, isSomeSelected, someSelected, allSelected }\n\n provide(VDataTableSelectionSymbol, data)\n\n return data\n}\n\nexport function useSelection () {\n const data = inject(VDataTableSelectionSymbol)\n\n if (!data) throw new Error('Missing selection!')\n\n return data\n}\n"],"mappings":"AAAA;AAAA,SACSA,eAAe,iDAExB;AACA,SAASC,QAAQ,EAAEC,MAAM,EAAEC,OAAO,QAAQ,KAAK;AAAA,SACtCC,YAAY,mCAErB;AAKA,OAAO,MAAMC,wBAAwB,GAAGD,YAAY,CAAC;EACnDE,UAAU,EAAEC,OAAO;EACnBC,UAAU,EAAE;IACVC,IAAI,EAAEC,KAAwB;IAC9BC,OAAO,EAAE,MAAO;EAClB;AACF,CAAC,EAAE,qBAAqB,CAAC;AAEzB,OAAO,MAAMC,yBAQX,GAAGC,MAAM,CAACC,GAAG,CAAC,8BAA8B,CAAC;AAI/C,OAAO,SAASC,gBAAgB,CAAEC,KAAqB,EAAEC,QAA8B,EAAE;EACvF,MAAMC,QAAQ,GAAGlB,eAAe,CAACgB,KAAK,EAAE,YAAY,EAAEA,KAAK,CAACR,UAAU,EAAEW,CAAC,IAAI;IAC3E,OAAO,IAAIC,GAAG,CAACD,CAAC,CAAC;EACnB,CAAC,EAAEA,CAAC,IAAI;IACN,OAAO,CAAC,GAAGA,CAAC,CAACE,MAAM,EAAE,CAAC;EACxB,CAAC,CAAC;EAEF,SAASC,UAAU,CAAEC,KAAsB,EAAE;IAC3C,OAAOA,KAAK,CAACC,KAAK,CAACC,IAAI,IAAIP,QAAQ,CAACQ,KAAK,CAACC,GAAG,CAACF,IAAI,CAACC,KAAK,CAAC,CAAC;EAC5D;EAEA,SAASE,cAAc,CAAEL,KAAsB,EAAE;IAC/C,OAAOA,KAAK,CAACM,IAAI,CAACJ,IAAI,IAAIP,QAAQ,CAACQ,KAAK,CAACC,GAAG,CAACF,IAAI,CAACC,KAAK,CAAC,CAAC;EAC3D;EAEA,SAASI,MAAM,CAAEP,KAAsB,EAAEG,KAAc,EAAE;IACvD,MAAMK,WAAW,GAAG,IAAIX,GAAG,CAACF,QAAQ,CAACQ,KAAK,CAAC;IAE3C,KAAK,MAAMD,IAAI,IAAIF,KAAK,EAAE;MACxB,IAAIG,KAAK,EAAEK,WAAW,CAACC,GAAG,CAACP,IAAI,CAACC,KAAK,CAAC,MACjCK,WAAW,CAACE,MAAM,CAACR,IAAI,CAACC,KAAK,CAAC;IACrC;IAEAR,QAAQ,CAACQ,KAAK,GAAGK,WAAW;EAC9B;EAEA,SAASG,YAAY,CAAET,IAAmB,EAAE;IAC1CK,MAAM,CAAC,CAACL,IAAI,CAAC,EAAE,CAACH,UAAU,CAAC,CAACG,IAAI,CAAC,CAAC,CAAC;EACrC;EAEA,SAASU,SAAS,CAAET,KAAc,EAAE;IAClCI,MAAM,CAACb,QAAQ,CAACS,KAAK,EAAEA,KAAK,CAAC;EAC/B;EAEA,MAAMU,YAAY,GAAGnC,QAAQ,CAAC,MAAMiB,QAAQ,CAACQ,KAAK,CAACW,IAAI,GAAG,CAAC,CAAC;EAC5D,MAAMC,WAAW,GAAGrC,QAAQ,CAAC,MAAMqB,UAAU,CAACL,QAAQ,CAACS,KAAK,CAAC,CAAC;EAE9D,MAAMa,IAAI,GAAG;IAAEL,YAAY;IAAEJ,MAAM;IAAEK,SAAS;IAAEb,UAAU;IAAEM,cAAc;IAAEQ,YAAY;IAAEE;EAAY,CAAC;EAEvGnC,OAAO,CAACS,yBAAyB,EAAE2B,IAAI,CAAC;EAExC,OAAOA,IAAI;AACb;AAEA,OAAO,SAASC,YAAY,GAAI;EAC9B,MAAMD,IAAI,GAAGrC,MAAM,CAACU,yBAAyB,CAAC;EAE9C,IAAI,CAAC2B,IAAI,EAAE,MAAM,IAAIE,KAAK,CAAC,oBAAoB,CAAC;EAEhD,OAAOF,IAAI;AACb"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Composables
|
|
2
2
|
import { useProxiedModel } from "../../../composables/proxiedModel.mjs"; // Utilities
|
|
3
|
-
import { computed, inject, provide } from 'vue';
|
|
3
|
+
import { computed, inject, provide, toRef } from 'vue';
|
|
4
4
|
import { getObjectValueByPath, propsFactory } from "../../../util/index.mjs"; // Types
|
|
5
5
|
export const makeDataTableSortProps = propsFactory({
|
|
6
6
|
sortBy: {
|
|
@@ -13,13 +13,28 @@ export const makeDataTableSortProps = propsFactory({
|
|
|
13
13
|
const VDataTableSortSymbol = Symbol.for('vuetify:data-table-sort');
|
|
14
14
|
export function createSort(props) {
|
|
15
15
|
const sortBy = useProxiedModel(props, 'sortBy');
|
|
16
|
+
const mustSort = toRef(props, 'mustSort');
|
|
17
|
+
const multiSort = toRef(props, 'multiSort');
|
|
18
|
+
return {
|
|
19
|
+
sortBy,
|
|
20
|
+
mustSort,
|
|
21
|
+
multiSort
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export function provideSort(options) {
|
|
25
|
+
const {
|
|
26
|
+
sortBy,
|
|
27
|
+
mustSort,
|
|
28
|
+
multiSort,
|
|
29
|
+
page
|
|
30
|
+
} = options;
|
|
16
31
|
const toggleSort = key => {
|
|
17
32
|
let newSortBy = sortBy.value.map(x => ({
|
|
18
33
|
...x
|
|
19
34
|
})) ?? [];
|
|
20
35
|
const item = newSortBy.find(x => x.key === key);
|
|
21
36
|
if (!item) {
|
|
22
|
-
if (
|
|
37
|
+
if (multiSort.value) newSortBy = [...newSortBy, {
|
|
23
38
|
key,
|
|
24
39
|
order: 'asc'
|
|
25
40
|
}];else newSortBy = [{
|
|
@@ -27,7 +42,7 @@ export function createSort(props) {
|
|
|
27
42
|
order: 'asc'
|
|
28
43
|
}];
|
|
29
44
|
} else if (item.order === 'desc') {
|
|
30
|
-
if (
|
|
45
|
+
if (mustSort.value) {
|
|
31
46
|
item.order = 'asc';
|
|
32
47
|
} else {
|
|
33
48
|
newSortBy = newSortBy.filter(x => x.key !== key);
|
|
@@ -36,6 +51,7 @@ export function createSort(props) {
|
|
|
36
51
|
item.order = 'desc';
|
|
37
52
|
}
|
|
38
53
|
sortBy.value = newSortBy;
|
|
54
|
+
if (page) page.value = 1;
|
|
39
55
|
};
|
|
40
56
|
const data = {
|
|
41
57
|
sortBy,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sort.mjs","names":["useProxiedModel","computed","inject","provide","getObjectValueByPath","propsFactory","makeDataTableSortProps","sortBy","type","Array","default","multiSort","Boolean","mustSort","VDataTableSortSymbol","Symbol","for","createSort","props","toggleSort","key","newSortBy","value","map","x","item","find","order","filter","data","useSort","Error","useSortedItems","items","columns","customSorters","reduce","obj","sort","sortedItems","length","sortItems","sortByItems","locale","stringCollator","Intl","Collator","sensitivity","usage","a","b","i","sortKey","sortOrder","sortA","raw","sortB","customResult","Date","getTime","s","toString","toLocaleLowerCase","isNaN","Number","compare"],"sources":["../../../../src/labs/VDataTable/composables/sort.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide } from 'vue'\nimport { getObjectValueByPath, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { InternalItem } from '@/composables/items'\nimport type { DataTableCompareFunction, DataTableItem, InternalDataTableHeader } from '../types'\n\nexport const makeDataTableSortProps = propsFactory({\n sortBy: {\n type: Array as PropType<SortItem[]>,\n default: () => ([]),\n },\n multiSort: Boolean,\n mustSort: Boolean,\n}, 'v-data-table-sort')\n\nconst VDataTableSortSymbol: InjectionKey<{\n sortBy: Ref<readonly SortItem[]>\n toggleSort: (key: string) => void\n}> = Symbol.for('vuetify:data-table-sort')\n\nexport type SortItem = { key: string, order?: boolean | 'asc' | 'desc' }\n\
|
|
1
|
+
{"version":3,"file":"sort.mjs","names":["useProxiedModel","computed","inject","provide","toRef","getObjectValueByPath","propsFactory","makeDataTableSortProps","sortBy","type","Array","default","multiSort","Boolean","mustSort","VDataTableSortSymbol","Symbol","for","createSort","props","provideSort","options","page","toggleSort","key","newSortBy","value","map","x","item","find","order","filter","data","useSort","Error","useSortedItems","items","columns","customSorters","reduce","obj","sort","sortedItems","length","sortItems","sortByItems","locale","stringCollator","Intl","Collator","sensitivity","usage","a","b","i","sortKey","sortOrder","sortA","raw","sortB","customResult","Date","getTime","s","toString","toLocaleLowerCase","isNaN","Number","compare"],"sources":["../../../../src/labs/VDataTable/composables/sort.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, toRef } from 'vue'\nimport { getObjectValueByPath, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { InternalItem } from '@/composables/items'\nimport type { DataTableCompareFunction, DataTableItem, InternalDataTableHeader } from '../types'\n\nexport const makeDataTableSortProps = propsFactory({\n sortBy: {\n type: Array as PropType<SortItem[]>,\n default: () => ([]),\n },\n multiSort: Boolean,\n mustSort: Boolean,\n}, 'v-data-table-sort')\n\nconst VDataTableSortSymbol: InjectionKey<{\n sortBy: Ref<readonly SortItem[]>\n toggleSort: (key: string) => void\n}> = Symbol.for('vuetify:data-table-sort')\n\nexport type SortItem = { key: string, order?: boolean | 'asc' | 'desc' }\n\ntype SortProps = {\n sortBy: SortItem[]\n 'onUpdate:sortBy': ((value: any) => void) | undefined\n mustSort: boolean\n multiSort: boolean\n}\n\nexport function createSort (props: SortProps) {\n const sortBy = useProxiedModel(props, 'sortBy')\n const mustSort = toRef(props, 'mustSort')\n const multiSort = toRef(props, 'multiSort')\n\n return { sortBy, mustSort, multiSort }\n}\n\nexport function provideSort (options: {\n sortBy: Ref<readonly SortItem[]>\n mustSort: Ref<boolean>\n multiSort: Ref<boolean>\n page?: Ref<number>\n}) {\n const { sortBy, mustSort, multiSort, page } = options\n\n const toggleSort = (key: string) => {\n let newSortBy = sortBy.value.map(x => ({ ...x })) ?? []\n const item = newSortBy.find(x => x.key === key)\n\n if (!item) {\n if (multiSort.value) newSortBy = [...newSortBy, { key, order: 'asc' }]\n else newSortBy = [{ key, order: 'asc' }]\n } else if (item.order === 'desc') {\n if (mustSort.value) {\n item.order = 'asc'\n } else {\n newSortBy = newSortBy.filter(x => x.key !== key)\n }\n } else {\n item.order = 'desc'\n }\n\n sortBy.value = newSortBy\n if (page) page.value = 1\n }\n\n const data = { sortBy, toggleSort }\n\n provide(VDataTableSortSymbol, data)\n\n return data\n}\n\nexport function useSort () {\n const data = inject(VDataTableSortSymbol)\n\n if (!data) throw new Error('Missing sort!')\n\n return data\n}\n\nexport function useSortedItems (items: Ref<DataTableItem[]>, sortBy: Ref<readonly SortItem[]>, columns: Ref<InternalDataTableHeader[]>) {\n // TODO: Put this in separate prop customKeySort to match filter composable?\n const customSorters = computed(() => {\n return columns.value.reduce<Record<string, DataTableCompareFunction>>((obj, item) => {\n if (item.sort) obj[item.key] = item.sort\n\n return obj\n }, {})\n })\n\n const sortedItems = computed(() => {\n if (!sortBy.value.length) return items.value\n\n return sortItems(items.value, sortBy.value, 'en', customSorters.value)\n })\n\n return { sortedItems }\n}\n\nexport function sortItems<T extends InternalItem> (\n items: T[],\n sortByItems: readonly SortItem[],\n locale: string,\n customSorters?: Record<string, DataTableCompareFunction>\n): T[] {\n const stringCollator = new Intl.Collator(locale, { sensitivity: 'accent', usage: 'sort' })\n\n return [...items].sort((a, b) => {\n for (let i = 0; i < sortByItems.length; i++) {\n const sortKey = sortByItems[i].key\n const sortOrder = sortByItems[i].order\n\n if (sortOrder === false) continue\n\n let sortA = getObjectValueByPath(a.raw, sortKey)\n let sortB = getObjectValueByPath(b.raw, sortKey)\n\n if (sortOrder === 'desc') {\n [sortA, sortB] = [sortB, sortA]\n }\n\n if (customSorters?.[sortKey]) {\n const customResult = customSorters[sortKey](sortA, sortB)\n\n if (!customResult) continue\n\n return customResult\n }\n\n // Check if both cannot be evaluated\n if (sortA == null || sortB == null) {\n continue\n }\n\n // Dates should be compared numerically\n if (sortA instanceof Date && sortB instanceof Date) {\n return sortA.getTime() - sortB.getTime()\n }\n\n [sortA, sortB] = [sortA, sortB].map(s => (s || '').toString().toLocaleLowerCase())\n\n if (sortA !== sortB) {\n if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB)\n return stringCollator.compare(sortA, sortB)\n }\n }\n\n return 0\n })\n}\n"],"mappings":"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"}
|