vuetify 3.1.15 → 3.2.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/dist/_component-variables-labs.sass +1 -0
- package/dist/json/attributes.json +368 -216
- package/dist/json/importMap-labs.json +4 -4
- package/dist/json/importMap.json +72 -68
- package/dist/json/tags.json +45 -2
- package/dist/json/web-types.json +898 -376
- package/dist/vuetify-labs.css +577 -355
- package/dist/vuetify-labs.d.ts +5910 -7620
- package/dist/vuetify-labs.esm.js +1702 -693
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +1701 -691
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +266 -60
- package/dist/vuetify.d.ts +6218 -7204
- package/dist/vuetify.esm.js +1425 -461
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +1424 -459
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +819 -746
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.ts +35 -1
- package/lib/blueprints/md1.d.ts +35 -1
- package/lib/blueprints/md2.d.ts +35 -1
- package/lib/blueprints/md3.d.ts +35 -1
- package/lib/components/VAlert/VAlert.mjs +6 -4
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/index.d.ts +57 -55
- package/lib/components/VApp/VApp.mjs +4 -2
- package/lib/components/VApp/VApp.mjs.map +1 -1
- package/lib/components/VApp/index.d.ts +22 -13
- package/lib/components/VAppBar/VAppBar.mjs +65 -13
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarNavIcon.mjs +7 -4
- package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.ts +113 -92
- package/lib/components/VAutocomplete/VAutocomplete.mjs +2 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.ts +276 -418
- package/lib/components/VAvatar/VAvatar.mjs +4 -2
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/index.d.ts +23 -14
- package/lib/components/VBadge/VBadge.mjs +6 -5
- package/lib/components/VBadge/VBadge.mjs.map +1 -1
- package/lib/components/VBadge/index.d.ts +27 -22
- package/lib/components/VBanner/VBanner.mjs +6 -4
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/VBannerActions.mjs +5 -2
- package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
- package/lib/components/VBanner/index.d.ts +92 -66
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +4 -2
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBottomNavigation/index.d.ts +22 -13
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +35 -18
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +6 -3
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +4 -2
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.ts +134 -93
- package/lib/components/VBtn/VBtn.mjs +9 -4
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/_mixins.scss +1 -1
- package/lib/components/VBtn/index.d.ts +39 -36
- package/lib/components/VBtnGroup/VBtnGroup.mjs +4 -1
- package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
- package/lib/components/VBtnGroup/index.d.ts +22 -13
- package/lib/components/VBtnToggle/VBtnToggle.mjs +4 -2
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VBtnToggle/index.d.ts +30 -21
- package/lib/components/VCard/VCard.mjs +5 -3
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCardActions.mjs +7 -4
- package/lib/components/VCard/VCardActions.mjs.map +1 -1
- package/lib/components/VCard/VCardItem.mjs +5 -2
- package/lib/components/VCard/VCardItem.mjs.map +1 -1
- package/lib/components/VCard/index.d.ts +250 -141
- package/lib/components/VCarousel/VCarousel.mjs +3 -3
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/VCarouselItem.mjs +6 -3
- package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
- package/lib/components/VCarousel/index.d.ts +78 -141
- package/lib/components/VCheckbox/VCheckbox.mjs +3 -2
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +2 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.ts +75 -109
- package/lib/components/VChip/VChip.mjs +7 -8
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/index.d.ts +27 -30
- package/lib/components/VChipGroup/VChipGroup.mjs +4 -1
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VChipGroup/index.d.ts +22 -13
- package/lib/components/VCode/index.d.ts +30 -17
- package/lib/components/VColorPicker/VColorPicker.mjs +3 -3
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +5 -2
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs +6 -3
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +6 -3
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs +7 -5
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VColorPicker/index.d.ts +34 -1
- package/lib/components/VCombobox/VCombobox.mjs +2 -1
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +276 -418
- package/lib/components/VCounter/VCounter.mjs +4 -1
- package/lib/components/VCounter/VCounter.mjs.map +1 -1
- package/lib/components/VCounter/index.d.ts +22 -145
- package/lib/components/VDefaultsProvider/index.d.ts +0 -12
- package/lib/components/VDialog/VDialog.mjs +4 -3
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/index.d.ts +104 -282
- package/lib/components/VDivider/VDivider.mjs +4 -2
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VDivider/index.d.ts +22 -13
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +4 -2
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +4 -1
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +4 -2
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs +4 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.ts +109 -81
- package/lib/components/VField/VField.css +59 -12
- package/lib/components/VField/VField.mjs +18 -8
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +57 -6
- package/lib/components/VField/VFieldLabel.mjs +6 -3
- package/lib/components/VField/VFieldLabel.mjs.map +1 -1
- package/lib/components/VField/_variables.scss +4 -0
- package/lib/components/VField/index.d.ts +169 -84
- package/lib/components/VFileInput/VFileInput.mjs +2 -1
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.ts +147 -174
- package/lib/components/VFooter/VFooter.mjs +4 -2
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VFooter/index.d.ts +22 -13
- package/lib/components/VForm/VForm.mjs +5 -2
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VForm/index.d.ts +30 -17
- package/lib/components/VGrid/VCol.mjs +4 -1
- package/lib/components/VGrid/VCol.mjs.map +1 -1
- package/lib/components/VGrid/VContainer.mjs +4 -1
- package/lib/components/VGrid/VContainer.mjs.map +1 -1
- package/lib/components/VGrid/VRow.mjs +4 -1
- package/lib/components/VGrid/VRow.mjs.map +1 -1
- package/lib/components/VGrid/index.d.ts +104 -60
- package/lib/components/VHover/index.d.ts +20 -44
- package/lib/components/VIcon/VIcon.mjs +4 -2
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/index.d.ts +23 -26
- package/lib/components/VImg/VImg.mjs +5 -3
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/index.d.ts +26 -29
- package/lib/components/VInput/VInput.mjs +4 -1
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/index.d.ts +37 -40
- package/lib/components/VItemGroup/VItemGroup.mjs +4 -1
- package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
- package/lib/components/VItemGroup/index.d.ts +30 -33
- package/lib/components/VKbd/index.d.ts +30 -17
- package/lib/components/VLabel/VLabel.mjs +4 -1
- package/lib/components/VLabel/VLabel.mjs.map +1 -1
- package/lib/components/VLabel/index.d.ts +22 -13
- package/lib/components/VLayout/VLayout.mjs +8 -4
- package/lib/components/VLayout/VLayout.mjs.map +1 -1
- package/lib/components/VLayout/VLayoutItem.mjs +4 -2
- package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
- package/lib/components/VLayout/index.d.ts +44 -26
- package/lib/components/VLazy/VLazy.mjs +4 -2
- package/lib/components/VLazy/VLazy.mjs.map +1 -1
- package/lib/components/VLazy/index.d.ts +22 -13
- package/lib/components/VList/VList.mjs +7 -24
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +5 -2
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +4 -2
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItemAction.mjs +4 -1
- package/lib/components/VList/VListItemAction.mjs.map +1 -1
- package/lib/components/VList/VListItemMedia.mjs +4 -1
- package/lib/components/VList/VListItemMedia.mjs.map +1 -1
- package/lib/components/VList/VListSubheader.mjs +5 -3
- package/lib/components/VList/VListSubheader.mjs.map +1 -1
- package/lib/components/VList/index.d.ts +932 -826
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs +5 -2
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
- package/lib/components/VLocaleProvider/index.d.ts +30 -17
- package/lib/components/VMain/VMain.mjs +4 -2
- package/lib/components/VMain/VMain.mjs.map +1 -1
- package/lib/components/VMain/index.d.ts +30 -17
- package/lib/components/VMenu/VMenu.mjs +2 -1
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.ts +104 -282
- package/lib/components/VMessages/VMessages.mjs +4 -2
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VMessages/index.d.ts +22 -145
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +4 -2
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/index.d.ts +26 -29
- package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
- package/lib/components/VNoSsr/index.d.ts +3 -13
- package/lib/components/VOverlay/VOverlay.mjs +5 -3
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.ts +38 -45
- package/lib/components/VPagination/VPagination.mjs +4 -1
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/index.d.ts +23 -30
- package/lib/components/VParallax/VParallax.mjs +5 -2
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VParallax/index.d.ts +34 -33
- package/lib/components/VProgressCircular/VProgressCircular.mjs +4 -2
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressCircular/index.d.ts +22 -13
- package/lib/components/VProgressLinear/VProgressLinear.mjs +6 -4
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/index.d.ts +42 -45
- package/lib/components/VRadio/VRadio.mjs +2 -1
- package/lib/components/VRadio/VRadio.mjs.map +1 -1
- package/lib/components/VRadio/index.d.ts +27 -38
- package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.d.ts +45 -68
- package/lib/components/VRangeSlider/VRangeSlider.mjs +33 -21
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.ts +50 -49
- package/lib/components/VRating/VRating.css +0 -4
- package/lib/components/VRating/VRating.mjs +10 -36
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/VRating.sass +0 -5
- package/lib/components/VRating/index.d.ts +24 -18
- package/lib/components/VResponsive/VResponsive.mjs +4 -2
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VResponsive/index.d.ts +43 -31
- package/lib/components/VSelect/VSelect.mjs +2 -1
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +245 -567
- package/lib/components/VSelectionControl/VSelectionControl.mjs +6 -2
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.ts +76 -46
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +4 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/index.d.ts +23 -14
- package/lib/components/VSheet/VSheet.mjs +4 -2
- package/lib/components/VSheet/VSheet.mjs.map +1 -1
- package/lib/components/VSheet/index.d.ts +22 -13
- package/lib/components/VSlideGroup/VSlideGroup.mjs +6 -3
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.ts +59 -90
- package/lib/components/VSlider/VSlider.mjs +33 -14
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.mjs +6 -4
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.mjs +6 -4
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/index.d.ts +50 -49
- package/lib/components/VSlider/slider.mjs +43 -23
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.mjs +2 -1
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/index.d.ts +92 -142
- package/lib/components/VSwitch/VSwitch.mjs +2 -1
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/index.d.ts +45 -72
- package/lib/components/VSystemBar/VSystemBar.mjs +4 -2
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VSystemBar/index.d.ts +22 -13
- package/lib/components/VTable/VTable.mjs +4 -1
- package/lib/components/VTable/VTable.mjs.map +1 -1
- package/lib/components/VTable/index.d.ts +26 -29
- package/lib/components/VTabs/VTab.mjs +3 -4
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.mjs +2 -2
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/index.d.ts +51 -33
- package/lib/components/VTextField/VTextField.mjs +2 -1
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/index.d.ts +337 -317
- package/lib/components/VTextarea/VTextarea.mjs +2 -1
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/index.d.ts +127 -146
- package/lib/components/VThemeProvider/VThemeProvider.mjs +6 -3
- package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
- package/lib/components/VThemeProvider/index.d.ts +22 -13
- package/lib/components/VTimeline/VTimeline.mjs +5 -3
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineDivider.mjs +4 -1
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs +8 -6
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VTimeline/index.d.ts +67 -57
- package/lib/components/VToolbar/VToolbar.css +3 -1
- package/lib/components/VToolbar/VToolbar.mjs +4 -2
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.sass +3 -1
- package/lib/components/VToolbar/VToolbarItems.mjs +9 -4
- package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbarTitle.mjs +5 -2
- package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
- package/lib/components/VToolbar/index.d.ts +74 -71
- package/lib/components/VTooltip/VTooltip.mjs +4 -3
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/index.d.ts +119 -150
- package/lib/components/VValidation/index.d.ts +6 -18
- package/lib/{labs → components}/VVirtualScroll/VVirtualScroll.mjs +21 -23
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -0
- package/lib/{labs → components}/VVirtualScroll/VVirtualScrollItem.mjs +5 -2
- package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -0
- package/lib/{labs → components}/VVirtualScroll/index.d.ts +70 -30
- package/lib/components/VVirtualScroll/index.mjs.map +1 -0
- package/lib/components/VWindow/VWindow.mjs +4 -1
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindowItem.mjs +4 -1
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/VWindow/index.d.ts +61 -79
- package/lib/components/index.d.ts +5834 -6865
- package/lib/components/index.mjs +2 -1
- package/lib/components/index.mjs.map +1 -1
- package/lib/components/transitions/index.d.ts +0 -192
- package/lib/composables/component.mjs +11 -0
- package/lib/composables/component.mjs.map +1 -0
- package/lib/composables/defaults.mjs +53 -5
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/focus.mjs.map +1 -1
- package/lib/composables/icons.mjs +15 -4
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/composables/index.mjs +1 -0
- package/lib/composables/index.mjs.map +1 -1
- package/lib/composables/intersectionObserver.mjs +2 -2
- package/lib/composables/intersectionObserver.mjs.map +1 -1
- package/lib/composables/loader.mjs.map +1 -1
- package/lib/composables/scroll.mjs +3 -0
- package/lib/composables/scroll.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +8 -3
- package/lib/framework.mjs.map +1 -1
- package/lib/iconsets/fa-svg.d.ts +1 -1
- package/lib/iconsets/fa.d.ts +1 -1
- package/lib/iconsets/fa4.d.ts +1 -1
- package/lib/iconsets/md.d.ts +1 -1
- package/lib/iconsets/mdi-svg.d.ts +1 -1
- package/lib/iconsets/mdi.d.ts +1 -1
- package/lib/index.d.ts +65 -22
- package/lib/labs/VDataTable/VDataTable.mjs +1 -1
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableHeaders.mjs +34 -20
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRow.mjs +2 -4
- package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +2 -2
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.ts +61 -933
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.css +26 -0
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +215 -0
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -0
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.sass +25 -0
- package/lib/labs/VInfiniteScroll/_variables.scss +3 -0
- package/lib/labs/VInfiniteScroll/index.d.ts +321 -0
- package/lib/labs/VInfiniteScroll/index.mjs +2 -0
- package/lib/labs/VInfiniteScroll/index.mjs.map +1 -0
- package/lib/labs/VSkeletonLoader/index.d.ts +0 -12
- package/lib/labs/components.d.ts +377 -1097
- package/lib/labs/components.mjs +1 -1
- package/lib/labs/components.mjs.map +1 -1
- package/lib/labs/date/DateAdapter.mjs +2 -0
- package/lib/labs/date/DateAdapter.mjs.map +1 -0
- package/lib/labs/date/adapters/vuetify.d.ts +52 -0
- package/lib/labs/date/adapters/vuetify.mjs +399 -0
- package/lib/labs/date/adapters/vuetify.mjs.map +1 -0
- package/lib/labs/date/date.mjs +39 -0
- package/lib/labs/date/date.mjs.map +1 -0
- package/lib/labs/date/index.d.ts +40 -0
- package/lib/labs/date/index.mjs +2 -0
- package/lib/labs/date/index.mjs.map +1 -0
- package/lib/labs/index.mjs +3 -2
- package/lib/labs/index.mjs.map +1 -1
- package/lib/locale/af.mjs +5 -1
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs +5 -1
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs +5 -1
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs +5 -1
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +5 -1
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs +5 -1
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +5 -1
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs +5 -1
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs +5 -1
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs +5 -1
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs +5 -1
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +5 -1
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs +5 -1
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs +5 -1
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs +5 -1
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +5 -1
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs +5 -1
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs +5 -1
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs +5 -1
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs +5 -1
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.ts +168 -0
- package/lib/locale/it.mjs +5 -1
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs +5 -1
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/ko.mjs +5 -1
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +5 -1
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +5 -1
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +5 -1
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +5 -1
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +5 -1
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +5 -1
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +5 -1
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +5 -1
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +5 -1
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +5 -1
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +5 -1
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +5 -1
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +5 -1
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +5 -1
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +5 -1
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +5 -1
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +5 -1
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +5 -1
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +5 -1
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/lib/styles/main.css +152 -0
- package/lib/styles/settings/_utilities.scss +11 -1
- package/lib/util/createSimpleFunctional.mjs +9 -4
- package/lib/util/createSimpleFunctional.mjs.map +1 -1
- package/lib/util/defineComponent.mjs +11 -43
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/helpers.mjs +32 -2
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/index.mjs +1 -0
- package/lib/util/index.mjs.map +1 -1
- package/package.json +4 -3
- package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +0 -1
- package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs.map +0 -1
- package/lib/labs/VVirtualScroll/index.mjs.map +0 -1
- /package/lib/{labs → components}/VVirtualScroll/VVirtualScroll.css +0 -0
- /package/lib/{labs → components}/VVirtualScroll/VVirtualScroll.sass +0 -0
- /package/lib/{labs → components}/VVirtualScroll/index.mjs +0 -0
package/dist/vuetify-labs.esm.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.
|
|
2
|
+
* Vuetify v3.2.0
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { ref, onBeforeUnmount, watch, readonly, reactive, computed, watchEffect, toRefs, capitalize,
|
|
7
|
+
import { ref, onBeforeUnmount, watch, readonly, reactive, computed, watchEffect, toRefs, capitalize, onScopeDispose, effectScope, shallowRef, inject as inject$1, unref, provide, defineComponent as defineComponent$1, camelize, h, getCurrentInstance as getCurrentInstance$1, onDeactivated, onActivated, onMounted, toRaw, createVNode, TransitionGroup, Transition, mergeProps, onBeforeMount, nextTick, withDirectives, Fragment, resolveDirective, vShow, isRef, toRef, Text, resolveDynamicComponent, cloneVNode, warn, toHandlers, Teleport, createTextVNode, onBeforeUpdate, vModelText, onUpdated, withModifiers } from 'vue';
|
|
8
8
|
|
|
9
9
|
const IN_BROWSER = typeof window !== 'undefined';
|
|
10
10
|
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
|
@@ -167,11 +167,11 @@ const keyValues = Object.freeze({
|
|
|
167
167
|
function keys(o) {
|
|
168
168
|
return Object.keys(o);
|
|
169
169
|
}
|
|
170
|
-
function pick(obj, paths) {
|
|
170
|
+
function pick(obj, paths, exclude) {
|
|
171
171
|
const found = Object.create(null);
|
|
172
172
|
const rest = Object.create(null);
|
|
173
173
|
for (const key in obj) {
|
|
174
|
-
if (paths.some(path => path instanceof RegExp ? path.test(key) : path === key)) {
|
|
174
|
+
if (paths.some(path => path instanceof RegExp ? path.test(key) : path === key) && !exclude?.some(path => path === key)) {
|
|
175
175
|
found[key] = obj[key];
|
|
176
176
|
} else {
|
|
177
177
|
rest[key] = obj[key];
|
|
@@ -356,6 +356,32 @@ function callEvent(handler) {
|
|
|
356
356
|
handler(...args);
|
|
357
357
|
}
|
|
358
358
|
}
|
|
359
|
+
function focusableChildren(el) {
|
|
360
|
+
const targets = ['button', '[href]', 'input:not([type="hidden"])', 'select', 'textarea', '[tabindex]'].map(s => `${s}:not([tabindex="-1"]):not([disabled])`).join(', ');
|
|
361
|
+
return [...el.querySelectorAll(targets)];
|
|
362
|
+
}
|
|
363
|
+
function focusChild(el, location) {
|
|
364
|
+
const focusable = focusableChildren(el);
|
|
365
|
+
const idx = focusable.indexOf(document.activeElement);
|
|
366
|
+
if (!location) {
|
|
367
|
+
if (!el.contains(document.activeElement)) {
|
|
368
|
+
focusable[0]?.focus();
|
|
369
|
+
}
|
|
370
|
+
} else if (location === 'first') {
|
|
371
|
+
focusable[0]?.focus();
|
|
372
|
+
} else if (location === 'last') {
|
|
373
|
+
focusable.at(-1)?.focus();
|
|
374
|
+
} else {
|
|
375
|
+
let _el;
|
|
376
|
+
let idxx = idx;
|
|
377
|
+
const inc = location === 'next' ? 1 : -1;
|
|
378
|
+
do {
|
|
379
|
+
idxx += inc;
|
|
380
|
+
_el = focusable[idxx];
|
|
381
|
+
} while ((!_el || _el.offsetParent == null) && idxx < focusable.length && idxx >= 0);
|
|
382
|
+
if (_el) _el.focus();else focusChild(el, location === 'next' ? 'first' : 'last');
|
|
383
|
+
}
|
|
384
|
+
}
|
|
359
385
|
|
|
360
386
|
const block = ['top', 'bottom'];
|
|
361
387
|
const inline = ['start', 'end', 'left', 'right'];
|
|
@@ -856,44 +882,6 @@ function getContrast(first, second) {
|
|
|
856
882
|
return (light + 0.05) / (dark + 0.05);
|
|
857
883
|
}
|
|
858
884
|
|
|
859
|
-
// Utilities
|
|
860
|
-
function getCurrentInstance(name, message) {
|
|
861
|
-
const vm = getCurrentInstance$1();
|
|
862
|
-
if (!vm) {
|
|
863
|
-
throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);
|
|
864
|
-
}
|
|
865
|
-
return vm;
|
|
866
|
-
}
|
|
867
|
-
function getCurrentInstanceName() {
|
|
868
|
-
let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';
|
|
869
|
-
const vm = getCurrentInstance(name).type;
|
|
870
|
-
return toKebabCase(vm?.aliasName || vm?.name);
|
|
871
|
-
}
|
|
872
|
-
let _uid = 0;
|
|
873
|
-
let _map = new WeakMap();
|
|
874
|
-
function getUid() {
|
|
875
|
-
const vm = getCurrentInstance('getUid');
|
|
876
|
-
if (_map.has(vm)) return _map.get(vm);else {
|
|
877
|
-
const uid = _uid++;
|
|
878
|
-
_map.set(vm, uid);
|
|
879
|
-
return uid;
|
|
880
|
-
}
|
|
881
|
-
}
|
|
882
|
-
getUid.reset = () => {
|
|
883
|
-
_uid = 0;
|
|
884
|
-
_map = new WeakMap();
|
|
885
|
-
};
|
|
886
|
-
|
|
887
|
-
function injectSelf(key) {
|
|
888
|
-
const {
|
|
889
|
-
provides
|
|
890
|
-
} = getCurrentInstance('injectSelf');
|
|
891
|
-
if (provides && key in provides) {
|
|
892
|
-
// TS doesn't allow symbol as index type
|
|
893
|
-
return provides[key];
|
|
894
|
-
}
|
|
895
|
-
}
|
|
896
|
-
|
|
897
885
|
/**
|
|
898
886
|
* Creates a factory function for props definitions.
|
|
899
887
|
* This is used to define props in a composable then override
|
|
@@ -947,17 +935,54 @@ function propsFactory(props, source) {
|
|
|
947
935
|
|
|
948
936
|
// Types
|
|
949
937
|
|
|
938
|
+
// Composables
|
|
939
|
+
const makeComponentProps = propsFactory({
|
|
940
|
+
class: [String, Array],
|
|
941
|
+
style: {
|
|
942
|
+
type: [String, Array, Object],
|
|
943
|
+
default: null
|
|
944
|
+
}
|
|
945
|
+
}, 'component');
|
|
946
|
+
|
|
947
|
+
function useToggleScope(source, fn) {
|
|
948
|
+
let scope;
|
|
949
|
+
function start() {
|
|
950
|
+
scope = effectScope();
|
|
951
|
+
scope.run(() => fn.length ? fn(() => {
|
|
952
|
+
scope?.stop();
|
|
953
|
+
start();
|
|
954
|
+
}) : fn());
|
|
955
|
+
}
|
|
956
|
+
watch(source, active => {
|
|
957
|
+
if (active && !scope) {
|
|
958
|
+
start();
|
|
959
|
+
} else if (!active) {
|
|
960
|
+
scope?.stop();
|
|
961
|
+
scope = undefined;
|
|
962
|
+
}
|
|
963
|
+
}, {
|
|
964
|
+
immediate: true
|
|
965
|
+
});
|
|
966
|
+
onScopeDispose(() => {
|
|
967
|
+
scope?.stop();
|
|
968
|
+
});
|
|
969
|
+
}
|
|
970
|
+
|
|
971
|
+
// Composables
|
|
972
|
+
|
|
973
|
+
// Types
|
|
974
|
+
|
|
950
975
|
const DefaultsSymbol = Symbol.for('vuetify:defaults');
|
|
951
976
|
function createDefaults(options) {
|
|
952
977
|
return ref(options);
|
|
953
978
|
}
|
|
954
|
-
function
|
|
979
|
+
function injectDefaults() {
|
|
955
980
|
const defaults = inject$1(DefaultsSymbol);
|
|
956
981
|
if (!defaults) throw new Error('[Vuetify] Could not find defaults instance');
|
|
957
982
|
return defaults;
|
|
958
983
|
}
|
|
959
984
|
function provideDefaults(defaults, options) {
|
|
960
|
-
const injectedDefaults =
|
|
985
|
+
const injectedDefaults = injectDefaults();
|
|
961
986
|
const providedDefaults = ref(defaults);
|
|
962
987
|
const newDefaults = computed(() => {
|
|
963
988
|
const disabled = unref(options?.disabled);
|
|
@@ -984,41 +1009,58 @@ function provideDefaults(defaults, options) {
|
|
|
984
1009
|
provide(DefaultsSymbol, newDefaults);
|
|
985
1010
|
return newDefaults;
|
|
986
1011
|
}
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1012
|
+
function propIsDefined(vnode, prop) {
|
|
1013
|
+
return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';
|
|
1014
|
+
}
|
|
1015
|
+
function useDefaults() {
|
|
1016
|
+
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1017
|
+
let name = arguments.length > 1 ? arguments[1] : undefined;
|
|
1018
|
+
let defaults = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : injectDefaults();
|
|
1019
|
+
const vm = getCurrentInstance('useDefaults');
|
|
1020
|
+
name = name ?? vm.type.name ?? vm.type.__name;
|
|
1021
|
+
if (!name) {
|
|
1022
|
+
throw new Error('[Vuetify] Could not determine component name');
|
|
1023
|
+
}
|
|
1024
|
+
const componentDefaults = computed(() => defaults.value?.[props._as ?? name]);
|
|
1025
|
+
const _props = new Proxy(props, {
|
|
1026
|
+
get(target, prop) {
|
|
1027
|
+
const propValue = Reflect.get(target, prop);
|
|
1028
|
+
if (prop === 'class' || prop === 'style') {
|
|
1029
|
+
return [componentDefaults.value?.[prop], propValue].filter(v => v != null);
|
|
1030
|
+
} else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
|
|
1031
|
+
return componentDefaults.value?.[prop] ?? defaults.value?.global?.[prop] ?? propValue;
|
|
1032
|
+
}
|
|
1033
|
+
return propValue;
|
|
1003
1034
|
}
|
|
1004
|
-
}, {
|
|
1005
|
-
immediate: true
|
|
1006
1035
|
});
|
|
1007
|
-
|
|
1008
|
-
|
|
1036
|
+
const _subcomponentDefaults = shallowRef();
|
|
1037
|
+
watchEffect(() => {
|
|
1038
|
+
if (componentDefaults.value) {
|
|
1039
|
+
const subComponents = Object.entries(componentDefaults.value).filter(_ref => {
|
|
1040
|
+
let [key] = _ref;
|
|
1041
|
+
return key.startsWith(key[0].toUpperCase());
|
|
1042
|
+
});
|
|
1043
|
+
if (subComponents.length) _subcomponentDefaults.value = Object.fromEntries(subComponents);
|
|
1044
|
+
}
|
|
1009
1045
|
});
|
|
1046
|
+
function provideSubDefaults() {
|
|
1047
|
+
// If subcomponent defaults are provided, override any
|
|
1048
|
+
// subcomponents provided by the component's setup function.
|
|
1049
|
+
// This uses injectSelf so must be done after the original setup to work.
|
|
1050
|
+
useToggleScope(_subcomponentDefaults, () => {
|
|
1051
|
+
provideDefaults(mergeDeep(injectSelf(DefaultsSymbol)?.value ?? {}, _subcomponentDefaults.value));
|
|
1052
|
+
});
|
|
1053
|
+
}
|
|
1054
|
+
return {
|
|
1055
|
+
props: _props,
|
|
1056
|
+
provideSubDefaults
|
|
1057
|
+
};
|
|
1010
1058
|
}
|
|
1011
1059
|
|
|
1012
1060
|
// Utils
|
|
1013
1061
|
|
|
1014
1062
|
// Types
|
|
1015
1063
|
|
|
1016
|
-
function propIsDefined(vnode, prop) {
|
|
1017
|
-
return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';
|
|
1018
|
-
}
|
|
1019
|
-
|
|
1020
|
-
// No props
|
|
1021
|
-
|
|
1022
1064
|
// Implementation
|
|
1023
1065
|
function defineComponent(options) {
|
|
1024
1066
|
options._setup = options._setup ?? options.setup;
|
|
@@ -1030,43 +1072,20 @@ function defineComponent(options) {
|
|
|
1030
1072
|
options.props = propsFactory(options.props ?? {}, toKebabCase(options.name))();
|
|
1031
1073
|
const propKeys = Object.keys(options.props);
|
|
1032
1074
|
options.filterProps = function filterProps(props) {
|
|
1033
|
-
return pick(props, propKeys);
|
|
1075
|
+
return pick(props, propKeys, ['class', 'style']);
|
|
1034
1076
|
};
|
|
1035
1077
|
options.props._as = String;
|
|
1036
1078
|
options.setup = function setup(props, ctx) {
|
|
1037
|
-
const defaults =
|
|
1079
|
+
const defaults = injectDefaults();
|
|
1038
1080
|
|
|
1039
1081
|
// Skip props proxy if defaults are not provided
|
|
1040
1082
|
if (!defaults.value) return options._setup(props, ctx);
|
|
1041
|
-
const
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
const propValue = Reflect.get(target, prop);
|
|
1046
|
-
if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
|
|
1047
|
-
return componentDefaults.value?.[prop] ?? defaults.value.global?.[prop] ?? propValue;
|
|
1048
|
-
}
|
|
1049
|
-
return propValue;
|
|
1050
|
-
}
|
|
1051
|
-
});
|
|
1052
|
-
const _subcomponentDefaults = shallowRef();
|
|
1053
|
-
watchEffect(() => {
|
|
1054
|
-
if (componentDefaults.value) {
|
|
1055
|
-
const subComponents = Object.entries(componentDefaults.value).filter(_ref => {
|
|
1056
|
-
let [key] = _ref;
|
|
1057
|
-
return key.startsWith(key[0].toUpperCase());
|
|
1058
|
-
});
|
|
1059
|
-
if (subComponents.length) _subcomponentDefaults.value = Object.fromEntries(subComponents);
|
|
1060
|
-
}
|
|
1061
|
-
});
|
|
1083
|
+
const {
|
|
1084
|
+
props: _props,
|
|
1085
|
+
provideSubDefaults
|
|
1086
|
+
} = useDefaults(props, props._as ?? options.name, defaults);
|
|
1062
1087
|
const setupBindings = options._setup(_props, ctx);
|
|
1063
|
-
|
|
1064
|
-
// If subcomponent defaults are provided, override any
|
|
1065
|
-
// subcomponents provided by the component's setup function.
|
|
1066
|
-
// This uses injectSelf so must be done after the original setup to work.
|
|
1067
|
-
useToggleScope(_subcomponentDefaults, () => {
|
|
1068
|
-
provideDefaults(mergeDeep(injectSelf(DefaultsSymbol)?.value ?? {}, _subcomponentDefaults.value));
|
|
1069
|
-
});
|
|
1088
|
+
provideSubDefaults();
|
|
1070
1089
|
return setupBindings;
|
|
1071
1090
|
};
|
|
1072
1091
|
}
|
|
@@ -1091,15 +1110,19 @@ function createSimpleFunctional(klass) {
|
|
|
1091
1110
|
tag: {
|
|
1092
1111
|
type: String,
|
|
1093
1112
|
default: tag
|
|
1094
|
-
}
|
|
1113
|
+
},
|
|
1114
|
+
...makeComponentProps()
|
|
1095
1115
|
},
|
|
1096
1116
|
setup(props, _ref) {
|
|
1097
1117
|
let {
|
|
1098
1118
|
slots
|
|
1099
1119
|
} = _ref;
|
|
1100
|
-
return () =>
|
|
1101
|
-
|
|
1102
|
-
|
|
1120
|
+
return () => {
|
|
1121
|
+
return h(props.tag, {
|
|
1122
|
+
class: [klass, props.class],
|
|
1123
|
+
style: props.style
|
|
1124
|
+
}, slots.default?.());
|
|
1125
|
+
};
|
|
1103
1126
|
}
|
|
1104
1127
|
});
|
|
1105
1128
|
}
|
|
@@ -1132,6 +1155,34 @@ const standardEasing = 'cubic-bezier(0.4, 0, 0.2, 1)';
|
|
|
1132
1155
|
const deceleratedEasing = 'cubic-bezier(0.0, 0, 0.2, 1)'; // Entering
|
|
1133
1156
|
const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)'; // Leaving
|
|
1134
1157
|
|
|
1158
|
+
// Utilities
|
|
1159
|
+
function getCurrentInstance(name, message) {
|
|
1160
|
+
const vm = getCurrentInstance$1();
|
|
1161
|
+
if (!vm) {
|
|
1162
|
+
throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);
|
|
1163
|
+
}
|
|
1164
|
+
return vm;
|
|
1165
|
+
}
|
|
1166
|
+
function getCurrentInstanceName() {
|
|
1167
|
+
let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';
|
|
1168
|
+
const vm = getCurrentInstance(name).type;
|
|
1169
|
+
return toKebabCase(vm?.aliasName || vm?.name);
|
|
1170
|
+
}
|
|
1171
|
+
let _uid = 0;
|
|
1172
|
+
let _map = new WeakMap();
|
|
1173
|
+
function getUid() {
|
|
1174
|
+
const vm = getCurrentInstance('getUid');
|
|
1175
|
+
if (_map.has(vm)) return _map.get(vm);else {
|
|
1176
|
+
const uid = _uid++;
|
|
1177
|
+
_map.set(vm, uid);
|
|
1178
|
+
return uid;
|
|
1179
|
+
}
|
|
1180
|
+
}
|
|
1181
|
+
getUid.reset = () => {
|
|
1182
|
+
_uid = 0;
|
|
1183
|
+
_map = new WeakMap();
|
|
1184
|
+
};
|
|
1185
|
+
|
|
1135
1186
|
function getScrollParent(el) {
|
|
1136
1187
|
while (el) {
|
|
1137
1188
|
if (hasScrollbar(el)) return el;
|
|
@@ -1155,6 +1206,16 @@ function hasScrollbar(el) {
|
|
|
1155
1206
|
return style.overflowY === 'scroll' || style.overflowY === 'auto' && el.scrollHeight > el.clientHeight;
|
|
1156
1207
|
}
|
|
1157
1208
|
|
|
1209
|
+
function injectSelf(key) {
|
|
1210
|
+
const {
|
|
1211
|
+
provides
|
|
1212
|
+
} = getCurrentInstance('injectSelf');
|
|
1213
|
+
if (provides && key in provides) {
|
|
1214
|
+
// TS doesn't allow symbol as index type
|
|
1215
|
+
return provides[key];
|
|
1216
|
+
}
|
|
1217
|
+
}
|
|
1218
|
+
|
|
1158
1219
|
function isFixedPosition(el) {
|
|
1159
1220
|
while (el) {
|
|
1160
1221
|
if (window.getComputedStyle(el).position === 'fixed') {
|
|
@@ -1935,7 +1996,11 @@ var en = {
|
|
|
1935
1996
|
item: 'Rating {0} of {1}'
|
|
1936
1997
|
}
|
|
1937
1998
|
},
|
|
1938
|
-
loading: 'Loading...'
|
|
1999
|
+
loading: 'Loading...',
|
|
2000
|
+
infiniteScroll: {
|
|
2001
|
+
loadMore: 'Load more',
|
|
2002
|
+
empty: 'No more'
|
|
2003
|
+
}
|
|
1939
2004
|
};
|
|
1940
2005
|
|
|
1941
2006
|
const LANG_PREFIX = '$vuetify.';
|
|
@@ -2133,6 +2198,7 @@ function useRtl() {
|
|
|
2133
2198
|
const VApp = genericComponent()({
|
|
2134
2199
|
name: 'VApp',
|
|
2135
2200
|
props: {
|
|
2201
|
+
...makeComponentProps(),
|
|
2136
2202
|
...makeLayoutProps({
|
|
2137
2203
|
fullHeight: true
|
|
2138
2204
|
}),
|
|
@@ -2155,8 +2221,8 @@ const VApp = genericComponent()({
|
|
|
2155
2221
|
} = useRtl();
|
|
2156
2222
|
useRender(() => createVNode("div", {
|
|
2157
2223
|
"ref": layoutRef,
|
|
2158
|
-
"class": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value],
|
|
2159
|
-
"style": layoutStyles.value
|
|
2224
|
+
"class": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value, props.class],
|
|
2225
|
+
"style": [layoutStyles.value, props.style]
|
|
2160
2226
|
}, [createVNode("div", {
|
|
2161
2227
|
"class": "v-application__wrap"
|
|
2162
2228
|
}, [slots.default?.()])]));
|
|
@@ -2581,6 +2647,7 @@ const VResponsive = genericComponent()({
|
|
|
2581
2647
|
props: {
|
|
2582
2648
|
aspectRatio: [String, Number],
|
|
2583
2649
|
contentClass: String,
|
|
2650
|
+
...makeComponentProps(),
|
|
2584
2651
|
...makeDimensionProps()
|
|
2585
2652
|
},
|
|
2586
2653
|
setup(props, _ref) {
|
|
@@ -2594,8 +2661,8 @@ const VResponsive = genericComponent()({
|
|
|
2594
2661
|
dimensionStyles
|
|
2595
2662
|
} = useDimension(props);
|
|
2596
2663
|
useRender(() => createVNode("div", {
|
|
2597
|
-
"class":
|
|
2598
|
-
"style": dimensionStyles.value
|
|
2664
|
+
"class": ['v-responsive', props.class],
|
|
2665
|
+
"style": [dimensionStyles.value, props.style]
|
|
2599
2666
|
}, [createVNode("div", {
|
|
2600
2667
|
"class": "v-responsive__sizer",
|
|
2601
2668
|
"style": aspectStyles.value
|
|
@@ -2713,6 +2780,7 @@ const VImg = genericComponent()({
|
|
|
2713
2780
|
},
|
|
2714
2781
|
srcset: String,
|
|
2715
2782
|
width: [String, Number],
|
|
2783
|
+
...makeComponentProps(),
|
|
2716
2784
|
...makeTransitionProps()
|
|
2717
2785
|
},
|
|
2718
2786
|
emits: {
|
|
@@ -2900,10 +2968,10 @@ const VImg = genericComponent()({
|
|
|
2900
2968
|
useRender(() => withDirectives(createVNode(VResponsive, {
|
|
2901
2969
|
"class": ['v-img', {
|
|
2902
2970
|
'v-img--booting': !isBooted.value
|
|
2903
|
-
}],
|
|
2904
|
-
"style": {
|
|
2971
|
+
}, props.class],
|
|
2972
|
+
"style": [{
|
|
2905
2973
|
width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width)
|
|
2906
|
-
},
|
|
2974
|
+
}, props.style],
|
|
2907
2975
|
"aspectRatio": aspectRatio.value,
|
|
2908
2976
|
"aria-label": props.alt,
|
|
2909
2977
|
"role": props.alt ? 'img' : undefined
|
|
@@ -2938,10 +3006,9 @@ const makeTagProps = propsFactory({
|
|
|
2938
3006
|
}
|
|
2939
3007
|
}, 'tag');
|
|
2940
3008
|
|
|
2941
|
-
// Types
|
|
2942
|
-
|
|
2943
3009
|
const makeVToolbarTitleProps = propsFactory({
|
|
2944
3010
|
text: String,
|
|
3011
|
+
...makeComponentProps(),
|
|
2945
3012
|
...makeTagProps()
|
|
2946
3013
|
}, 'v-toolbar-title');
|
|
2947
3014
|
const VToolbarTitle = genericComponent()({
|
|
@@ -2954,7 +3021,8 @@ const VToolbarTitle = genericComponent()({
|
|
|
2954
3021
|
useRender(() => {
|
|
2955
3022
|
const hasText = !!(slots.default || slots.text || props.text);
|
|
2956
3023
|
return createVNode(props.tag, {
|
|
2957
|
-
"class":
|
|
3024
|
+
"class": ['v-toolbar-title', props.class],
|
|
3025
|
+
"style": props.style
|
|
2958
3026
|
}, {
|
|
2959
3027
|
default: () => [hasText && createVNode("div", {
|
|
2960
3028
|
"class": "v-toolbar-title__placeholder"
|
|
@@ -3135,6 +3203,7 @@ const makeVToolbarProps = propsFactory({
|
|
|
3135
3203
|
image: String,
|
|
3136
3204
|
title: String,
|
|
3137
3205
|
...makeBorderProps(),
|
|
3206
|
+
...makeComponentProps(),
|
|
3138
3207
|
...makeElevationProps(),
|
|
3139
3208
|
...makeRoundedProps(),
|
|
3140
3209
|
...makeTagProps({
|
|
@@ -3185,8 +3254,8 @@ const VToolbar = genericComponent()({
|
|
|
3185
3254
|
'v-toolbar--flat': props.flat,
|
|
3186
3255
|
'v-toolbar--floating': props.floating,
|
|
3187
3256
|
[`v-toolbar--density-${props.density}`]: true
|
|
3188
|
-
}, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value],
|
|
3189
|
-
"style": [backgroundColorStyles.value]
|
|
3257
|
+
}, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
3258
|
+
"style": [backgroundColorStyles.value, props.style]
|
|
3190
3259
|
}, {
|
|
3191
3260
|
default: () => [hasImage && createVNode("div", {
|
|
3192
3261
|
"key": "image",
|
|
@@ -3253,6 +3322,98 @@ const VToolbar = genericComponent()({
|
|
|
3253
3322
|
|
|
3254
3323
|
// Utilities
|
|
3255
3324
|
|
|
3325
|
+
// Types
|
|
3326
|
+
|
|
3327
|
+
// Composables
|
|
3328
|
+
const makeScrollProps = propsFactory({
|
|
3329
|
+
scrollTarget: {
|
|
3330
|
+
type: String
|
|
3331
|
+
},
|
|
3332
|
+
scrollThreshold: {
|
|
3333
|
+
type: [String, Number]
|
|
3334
|
+
}
|
|
3335
|
+
}, 'scroll');
|
|
3336
|
+
function useScroll(props) {
|
|
3337
|
+
let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
3338
|
+
const {
|
|
3339
|
+
thresholdMetCallback,
|
|
3340
|
+
scrollThreshold,
|
|
3341
|
+
canScroll
|
|
3342
|
+
} = args;
|
|
3343
|
+
let previousScroll = 0;
|
|
3344
|
+
const target = ref(null);
|
|
3345
|
+
const currentScroll = ref(0);
|
|
3346
|
+
const savedScroll = ref(0);
|
|
3347
|
+
const currentThreshold = ref(0);
|
|
3348
|
+
const isScrollActive = ref(false);
|
|
3349
|
+
const isScrollingUp = ref(false);
|
|
3350
|
+
const computedScrollThreshold = computed(() => {
|
|
3351
|
+
return Number(props.scrollThreshold ?? scrollThreshold ?? 300);
|
|
3352
|
+
});
|
|
3353
|
+
const onScroll = () => {
|
|
3354
|
+
const targetEl = target.value;
|
|
3355
|
+
if (!targetEl || canScroll && !canScroll.value) return;
|
|
3356
|
+
previousScroll = currentScroll.value;
|
|
3357
|
+
currentScroll.value = 'window' in targetEl ? targetEl.pageYOffset : targetEl.scrollTop;
|
|
3358
|
+
isScrollingUp.value = currentScroll.value < previousScroll;
|
|
3359
|
+
currentThreshold.value = Math.abs(currentScroll.value - computedScrollThreshold.value);
|
|
3360
|
+
};
|
|
3361
|
+
watch(isScrollingUp, () => {
|
|
3362
|
+
savedScroll.value = savedScroll.value || currentScroll.value;
|
|
3363
|
+
});
|
|
3364
|
+
watch(isScrollActive, () => {
|
|
3365
|
+
savedScroll.value = 0;
|
|
3366
|
+
});
|
|
3367
|
+
onMounted(() => {
|
|
3368
|
+
watch(() => props.scrollTarget, scrollTarget => {
|
|
3369
|
+
const newTarget = scrollTarget ? document.querySelector(scrollTarget) : window;
|
|
3370
|
+
if (!newTarget) {
|
|
3371
|
+
consoleWarn(`Unable to locate element with identifier ${scrollTarget}`, getCurrentInstance$1());
|
|
3372
|
+
return;
|
|
3373
|
+
}
|
|
3374
|
+
if (newTarget === target.value) return;
|
|
3375
|
+
target.value?.removeEventListener('scroll', onScroll);
|
|
3376
|
+
target.value = newTarget;
|
|
3377
|
+
target.value.addEventListener('scroll', onScroll, {
|
|
3378
|
+
passive: true
|
|
3379
|
+
});
|
|
3380
|
+
}, {
|
|
3381
|
+
immediate: true
|
|
3382
|
+
});
|
|
3383
|
+
});
|
|
3384
|
+
onBeforeUnmount(() => {
|
|
3385
|
+
target.value?.removeEventListener('scroll', onScroll);
|
|
3386
|
+
});
|
|
3387
|
+
thresholdMetCallback && watch(() => Math.abs(currentScroll.value - savedScroll.value) > computedScrollThreshold.value, thresholdMet => {
|
|
3388
|
+
thresholdMet && thresholdMetCallback({
|
|
3389
|
+
currentThreshold: currentThreshold.value,
|
|
3390
|
+
isScrollingUp: isScrollingUp.value,
|
|
3391
|
+
savedScroll
|
|
3392
|
+
});
|
|
3393
|
+
}, {
|
|
3394
|
+
immediate: true
|
|
3395
|
+
});
|
|
3396
|
+
|
|
3397
|
+
// Do we need this? If yes - seems that
|
|
3398
|
+
// there's no need to expose onScroll
|
|
3399
|
+
canScroll && watch(canScroll, onScroll, {
|
|
3400
|
+
immediate: true
|
|
3401
|
+
});
|
|
3402
|
+
return {
|
|
3403
|
+
computedScrollThreshold,
|
|
3404
|
+
currentScroll,
|
|
3405
|
+
currentThreshold,
|
|
3406
|
+
isScrollActive,
|
|
3407
|
+
// required only for testing
|
|
3408
|
+
// probably can be removed
|
|
3409
|
+
// later (2 chars chlng)
|
|
3410
|
+
isScrollingUp,
|
|
3411
|
+
savedScroll
|
|
3412
|
+
};
|
|
3413
|
+
}
|
|
3414
|
+
|
|
3415
|
+
// Utilities
|
|
3416
|
+
|
|
3256
3417
|
// Composables
|
|
3257
3418
|
function useSsrBoot() {
|
|
3258
3419
|
const isBooted = ref(false);
|
|
@@ -3275,13 +3436,7 @@ function useSsrBoot() {
|
|
|
3275
3436
|
const VAppBar = genericComponent()({
|
|
3276
3437
|
name: 'VAppBar',
|
|
3277
3438
|
props: {
|
|
3278
|
-
|
|
3279
|
-
// hideOnScroll: Boolean
|
|
3280
|
-
// invertedScroll: Boolean
|
|
3281
|
-
// collapseOnScroll: Boolean
|
|
3282
|
-
// elevateOnScroll: Boolean
|
|
3283
|
-
// shrinkOnScroll: Boolean
|
|
3284
|
-
// fadeImageOnScroll: Boolean
|
|
3439
|
+
scrollBehavior: String,
|
|
3285
3440
|
modelValue: {
|
|
3286
3441
|
type: Boolean,
|
|
3287
3442
|
default: true
|
|
@@ -3293,6 +3448,7 @@ const VAppBar = genericComponent()({
|
|
|
3293
3448
|
},
|
|
3294
3449
|
...makeVToolbarProps(),
|
|
3295
3450
|
...makeLayoutItemProps(),
|
|
3451
|
+
...makeScrollProps(),
|
|
3296
3452
|
height: {
|
|
3297
3453
|
type: [Number, String],
|
|
3298
3454
|
default: 64
|
|
@@ -3307,11 +3463,63 @@ const VAppBar = genericComponent()({
|
|
|
3307
3463
|
} = _ref;
|
|
3308
3464
|
const vToolbarRef = ref();
|
|
3309
3465
|
const isActive = useProxiedModel(props, 'modelValue');
|
|
3466
|
+
const scrollBehavior = computed(() => {
|
|
3467
|
+
const behavior = new Set(props.scrollBehavior?.split(' ') ?? []);
|
|
3468
|
+
return {
|
|
3469
|
+
hide: behavior.has('hide'),
|
|
3470
|
+
// fullyHide: behavior.has('fully-hide'),
|
|
3471
|
+
inverted: behavior.has('inverted'),
|
|
3472
|
+
collapse: behavior.has('collapse'),
|
|
3473
|
+
elevate: behavior.has('elevate'),
|
|
3474
|
+
fadeImage: behavior.has('fade-image')
|
|
3475
|
+
// shrink: behavior.has('shrink'),
|
|
3476
|
+
};
|
|
3477
|
+
});
|
|
3478
|
+
|
|
3479
|
+
const canScroll = computed(() => {
|
|
3480
|
+
const behavior = scrollBehavior.value;
|
|
3481
|
+
return behavior.hide ||
|
|
3482
|
+
// behavior.fullyHide ||
|
|
3483
|
+
behavior.inverted || behavior.collapse || behavior.elevate || behavior.fadeImage ||
|
|
3484
|
+
// behavior.shrink ||
|
|
3485
|
+
!isActive.value;
|
|
3486
|
+
});
|
|
3487
|
+
const {
|
|
3488
|
+
currentScroll,
|
|
3489
|
+
currentThreshold,
|
|
3490
|
+
computedScrollThreshold,
|
|
3491
|
+
isScrollingUp
|
|
3492
|
+
} = useScroll(props, {
|
|
3493
|
+
canScroll
|
|
3494
|
+
});
|
|
3495
|
+
const isCollapsed = computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? currentScroll.value < 1 : currentScroll.value > 0));
|
|
3496
|
+
const isFlat = computed(() => props.flat || scrollBehavior.value.elevate && currentScroll.value === (scrollBehavior.value.inverted ? 1 : 0));
|
|
3497
|
+
const scrollRatio = computed(() => Math.min((currentThreshold.value - currentScroll.value) / currentThreshold.value || 1, 1));
|
|
3498
|
+
const opacity = computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
|
|
3310
3499
|
const height = computed(() => {
|
|
3500
|
+
if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0;
|
|
3311
3501
|
const height = vToolbarRef.value?.contentHeight ?? 0;
|
|
3312
3502
|
const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;
|
|
3313
3503
|
return height + extensionHeight;
|
|
3314
3504
|
});
|
|
3505
|
+
function setActive() {
|
|
3506
|
+
const val = currentScroll.value;
|
|
3507
|
+
if (scrollBehavior.value.hide) {
|
|
3508
|
+
if (scrollBehavior.value.inverted) {
|
|
3509
|
+
isActive.value = val > computedScrollThreshold.value;
|
|
3510
|
+
} else {
|
|
3511
|
+
isActive.value = isScrollingUp.value || val < computedScrollThreshold.value;
|
|
3512
|
+
}
|
|
3513
|
+
} else if (scrollBehavior.value.inverted) {
|
|
3514
|
+
isActive.value = currentScroll.value === 0;
|
|
3515
|
+
} else {
|
|
3516
|
+
isActive.value = true;
|
|
3517
|
+
}
|
|
3518
|
+
}
|
|
3519
|
+
watch(currentScroll, setActive, {
|
|
3520
|
+
immediate: true
|
|
3521
|
+
});
|
|
3522
|
+
watch(scrollBehavior, setActive);
|
|
3315
3523
|
const {
|
|
3316
3524
|
ssrBootStyles
|
|
3317
3525
|
} = useSsrBoot();
|
|
@@ -3322,7 +3530,7 @@ const VAppBar = genericComponent()({
|
|
|
3322
3530
|
order: computed(() => parseInt(props.order, 10)),
|
|
3323
3531
|
position: toRef(props, 'location'),
|
|
3324
3532
|
layoutSize: height,
|
|
3325
|
-
elementSize:
|
|
3533
|
+
elementSize: ref(undefined),
|
|
3326
3534
|
active: isActive,
|
|
3327
3535
|
absolute: toRef(props, 'absolute')
|
|
3328
3536
|
});
|
|
@@ -3332,13 +3540,17 @@ const VAppBar = genericComponent()({
|
|
|
3332
3540
|
"ref": vToolbarRef,
|
|
3333
3541
|
"class": ['v-app-bar', {
|
|
3334
3542
|
'v-app-bar--bottom': props.location === 'bottom'
|
|
3335
|
-
}],
|
|
3336
|
-
"style": {
|
|
3543
|
+
}, props.class],
|
|
3544
|
+
"style": [{
|
|
3337
3545
|
...layoutItemStyles.value,
|
|
3546
|
+
'--v-toolbar-image-opacity': opacity.value,
|
|
3338
3547
|
height: undefined,
|
|
3339
3548
|
...ssrBootStyles.value
|
|
3340
|
-
}
|
|
3341
|
-
}, toolbarProps
|
|
3549
|
+
}, props.style]
|
|
3550
|
+
}, toolbarProps, {
|
|
3551
|
+
"collapse": isCollapsed.value,
|
|
3552
|
+
"flat": isFlat.value
|
|
3553
|
+
}), slots);
|
|
3342
3554
|
});
|
|
3343
3555
|
return {};
|
|
3344
3556
|
}
|
|
@@ -3421,6 +3633,7 @@ function useVariant(props) {
|
|
|
3421
3633
|
const makeVBtnGroupProps = propsFactory({
|
|
3422
3634
|
divided: Boolean,
|
|
3423
3635
|
...makeBorderProps(),
|
|
3636
|
+
...makeComponentProps(),
|
|
3424
3637
|
...makeDensityProps(),
|
|
3425
3638
|
...makeElevationProps(),
|
|
3426
3639
|
...makeRoundedProps(),
|
|
@@ -3463,7 +3676,8 @@ const VBtnGroup = genericComponent()({
|
|
|
3463
3676
|
return createVNode(props.tag, {
|
|
3464
3677
|
"class": ['v-btn-group', {
|
|
3465
3678
|
'v-btn-group--divided': props.divided
|
|
3466
|
-
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value]
|
|
3679
|
+
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
3680
|
+
"style": props.style
|
|
3467
3681
|
}, slots);
|
|
3468
3682
|
});
|
|
3469
3683
|
}
|
|
@@ -3696,8 +3910,10 @@ const VBtnToggle = genericComponent()({
|
|
|
3696
3910
|
useRender(() => {
|
|
3697
3911
|
const [btnGroupProps] = VBtnGroup.filterProps(props);
|
|
3698
3912
|
return createVNode(VBtnGroup, mergeProps({
|
|
3699
|
-
"class":
|
|
3700
|
-
}, btnGroupProps
|
|
3913
|
+
"class": ['v-btn-toggle', props.class]
|
|
3914
|
+
}, btnGroupProps, {
|
|
3915
|
+
"style": props.style
|
|
3916
|
+
}), {
|
|
3701
3917
|
default: () => [slots.default?.({
|
|
3702
3918
|
isSelected,
|
|
3703
3919
|
next,
|
|
@@ -3768,7 +3984,7 @@ const mdi = {
|
|
|
3768
3984
|
|
|
3769
3985
|
// Types
|
|
3770
3986
|
|
|
3771
|
-
const IconValue = [String, Function, Object];
|
|
3987
|
+
const IconValue = [String, Function, Object, Array];
|
|
3772
3988
|
const IconSymbol = Symbol.for('vuetify:icons');
|
|
3773
3989
|
const makeIconProps = propsFactory({
|
|
3774
3990
|
icon: {
|
|
@@ -3788,8 +4004,9 @@ const VComponentIcon = genericComponent()({
|
|
|
3788
4004
|
slots
|
|
3789
4005
|
} = _ref;
|
|
3790
4006
|
return () => {
|
|
4007
|
+
const Icon = props.icon;
|
|
3791
4008
|
return createVNode(props.tag, null, {
|
|
3792
|
-
default: () => [props.icon ? createVNode(
|
|
4009
|
+
default: () => [props.icon ? createVNode(Icon, null, null) : slots.default?.()]
|
|
3793
4010
|
});
|
|
3794
4011
|
};
|
|
3795
4012
|
}
|
|
@@ -3812,7 +4029,12 @@ const VSvgIcon = defineComponent({
|
|
|
3812
4029
|
"viewBox": "0 0 24 24",
|
|
3813
4030
|
"role": "img",
|
|
3814
4031
|
"aria-hidden": "true"
|
|
3815
|
-
}, [createVNode("path", {
|
|
4032
|
+
}, [Array.isArray(props.icon) ? props.icon.map(path => Array.isArray(path) ? createVNode("path", {
|
|
4033
|
+
"d": path[0],
|
|
4034
|
+
"fill-opacity": path[1]
|
|
4035
|
+
}, null) : createVNode("path", {
|
|
4036
|
+
"d": path
|
|
4037
|
+
}, null)) : createVNode("path", {
|
|
3816
4038
|
"d": props.icon
|
|
3817
4039
|
}, null)])]
|
|
3818
4040
|
});
|
|
@@ -3877,7 +4099,12 @@ const useIcon = props => {
|
|
|
3877
4099
|
}
|
|
3878
4100
|
}
|
|
3879
4101
|
if (!icon) throw new Error(`Could not find aliased icon "${iconAlias}"`);
|
|
3880
|
-
if (
|
|
4102
|
+
if (Array.isArray(icon)) {
|
|
4103
|
+
return {
|
|
4104
|
+
component: VSvgIcon,
|
|
4105
|
+
icon
|
|
4106
|
+
};
|
|
4107
|
+
} else if (typeof icon !== 'string') {
|
|
3881
4108
|
return {
|
|
3882
4109
|
component: VComponentIcon,
|
|
3883
4110
|
icon
|
|
@@ -3934,6 +4161,7 @@ const makeVIconProps = propsFactory({
|
|
|
3934
4161
|
start: Boolean,
|
|
3935
4162
|
end: Boolean,
|
|
3936
4163
|
icon: IconValue,
|
|
4164
|
+
...makeComponentProps(),
|
|
3937
4165
|
...makeSizeProps(),
|
|
3938
4166
|
...makeTagProps({
|
|
3939
4167
|
tag: 'i'
|
|
@@ -3976,12 +4204,12 @@ const VIcon = genericComponent()({
|
|
|
3976
4204
|
'v-icon--clickable': !!attrs.onClick,
|
|
3977
4205
|
'v-icon--start': props.start,
|
|
3978
4206
|
'v-icon--end': props.end
|
|
3979
|
-
}],
|
|
4207
|
+
}, props.class],
|
|
3980
4208
|
"style": [!sizeClasses.value ? {
|
|
3981
4209
|
fontSize: convertToUnit(props.size),
|
|
3982
4210
|
height: convertToUnit(props.size),
|
|
3983
4211
|
width: convertToUnit(props.size)
|
|
3984
|
-
} : undefined, textColorStyles.value],
|
|
4212
|
+
} : undefined, textColorStyles.value, props.style],
|
|
3985
4213
|
"role": attrs.onClick ? 'button' : undefined,
|
|
3986
4214
|
"aria-hidden": !attrs.onClick
|
|
3987
4215
|
}, {
|
|
@@ -3992,14 +4220,14 @@ const VIcon = genericComponent()({
|
|
|
3992
4220
|
});
|
|
3993
4221
|
|
|
3994
4222
|
// Utilities
|
|
3995
|
-
function useIntersectionObserver(callback) {
|
|
4223
|
+
function useIntersectionObserver(callback, options) {
|
|
3996
4224
|
const intersectionRef = ref();
|
|
3997
4225
|
const isIntersecting = ref(false);
|
|
3998
4226
|
if (SUPPORTS_INTERSECTION) {
|
|
3999
4227
|
const observer = new IntersectionObserver(entries => {
|
|
4000
4228
|
callback?.(entries, observer);
|
|
4001
4229
|
isIntersecting.value = !!entries.find(entry => entry.isIntersecting);
|
|
4002
|
-
});
|
|
4230
|
+
}, options);
|
|
4003
4231
|
onBeforeUnmount(() => {
|
|
4004
4232
|
observer.disconnect();
|
|
4005
4233
|
});
|
|
@@ -4039,6 +4267,7 @@ const VProgressCircular = genericComponent()({
|
|
|
4039
4267
|
type: [Number, String],
|
|
4040
4268
|
default: 4
|
|
4041
4269
|
},
|
|
4270
|
+
...makeComponentProps(),
|
|
4042
4271
|
...makeSizeProps(),
|
|
4043
4272
|
...makeTagProps({
|
|
4044
4273
|
tag: 'div'
|
|
@@ -4094,8 +4323,8 @@ const VProgressCircular = genericComponent()({
|
|
|
4094
4323
|
'v-progress-circular--indeterminate': !!props.indeterminate,
|
|
4095
4324
|
'v-progress-circular--visible': isIntersecting.value,
|
|
4096
4325
|
'v-progress-circular--disable-shrink': props.indeterminate === 'disable-shrink'
|
|
4097
|
-
}, themeClasses.value, sizeClasses.value, textColorClasses.value],
|
|
4098
|
-
"style": [sizeStyles.value, textColorStyles.value],
|
|
4326
|
+
}, themeClasses.value, sizeClasses.value, textColorClasses.value, props.class],
|
|
4327
|
+
"style": [sizeStyles.value, textColorStyles.value, props.style],
|
|
4099
4328
|
"role": "progressbar",
|
|
4100
4329
|
"aria-valuemin": "0",
|
|
4101
4330
|
"aria-valuemax": "100",
|
|
@@ -4514,6 +4743,7 @@ const VProgressLinear = genericComponent()({
|
|
|
4514
4743
|
stream: Boolean,
|
|
4515
4744
|
striped: Boolean,
|
|
4516
4745
|
roundedBar: Boolean,
|
|
4746
|
+
...makeComponentProps(),
|
|
4517
4747
|
...makeLocationProps({
|
|
4518
4748
|
location: 'top'
|
|
4519
4749
|
}),
|
|
@@ -4585,14 +4815,14 @@ const VProgressLinear = genericComponent()({
|
|
|
4585
4815
|
'v-progress-linear--rounded': props.rounded,
|
|
4586
4816
|
'v-progress-linear--rounded-bar': props.roundedBar,
|
|
4587
4817
|
'v-progress-linear--striped': props.striped
|
|
4588
|
-
}, roundedClasses.value, themeClasses.value],
|
|
4589
|
-
"style": {
|
|
4818
|
+
}, roundedClasses.value, themeClasses.value, props.class],
|
|
4819
|
+
"style": [{
|
|
4590
4820
|
bottom: props.location === 'bottom' ? 0 : undefined,
|
|
4591
4821
|
top: props.location === 'top' ? 0 : undefined,
|
|
4592
4822
|
height: props.active ? convertToUnit(height.value) : 0,
|
|
4593
4823
|
'--v-progress-linear-height': convertToUnit(height.value),
|
|
4594
4824
|
...locationStyles.value
|
|
4595
|
-
},
|
|
4825
|
+
}, props.style],
|
|
4596
4826
|
"role": "progressbar",
|
|
4597
4827
|
"aria-hidden": props.active ? 'false' : 'true',
|
|
4598
4828
|
"aria-valuemin": "0",
|
|
@@ -4801,8 +5031,9 @@ const makeVBtnProps = propsFactory({
|
|
|
4801
5031
|
type: Boolean,
|
|
4802
5032
|
default: true
|
|
4803
5033
|
},
|
|
5034
|
+
text: String,
|
|
4804
5035
|
...makeBorderProps(),
|
|
4805
|
-
...
|
|
5036
|
+
...makeComponentProps(),
|
|
4806
5037
|
...makeDensityProps(),
|
|
4807
5038
|
...makeDimensionProps(),
|
|
4808
5039
|
...makeElevationProps(),
|
|
@@ -4810,6 +5041,7 @@ const makeVBtnProps = propsFactory({
|
|
|
4810
5041
|
...makeLoaderProps(),
|
|
4811
5042
|
...makeLocationProps(),
|
|
4812
5043
|
...makePositionProps(),
|
|
5044
|
+
...makeRoundedProps(),
|
|
4813
5045
|
...makeRouterProps(),
|
|
4814
5046
|
...makeSizeProps(),
|
|
4815
5047
|
...makeTagProps({
|
|
@@ -4907,8 +5139,8 @@ const VBtn = genericComponent()({
|
|
|
4907
5139
|
'v-btn--icon': !!props.icon,
|
|
4908
5140
|
'v-btn--loading': props.loading,
|
|
4909
5141
|
'v-btn--stacked': props.stacked
|
|
4910
|
-
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value],
|
|
4911
|
-
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value],
|
|
5142
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
|
5143
|
+
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],
|
|
4912
5144
|
"disabled": isDisabled.value || undefined,
|
|
4913
5145
|
"href": link.href.value,
|
|
4914
5146
|
"onClick": e => {
|
|
@@ -4946,7 +5178,9 @@ const VBtn = genericComponent()({
|
|
|
4946
5178
|
icon: props.icon
|
|
4947
5179
|
}
|
|
4948
5180
|
}
|
|
4949
|
-
},
|
|
5181
|
+
}, {
|
|
5182
|
+
default: () => [slots.default?.() ?? props.text]
|
|
5183
|
+
})]), !props.icon && hasAppend && createVNode("span", {
|
|
4950
5184
|
"key": "append",
|
|
4951
5185
|
"class": "v-btn__append"
|
|
4952
5186
|
}, [!slots.append ? createVNode(VIcon, {
|
|
@@ -4983,15 +5217,17 @@ const VAppBarNavIcon = genericComponent()({
|
|
|
4983
5217
|
icon: {
|
|
4984
5218
|
type: IconValue,
|
|
4985
5219
|
default: '$menu'
|
|
4986
|
-
}
|
|
5220
|
+
},
|
|
5221
|
+
...makeComponentProps()
|
|
4987
5222
|
},
|
|
4988
5223
|
setup(props, _ref) {
|
|
4989
5224
|
let {
|
|
4990
5225
|
slots
|
|
4991
5226
|
} = _ref;
|
|
4992
5227
|
useRender(() => createVNode(VBtn, {
|
|
4993
|
-
"class":
|
|
4994
|
-
"icon": props.icon
|
|
5228
|
+
"class": ['v-app-bar-nav-icon', props.class],
|
|
5229
|
+
"icon": props.icon,
|
|
5230
|
+
"style": props.style
|
|
4995
5231
|
}, slots));
|
|
4996
5232
|
return {};
|
|
4997
5233
|
}
|
|
@@ -4999,9 +5235,12 @@ const VAppBarNavIcon = genericComponent()({
|
|
|
4999
5235
|
|
|
5000
5236
|
const VToolbarItems = genericComponent()({
|
|
5001
5237
|
name: 'VToolbarItems',
|
|
5002
|
-
props:
|
|
5003
|
-
|
|
5004
|
-
|
|
5238
|
+
props: {
|
|
5239
|
+
...makeComponentProps(),
|
|
5240
|
+
...makeVariantProps({
|
|
5241
|
+
variant: 'text'
|
|
5242
|
+
})
|
|
5243
|
+
},
|
|
5005
5244
|
setup(props, _ref) {
|
|
5006
5245
|
let {
|
|
5007
5246
|
slots
|
|
@@ -5014,7 +5253,8 @@ const VToolbarItems = genericComponent()({
|
|
|
5014
5253
|
}
|
|
5015
5254
|
});
|
|
5016
5255
|
useRender(() => createVNode("div", {
|
|
5017
|
-
"class":
|
|
5256
|
+
"class": ['v-toolbar-items', props.class],
|
|
5257
|
+
"style": props.style
|
|
5018
5258
|
}, [slots.default?.()]));
|
|
5019
5259
|
return {};
|
|
5020
5260
|
}
|
|
@@ -5076,6 +5316,7 @@ const VAlert = genericComponent()({
|
|
|
5076
5316
|
type: String,
|
|
5077
5317
|
validator: val => allowedTypes.includes(val)
|
|
5078
5318
|
},
|
|
5319
|
+
...makeComponentProps(),
|
|
5079
5320
|
...makeDensityProps(),
|
|
5080
5321
|
...makeDimensionProps(),
|
|
5081
5322
|
...makeElevationProps(),
|
|
@@ -5158,8 +5399,8 @@ const VAlert = genericComponent()({
|
|
|
5158
5399
|
[`v-alert--border-${props.border === true ? 'start' : props.border}`]: true
|
|
5159
5400
|
}, {
|
|
5160
5401
|
'v-alert--prominent': props.prominent
|
|
5161
|
-
}, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value],
|
|
5162
|
-
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value],
|
|
5402
|
+
}, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
|
5403
|
+
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
|
|
5163
5404
|
"role": "alert"
|
|
5164
5405
|
}, {
|
|
5165
5406
|
default: () => [genOverlays(false, 'v-alert'), props.border && createVNode("div", {
|
|
@@ -5253,6 +5494,7 @@ const VLabel = genericComponent()({
|
|
|
5253
5494
|
props: {
|
|
5254
5495
|
text: String,
|
|
5255
5496
|
clickable: Boolean,
|
|
5497
|
+
...makeComponentProps(),
|
|
5256
5498
|
...makeThemeProps()
|
|
5257
5499
|
},
|
|
5258
5500
|
setup(props, _ref) {
|
|
@@ -5262,7 +5504,8 @@ const VLabel = genericComponent()({
|
|
|
5262
5504
|
useRender(() => createVNode("label", {
|
|
5263
5505
|
"class": ['v-label', {
|
|
5264
5506
|
'v-label--clickable': props.clickable
|
|
5265
|
-
}]
|
|
5507
|
+
}, props.class],
|
|
5508
|
+
"style": props.style
|
|
5266
5509
|
}, [props.text, slots.default?.()]));
|
|
5267
5510
|
return {};
|
|
5268
5511
|
}
|
|
@@ -5271,7 +5514,8 @@ const VLabel = genericComponent()({
|
|
|
5271
5514
|
const VFieldLabel = genericComponent()({
|
|
5272
5515
|
name: 'VFieldLabel',
|
|
5273
5516
|
props: {
|
|
5274
|
-
floating: Boolean
|
|
5517
|
+
floating: Boolean,
|
|
5518
|
+
...makeComponentProps()
|
|
5275
5519
|
},
|
|
5276
5520
|
setup(props, _ref) {
|
|
5277
5521
|
let {
|
|
@@ -5280,7 +5524,8 @@ const VFieldLabel = genericComponent()({
|
|
|
5280
5524
|
useRender(() => createVNode(VLabel, {
|
|
5281
5525
|
"class": ['v-field-label', {
|
|
5282
5526
|
'v-field-label--floating': props.floating
|
|
5283
|
-
}],
|
|
5527
|
+
}, props.class],
|
|
5528
|
+
"style": props.style,
|
|
5284
5529
|
"aria-hidden": props.floating || undefined
|
|
5285
5530
|
}, slots));
|
|
5286
5531
|
return {};
|
|
@@ -5320,7 +5565,7 @@ function useFocus(props) {
|
|
|
5320
5565
|
|
|
5321
5566
|
// Types
|
|
5322
5567
|
|
|
5323
|
-
const allowedVariants$1 = ['underlined', 'outlined', 'filled', 'solo', 'plain'];
|
|
5568
|
+
const allowedVariants$1 = ['underlined', 'outlined', 'filled', 'solo', 'solo-inverted', 'solo-filled', 'plain'];
|
|
5324
5569
|
const makeVFieldProps = propsFactory({
|
|
5325
5570
|
appendInnerIcon: IconValue,
|
|
5326
5571
|
bgColor: String,
|
|
@@ -5331,9 +5576,11 @@ const makeVFieldProps = propsFactory({
|
|
|
5331
5576
|
},
|
|
5332
5577
|
active: Boolean,
|
|
5333
5578
|
color: String,
|
|
5579
|
+
baseColor: String,
|
|
5334
5580
|
dirty: Boolean,
|
|
5335
5581
|
disabled: Boolean,
|
|
5336
5582
|
error: Boolean,
|
|
5583
|
+
flat: Boolean,
|
|
5337
5584
|
label: String,
|
|
5338
5585
|
persistentClear: Boolean,
|
|
5339
5586
|
prependInnerIcon: IconValue,
|
|
@@ -5347,8 +5594,10 @@ const makeVFieldProps = propsFactory({
|
|
|
5347
5594
|
'onClick:clear': EventProp(),
|
|
5348
5595
|
'onClick:appendInner': EventProp(),
|
|
5349
5596
|
'onClick:prependInner': EventProp(),
|
|
5350
|
-
...
|
|
5351
|
-
...makeLoaderProps()
|
|
5597
|
+
...makeComponentProps(),
|
|
5598
|
+
...makeLoaderProps(),
|
|
5599
|
+
...makeRoundedProps(),
|
|
5600
|
+
...makeThemeProps()
|
|
5352
5601
|
}, 'v-field');
|
|
5353
5602
|
const VField = genericComponent()({
|
|
5354
5603
|
name: 'VField',
|
|
@@ -5383,7 +5632,10 @@ const VField = genericComponent()({
|
|
|
5383
5632
|
const {
|
|
5384
5633
|
InputIcon
|
|
5385
5634
|
} = useInputIcon(props);
|
|
5386
|
-
const
|
|
5635
|
+
const {
|
|
5636
|
+
roundedClasses
|
|
5637
|
+
} = useRounded(props);
|
|
5638
|
+
const isActive = computed(() => props.dirty || props.active);
|
|
5387
5639
|
const hasLabel = computed(() => !props.singleLine && !!(props.label || slots.label));
|
|
5388
5640
|
const uid = getUid();
|
|
5389
5641
|
const id = computed(() => props.id || `input-${uid}`);
|
|
@@ -5399,7 +5651,7 @@ const VField = genericComponent()({
|
|
|
5399
5651
|
textColorClasses,
|
|
5400
5652
|
textColorStyles
|
|
5401
5653
|
} = useTextColor(computed(() => {
|
|
5402
|
-
return
|
|
5654
|
+
return props.error || props.disabled ? undefined : isActive.value && isFocused.value ? props.color : props.baseColor;
|
|
5403
5655
|
}));
|
|
5404
5656
|
watch(isActive, val => {
|
|
5405
5657
|
if (hasLabel.value) {
|
|
@@ -5468,6 +5720,7 @@ const VField = genericComponent()({
|
|
|
5468
5720
|
'v-field--disabled': props.disabled,
|
|
5469
5721
|
'v-field--dirty': props.dirty,
|
|
5470
5722
|
'v-field--error': props.error,
|
|
5723
|
+
'v-field--flat': props.flat,
|
|
5471
5724
|
'v-field--has-background': !!props.bgColor,
|
|
5472
5725
|
'v-field--persistent-clear': props.persistentClear,
|
|
5473
5726
|
'v-field--prepended': hasPrepend,
|
|
@@ -5475,8 +5728,8 @@ const VField = genericComponent()({
|
|
|
5475
5728
|
'v-field--single-line': props.singleLine,
|
|
5476
5729
|
'v-field--no-label': !label,
|
|
5477
5730
|
[`v-field--variant-${props.variant}`]: true
|
|
5478
|
-
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value],
|
|
5479
|
-
"style": [backgroundColorStyles.value, textColorStyles.value],
|
|
5731
|
+
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, props.class],
|
|
5732
|
+
"style": [backgroundColorStyles.value, textColorStyles.value, props.style],
|
|
5480
5733
|
"onClick": onClick
|
|
5481
5734
|
}, attrs), [createVNode("div", {
|
|
5482
5735
|
"class": "v-field__overlay"
|
|
@@ -5495,7 +5748,7 @@ const VField = genericComponent()({
|
|
|
5495
5748
|
}, null), slots['prepend-inner']?.(slotProps.value)]), createVNode("div", {
|
|
5496
5749
|
"class": "v-field__field",
|
|
5497
5750
|
"data-no-activator": ""
|
|
5498
|
-
}, [['solo', 'filled'].includes(props.variant) && hasLabel.value && createVNode(VFieldLabel, {
|
|
5751
|
+
}, [['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasLabel.value && createVNode(VFieldLabel, {
|
|
5499
5752
|
"key": "floating-label",
|
|
5500
5753
|
"ref": floatingLabelRef,
|
|
5501
5754
|
"class": [textColorClasses.value],
|
|
@@ -5564,7 +5817,7 @@ const VField = genericComponent()({
|
|
|
5564
5817
|
});
|
|
5565
5818
|
// TODO: this is kinda slow, might be better to implicitly inherit props instead
|
|
5566
5819
|
function filterFieldProps(attrs) {
|
|
5567
|
-
const keys = Object.keys(VField.props).filter(k => !isOn(k));
|
|
5820
|
+
const keys = Object.keys(VField.props).filter(k => !isOn(k) && k !== 'class' && k !== 'style');
|
|
5568
5821
|
return pick(attrs, keys);
|
|
5569
5822
|
}
|
|
5570
5823
|
|
|
@@ -5579,6 +5832,7 @@ const VMessages = genericComponent()({
|
|
|
5579
5832
|
type: [Array, String],
|
|
5580
5833
|
default: () => []
|
|
5581
5834
|
},
|
|
5835
|
+
...makeComponentProps(),
|
|
5582
5836
|
...makeTransitionProps({
|
|
5583
5837
|
transition: {
|
|
5584
5838
|
component: VSlideYTransition,
|
|
@@ -5599,8 +5853,8 @@ const VMessages = genericComponent()({
|
|
|
5599
5853
|
useRender(() => createVNode(MaybeTransition, {
|
|
5600
5854
|
"transition": props.transition,
|
|
5601
5855
|
"tag": "div",
|
|
5602
|
-
"class": ['v-messages', textColorClasses.value],
|
|
5603
|
-
"style": textColorStyles.value,
|
|
5856
|
+
"class": ['v-messages', textColorClasses.value, props.class],
|
|
5857
|
+
"style": [textColorStyles.value, props.style],
|
|
5604
5858
|
"role": "alert",
|
|
5605
5859
|
"aria-live": "polite"
|
|
5606
5860
|
}, {
|
|
@@ -5896,6 +6150,7 @@ const makeVInputProps = propsFactory({
|
|
|
5896
6150
|
},
|
|
5897
6151
|
'onClick:prepend': EventProp(),
|
|
5898
6152
|
'onClick:append': EventProp(),
|
|
6153
|
+
...makeComponentProps(),
|
|
5899
6154
|
...makeDensityProps(),
|
|
5900
6155
|
...makeValidationProps()
|
|
5901
6156
|
}, 'v-input');
|
|
@@ -5963,7 +6218,8 @@ const VInput = genericComponent()({
|
|
|
5963
6218
|
const hasMessages = messages.value.length > 0;
|
|
5964
6219
|
const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);
|
|
5965
6220
|
return createVNode("div", {
|
|
5966
|
-
"class": ['v-input', `v-input--${props.direction}`, densityClasses.value, validationClasses.value]
|
|
6221
|
+
"class": ['v-input', `v-input--${props.direction}`, densityClasses.value, validationClasses.value, props.class],
|
|
6222
|
+
"style": props.style
|
|
5967
6223
|
}, [hasPrepend && createVNode("div", {
|
|
5968
6224
|
"key": "prepend",
|
|
5969
6225
|
"class": "v-input__prepend"
|
|
@@ -6006,6 +6262,7 @@ const VCounter = genericComponent()({
|
|
|
6006
6262
|
type: [Number, String],
|
|
6007
6263
|
default: 0
|
|
6008
6264
|
},
|
|
6265
|
+
...makeComponentProps(),
|
|
6009
6266
|
...makeTransitionProps({
|
|
6010
6267
|
transition: {
|
|
6011
6268
|
component: VSlideYTransition
|
|
@@ -6023,7 +6280,8 @@ const VCounter = genericComponent()({
|
|
|
6023
6280
|
"transition": props.transition
|
|
6024
6281
|
}, {
|
|
6025
6282
|
default: () => [withDirectives(createVNode("div", {
|
|
6026
|
-
"class":
|
|
6283
|
+
"class": ['v-counter', props.class],
|
|
6284
|
+
"style": props.style
|
|
6027
6285
|
}, [slots.default ? slots.default({
|
|
6028
6286
|
counter: counter.value,
|
|
6029
6287
|
max: props.max,
|
|
@@ -6226,7 +6484,8 @@ const VTextField = genericComponent()({
|
|
|
6226
6484
|
'v-text-field--prefixed': props.prefix,
|
|
6227
6485
|
'v-text-field--suffixed': props.suffix,
|
|
6228
6486
|
'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant)
|
|
6229
|
-
}]
|
|
6487
|
+
}, props.class],
|
|
6488
|
+
"style": props.style
|
|
6230
6489
|
}, rootAttrs, inputProps, {
|
|
6231
6490
|
"focused": isFocused.value
|
|
6232
6491
|
}), {
|
|
@@ -6342,6 +6601,7 @@ const VSelectionControlGroup = genericComponent()({
|
|
|
6342
6601
|
type: String,
|
|
6343
6602
|
default: 'VSelectionControl'
|
|
6344
6603
|
},
|
|
6604
|
+
...makeComponentProps(),
|
|
6345
6605
|
...makeSelectionControlGroupProps()
|
|
6346
6606
|
},
|
|
6347
6607
|
emits: {
|
|
@@ -6389,7 +6649,8 @@ const VSelectionControlGroup = genericComponent()({
|
|
|
6389
6649
|
useRender(() => createVNode("div", {
|
|
6390
6650
|
"class": ['v-selection-control-group', {
|
|
6391
6651
|
'v-selection-control-group--inline': props.inline
|
|
6392
|
-
}],
|
|
6652
|
+
}, props.class],
|
|
6653
|
+
"style": props.style,
|
|
6393
6654
|
"role": props.type === 'radio' ? 'radiogroup' : undefined
|
|
6394
6655
|
}, [slots.default?.()]));
|
|
6395
6656
|
return {};
|
|
@@ -6403,6 +6664,7 @@ const makeSelectionControlProps = propsFactory({
|
|
|
6403
6664
|
trueValue: null,
|
|
6404
6665
|
falseValue: null,
|
|
6405
6666
|
value: null,
|
|
6667
|
+
...makeComponentProps(),
|
|
6406
6668
|
...makeSelectionControlGroupProps()
|
|
6407
6669
|
}, 'v-selection-control');
|
|
6408
6670
|
function useSelectionControl(props) {
|
|
@@ -6517,8 +6779,10 @@ const VSelectionControl = genericComponent()({
|
|
|
6517
6779
|
'v-selection-control--focused': isFocused.value,
|
|
6518
6780
|
'v-selection-control--focus-visible': isFocusVisible.value,
|
|
6519
6781
|
'v-selection-control--inline': props.inline
|
|
6520
|
-
}, densityClasses.value]
|
|
6521
|
-
}, rootAttrs
|
|
6782
|
+
}, densityClasses.value, props.class]
|
|
6783
|
+
}, rootAttrs, {
|
|
6784
|
+
"style": props.style
|
|
6785
|
+
}), [createVNode("div", {
|
|
6522
6786
|
"class": ['v-selection-control__wrapper', textColorClasses.value],
|
|
6523
6787
|
"style": textColorStyles.value
|
|
6524
6788
|
}, [slots.default?.(), withDirectives(createVNode("div", {
|
|
@@ -6600,7 +6864,8 @@ const VCheckboxBtn = genericComponent()({
|
|
|
6600
6864
|
useRender(() => createVNode(VSelectionControl, mergeProps(props, {
|
|
6601
6865
|
"modelValue": model.value,
|
|
6602
6866
|
"onUpdate:modelValue": [$event => model.value = $event, onChange],
|
|
6603
|
-
"class":
|
|
6867
|
+
"class": ['v-checkbox-btn', props.class],
|
|
6868
|
+
"style": props.style,
|
|
6604
6869
|
"type": "checkbox",
|
|
6605
6870
|
"inline": true,
|
|
6606
6871
|
"falseIcon": falseIcon.value,
|
|
@@ -6640,10 +6905,11 @@ const VCheckbox = genericComponent()({
|
|
|
6640
6905
|
const [inputProps, _1] = VInput.filterProps(props);
|
|
6641
6906
|
const [checkboxProps, _2] = VCheckboxBtn.filterProps(props);
|
|
6642
6907
|
return createVNode(VInput, mergeProps({
|
|
6643
|
-
"class":
|
|
6908
|
+
"class": ['v-checkbox', props.class]
|
|
6644
6909
|
}, inputAttrs, inputProps, {
|
|
6645
6910
|
"id": id.value,
|
|
6646
|
-
"focused": isFocused.value
|
|
6911
|
+
"focused": isFocused.value,
|
|
6912
|
+
"style": props.style
|
|
6647
6913
|
}), {
|
|
6648
6914
|
...slots,
|
|
6649
6915
|
default: _ref2 => {
|
|
@@ -6674,6 +6940,7 @@ const makeVAvatarProps = propsFactory({
|
|
|
6674
6940
|
end: Boolean,
|
|
6675
6941
|
icon: IconValue,
|
|
6676
6942
|
image: String,
|
|
6943
|
+
...makeComponentProps(),
|
|
6677
6944
|
...makeDensityProps(),
|
|
6678
6945
|
...makeRoundedProps(),
|
|
6679
6946
|
...makeSizeProps(),
|
|
@@ -6712,8 +6979,8 @@ const VAvatar = genericComponent()({
|
|
|
6712
6979
|
"class": ['v-avatar', {
|
|
6713
6980
|
'v-avatar--start': props.start,
|
|
6714
6981
|
'v-avatar--end': props.end
|
|
6715
|
-
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value],
|
|
6716
|
-
"style": [colorStyles.value, sizeStyles.value]
|
|
6982
|
+
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
|
6983
|
+
"style": [colorStyles.value, sizeStyles.value, props.style]
|
|
6717
6984
|
}, {
|
|
6718
6985
|
default: () => [props.image ? createVNode(VImg, {
|
|
6719
6986
|
"key": "image",
|
|
@@ -6741,6 +7008,7 @@ const VChipGroup = genericComponent()({
|
|
|
6741
7008
|
type: Function,
|
|
6742
7009
|
default: deepEqual
|
|
6743
7010
|
},
|
|
7011
|
+
...makeComponentProps(),
|
|
6744
7012
|
...makeGroupProps({
|
|
6745
7013
|
selectedClass: 'v-chip--selected'
|
|
6746
7014
|
}),
|
|
@@ -6778,7 +7046,8 @@ const VChipGroup = genericComponent()({
|
|
|
6778
7046
|
useRender(() => createVNode(props.tag, {
|
|
6779
7047
|
"class": ['v-chip-group', {
|
|
6780
7048
|
'v-chip-group--column': props.column
|
|
6781
|
-
}, themeClasses.value]
|
|
7049
|
+
}, themeClasses.value, props.class],
|
|
7050
|
+
"style": props.style
|
|
6782
7051
|
}, {
|
|
6783
7052
|
default: () => [slots.default?.({
|
|
6784
7053
|
isSelected,
|
|
@@ -6792,8 +7061,6 @@ const VChipGroup = genericComponent()({
|
|
|
6792
7061
|
}
|
|
6793
7062
|
});
|
|
6794
7063
|
|
|
6795
|
-
// Types
|
|
6796
|
-
|
|
6797
7064
|
const VChip = genericComponent()({
|
|
6798
7065
|
name: 'VChip',
|
|
6799
7066
|
directives: {
|
|
@@ -6838,6 +7105,7 @@ const VChip = genericComponent()({
|
|
|
6838
7105
|
onClick: EventProp(),
|
|
6839
7106
|
onClickOnce: EventProp(),
|
|
6840
7107
|
...makeBorderProps(),
|
|
7108
|
+
...makeComponentProps(),
|
|
6841
7109
|
...makeDensityProps(),
|
|
6842
7110
|
...makeElevationProps(),
|
|
6843
7111
|
...makeGroupItemProps(),
|
|
@@ -6930,8 +7198,8 @@ const VChip = genericComponent()({
|
|
|
6930
7198
|
'v-chip--link': isClickable.value,
|
|
6931
7199
|
'v-chip--filter': hasFilter,
|
|
6932
7200
|
'v-chip--pill': props.pill
|
|
6933
|
-
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value],
|
|
6934
|
-
"style": [hasColor ? colorStyles.value : undefined],
|
|
7201
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value, props.class],
|
|
7202
|
+
"style": [hasColor ? colorStyles.value : undefined, props.style],
|
|
6935
7203
|
"disabled": props.disabled || undefined,
|
|
6936
7204
|
"draggable": props.draggable,
|
|
6937
7205
|
"href": link.href.value,
|
|
@@ -7040,6 +7308,7 @@ const VDivider = genericComponent()({
|
|
|
7040
7308
|
length: [Number, String],
|
|
7041
7309
|
thickness: [Number, String],
|
|
7042
7310
|
vertical: Boolean,
|
|
7311
|
+
...makeComponentProps(),
|
|
7043
7312
|
...makeThemeProps()
|
|
7044
7313
|
},
|
|
7045
7314
|
setup(props, _ref) {
|
|
@@ -7068,8 +7337,8 @@ const VDivider = genericComponent()({
|
|
|
7068
7337
|
'v-divider': true,
|
|
7069
7338
|
'v-divider--inset': props.inset,
|
|
7070
7339
|
'v-divider--vertical': props.vertical
|
|
7071
|
-
}, themeClasses.value, textColorClasses.value],
|
|
7072
|
-
"style": [dividerStyles.value, textColorStyles.value],
|
|
7340
|
+
}, themeClasses.value, textColorClasses.value, props.class],
|
|
7341
|
+
"style": [dividerStyles.value, textColorStyles.value, props.style],
|
|
7073
7342
|
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
|
7074
7343
|
"role": `${attrs.role || 'separator'}`
|
|
7075
7344
|
}, null));
|
|
@@ -7568,6 +7837,7 @@ const makeVListGroupProps = propsFactory({
|
|
|
7568
7837
|
fluid: Boolean,
|
|
7569
7838
|
subgroup: Boolean,
|
|
7570
7839
|
value: null,
|
|
7840
|
+
...makeComponentProps(),
|
|
7571
7841
|
...makeTagProps()
|
|
7572
7842
|
}, 'v-list-group');
|
|
7573
7843
|
const VListGroup = genericComponent()({
|
|
@@ -7616,7 +7886,8 @@ const VListGroup = genericComponent()({
|
|
|
7616
7886
|
'v-list-group--fluid': props.fluid,
|
|
7617
7887
|
'v-list-group--subgroup': props.subgroup,
|
|
7618
7888
|
'v-list-group--open': isOpen.value
|
|
7619
|
-
}]
|
|
7889
|
+
}, props.class],
|
|
7890
|
+
"style": props.style
|
|
7620
7891
|
}, {
|
|
7621
7892
|
default: () => [slots.activator && createVNode(VDefaultsProvider, {
|
|
7622
7893
|
"defaults": activatorDefaults.value
|
|
@@ -7683,6 +7954,7 @@ const VListItem = genericComponent()({
|
|
|
7683
7954
|
onClick: EventProp(),
|
|
7684
7955
|
onClickOnce: EventProp(),
|
|
7685
7956
|
...makeBorderProps(),
|
|
7957
|
+
...makeComponentProps(),
|
|
7686
7958
|
...makeDensityProps(),
|
|
7687
7959
|
...makeDimensionProps(),
|
|
7688
7960
|
...makeElevationProps(),
|
|
@@ -7793,8 +8065,8 @@ const VListItem = genericComponent()({
|
|
|
7793
8065
|
'v-list-item--nav': props.nav,
|
|
7794
8066
|
'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,
|
|
7795
8067
|
[`${props.activeClass}`]: props.activeClass && isActive.value
|
|
7796
|
-
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value],
|
|
7797
|
-
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value],
|
|
8068
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
|
8069
|
+
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, props.style],
|
|
7798
8070
|
"href": link.href.value,
|
|
7799
8071
|
"tabindex": isClickable.value ? 0 : undefined,
|
|
7800
8072
|
"onClick": onClick,
|
|
@@ -7887,6 +8159,7 @@ const VListSubheader = genericComponent()({
|
|
|
7887
8159
|
inset: Boolean,
|
|
7888
8160
|
sticky: Boolean,
|
|
7889
8161
|
title: String,
|
|
8162
|
+
...makeComponentProps(),
|
|
7890
8163
|
...makeTagProps()
|
|
7891
8164
|
},
|
|
7892
8165
|
setup(props, _ref) {
|
|
@@ -7903,10 +8176,10 @@ const VListSubheader = genericComponent()({
|
|
|
7903
8176
|
"class": ['v-list-subheader', {
|
|
7904
8177
|
'v-list-subheader--inset': props.inset,
|
|
7905
8178
|
'v-list-subheader--sticky': props.sticky
|
|
7906
|
-
}, textColorClasses.value],
|
|
7907
|
-
"style": {
|
|
8179
|
+
}, textColorClasses.value, props.class],
|
|
8180
|
+
"style": [{
|
|
7908
8181
|
textColorStyles
|
|
7909
|
-
}
|
|
8182
|
+
}, props.style]
|
|
7910
8183
|
}, {
|
|
7911
8184
|
default: () => [hasText && createVNode("div", {
|
|
7912
8185
|
"class": "v-list-subheader__text"
|
|
@@ -8126,6 +8399,7 @@ const VList = genericComponent()({
|
|
|
8126
8399
|
openStrategy: 'list'
|
|
8127
8400
|
}),
|
|
8128
8401
|
...makeBorderProps(),
|
|
8402
|
+
...makeComponentProps(),
|
|
8129
8403
|
...makeDensityProps(),
|
|
8130
8404
|
...makeDimensionProps(),
|
|
8131
8405
|
...makeElevationProps(),
|
|
@@ -8227,27 +8501,8 @@ const VList = genericComponent()({
|
|
|
8227
8501
|
e.preventDefault();
|
|
8228
8502
|
}
|
|
8229
8503
|
function focus(location) {
|
|
8230
|
-
if (
|
|
8231
|
-
|
|
8232
|
-
const focusable = [...contentRef.value.querySelectorAll(targets)].filter(el => !el.hasAttribute('disabled'));
|
|
8233
|
-
const idx = focusable.indexOf(document.activeElement);
|
|
8234
|
-
if (!location) {
|
|
8235
|
-
if (!contentRef.value.contains(document.activeElement)) {
|
|
8236
|
-
focusable[0]?.focus();
|
|
8237
|
-
}
|
|
8238
|
-
} else if (location === 'first') {
|
|
8239
|
-
focusable[0]?.focus();
|
|
8240
|
-
} else if (location === 'last') {
|
|
8241
|
-
focusable.at(-1)?.focus();
|
|
8242
|
-
} else {
|
|
8243
|
-
let el;
|
|
8244
|
-
let idxx = idx;
|
|
8245
|
-
const inc = location === 'next' ? 1 : -1;
|
|
8246
|
-
do {
|
|
8247
|
-
idxx += inc;
|
|
8248
|
-
el = focusable[idxx];
|
|
8249
|
-
} while ((!el || el.offsetParent == null) && idxx < focusable.length && idxx >= 0);
|
|
8250
|
-
if (el) el.focus();else focus(location === 'next' ? 'first' : 'last');
|
|
8504
|
+
if (contentRef.value) {
|
|
8505
|
+
return focusChild(contentRef.value, location);
|
|
8251
8506
|
}
|
|
8252
8507
|
}
|
|
8253
8508
|
useRender(() => {
|
|
@@ -8256,8 +8511,8 @@ const VList = genericComponent()({
|
|
|
8256
8511
|
"class": ['v-list', {
|
|
8257
8512
|
'v-list--disabled': props.disabled,
|
|
8258
8513
|
'v-list--nav': props.nav
|
|
8259
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value],
|
|
8260
|
-
"style": [backgroundColorStyles.value, dimensionStyles.value],
|
|
8514
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class],
|
|
8515
|
+
"style": [backgroundColorStyles.value, dimensionStyles.value, props.style],
|
|
8261
8516
|
"role": "listbox",
|
|
8262
8517
|
"aria-activedescendant": undefined,
|
|
8263
8518
|
"onFocusin": onFocusin,
|
|
@@ -8285,6 +8540,7 @@ const VListItemAction = genericComponent()({
|
|
|
8285
8540
|
props: {
|
|
8286
8541
|
start: Boolean,
|
|
8287
8542
|
end: Boolean,
|
|
8543
|
+
...makeComponentProps(),
|
|
8288
8544
|
...makeTagProps()
|
|
8289
8545
|
},
|
|
8290
8546
|
setup(props, _ref) {
|
|
@@ -8295,7 +8551,8 @@ const VListItemAction = genericComponent()({
|
|
|
8295
8551
|
"class": ['v-list-item-action', {
|
|
8296
8552
|
'v-list-item-action--start': props.start,
|
|
8297
8553
|
'v-list-item-action--end': props.end
|
|
8298
|
-
}]
|
|
8554
|
+
}, props.class],
|
|
8555
|
+
"style": props.style
|
|
8299
8556
|
}, slots));
|
|
8300
8557
|
return {};
|
|
8301
8558
|
}
|
|
@@ -8306,6 +8563,7 @@ const VListItemMedia = genericComponent()({
|
|
|
8306
8563
|
props: {
|
|
8307
8564
|
start: Boolean,
|
|
8308
8565
|
end: Boolean,
|
|
8566
|
+
...makeComponentProps(),
|
|
8309
8567
|
...makeTagProps()
|
|
8310
8568
|
},
|
|
8311
8569
|
setup(props, _ref) {
|
|
@@ -8317,7 +8575,8 @@ const VListItemMedia = genericComponent()({
|
|
|
8317
8575
|
"class": ['v-list-item-media', {
|
|
8318
8576
|
'v-list-item-media--start': props.start,
|
|
8319
8577
|
'v-list-item-media--end': props.end
|
|
8320
|
-
}]
|
|
8578
|
+
}, props.class],
|
|
8579
|
+
"style": props.style
|
|
8321
8580
|
}, slots);
|
|
8322
8581
|
});
|
|
8323
8582
|
return {};
|
|
@@ -9558,6 +9817,7 @@ const makeVOverlayProps = propsFactory({
|
|
|
9558
9817
|
default: 2000
|
|
9559
9818
|
},
|
|
9560
9819
|
...makeActivatorProps(),
|
|
9820
|
+
...makeComponentProps(),
|
|
9561
9821
|
...makeDimensionProps(),
|
|
9562
9822
|
...makeLazyProps(),
|
|
9563
9823
|
...makeLocationStrategyProps(),
|
|
@@ -9725,10 +9985,10 @@ const VOverlay = genericComponent()({
|
|
|
9725
9985
|
'v-overlay--absolute': props.absolute || props.contained,
|
|
9726
9986
|
'v-overlay--active': isActive.value,
|
|
9727
9987
|
'v-overlay--contained': props.contained
|
|
9728
|
-
}, themeClasses.value, rtlClasses.value],
|
|
9988
|
+
}, themeClasses.value, rtlClasses.value, props.class],
|
|
9729
9989
|
"style": [stackStyles.value, {
|
|
9730
9990
|
top: convertToUnit(top.value)
|
|
9731
|
-
}],
|
|
9991
|
+
}, props.style],
|
|
9732
9992
|
"ref": root
|
|
9733
9993
|
}, scopeId, attrs), [createVNode(Scrim, mergeProps({
|
|
9734
9994
|
"color": scrimColor,
|
|
@@ -9834,7 +10094,8 @@ const VMenu = genericComponent()({
|
|
|
9834
10094
|
const [overlayProps] = VOverlay.filterProps(props);
|
|
9835
10095
|
return createVNode(VOverlay, mergeProps({
|
|
9836
10096
|
"ref": overlay,
|
|
9837
|
-
"class": ['v-menu']
|
|
10097
|
+
"class": ['v-menu', props.class],
|
|
10098
|
+
"style": props.style
|
|
9838
10099
|
}, overlayProps, {
|
|
9839
10100
|
"modelValue": isActive.value,
|
|
9840
10101
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
@@ -10053,7 +10314,8 @@ const VSelect = genericComponent()({
|
|
|
10053
10314
|
'v-select--chips': !!props.chips,
|
|
10054
10315
|
[`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,
|
|
10055
10316
|
'v-select--selected': model.value.length
|
|
10056
|
-
}],
|
|
10317
|
+
}, props.class],
|
|
10318
|
+
"style": props.style,
|
|
10057
10319
|
"appendInnerIcon": props.menuIcon,
|
|
10058
10320
|
"readonly": true,
|
|
10059
10321
|
"placeholder": placeholder,
|
|
@@ -10496,7 +10758,8 @@ const VAutocomplete = genericComponent()({
|
|
|
10496
10758
|
'v-autocomplete--selecting-index': selectionIndex.value > -1,
|
|
10497
10759
|
[`v-autocomplete--${props.multiple ? 'multiple' : 'single'}`]: true,
|
|
10498
10760
|
'v-autocomplete--selection-slot': !!slots.selection
|
|
10499
|
-
}],
|
|
10761
|
+
}, props.class],
|
|
10762
|
+
"style": props.style,
|
|
10500
10763
|
"appendInnerIcon": props.menuIcon,
|
|
10501
10764
|
"readonly": props.readonly,
|
|
10502
10765
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
@@ -10610,8 +10873,6 @@ const VAutocomplete = genericComponent()({
|
|
|
10610
10873
|
}
|
|
10611
10874
|
});
|
|
10612
10875
|
|
|
10613
|
-
// Types
|
|
10614
|
-
|
|
10615
10876
|
const VBadge = genericComponent()({
|
|
10616
10877
|
name: 'VBadge',
|
|
10617
10878
|
inheritAttrs: false,
|
|
@@ -10635,6 +10896,7 @@ const VBadge = genericComponent()({
|
|
|
10635
10896
|
offsetX: [Number, String],
|
|
10636
10897
|
offsetY: [Number, String],
|
|
10637
10898
|
textColor: String,
|
|
10899
|
+
...makeComponentProps(),
|
|
10638
10900
|
...makeLocationProps({
|
|
10639
10901
|
location: 'top end'
|
|
10640
10902
|
}),
|
|
@@ -10679,8 +10941,10 @@ const VBadge = genericComponent()({
|
|
|
10679
10941
|
'v-badge--dot': props.dot,
|
|
10680
10942
|
'v-badge--floating': props.floating,
|
|
10681
10943
|
'v-badge--inline': props.inline
|
|
10682
|
-
}]
|
|
10683
|
-
}, attrs
|
|
10944
|
+
}, props.class]
|
|
10945
|
+
}, attrs, {
|
|
10946
|
+
"style": props.style
|
|
10947
|
+
}), {
|
|
10684
10948
|
default: () => [createVNode("div", {
|
|
10685
10949
|
"class": "v-badge__wrapper"
|
|
10686
10950
|
}, [ctx.slots.default?.(), createVNode(MaybeTransition, {
|
|
@@ -10707,7 +10971,8 @@ const VBannerActions = genericComponent()({
|
|
|
10707
10971
|
name: 'VBannerActions',
|
|
10708
10972
|
props: {
|
|
10709
10973
|
color: String,
|
|
10710
|
-
density: String
|
|
10974
|
+
density: String,
|
|
10975
|
+
...makeComponentProps()
|
|
10711
10976
|
},
|
|
10712
10977
|
setup(props, _ref) {
|
|
10713
10978
|
let {
|
|
@@ -10721,7 +10986,8 @@ const VBannerActions = genericComponent()({
|
|
|
10721
10986
|
}
|
|
10722
10987
|
});
|
|
10723
10988
|
useRender(() => createVNode("div", {
|
|
10724
|
-
"class":
|
|
10989
|
+
"class": ['v-banner-actions', props.class],
|
|
10990
|
+
"style": props.style
|
|
10725
10991
|
}, [slots.default?.()]));
|
|
10726
10992
|
return {};
|
|
10727
10993
|
}
|
|
@@ -10742,6 +11008,7 @@ const VBanner = genericComponent()({
|
|
|
10742
11008
|
sticky: Boolean,
|
|
10743
11009
|
text: String,
|
|
10744
11010
|
...makeBorderProps(),
|
|
11011
|
+
...makeComponentProps(),
|
|
10745
11012
|
...makeDensityProps(),
|
|
10746
11013
|
...makeDimensionProps(),
|
|
10747
11014
|
...makeElevationProps(),
|
|
@@ -10799,8 +11066,8 @@ const VBanner = genericComponent()({
|
|
|
10799
11066
|
'v-banner--stacked': props.stacked || mobile.value,
|
|
10800
11067
|
'v-banner--sticky': props.sticky,
|
|
10801
11068
|
[`v-banner--${props.lines}-line`]: !!props.lines
|
|
10802
|
-
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value],
|
|
10803
|
-
"style": [dimensionStyles.value, locationStyles.value],
|
|
11069
|
+
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
11070
|
+
"style": [dimensionStyles.value, locationStyles.value, props.style],
|
|
10804
11071
|
"role": "banner"
|
|
10805
11072
|
}, {
|
|
10806
11073
|
default: () => [hasPrepend && createVNode("div", {
|
|
@@ -10856,6 +11123,7 @@ const VBottomNavigation = genericComponent()({
|
|
|
10856
11123
|
default: true
|
|
10857
11124
|
},
|
|
10858
11125
|
...makeBorderProps(),
|
|
11126
|
+
...makeComponentProps(),
|
|
10859
11127
|
...makeDensityProps(),
|
|
10860
11128
|
...makeElevationProps(),
|
|
10861
11129
|
...makeRoundedProps(),
|
|
@@ -10930,11 +11198,11 @@ const VBottomNavigation = genericComponent()({
|
|
|
10930
11198
|
'v-bottom-navigation--active': isActive.value,
|
|
10931
11199
|
'v-bottom-navigation--grow': props.grow,
|
|
10932
11200
|
'v-bottom-navigation--shift': props.mode === 'shift'
|
|
10933
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value],
|
|
11201
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
10934
11202
|
"style": [backgroundColorStyles.value, layoutItemStyles.value, {
|
|
10935
11203
|
height: convertToUnit(height.value),
|
|
10936
11204
|
transform: `translateY(${convertToUnit(!isActive.value ? 100 : 0, '%')})`
|
|
10937
|
-
}, ssrBootStyles.value]
|
|
11205
|
+
}, ssrBootStyles.value, props.style]
|
|
10938
11206
|
}, {
|
|
10939
11207
|
default: () => [slots.default && createVNode("div", {
|
|
10940
11208
|
"class": "v-bottom-navigation__content"
|
|
@@ -10948,14 +11216,16 @@ const VBottomNavigation = genericComponent()({
|
|
|
10948
11216
|
const VBreadcrumbsDivider = genericComponent()({
|
|
10949
11217
|
name: 'VBreadcrumbsDivider',
|
|
10950
11218
|
props: {
|
|
10951
|
-
divider: [Number, String]
|
|
11219
|
+
divider: [Number, String],
|
|
11220
|
+
...makeComponentProps()
|
|
10952
11221
|
},
|
|
10953
11222
|
setup(props, _ref) {
|
|
10954
11223
|
let {
|
|
10955
11224
|
slots
|
|
10956
11225
|
} = _ref;
|
|
10957
11226
|
useRender(() => createVNode("li", {
|
|
10958
|
-
"class":
|
|
11227
|
+
"class": ['v-breadcrumbs-divider', props.class],
|
|
11228
|
+
"style": props.style
|
|
10959
11229
|
}, [slots?.default?.() ?? props.divider]));
|
|
10960
11230
|
return {};
|
|
10961
11231
|
}
|
|
@@ -10970,6 +11240,7 @@ const VBreadcrumbsItem = genericComponent()({
|
|
|
10970
11240
|
color: String,
|
|
10971
11241
|
disabled: Boolean,
|
|
10972
11242
|
title: String,
|
|
11243
|
+
...makeComponentProps(),
|
|
10973
11244
|
...makeRouterProps(),
|
|
10974
11245
|
...makeTagProps({
|
|
10975
11246
|
tag: 'li'
|
|
@@ -10995,8 +11266,8 @@ const VBreadcrumbsItem = genericComponent()({
|
|
|
10995
11266
|
'v-breadcrumbs-item--disabled': props.disabled,
|
|
10996
11267
|
'v-breadcrumbs-item--link': link.isLink.value,
|
|
10997
11268
|
[`${props.activeClass}`]: isActive.value && props.activeClass
|
|
10998
|
-
}, textColorClasses.value],
|
|
10999
|
-
"style": [textColorStyles.value],
|
|
11269
|
+
}, textColorClasses.value, props.class],
|
|
11270
|
+
"style": [textColorStyles.value, props.style],
|
|
11000
11271
|
"href": link.href.value,
|
|
11001
11272
|
"aria-current": isActive.value ? 'page' : undefined,
|
|
11002
11273
|
"onClick": link.navigate
|
|
@@ -11027,6 +11298,7 @@ const VBreadcrumbs = genericComponent()({
|
|
|
11027
11298
|
type: Array,
|
|
11028
11299
|
default: () => []
|
|
11029
11300
|
},
|
|
11301
|
+
...makeComponentProps(),
|
|
11030
11302
|
...makeDensityProps(),
|
|
11031
11303
|
...makeRoundedProps(),
|
|
11032
11304
|
...makeTagProps({
|
|
@@ -11058,11 +11330,22 @@ const VBreadcrumbs = genericComponent()({
|
|
|
11058
11330
|
disabled: toRef(props, 'disabled')
|
|
11059
11331
|
}
|
|
11060
11332
|
});
|
|
11333
|
+
const items = computed(() => props.items.map(item => {
|
|
11334
|
+
return typeof item === 'string' ? {
|
|
11335
|
+
item: {
|
|
11336
|
+
title: item
|
|
11337
|
+
},
|
|
11338
|
+
raw: item
|
|
11339
|
+
} : {
|
|
11340
|
+
item,
|
|
11341
|
+
raw: item
|
|
11342
|
+
};
|
|
11343
|
+
}));
|
|
11061
11344
|
useRender(() => {
|
|
11062
11345
|
const hasPrepend = !!(slots.prepend || props.icon);
|
|
11063
11346
|
return createVNode(props.tag, {
|
|
11064
|
-
"class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value],
|
|
11065
|
-
"style": backgroundColorStyles.value
|
|
11347
|
+
"class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value, props.class],
|
|
11348
|
+
"style": [backgroundColorStyles.value, props.style]
|
|
11066
11349
|
}, {
|
|
11067
11350
|
default: () => [hasPrepend && createVNode("div", {
|
|
11068
11351
|
"key": "prepend",
|
|
@@ -11080,33 +11363,36 @@ const VBreadcrumbs = genericComponent()({
|
|
|
11080
11363
|
start: true
|
|
11081
11364
|
}
|
|
11082
11365
|
}
|
|
11083
|
-
}, slots.prepend)]),
|
|
11084
|
-
|
|
11085
|
-
"disabled": index >= array.length - 1
|
|
11086
|
-
}, typeof item === 'string' ? {
|
|
11087
|
-
title: item
|
|
11088
|
-
} : item), {
|
|
11089
|
-
default: slots.title ? () => slots.title?.({
|
|
11090
|
-
item,
|
|
11091
|
-
index
|
|
11092
|
-
}) : undefined
|
|
11093
|
-
}), index < array.length - 1 && createVNode(VBreadcrumbsDivider, null, {
|
|
11094
|
-
default: slots.divider ? () => slots.divider?.({
|
|
11366
|
+
}, slots.prepend)]), items.value.map((_ref2, index, array) => {
|
|
11367
|
+
let {
|
|
11095
11368
|
item,
|
|
11096
|
-
|
|
11097
|
-
}
|
|
11098
|
-
|
|
11369
|
+
raw
|
|
11370
|
+
} = _ref2;
|
|
11371
|
+
return createVNode(Fragment, null, [createVNode(VBreadcrumbsItem, mergeProps({
|
|
11372
|
+
"key": item.title,
|
|
11373
|
+
"disabled": index >= array.length - 1
|
|
11374
|
+
}, item), {
|
|
11375
|
+
default: slots.title ? () => slots.title?.({
|
|
11376
|
+
item: raw,
|
|
11377
|
+
index
|
|
11378
|
+
}) : undefined
|
|
11379
|
+
}), index < array.length - 1 && createVNode(VBreadcrumbsDivider, null, {
|
|
11380
|
+
default: slots.divider ? () => slots.divider?.({
|
|
11381
|
+
item: raw,
|
|
11382
|
+
index
|
|
11383
|
+
}) : undefined
|
|
11384
|
+
})]);
|
|
11385
|
+
}), slots.default?.()]
|
|
11099
11386
|
});
|
|
11100
11387
|
});
|
|
11101
11388
|
return {};
|
|
11102
11389
|
}
|
|
11103
11390
|
});
|
|
11104
11391
|
|
|
11105
|
-
|
|
11106
|
-
|
|
11107
|
-
const VCardActions = defineComponent({
|
|
11392
|
+
const VCardActions = genericComponent()({
|
|
11108
11393
|
name: 'VCardActions',
|
|
11109
|
-
|
|
11394
|
+
props: makeComponentProps(),
|
|
11395
|
+
setup(props, _ref) {
|
|
11110
11396
|
let {
|
|
11111
11397
|
slots
|
|
11112
11398
|
} = _ref;
|
|
@@ -11116,7 +11402,8 @@ const VCardActions = defineComponent({
|
|
|
11116
11402
|
}
|
|
11117
11403
|
});
|
|
11118
11404
|
useRender(() => createVNode("div", {
|
|
11119
|
-
"class":
|
|
11405
|
+
"class": ['v-card-actions', props.class],
|
|
11406
|
+
"style": props.style
|
|
11120
11407
|
}, [slots.default?.()]));
|
|
11121
11408
|
return {};
|
|
11122
11409
|
}
|
|
@@ -11126,8 +11413,6 @@ const VCardSubtitle = createSimpleFunctional('v-card-subtitle');
|
|
|
11126
11413
|
|
|
11127
11414
|
const VCardTitle = createSimpleFunctional('v-card-title');
|
|
11128
11415
|
|
|
11129
|
-
// Types
|
|
11130
|
-
|
|
11131
11416
|
const VCardItem = genericComponent()({
|
|
11132
11417
|
name: 'VCardItem',
|
|
11133
11418
|
props: {
|
|
@@ -11137,6 +11422,7 @@ const VCardItem = genericComponent()({
|
|
|
11137
11422
|
prependIcon: IconValue,
|
|
11138
11423
|
subtitle: String,
|
|
11139
11424
|
title: String,
|
|
11425
|
+
...makeComponentProps(),
|
|
11140
11426
|
...makeDensityProps()
|
|
11141
11427
|
},
|
|
11142
11428
|
setup(props, _ref) {
|
|
@@ -11151,7 +11437,8 @@ const VCardItem = genericComponent()({
|
|
|
11151
11437
|
const hasTitle = !!(props.title || slots.title);
|
|
11152
11438
|
const hasSubtitle = !!(props.subtitle || slots.subtitle);
|
|
11153
11439
|
return createVNode("div", {
|
|
11154
|
-
"class":
|
|
11440
|
+
"class": ['v-card-item', props.class],
|
|
11441
|
+
"style": props.style
|
|
11155
11442
|
}, [hasPrepend && createVNode("div", {
|
|
11156
11443
|
"key": "prepend",
|
|
11157
11444
|
"class": "v-card-item__prepend"
|
|
@@ -11233,8 +11520,8 @@ const VCard = genericComponent()({
|
|
|
11233
11520
|
subtitle: String,
|
|
11234
11521
|
text: String,
|
|
11235
11522
|
title: String,
|
|
11236
|
-
...makeThemeProps(),
|
|
11237
11523
|
...makeBorderProps(),
|
|
11524
|
+
...makeComponentProps(),
|
|
11238
11525
|
...makeDensityProps(),
|
|
11239
11526
|
...makeDimensionProps(),
|
|
11240
11527
|
...makeElevationProps(),
|
|
@@ -11244,6 +11531,7 @@ const VCard = genericComponent()({
|
|
|
11244
11531
|
...makeRoundedProps(),
|
|
11245
11532
|
...makeRouterProps(),
|
|
11246
11533
|
...makeTagProps(),
|
|
11534
|
+
...makeThemeProps(),
|
|
11247
11535
|
...makeVariantProps({
|
|
11248
11536
|
variant: 'elevated'
|
|
11249
11537
|
})
|
|
@@ -11304,8 +11592,8 @@ const VCard = genericComponent()({
|
|
|
11304
11592
|
'v-card--flat': props.flat,
|
|
11305
11593
|
'v-card--hover': props.hover && !(props.disabled || props.flat),
|
|
11306
11594
|
'v-card--link': isClickable.value
|
|
11307
|
-
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value],
|
|
11308
|
-
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value],
|
|
11595
|
+
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
|
11596
|
+
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
|
|
11309
11597
|
"href": link.href.value,
|
|
11310
11598
|
"onClick": isClickable.value && link.navigate,
|
|
11311
11599
|
"tabindex": props.disabled ? -1 : undefined
|
|
@@ -11501,6 +11789,7 @@ const makeVWindowProps = propsFactory({
|
|
|
11501
11789
|
mandatory: {
|
|
11502
11790
|
default: 'force'
|
|
11503
11791
|
},
|
|
11792
|
+
...makeComponentProps(),
|
|
11504
11793
|
...makeTagProps(),
|
|
11505
11794
|
...makeThemeProps()
|
|
11506
11795
|
}, 'v-window');
|
|
@@ -11616,7 +11905,8 @@ const VWindow = genericComponent()({
|
|
|
11616
11905
|
"ref": rootRef,
|
|
11617
11906
|
"class": ['v-window', {
|
|
11618
11907
|
'v-window--show-arrows-on-hover': props.showArrows === 'hover'
|
|
11619
|
-
}, themeClasses.value]
|
|
11908
|
+
}, themeClasses.value, props.class],
|
|
11909
|
+
"style": props.style
|
|
11620
11910
|
}, {
|
|
11621
11911
|
default: () => [createVNode("div", {
|
|
11622
11912
|
"class": "v-window__container",
|
|
@@ -11701,10 +11991,10 @@ const VCarousel = genericComponent()({
|
|
|
11701
11991
|
"class": ['v-carousel', {
|
|
11702
11992
|
'v-carousel--hide-delimiter-background': props.hideDelimiterBackground,
|
|
11703
11993
|
'v-carousel--vertical-delimiters': props.verticalDelimiters
|
|
11704
|
-
}],
|
|
11705
|
-
"style": {
|
|
11994
|
+
}, props.class],
|
|
11995
|
+
"style": [{
|
|
11706
11996
|
height: convertToUnit(props.height)
|
|
11707
|
-
},
|
|
11997
|
+
}, props.style],
|
|
11708
11998
|
"continuous": true,
|
|
11709
11999
|
"mandatory": "force",
|
|
11710
12000
|
"showArrows": props.showArrows
|
|
@@ -11770,6 +12060,7 @@ const VWindowItem = genericComponent()({
|
|
|
11770
12060
|
type: [Boolean, String],
|
|
11771
12061
|
default: undefined
|
|
11772
12062
|
},
|
|
12063
|
+
...makeComponentProps(),
|
|
11773
12064
|
...makeGroupItemProps(),
|
|
11774
12065
|
...makeLazyProps()
|
|
11775
12066
|
},
|
|
@@ -11856,7 +12147,8 @@ const VWindowItem = genericComponent()({
|
|
|
11856
12147
|
"disabled": !isBooted.value
|
|
11857
12148
|
}, {
|
|
11858
12149
|
default: () => [withDirectives(createVNode("div", {
|
|
11859
|
-
"class": ['v-window-item', groupItem.selectedClass.value]
|
|
12150
|
+
"class": ['v-window-item', groupItem.selectedClass.value, props.class],
|
|
12151
|
+
"style": props.style
|
|
11860
12152
|
}, [hasContent.value && slots.default?.()]), [[vShow, groupItem.isSelected.value]])]
|
|
11861
12153
|
}));
|
|
11862
12154
|
return {};
|
|
@@ -11869,7 +12161,8 @@ const VCarouselItem = genericComponent()({
|
|
|
11869
12161
|
name: 'VCarouselItem',
|
|
11870
12162
|
inheritAttrs: false,
|
|
11871
12163
|
props: {
|
|
11872
|
-
value: null
|
|
12164
|
+
value: null,
|
|
12165
|
+
...makeComponentProps()
|
|
11873
12166
|
},
|
|
11874
12167
|
setup(props, _ref) {
|
|
11875
12168
|
let {
|
|
@@ -11877,7 +12170,8 @@ const VCarouselItem = genericComponent()({
|
|
|
11877
12170
|
attrs
|
|
11878
12171
|
} = _ref;
|
|
11879
12172
|
useRender(() => createVNode(VWindowItem, {
|
|
11880
|
-
"class":
|
|
12173
|
+
"class": ['v-carousel-item', props.class],
|
|
12174
|
+
"style": props.style,
|
|
11881
12175
|
"value": props.value
|
|
11882
12176
|
}, {
|
|
11883
12177
|
default: () => [createVNode(VImg, attrs, slots)]
|
|
@@ -11890,6 +12184,7 @@ const VCode = createSimpleFunctional('v-code');
|
|
|
11890
12184
|
const makeVSheetProps = propsFactory({
|
|
11891
12185
|
color: String,
|
|
11892
12186
|
...makeBorderProps(),
|
|
12187
|
+
...makeComponentProps(),
|
|
11893
12188
|
...makeDimensionProps(),
|
|
11894
12189
|
...makeElevationProps(),
|
|
11895
12190
|
...makeLocationProps(),
|
|
@@ -11933,8 +12228,8 @@ const VSheet = genericComponent()({
|
|
|
11933
12228
|
roundedClasses
|
|
11934
12229
|
} = useRounded(props);
|
|
11935
12230
|
useRender(() => createVNode(props.tag, {
|
|
11936
|
-
"class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value],
|
|
11937
|
-
"style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value]
|
|
12231
|
+
"class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class],
|
|
12232
|
+
"style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style]
|
|
11938
12233
|
}, slots));
|
|
11939
12234
|
return {};
|
|
11940
12235
|
}
|
|
@@ -11960,7 +12255,8 @@ const VColorPickerCanvas = defineComponent({
|
|
|
11960
12255
|
width: {
|
|
11961
12256
|
type: [Number, String],
|
|
11962
12257
|
default: 300
|
|
11963
|
-
}
|
|
12258
|
+
},
|
|
12259
|
+
...makeComponentProps()
|
|
11964
12260
|
},
|
|
11965
12261
|
emits: {
|
|
11966
12262
|
'update:color': color => true,
|
|
@@ -12105,7 +12401,8 @@ const VColorPickerCanvas = defineComponent({
|
|
|
12105
12401
|
onMounted(() => updateCanvas());
|
|
12106
12402
|
useRender(() => createVNode("div", {
|
|
12107
12403
|
"ref": resizeRef,
|
|
12108
|
-
"class":
|
|
12404
|
+
"class": ['v-color-picker-canvas', props.class],
|
|
12405
|
+
"style": props.style,
|
|
12109
12406
|
"onClick": handleClick,
|
|
12110
12407
|
"onMousedown": handleMouseDown,
|
|
12111
12408
|
"onTouchstart": handleMouseDown
|
|
@@ -12338,7 +12635,8 @@ const VColorPickerEdit = defineComponent({
|
|
|
12338
12635
|
type: Array,
|
|
12339
12636
|
default: () => Object.keys(modes),
|
|
12340
12637
|
validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))
|
|
12341
|
-
}
|
|
12638
|
+
},
|
|
12639
|
+
...makeComponentProps()
|
|
12342
12640
|
},
|
|
12343
12641
|
emits: {
|
|
12344
12642
|
'update:color': color => true,
|
|
@@ -12378,7 +12676,8 @@ const VColorPickerEdit = defineComponent({
|
|
|
12378
12676
|
});
|
|
12379
12677
|
});
|
|
12380
12678
|
useRender(() => createVNode("div", {
|
|
12381
|
-
"class":
|
|
12679
|
+
"class": ['v-color-picker-edit', props.class],
|
|
12680
|
+
"style": props.style
|
|
12382
12681
|
}, [inputs.value?.map(props => createVNode(VColorPickerInput, props, null)), enabledModes.value.length > 1 && createVNode(VBtn, {
|
|
12383
12682
|
"icon": "$unfold",
|
|
12384
12683
|
"size": "x-small",
|
|
@@ -12462,11 +12761,33 @@ const makeSliderProps = propsFactory({
|
|
|
12462
12761
|
elevation: 2
|
|
12463
12762
|
})
|
|
12464
12763
|
}, 'slider');
|
|
12764
|
+
const useSteps = props => {
|
|
12765
|
+
const min = computed(() => parseFloat(props.min));
|
|
12766
|
+
const max = computed(() => parseFloat(props.max));
|
|
12767
|
+
const step = computed(() => +props.step > 0 ? parseFloat(props.step) : 0);
|
|
12768
|
+
const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
|
|
12769
|
+
function roundValue(value) {
|
|
12770
|
+
if (step.value <= 0) return value;
|
|
12771
|
+
const clamped = clamp(value, min.value, max.value);
|
|
12772
|
+
const offset = min.value % step.value;
|
|
12773
|
+
const newValue = Math.round((clamped - offset) / step.value) * step.value + offset;
|
|
12774
|
+
return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value));
|
|
12775
|
+
}
|
|
12776
|
+
return {
|
|
12777
|
+
min,
|
|
12778
|
+
max,
|
|
12779
|
+
step,
|
|
12780
|
+
decimals,
|
|
12781
|
+
roundValue
|
|
12782
|
+
};
|
|
12783
|
+
};
|
|
12465
12784
|
const useSlider = _ref => {
|
|
12466
12785
|
let {
|
|
12467
12786
|
props,
|
|
12468
|
-
|
|
12469
|
-
|
|
12787
|
+
steps,
|
|
12788
|
+
onSliderStart,
|
|
12789
|
+
onSliderMove,
|
|
12790
|
+
onSliderEnd,
|
|
12470
12791
|
getActiveThumb
|
|
12471
12792
|
} = _ref;
|
|
12472
12793
|
const {
|
|
@@ -12480,10 +12801,13 @@ const useSlider = _ref => {
|
|
|
12480
12801
|
}
|
|
12481
12802
|
return hd;
|
|
12482
12803
|
});
|
|
12483
|
-
const
|
|
12484
|
-
|
|
12485
|
-
|
|
12486
|
-
|
|
12804
|
+
const {
|
|
12805
|
+
min,
|
|
12806
|
+
max,
|
|
12807
|
+
step,
|
|
12808
|
+
decimals,
|
|
12809
|
+
roundValue
|
|
12810
|
+
} = steps;
|
|
12487
12811
|
const thumbSize = computed(() => parseInt(props.thumbSize, 10));
|
|
12488
12812
|
const tickSize = computed(() => parseInt(props.tickSize, 10));
|
|
12489
12813
|
const trackSize = computed(() => parseInt(props.trackSize, 10));
|
|
@@ -12497,13 +12821,6 @@ const useSlider = _ref => {
|
|
|
12497
12821
|
const startOffset = ref(0);
|
|
12498
12822
|
const trackContainerRef = ref();
|
|
12499
12823
|
const activeThumbRef = ref();
|
|
12500
|
-
function roundValue(value) {
|
|
12501
|
-
if (step.value <= 0) return value;
|
|
12502
|
-
const clamped = clamp(value, min.value, max.value);
|
|
12503
|
-
const offset = min.value % step.value;
|
|
12504
|
-
const newValue = Math.round((clamped - offset) / step.value) * step.value + offset;
|
|
12505
|
-
return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value));
|
|
12506
|
-
}
|
|
12507
12824
|
function parseMouseMove(e) {
|
|
12508
12825
|
const vertical = props.direction === 'vertical';
|
|
12509
12826
|
const start = vertical ? 'top' : 'left';
|
|
@@ -12520,14 +12837,11 @@ const useSlider = _ref => {
|
|
|
12520
12837
|
if (vertical || horizontalDirection.value === 'rtl') clickPos = 1 - clickPos;
|
|
12521
12838
|
return roundValue(min.value + clickPos * (max.value - min.value));
|
|
12522
12839
|
}
|
|
12523
|
-
let thumbMoved = false;
|
|
12524
12840
|
const handleStop = e => {
|
|
12525
|
-
|
|
12526
|
-
|
|
12527
|
-
|
|
12528
|
-
}
|
|
12841
|
+
onSliderEnd({
|
|
12842
|
+
value: parseMouseMove(e)
|
|
12843
|
+
});
|
|
12529
12844
|
mousePressed.value = false;
|
|
12530
|
-
thumbMoved = false;
|
|
12531
12845
|
startOffset.value = 0;
|
|
12532
12846
|
};
|
|
12533
12847
|
const handleStart = e => {
|
|
@@ -12536,20 +12850,25 @@ const useSlider = _ref => {
|
|
|
12536
12850
|
activeThumbRef.value.focus();
|
|
12537
12851
|
mousePressed.value = true;
|
|
12538
12852
|
if (activeThumbRef.value.contains(e.target)) {
|
|
12539
|
-
thumbMoved = true;
|
|
12540
12853
|
startOffset.value = getOffset(e, activeThumbRef.value, props.direction);
|
|
12541
12854
|
} else {
|
|
12542
12855
|
startOffset.value = 0;
|
|
12543
|
-
|
|
12856
|
+
onSliderMove({
|
|
12857
|
+
value: parseMouseMove(e)
|
|
12858
|
+
});
|
|
12544
12859
|
}
|
|
12860
|
+
onSliderStart({
|
|
12861
|
+
value: parseMouseMove(e)
|
|
12862
|
+
});
|
|
12545
12863
|
};
|
|
12546
12864
|
const moveListenerOptions = {
|
|
12547
12865
|
passive: true,
|
|
12548
12866
|
capture: true
|
|
12549
12867
|
};
|
|
12550
12868
|
function onMouseMove(e) {
|
|
12551
|
-
|
|
12552
|
-
|
|
12869
|
+
onSliderMove({
|
|
12870
|
+
value: parseMouseMove(e)
|
|
12871
|
+
});
|
|
12553
12872
|
}
|
|
12554
12873
|
function onSliderMouseUp(e) {
|
|
12555
12874
|
e.stopPropagation();
|
|
@@ -12677,7 +12996,8 @@ const VSliderThumb = genericComponent()({
|
|
|
12677
12996
|
ripple: {
|
|
12678
12997
|
type: Boolean,
|
|
12679
12998
|
default: true
|
|
12680
|
-
}
|
|
12999
|
+
},
|
|
13000
|
+
...makeComponentProps()
|
|
12681
13001
|
},
|
|
12682
13002
|
emits: {
|
|
12683
13003
|
'update:modelValue': v => true
|
|
@@ -12755,11 +13075,11 @@ const VSliderThumb = genericComponent()({
|
|
|
12755
13075
|
"class": ['v-slider-thumb', {
|
|
12756
13076
|
'v-slider-thumb--focused': props.focused,
|
|
12757
13077
|
'v-slider-thumb--pressed': props.focused && mousePressed.value
|
|
12758
|
-
}],
|
|
12759
|
-
"style": {
|
|
13078
|
+
}, props.class],
|
|
13079
|
+
"style": [{
|
|
12760
13080
|
'--v-slider-thumb-position': positionPercentage,
|
|
12761
13081
|
'--v-slider-thumb-size': convertToUnit(thumbSize.value)
|
|
12762
|
-
},
|
|
13082
|
+
}, props.style],
|
|
12763
13083
|
"role": "slider",
|
|
12764
13084
|
"tabindex": disabled.value ? -1 : 0,
|
|
12765
13085
|
"aria-valuemin": props.min,
|
|
@@ -12805,7 +13125,8 @@ const VSliderTrack = genericComponent()({
|
|
|
12805
13125
|
stop: {
|
|
12806
13126
|
type: Number,
|
|
12807
13127
|
required: true
|
|
12808
|
-
}
|
|
13128
|
+
},
|
|
13129
|
+
...makeComponentProps()
|
|
12809
13130
|
},
|
|
12810
13131
|
emits: {},
|
|
12811
13132
|
setup(props, _ref) {
|
|
@@ -12880,12 +13201,12 @@ const VSliderTrack = genericComponent()({
|
|
|
12880
13201
|
});
|
|
12881
13202
|
useRender(() => {
|
|
12882
13203
|
return createVNode("div", {
|
|
12883
|
-
"class": ['v-slider-track', roundedClasses.value],
|
|
12884
|
-
"style": {
|
|
13204
|
+
"class": ['v-slider-track', roundedClasses.value, props.class],
|
|
13205
|
+
"style": [{
|
|
12885
13206
|
'--v-slider-track-size': convertToUnit(trackSize.value),
|
|
12886
13207
|
'--v-slider-tick-size': convertToUnit(tickSize.value),
|
|
12887
13208
|
direction: !vertical.value ? horizontalDirection.value : undefined
|
|
12888
|
-
}
|
|
13209
|
+
}, props.style]
|
|
12889
13210
|
}, [createVNode("div", {
|
|
12890
13211
|
"class": ['v-slider-track__background', trackColorClasses.value, {
|
|
12891
13212
|
'v-slider-track__background--opacity': !!color.value || !trackFillColor.value
|
|
@@ -12925,13 +13246,21 @@ const VSlider = genericComponent()({
|
|
|
12925
13246
|
},
|
|
12926
13247
|
emits: {
|
|
12927
13248
|
'update:focused': value => true,
|
|
12928
|
-
'update:modelValue': v => true
|
|
13249
|
+
'update:modelValue': v => true,
|
|
13250
|
+
start: value => true,
|
|
13251
|
+
end: value => true
|
|
12929
13252
|
},
|
|
12930
13253
|
setup(props, _ref) {
|
|
12931
13254
|
let {
|
|
12932
|
-
slots
|
|
13255
|
+
slots,
|
|
13256
|
+
emit
|
|
12933
13257
|
} = _ref;
|
|
12934
13258
|
const thumbContainerRef = ref();
|
|
13259
|
+
const steps = useSteps(props);
|
|
13260
|
+
const model = useProxiedModel(props, 'modelValue', undefined, v => {
|
|
13261
|
+
const value = typeof v === 'string' ? parseFloat(v) : v == null ? steps.min.value : v;
|
|
13262
|
+
return steps.roundValue(value);
|
|
13263
|
+
});
|
|
12935
13264
|
const {
|
|
12936
13265
|
min,
|
|
12937
13266
|
max,
|
|
@@ -12945,16 +13274,26 @@ const VSlider = genericComponent()({
|
|
|
12945
13274
|
readonly
|
|
12946
13275
|
} = useSlider({
|
|
12947
13276
|
props,
|
|
12948
|
-
|
|
12949
|
-
|
|
12950
|
-
|
|
12951
|
-
|
|
13277
|
+
steps,
|
|
13278
|
+
onSliderStart: () => {
|
|
13279
|
+
emit('start', model.value);
|
|
13280
|
+
},
|
|
13281
|
+
onSliderEnd: _ref2 => {
|
|
13282
|
+
let {
|
|
13283
|
+
value
|
|
13284
|
+
} = _ref2;
|
|
13285
|
+
const roundedValue = roundValue(value);
|
|
13286
|
+
model.value = roundedValue;
|
|
13287
|
+
emit('end', roundedValue);
|
|
13288
|
+
},
|
|
13289
|
+
onSliderMove: _ref3 => {
|
|
13290
|
+
let {
|
|
13291
|
+
value
|
|
13292
|
+
} = _ref3;
|
|
13293
|
+
return model.value = roundValue(value);
|
|
13294
|
+
},
|
|
12952
13295
|
getActiveThumb: () => thumbContainerRef.value?.$el
|
|
12953
13296
|
});
|
|
12954
|
-
const model = useProxiedModel(props, 'modelValue', undefined, v => {
|
|
12955
|
-
const value = typeof v === 'string' ? parseFloat(v) : v == null ? min.value : v;
|
|
12956
|
-
return roundValue(value);
|
|
12957
|
-
});
|
|
12958
13297
|
const {
|
|
12959
13298
|
isFocused,
|
|
12960
13299
|
focus,
|
|
@@ -12970,7 +13309,8 @@ const VSlider = genericComponent()({
|
|
|
12970
13309
|
'v-slider--focused': isFocused.value,
|
|
12971
13310
|
'v-slider--pressed': mousePressed.value,
|
|
12972
13311
|
'v-slider--disabled': props.disabled
|
|
12973
|
-
}]
|
|
13312
|
+
}, props.class],
|
|
13313
|
+
"style": props.style
|
|
12974
13314
|
}, inputProps, {
|
|
12975
13315
|
"focused": isFocused.value
|
|
12976
13316
|
}), {
|
|
@@ -12980,11 +13320,11 @@ const VSlider = genericComponent()({
|
|
|
12980
13320
|
"class": "v-slider__label",
|
|
12981
13321
|
"text": props.label
|
|
12982
13322
|
}, null) : undefined, slots.prepend?.(slotProps)]) : undefined,
|
|
12983
|
-
default:
|
|
13323
|
+
default: _ref4 => {
|
|
12984
13324
|
let {
|
|
12985
13325
|
id,
|
|
12986
13326
|
messagesId
|
|
12987
|
-
} =
|
|
13327
|
+
} = _ref4;
|
|
12988
13328
|
return createVNode("div", {
|
|
12989
13329
|
"class": "v-slider__container",
|
|
12990
13330
|
"onMousedown": !readonly.value ? onSliderMousedown : undefined,
|
|
@@ -13033,7 +13373,8 @@ const VColorPickerPreview = defineComponent({
|
|
|
13033
13373
|
type: Object
|
|
13034
13374
|
},
|
|
13035
13375
|
disabled: Boolean,
|
|
13036
|
-
hideAlpha: Boolean
|
|
13376
|
+
hideAlpha: Boolean,
|
|
13377
|
+
...makeComponentProps()
|
|
13037
13378
|
},
|
|
13038
13379
|
emits: {
|
|
13039
13380
|
'update:color': color => true
|
|
@@ -13045,7 +13386,8 @@ const VColorPickerPreview = defineComponent({
|
|
|
13045
13386
|
useRender(() => createVNode("div", {
|
|
13046
13387
|
"class": ['v-color-picker-preview', {
|
|
13047
13388
|
'v-color-picker-preview--hide-alpha': props.hideAlpha
|
|
13048
|
-
}]
|
|
13389
|
+
}, props.class],
|
|
13390
|
+
"style": props.style
|
|
13049
13391
|
}, [createVNode("div", {
|
|
13050
13392
|
"class": "v-color-picker-preview__dot"
|
|
13051
13393
|
}, [createVNode("div", {
|
|
@@ -13426,7 +13768,8 @@ const VColorPickerSwatches = defineComponent({
|
|
|
13426
13768
|
},
|
|
13427
13769
|
disabled: Boolean,
|
|
13428
13770
|
color: Object,
|
|
13429
|
-
maxHeight: [Number, String]
|
|
13771
|
+
maxHeight: [Number, String],
|
|
13772
|
+
...makeComponentProps()
|
|
13430
13773
|
},
|
|
13431
13774
|
emits: {
|
|
13432
13775
|
'update:color': color => true
|
|
@@ -13436,10 +13779,10 @@ const VColorPickerSwatches = defineComponent({
|
|
|
13436
13779
|
emit
|
|
13437
13780
|
} = _ref;
|
|
13438
13781
|
useRender(() => createVNode("div", {
|
|
13439
|
-
"class":
|
|
13440
|
-
"style": {
|
|
13782
|
+
"class": ['v-color-picker-swatches', props.class],
|
|
13783
|
+
"style": [{
|
|
13441
13784
|
maxHeight: convertToUnit(props.maxHeight)
|
|
13442
|
-
}
|
|
13785
|
+
}, props.style]
|
|
13443
13786
|
}, [createVNode("div", null, [props.swatches.map(swatch => createVNode("div", {
|
|
13444
13787
|
"class": "v-color-picker-swatches__swatch"
|
|
13445
13788
|
}, [swatch.map(color => {
|
|
@@ -13543,13 +13886,13 @@ const VColorPicker = defineComponent({
|
|
|
13543
13886
|
"rounded": props.rounded,
|
|
13544
13887
|
"elevation": props.elevation,
|
|
13545
13888
|
"theme": props.theme,
|
|
13546
|
-
"class": ['v-color-picker'],
|
|
13547
|
-
"style": {
|
|
13889
|
+
"class": ['v-color-picker', props.class],
|
|
13890
|
+
"style": [{
|
|
13548
13891
|
'--v-color-picker-color-hsv': HSVtoCSS({
|
|
13549
13892
|
...(currentColor.value ?? nullColor),
|
|
13550
13893
|
a: 1
|
|
13551
13894
|
})
|
|
13552
|
-
}
|
|
13895
|
+
}, props.style]
|
|
13553
13896
|
}, sheetProps, {
|
|
13554
13897
|
"maxWidth": props.width
|
|
13555
13898
|
}), {
|
|
@@ -13860,7 +14203,8 @@ const VCombobox = genericComponent()({
|
|
|
13860
14203
|
'v-combobox--chips': !!props.chips,
|
|
13861
14204
|
'v-combobox--selecting-index': selectionIndex.value > -1,
|
|
13862
14205
|
[`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true
|
|
13863
|
-
}],
|
|
14206
|
+
}, props.class],
|
|
14207
|
+
"style": props.style,
|
|
13864
14208
|
"appendInnerIcon": props.items.length ? props.menuIcon : undefined,
|
|
13865
14209
|
"readonly": props.readonly,
|
|
13866
14210
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
@@ -14017,7 +14361,7 @@ const VDialog = genericComponent()({
|
|
|
14017
14361
|
![document, overlay.value.contentEl].includes(after) &&
|
|
14018
14362
|
// It isn't inside the dialog body
|
|
14019
14363
|
!overlay.value.contentEl.contains(after)) {
|
|
14020
|
-
const focusable =
|
|
14364
|
+
const focusable = focusableChildren(overlay.value.contentEl);
|
|
14021
14365
|
if (!focusable.length) return;
|
|
14022
14366
|
const firstElement = focusable[0];
|
|
14023
14367
|
const lastElement = focusable[focusable.length - 1];
|
|
@@ -14058,7 +14402,8 @@ const VDialog = genericComponent()({
|
|
|
14058
14402
|
"class": ['v-dialog', {
|
|
14059
14403
|
'v-dialog--fullscreen': props.fullscreen,
|
|
14060
14404
|
'v-dialog--scrollable': props.scrollable
|
|
14061
|
-
}]
|
|
14405
|
+
}, props.class],
|
|
14406
|
+
"style": props.style
|
|
14062
14407
|
}, overlayProps, {
|
|
14063
14408
|
"modelValue": isActive.value,
|
|
14064
14409
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
@@ -14097,6 +14442,7 @@ const VExpansionPanels = genericComponent()({
|
|
|
14097
14442
|
validator: v => allowedVariants.includes(v)
|
|
14098
14443
|
},
|
|
14099
14444
|
readonly: Boolean,
|
|
14445
|
+
...makeComponentProps(),
|
|
14100
14446
|
...makeGroupProps(),
|
|
14101
14447
|
...makeTagProps(),
|
|
14102
14448
|
...makeThemeProps()
|
|
@@ -14122,7 +14468,8 @@ const VExpansionPanels = genericComponent()({
|
|
|
14122
14468
|
}
|
|
14123
14469
|
});
|
|
14124
14470
|
useRender(() => createVNode(props.tag, {
|
|
14125
|
-
"class": ['v-expansion-panels', themeClasses.value, variantClass.value]
|
|
14471
|
+
"class": ['v-expansion-panels', themeClasses.value, variantClass.value, props.class],
|
|
14472
|
+
"style": props.style
|
|
14126
14473
|
}, slots));
|
|
14127
14474
|
return {};
|
|
14128
14475
|
}
|
|
@@ -14151,6 +14498,7 @@ const VExpansionPanelTitle = genericComponent()({
|
|
|
14151
14498
|
Ripple
|
|
14152
14499
|
},
|
|
14153
14500
|
props: {
|
|
14501
|
+
...makeComponentProps(),
|
|
14154
14502
|
...makeVExpansionPanelTitleProps()
|
|
14155
14503
|
},
|
|
14156
14504
|
setup(props, _ref) {
|
|
@@ -14173,8 +14521,8 @@ const VExpansionPanelTitle = genericComponent()({
|
|
|
14173
14521
|
useRender(() => withDirectives(createVNode("button", {
|
|
14174
14522
|
"class": ['v-expansion-panel-title', {
|
|
14175
14523
|
'v-expansion-panel-title--active': expansionPanel.isSelected.value
|
|
14176
|
-
}, backgroundColorClasses.value],
|
|
14177
|
-
"style": backgroundColorStyles.value,
|
|
14524
|
+
}, backgroundColorClasses.value, props.class],
|
|
14525
|
+
"style": [backgroundColorStyles.value, props.style],
|
|
14178
14526
|
"type": "button",
|
|
14179
14527
|
"tabindex": expansionPanel.disabled.value ? -1 : undefined,
|
|
14180
14528
|
"disabled": expansionPanel.disabled.value,
|
|
@@ -14194,6 +14542,7 @@ const VExpansionPanelTitle = genericComponent()({
|
|
|
14194
14542
|
const VExpansionPanelText = genericComponent()({
|
|
14195
14543
|
name: 'VExpansionPanelText',
|
|
14196
14544
|
props: {
|
|
14545
|
+
...makeComponentProps(),
|
|
14197
14546
|
...makeLazyProps()
|
|
14198
14547
|
},
|
|
14199
14548
|
setup(props, _ref) {
|
|
@@ -14210,7 +14559,8 @@ const VExpansionPanelText = genericComponent()({
|
|
|
14210
14559
|
"onAfterLeave": onAfterLeave
|
|
14211
14560
|
}, {
|
|
14212
14561
|
default: () => [withDirectives(createVNode("div", {
|
|
14213
|
-
"class":
|
|
14562
|
+
"class": ['v-expansion-panel-text', props.class],
|
|
14563
|
+
"style": props.style
|
|
14214
14564
|
}, [slots.default && hasContent.value && createVNode("div", {
|
|
14215
14565
|
"class": "v-expansion-panel-text__wrapper"
|
|
14216
14566
|
}, [slots.default?.()])]), [[vShow, expansionPanel.isSelected.value]])]
|
|
@@ -14225,6 +14575,7 @@ const VExpansionPanel = genericComponent()({
|
|
|
14225
14575
|
title: String,
|
|
14226
14576
|
text: String,
|
|
14227
14577
|
bgColor: String,
|
|
14578
|
+
...makeComponentProps(),
|
|
14228
14579
|
...makeElevationProps(),
|
|
14229
14580
|
...makeGroupItemProps(),
|
|
14230
14581
|
...makeLazyProps(),
|
|
@@ -14273,8 +14624,8 @@ const VExpansionPanel = genericComponent()({
|
|
|
14273
14624
|
'v-expansion-panel--before-active': isBeforeSelected.value,
|
|
14274
14625
|
'v-expansion-panel--after-active': isAfterSelected.value,
|
|
14275
14626
|
'v-expansion-panel--disabled': isDisabled.value
|
|
14276
|
-
}, roundedClasses.value, backgroundColorClasses.value],
|
|
14277
|
-
"style": backgroundColorStyles.value,
|
|
14627
|
+
}, roundedClasses.value, backgroundColorClasses.value, props.class],
|
|
14628
|
+
"style": [backgroundColorStyles.value, props.style],
|
|
14278
14629
|
"aria-expanded": groupItem.isSelected.value
|
|
14279
14630
|
}, {
|
|
14280
14631
|
default: () => [createVNode("div", {
|
|
@@ -14424,7 +14775,8 @@ const VFileInput = genericComponent()({
|
|
|
14424
14775
|
"ref": vInputRef,
|
|
14425
14776
|
"modelValue": model.value,
|
|
14426
14777
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
14427
|
-
"class":
|
|
14778
|
+
"class": ['v-file-input', props.class],
|
|
14779
|
+
"style": props.style,
|
|
14428
14780
|
"onClick:prepend": onClickPrepend
|
|
14429
14781
|
}, rootAttrs, inputProps, {
|
|
14430
14782
|
"focused": isFocused.value
|
|
@@ -14516,6 +14868,7 @@ const VFooter = genericComponent()({
|
|
|
14516
14868
|
default: 'auto'
|
|
14517
14869
|
},
|
|
14518
14870
|
...makeBorderProps(),
|
|
14871
|
+
...makeComponentProps(),
|
|
14519
14872
|
...makeElevationProps(),
|
|
14520
14873
|
...makeLayoutItemProps(),
|
|
14521
14874
|
...makeRoundedProps(),
|
|
@@ -14565,8 +14918,8 @@ const VFooter = genericComponent()({
|
|
|
14565
14918
|
});
|
|
14566
14919
|
useRender(() => createVNode(props.tag, {
|
|
14567
14920
|
"ref": resizeRef,
|
|
14568
|
-
"class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value],
|
|
14569
|
-
"style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : undefined]
|
|
14921
|
+
"class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
14922
|
+
"style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : undefined, props.style]
|
|
14570
14923
|
}, slots));
|
|
14571
14924
|
return {};
|
|
14572
14925
|
}
|
|
@@ -14577,6 +14930,7 @@ const VFooter = genericComponent()({
|
|
|
14577
14930
|
const VForm = genericComponent()({
|
|
14578
14931
|
name: 'VForm',
|
|
14579
14932
|
props: {
|
|
14933
|
+
...makeComponentProps(),
|
|
14580
14934
|
...makeFormProps()
|
|
14581
14935
|
},
|
|
14582
14936
|
emits: {
|
|
@@ -14615,7 +14969,8 @@ const VForm = genericComponent()({
|
|
|
14615
14969
|
}
|
|
14616
14970
|
useRender(() => createVNode("form", {
|
|
14617
14971
|
"ref": formRef,
|
|
14618
|
-
"class":
|
|
14972
|
+
"class": ['v-form', props.class],
|
|
14973
|
+
"style": props.style,
|
|
14619
14974
|
"novalidate": true,
|
|
14620
14975
|
"onReset": onReset,
|
|
14621
14976
|
"onSubmit": onSubmit
|
|
@@ -14631,6 +14986,7 @@ const VContainer = genericComponent()({
|
|
|
14631
14986
|
type: Boolean,
|
|
14632
14987
|
default: false
|
|
14633
14988
|
},
|
|
14989
|
+
...makeComponentProps(),
|
|
14634
14990
|
...makeTagProps()
|
|
14635
14991
|
},
|
|
14636
14992
|
setup(props, _ref) {
|
|
@@ -14640,7 +14996,8 @@ const VContainer = genericComponent()({
|
|
|
14640
14996
|
useRender(() => createVNode(props.tag, {
|
|
14641
14997
|
"class": ['v-container', {
|
|
14642
14998
|
'v-container--fluid': props.fluid
|
|
14643
|
-
}]
|
|
14999
|
+
}, props.class],
|
|
15000
|
+
"style": props.style
|
|
14644
15001
|
}, slots));
|
|
14645
15002
|
return {};
|
|
14646
15003
|
}
|
|
@@ -14731,6 +15088,7 @@ const VCol = genericComponent()({
|
|
|
14731
15088
|
default: null,
|
|
14732
15089
|
validator: str => ALIGN_SELF_VALUES.includes(str)
|
|
14733
15090
|
},
|
|
15091
|
+
...makeComponentProps(),
|
|
14734
15092
|
...makeTagProps()
|
|
14735
15093
|
},
|
|
14736
15094
|
setup(props, _ref) {
|
|
@@ -14761,7 +15119,8 @@ const VCol = genericComponent()({
|
|
|
14761
15119
|
return classList;
|
|
14762
15120
|
});
|
|
14763
15121
|
return () => h(props.tag, {
|
|
14764
|
-
class: classes.value
|
|
15122
|
+
class: [classes.value, props.class],
|
|
15123
|
+
style: props.style
|
|
14765
15124
|
}, slots.default?.());
|
|
14766
15125
|
}
|
|
14767
15126
|
});
|
|
@@ -14847,6 +15206,7 @@ const VRow = genericComponent()({
|
|
|
14847
15206
|
validator: alignContentValidator
|
|
14848
15207
|
},
|
|
14849
15208
|
...alignContentProps,
|
|
15209
|
+
...makeComponentProps(),
|
|
14850
15210
|
...makeTagProps()
|
|
14851
15211
|
},
|
|
14852
15212
|
setup(props, _ref) {
|
|
@@ -14875,7 +15235,8 @@ const VRow = genericComponent()({
|
|
|
14875
15235
|
return classList;
|
|
14876
15236
|
});
|
|
14877
15237
|
return () => h(props.tag, {
|
|
14878
|
-
class: ['v-row', classes.value]
|
|
15238
|
+
class: ['v-row', classes.value, props.class],
|
|
15239
|
+
style: props.style
|
|
14879
15240
|
}, slots.default?.());
|
|
14880
15241
|
}
|
|
14881
15242
|
});
|
|
@@ -14919,6 +15280,7 @@ const VItemGroupSymbol = Symbol.for('vuetify:v-item-group');
|
|
|
14919
15280
|
const VItemGroup = genericComponent()({
|
|
14920
15281
|
name: 'VItemGroup',
|
|
14921
15282
|
props: {
|
|
15283
|
+
...makeComponentProps(),
|
|
14922
15284
|
...makeGroupProps({
|
|
14923
15285
|
selectedClass: 'v-item--selected'
|
|
14924
15286
|
}),
|
|
@@ -14943,7 +15305,8 @@ const VItemGroup = genericComponent()({
|
|
|
14943
15305
|
selected
|
|
14944
15306
|
} = useGroup(props, VItemGroupSymbol);
|
|
14945
15307
|
return () => createVNode(props.tag, {
|
|
14946
|
-
"class": ['v-item-group', themeClasses.value]
|
|
15308
|
+
"class": ['v-item-group', themeClasses.value, props.class],
|
|
15309
|
+
"style": props.style
|
|
14947
15310
|
}, {
|
|
14948
15311
|
default: () => [slots.default?.({
|
|
14949
15312
|
isSelected,
|
|
@@ -14993,7 +15356,10 @@ const VKbd = createSimpleFunctional('v-kbd');
|
|
|
14993
15356
|
|
|
14994
15357
|
const VLayout = genericComponent()({
|
|
14995
15358
|
name: 'VLayout',
|
|
14996
|
-
props:
|
|
15359
|
+
props: {
|
|
15360
|
+
...makeComponentProps(),
|
|
15361
|
+
...makeLayoutProps()
|
|
15362
|
+
},
|
|
14997
15363
|
setup(props, _ref) {
|
|
14998
15364
|
let {
|
|
14999
15365
|
slots
|
|
@@ -15007,8 +15373,8 @@ const VLayout = genericComponent()({
|
|
|
15007
15373
|
} = createLayout(props);
|
|
15008
15374
|
useRender(() => createVNode("div", {
|
|
15009
15375
|
"ref": layoutRef,
|
|
15010
|
-
"class": layoutClasses.value,
|
|
15011
|
-
"style": layoutStyles.value
|
|
15376
|
+
"class": [layoutClasses.value, props.class],
|
|
15377
|
+
"style": [layoutStyles.value, props.style]
|
|
15012
15378
|
}, [slots.default?.()]));
|
|
15013
15379
|
return {
|
|
15014
15380
|
getLayoutItem,
|
|
@@ -15031,6 +15397,7 @@ const VLayoutItem = genericComponent()({
|
|
|
15031
15397
|
default: 300
|
|
15032
15398
|
},
|
|
15033
15399
|
modelValue: Boolean,
|
|
15400
|
+
...makeComponentProps(),
|
|
15034
15401
|
...makeLayoutItemProps()
|
|
15035
15402
|
},
|
|
15036
15403
|
setup(props, _ref) {
|
|
@@ -15049,8 +15416,8 @@ const VLayoutItem = genericComponent()({
|
|
|
15049
15416
|
absolute: toRef(props, 'absolute')
|
|
15050
15417
|
});
|
|
15051
15418
|
return () => createVNode("div", {
|
|
15052
|
-
"class": ['v-layout-item'],
|
|
15053
|
-
"style": layoutItemStyles.value
|
|
15419
|
+
"class": ['v-layout-item', props.class],
|
|
15420
|
+
"style": [layoutItemStyles.value, props.style]
|
|
15054
15421
|
}, [slots.default?.()]);
|
|
15055
15422
|
}
|
|
15056
15423
|
});
|
|
@@ -15074,6 +15441,7 @@ const VLazy = genericComponent()({
|
|
|
15074
15441
|
threshold: undefined
|
|
15075
15442
|
})
|
|
15076
15443
|
},
|
|
15444
|
+
...makeComponentProps(),
|
|
15077
15445
|
...makeDimensionProps(),
|
|
15078
15446
|
...makeTagProps(),
|
|
15079
15447
|
...makeTransitionProps({
|
|
@@ -15096,8 +15464,8 @@ const VLazy = genericComponent()({
|
|
|
15096
15464
|
isActive.value = isIntersecting;
|
|
15097
15465
|
}
|
|
15098
15466
|
useRender(() => withDirectives(createVNode(props.tag, {
|
|
15099
|
-
"class":
|
|
15100
|
-
"style": dimensionStyles.value
|
|
15467
|
+
"class": ['v-lazy', props.class],
|
|
15468
|
+
"style": [dimensionStyles.value, props.style]
|
|
15101
15469
|
}, {
|
|
15102
15470
|
default: () => [isActive.value && createVNode(MaybeTransition, {
|
|
15103
15471
|
"transition": props.transition,
|
|
@@ -15122,7 +15490,8 @@ const VLocaleProvider = genericComponent()({
|
|
|
15122
15490
|
rtl: {
|
|
15123
15491
|
type: Boolean,
|
|
15124
15492
|
default: undefined
|
|
15125
|
-
}
|
|
15493
|
+
},
|
|
15494
|
+
...makeComponentProps()
|
|
15126
15495
|
},
|
|
15127
15496
|
setup(props, _ref) {
|
|
15128
15497
|
let {
|
|
@@ -15132,7 +15501,8 @@ const VLocaleProvider = genericComponent()({
|
|
|
15132
15501
|
rtlClasses
|
|
15133
15502
|
} = provideLocale(props);
|
|
15134
15503
|
useRender(() => createVNode("div", {
|
|
15135
|
-
"class": ['v-locale-provider', rtlClasses.value]
|
|
15504
|
+
"class": ['v-locale-provider', rtlClasses.value, props.class],
|
|
15505
|
+
"style": props.style
|
|
15136
15506
|
}, [slots.default?.()]));
|
|
15137
15507
|
return {};
|
|
15138
15508
|
}
|
|
@@ -15142,6 +15512,7 @@ const VMain = genericComponent()({
|
|
|
15142
15512
|
name: 'VMain',
|
|
15143
15513
|
props: {
|
|
15144
15514
|
scrollable: Boolean,
|
|
15515
|
+
...makeComponentProps(),
|
|
15145
15516
|
...makeTagProps({
|
|
15146
15517
|
tag: 'main'
|
|
15147
15518
|
})
|
|
@@ -15159,8 +15530,8 @@ const VMain = genericComponent()({
|
|
|
15159
15530
|
useRender(() => createVNode(props.tag, {
|
|
15160
15531
|
"class": ['v-main', {
|
|
15161
15532
|
'v-main--scrollable': props.scrollable
|
|
15162
|
-
}],
|
|
15163
|
-
"style": [mainStyles.value, ssrBootStyles.value]
|
|
15533
|
+
}, props.class],
|
|
15534
|
+
"style": [mainStyles.value, ssrBootStyles.value, props.style]
|
|
15164
15535
|
}, {
|
|
15165
15536
|
default: () => [props.scrollable ? createVNode("div", {
|
|
15166
15537
|
"class": "v-main__scroller"
|
|
@@ -15506,6 +15877,7 @@ const VNavigationDrawer = genericComponent()({
|
|
|
15506
15877
|
},
|
|
15507
15878
|
sticky: Boolean,
|
|
15508
15879
|
...makeBorderProps(),
|
|
15880
|
+
...makeComponentProps(),
|
|
15509
15881
|
...makeElevationProps(),
|
|
15510
15882
|
...makeLayoutItemProps(),
|
|
15511
15883
|
...makeRoundedProps(),
|
|
@@ -15657,8 +16029,8 @@ const VNavigationDrawer = genericComponent()({
|
|
|
15657
16029
|
'v-navigation-drawer--temporary': isTemporary.value,
|
|
15658
16030
|
'v-navigation-drawer--active': isActive.value,
|
|
15659
16031
|
'v-navigation-drawer--sticky': isSticky.value
|
|
15660
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value],
|
|
15661
|
-
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value]
|
|
16032
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
16033
|
+
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value, props.style]
|
|
15662
16034
|
}, attrs), {
|
|
15663
16035
|
default: () => [hasImage && createVNode("div", {
|
|
15664
16036
|
"key": "image",
|
|
@@ -15787,6 +16159,7 @@ const VPagination = genericComponent()({
|
|
|
15787
16159
|
},
|
|
15788
16160
|
showFirstLastPage: Boolean,
|
|
15789
16161
|
...makeBorderProps(),
|
|
16162
|
+
...makeComponentProps(),
|
|
15790
16163
|
...makeDensityProps(),
|
|
15791
16164
|
...makeElevationProps(),
|
|
15792
16165
|
...makeRoundedProps(),
|
|
@@ -15983,7 +16356,8 @@ const VPagination = genericComponent()({
|
|
|
15983
16356
|
}
|
|
15984
16357
|
useRender(() => createVNode(props.tag, {
|
|
15985
16358
|
"ref": resizeRef,
|
|
15986
|
-
"class": ['v-pagination', themeClasses.value],
|
|
16359
|
+
"class": ['v-pagination', themeClasses.value, props.class],
|
|
16360
|
+
"style": props.style,
|
|
15987
16361
|
"role": "navigation",
|
|
15988
16362
|
"aria-label": t(props.ariaLabel),
|
|
15989
16363
|
"onKeydown": onKeydown,
|
|
@@ -16042,7 +16416,8 @@ const VParallax = genericComponent()({
|
|
|
16042
16416
|
scale: {
|
|
16043
16417
|
type: [Number, String],
|
|
16044
16418
|
default: 0.5
|
|
16045
|
-
}
|
|
16419
|
+
},
|
|
16420
|
+
...makeComponentProps()
|
|
16046
16421
|
},
|
|
16047
16422
|
setup(props, _ref) {
|
|
16048
16423
|
let {
|
|
@@ -16104,7 +16479,8 @@ const VParallax = genericComponent()({
|
|
|
16104
16479
|
useRender(() => createVNode(VImg, {
|
|
16105
16480
|
"class": ['v-parallax', {
|
|
16106
16481
|
'v-parallax--active': isIntersecting.value
|
|
16107
|
-
}],
|
|
16482
|
+
}, props.class],
|
|
16483
|
+
"style": props.style,
|
|
16108
16484
|
"ref": root,
|
|
16109
16485
|
"cover": true,
|
|
16110
16486
|
"onLoadstart": onScroll,
|
|
@@ -16129,7 +16505,8 @@ const VRadio = genericComponent()({
|
|
|
16129
16505
|
slots
|
|
16130
16506
|
} = _ref;
|
|
16131
16507
|
useRender(() => createVNode(VSelectionControl, mergeProps(props, {
|
|
16132
|
-
"class":
|
|
16508
|
+
"class": ['v-radio', props.class],
|
|
16509
|
+
"style": props.style,
|
|
16133
16510
|
"type": "radio"
|
|
16134
16511
|
}), slots));
|
|
16135
16512
|
return {};
|
|
@@ -16183,7 +16560,8 @@ const VRadioGroup = genericComponent()({
|
|
|
16183
16560
|
}
|
|
16184
16561
|
}) : props.label;
|
|
16185
16562
|
return createVNode(VInput, mergeProps({
|
|
16186
|
-
"class":
|
|
16563
|
+
"class": ['v-radio-group', props.class],
|
|
16564
|
+
"style": props.style
|
|
16187
16565
|
}, inputAttrs, inputProps, {
|
|
16188
16566
|
"modelValue": model.value,
|
|
16189
16567
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
@@ -16239,11 +16617,14 @@ const VRangeSlider = genericComponent()({
|
|
|
16239
16617
|
},
|
|
16240
16618
|
emits: {
|
|
16241
16619
|
'update:focused': value => true,
|
|
16242
|
-
'update:modelValue': value => true
|
|
16620
|
+
'update:modelValue': value => true,
|
|
16621
|
+
end: value => true,
|
|
16622
|
+
start: value => true
|
|
16243
16623
|
},
|
|
16244
16624
|
setup(props, _ref) {
|
|
16245
16625
|
let {
|
|
16246
|
-
slots
|
|
16626
|
+
slots,
|
|
16627
|
+
emit
|
|
16247
16628
|
} = _ref;
|
|
16248
16629
|
const startThumbRef = ref();
|
|
16249
16630
|
const stopThumbRef = ref();
|
|
@@ -16256,6 +16637,11 @@ const VRangeSlider = genericComponent()({
|
|
|
16256
16637
|
const b = Math.abs(stopOffset);
|
|
16257
16638
|
return a < b || a === b && startOffset < 0 ? startThumbRef.value.$el : stopThumbRef.value.$el;
|
|
16258
16639
|
}
|
|
16640
|
+
const steps = useSteps(props);
|
|
16641
|
+
const model = useProxiedModel(props, 'modelValue', undefined, arr => {
|
|
16642
|
+
if (!arr?.length) return [0, 0];
|
|
16643
|
+
return arr.map(value => steps.roundValue(value));
|
|
16644
|
+
});
|
|
16259
16645
|
const {
|
|
16260
16646
|
activeThumbRef,
|
|
16261
16647
|
hasLabels,
|
|
@@ -16265,34 +16651,37 @@ const VRangeSlider = genericComponent()({
|
|
|
16265
16651
|
onSliderMousedown,
|
|
16266
16652
|
onSliderTouchstart,
|
|
16267
16653
|
position,
|
|
16268
|
-
roundValue,
|
|
16269
16654
|
trackContainerRef
|
|
16270
16655
|
} = useSlider({
|
|
16271
|
-
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
16272
16656
|
props,
|
|
16273
|
-
|
|
16274
|
-
|
|
16657
|
+
steps,
|
|
16658
|
+
onSliderStart: () => {
|
|
16659
|
+
emit('start', model.value);
|
|
16660
|
+
},
|
|
16661
|
+
onSliderEnd: _ref2 => {
|
|
16662
|
+
let {
|
|
16663
|
+
value
|
|
16664
|
+
} = _ref2;
|
|
16665
|
+
const newValue = activeThumbRef.value === startThumbRef.value?.$el ? [value, model.value[1]] : [model.value[0], value];
|
|
16666
|
+
model.value = newValue;
|
|
16667
|
+
emit('end', newValue);
|
|
16275
16668
|
},
|
|
16276
|
-
|
|
16669
|
+
onSliderMove: _ref3 => {
|
|
16670
|
+
let {
|
|
16671
|
+
value
|
|
16672
|
+
} = _ref3;
|
|
16277
16673
|
const [start, stop] = model.value;
|
|
16278
16674
|
if (!props.strict && start === stop && start !== min.value) {
|
|
16279
|
-
activeThumbRef.value =
|
|
16675
|
+
activeThumbRef.value = value > start ? stopThumbRef.value?.$el : startThumbRef.value?.$el;
|
|
16280
16676
|
activeThumbRef.value?.focus();
|
|
16281
16677
|
}
|
|
16282
16678
|
if (activeThumbRef.value === startThumbRef.value?.$el) {
|
|
16283
|
-
model.value = [Math.min(
|
|
16679
|
+
model.value = [Math.min(value, stop), stop];
|
|
16284
16680
|
} else {
|
|
16285
|
-
model.value = [start, Math.max(start,
|
|
16681
|
+
model.value = [start, Math.max(start, value)];
|
|
16286
16682
|
}
|
|
16287
16683
|
},
|
|
16288
16684
|
getActiveThumb
|
|
16289
|
-
/* eslint-enable @typescript-eslint/no-use-before-define */
|
|
16290
|
-
});
|
|
16291
|
-
|
|
16292
|
-
const model = useProxiedModel(props, 'modelValue', undefined, arr => {
|
|
16293
|
-
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
16294
|
-
if (!arr || !arr.length) return [0, 0];
|
|
16295
|
-
return arr.map(value => roundValue(value));
|
|
16296
16685
|
});
|
|
16297
16686
|
const {
|
|
16298
16687
|
isFocused,
|
|
@@ -16310,7 +16699,8 @@ const VRangeSlider = genericComponent()({
|
|
|
16310
16699
|
'v-slider--focused': isFocused.value,
|
|
16311
16700
|
'v-slider--pressed': mousePressed.value,
|
|
16312
16701
|
'v-slider--disabled': props.disabled
|
|
16313
|
-
}],
|
|
16702
|
+
}, props.class],
|
|
16703
|
+
"style": props.style,
|
|
16314
16704
|
"ref": inputRef
|
|
16315
16705
|
}, inputProps, {
|
|
16316
16706
|
"focused": isFocused.value
|
|
@@ -16320,11 +16710,11 @@ const VRangeSlider = genericComponent()({
|
|
|
16320
16710
|
"class": "v-slider__label",
|
|
16321
16711
|
"text": props.label
|
|
16322
16712
|
}, null) : undefined, slots.prepend?.(slotProps)]) : undefined,
|
|
16323
|
-
default:
|
|
16713
|
+
default: _ref4 => {
|
|
16324
16714
|
let {
|
|
16325
16715
|
id,
|
|
16326
16716
|
messagesId
|
|
16327
|
-
} =
|
|
16717
|
+
} = _ref4;
|
|
16328
16718
|
return createVNode("div", {
|
|
16329
16719
|
"class": "v-slider__container",
|
|
16330
16720
|
"onMousedown": onSliderMousedown,
|
|
@@ -16453,6 +16843,7 @@ const VRating = genericComponent()({
|
|
|
16453
16843
|
validator: v => ['top', 'bottom'].includes(v)
|
|
16454
16844
|
},
|
|
16455
16845
|
ripple: Boolean,
|
|
16846
|
+
...makeComponentProps(),
|
|
16456
16847
|
...makeDensityProps(),
|
|
16457
16848
|
...makeSizeProps(),
|
|
16458
16849
|
...makeTagProps(),
|
|
@@ -16476,9 +16867,6 @@ const VRating = genericComponent()({
|
|
|
16476
16867
|
const range = computed(() => createRange(Number(props.length), 1));
|
|
16477
16868
|
const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]));
|
|
16478
16869
|
const hoverIndex = ref(-1);
|
|
16479
|
-
const focusIndex = ref(-1);
|
|
16480
|
-
const firstRef = ref();
|
|
16481
|
-
let isClicking = false;
|
|
16482
16870
|
const itemState = computed(() => increments.value.map(value => {
|
|
16483
16871
|
const isHovering = props.hover && hoverIndex.value > -1;
|
|
16484
16872
|
const isFilled = normalizedValue.value >= value;
|
|
@@ -16501,16 +16889,6 @@ const VRating = genericComponent()({
|
|
|
16501
16889
|
function onMouseleave() {
|
|
16502
16890
|
hoverIndex.value = -1;
|
|
16503
16891
|
}
|
|
16504
|
-
function onFocus() {
|
|
16505
|
-
if (value === 0 && normalizedValue.value === 0) {
|
|
16506
|
-
firstRef.value?.focus();
|
|
16507
|
-
} else {
|
|
16508
|
-
focusIndex.value = value;
|
|
16509
|
-
}
|
|
16510
|
-
}
|
|
16511
|
-
function onBlur() {
|
|
16512
|
-
if (!isClicking) focusIndex.value = -1;
|
|
16513
|
-
}
|
|
16514
16892
|
function onClick() {
|
|
16515
16893
|
if (props.disabled || props.readonly) return;
|
|
16516
16894
|
rating.value = normalizedValue.value === value && props.clearable ? 0 : value;
|
|
@@ -16518,17 +16896,9 @@ const VRating = genericComponent()({
|
|
|
16518
16896
|
return {
|
|
16519
16897
|
onMouseenter: props.hover ? onMouseenter : undefined,
|
|
16520
16898
|
onMouseleave: props.hover ? onMouseleave : undefined,
|
|
16521
|
-
onFocus,
|
|
16522
|
-
onBlur,
|
|
16523
16899
|
onClick
|
|
16524
16900
|
};
|
|
16525
16901
|
}));
|
|
16526
|
-
function onMousedown() {
|
|
16527
|
-
isClicking = true;
|
|
16528
|
-
}
|
|
16529
|
-
function onMouseup() {
|
|
16530
|
-
isClicking = false;
|
|
16531
|
-
}
|
|
16532
16902
|
const name = computed(() => props.name ?? `v-rating-${getUid()}`);
|
|
16533
16903
|
function VRatingItem(_ref2) {
|
|
16534
16904
|
let {
|
|
@@ -16539,8 +16909,6 @@ const VRating = genericComponent()({
|
|
|
16539
16909
|
const {
|
|
16540
16910
|
onMouseenter,
|
|
16541
16911
|
onMouseleave,
|
|
16542
|
-
onFocus,
|
|
16543
|
-
onBlur,
|
|
16544
16912
|
onClick
|
|
16545
16913
|
} = eventState.value[index + 1];
|
|
16546
16914
|
const id = `${name.value}-${String(value).replace('.', '-')}`;
|
|
@@ -16551,7 +16919,6 @@ const VRating = genericComponent()({
|
|
|
16551
16919
|
icon: itemState.value[index]?.icon,
|
|
16552
16920
|
ripple: props.ripple,
|
|
16553
16921
|
size: props.size,
|
|
16554
|
-
tag: 'span',
|
|
16555
16922
|
variant: 'plain'
|
|
16556
16923
|
};
|
|
16557
16924
|
return createVNode(Fragment, null, [createVNode("label", {
|
|
@@ -16560,17 +16927,17 @@ const VRating = genericComponent()({
|
|
|
16560
16927
|
'v-rating__item--half': props.halfIncrements && value % 1 > 0,
|
|
16561
16928
|
'v-rating__item--full': props.halfIncrements && value % 1 === 0
|
|
16562
16929
|
},
|
|
16563
|
-
"onMousedown": onMousedown,
|
|
16564
|
-
"onMouseup": onMouseup,
|
|
16565
16930
|
"onMouseenter": onMouseenter,
|
|
16566
|
-
"onMouseleave": onMouseleave
|
|
16931
|
+
"onMouseleave": onMouseleave,
|
|
16932
|
+
"onClick": onClick
|
|
16567
16933
|
}, [createVNode("span", {
|
|
16568
16934
|
"class": "v-rating__hidden"
|
|
16569
16935
|
}, [t(props.itemAriaLabel, value, props.length)]), !showStar ? undefined : slots.item ? slots.item({
|
|
16570
16936
|
...itemState.value[index],
|
|
16571
16937
|
props: btnProps,
|
|
16572
16938
|
value,
|
|
16573
|
-
index
|
|
16939
|
+
index,
|
|
16940
|
+
rating: normalizedValue.value
|
|
16574
16941
|
}) : createVNode(VBtn, btnProps, null)]), createVNode("input", {
|
|
16575
16942
|
"class": "v-rating__hidden",
|
|
16576
16943
|
"name": name.value,
|
|
@@ -16578,10 +16945,7 @@ const VRating = genericComponent()({
|
|
|
16578
16945
|
"type": "radio",
|
|
16579
16946
|
"value": value,
|
|
16580
16947
|
"checked": normalizedValue.value === value,
|
|
16581
|
-
"
|
|
16582
|
-
"onFocus": onFocus,
|
|
16583
|
-
"onBlur": onBlur,
|
|
16584
|
-
"ref": index === 0 ? firstRef : undefined,
|
|
16948
|
+
"tabindex": -1,
|
|
16585
16949
|
"readonly": props.readonly,
|
|
16586
16950
|
"disabled": props.disabled
|
|
16587
16951
|
}, null)]);
|
|
@@ -16597,7 +16961,8 @@ const VRating = genericComponent()({
|
|
|
16597
16961
|
"class": ['v-rating', {
|
|
16598
16962
|
'v-rating--hover': props.hover,
|
|
16599
16963
|
'v-rating--readonly': props.readonly
|
|
16600
|
-
}, themeClasses.value]
|
|
16964
|
+
}, themeClasses.value, props.class],
|
|
16965
|
+
"style": props.style
|
|
16601
16966
|
}, {
|
|
16602
16967
|
default: () => [createVNode(VRatingItem, {
|
|
16603
16968
|
"value": 0,
|
|
@@ -16610,9 +16975,7 @@ const VRating = genericComponent()({
|
|
|
16610
16975
|
index: i,
|
|
16611
16976
|
label: props.itemLabels?.[i]
|
|
16612
16977
|
}) : undefined, createVNode("div", {
|
|
16613
|
-
"class":
|
|
16614
|
-
'v-rating__item--focused': Math.ceil(focusIndex.value) === value
|
|
16615
|
-
}]
|
|
16978
|
+
"class": "v-rating__item"
|
|
16616
16979
|
}, [props.halfIncrements ? createVNode(Fragment, null, [createVNode(VRatingItem, {
|
|
16617
16980
|
"value": value - 0.5,
|
|
16618
16981
|
"index": i * 2
|
|
@@ -16699,6 +17062,7 @@ const makeVSlideGroupProps = propsFactory({
|
|
|
16699
17062
|
type: [Boolean, String],
|
|
16700
17063
|
validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
|
|
16701
17064
|
},
|
|
17065
|
+
...makeComponentProps(),
|
|
16702
17066
|
...makeTagProps(),
|
|
16703
17067
|
...makeGroupProps({
|
|
16704
17068
|
selectedClass: 'v-slide-group-item--active'
|
|
@@ -16862,7 +17226,7 @@ const VSlideGroup = genericComponent()({
|
|
|
16862
17226
|
function focus(location) {
|
|
16863
17227
|
if (!contentRef.value) return;
|
|
16864
17228
|
if (!location) {
|
|
16865
|
-
const focusable =
|
|
17229
|
+
const focusable = focusableChildren(contentRef.value);
|
|
16866
17230
|
focusable[0]?.focus();
|
|
16867
17231
|
} else if (location === 'next') {
|
|
16868
17232
|
const el = contentRef.value.querySelector(':focus')?.nextElementSibling;
|
|
@@ -16939,7 +17303,8 @@ const VSlideGroup = genericComponent()({
|
|
|
16939
17303
|
'v-slide-group--vertical': !isHorizontal.value,
|
|
16940
17304
|
'v-slide-group--has-affixes': hasAffixes.value,
|
|
16941
17305
|
'v-slide-group--is-overflowing': isOverflowing.value
|
|
16942
|
-
}],
|
|
17306
|
+
}, props.class],
|
|
17307
|
+
"style": props.style,
|
|
16943
17308
|
"tabindex": isFocused.value || group.selected.value.length ? -1 : 0,
|
|
16944
17309
|
"onFocus": onFocus
|
|
16945
17310
|
}, {
|
|
@@ -17089,7 +17454,8 @@ const VSnackbar = genericComponent()({
|
|
|
17089
17454
|
'v-snackbar--active': isActive.value,
|
|
17090
17455
|
'v-snackbar--multi-line': props.multiLine && !props.vertical,
|
|
17091
17456
|
'v-snackbar--vertical': props.vertical
|
|
17092
|
-
}, positionClasses.value]
|
|
17457
|
+
}, positionClasses.value, props.class],
|
|
17458
|
+
"style": props.style
|
|
17093
17459
|
}, overlayProps, {
|
|
17094
17460
|
"modelValue": isActive.value,
|
|
17095
17461
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
@@ -17189,7 +17555,8 @@ const VSwitch = genericComponent()({
|
|
|
17189
17555
|
'v-switch--inset': props.inset
|
|
17190
17556
|
}, {
|
|
17191
17557
|
'v-switch--indeterminate': indeterminate.value
|
|
17192
|
-
}, loaderClasses.value]
|
|
17558
|
+
}, loaderClasses.value, props.class],
|
|
17559
|
+
"style": props.style
|
|
17193
17560
|
}, inputAttrs, inputProps, {
|
|
17194
17561
|
"id": id.value,
|
|
17195
17562
|
"focused": isFocused.value
|
|
@@ -17258,6 +17625,7 @@ const VSystemBar = genericComponent()({
|
|
|
17258
17625
|
color: String,
|
|
17259
17626
|
height: [Number, String],
|
|
17260
17627
|
window: Boolean,
|
|
17628
|
+
...makeComponentProps(),
|
|
17261
17629
|
...makeElevationProps(),
|
|
17262
17630
|
...makeLayoutItemProps(),
|
|
17263
17631
|
...makeRoundedProps(),
|
|
@@ -17299,8 +17667,8 @@ const VSystemBar = genericComponent()({
|
|
|
17299
17667
|
useRender(() => createVNode(props.tag, {
|
|
17300
17668
|
"class": ['v-system-bar', {
|
|
17301
17669
|
'v-system-bar--window': props.window
|
|
17302
|
-
}, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value],
|
|
17303
|
-
"style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value]
|
|
17670
|
+
}, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
17671
|
+
"style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, props.style]
|
|
17304
17672
|
}, slots));
|
|
17305
17673
|
return {};
|
|
17306
17674
|
}
|
|
@@ -17312,7 +17680,6 @@ const VTab = genericComponent()({
|
|
|
17312
17680
|
name: 'VTab',
|
|
17313
17681
|
props: {
|
|
17314
17682
|
fixed: Boolean,
|
|
17315
|
-
title: String,
|
|
17316
17683
|
sliderColor: String,
|
|
17317
17684
|
hideSlider: Boolean,
|
|
17318
17685
|
direction: {
|
|
@@ -17374,10 +17741,10 @@ const VTab = genericComponent()({
|
|
|
17374
17741
|
useRender(() => {
|
|
17375
17742
|
const [btnProps] = VBtn.filterProps(props);
|
|
17376
17743
|
return createVNode(VBtn, mergeProps({
|
|
17377
|
-
"_as": "VTab",
|
|
17378
17744
|
"symbol": VTabsSymbol,
|
|
17379
17745
|
"ref": rootEl,
|
|
17380
|
-
"class": ['v-tab'],
|
|
17746
|
+
"class": ['v-tab', props.class],
|
|
17747
|
+
"style": props.style,
|
|
17381
17748
|
"tabindex": isSelected.value ? 0 : -1,
|
|
17382
17749
|
"role": "tab",
|
|
17383
17750
|
"aria-selected": String(isSelected.value),
|
|
@@ -17388,7 +17755,7 @@ const VTab = genericComponent()({
|
|
|
17388
17755
|
}, btnProps, attrs, {
|
|
17389
17756
|
"onGroup:selected": updateSlider
|
|
17390
17757
|
}), {
|
|
17391
|
-
default: () => [slots.default
|
|
17758
|
+
default: () => [slots.default?.() ?? props.text, !props.hideSlider && createVNode("div", {
|
|
17392
17759
|
"ref": sliderEl,
|
|
17393
17760
|
"class": ['v-tab__slider', sliderColorClasses.value],
|
|
17394
17761
|
"style": sliderColorStyles.value
|
|
@@ -17472,10 +17839,10 @@ const VTabs = genericComponent()({
|
|
|
17472
17839
|
'v-tabs--fixed-tabs': props.fixedTabs,
|
|
17473
17840
|
'v-tabs--grow': props.grow,
|
|
17474
17841
|
'v-tabs--stacked': props.stacked
|
|
17475
|
-
}, densityClasses.value, backgroundColorClasses.value],
|
|
17842
|
+
}, densityClasses.value, backgroundColorClasses.value, props.class],
|
|
17476
17843
|
"style": [{
|
|
17477
17844
|
'--v-tabs-height': convertToUnit(props.height)
|
|
17478
|
-
}, backgroundColorStyles.value],
|
|
17845
|
+
}, backgroundColorStyles.value, props.style],
|
|
17479
17846
|
"role": "tablist",
|
|
17480
17847
|
"symbol": VTabsSymbol
|
|
17481
17848
|
}), {
|
|
@@ -17495,6 +17862,7 @@ const VTable = genericComponent()({
|
|
|
17495
17862
|
fixedFooter: Boolean,
|
|
17496
17863
|
height: [Number, String],
|
|
17497
17864
|
hover: Boolean,
|
|
17865
|
+
...makeComponentProps(),
|
|
17498
17866
|
...makeDensityProps(),
|
|
17499
17867
|
...makeTagProps(),
|
|
17500
17868
|
...makeThemeProps()
|
|
@@ -17517,7 +17885,8 @@ const VTable = genericComponent()({
|
|
|
17517
17885
|
'v-table--has-top': !!slots.top,
|
|
17518
17886
|
'v-table--has-bottom': !!slots.bottom,
|
|
17519
17887
|
'v-table--hover': props.hover
|
|
17520
|
-
}, themeClasses.value, densityClasses.value]
|
|
17888
|
+
}, themeClasses.value, densityClasses.value, props.class],
|
|
17889
|
+
"style": props.style
|
|
17521
17890
|
}, {
|
|
17522
17891
|
default: () => [slots.top?.(), slots.default ? createVNode("div", {
|
|
17523
17892
|
"class": "v-table__wrapper",
|
|
@@ -17682,7 +18051,8 @@ const VTextarea = genericComponent()({
|
|
|
17682
18051
|
'v-textarea--auto-grow': props.autoGrow,
|
|
17683
18052
|
'v-textarea--no-resize': props.noResize || props.autoGrow,
|
|
17684
18053
|
'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant)
|
|
17685
|
-
}]
|
|
18054
|
+
}, props.class],
|
|
18055
|
+
"style": props.style
|
|
17686
18056
|
}, rootAttrs, inputProps, {
|
|
17687
18057
|
"focused": isFocused.value
|
|
17688
18058
|
}), {
|
|
@@ -17766,6 +18136,7 @@ const VThemeProvider = genericComponent()({
|
|
|
17766
18136
|
name: 'VThemeProvider',
|
|
17767
18137
|
props: {
|
|
17768
18138
|
withBackground: Boolean,
|
|
18139
|
+
...makeComponentProps(),
|
|
17769
18140
|
...makeThemeProps(),
|
|
17770
18141
|
...makeTagProps()
|
|
17771
18142
|
},
|
|
@@ -17779,7 +18150,8 @@ const VThemeProvider = genericComponent()({
|
|
|
17779
18150
|
return () => {
|
|
17780
18151
|
if (!props.withBackground) return slots.default?.();
|
|
17781
18152
|
return createVNode(props.tag, {
|
|
17782
|
-
"class": ['v-theme-provider', themeClasses.value]
|
|
18153
|
+
"class": ['v-theme-provider', themeClasses.value, props.class],
|
|
18154
|
+
"style": props.style
|
|
17783
18155
|
}, {
|
|
17784
18156
|
default: () => [slots.default?.()]
|
|
17785
18157
|
});
|
|
@@ -17824,6 +18196,7 @@ const VTimeline = genericComponent()({
|
|
|
17824
18196
|
type: String,
|
|
17825
18197
|
validator: v => ['start', 'end', 'both'].includes(v)
|
|
17826
18198
|
},
|
|
18199
|
+
...makeComponentProps(),
|
|
17827
18200
|
...makeDensityProps(),
|
|
17828
18201
|
...makeTagProps(),
|
|
17829
18202
|
...makeThemeProps()
|
|
@@ -17867,10 +18240,10 @@ const VTimeline = genericComponent()({
|
|
|
17867
18240
|
useRender(() => createVNode(props.tag, {
|
|
17868
18241
|
"class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {
|
|
17869
18242
|
'v-timeline--inset-line': !!props.lineInset
|
|
17870
|
-
}, themeClasses.value, densityClasses.value, sideClasses.value],
|
|
17871
|
-
"style": {
|
|
18243
|
+
}, themeClasses.value, densityClasses.value, sideClasses.value, props.class],
|
|
18244
|
+
"style": [{
|
|
17872
18245
|
'--v-timeline-line-thickness': convertToUnit(props.lineThickness)
|
|
17873
|
-
}
|
|
18246
|
+
}, props.style]
|
|
17874
18247
|
}, slots));
|
|
17875
18248
|
return {};
|
|
17876
18249
|
}
|
|
@@ -17885,6 +18258,7 @@ const VTimelineDivider = genericComponent()({
|
|
|
17885
18258
|
icon: IconValue,
|
|
17886
18259
|
iconColor: String,
|
|
17887
18260
|
lineColor: String,
|
|
18261
|
+
...makeComponentProps(),
|
|
17888
18262
|
...makeRoundedProps(),
|
|
17889
18263
|
...makeSizeProps(),
|
|
17890
18264
|
...makeElevationProps()
|
|
@@ -17914,7 +18288,8 @@ const VTimelineDivider = genericComponent()({
|
|
|
17914
18288
|
useRender(() => createVNode("div", {
|
|
17915
18289
|
"class": ['v-timeline-divider', {
|
|
17916
18290
|
'v-timeline-divider--fill-dot': props.fillDot
|
|
17917
|
-
}]
|
|
18291
|
+
}, props.class],
|
|
18292
|
+
"style": props.style
|
|
17918
18293
|
}, [createVNode("div", {
|
|
17919
18294
|
"class": ['v-timeline-divider__before', lineColorClasses.value],
|
|
17920
18295
|
"style": lineColorStyles.value
|
|
@@ -17964,11 +18339,12 @@ const VTimelineItem = genericComponent()({
|
|
|
17964
18339
|
icon: IconValue,
|
|
17965
18340
|
iconColor: String,
|
|
17966
18341
|
lineInset: [Number, String],
|
|
17967
|
-
...
|
|
18342
|
+
...makeComponentProps(),
|
|
18343
|
+
...makeDimensionProps(),
|
|
17968
18344
|
...makeElevationProps(),
|
|
18345
|
+
...makeRoundedProps(),
|
|
17969
18346
|
...makeSizeProps(),
|
|
17970
|
-
...makeTagProps()
|
|
17971
|
-
...makeDimensionProps()
|
|
18347
|
+
...makeTagProps()
|
|
17972
18348
|
},
|
|
17973
18349
|
setup(props, _ref) {
|
|
17974
18350
|
let {
|
|
@@ -17988,11 +18364,11 @@ const VTimelineItem = genericComponent()({
|
|
|
17988
18364
|
useRender(() => createVNode("div", {
|
|
17989
18365
|
"class": ['v-timeline-item', {
|
|
17990
18366
|
'v-timeline-item--fill-dot': props.fillDot
|
|
17991
|
-
}],
|
|
17992
|
-
"style": {
|
|
18367
|
+
}, props.class],
|
|
18368
|
+
"style": [{
|
|
17993
18369
|
'--v-timeline-dot-size': convertToUnit(dotSize.value),
|
|
17994
18370
|
'--v-timeline-line-inset': props.lineInset ? `calc(var(--v-timeline-dot-size) / 2 + ${convertToUnit(props.lineInset)})` : convertToUnit(0)
|
|
17995
|
-
}
|
|
18371
|
+
}, props.style]
|
|
17996
18372
|
}, [createVNode("div", {
|
|
17997
18373
|
"class": "v-timeline-item__body",
|
|
17998
18374
|
"style": dimensionStyles.value
|
|
@@ -18026,6 +18402,7 @@ const VTooltip = genericComponent()({
|
|
|
18026
18402
|
closeOnBack: false,
|
|
18027
18403
|
location: 'end',
|
|
18028
18404
|
locationStrategy: 'connected',
|
|
18405
|
+
eager: true,
|
|
18029
18406
|
minWidth: 0,
|
|
18030
18407
|
offset: 10,
|
|
18031
18408
|
openOnClick: false,
|
|
@@ -18034,7 +18411,7 @@ const VTooltip = genericComponent()({
|
|
|
18034
18411
|
scrim: false,
|
|
18035
18412
|
scrollStrategy: 'reposition',
|
|
18036
18413
|
transition: false
|
|
18037
|
-
}), ['absolute', 'persistent'
|
|
18414
|
+
}), ['absolute', 'persistent'])
|
|
18038
18415
|
},
|
|
18039
18416
|
emits: {
|
|
18040
18417
|
'update:modelValue': value => true
|
|
@@ -18067,7 +18444,8 @@ const VTooltip = genericComponent()({
|
|
|
18067
18444
|
const [overlayProps] = VOverlay.filterProps(props);
|
|
18068
18445
|
return createVNode(VOverlay, mergeProps({
|
|
18069
18446
|
"ref": overlay,
|
|
18070
|
-
"class": ['v-tooltip'],
|
|
18447
|
+
"class": ['v-tooltip', props.class],
|
|
18448
|
+
"style": props.style,
|
|
18071
18449
|
"id": id.value
|
|
18072
18450
|
}, overlayProps, {
|
|
18073
18451
|
"modelValue": isActive.value,
|
|
@@ -18078,7 +18456,6 @@ const VTooltip = genericComponent()({
|
|
|
18078
18456
|
"origin": origin.value,
|
|
18079
18457
|
"persistent": true,
|
|
18080
18458
|
"role": "tooltip",
|
|
18081
|
-
"eager": true,
|
|
18082
18459
|
"activatorProps": activatorProps.value,
|
|
18083
18460
|
"_disableGlobalStack": true
|
|
18084
18461
|
}, scopeId), {
|
|
@@ -18113,40 +18490,210 @@ const VValidation = genericComponent()({
|
|
|
18113
18490
|
}
|
|
18114
18491
|
});
|
|
18115
18492
|
|
|
18116
|
-
const
|
|
18117
|
-
|
|
18118
|
-
|
|
18119
|
-
|
|
18493
|
+
const VVirtualScrollItem = genericComponent()({
|
|
18494
|
+
name: 'VVirtualScrollItem',
|
|
18495
|
+
props: {
|
|
18496
|
+
dynamicHeight: Boolean,
|
|
18497
|
+
...makeComponentProps()
|
|
18120
18498
|
},
|
|
18121
|
-
|
|
18122
|
-
|
|
18123
|
-
|
|
18124
|
-
|
|
18125
|
-
|
|
18126
|
-
|
|
18127
|
-
|
|
18128
|
-
}
|
|
18129
|
-
|
|
18130
|
-
|
|
18131
|
-
|
|
18132
|
-
|
|
18133
|
-
|
|
18134
|
-
|
|
18135
|
-
|
|
18136
|
-
|
|
18137
|
-
|
|
18138
|
-
|
|
18139
|
-
|
|
18140
|
-
|
|
18141
|
-
|
|
18142
|
-
width: convertToUnit(props.width),
|
|
18143
|
-
left: convertToUnit(props.fixedOffset || null)
|
|
18499
|
+
emits: {
|
|
18500
|
+
'update:height': height => true
|
|
18501
|
+
},
|
|
18502
|
+
setup(props, _ref) {
|
|
18503
|
+
let {
|
|
18504
|
+
emit,
|
|
18505
|
+
slots
|
|
18506
|
+
} = _ref;
|
|
18507
|
+
const {
|
|
18508
|
+
resizeRef,
|
|
18509
|
+
contentRect
|
|
18510
|
+
} = useResizeObserver();
|
|
18511
|
+
useToggleScope(() => props.dynamicHeight, () => {
|
|
18512
|
+
watch(() => contentRect.value?.height, height => {
|
|
18513
|
+
if (height != null) emit('update:height', height);
|
|
18514
|
+
});
|
|
18515
|
+
});
|
|
18516
|
+
function updateHeight() {
|
|
18517
|
+
if (props.dynamicHeight && contentRect.value) {
|
|
18518
|
+
emit('update:height', contentRect.value.height);
|
|
18519
|
+
}
|
|
18144
18520
|
}
|
|
18145
|
-
|
|
18146
|
-
|
|
18147
|
-
|
|
18148
|
-
|
|
18149
|
-
|
|
18521
|
+
onUpdated(updateHeight);
|
|
18522
|
+
useRender(() => createVNode("div", {
|
|
18523
|
+
"ref": props.dynamicHeight ? resizeRef : undefined,
|
|
18524
|
+
"class": ['v-virtual-scroll__item', props.class],
|
|
18525
|
+
"style": props.style
|
|
18526
|
+
}, [slots.default?.()]));
|
|
18527
|
+
}
|
|
18528
|
+
});
|
|
18529
|
+
|
|
18530
|
+
// Types
|
|
18531
|
+
|
|
18532
|
+
const UP$1 = -1;
|
|
18533
|
+
const DOWN$1 = 1;
|
|
18534
|
+
const VVirtualScroll = genericComponent()({
|
|
18535
|
+
name: 'VVirtualScroll',
|
|
18536
|
+
props: {
|
|
18537
|
+
items: {
|
|
18538
|
+
type: Array,
|
|
18539
|
+
default: () => []
|
|
18540
|
+
},
|
|
18541
|
+
itemHeight: [Number, String],
|
|
18542
|
+
...makeComponentProps(),
|
|
18543
|
+
...makeDimensionProps()
|
|
18544
|
+
},
|
|
18545
|
+
setup(props, _ref) {
|
|
18546
|
+
let {
|
|
18547
|
+
slots
|
|
18548
|
+
} = _ref;
|
|
18549
|
+
const first = ref(0);
|
|
18550
|
+
const baseItemHeight = ref(props.itemHeight);
|
|
18551
|
+
const itemHeight = computed({
|
|
18552
|
+
get: () => parseInt(baseItemHeight.value ?? 0, 10),
|
|
18553
|
+
set(val) {
|
|
18554
|
+
baseItemHeight.value = val;
|
|
18555
|
+
}
|
|
18556
|
+
});
|
|
18557
|
+
const rootEl = ref();
|
|
18558
|
+
const {
|
|
18559
|
+
resizeRef,
|
|
18560
|
+
contentRect
|
|
18561
|
+
} = useResizeObserver();
|
|
18562
|
+
watchEffect(() => {
|
|
18563
|
+
resizeRef.value = rootEl.value;
|
|
18564
|
+
});
|
|
18565
|
+
const display = useDisplay();
|
|
18566
|
+
const sizeMap = new Map();
|
|
18567
|
+
let sizes = createRange(props.items.length).map(() => itemHeight.value);
|
|
18568
|
+
const visibleItems = computed(() => {
|
|
18569
|
+
return Math.max(12, Math.ceil((contentRect.value?.height ?? display.height.value) / itemHeight.value * 1.7 + 1));
|
|
18570
|
+
});
|
|
18571
|
+
function handleItemResize(index, height) {
|
|
18572
|
+
itemHeight.value = Math.max(itemHeight.value, height);
|
|
18573
|
+
sizes[index] = height;
|
|
18574
|
+
sizeMap.set(props.items[index], height);
|
|
18575
|
+
}
|
|
18576
|
+
function calculateOffset(index) {
|
|
18577
|
+
return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0);
|
|
18578
|
+
}
|
|
18579
|
+
function calculateMidPointIndex(scrollTop) {
|
|
18580
|
+
const end = props.items.length;
|
|
18581
|
+
let middle = 0;
|
|
18582
|
+
let middleOffset = 0;
|
|
18583
|
+
while (middleOffset < scrollTop && middle < end) {
|
|
18584
|
+
middleOffset += sizes[middle++] || itemHeight.value;
|
|
18585
|
+
}
|
|
18586
|
+
return middle - 1;
|
|
18587
|
+
}
|
|
18588
|
+
let lastScrollTop = 0;
|
|
18589
|
+
function handleScroll() {
|
|
18590
|
+
if (!rootEl.value || !contentRect.value) return;
|
|
18591
|
+
const height = contentRect.value.height;
|
|
18592
|
+
const scrollTop = rootEl.value.scrollTop;
|
|
18593
|
+
const direction = scrollTop < lastScrollTop ? UP$1 : DOWN$1;
|
|
18594
|
+
const midPointIndex = calculateMidPointIndex(scrollTop + height / 2);
|
|
18595
|
+
const buffer = Math.round(visibleItems.value / 3);
|
|
18596
|
+
if (direction === UP$1 && midPointIndex <= first.value + buffer * 2 - 1) {
|
|
18597
|
+
first.value = clamp(midPointIndex - buffer, 0, props.items.length);
|
|
18598
|
+
} else if (direction === DOWN$1 && midPointIndex >= first.value + buffer * 2 - 1) {
|
|
18599
|
+
first.value = clamp(midPointIndex - buffer, 0, props.items.length - visibleItems.value);
|
|
18600
|
+
}
|
|
18601
|
+
lastScrollTop = rootEl.value.scrollTop;
|
|
18602
|
+
}
|
|
18603
|
+
function scrollToIndex(index) {
|
|
18604
|
+
if (!rootEl.value) return;
|
|
18605
|
+
const offset = calculateOffset(index);
|
|
18606
|
+
rootEl.value.scrollTop = offset;
|
|
18607
|
+
}
|
|
18608
|
+
const items = computed(() => props.items.map((item, index) => ({
|
|
18609
|
+
raw: item,
|
|
18610
|
+
index
|
|
18611
|
+
})));
|
|
18612
|
+
const last = computed(() => Math.min(props.items.length, first.value + visibleItems.value));
|
|
18613
|
+
const computedItems = computed(() => items.value.slice(first.value, last.value));
|
|
18614
|
+
const paddingTop = computed(() => calculateOffset(first.value));
|
|
18615
|
+
const paddingBottom = computed(() => calculateOffset(props.items.length) - calculateOffset(last.value));
|
|
18616
|
+
const {
|
|
18617
|
+
dimensionStyles
|
|
18618
|
+
} = useDimension(props);
|
|
18619
|
+
onMounted(() => {
|
|
18620
|
+
if (!itemHeight.value) {
|
|
18621
|
+
// If itemHeight prop is not set, then calculate an estimated height from the average of inital items
|
|
18622
|
+
itemHeight.value = sizes.slice(first.value, last.value).reduce((curr, height) => curr + height, 0) / visibleItems.value;
|
|
18623
|
+
}
|
|
18624
|
+
});
|
|
18625
|
+
watch(() => props.items.length, () => {
|
|
18626
|
+
sizes = createRange(props.items.length).map(() => itemHeight.value);
|
|
18627
|
+
sizeMap.forEach((height, item) => {
|
|
18628
|
+
const index = props.items.indexOf(item);
|
|
18629
|
+
if (index === -1) {
|
|
18630
|
+
sizeMap.delete(item);
|
|
18631
|
+
} else {
|
|
18632
|
+
sizes[index] = height;
|
|
18633
|
+
}
|
|
18634
|
+
});
|
|
18635
|
+
});
|
|
18636
|
+
useRender(() => createVNode("div", {
|
|
18637
|
+
"ref": rootEl,
|
|
18638
|
+
"class": ['v-virtual-scroll', props.class],
|
|
18639
|
+
"onScroll": handleScroll,
|
|
18640
|
+
"style": [dimensionStyles.value, props.style]
|
|
18641
|
+
}, [createVNode("div", {
|
|
18642
|
+
"class": "v-virtual-scroll__container",
|
|
18643
|
+
"style": {
|
|
18644
|
+
paddingTop: convertToUnit(paddingTop.value),
|
|
18645
|
+
paddingBottom: convertToUnit(paddingBottom.value)
|
|
18646
|
+
}
|
|
18647
|
+
}, [computedItems.value.map(item => createVNode(VVirtualScrollItem, {
|
|
18648
|
+
"key": item.index,
|
|
18649
|
+
"dynamicHeight": !props.itemHeight,
|
|
18650
|
+
"onUpdate:height": height => handleItemResize(item.index, height)
|
|
18651
|
+
}, {
|
|
18652
|
+
default: () => [slots.default?.({
|
|
18653
|
+
item: item.raw,
|
|
18654
|
+
index: item.index
|
|
18655
|
+
})]
|
|
18656
|
+
}))])]));
|
|
18657
|
+
return {
|
|
18658
|
+
scrollToIndex
|
|
18659
|
+
};
|
|
18660
|
+
}
|
|
18661
|
+
});
|
|
18662
|
+
|
|
18663
|
+
const VDataTableColumn = defineFunctionalComponent({
|
|
18664
|
+
align: {
|
|
18665
|
+
type: String,
|
|
18666
|
+
default: 'start'
|
|
18667
|
+
},
|
|
18668
|
+
fixed: Boolean,
|
|
18669
|
+
fixedOffset: [Number, String],
|
|
18670
|
+
height: [Number, String],
|
|
18671
|
+
lastFixed: Boolean,
|
|
18672
|
+
noPadding: Boolean,
|
|
18673
|
+
tag: String,
|
|
18674
|
+
width: [Number, String]
|
|
18675
|
+
}, (props, _ref) => {
|
|
18676
|
+
let {
|
|
18677
|
+
slots,
|
|
18678
|
+
attrs
|
|
18679
|
+
} = _ref;
|
|
18680
|
+
const Tag = props.tag ?? 'td';
|
|
18681
|
+
return createVNode(Tag, mergeProps({
|
|
18682
|
+
"class": ['v-data-table__td', {
|
|
18683
|
+
'v-data-table-column--fixed': props.fixed,
|
|
18684
|
+
'v-data-table-column--last-fixed': props.lastFixed,
|
|
18685
|
+
'v-data-table-column--no-padding': props.noPadding
|
|
18686
|
+
}, `v-data-table-column--align-${props.align}`],
|
|
18687
|
+
"style": {
|
|
18688
|
+
height: convertToUnit(props.height),
|
|
18689
|
+
width: convertToUnit(props.width),
|
|
18690
|
+
left: convertToUnit(props.fixedOffset || null)
|
|
18691
|
+
}
|
|
18692
|
+
}, attrs), {
|
|
18693
|
+
default: () => [slots.default?.()]
|
|
18694
|
+
});
|
|
18695
|
+
});
|
|
18696
|
+
|
|
18150
18697
|
// Utilities
|
|
18151
18698
|
|
|
18152
18699
|
// Types
|
|
@@ -18538,6 +19085,17 @@ const VDataTableHeaders = genericComponent()({
|
|
|
18538
19085
|
backgroundColorClasses,
|
|
18539
19086
|
backgroundColorStyles
|
|
18540
19087
|
} = useBackgroundColor(props, 'color');
|
|
19088
|
+
const slotProps = computed(() => ({
|
|
19089
|
+
headers: headers.value,
|
|
19090
|
+
columns: columns.value,
|
|
19091
|
+
toggleSort,
|
|
19092
|
+
sortBy: sortBy.value,
|
|
19093
|
+
someSelected: someSelected.value,
|
|
19094
|
+
allSelected: allSelected.value,
|
|
19095
|
+
selectAll,
|
|
19096
|
+
getSortIcon,
|
|
19097
|
+
getFixedStyles
|
|
19098
|
+
}));
|
|
18541
19099
|
const VDataTableHeaderCell = _ref2 => {
|
|
18542
19100
|
let {
|
|
18543
19101
|
column,
|
|
@@ -18565,14 +19123,14 @@ const VDataTableHeaders = genericComponent()({
|
|
|
18565
19123
|
"noPadding": noPadding
|
|
18566
19124
|
}, {
|
|
18567
19125
|
default: () => {
|
|
18568
|
-
const
|
|
18569
|
-
const
|
|
19126
|
+
const columnSlotName = `column.${column.key}`;
|
|
19127
|
+
const columnSlotProps = {
|
|
18570
19128
|
column,
|
|
18571
19129
|
selectAll
|
|
18572
19130
|
};
|
|
18573
|
-
if (slots[
|
|
19131
|
+
if (slots[columnSlotName]) return slots[columnSlotName](columnSlotProps);
|
|
18574
19132
|
if (column.key === 'data-table-select') {
|
|
18575
|
-
return slots['column.data-table-select']?.(
|
|
19133
|
+
return slots['column.data-table-select']?.(columnSlotProps) ?? createVNode(VCheckboxBtn, {
|
|
18576
19134
|
"modelValue": allSelected.value,
|
|
18577
19135
|
"indeterminate": someSelected.value && !allSelected.value,
|
|
18578
19136
|
"onUpdate:modelValue": selectAll
|
|
@@ -18592,22 +19150,24 @@ const VDataTableHeaders = genericComponent()({
|
|
|
18592
19150
|
}
|
|
18593
19151
|
});
|
|
18594
19152
|
};
|
|
18595
|
-
useRender(() =>
|
|
18596
|
-
"
|
|
18597
|
-
|
|
18598
|
-
|
|
18599
|
-
|
|
18600
|
-
"
|
|
18601
|
-
|
|
18602
|
-
"
|
|
18603
|
-
|
|
18604
|
-
|
|
18605
|
-
|
|
18606
|
-
|
|
18607
|
-
|
|
18608
|
-
|
|
18609
|
-
|
|
18610
|
-
|
|
19153
|
+
useRender(() => {
|
|
19154
|
+
return createVNode(Fragment, null, [slots.headers ? slots.headers(slotProps.value) : headers.value.map((row, y) => createVNode("tr", null, [row.map((column, x) => createVNode(VDataTableHeaderCell, {
|
|
19155
|
+
"column": column,
|
|
19156
|
+
"x": x,
|
|
19157
|
+
"y": y
|
|
19158
|
+
}, null))])), props.loading && createVNode("tr", {
|
|
19159
|
+
"class": "v-data-table__progress"
|
|
19160
|
+
}, [createVNode("th", {
|
|
19161
|
+
"colspan": columns.value.length
|
|
19162
|
+
}, [createVNode(LoaderSlot, {
|
|
19163
|
+
"name": "v-data-table-headers",
|
|
19164
|
+
"active": true,
|
|
19165
|
+
"color": typeof props.loading === 'boolean' ? undefined : props.loading,
|
|
19166
|
+
"indeterminate": true
|
|
19167
|
+
}, {
|
|
19168
|
+
default: slots.loader
|
|
19169
|
+
})])])]);
|
|
19170
|
+
});
|
|
18611
19171
|
}
|
|
18612
19172
|
});
|
|
18613
19173
|
|
|
@@ -18906,9 +19466,7 @@ const VDataTableRow = defineComponent({
|
|
|
18906
19466
|
'v-data-table__tr--clickable': !!props.onClick
|
|
18907
19467
|
}],
|
|
18908
19468
|
"onClick": props.onClick
|
|
18909
|
-
}, [
|
|
18910
|
-
"key": "no-data"
|
|
18911
|
-
}, slots), props.item && columns.value.map((column, i) => createVNode(VDataTableColumn, {
|
|
19469
|
+
}, [props.item && columns.value.map((column, i) => createVNode(VDataTableColumn, {
|
|
18912
19470
|
"align": column.align,
|
|
18913
19471
|
"fixed": column.fixed,
|
|
18914
19472
|
"fixedOffset": column.fixedOffset,
|
|
@@ -18998,13 +19556,13 @@ const VDataTableRows = genericComponent()({
|
|
|
18998
19556
|
useRender(() => {
|
|
18999
19557
|
if (props.loading && slots.loading) {
|
|
19000
19558
|
return createVNode("tr", {
|
|
19001
|
-
"class": "v-data-table-rows-
|
|
19559
|
+
"class": "v-data-table-rows-loading",
|
|
19002
19560
|
"key": "loading"
|
|
19003
19561
|
}, [createVNode("td", {
|
|
19004
19562
|
"colspan": columns.value.length
|
|
19005
19563
|
}, [slots.loading()])]);
|
|
19006
19564
|
}
|
|
19007
|
-
if (!props.loading && !props.items.length && !props.hideNoData
|
|
19565
|
+
if (!props.loading && !props.items.length && !props.hideNoData) {
|
|
19008
19566
|
return createVNode("tr", {
|
|
19009
19567
|
"class": "v-data-table-rows-no-data",
|
|
19010
19568
|
"key": "no-data"
|
|
@@ -19483,7 +20041,7 @@ const VDataTable = genericComponent()({
|
|
|
19483
20041
|
top: slots.top,
|
|
19484
20042
|
default: slots.default ?? (() => createVNode(Fragment, null, [slots.colgroup?.({
|
|
19485
20043
|
columns
|
|
19486
|
-
}), createVNode("thead", null, [
|
|
20044
|
+
}), createVNode("thead", null, [createVNode(VDataTableHeaders, {
|
|
19487
20045
|
"sticky": props.fixedHeader,
|
|
19488
20046
|
"multiSort": props.multiSort
|
|
19489
20047
|
}, slots)]), slots.thead?.(), createVNode("tbody", null, [slots.body ? slots.body() : createVNode(VDataTableRows, {
|
|
@@ -19512,8 +20070,8 @@ const makeDataTableVirtualProps = propsFactory({
|
|
|
19512
20070
|
default: 52
|
|
19513
20071
|
}
|
|
19514
20072
|
}, 'virtual');
|
|
19515
|
-
const UP
|
|
19516
|
-
const DOWN
|
|
20073
|
+
const UP = -1;
|
|
20074
|
+
const DOWN = 1;
|
|
19517
20075
|
|
|
19518
20076
|
// TODO: Replace this with composable from v-virtual-scroll
|
|
19519
20077
|
function useVirtual(props, items) {
|
|
@@ -19551,12 +20109,12 @@ function useVirtual(props, items) {
|
|
|
19551
20109
|
isScrolling.value = false;
|
|
19552
20110
|
}, 100);
|
|
19553
20111
|
const scrollTop = containerRef.value.scrollTop;
|
|
19554
|
-
const direction = scrollTop < lastScrollTop ? UP
|
|
20112
|
+
const direction = scrollTop < lastScrollTop ? UP : DOWN;
|
|
19555
20113
|
const midPointIndex = calculateMidPointIndex(scrollTop);
|
|
19556
20114
|
const buffer = Math.round(visibleItems.value / 3);
|
|
19557
|
-
if (direction === UP
|
|
20115
|
+
if (direction === UP && midPointIndex <= startIndex.value) {
|
|
19558
20116
|
startIndex.value = Math.max(midPointIndex - buffer, 0);
|
|
19559
|
-
} else if (direction === DOWN
|
|
20117
|
+
} else if (direction === DOWN && midPointIndex >= startIndex.value + buffer * 2) {
|
|
19560
20118
|
startIndex.value = Math.min(Math.max(0, midPointIndex - buffer), items.value.length - visibleItems.value);
|
|
19561
20119
|
}
|
|
19562
20120
|
lastScrollTop = containerRef.value.scrollTop;
|
|
@@ -19849,7 +20407,7 @@ const VDataTableServer = genericComponent()({
|
|
|
19849
20407
|
}), createVNode("thead", {
|
|
19850
20408
|
"class": "v-data-table__thead",
|
|
19851
20409
|
"role": "rowgroup"
|
|
19852
|
-
}, [
|
|
20410
|
+
}, [createVNode(VDataTableHeaders, {
|
|
19853
20411
|
"sticky": props.fixedHeader,
|
|
19854
20412
|
"loading": props.loading,
|
|
19855
20413
|
"color": props.color
|
|
@@ -19869,6 +20427,211 @@ const VDataTableServer = genericComponent()({
|
|
|
19869
20427
|
|
|
19870
20428
|
// Types
|
|
19871
20429
|
|
|
20430
|
+
const VInfiniteScrollIntersect = defineComponent({
|
|
20431
|
+
name: 'VInfiniteScrollIntersect',
|
|
20432
|
+
props: {
|
|
20433
|
+
side: {
|
|
20434
|
+
type: String,
|
|
20435
|
+
required: true
|
|
20436
|
+
},
|
|
20437
|
+
rootRef: null,
|
|
20438
|
+
rootMargin: String
|
|
20439
|
+
},
|
|
20440
|
+
emits: {
|
|
20441
|
+
intersect: side => true
|
|
20442
|
+
},
|
|
20443
|
+
setup(props, _ref) {
|
|
20444
|
+
let {
|
|
20445
|
+
emit
|
|
20446
|
+
} = _ref;
|
|
20447
|
+
const {
|
|
20448
|
+
intersectionRef,
|
|
20449
|
+
isIntersecting
|
|
20450
|
+
} = useIntersectionObserver(entries => {}, props.rootMargin ? {
|
|
20451
|
+
root: props.rootRef,
|
|
20452
|
+
rootMargin: props.rootMargin
|
|
20453
|
+
} : undefined);
|
|
20454
|
+
watch(isIntersecting, async val => {
|
|
20455
|
+
if (val) emit('intersect', props.side);
|
|
20456
|
+
});
|
|
20457
|
+
useRender(() => createVNode("div", {
|
|
20458
|
+
"class": "v-infinite-scroll-intersect",
|
|
20459
|
+
"ref": intersectionRef
|
|
20460
|
+
}, [createTextVNode("\xA0")]));
|
|
20461
|
+
return {};
|
|
20462
|
+
}
|
|
20463
|
+
});
|
|
20464
|
+
const VInfiniteScroll = genericComponent()({
|
|
20465
|
+
name: 'VInfiniteScroll',
|
|
20466
|
+
props: {
|
|
20467
|
+
color: String,
|
|
20468
|
+
direction: {
|
|
20469
|
+
type: String,
|
|
20470
|
+
default: 'vertical',
|
|
20471
|
+
validator: v => ['vertical', 'horizontal'].includes(v)
|
|
20472
|
+
},
|
|
20473
|
+
side: {
|
|
20474
|
+
type: String,
|
|
20475
|
+
default: 'end',
|
|
20476
|
+
validator: v => ['start', 'end', 'both'].includes(v)
|
|
20477
|
+
},
|
|
20478
|
+
mode: {
|
|
20479
|
+
type: String,
|
|
20480
|
+
default: 'intersect',
|
|
20481
|
+
validator: v => ['intersect', 'manual'].includes(v)
|
|
20482
|
+
},
|
|
20483
|
+
margin: [Number, String],
|
|
20484
|
+
loadMoreText: {
|
|
20485
|
+
type: String,
|
|
20486
|
+
default: '$vuetify.infiniteScroll.loadMore'
|
|
20487
|
+
},
|
|
20488
|
+
emptyText: {
|
|
20489
|
+
type: String,
|
|
20490
|
+
default: '$vuetify.infiniteScroll.empty'
|
|
20491
|
+
},
|
|
20492
|
+
...makeDimensionProps()
|
|
20493
|
+
},
|
|
20494
|
+
emits: {
|
|
20495
|
+
load: options => true
|
|
20496
|
+
},
|
|
20497
|
+
setup(props, _ref2) {
|
|
20498
|
+
let {
|
|
20499
|
+
slots,
|
|
20500
|
+
emit
|
|
20501
|
+
} = _ref2;
|
|
20502
|
+
const rootEl = ref();
|
|
20503
|
+
const startStatus = ref('ok');
|
|
20504
|
+
const endStatus = ref('ok');
|
|
20505
|
+
const margin = computed(() => convertToUnit(props.margin));
|
|
20506
|
+
function setScrollAmount(amount) {
|
|
20507
|
+
if (!rootEl.value) return;
|
|
20508
|
+
const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';
|
|
20509
|
+
rootEl.value[property] = amount;
|
|
20510
|
+
}
|
|
20511
|
+
function getScrollAmount() {
|
|
20512
|
+
if (!rootEl.value) return 0;
|
|
20513
|
+
const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';
|
|
20514
|
+
return rootEl.value[property];
|
|
20515
|
+
}
|
|
20516
|
+
function getScrollSize() {
|
|
20517
|
+
if (!rootEl.value) return 0;
|
|
20518
|
+
const property = props.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth';
|
|
20519
|
+
return rootEl.value[property];
|
|
20520
|
+
}
|
|
20521
|
+
function getContainerSize() {
|
|
20522
|
+
if (!rootEl.value) return 0;
|
|
20523
|
+
const property = props.direction === 'vertical' ? 'clientHeight' : 'clientWidth';
|
|
20524
|
+
return rootEl.value[property];
|
|
20525
|
+
}
|
|
20526
|
+
onMounted(() => {
|
|
20527
|
+
if (!rootEl.value) return;
|
|
20528
|
+
if (props.side === 'start') {
|
|
20529
|
+
setScrollAmount(getScrollSize());
|
|
20530
|
+
} else if (props.side === 'both') {
|
|
20531
|
+
setScrollAmount(getScrollSize() / 2 - getContainerSize() / 2);
|
|
20532
|
+
}
|
|
20533
|
+
});
|
|
20534
|
+
function setStatus(side, status) {
|
|
20535
|
+
if (side === 'start') {
|
|
20536
|
+
startStatus.value = status;
|
|
20537
|
+
} else if (side === 'end') {
|
|
20538
|
+
endStatus.value = status;
|
|
20539
|
+
}
|
|
20540
|
+
}
|
|
20541
|
+
function getStatus(side) {
|
|
20542
|
+
return side === 'start' ? startStatus.value : endStatus.value;
|
|
20543
|
+
}
|
|
20544
|
+
let previousScrollSize = 0;
|
|
20545
|
+
function handleIntersect(side) {
|
|
20546
|
+
const status = getStatus(side);
|
|
20547
|
+
if (!rootEl.value || status === 'loading') return;
|
|
20548
|
+
previousScrollSize = getScrollSize();
|
|
20549
|
+
setStatus(side, 'loading');
|
|
20550
|
+
function done(status) {
|
|
20551
|
+
setStatus(side, status);
|
|
20552
|
+
nextTick(() => {
|
|
20553
|
+
if (status === 'ok' && side === 'start') {
|
|
20554
|
+
setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount());
|
|
20555
|
+
}
|
|
20556
|
+
});
|
|
20557
|
+
}
|
|
20558
|
+
emit('load', {
|
|
20559
|
+
side,
|
|
20560
|
+
done
|
|
20561
|
+
});
|
|
20562
|
+
}
|
|
20563
|
+
const {
|
|
20564
|
+
t
|
|
20565
|
+
} = useLocale();
|
|
20566
|
+
function renderSide(side, status) {
|
|
20567
|
+
if (props.side !== side && props.side !== 'both') return;
|
|
20568
|
+
const onClick = () => handleIntersect(side);
|
|
20569
|
+
const slotProps = {
|
|
20570
|
+
side,
|
|
20571
|
+
props: {
|
|
20572
|
+
onClick,
|
|
20573
|
+
color: props.color
|
|
20574
|
+
}
|
|
20575
|
+
};
|
|
20576
|
+
if (status === 'error') return slots.error?.(slotProps);
|
|
20577
|
+
if (status === 'empty') return slots.empty?.(slotProps) ?? createVNode("div", null, [t(props.emptyText)]);
|
|
20578
|
+
if (props.mode === 'manual') {
|
|
20579
|
+
if (status === 'loading') {
|
|
20580
|
+
return slots.loading?.(slotProps) ?? createVNode(VProgressCircular, {
|
|
20581
|
+
"indeterminate": true,
|
|
20582
|
+
"color": props.color
|
|
20583
|
+
}, null);
|
|
20584
|
+
}
|
|
20585
|
+
return slots['load-more']?.(slotProps) ?? createVNode(VBtn, {
|
|
20586
|
+
"variant": "outlined",
|
|
20587
|
+
"color": props.color,
|
|
20588
|
+
"onClick": onClick
|
|
20589
|
+
}, {
|
|
20590
|
+
default: () => [t(props.loadMoreText)]
|
|
20591
|
+
});
|
|
20592
|
+
}
|
|
20593
|
+
return slots.loading?.(slotProps) ?? createVNode(VProgressCircular, {
|
|
20594
|
+
"indeterminate": true,
|
|
20595
|
+
"color": props.color
|
|
20596
|
+
}, null);
|
|
20597
|
+
}
|
|
20598
|
+
const {
|
|
20599
|
+
dimensionStyles
|
|
20600
|
+
} = useDimension(props);
|
|
20601
|
+
useRender(() => {
|
|
20602
|
+
const hasStartIntersect = props.side === 'start' || props.side === 'both';
|
|
20603
|
+
const hasEndIntersect = props.side === 'end' || props.side === 'both';
|
|
20604
|
+
const intersectMode = props.mode === 'intersect';
|
|
20605
|
+
return createVNode("div", {
|
|
20606
|
+
"ref": rootEl,
|
|
20607
|
+
"class": ['v-infinite-scroll', `v-infinite-scroll--${props.direction}`, {
|
|
20608
|
+
'v-infinite-scroll--start': hasStartIntersect,
|
|
20609
|
+
'v-infinite-scroll--end': hasEndIntersect
|
|
20610
|
+
}],
|
|
20611
|
+
"style": dimensionStyles.value
|
|
20612
|
+
}, [createVNode("div", {
|
|
20613
|
+
"class": "v-infinite-scroll__side"
|
|
20614
|
+
}, [renderSide('start', startStatus.value)]), rootEl.value && hasStartIntersect && intersectMode && createVNode(VInfiniteScrollIntersect, {
|
|
20615
|
+
"key": "start",
|
|
20616
|
+
"side": "start",
|
|
20617
|
+
"onIntersect": handleIntersect,
|
|
20618
|
+
"rootRef": rootEl.value,
|
|
20619
|
+
"rootMargin": margin.value
|
|
20620
|
+
}, null), slots.default?.(), rootEl.value && hasEndIntersect && intersectMode && createVNode(VInfiniteScrollIntersect, {
|
|
20621
|
+
"key": "end",
|
|
20622
|
+
"side": "end",
|
|
20623
|
+
"onIntersect": handleIntersect,
|
|
20624
|
+
"rootRef": rootEl.value,
|
|
20625
|
+
"rootMargin": margin.value
|
|
20626
|
+
}, null), createVNode("div", {
|
|
20627
|
+
"class": "v-infinite-scroll__side"
|
|
20628
|
+
}, [renderSide('end', endStatus.value)])]);
|
|
20629
|
+
});
|
|
20630
|
+
}
|
|
20631
|
+
});
|
|
20632
|
+
|
|
20633
|
+
// Types
|
|
20634
|
+
|
|
19872
20635
|
const rootTypes = {
|
|
19873
20636
|
actions: 'button@2',
|
|
19874
20637
|
article: 'heading, paragraph',
|
|
@@ -19999,177 +20762,6 @@ const VSkeletonLoader = genericComponent()({
|
|
|
19999
20762
|
}
|
|
20000
20763
|
});
|
|
20001
20764
|
|
|
20002
|
-
const VVirtualScrollItem = genericComponent()({
|
|
20003
|
-
name: 'VVirtualScrollItem',
|
|
20004
|
-
props: {
|
|
20005
|
-
dynamicHeight: Boolean
|
|
20006
|
-
},
|
|
20007
|
-
emits: {
|
|
20008
|
-
'update:height': height => true
|
|
20009
|
-
},
|
|
20010
|
-
setup(props, _ref) {
|
|
20011
|
-
let {
|
|
20012
|
-
emit,
|
|
20013
|
-
slots
|
|
20014
|
-
} = _ref;
|
|
20015
|
-
const {
|
|
20016
|
-
resizeRef,
|
|
20017
|
-
contentRect
|
|
20018
|
-
} = useResizeObserver();
|
|
20019
|
-
useToggleScope(() => props.dynamicHeight, () => {
|
|
20020
|
-
watch(() => contentRect.value?.height, height => {
|
|
20021
|
-
if (height != null) emit('update:height', height);
|
|
20022
|
-
});
|
|
20023
|
-
});
|
|
20024
|
-
function updateHeight() {
|
|
20025
|
-
if (props.dynamicHeight && contentRect.value) {
|
|
20026
|
-
emit('update:height', contentRect.value.height);
|
|
20027
|
-
}
|
|
20028
|
-
}
|
|
20029
|
-
onUpdated(updateHeight);
|
|
20030
|
-
useRender(() => createVNode("div", {
|
|
20031
|
-
"ref": props.dynamicHeight ? resizeRef : undefined,
|
|
20032
|
-
"class": "v-virtual-scroll__item"
|
|
20033
|
-
}, [slots.default?.()]));
|
|
20034
|
-
}
|
|
20035
|
-
});
|
|
20036
|
-
|
|
20037
|
-
// Types
|
|
20038
|
-
|
|
20039
|
-
const UP = -1;
|
|
20040
|
-
const DOWN = 1;
|
|
20041
|
-
const VVirtualScroll = genericComponent()({
|
|
20042
|
-
name: 'VVirtualScroll',
|
|
20043
|
-
props: {
|
|
20044
|
-
items: {
|
|
20045
|
-
type: Array,
|
|
20046
|
-
default: () => []
|
|
20047
|
-
},
|
|
20048
|
-
itemHeight: [Number, String],
|
|
20049
|
-
visibleItems: [Number, String],
|
|
20050
|
-
...makeDimensionProps()
|
|
20051
|
-
},
|
|
20052
|
-
setup(props, _ref) {
|
|
20053
|
-
let {
|
|
20054
|
-
slots
|
|
20055
|
-
} = _ref;
|
|
20056
|
-
const first = ref(0);
|
|
20057
|
-
const baseItemHeight = ref(props.itemHeight);
|
|
20058
|
-
const itemHeight = computed({
|
|
20059
|
-
get: () => parseInt(baseItemHeight.value ?? 0, 10),
|
|
20060
|
-
set(val) {
|
|
20061
|
-
baseItemHeight.value = val;
|
|
20062
|
-
}
|
|
20063
|
-
});
|
|
20064
|
-
const rootEl = ref();
|
|
20065
|
-
const {
|
|
20066
|
-
resizeRef,
|
|
20067
|
-
contentRect
|
|
20068
|
-
} = useResizeObserver();
|
|
20069
|
-
watchEffect(() => {
|
|
20070
|
-
resizeRef.value = rootEl.value;
|
|
20071
|
-
});
|
|
20072
|
-
const display = useDisplay();
|
|
20073
|
-
const sizeMap = new Map();
|
|
20074
|
-
let sizes = createRange(props.items.length).map(() => itemHeight.value);
|
|
20075
|
-
const visibleItems = computed(() => {
|
|
20076
|
-
return props.visibleItems ? parseInt(props.visibleItems, 10) : Math.max(12, Math.ceil((contentRect.value?.height ?? display.height.value) / itemHeight.value * 1.7 + 1));
|
|
20077
|
-
});
|
|
20078
|
-
function handleItemResize(index, height) {
|
|
20079
|
-
itemHeight.value = Math.max(itemHeight.value, height);
|
|
20080
|
-
sizes[index] = height;
|
|
20081
|
-
sizeMap.set(props.items[index], height);
|
|
20082
|
-
}
|
|
20083
|
-
function calculateOffset(index) {
|
|
20084
|
-
return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0);
|
|
20085
|
-
}
|
|
20086
|
-
function calculateMidPointIndex(scrollTop) {
|
|
20087
|
-
let start = 0;
|
|
20088
|
-
let end = props.items.length;
|
|
20089
|
-
while (start <= end) {
|
|
20090
|
-
const middle = start + Math.floor((end - start) / 2);
|
|
20091
|
-
const middleOffset = calculateOffset(middle);
|
|
20092
|
-
if (middleOffset === scrollTop) {
|
|
20093
|
-
return middle;
|
|
20094
|
-
} else if (middleOffset < scrollTop) {
|
|
20095
|
-
start = middle + 1;
|
|
20096
|
-
} else if (middleOffset > scrollTop) {
|
|
20097
|
-
end = middle - 1;
|
|
20098
|
-
}
|
|
20099
|
-
}
|
|
20100
|
-
return start;
|
|
20101
|
-
}
|
|
20102
|
-
let lastScrollTop = 0;
|
|
20103
|
-
function handleScroll() {
|
|
20104
|
-
if (!rootEl.value || !contentRect.value) return;
|
|
20105
|
-
const height = contentRect.value.height;
|
|
20106
|
-
const scrollTop = rootEl.value.scrollTop;
|
|
20107
|
-
const direction = scrollTop < lastScrollTop ? UP : DOWN;
|
|
20108
|
-
const midPointIndex = calculateMidPointIndex(scrollTop + height / 2);
|
|
20109
|
-
const buffer = Math.round(visibleItems.value / 3);
|
|
20110
|
-
if (direction === UP && midPointIndex <= first.value + buffer * 2 - 1) {
|
|
20111
|
-
first.value = clamp(midPointIndex - buffer, 0, props.items.length);
|
|
20112
|
-
} else if (direction === DOWN && midPointIndex >= first.value + buffer * 2 - 1) {
|
|
20113
|
-
first.value = clamp(midPointIndex - buffer, 0, props.items.length - visibleItems.value);
|
|
20114
|
-
}
|
|
20115
|
-
lastScrollTop = rootEl.value.scrollTop;
|
|
20116
|
-
}
|
|
20117
|
-
function scrollToIndex(index) {
|
|
20118
|
-
if (!rootEl.value) return;
|
|
20119
|
-
const offset = calculateOffset(index);
|
|
20120
|
-
rootEl.value.scrollTop = offset;
|
|
20121
|
-
}
|
|
20122
|
-
const last = computed(() => Math.min(props.items.length, first.value + visibleItems.value));
|
|
20123
|
-
const computedItems = computed(() => props.items.slice(first.value, last.value));
|
|
20124
|
-
const paddingTop = computed(() => calculateOffset(first.value));
|
|
20125
|
-
const paddingBottom = computed(() => calculateOffset(props.items.length) - calculateOffset(last.value));
|
|
20126
|
-
const {
|
|
20127
|
-
dimensionStyles
|
|
20128
|
-
} = useDimension(props);
|
|
20129
|
-
onMounted(() => {
|
|
20130
|
-
if (!itemHeight.value) {
|
|
20131
|
-
// If itemHeight prop is not set, then calculate an estimated height from the average of inital items
|
|
20132
|
-
itemHeight.value = sizes.slice(first.value, last.value).reduce((curr, height) => curr + height, 0) / visibleItems.value;
|
|
20133
|
-
}
|
|
20134
|
-
});
|
|
20135
|
-
watch(() => props.items.length, () => {
|
|
20136
|
-
sizes = createRange(props.items.length).map(() => itemHeight.value);
|
|
20137
|
-
sizeMap.forEach((height, item) => {
|
|
20138
|
-
const index = props.items.indexOf(item);
|
|
20139
|
-
if (index === -1) {
|
|
20140
|
-
sizeMap.delete(item);
|
|
20141
|
-
} else {
|
|
20142
|
-
sizes[index] = height;
|
|
20143
|
-
}
|
|
20144
|
-
});
|
|
20145
|
-
});
|
|
20146
|
-
useRender(() => createVNode("div", {
|
|
20147
|
-
"ref": rootEl,
|
|
20148
|
-
"class": "v-virtual-scroll",
|
|
20149
|
-
"onScroll": handleScroll,
|
|
20150
|
-
"style": dimensionStyles.value
|
|
20151
|
-
}, [createVNode("div", {
|
|
20152
|
-
"class": "v-virtual-scroll__container",
|
|
20153
|
-
"style": {
|
|
20154
|
-
paddingTop: convertToUnit(paddingTop.value),
|
|
20155
|
-
paddingBottom: convertToUnit(paddingBottom.value)
|
|
20156
|
-
}
|
|
20157
|
-
}, [computedItems.value.map((item, index) => createVNode(VVirtualScrollItem, {
|
|
20158
|
-
"key": index,
|
|
20159
|
-
"dynamicHeight": !props.itemHeight,
|
|
20160
|
-
"onUpdate:height": height => handleItemResize(index + first.value, height)
|
|
20161
|
-
}, {
|
|
20162
|
-
default: () => [slots.default?.({
|
|
20163
|
-
item,
|
|
20164
|
-
index: index + first.value
|
|
20165
|
-
})]
|
|
20166
|
-
}))])]));
|
|
20167
|
-
return {
|
|
20168
|
-
scrollToIndex
|
|
20169
|
-
};
|
|
20170
|
-
}
|
|
20171
|
-
});
|
|
20172
|
-
|
|
20173
20765
|
var components = /*#__PURE__*/Object.freeze({
|
|
20174
20766
|
__proto__: null,
|
|
20175
20767
|
VAlert: VAlert,
|
|
@@ -20239,6 +20831,7 @@ var components = /*#__PURE__*/Object.freeze({
|
|
|
20239
20831
|
VHover: VHover,
|
|
20240
20832
|
VIcon: VIcon,
|
|
20241
20833
|
VImg: VImg,
|
|
20834
|
+
VInfiniteScroll: VInfiniteScroll,
|
|
20242
20835
|
VInput: VInput,
|
|
20243
20836
|
VItem: VItem,
|
|
20244
20837
|
VItemGroup: VItemGroup,
|
|
@@ -20441,6 +21034,418 @@ var directives = /*#__PURE__*/Object.freeze({
|
|
|
20441
21034
|
Touch: Touch
|
|
20442
21035
|
});
|
|
20443
21036
|
|
|
21037
|
+
// Utilities
|
|
21038
|
+
|
|
21039
|
+
// Types
|
|
21040
|
+
|
|
21041
|
+
function getWeekArray(date) {
|
|
21042
|
+
let currentWeek = [];
|
|
21043
|
+
const weeks = [];
|
|
21044
|
+
const firstDayOfMonth = startOfMonth(date);
|
|
21045
|
+
const lastDayOfMonth = endOfMonth(date);
|
|
21046
|
+
for (let i = 0; i < firstDayOfMonth.getDay(); i++) {
|
|
21047
|
+
currentWeek.push(null);
|
|
21048
|
+
}
|
|
21049
|
+
for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {
|
|
21050
|
+
const day = new Date(date.getFullYear(), date.getMonth(), i);
|
|
21051
|
+
|
|
21052
|
+
// Add the day to the current week
|
|
21053
|
+
currentWeek.push(day);
|
|
21054
|
+
|
|
21055
|
+
// If the current week has 7 days, add it to the weeks array and start a new week
|
|
21056
|
+
if (currentWeek.length === 7) {
|
|
21057
|
+
weeks.push(currentWeek);
|
|
21058
|
+
currentWeek = [];
|
|
21059
|
+
}
|
|
21060
|
+
}
|
|
21061
|
+
for (let i = currentWeek.length; i < 7; i++) {
|
|
21062
|
+
currentWeek.push(null);
|
|
21063
|
+
}
|
|
21064
|
+
weeks.push(currentWeek);
|
|
21065
|
+
return weeks;
|
|
21066
|
+
}
|
|
21067
|
+
function startOfMonth(date) {
|
|
21068
|
+
return new Date(date.getFullYear(), date.getMonth(), 1);
|
|
21069
|
+
}
|
|
21070
|
+
function endOfMonth(date) {
|
|
21071
|
+
return new Date(date.getFullYear(), date.getMonth() + 1, 0);
|
|
21072
|
+
}
|
|
21073
|
+
function date(value) {
|
|
21074
|
+
if (value == null) return null;
|
|
21075
|
+
if (value instanceof Date) return value;
|
|
21076
|
+
if (typeof value === 'string') {
|
|
21077
|
+
const parsed = Date.parse(value);
|
|
21078
|
+
if (!isNaN(parsed)) return new Date(parsed);
|
|
21079
|
+
}
|
|
21080
|
+
return null;
|
|
21081
|
+
}
|
|
21082
|
+
const firstDay = {
|
|
21083
|
+
'001': 1,
|
|
21084
|
+
AD: 1,
|
|
21085
|
+
AE: 6,
|
|
21086
|
+
AF: 6,
|
|
21087
|
+
AG: 0,
|
|
21088
|
+
AI: 1,
|
|
21089
|
+
AL: 1,
|
|
21090
|
+
AM: 1,
|
|
21091
|
+
AN: 1,
|
|
21092
|
+
AR: 1,
|
|
21093
|
+
AS: 0,
|
|
21094
|
+
AT: 1,
|
|
21095
|
+
AU: 0,
|
|
21096
|
+
AX: 1,
|
|
21097
|
+
AZ: 1,
|
|
21098
|
+
BA: 1,
|
|
21099
|
+
BD: 0,
|
|
21100
|
+
BE: 1,
|
|
21101
|
+
BG: 1,
|
|
21102
|
+
BH: 6,
|
|
21103
|
+
BM: 1,
|
|
21104
|
+
BN: 1,
|
|
21105
|
+
BR: 0,
|
|
21106
|
+
BS: 0,
|
|
21107
|
+
BT: 0,
|
|
21108
|
+
BW: 0,
|
|
21109
|
+
BY: 1,
|
|
21110
|
+
BZ: 0,
|
|
21111
|
+
CA: 0,
|
|
21112
|
+
CH: 1,
|
|
21113
|
+
CL: 1,
|
|
21114
|
+
CM: 1,
|
|
21115
|
+
CN: 0,
|
|
21116
|
+
CO: 0,
|
|
21117
|
+
CR: 1,
|
|
21118
|
+
CY: 1,
|
|
21119
|
+
CZ: 1,
|
|
21120
|
+
DE: 1,
|
|
21121
|
+
DJ: 6,
|
|
21122
|
+
DK: 1,
|
|
21123
|
+
DM: 0,
|
|
21124
|
+
DO: 0,
|
|
21125
|
+
DZ: 6,
|
|
21126
|
+
EC: 1,
|
|
21127
|
+
EE: 1,
|
|
21128
|
+
EG: 6,
|
|
21129
|
+
ES: 1,
|
|
21130
|
+
ET: 0,
|
|
21131
|
+
FI: 1,
|
|
21132
|
+
FJ: 1,
|
|
21133
|
+
FO: 1,
|
|
21134
|
+
FR: 1,
|
|
21135
|
+
GB: 1,
|
|
21136
|
+
'GB-alt-variant': 0,
|
|
21137
|
+
GE: 1,
|
|
21138
|
+
GF: 1,
|
|
21139
|
+
GP: 1,
|
|
21140
|
+
GR: 1,
|
|
21141
|
+
GT: 0,
|
|
21142
|
+
GU: 0,
|
|
21143
|
+
HK: 0,
|
|
21144
|
+
HN: 0,
|
|
21145
|
+
HR: 1,
|
|
21146
|
+
HU: 1,
|
|
21147
|
+
ID: 0,
|
|
21148
|
+
IE: 1,
|
|
21149
|
+
IL: 0,
|
|
21150
|
+
IN: 0,
|
|
21151
|
+
IQ: 6,
|
|
21152
|
+
IR: 6,
|
|
21153
|
+
IS: 1,
|
|
21154
|
+
IT: 1,
|
|
21155
|
+
JM: 0,
|
|
21156
|
+
JO: 6,
|
|
21157
|
+
JP: 0,
|
|
21158
|
+
KE: 0,
|
|
21159
|
+
KG: 1,
|
|
21160
|
+
KH: 0,
|
|
21161
|
+
KR: 0,
|
|
21162
|
+
KW: 6,
|
|
21163
|
+
KZ: 1,
|
|
21164
|
+
LA: 0,
|
|
21165
|
+
LB: 1,
|
|
21166
|
+
LI: 1,
|
|
21167
|
+
LK: 1,
|
|
21168
|
+
LT: 1,
|
|
21169
|
+
LU: 1,
|
|
21170
|
+
LV: 1,
|
|
21171
|
+
LY: 6,
|
|
21172
|
+
MC: 1,
|
|
21173
|
+
MD: 1,
|
|
21174
|
+
ME: 1,
|
|
21175
|
+
MH: 0,
|
|
21176
|
+
MK: 1,
|
|
21177
|
+
MM: 0,
|
|
21178
|
+
MN: 1,
|
|
21179
|
+
MO: 0,
|
|
21180
|
+
MQ: 1,
|
|
21181
|
+
MT: 0,
|
|
21182
|
+
MV: 5,
|
|
21183
|
+
MX: 0,
|
|
21184
|
+
MY: 1,
|
|
21185
|
+
MZ: 0,
|
|
21186
|
+
NI: 0,
|
|
21187
|
+
NL: 1,
|
|
21188
|
+
NO: 1,
|
|
21189
|
+
NP: 0,
|
|
21190
|
+
NZ: 1,
|
|
21191
|
+
OM: 6,
|
|
21192
|
+
PA: 0,
|
|
21193
|
+
PE: 0,
|
|
21194
|
+
PH: 0,
|
|
21195
|
+
PK: 0,
|
|
21196
|
+
PL: 1,
|
|
21197
|
+
PR: 0,
|
|
21198
|
+
PT: 0,
|
|
21199
|
+
PY: 0,
|
|
21200
|
+
QA: 6,
|
|
21201
|
+
RE: 1,
|
|
21202
|
+
RO: 1,
|
|
21203
|
+
RS: 1,
|
|
21204
|
+
RU: 1,
|
|
21205
|
+
SA: 0,
|
|
21206
|
+
SD: 6,
|
|
21207
|
+
SE: 1,
|
|
21208
|
+
SG: 0,
|
|
21209
|
+
SI: 1,
|
|
21210
|
+
SK: 1,
|
|
21211
|
+
SM: 1,
|
|
21212
|
+
SV: 0,
|
|
21213
|
+
SY: 6,
|
|
21214
|
+
TH: 0,
|
|
21215
|
+
TJ: 1,
|
|
21216
|
+
TM: 1,
|
|
21217
|
+
TR: 1,
|
|
21218
|
+
TT: 0,
|
|
21219
|
+
TW: 0,
|
|
21220
|
+
UA: 1,
|
|
21221
|
+
UM: 0,
|
|
21222
|
+
US: 0,
|
|
21223
|
+
UY: 1,
|
|
21224
|
+
UZ: 1,
|
|
21225
|
+
VA: 1,
|
|
21226
|
+
VE: 0,
|
|
21227
|
+
VI: 0,
|
|
21228
|
+
VN: 1,
|
|
21229
|
+
WS: 0,
|
|
21230
|
+
XK: 1,
|
|
21231
|
+
YE: 0,
|
|
21232
|
+
ZA: 0,
|
|
21233
|
+
ZW: 0
|
|
21234
|
+
};
|
|
21235
|
+
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
|
21236
|
+
function getWeekdays(locale) {
|
|
21237
|
+
const daysFromSunday = firstDay[locale.slice(-2).toUpperCase()];
|
|
21238
|
+
return createRange(7).map(i => {
|
|
21239
|
+
const weekday = new Date(sundayJanuarySecond2000);
|
|
21240
|
+
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
|
21241
|
+
return new Intl.DateTimeFormat(locale, {
|
|
21242
|
+
weekday: 'long'
|
|
21243
|
+
}).format(weekday);
|
|
21244
|
+
});
|
|
21245
|
+
}
|
|
21246
|
+
function format(value, formatString, locale) {
|
|
21247
|
+
const date = new Date(value);
|
|
21248
|
+
let options = {};
|
|
21249
|
+
switch (formatString) {
|
|
21250
|
+
case 'fullDateWithWeekday':
|
|
21251
|
+
options = {
|
|
21252
|
+
weekday: 'long',
|
|
21253
|
+
day: 'numeric',
|
|
21254
|
+
month: 'long',
|
|
21255
|
+
year: 'numeric'
|
|
21256
|
+
};
|
|
21257
|
+
break;
|
|
21258
|
+
case 'normalDateWithWeekday':
|
|
21259
|
+
options = {
|
|
21260
|
+
weekday: 'short',
|
|
21261
|
+
day: 'numeric',
|
|
21262
|
+
month: 'short',
|
|
21263
|
+
year: 'numeric'
|
|
21264
|
+
};
|
|
21265
|
+
break;
|
|
21266
|
+
case 'keyboardDate':
|
|
21267
|
+
options = {};
|
|
21268
|
+
break;
|
|
21269
|
+
case 'monthAndDate':
|
|
21270
|
+
options = {
|
|
21271
|
+
month: 'long',
|
|
21272
|
+
day: 'numeric'
|
|
21273
|
+
};
|
|
21274
|
+
break;
|
|
21275
|
+
case 'monthAndYear':
|
|
21276
|
+
options = {
|
|
21277
|
+
month: 'long',
|
|
21278
|
+
year: 'numeric'
|
|
21279
|
+
};
|
|
21280
|
+
break;
|
|
21281
|
+
default:
|
|
21282
|
+
options = {
|
|
21283
|
+
timeZone: 'UTC',
|
|
21284
|
+
timeZoneName: 'short'
|
|
21285
|
+
};
|
|
21286
|
+
}
|
|
21287
|
+
return new Intl.DateTimeFormat(locale, options).format(date);
|
|
21288
|
+
}
|
|
21289
|
+
function addDays(date, amount) {
|
|
21290
|
+
const d = new Date(date);
|
|
21291
|
+
d.setDate(d.getDate() + amount);
|
|
21292
|
+
return d;
|
|
21293
|
+
}
|
|
21294
|
+
function addMonths(date, amount) {
|
|
21295
|
+
const d = new Date(date);
|
|
21296
|
+
d.setMonth(d.getMonth() + amount);
|
|
21297
|
+
return d;
|
|
21298
|
+
}
|
|
21299
|
+
function getYear(date) {
|
|
21300
|
+
return date.getFullYear();
|
|
21301
|
+
}
|
|
21302
|
+
function getMonth(date) {
|
|
21303
|
+
return date.getMonth();
|
|
21304
|
+
}
|
|
21305
|
+
function startOfYear(date) {
|
|
21306
|
+
return new Date(date.getFullYear(), 0, 1);
|
|
21307
|
+
}
|
|
21308
|
+
function endOfYear(date) {
|
|
21309
|
+
return new Date(date.getFullYear(), 11, 31);
|
|
21310
|
+
}
|
|
21311
|
+
function getMondayOfFirstWeekOfYear(year) {
|
|
21312
|
+
return new Date(year, 0, 1);
|
|
21313
|
+
}
|
|
21314
|
+
|
|
21315
|
+
// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
|
|
21316
|
+
function getWeek(date) {
|
|
21317
|
+
let year = date.getFullYear();
|
|
21318
|
+
let d1w1 = getMondayOfFirstWeekOfYear(year);
|
|
21319
|
+
if (date < d1w1) {
|
|
21320
|
+
year = year - 1;
|
|
21321
|
+
d1w1 = getMondayOfFirstWeekOfYear(year);
|
|
21322
|
+
} else {
|
|
21323
|
+
const tv = getMondayOfFirstWeekOfYear(year + 1);
|
|
21324
|
+
if (date >= tv) {
|
|
21325
|
+
year = year + 1;
|
|
21326
|
+
d1w1 = tv;
|
|
21327
|
+
}
|
|
21328
|
+
}
|
|
21329
|
+
const diffTime = Math.abs(date.getTime() - d1w1.getTime());
|
|
21330
|
+
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
|
21331
|
+
return Math.floor(diffDays / 7) + 1;
|
|
21332
|
+
}
|
|
21333
|
+
function isWithinRange(date, range) {
|
|
21334
|
+
return isAfter(date, range[0]) && isBefore(date, range[1]);
|
|
21335
|
+
}
|
|
21336
|
+
function isValid(date) {
|
|
21337
|
+
const d = new Date(date);
|
|
21338
|
+
return d instanceof Date && !isNaN(d.getTime());
|
|
21339
|
+
}
|
|
21340
|
+
function isAfter(date, comparing) {
|
|
21341
|
+
return date.getTime() > comparing.getTime();
|
|
21342
|
+
}
|
|
21343
|
+
function isBefore(date, comparing) {
|
|
21344
|
+
return date.getTime() < comparing.getTime();
|
|
21345
|
+
}
|
|
21346
|
+
function isEqual(date, comparing) {
|
|
21347
|
+
return date.getTime() === comparing.getTime();
|
|
21348
|
+
}
|
|
21349
|
+
function isSameDay(date, comparing) {
|
|
21350
|
+
return date.getDate() === comparing.getDate() && date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
|
21351
|
+
}
|
|
21352
|
+
function isSameMonth(date, comparing) {
|
|
21353
|
+
return date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
|
21354
|
+
}
|
|
21355
|
+
function getDiff(date, comparing, unit) {
|
|
21356
|
+
const d = new Date(date);
|
|
21357
|
+
const c = new Date(comparing);
|
|
21358
|
+
if (unit === 'month') {
|
|
21359
|
+
return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12;
|
|
21360
|
+
}
|
|
21361
|
+
return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24));
|
|
21362
|
+
}
|
|
21363
|
+
function setYear(date, year) {
|
|
21364
|
+
const d = new Date(date);
|
|
21365
|
+
d.setFullYear(year);
|
|
21366
|
+
return d;
|
|
21367
|
+
}
|
|
21368
|
+
class VuetifyDateAdapter {
|
|
21369
|
+
constructor() {
|
|
21370
|
+
let locale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'en';
|
|
21371
|
+
this.locale = locale;
|
|
21372
|
+
}
|
|
21373
|
+
date(value) {
|
|
21374
|
+
return date(value);
|
|
21375
|
+
}
|
|
21376
|
+
addDays(date, amount) {
|
|
21377
|
+
return addDays(date, amount);
|
|
21378
|
+
}
|
|
21379
|
+
addMonths(date, amount) {
|
|
21380
|
+
return addMonths(date, amount);
|
|
21381
|
+
}
|
|
21382
|
+
getWeekArray(date) {
|
|
21383
|
+
return getWeekArray(date);
|
|
21384
|
+
}
|
|
21385
|
+
startOfMonth(date) {
|
|
21386
|
+
return startOfMonth(date);
|
|
21387
|
+
}
|
|
21388
|
+
endOfMonth(date) {
|
|
21389
|
+
return endOfMonth(date);
|
|
21390
|
+
}
|
|
21391
|
+
format(date, formatString) {
|
|
21392
|
+
return format(date, formatString, this.locale);
|
|
21393
|
+
}
|
|
21394
|
+
isEqual(date, comparing) {
|
|
21395
|
+
return isEqual(date, comparing);
|
|
21396
|
+
}
|
|
21397
|
+
isValid(date) {
|
|
21398
|
+
return isValid(date);
|
|
21399
|
+
}
|
|
21400
|
+
isWithinRange(date, range) {
|
|
21401
|
+
return isWithinRange(date, range);
|
|
21402
|
+
}
|
|
21403
|
+
isAfter(date, comparing) {
|
|
21404
|
+
return isAfter(date, comparing);
|
|
21405
|
+
}
|
|
21406
|
+
isSameDay(date, comparing) {
|
|
21407
|
+
return isSameDay(date, comparing);
|
|
21408
|
+
}
|
|
21409
|
+
isSameMonth(date, comparing) {
|
|
21410
|
+
return isSameMonth(date, comparing);
|
|
21411
|
+
}
|
|
21412
|
+
setYear(date, year) {
|
|
21413
|
+
return setYear(date, year);
|
|
21414
|
+
}
|
|
21415
|
+
getDiff(date, comparing, unit) {
|
|
21416
|
+
return getDiff(date, comparing, unit);
|
|
21417
|
+
}
|
|
21418
|
+
getWeek(date) {
|
|
21419
|
+
return getWeek(date);
|
|
21420
|
+
}
|
|
21421
|
+
getWeekdays() {
|
|
21422
|
+
return getWeekdays(this.locale);
|
|
21423
|
+
}
|
|
21424
|
+
getYear(date) {
|
|
21425
|
+
return getYear(date);
|
|
21426
|
+
}
|
|
21427
|
+
getMonth(date) {
|
|
21428
|
+
return getMonth(date);
|
|
21429
|
+
}
|
|
21430
|
+
startOfYear(date) {
|
|
21431
|
+
return startOfYear(date);
|
|
21432
|
+
}
|
|
21433
|
+
endOfYear(date) {
|
|
21434
|
+
return endOfYear(date);
|
|
21435
|
+
}
|
|
21436
|
+
}
|
|
21437
|
+
|
|
21438
|
+
// Composables
|
|
21439
|
+
|
|
21440
|
+
// Types
|
|
21441
|
+
|
|
21442
|
+
const DateAdapterSymbol = Symbol.for('vuetify:date-adapter');
|
|
21443
|
+
function createDate(options) {
|
|
21444
|
+
return options ?? {
|
|
21445
|
+
adapter: VuetifyDateAdapter
|
|
21446
|
+
};
|
|
21447
|
+
}
|
|
21448
|
+
|
|
20444
21449
|
// Composables
|
|
20445
21450
|
function createVuetify$1() {
|
|
20446
21451
|
let vuetify = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -20459,6 +21464,7 @@ function createVuetify$1() {
|
|
|
20459
21464
|
const theme = createTheme(options.theme);
|
|
20460
21465
|
const icons = createIcons(options.icons);
|
|
20461
21466
|
const locale = createLocale(options.locale);
|
|
21467
|
+
const date = createDate(options.date);
|
|
20462
21468
|
const install = app => {
|
|
20463
21469
|
for (const key in directives) {
|
|
20464
21470
|
app.directive(key, directives[key]);
|
|
@@ -20479,6 +21485,7 @@ function createVuetify$1() {
|
|
|
20479
21485
|
app.provide(ThemeSymbol, theme);
|
|
20480
21486
|
app.provide(IconSymbol, icons);
|
|
20481
21487
|
app.provide(LocaleSymbol, locale);
|
|
21488
|
+
app.provide(DateAdapterSymbol, date);
|
|
20482
21489
|
if (IN_BROWSER && options.ssr) {
|
|
20483
21490
|
if (app.$nuxt) {
|
|
20484
21491
|
app.$nuxt.hook('app:suspense:resolve', () => {
|
|
@@ -20506,7 +21513,8 @@ function createVuetify$1() {
|
|
|
20506
21513
|
display: inject.call(this, DisplaySymbol),
|
|
20507
21514
|
theme: inject.call(this, ThemeSymbol),
|
|
20508
21515
|
icons: inject.call(this, IconSymbol),
|
|
20509
|
-
locale: inject.call(this, LocaleSymbol)
|
|
21516
|
+
locale: inject.call(this, LocaleSymbol),
|
|
21517
|
+
date: inject.call(this, DateAdapterSymbol)
|
|
20510
21518
|
});
|
|
20511
21519
|
}
|
|
20512
21520
|
}
|
|
@@ -20519,10 +21527,11 @@ function createVuetify$1() {
|
|
|
20519
21527
|
display,
|
|
20520
21528
|
theme,
|
|
20521
21529
|
icons,
|
|
20522
|
-
locale
|
|
21530
|
+
locale,
|
|
21531
|
+
date
|
|
20523
21532
|
};
|
|
20524
21533
|
}
|
|
20525
|
-
const version$1 = "3.
|
|
21534
|
+
const version$1 = "3.2.0";
|
|
20526
21535
|
createVuetify$1.version = version$1;
|
|
20527
21536
|
|
|
20528
21537
|
// Vue's inject() can only be used in setup
|
|
@@ -20534,7 +21543,7 @@ function inject(key) {
|
|
|
20534
21543
|
}
|
|
20535
21544
|
}
|
|
20536
21545
|
|
|
20537
|
-
const version = "3.
|
|
21546
|
+
const version = "3.2.0";
|
|
20538
21547
|
|
|
20539
21548
|
const createVuetify = function () {
|
|
20540
21549
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -20545,5 +21554,5 @@ const createVuetify = function () {
|
|
|
20545
21554
|
});
|
|
20546
21555
|
};
|
|
20547
21556
|
|
|
20548
|
-
export { components, createVuetify, directives, useDisplay, useLayout, useLocale, useRtl, useTheme, version };
|
|
21557
|
+
export { components, createVuetify, directives, useDefaults, useDisplay, useLayout, useLocale, useRtl, useTheme, version };
|
|
20549
21558
|
//# sourceMappingURL=vuetify-labs.esm.js.map
|