vuetify 3.3.0 → 3.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/json/attributes.json +88 -60
- package/dist/json/importMap.json +26 -26
- package/dist/json/tags.json +8 -1
- package/dist/json/web-types.json +836 -899
- package/dist/vuetify-labs.css +136 -114
- package/dist/vuetify-labs.d.ts +6688 -11806
- package/dist/vuetify-labs.esm.js +8271 -8060
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +8270 -8059
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +133 -112
- package/dist/vuetify.d.ts +4441 -8286
- package/dist/vuetify.esm.js +6686 -6548
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +6685 -6547
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +979 -975
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.mts +31 -31
- package/lib/blueprints/md1.d.mts +31 -31
- package/lib/blueprints/md2.d.mts +31 -31
- package/lib/blueprints/md3.d.mts +31 -31
- package/lib/components/VAlert/VAlert.mjs +6 -6
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/_variables.scss +2 -2
- package/lib/components/VAlert/index.d.mts +16 -74
- package/lib/components/VApp/VApp.mjs +4 -4
- package/lib/components/VApp/VApp.mjs.map +1 -1
- package/lib/components/VApp/index.d.mts +0 -15
- package/lib/components/VAppBar/VAppBar.mjs +9 -6
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarNavIcon.mjs +1 -1
- package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.mts +1 -82
- package/lib/components/VAutocomplete/VAutocomplete.mjs +11 -11
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +205 -259
- package/lib/components/VAvatar/VAvatar.mjs +4 -4
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/_variables.scss +1 -1
- package/lib/components/VAvatar/index.d.mts +0 -15
- package/lib/components/VBadge/VBadge.mjs +6 -6
- package/lib/components/VBadge/VBadge.mjs.map +1 -1
- package/lib/components/VBadge/index.d.mts +0 -19
- package/lib/components/VBanner/VBanner.mjs +7 -10
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/VBannerActions.mjs +2 -2
- package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
- package/lib/components/VBanner/VBannerText.mjs +1 -0
- package/lib/components/VBanner/VBannerText.mjs.map +1 -1
- package/lib/components/VBanner/index.d.mts +1 -58
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +8 -8
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBottomNavigation/index.d.mts +0 -15
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +6 -9
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +2 -2
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +3 -3
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.mts +30 -60
- package/lib/components/VBtn/VBtn.mjs +6 -6
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/_variables.scss +15 -15
- package/lib/components/VBtn/index.d.mts +0 -27
- package/lib/components/VBtnGroup/VBtnGroup.mjs +4 -4
- package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
- package/lib/components/VBtnGroup/index.d.mts +0 -15
- package/lib/components/VBtnToggle/VBtnToggle.mjs +2 -2
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VBtnToggle/index.d.mts +19 -34
- package/lib/components/VCard/VCard.mjs +7 -7
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCard.sass +2 -2
- package/lib/components/VCard/VCardItem.mjs +4 -4
- package/lib/components/VCard/VCardItem.mjs.map +1 -1
- package/lib/components/VCard/VCardSubtitle.mjs +1 -0
- package/lib/components/VCard/VCardSubtitle.mjs.map +1 -1
- package/lib/components/VCard/VCardText.mjs +1 -0
- package/lib/components/VCard/VCardText.mjs.map +1 -1
- package/lib/components/VCard/VCardTitle.mjs +1 -0
- package/lib/components/VCard/VCardTitle.mjs.map +1 -1
- package/lib/components/VCard/_variables.scss +10 -11
- package/lib/components/VCard/index.d.mts +16 -158
- package/lib/components/VCarousel/VCarousel.mjs +4 -7
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/VCarouselItem.mjs +1 -1
- package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
- package/lib/components/VCarousel/index.d.mts +79 -237
- package/lib/components/VCheckbox/VCheckbox.mjs +3 -3
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +4 -4
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.mts +191 -277
- package/lib/components/VChip/VChip.mjs +7 -7
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/index.d.mts +19 -82
- package/lib/components/VChipGroup/VChipGroup.mjs +4 -7
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VChipGroup/index.d.mts +19 -58
- package/lib/components/VCode/index.d.mts +0 -15
- package/lib/components/VCode/index.mjs +3 -0
- package/lib/components/VCode/index.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.mjs +10 -12
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +2 -5
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs +3 -3
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +3 -3
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +13 -12
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +205 -259
- package/lib/components/VCounter/VCounter.mjs +2 -2
- package/lib/components/VCounter/VCounter.mjs.map +1 -1
- package/lib/components/VCounter/index.d.mts +19 -34
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +4 -4
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
- package/lib/components/VDefaultsProvider/index.d.mts +7 -24
- package/lib/components/VDialog/VDialog.mjs +7 -7
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/index.d.mts +175 -301
- package/lib/components/VDivider/VDivider.mjs +3 -3
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VDivider/index.d.mts +0 -15
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +5 -5
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +3 -3
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +5 -5
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs +3 -3
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.mts +35 -107
- package/lib/components/VField/VField.mjs +8 -8
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +0 -1
- package/lib/components/VField/VFieldLabel.mjs +1 -1
- package/lib/components/VField/VFieldLabel.mjs.map +1 -1
- package/lib/components/VField/_variables.scss +1 -0
- package/lib/components/VField/index.d.mts +39 -54
- package/lib/components/VFileInput/VFileInput.mjs +5 -5
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.mts +381 -537
- package/lib/components/VFooter/VFooter.mjs +4 -4
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VFooter/_variables.scss +1 -1
- package/lib/components/VFooter/index.d.mts +0 -15
- package/lib/components/VForm/VForm.mjs +3 -3
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VForm/index.d.mts +19 -146
- package/lib/components/VGrid/VCol.mjs +2 -2
- package/lib/components/VGrid/VCol.mjs.map +1 -1
- package/lib/components/VGrid/VContainer.mjs +3 -3
- package/lib/components/VGrid/VContainer.mjs.map +1 -1
- package/lib/components/VGrid/VRow.mjs +2 -2
- package/lib/components/VGrid/VRow.mjs.map +1 -1
- package/lib/components/VGrid/VSpacer.mjs +1 -0
- package/lib/components/VGrid/VSpacer.mjs.map +1 -1
- package/lib/components/VGrid/index.d.mts +0 -60
- package/lib/components/VHover/VHover.mjs +1 -1
- package/lib/components/VHover/VHover.mjs.map +1 -1
- package/lib/components/VHover/index.d.mts +19 -46
- package/lib/components/VIcon/VIcon.mjs +4 -4
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/index.d.mts +0 -30
- package/lib/components/VImg/VImg.mjs +5 -4
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/index.d.mts +0 -27
- package/lib/components/VInput/InputIcon.mjs +3 -2
- package/lib/components/VInput/InputIcon.mjs.map +1 -1
- package/lib/components/VInput/VInput.mjs +9 -5
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/_variables.scss +1 -1
- package/lib/components/VInput/index.d.mts +88 -119
- package/lib/components/VItemGroup/VItem.mjs +2 -2
- package/lib/components/VItemGroup/VItem.mjs.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.mjs +1 -1
- package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
- package/lib/components/VItemGroup/index.d.mts +38 -120
- package/lib/components/VKbd/index.d.mts +0 -15
- package/lib/components/VKbd/index.mjs +3 -0
- package/lib/components/VKbd/index.mjs.map +1 -1
- package/lib/components/VLabel/VLabel.mjs +1 -1
- package/lib/components/VLabel/VLabel.mjs.map +1 -1
- package/lib/components/VLabel/index.d.mts +0 -15
- package/lib/components/VLayout/VLayout.mjs +3 -3
- package/lib/components/VLayout/VLayout.mjs.map +1 -1
- package/lib/components/VLayout/VLayoutItem.mjs +1 -1
- package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
- package/lib/components/VLayout/index.d.mts +0 -30
- package/lib/components/VLazy/VLazy.mjs +3 -3
- package/lib/components/VLazy/VLazy.mjs.map +1 -1
- package/lib/components/VLazy/index.d.mts +0 -15
- package/lib/components/VList/VList.css +1 -0
- package/lib/components/VList/VList.mjs +5 -4
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VList.sass +1 -0
- package/lib/components/VList/VListChildren.mjs +3 -3
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +8 -8
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListImg.mjs +1 -0
- package/lib/components/VList/VListImg.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +18 -0
- package/lib/components/VList/VListItem.mjs +9 -9
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +12 -0
- package/lib/components/VList/VListItemAction.mjs +1 -1
- package/lib/components/VList/VListItemAction.mjs.map +1 -1
- package/lib/components/VList/VListItemMedia.mjs +1 -1
- package/lib/components/VList/VListItemMedia.mjs.map +1 -1
- package/lib/components/VList/VListItemSubtitle.mjs +1 -0
- package/lib/components/VList/VListItemSubtitle.mjs.map +1 -1
- package/lib/components/VList/VListItemTitle.mjs +1 -0
- package/lib/components/VList/VListItemTitle.mjs.map +1 -1
- package/lib/components/VList/VListSubheader.mjs +3 -3
- package/lib/components/VList/VListSubheader.mjs.map +1 -1
- package/lib/components/VList/_variables.scss +6 -6
- package/lib/components/VList/index.d.mts +185 -337
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs +1 -1
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
- package/lib/components/VLocaleProvider/index.d.mts +0 -15
- package/lib/components/VMain/VMain.mjs +3 -3
- package/lib/components/VMain/VMain.mjs.map +1 -1
- package/lib/components/VMain/index.d.mts +0 -15
- package/lib/components/VMenu/VMenu.mjs +7 -7
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.mts +222 -348
- package/lib/components/VMenu/shared.mjs +2 -0
- package/lib/components/VMenu/shared.mjs.map +1 -1
- package/lib/components/VMessages/VMessages.mjs +3 -3
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VMessages/index.d.mts +15 -30
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +17 -13
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/index.d.mts +15 -42
- package/lib/components/VOverlay/VOverlay.mjs +11 -14
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.mts +55 -94
- package/lib/components/VOverlay/locationStrategies.mjs +5 -5
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.mjs +3 -3
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +6 -10
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VOverlay/util/point.mjs +2 -0
- package/lib/components/VOverlay/util/point.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +9 -9
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/index.d.mts +75 -106
- package/lib/components/VParallax/VParallax.mjs +3 -6
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VParallax/index.d.mts +0 -27
- package/lib/components/VProgressCircular/VProgressCircular.mjs +5 -5
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressCircular/index.d.mts +19 -42
- package/lib/components/VProgressLinear/VProgressLinear.mjs +6 -6
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/index.d.mts +19 -46
- package/lib/components/VRadio/VRadio.mjs +3 -3
- package/lib/components/VRadio/VRadio.mjs.map +1 -1
- package/lib/components/VRadio/index.d.mts +33 -68
- package/lib/components/VRadioGroup/VRadioGroup.mjs +4 -4
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.d.mts +140 -191
- package/lib/components/VRangeSlider/VRangeSlider.mjs +4 -4
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.mts +100 -143
- package/lib/components/VRating/VRating.mjs +6 -9
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/index.d.mts +30 -49
- package/lib/components/VResponsive/VResponsive.css +1 -0
- package/lib/components/VResponsive/VResponsive.mjs +1 -1
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VResponsive/VResponsive.sass +1 -0
- package/lib/components/VResponsive/index.d.mts +0 -19
- package/lib/components/VSelect/VSelect.mjs +9 -9
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +205 -259
- package/lib/components/VSelectionControl/VSelectionControl.mjs +7 -7
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.mts +24 -24
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +6 -6
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/index.d.mts +0 -15
- package/lib/components/VSheet/VSheet.mjs +4 -4
- package/lib/components/VSheet/VSheet.mjs.map +1 -1
- package/lib/components/VSheet/index.d.mts +0 -15
- package/lib/components/VSlideGroup/VSlideGroup.mjs +7 -7
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs +2 -2
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.mts +68 -126
- package/lib/components/VSlider/VSlider.css +5 -4
- package/lib/components/VSlider/VSlider.mjs +6 -6
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.sass +5 -4
- package/lib/components/VSlider/VSliderThumb.mjs +6 -6
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.mjs +3 -3
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/index.d.mts +100 -143
- package/lib/components/VSlider/slider.mjs +4 -7
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.mjs +7 -7
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/_variables.scss +1 -1
- package/lib/components/VSnackbar/index.d.mts +167 -289
- package/lib/components/VStepper/index.mjs +3 -2
- package/lib/components/VStepper/index.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.mjs +6 -6
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/index.d.mts +164 -219
- package/lib/components/VSystemBar/VSystemBar.mjs +4 -4
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VSystemBar/_variables.scss +2 -2
- package/lib/components/VSystemBar/index.d.mts +0 -15
- package/lib/components/VTable/VTable.mjs +1 -1
- package/lib/components/VTable/VTable.mjs.map +1 -1
- package/lib/components/VTable/_variables.scss +1 -1
- package/lib/components/VTable/index.d.mts +0 -27
- package/lib/components/VTabs/VTab.mjs +3 -3
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.mjs +7 -7
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/index.d.mts +0 -30
- package/lib/components/VTabs/shared.mjs +2 -0
- package/lib/components/VTabs/shared.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.mjs +6 -6
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/index.d.mts +423 -559
- package/lib/components/VTextarea/VTextarea.mjs +8 -11
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/index.d.mts +362 -494
- package/lib/components/VThemeProvider/VThemeProvider.mjs +1 -1
- package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
- package/lib/components/VThemeProvider/index.d.mts +0 -15
- package/lib/components/VTimeline/VTimeline.mjs +4 -4
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineDivider.mjs +5 -5
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs +4 -7
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VTimeline/index.d.mts +0 -38
- package/lib/components/VToolbar/VToolbar.mjs +8 -8
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbarItems.mjs +4 -4
- package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbarTitle.mjs +1 -1
- package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
- package/lib/components/VToolbar/_variables.scss +2 -2
- package/lib/components/VToolbar/index.d.mts +1 -70
- package/lib/components/VTooltip/VTooltip.mjs +6 -6
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/index.d.mts +222 -348
- package/lib/components/VValidation/VValidation.mjs.map +1 -1
- package/lib/components/VValidation/index.d.mts +19 -90
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs +15 -93
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs +9 -4
- package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
- package/lib/components/VVirtualScroll/index.d.mts +25 -25
- package/lib/components/VWindow/VWindow.mjs +6 -6
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindowItem.mjs +5 -5
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/VWindow/index.d.mts +64 -138
- package/lib/components/index.d.mts +4688 -8535
- package/lib/components/transitions/createTransition.mjs +5 -8
- package/lib/components/transitions/createTransition.mjs.map +1 -1
- package/lib/components/transitions/dialog-transition.mjs +1 -3
- package/lib/components/transitions/dialog-transition.mjs.map +1 -1
- package/lib/components/transitions/index.d.mts +117 -357
- package/lib/composables/defaults.mjs +5 -0
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/display.mjs +1 -1
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/filter.mjs +2 -4
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/composables/focus.mjs +1 -1
- package/lib/composables/focus.mjs.map +1 -1
- package/lib/composables/forwardRefs.mjs +2 -0
- package/lib/composables/forwardRefs.mjs.map +1 -1
- package/lib/composables/hydration.mjs +1 -1
- package/lib/composables/hydration.mjs.map +1 -1
- package/lib/composables/icons.mjs +7 -1
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/composables/lazy.mjs +1 -3
- package/lib/composables/lazy.mjs.map +1 -1
- package/lib/composables/loader.mjs.map +1 -1
- package/lib/composables/locale.mjs +2 -1
- package/lib/composables/locale.mjs.map +1 -1
- package/lib/composables/mutationObserver.mjs +2 -5
- package/lib/composables/mutationObserver.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 +1 -0
- package/lib/composables/nested/selectStrategies.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs +3 -3
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/refs.mjs +4 -1
- package/lib/composables/refs.mjs.map +1 -1
- package/lib/composables/resizeObserver.mjs +4 -4
- package/lib/composables/resizeObserver.mjs.map +1 -1
- package/lib/composables/router.mjs +1 -4
- package/lib/composables/router.mjs.map +1 -1
- package/lib/composables/scopeId.mjs +1 -0
- package/lib/composables/scopeId.mjs.map +1 -1
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/toggleScope.mjs +4 -0
- package/lib/composables/toggleScope.mjs.map +1 -1
- package/lib/composables/touch.mjs +1 -0
- package/lib/composables/touch.mjs.map +1 -1
- package/lib/composables/validation.mjs +2 -2
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/composables/virtual.mjs +108 -0
- package/lib/composables/virtual.mjs.map +1 -0
- package/lib/directives/click-outside/index.mjs +2 -1
- package/lib/directives/click-outside/index.mjs.map +1 -1
- package/lib/directives/intersect/index.mjs +1 -1
- package/lib/directives/intersect/index.mjs.map +1 -1
- package/lib/directives/resize/index.mjs +2 -0
- package/lib/directives/resize/index.mjs.map +1 -1
- package/lib/directives/scroll/index.mjs +2 -0
- package/lib/directives/scroll/index.mjs.map +1 -1
- package/lib/directives/touch/index.mjs +1 -2
- package/lib/directives/touch/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +7 -2
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +4 -6
- package/lib/framework.mjs.map +1 -1
- package/lib/iconsets/fa.mjs +1 -1
- package/lib/iconsets/fa.mjs.map +1 -1
- package/lib/iconsets/fa4.mjs +4 -3
- package/lib/iconsets/fa4.mjs.map +1 -1
- package/lib/iconsets/md.mjs +4 -3
- package/lib/iconsets/md.mjs.map +1 -1
- package/lib/iconsets/mdi-svg.mjs +1 -1
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/iconsets/mdi.mjs +4 -3
- package/lib/iconsets/mdi.mjs.map +1 -1
- package/lib/index.d.mts +40 -38
- package/lib/labs/VBottomSheet/VBottomSheet.mjs +1 -1
- package/lib/labs/VBottomSheet/VBottomSheet.mjs.map +1 -1
- package/lib/labs/VBottomSheet/index.d.mts +55 -94
- package/lib/labs/VDataIterator/VDataIterator.mjs +13 -10
- package/lib/labs/VDataIterator/VDataIterator.mjs.map +1 -1
- package/lib/labs/VDataIterator/composables/items.mjs +9 -3
- package/lib/labs/VDataIterator/composables/items.mjs.map +1 -1
- package/lib/labs/VDataIterator/index.d.mts +143 -132
- package/lib/labs/VDataTable/VDataTable.css +1 -0
- package/lib/labs/VDataTable/VDataTable.mjs +14 -11
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTable.sass +1 -0
- package/lib/labs/VDataTable/VDataTableColumn.mjs +2 -1
- package/lib/labs/VDataTable/VDataTableColumn.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.mjs +3 -3
- package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs +5 -5
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableHeaders.mjs +10 -9
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRow.mjs +2 -1
- package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +20 -16
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +15 -10
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +40 -25
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/expand.mjs +4 -4
- package/lib/labs/VDataTable/composables/expand.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/group.mjs +1 -1
- package/lib/labs/VDataTable/composables/group.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/headers.mjs +2 -2
- package/lib/labs/VDataTable/composables/headers.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/items.mjs +12 -9
- package/lib/labs/VDataTable/composables/items.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/composables/select.mjs +125 -9
- package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/sort.mjs +4 -9
- package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.mts +1792 -2979
- package/lib/labs/VDataTable/types.mjs.map +1 -1
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +1 -1
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
- package/lib/labs/VInfiniteScroll/index.d.mts +60 -91
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +4 -4
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
- package/lib/labs/VSkeletonLoader/index.d.mts +0 -15
- package/lib/labs/components.d.mts +2049 -3320
- package/lib/labs/date/date.mjs.map +1 -1
- package/lib/labs/entry-bundler.mjs +3 -1
- package/lib/labs/entry-bundler.mjs.map +1 -1
- package/lib/locale/adapters/vue-i18n.d.mts +1 -1
- package/lib/locale/adapters/vue-i18n.mjs +5 -1
- package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
- package/lib/locale/adapters/vuetify.mjs +1 -3
- package/lib/locale/adapters/vuetify.mjs.map +1 -1
- package/lib/styles/settings/_colors.scss +18 -15
- package/lib/util/anchor.mjs +1 -0
- package/lib/util/anchor.mjs.map +1 -1
- package/lib/util/animation.mjs +1 -0
- package/lib/util/animation.mjs.map +1 -1
- package/lib/util/color/APCA.mjs +1 -0
- package/lib/util/color/APCA.mjs.map +1 -1
- package/lib/util/color/transformCIELAB.mjs +2 -0
- package/lib/util/color/transformCIELAB.mjs.map +1 -1
- package/lib/util/color/transformSRGB.mjs +3 -1
- package/lib/util/color/transformSRGB.mjs.map +1 -1
- package/lib/util/colorUtils.mjs +2 -2
- package/lib/util/colorUtils.mjs.map +1 -1
- package/lib/util/console.mjs +1 -0
- package/lib/util/console.mjs.map +1 -1
- package/lib/util/createSimpleFunctional.mjs +2 -1
- package/lib/util/createSimpleFunctional.mjs.map +1 -1
- package/lib/util/defineComponent.mjs +5 -5
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/getCurrentInstance.mjs +1 -2
- package/lib/util/getCurrentInstance.mjs.map +1 -1
- package/lib/util/helpers.mjs +3 -3
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/injectSelf.mjs +2 -1
- package/lib/util/injectSelf.mjs.map +1 -1
- package/lib/util/propsFactory.mjs +1 -0
- package/lib/util/propsFactory.mjs.map +1 -1
- package/package.json +3 -2
- package/lib/labs/VDataTable/composables/virtual.mjs +0 -77
- package/lib/labs/VDataTable/composables/virtual.mjs.map +0 -1
|
@@ -2,36 +2,39 @@
|
|
|
2
2
|
import { computed } from 'vue';
|
|
3
3
|
import { getPropertyFromItem, propsFactory } from "../../../util/index.mjs"; // Types
|
|
4
4
|
// Composables
|
|
5
|
-
export const
|
|
5
|
+
export const makeDataTableItemsProps = propsFactory({
|
|
6
6
|
items: {
|
|
7
7
|
type: Array,
|
|
8
8
|
default: () => []
|
|
9
9
|
},
|
|
10
10
|
itemValue: {
|
|
11
11
|
type: [String, Array, Function],
|
|
12
|
-
default: '
|
|
12
|
+
default: 'id'
|
|
13
|
+
},
|
|
14
|
+
itemSelectable: {
|
|
15
|
+
type: [String, Array, Function],
|
|
16
|
+
default: null
|
|
13
17
|
},
|
|
14
18
|
returnObject: Boolean
|
|
15
|
-
}, '
|
|
16
|
-
export function transformItem(props, item, columns) {
|
|
19
|
+
}, 'DataTable-items');
|
|
20
|
+
export function transformItem(props, item, index, columns) {
|
|
17
21
|
const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue);
|
|
22
|
+
const selectable = getPropertyFromItem(item, props.itemSelectable, true);
|
|
18
23
|
const itemColumns = columns.reduce((obj, column) => {
|
|
19
24
|
obj[column.key] = getPropertyFromItem(item, column.value ?? column.key);
|
|
20
25
|
return obj;
|
|
21
26
|
}, {});
|
|
22
27
|
return {
|
|
23
28
|
type: 'item',
|
|
29
|
+
index,
|
|
24
30
|
value,
|
|
31
|
+
selectable,
|
|
25
32
|
columns: itemColumns,
|
|
26
33
|
raw: item
|
|
27
34
|
};
|
|
28
35
|
}
|
|
29
36
|
export function transformItems(props, items, columns) {
|
|
30
|
-
|
|
31
|
-
for (const item of items) {
|
|
32
|
-
array.push(transformItem(props, item, columns));
|
|
33
|
-
}
|
|
34
|
-
return array;
|
|
37
|
+
return items.map((item, index) => transformItem(props, item, index, columns));
|
|
35
38
|
}
|
|
36
39
|
export function useDataTableItems(props, columns) {
|
|
37
40
|
const items = computed(() => transformItems(props, props.items, columns.value));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"items.mjs","names":["computed","getPropertyFromItem","propsFactory","
|
|
1
|
+
{"version":3,"file":"items.mjs","names":["computed","getPropertyFromItem","propsFactory","makeDataTableItemsProps","items","type","Array","default","itemValue","String","Function","itemSelectable","returnObject","Boolean","transformItem","props","item","index","columns","value","selectable","itemColumns","reduce","obj","column","key","raw","transformItems","map","useDataTableItems"],"sources":["../../../../src/labs/VDataTable/composables/items.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { getPropertyFromItem, propsFactory } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { DataTableItem, InternalDataTableHeader } from '../types'\nimport type { SelectItemKey } from '@/util'\n\nexport interface DataTableItemProps {\n items: any[]\n itemValue: SelectItemKey\n itemSelectable: SelectItemKey\n returnObject: boolean\n}\n\n// Composables\nexport const makeDataTableItemsProps = propsFactory({\n items: {\n type: Array as PropType<DataTableItemProps['items']>,\n default: () => ([]),\n },\n itemValue: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'id',\n },\n itemSelectable: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: null,\n },\n returnObject: Boolean,\n}, 'DataTable-items')\n\nexport function transformItem (\n props: Omit<DataTableItemProps, 'items'>,\n item: any,\n index: number,\n columns: InternalDataTableHeader[]\n): DataTableItem {\n const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue)\n const selectable = getPropertyFromItem(item, props.itemSelectable, true)\n const itemColumns = columns.reduce((obj, column) => {\n obj[column.key] = getPropertyFromItem(item, column.value ?? column.key)\n return obj\n }, {} as Record<string, unknown>)\n\n return {\n type: 'item',\n index,\n value,\n selectable,\n columns: itemColumns,\n raw: item,\n }\n}\n\nexport function transformItems (\n props: Omit<DataTableItemProps, 'items'>,\n items: DataTableItemProps['items'],\n columns: InternalDataTableHeader[]\n): DataTableItem[] {\n return items.map((item, index) => transformItem(props, item, index, columns))\n}\n\nexport function useDataTableItems (props: DataTableItemProps, columns: Ref<InternalDataTableHeader[]>) {\n const items = computed(() => transformItems(props, props.items, columns.value))\n\n return { items }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,QAAQ,KAAK;AAAA,SACrBC,mBAAmB,EAAEC,YAAY,mCAE1C;AAYA;AACA,OAAO,MAAMC,uBAAuB,GAAGD,YAAY,CAAC;EAClDE,KAAK,EAAE;IACLC,IAAI,EAAEC,KAA8C;IACpDC,OAAO,EAAEA,CAAA,KAAO;EAClB,CAAC;EACDC,SAAS,EAAE;IACTH,IAAI,EAAE,CAACI,MAAM,EAAEH,KAAK,EAAEI,QAAQ,CAA4B;IAC1DH,OAAO,EAAE;EACX,CAAC;EACDI,cAAc,EAAE;IACdN,IAAI,EAAE,CAACI,MAAM,EAAEH,KAAK,EAAEI,QAAQ,CAA4B;IAC1DH,OAAO,EAAE;EACX,CAAC;EACDK,YAAY,EAAEC;AAChB,CAAC,EAAE,iBAAiB,CAAC;AAErB,OAAO,SAASC,aAAaA,CAC3BC,KAAwC,EACxCC,IAAS,EACTC,KAAa,EACbC,OAAkC,EACnB;EACf,MAAMC,KAAK,GAAGJ,KAAK,CAACH,YAAY,GAAGI,IAAI,GAAGf,mBAAmB,CAACe,IAAI,EAAED,KAAK,CAACP,SAAS,CAAC;EACpF,MAAMY,UAAU,GAAGnB,mBAAmB,CAACe,IAAI,EAAED,KAAK,CAACJ,cAAc,EAAE,IAAI,CAAC;EACxE,MAAMU,WAAW,GAAGH,OAAO,CAACI,MAAM,CAAC,CAACC,GAAG,EAAEC,MAAM,KAAK;IAClDD,GAAG,CAACC,MAAM,CAACC,GAAG,CAAC,GAAGxB,mBAAmB,CAACe,IAAI,EAAEQ,MAAM,CAACL,KAAK,IAAIK,MAAM,CAACC,GAAG,CAAC;IACvE,OAAOF,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAA4B;EAEjC,OAAO;IACLlB,IAAI,EAAE,MAAM;IACZY,KAAK;IACLE,KAAK;IACLC,UAAU;IACVF,OAAO,EAAEG,WAAW;IACpBK,GAAG,EAAEV;EACP,CAAC;AACH;AAEA,OAAO,SAASW,cAAcA,CAC5BZ,KAAwC,EACxCX,KAAkC,EAClCc,OAAkC,EACjB;EACjB,OAAOd,KAAK,CAACwB,GAAG,CAAC,CAACZ,IAAI,EAAEC,KAAK,KAAKH,aAAa,CAACC,KAAK,EAAEC,IAAI,EAAEC,KAAK,EAAEC,OAAO,CAAC,CAAC;AAC/E;AAEA,OAAO,SAASW,iBAAiBA,CAAEd,KAAyB,EAAEG,OAAuC,EAAE;EACrG,MAAMd,KAAK,GAAGJ,QAAQ,CAAC,MAAM2B,cAAc,CAACZ,KAAK,EAAEA,KAAK,CAACX,KAAK,EAAEc,OAAO,CAACC,KAAK,CAAC,CAAC;EAE/E,OAAO;IAAEf;EAAM,CAAC;AAClB"}
|
|
@@ -11,7 +11,7 @@ export const makeDataTablePaginateProps = propsFactory({
|
|
|
11
11
|
type: [Number, String],
|
|
12
12
|
default: 10
|
|
13
13
|
}
|
|
14
|
-
}, '
|
|
14
|
+
}, 'DataTable-paginate');
|
|
15
15
|
const VDataTablePaginationSymbol = Symbol.for('vuetify:data-table-pagination');
|
|
16
16
|
export function createPagination(props) {
|
|
17
17
|
const page = useProxiedModel(props, 'page', undefined, value => +(value ?? 1));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paginate.mjs","names":["useProxiedModel","computed","inject","provide","watchEffect","clamp","propsFactory","makeDataTablePaginateProps","page","type","Number","String","default","itemsPerPage","VDataTablePaginationSymbol","Symbol","for","createPagination","props","undefined","value","providePagination","options","itemsLength","startIndex","stopIndex","Math","min","pageCount","ceil","setItemsPerPage","nextPage","prevPage","setPage","data","usePagination","Error","usePaginatedItems","items","paginatedItems","slice"],"sources":["../../../../src/labs/VDataTable/composables/paginate.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, watchEffect } from 'vue'\nimport { clamp, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\nexport const makeDataTablePaginateProps = propsFactory({\n page: {\n type: [Number, String],\n default: 1,\n },\n itemsPerPage: {\n type: [Number, String],\n default: 10,\n },\n}, '
|
|
1
|
+
{"version":3,"file":"paginate.mjs","names":["useProxiedModel","computed","inject","provide","watchEffect","clamp","propsFactory","makeDataTablePaginateProps","page","type","Number","String","default","itemsPerPage","VDataTablePaginationSymbol","Symbol","for","createPagination","props","undefined","value","providePagination","options","itemsLength","startIndex","stopIndex","Math","min","pageCount","ceil","setItemsPerPage","nextPage","prevPage","setPage","data","usePagination","Error","usePaginatedItems","items","paginatedItems","slice"],"sources":["../../../../src/labs/VDataTable/composables/paginate.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, watchEffect } from 'vue'\nimport { clamp, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\nimport type { Group } from './group'\n\nexport const makeDataTablePaginateProps = propsFactory({\n page: {\n type: [Number, String],\n default: 1,\n },\n itemsPerPage: {\n type: [Number, String],\n default: 10,\n },\n}, 'DataTable-paginate')\n\nconst VDataTablePaginationSymbol: InjectionKey<{\n page: Ref<number>\n itemsPerPage: Ref<number>\n startIndex: Ref<number>\n stopIndex: Ref<number>\n pageCount: Ref<number>\n itemsLength: Ref<number>\n prevPage: () => void\n nextPage: () => void\n setPage: (value: number) => void\n setItemsPerPage: (value: number) => void\n}> = Symbol.for('vuetify:data-table-pagination')\n\ntype PaginationProps = {\n page: number | string\n 'onUpdate:page': ((val: any) => void) | undefined\n itemsPerPage: number | string\n 'onUpdate:itemsPerPage': ((val: any) => void) | undefined\n itemsLength?: number | string\n}\n\nexport function createPagination (props: PaginationProps) {\n const page = useProxiedModel(props, 'page', undefined, value => +(value ?? 1))\n const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => +(value ?? 10))\n\n return { page, itemsPerPage }\n}\n\nexport function providePagination (options: {\n page: Ref<number>\n itemsPerPage: Ref<number>\n itemsLength: Ref<number>\n}) {\n const { page, itemsPerPage, itemsLength } = options\n\n const startIndex = computed(() => {\n if (itemsPerPage.value === -1) return 0\n\n return itemsPerPage.value * (page.value - 1)\n })\n const stopIndex = computed(() => {\n if (itemsPerPage.value === -1) return itemsLength.value\n\n return Math.min(itemsLength.value, startIndex.value + itemsPerPage.value)\n })\n\n const pageCount = computed(() => {\n if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1\n\n return Math.ceil(itemsLength.value / itemsPerPage.value)\n })\n\n watchEffect(() => {\n if (page.value > pageCount.value) {\n page.value = pageCount.value\n }\n })\n\n function setItemsPerPage (value: number) {\n itemsPerPage.value = value\n page.value = 1\n }\n\n function nextPage () {\n page.value = clamp(page.value + 1, 1, pageCount.value)\n }\n\n function prevPage () {\n page.value = clamp(page.value - 1, 1, pageCount.value)\n }\n\n function setPage (value: number) {\n page.value = clamp(value, 1, pageCount.value)\n }\n\n const data = { page, itemsPerPage, startIndex, stopIndex, pageCount, itemsLength, nextPage, prevPage, setPage, setItemsPerPage }\n\n provide(VDataTablePaginationSymbol, data)\n\n return data\n}\n\nexport function usePagination () {\n const data = inject(VDataTablePaginationSymbol)\n\n if (!data) throw new Error('Missing pagination!')\n\n return data\n}\n\nexport function usePaginatedItems <T> (options: {\n items: Ref<readonly (T | Group<T>)[]>\n startIndex: Ref<number>\n stopIndex: Ref<number>\n itemsPerPage: Ref<number>\n}) {\n const { items, startIndex, stopIndex, itemsPerPage } = options\n const paginatedItems = computed(() => {\n if (itemsPerPage.value <= 0) return items.value\n\n return items.value.slice(startIndex.value, stopIndex.value)\n })\n\n return { paginatedItems }\n}\n"],"mappings":"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"}
|
|
@@ -2,20 +2,122 @@
|
|
|
2
2
|
import { useProxiedModel } from "../../../composables/proxiedModel.mjs"; // Utilities
|
|
3
3
|
import { computed, inject, provide } from 'vue';
|
|
4
4
|
import { propsFactory, wrapInArray } from "../../../util/index.mjs"; // Types
|
|
5
|
+
const singleSelectStrategy = {
|
|
6
|
+
showSelectAll: false,
|
|
7
|
+
allSelected: () => [],
|
|
8
|
+
select: _ref => {
|
|
9
|
+
let {
|
|
10
|
+
items
|
|
11
|
+
} = _ref;
|
|
12
|
+
return new Set([items[0]?.value]);
|
|
13
|
+
},
|
|
14
|
+
selectAll: _ref2 => {
|
|
15
|
+
let {
|
|
16
|
+
selected
|
|
17
|
+
} = _ref2;
|
|
18
|
+
return selected;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
const pageSelectStrategy = {
|
|
22
|
+
showSelectAll: true,
|
|
23
|
+
allSelected: _ref3 => {
|
|
24
|
+
let {
|
|
25
|
+
currentPage
|
|
26
|
+
} = _ref3;
|
|
27
|
+
return currentPage;
|
|
28
|
+
},
|
|
29
|
+
select: _ref4 => {
|
|
30
|
+
let {
|
|
31
|
+
items,
|
|
32
|
+
value,
|
|
33
|
+
selected
|
|
34
|
+
} = _ref4;
|
|
35
|
+
for (const item of items) {
|
|
36
|
+
if (value) selected.add(item.value);else selected.delete(item.value);
|
|
37
|
+
}
|
|
38
|
+
return selected;
|
|
39
|
+
},
|
|
40
|
+
selectAll: _ref5 => {
|
|
41
|
+
let {
|
|
42
|
+
value,
|
|
43
|
+
currentPage,
|
|
44
|
+
selected
|
|
45
|
+
} = _ref5;
|
|
46
|
+
return pageSelectStrategy.select({
|
|
47
|
+
items: currentPage,
|
|
48
|
+
value,
|
|
49
|
+
selected
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const allSelectStrategy = {
|
|
54
|
+
showSelectAll: true,
|
|
55
|
+
allSelected: _ref6 => {
|
|
56
|
+
let {
|
|
57
|
+
allItems
|
|
58
|
+
} = _ref6;
|
|
59
|
+
return allItems;
|
|
60
|
+
},
|
|
61
|
+
select: _ref7 => {
|
|
62
|
+
let {
|
|
63
|
+
items,
|
|
64
|
+
value,
|
|
65
|
+
selected
|
|
66
|
+
} = _ref7;
|
|
67
|
+
for (const item of items) {
|
|
68
|
+
if (value) selected.add(item.value);else selected.delete(item.value);
|
|
69
|
+
}
|
|
70
|
+
return selected;
|
|
71
|
+
},
|
|
72
|
+
selectAll: _ref8 => {
|
|
73
|
+
let {
|
|
74
|
+
value,
|
|
75
|
+
allItems,
|
|
76
|
+
selected
|
|
77
|
+
} = _ref8;
|
|
78
|
+
return allSelectStrategy.select({
|
|
79
|
+
items: allItems,
|
|
80
|
+
value,
|
|
81
|
+
selected
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
};
|
|
5
85
|
export const makeDataTableSelectProps = propsFactory({
|
|
6
86
|
showSelect: Boolean,
|
|
87
|
+
selectStrategy: {
|
|
88
|
+
type: [String, Object],
|
|
89
|
+
default: 'page'
|
|
90
|
+
},
|
|
7
91
|
modelValue: {
|
|
8
92
|
type: Array,
|
|
9
93
|
default: () => []
|
|
10
94
|
}
|
|
11
|
-
}, '
|
|
95
|
+
}, 'DataTable-select');
|
|
12
96
|
export const VDataTableSelectionSymbol = Symbol.for('vuetify:data-table-selection');
|
|
13
|
-
export function provideSelection(props,
|
|
97
|
+
export function provideSelection(props, _ref9) {
|
|
98
|
+
let {
|
|
99
|
+
allItems,
|
|
100
|
+
currentPage
|
|
101
|
+
} = _ref9;
|
|
14
102
|
const selected = useProxiedModel(props, 'modelValue', props.modelValue, v => {
|
|
15
103
|
return new Set(v);
|
|
16
104
|
}, v => {
|
|
17
105
|
return [...v.values()];
|
|
18
106
|
});
|
|
107
|
+
const allSelectable = computed(() => allItems.value.filter(item => item.selectable));
|
|
108
|
+
const currentPageSelectable = computed(() => currentPage.value.filter(item => item.selectable));
|
|
109
|
+
const selectStrategy = computed(() => {
|
|
110
|
+
if (typeof props.selectStrategy === 'object') return props.selectStrategy;
|
|
111
|
+
switch (props.selectStrategy) {
|
|
112
|
+
case 'single':
|
|
113
|
+
return singleSelectStrategy;
|
|
114
|
+
case 'all':
|
|
115
|
+
return allSelectStrategy;
|
|
116
|
+
case 'page':
|
|
117
|
+
default:
|
|
118
|
+
return pageSelectStrategy;
|
|
119
|
+
}
|
|
120
|
+
});
|
|
19
121
|
function isSelected(items) {
|
|
20
122
|
return wrapInArray(items).every(item => selected.value.has(item.value));
|
|
21
123
|
}
|
|
@@ -23,20 +125,33 @@ export function provideSelection(props, allItems) {
|
|
|
23
125
|
return wrapInArray(items).some(item => selected.value.has(item.value));
|
|
24
126
|
}
|
|
25
127
|
function select(items, value) {
|
|
26
|
-
const newSelected =
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
128
|
+
const newSelected = selectStrategy.value.select({
|
|
129
|
+
items,
|
|
130
|
+
value,
|
|
131
|
+
selected: new Set(selected.value)
|
|
132
|
+
});
|
|
30
133
|
selected.value = newSelected;
|
|
31
134
|
}
|
|
32
135
|
function toggleSelect(item) {
|
|
33
136
|
select([item], !isSelected([item]));
|
|
34
137
|
}
|
|
35
138
|
function selectAll(value) {
|
|
36
|
-
|
|
139
|
+
const newSelected = selectStrategy.value.selectAll({
|
|
140
|
+
value,
|
|
141
|
+
allItems: allSelectable.value,
|
|
142
|
+
currentPage: currentPageSelectable.value,
|
|
143
|
+
selected: new Set(selected.value)
|
|
144
|
+
});
|
|
145
|
+
selected.value = newSelected;
|
|
37
146
|
}
|
|
38
147
|
const someSelected = computed(() => selected.value.size > 0);
|
|
39
|
-
const allSelected = computed(() =>
|
|
148
|
+
const allSelected = computed(() => {
|
|
149
|
+
const items = selectStrategy.value.allSelected({
|
|
150
|
+
allItems: allSelectable.value,
|
|
151
|
+
currentPage: currentPageSelectable.value
|
|
152
|
+
});
|
|
153
|
+
return isSelected(items);
|
|
154
|
+
});
|
|
40
155
|
const data = {
|
|
41
156
|
toggleSelect,
|
|
42
157
|
select,
|
|
@@ -44,7 +159,8 @@ export function provideSelection(props, allItems) {
|
|
|
44
159
|
isSelected,
|
|
45
160
|
isSomeSelected,
|
|
46
161
|
someSelected,
|
|
47
|
-
allSelected
|
|
162
|
+
allSelected,
|
|
163
|
+
showSelectAll: selectStrategy.value.showSelectAll
|
|
48
164
|
};
|
|
49
165
|
provide(VDataTableSelectionSymbol, data);
|
|
50
166
|
return data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.mjs","names":["useProxiedModel","computed","inject","provide","propsFactory","wrapInArray","makeDataTableSelectProps","showSelect","Boolean","modelValue","type","Array","default","VDataTableSelectionSymbol","Symbol","for","provideSelection","props","allItems","selected","v","Set","values","isSelected","items","every","item","value","has","isSomeSelected","some","select","newSelected","add","delete","toggleSelect","selectAll","someSelected","size","allSelected","data","useSelection","Error"],"sources":["../../../../src/labs/VDataTable/composables/select.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide } from 'vue'\nimport { propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableItemProps } from './items'\nimport type { DataTableItem } from '../types'\n\nexport const makeDataTableSelectProps = propsFactory({\n showSelect: Boolean,\n modelValue: {\n type: Array as PropType<readonly any[]>,\n default: () => ([]),\n },\n}, 'v-data-table-select')\n\nexport const VDataTableSelectionSymbol: InjectionKey<{\n toggleSelect: (item: any) => void\n select: (items: any[], value: boolean) => void\n selectAll: (value: boolean) => void\n isSelected: (items: any[]) => boolean\n isSomeSelected: (items: any[]) => boolean\n someSelected: Ref<boolean>\n allSelected: Ref<boolean>\n}> = Symbol.for('vuetify:data-table-selection')\n\ntype SelectionProps = Pick<DataTableItemProps, 'itemValue'> & {\n modelValue: readonly any[]\n 'onUpdate:modelValue': ((value: any[]) => void) | undefined\n}\n\nexport function provideSelection <T extends DataTableItem> (props: SelectionProps, allItems: Ref<T[]>) {\n const selected = useProxiedModel(props, 'modelValue', props.modelValue, v => {\n return new Set(v)\n }, v => {\n return [...v.values()]\n })\n\n function isSelected (items: T | T[]) {\n return wrapInArray(items).every(item => selected.value.has(item.value))\n }\n\n function isSomeSelected (items: T | T[]) {\n return wrapInArray(items).some(item => selected.value.has(item.value))\n }\n\n function select (items: T[], value: boolean) {\n const newSelected = new Set(selected.value)\n\n for (const item of items) {\n if (value) newSelected.add(item.value)\n else newSelected.delete(item.value)\n }\n\n selected.value = newSelected\n }\n\n function toggleSelect (item: T) {\n select([item], !isSelected([item]))\n }\n\n function selectAll (value: boolean) {\n select(allItems.value, value)\n }\n\n const someSelected = computed(() => selected.value.size > 0)\n const allSelected = computed(() => isSelected(allItems.value))\n\n const data = { toggleSelect, select, selectAll, isSelected, isSomeSelected, someSelected, allSelected }\n\n provide(VDataTableSelectionSymbol, data)\n\n return data\n}\n\nexport function useSelection () {\n const data = inject(VDataTableSelectionSymbol)\n\n if (!data) throw new Error('Missing selection!')\n\n return data\n}\n"],"mappings":"AAAA;AAAA,SACSA,eAAe,iDAExB;AACA,SAASC,QAAQ,EAAEC,MAAM,EAAEC,OAAO,QAAQ,KAAK;AAAA,SACtCC,YAAY,EAAEC,WAAW,mCAElC;AAKA,OAAO,MAAMC,wBAAwB,GAAGF,YAAY,CAAC;EACnDG,UAAU,EAAEC,OAAO;EACnBC,UAAU,EAAE;IACVC,IAAI,EAAEC,KAAiC;IACvCC,OAAO,EAAEA,CAAA,KAAO;EAClB;AACF,CAAC,EAAE,qBAAqB,CAAC;AAEzB,OAAO,MAAMC,yBAQX,GAAGC,MAAM,CAACC,GAAG,CAAC,8BAA8B,CAAC;AAO/C,OAAO,SAASC,gBAAgBA,CAA4BC,KAAqB,EAAEC,QAAkB,EAAE;EACrG,MAAMC,QAAQ,GAAGnB,eAAe,CAACiB,KAAK,EAAE,YAAY,EAAEA,KAAK,CAACR,UAAU,EAAEW,CAAC,IAAI;IAC3E,OAAO,IAAIC,GAAG,CAACD,CAAC,CAAC;EACnB,CAAC,EAAEA,CAAC,IAAI;IACN,OAAO,CAAC,GAAGA,CAAC,CAACE,MAAM,EAAE,CAAC;EACxB,CAAC,CAAC;EAEF,SAASC,UAAUA,CAAEC,KAAc,EAAE;IACnC,OAAOnB,WAAW,CAACmB,KAAK,CAAC,CAACC,KAAK,CAACC,IAAI,IAAIP,QAAQ,CAACQ,KAAK,CAACC,GAAG,CAACF,IAAI,CAACC,KAAK,CAAC,CAAC;EACzE;EAEA,SAASE,cAAcA,CAAEL,KAAc,EAAE;IACvC,OAAOnB,WAAW,CAACmB,KAAK,CAAC,CAACM,IAAI,CAACJ,IAAI,IAAIP,QAAQ,CAACQ,KAAK,CAACC,GAAG,CAACF,IAAI,CAACC,KAAK,CAAC,CAAC;EACxE;EAEA,SAASI,MAAMA,CAAEP,KAAU,EAAEG,KAAc,EAAE;IAC3C,MAAMK,WAAW,GAAG,IAAIX,GAAG,CAACF,QAAQ,CAACQ,KAAK,CAAC;IAE3C,KAAK,MAAMD,IAAI,IAAIF,KAAK,EAAE;MACxB,IAAIG,KAAK,EAAEK,WAAW,CAACC,GAAG,CAACP,IAAI,CAACC,KAAK,CAAC,MACjCK,WAAW,CAACE,MAAM,CAACR,IAAI,CAACC,KAAK,CAAC;IACrC;IAEAR,QAAQ,CAACQ,KAAK,GAAGK,WAAW;EAC9B;EAEA,SAASG,YAAYA,CAAET,IAAO,EAAE;IAC9BK,MAAM,CAAC,CAACL,IAAI,CAAC,EAAE,CAACH,UAAU,CAAC,CAACG,IAAI,CAAC,CAAC,CAAC;EACrC;EAEA,SAASU,SAASA,CAAET,KAAc,EAAE;IAClCI,MAAM,CAACb,QAAQ,CAACS,KAAK,EAAEA,KAAK,CAAC;EAC/B;EAEA,MAAMU,YAAY,GAAGpC,QAAQ,CAAC,MAAMkB,QAAQ,CAACQ,KAAK,CAACW,IAAI,GAAG,CAAC,CAAC;EAC5D,MAAMC,WAAW,GAAGtC,QAAQ,CAAC,MAAMsB,UAAU,CAACL,QAAQ,CAACS,KAAK,CAAC,CAAC;EAE9D,MAAMa,IAAI,GAAG;IAAEL,YAAY;IAAEJ,MAAM;IAAEK,SAAS;IAAEb,UAAU;IAAEM,cAAc;IAAEQ,YAAY;IAAEE;EAAY,CAAC;EAEvGpC,OAAO,CAACU,yBAAyB,EAAE2B,IAAI,CAAC;EAExC,OAAOA,IAAI;AACb;AAEA,OAAO,SAASC,YAAYA,CAAA,EAAI;EAC9B,MAAMD,IAAI,GAAGtC,MAAM,CAACW,yBAAyB,CAAC;EAE9C,IAAI,CAAC2B,IAAI,EAAE,MAAM,IAAIE,KAAK,CAAC,oBAAoB,CAAC;EAEhD,OAAOF,IAAI;AACb"}
|
|
1
|
+
{"version":3,"file":"select.mjs","names":["useProxiedModel","computed","inject","provide","propsFactory","wrapInArray","singleSelectStrategy","showSelectAll","allSelected","select","_ref","items","Set","value","selectAll","_ref2","selected","pageSelectStrategy","_ref3","currentPage","_ref4","item","add","delete","_ref5","allSelectStrategy","_ref6","allItems","_ref7","_ref8","makeDataTableSelectProps","showSelect","Boolean","selectStrategy","type","String","Object","default","modelValue","Array","VDataTableSelectionSymbol","Symbol","for","provideSelection","props","_ref9","v","values","allSelectable","filter","selectable","currentPageSelectable","isSelected","every","has","isSomeSelected","some","newSelected","toggleSelect","someSelected","size","data","useSelection","Error"],"sources":["../../../../src/labs/VDataTable/composables/select.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide } from 'vue'\nimport { propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableItemProps } from './items'\n\nexport interface SelectableItem {\n value: any\n selectable: boolean\n}\n\nexport interface DataTableSelectStrategy {\n showSelectAll: boolean\n allSelected: (data: {\n allItems: SelectableItem[]\n currentPage: SelectableItem[]\n }) => SelectableItem[]\n select: (data: {\n items: SelectableItem[]\n value: boolean\n selected: Set<unknown>\n }) => Set<unknown>\n selectAll: (data: {\n value: boolean\n allItems: SelectableItem[]\n currentPage: SelectableItem[]\n selected: Set<unknown>\n }) => Set<unknown>\n}\n\ntype SelectionProps = Pick<DataTableItemProps, 'itemValue'> & {\n modelValue: readonly any[]\n selectStrategy: 'single' | 'page' | 'all'\n 'onUpdate:modelValue': ((value: any[]) => void) | undefined\n}\n\nconst singleSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: false,\n allSelected: () => [],\n select: ({ items }) => {\n return new Set([items[0]?.value])\n },\n selectAll: ({ selected }) => selected,\n}\n\nconst pageSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: true,\n allSelected: ({ currentPage }) => currentPage,\n select: ({ items, value, selected }) => {\n for (const item of items) {\n if (value) selected.add(item.value)\n else selected.delete(item.value)\n }\n\n return selected\n },\n selectAll: ({ value, currentPage, selected }) => pageSelectStrategy.select({ items: currentPage, value, selected }),\n}\n\nconst allSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: true,\n allSelected: ({ allItems }) => allItems,\n select: ({ items, value, selected }) => {\n for (const item of items) {\n if (value) selected.add(item.value)\n else selected.delete(item.value)\n }\n\n return selected\n },\n selectAll: ({ value, allItems, selected }) => allSelectStrategy.select({ items: allItems, value, selected }),\n}\n\nexport const makeDataTableSelectProps = propsFactory({\n showSelect: Boolean,\n selectStrategy: {\n type: [String, Object] as PropType<'single' | 'page' | 'all'>,\n default: 'page',\n },\n modelValue: {\n type: Array as PropType<readonly any[]>,\n default: () => ([]),\n },\n}, 'DataTable-select')\n\nexport const VDataTableSelectionSymbol: InjectionKey<ReturnType<typeof provideSelection>> = Symbol.for('vuetify:data-table-selection')\n\nexport function provideSelection (\n props: SelectionProps,\n { allItems, currentPage }: { allItems: Ref<SelectableItem[]>, currentPage: Ref<SelectableItem[]> }\n) {\n const selected = useProxiedModel(props, 'modelValue', props.modelValue, v => {\n return new Set(v)\n }, v => {\n return [...v.values()]\n })\n\n const allSelectable = computed(() => allItems.value.filter(item => item.selectable))\n const currentPageSelectable = computed(() => currentPage.value.filter(item => item.selectable))\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n\n switch (props.selectStrategy) {\n case 'single': return singleSelectStrategy\n case 'all': return allSelectStrategy\n case 'page':\n default: return pageSelectStrategy\n }\n })\n\n function isSelected (items: SelectableItem | SelectableItem[]) {\n return wrapInArray(items).every(item => selected.value.has(item.value))\n }\n\n function isSomeSelected (items: SelectableItem | SelectableItem[]) {\n return wrapInArray(items).some(item => selected.value.has(item.value))\n }\n\n function select (items: SelectableItem[], value: boolean) {\n const newSelected = selectStrategy.value.select({\n items,\n value,\n selected: new Set(selected.value),\n })\n\n selected.value = newSelected\n }\n\n function toggleSelect (item: SelectableItem) {\n select([item], !isSelected([item]))\n }\n\n function selectAll (value: boolean) {\n const newSelected = selectStrategy.value.selectAll({\n value,\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n selected: new Set(selected.value),\n })\n\n selected.value = newSelected\n }\n\n const someSelected = computed(() => selected.value.size > 0)\n const allSelected = computed(() => {\n const items = selectStrategy.value.allSelected({\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n })\n return isSelected(items)\n })\n\n const data = {\n toggleSelect,\n select,\n selectAll,\n isSelected,\n isSomeSelected,\n someSelected,\n allSelected,\n showSelectAll: selectStrategy.value.showSelectAll,\n }\n\n provide(VDataTableSelectionSymbol, data)\n\n return data\n}\n\nexport function useSelection () {\n const data = inject(VDataTableSelectionSymbol)\n\n if (!data) throw new Error('Missing selection!')\n\n return data\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Composables
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { useLocale } from "../../../composables/index.mjs";
|
|
3
|
+
import { useProxiedModel } from "../../../composables/proxiedModel.mjs"; // Utilities
|
|
4
4
|
import { computed, inject, provide, toRef } from 'vue';
|
|
5
5
|
import { getObjectValueByPath, propsFactory } from "../../../util/index.mjs"; // Types
|
|
6
6
|
export const makeDataTableSortProps = propsFactory({
|
|
@@ -11,7 +11,7 @@ export const makeDataTableSortProps = propsFactory({
|
|
|
11
11
|
customKeySort: Object,
|
|
12
12
|
multiSort: Boolean,
|
|
13
13
|
mustSort: Boolean
|
|
14
|
-
}, '
|
|
14
|
+
}, 'DataTable-sort');
|
|
15
15
|
const VDataTableSortSymbol = Symbol.for('vuetify:data-table-sort');
|
|
16
16
|
export function createSort(props) {
|
|
17
17
|
const sortBy = useProxiedModel(props, 'sortBy');
|
|
@@ -102,16 +102,11 @@ export function sortItems(items, sortByItems, locale, customSorters) {
|
|
|
102
102
|
return customResult;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
// Check if both cannot be evaluated
|
|
106
|
-
if (sortA == null || sortB == null) {
|
|
107
|
-
continue;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
105
|
// Dates should be compared numerically
|
|
111
106
|
if (sortA instanceof Date && sortB instanceof Date) {
|
|
112
107
|
return sortA.getTime() - sortB.getTime();
|
|
113
108
|
}
|
|
114
|
-
[sortA, sortB] = [sortA, sortB].map(s =>
|
|
109
|
+
[sortA, sortB] = [sortA, sortB].map(s => s != null ? s.toString().toLocaleLowerCase() : s);
|
|
115
110
|
if (sortA !== sortB) {
|
|
116
111
|
if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB);
|
|
117
112
|
return stringCollator.compare(sortA, sortB);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sort.mjs","names":["
|
|
1
|
+
{"version":3,"file":"sort.mjs","names":["useLocale","useProxiedModel","computed","inject","provide","toRef","getObjectValueByPath","propsFactory","makeDataTableSortProps","sortBy","type","Array","default","customKeySort","Object","multiSort","Boolean","mustSort","VDataTableSortSymbol","Symbol","for","createSort","props","provideSort","options","page","toggleSort","column","newSortBy","value","map","x","item","find","key","order","filter","isSorted","data","useSort","Error","useSortedItems","items","locale","sortedItems","length","sortItems","current","sortByItems","customSorters","stringCollator","Intl","Collator","sensitivity","usage","sort","a","b","i","sortKey","sortOrder","sortA","raw","sortB","customResult","Date","getTime","s","toString","toLocaleLowerCase","isNaN","Number","compare"],"sources":["../../../../src/labs/VDataTable/composables/sort.ts"],"sourcesContent":["// Composables\nimport { useLocale } from '@/composables'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, toRef } from 'vue'\nimport { getObjectValueByPath, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableCompareFunction, InternalDataTableHeader } from '../types'\n\nexport const makeDataTableSortProps = propsFactory({\n sortBy: {\n type: Array as PropType<readonly SortItem[]>,\n default: () => ([]),\n },\n customKeySort: Object as PropType<Record<string, DataTableCompareFunction>>,\n multiSort: Boolean,\n mustSort: Boolean,\n}, 'DataTable-sort')\n\nconst VDataTableSortSymbol: InjectionKey<{\n sortBy: Ref<readonly SortItem[]>\n toggleSort: (column: InternalDataTableHeader) => void\n isSorted: (column: InternalDataTableHeader) => boolean\n}> = Symbol.for('vuetify:data-table-sort')\n\nexport type SortItem = { key: string, order?: boolean | 'asc' | 'desc' }\n\ntype SortProps = {\n sortBy: readonly SortItem[]\n 'onUpdate:sortBy': ((value: any) => void) | undefined\n mustSort: boolean\n multiSort: boolean\n}\n\nexport function createSort (props: SortProps) {\n const sortBy = useProxiedModel(props, 'sortBy')\n const mustSort = toRef(props, 'mustSort')\n const multiSort = toRef(props, 'multiSort')\n\n return { sortBy, mustSort, multiSort }\n}\n\nexport function provideSort (options: {\n sortBy: Ref<readonly SortItem[]>\n mustSort: Ref<boolean>\n multiSort: Ref<boolean>\n page?: Ref<number>\n}) {\n const { sortBy, mustSort, multiSort, page } = options\n\n const toggleSort = (column: InternalDataTableHeader) => {\n let newSortBy = sortBy.value.map(x => ({ ...x })) ?? []\n const item = newSortBy.find(x => x.key === column.key)\n\n if (!item) {\n if (multiSort.value) newSortBy = [...newSortBy, { key: column.key, order: 'asc' }]\n else newSortBy = [{ key: column.key, order: 'asc' }]\n } else if (item.order === 'desc') {\n if (mustSort.value) {\n item.order = 'asc'\n } else {\n newSortBy = newSortBy.filter(x => x.key !== column.key)\n }\n } else {\n item.order = 'desc'\n }\n\n sortBy.value = newSortBy\n if (page) page.value = 1\n }\n\n function isSorted (column: InternalDataTableHeader) {\n return !!sortBy.value.find(item => item.key === column.key)\n }\n\n const data = { sortBy, toggleSort, isSorted }\n\n provide(VDataTableSortSymbol, data)\n\n return data\n}\n\nexport function useSort () {\n const data = inject(VDataTableSortSymbol)\n\n if (!data) throw new Error('Missing sort!')\n\n return data\n}\n\nexport function useSortedItems <T extends Record<string, any>> (\n props: { customKeySort?: Record<string, DataTableCompareFunction> },\n items: Ref<T[]>,\n sortBy: Ref<readonly SortItem[]>,\n) {\n const locale = useLocale()\n const sortedItems = computed(() => {\n if (!sortBy.value.length) return items.value\n\n return sortItems(items.value, sortBy.value, locale.current.value, props.customKeySort)\n })\n\n return { sortedItems }\n}\n\nexport function sortItems<T extends Record<string, any>> (\n items: T[],\n sortByItems: readonly SortItem[],\n locale: string,\n customSorters?: Record<string, DataTableCompareFunction>\n): T[] {\n const stringCollator = new Intl.Collator(locale, { sensitivity: 'accent', usage: 'sort' })\n\n return [...items].sort((a, b) => {\n for (let i = 0; i < sortByItems.length; i++) {\n const sortKey = sortByItems[i].key\n const sortOrder = sortByItems[i].order ?? 'asc'\n\n if (sortOrder === false) continue\n\n let sortA = getObjectValueByPath(a.raw, sortKey)\n let sortB = getObjectValueByPath(b.raw, sortKey)\n\n if (sortOrder === 'desc') {\n [sortA, sortB] = [sortB, sortA]\n }\n\n if (customSorters?.[sortKey]) {\n const customResult = customSorters[sortKey](sortA, sortB)\n\n if (!customResult) continue\n\n return customResult\n }\n\n // Dates should be compared numerically\n if (sortA instanceof Date && sortB instanceof Date) {\n return sortA.getTime() - sortB.getTime()\n }\n\n [sortA, sortB] = [sortA, sortB].map(s => s != null ? s.toString().toLocaleLowerCase() : s)\n\n if (sortA !== sortB) {\n if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB)\n return stringCollator.compare(sortA, sortB)\n }\n }\n\n return 0\n })\n}\n"],"mappings":"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"}
|