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.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
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
|
*/
|
|
@@ -171,11 +171,11 @@
|
|
|
171
171
|
function keys(o) {
|
|
172
172
|
return Object.keys(o);
|
|
173
173
|
}
|
|
174
|
-
function pick(obj, paths) {
|
|
174
|
+
function pick(obj, paths, exclude) {
|
|
175
175
|
const found = Object.create(null);
|
|
176
176
|
const rest = Object.create(null);
|
|
177
177
|
for (const key in obj) {
|
|
178
|
-
if (paths.some(path => path instanceof RegExp ? path.test(key) : path === key)) {
|
|
178
|
+
if (paths.some(path => path instanceof RegExp ? path.test(key) : path === key) && !exclude?.some(path => path === key)) {
|
|
179
179
|
found[key] = obj[key];
|
|
180
180
|
} else {
|
|
181
181
|
rest[key] = obj[key];
|
|
@@ -360,6 +360,32 @@
|
|
|
360
360
|
handler(...args);
|
|
361
361
|
}
|
|
362
362
|
}
|
|
363
|
+
function focusableChildren(el) {
|
|
364
|
+
const targets = ['button', '[href]', 'input:not([type="hidden"])', 'select', 'textarea', '[tabindex]'].map(s => `${s}:not([tabindex="-1"]):not([disabled])`).join(', ');
|
|
365
|
+
return [...el.querySelectorAll(targets)];
|
|
366
|
+
}
|
|
367
|
+
function focusChild(el, location) {
|
|
368
|
+
const focusable = focusableChildren(el);
|
|
369
|
+
const idx = focusable.indexOf(document.activeElement);
|
|
370
|
+
if (!location) {
|
|
371
|
+
if (!el.contains(document.activeElement)) {
|
|
372
|
+
focusable[0]?.focus();
|
|
373
|
+
}
|
|
374
|
+
} else if (location === 'first') {
|
|
375
|
+
focusable[0]?.focus();
|
|
376
|
+
} else if (location === 'last') {
|
|
377
|
+
focusable.at(-1)?.focus();
|
|
378
|
+
} else {
|
|
379
|
+
let _el;
|
|
380
|
+
let idxx = idx;
|
|
381
|
+
const inc = location === 'next' ? 1 : -1;
|
|
382
|
+
do {
|
|
383
|
+
idxx += inc;
|
|
384
|
+
_el = focusable[idxx];
|
|
385
|
+
} while ((!_el || _el.offsetParent == null) && idxx < focusable.length && idxx >= 0);
|
|
386
|
+
if (_el) _el.focus();else focusChild(el, location === 'next' ? 'first' : 'last');
|
|
387
|
+
}
|
|
388
|
+
}
|
|
363
389
|
|
|
364
390
|
const block = ['top', 'bottom'];
|
|
365
391
|
const inline = ['start', 'end', 'left', 'right'];
|
|
@@ -860,44 +886,6 @@
|
|
|
860
886
|
return (light + 0.05) / (dark + 0.05);
|
|
861
887
|
}
|
|
862
888
|
|
|
863
|
-
// Utilities
|
|
864
|
-
function getCurrentInstance(name, message) {
|
|
865
|
-
const vm = vue.getCurrentInstance();
|
|
866
|
-
if (!vm) {
|
|
867
|
-
throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);
|
|
868
|
-
}
|
|
869
|
-
return vm;
|
|
870
|
-
}
|
|
871
|
-
function getCurrentInstanceName() {
|
|
872
|
-
let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';
|
|
873
|
-
const vm = getCurrentInstance(name).type;
|
|
874
|
-
return toKebabCase(vm?.aliasName || vm?.name);
|
|
875
|
-
}
|
|
876
|
-
let _uid = 0;
|
|
877
|
-
let _map = new WeakMap();
|
|
878
|
-
function getUid() {
|
|
879
|
-
const vm = getCurrentInstance('getUid');
|
|
880
|
-
if (_map.has(vm)) return _map.get(vm);else {
|
|
881
|
-
const uid = _uid++;
|
|
882
|
-
_map.set(vm, uid);
|
|
883
|
-
return uid;
|
|
884
|
-
}
|
|
885
|
-
}
|
|
886
|
-
getUid.reset = () => {
|
|
887
|
-
_uid = 0;
|
|
888
|
-
_map = new WeakMap();
|
|
889
|
-
};
|
|
890
|
-
|
|
891
|
-
function injectSelf(key) {
|
|
892
|
-
const {
|
|
893
|
-
provides
|
|
894
|
-
} = getCurrentInstance('injectSelf');
|
|
895
|
-
if (provides && key in provides) {
|
|
896
|
-
// TS doesn't allow symbol as index type
|
|
897
|
-
return provides[key];
|
|
898
|
-
}
|
|
899
|
-
}
|
|
900
|
-
|
|
901
889
|
/**
|
|
902
890
|
* Creates a factory function for props definitions.
|
|
903
891
|
* This is used to define props in a composable then override
|
|
@@ -951,17 +939,54 @@
|
|
|
951
939
|
|
|
952
940
|
// Types
|
|
953
941
|
|
|
942
|
+
// Composables
|
|
943
|
+
const makeComponentProps = propsFactory({
|
|
944
|
+
class: [String, Array],
|
|
945
|
+
style: {
|
|
946
|
+
type: [String, Array, Object],
|
|
947
|
+
default: null
|
|
948
|
+
}
|
|
949
|
+
}, 'component');
|
|
950
|
+
|
|
951
|
+
function useToggleScope(source, fn) {
|
|
952
|
+
let scope;
|
|
953
|
+
function start() {
|
|
954
|
+
scope = vue.effectScope();
|
|
955
|
+
scope.run(() => fn.length ? fn(() => {
|
|
956
|
+
scope?.stop();
|
|
957
|
+
start();
|
|
958
|
+
}) : fn());
|
|
959
|
+
}
|
|
960
|
+
vue.watch(source, active => {
|
|
961
|
+
if (active && !scope) {
|
|
962
|
+
start();
|
|
963
|
+
} else if (!active) {
|
|
964
|
+
scope?.stop();
|
|
965
|
+
scope = undefined;
|
|
966
|
+
}
|
|
967
|
+
}, {
|
|
968
|
+
immediate: true
|
|
969
|
+
});
|
|
970
|
+
vue.onScopeDispose(() => {
|
|
971
|
+
scope?.stop();
|
|
972
|
+
});
|
|
973
|
+
}
|
|
974
|
+
|
|
975
|
+
// Composables
|
|
976
|
+
|
|
977
|
+
// Types
|
|
978
|
+
|
|
954
979
|
const DefaultsSymbol = Symbol.for('vuetify:defaults');
|
|
955
980
|
function createDefaults(options) {
|
|
956
981
|
return vue.ref(options);
|
|
957
982
|
}
|
|
958
|
-
function
|
|
983
|
+
function injectDefaults() {
|
|
959
984
|
const defaults = vue.inject(DefaultsSymbol);
|
|
960
985
|
if (!defaults) throw new Error('[Vuetify] Could not find defaults instance');
|
|
961
986
|
return defaults;
|
|
962
987
|
}
|
|
963
988
|
function provideDefaults(defaults, options) {
|
|
964
|
-
const injectedDefaults =
|
|
989
|
+
const injectedDefaults = injectDefaults();
|
|
965
990
|
const providedDefaults = vue.ref(defaults);
|
|
966
991
|
const newDefaults = vue.computed(() => {
|
|
967
992
|
const disabled = vue.unref(options?.disabled);
|
|
@@ -988,41 +1013,58 @@
|
|
|
988
1013
|
vue.provide(DefaultsSymbol, newDefaults);
|
|
989
1014
|
return newDefaults;
|
|
990
1015
|
}
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1016
|
+
function propIsDefined(vnode, prop) {
|
|
1017
|
+
return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';
|
|
1018
|
+
}
|
|
1019
|
+
function useDefaults() {
|
|
1020
|
+
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1021
|
+
let name = arguments.length > 1 ? arguments[1] : undefined;
|
|
1022
|
+
let defaults = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : injectDefaults();
|
|
1023
|
+
const vm = getCurrentInstance('useDefaults');
|
|
1024
|
+
name = name ?? vm.type.name ?? vm.type.__name;
|
|
1025
|
+
if (!name) {
|
|
1026
|
+
throw new Error('[Vuetify] Could not determine component name');
|
|
1027
|
+
}
|
|
1028
|
+
const componentDefaults = vue.computed(() => defaults.value?.[props._as ?? name]);
|
|
1029
|
+
const _props = new Proxy(props, {
|
|
1030
|
+
get(target, prop) {
|
|
1031
|
+
const propValue = Reflect.get(target, prop);
|
|
1032
|
+
if (prop === 'class' || prop === 'style') {
|
|
1033
|
+
return [componentDefaults.value?.[prop], propValue].filter(v => v != null);
|
|
1034
|
+
} else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
|
|
1035
|
+
return componentDefaults.value?.[prop] ?? defaults.value?.global?.[prop] ?? propValue;
|
|
1036
|
+
}
|
|
1037
|
+
return propValue;
|
|
1007
1038
|
}
|
|
1008
|
-
}, {
|
|
1009
|
-
immediate: true
|
|
1010
1039
|
});
|
|
1011
|
-
vue.
|
|
1012
|
-
|
|
1040
|
+
const _subcomponentDefaults = vue.shallowRef();
|
|
1041
|
+
vue.watchEffect(() => {
|
|
1042
|
+
if (componentDefaults.value) {
|
|
1043
|
+
const subComponents = Object.entries(componentDefaults.value).filter(_ref => {
|
|
1044
|
+
let [key] = _ref;
|
|
1045
|
+
return key.startsWith(key[0].toUpperCase());
|
|
1046
|
+
});
|
|
1047
|
+
if (subComponents.length) _subcomponentDefaults.value = Object.fromEntries(subComponents);
|
|
1048
|
+
}
|
|
1013
1049
|
});
|
|
1050
|
+
function provideSubDefaults() {
|
|
1051
|
+
// If subcomponent defaults are provided, override any
|
|
1052
|
+
// subcomponents provided by the component's setup function.
|
|
1053
|
+
// This uses injectSelf so must be done after the original setup to work.
|
|
1054
|
+
useToggleScope(_subcomponentDefaults, () => {
|
|
1055
|
+
provideDefaults(mergeDeep(injectSelf(DefaultsSymbol)?.value ?? {}, _subcomponentDefaults.value));
|
|
1056
|
+
});
|
|
1057
|
+
}
|
|
1058
|
+
return {
|
|
1059
|
+
props: _props,
|
|
1060
|
+
provideSubDefaults
|
|
1061
|
+
};
|
|
1014
1062
|
}
|
|
1015
1063
|
|
|
1016
1064
|
// Utils
|
|
1017
1065
|
|
|
1018
1066
|
// Types
|
|
1019
1067
|
|
|
1020
|
-
function propIsDefined(vnode, prop) {
|
|
1021
|
-
return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';
|
|
1022
|
-
}
|
|
1023
|
-
|
|
1024
|
-
// No props
|
|
1025
|
-
|
|
1026
1068
|
// Implementation
|
|
1027
1069
|
function defineComponent(options) {
|
|
1028
1070
|
options._setup = options._setup ?? options.setup;
|
|
@@ -1034,43 +1076,20 @@
|
|
|
1034
1076
|
options.props = propsFactory(options.props ?? {}, toKebabCase(options.name))();
|
|
1035
1077
|
const propKeys = Object.keys(options.props);
|
|
1036
1078
|
options.filterProps = function filterProps(props) {
|
|
1037
|
-
return pick(props, propKeys);
|
|
1079
|
+
return pick(props, propKeys, ['class', 'style']);
|
|
1038
1080
|
};
|
|
1039
1081
|
options.props._as = String;
|
|
1040
1082
|
options.setup = function setup(props, ctx) {
|
|
1041
|
-
const defaults =
|
|
1083
|
+
const defaults = injectDefaults();
|
|
1042
1084
|
|
|
1043
1085
|
// Skip props proxy if defaults are not provided
|
|
1044
1086
|
if (!defaults.value) return options._setup(props, ctx);
|
|
1045
|
-
const
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
const propValue = Reflect.get(target, prop);
|
|
1050
|
-
if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
|
|
1051
|
-
return componentDefaults.value?.[prop] ?? defaults.value.global?.[prop] ?? propValue;
|
|
1052
|
-
}
|
|
1053
|
-
return propValue;
|
|
1054
|
-
}
|
|
1055
|
-
});
|
|
1056
|
-
const _subcomponentDefaults = vue.shallowRef();
|
|
1057
|
-
vue.watchEffect(() => {
|
|
1058
|
-
if (componentDefaults.value) {
|
|
1059
|
-
const subComponents = Object.entries(componentDefaults.value).filter(_ref => {
|
|
1060
|
-
let [key] = _ref;
|
|
1061
|
-
return key.startsWith(key[0].toUpperCase());
|
|
1062
|
-
});
|
|
1063
|
-
if (subComponents.length) _subcomponentDefaults.value = Object.fromEntries(subComponents);
|
|
1064
|
-
}
|
|
1065
|
-
});
|
|
1087
|
+
const {
|
|
1088
|
+
props: _props,
|
|
1089
|
+
provideSubDefaults
|
|
1090
|
+
} = useDefaults(props, props._as ?? options.name, defaults);
|
|
1066
1091
|
const setupBindings = options._setup(_props, ctx);
|
|
1067
|
-
|
|
1068
|
-
// If subcomponent defaults are provided, override any
|
|
1069
|
-
// subcomponents provided by the component's setup function.
|
|
1070
|
-
// This uses injectSelf so must be done after the original setup to work.
|
|
1071
|
-
useToggleScope(_subcomponentDefaults, () => {
|
|
1072
|
-
provideDefaults(mergeDeep(injectSelf(DefaultsSymbol)?.value ?? {}, _subcomponentDefaults.value));
|
|
1073
|
-
});
|
|
1092
|
+
provideSubDefaults();
|
|
1074
1093
|
return setupBindings;
|
|
1075
1094
|
};
|
|
1076
1095
|
}
|
|
@@ -1095,15 +1114,19 @@
|
|
|
1095
1114
|
tag: {
|
|
1096
1115
|
type: String,
|
|
1097
1116
|
default: tag
|
|
1098
|
-
}
|
|
1117
|
+
},
|
|
1118
|
+
...makeComponentProps()
|
|
1099
1119
|
},
|
|
1100
1120
|
setup(props, _ref) {
|
|
1101
1121
|
let {
|
|
1102
1122
|
slots
|
|
1103
1123
|
} = _ref;
|
|
1104
|
-
return () =>
|
|
1105
|
-
|
|
1106
|
-
|
|
1124
|
+
return () => {
|
|
1125
|
+
return vue.h(props.tag, {
|
|
1126
|
+
class: [klass, props.class],
|
|
1127
|
+
style: props.style
|
|
1128
|
+
}, slots.default?.());
|
|
1129
|
+
};
|
|
1107
1130
|
}
|
|
1108
1131
|
});
|
|
1109
1132
|
}
|
|
@@ -1136,6 +1159,34 @@
|
|
|
1136
1159
|
const deceleratedEasing = 'cubic-bezier(0.0, 0, 0.2, 1)'; // Entering
|
|
1137
1160
|
const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)'; // Leaving
|
|
1138
1161
|
|
|
1162
|
+
// Utilities
|
|
1163
|
+
function getCurrentInstance(name, message) {
|
|
1164
|
+
const vm = vue.getCurrentInstance();
|
|
1165
|
+
if (!vm) {
|
|
1166
|
+
throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);
|
|
1167
|
+
}
|
|
1168
|
+
return vm;
|
|
1169
|
+
}
|
|
1170
|
+
function getCurrentInstanceName() {
|
|
1171
|
+
let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';
|
|
1172
|
+
const vm = getCurrentInstance(name).type;
|
|
1173
|
+
return toKebabCase(vm?.aliasName || vm?.name);
|
|
1174
|
+
}
|
|
1175
|
+
let _uid = 0;
|
|
1176
|
+
let _map = new WeakMap();
|
|
1177
|
+
function getUid() {
|
|
1178
|
+
const vm = getCurrentInstance('getUid');
|
|
1179
|
+
if (_map.has(vm)) return _map.get(vm);else {
|
|
1180
|
+
const uid = _uid++;
|
|
1181
|
+
_map.set(vm, uid);
|
|
1182
|
+
return uid;
|
|
1183
|
+
}
|
|
1184
|
+
}
|
|
1185
|
+
getUid.reset = () => {
|
|
1186
|
+
_uid = 0;
|
|
1187
|
+
_map = new WeakMap();
|
|
1188
|
+
};
|
|
1189
|
+
|
|
1139
1190
|
function getScrollParent(el) {
|
|
1140
1191
|
while (el) {
|
|
1141
1192
|
if (hasScrollbar(el)) return el;
|
|
@@ -1159,6 +1210,16 @@
|
|
|
1159
1210
|
return style.overflowY === 'scroll' || style.overflowY === 'auto' && el.scrollHeight > el.clientHeight;
|
|
1160
1211
|
}
|
|
1161
1212
|
|
|
1213
|
+
function injectSelf(key) {
|
|
1214
|
+
const {
|
|
1215
|
+
provides
|
|
1216
|
+
} = getCurrentInstance('injectSelf');
|
|
1217
|
+
if (provides && key in provides) {
|
|
1218
|
+
// TS doesn't allow symbol as index type
|
|
1219
|
+
return provides[key];
|
|
1220
|
+
}
|
|
1221
|
+
}
|
|
1222
|
+
|
|
1162
1223
|
function isFixedPosition(el) {
|
|
1163
1224
|
while (el) {
|
|
1164
1225
|
if (window.getComputedStyle(el).position === 'fixed') {
|
|
@@ -1939,7 +2000,11 @@
|
|
|
1939
2000
|
item: 'Rating {0} of {1}'
|
|
1940
2001
|
}
|
|
1941
2002
|
},
|
|
1942
|
-
loading: 'Loading...'
|
|
2003
|
+
loading: 'Loading...',
|
|
2004
|
+
infiniteScroll: {
|
|
2005
|
+
loadMore: 'Load more',
|
|
2006
|
+
empty: 'No more'
|
|
2007
|
+
}
|
|
1943
2008
|
};
|
|
1944
2009
|
|
|
1945
2010
|
const LANG_PREFIX = '$vuetify.';
|
|
@@ -2137,6 +2202,7 @@
|
|
|
2137
2202
|
const VApp = genericComponent()({
|
|
2138
2203
|
name: 'VApp',
|
|
2139
2204
|
props: {
|
|
2205
|
+
...makeComponentProps(),
|
|
2140
2206
|
...makeLayoutProps({
|
|
2141
2207
|
fullHeight: true
|
|
2142
2208
|
}),
|
|
@@ -2159,8 +2225,8 @@
|
|
|
2159
2225
|
} = useRtl();
|
|
2160
2226
|
useRender(() => vue.createVNode("div", {
|
|
2161
2227
|
"ref": layoutRef,
|
|
2162
|
-
"class": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value],
|
|
2163
|
-
"style": layoutStyles.value
|
|
2228
|
+
"class": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value, props.class],
|
|
2229
|
+
"style": [layoutStyles.value, props.style]
|
|
2164
2230
|
}, [vue.createVNode("div", {
|
|
2165
2231
|
"class": "v-application__wrap"
|
|
2166
2232
|
}, [slots.default?.()])]));
|
|
@@ -2585,6 +2651,7 @@
|
|
|
2585
2651
|
props: {
|
|
2586
2652
|
aspectRatio: [String, Number],
|
|
2587
2653
|
contentClass: String,
|
|
2654
|
+
...makeComponentProps(),
|
|
2588
2655
|
...makeDimensionProps()
|
|
2589
2656
|
},
|
|
2590
2657
|
setup(props, _ref) {
|
|
@@ -2598,8 +2665,8 @@
|
|
|
2598
2665
|
dimensionStyles
|
|
2599
2666
|
} = useDimension(props);
|
|
2600
2667
|
useRender(() => vue.createVNode("div", {
|
|
2601
|
-
"class":
|
|
2602
|
-
"style": dimensionStyles.value
|
|
2668
|
+
"class": ['v-responsive', props.class],
|
|
2669
|
+
"style": [dimensionStyles.value, props.style]
|
|
2603
2670
|
}, [vue.createVNode("div", {
|
|
2604
2671
|
"class": "v-responsive__sizer",
|
|
2605
2672
|
"style": aspectStyles.value
|
|
@@ -2717,6 +2784,7 @@
|
|
|
2717
2784
|
},
|
|
2718
2785
|
srcset: String,
|
|
2719
2786
|
width: [String, Number],
|
|
2787
|
+
...makeComponentProps(),
|
|
2720
2788
|
...makeTransitionProps()
|
|
2721
2789
|
},
|
|
2722
2790
|
emits: {
|
|
@@ -2904,10 +2972,10 @@
|
|
|
2904
2972
|
useRender(() => vue.withDirectives(vue.createVNode(VResponsive, {
|
|
2905
2973
|
"class": ['v-img', {
|
|
2906
2974
|
'v-img--booting': !isBooted.value
|
|
2907
|
-
}],
|
|
2908
|
-
"style": {
|
|
2975
|
+
}, props.class],
|
|
2976
|
+
"style": [{
|
|
2909
2977
|
width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width)
|
|
2910
|
-
},
|
|
2978
|
+
}, props.style],
|
|
2911
2979
|
"aspectRatio": aspectRatio.value,
|
|
2912
2980
|
"aria-label": props.alt,
|
|
2913
2981
|
"role": props.alt ? 'img' : undefined
|
|
@@ -2942,10 +3010,9 @@
|
|
|
2942
3010
|
}
|
|
2943
3011
|
}, 'tag');
|
|
2944
3012
|
|
|
2945
|
-
// Types
|
|
2946
|
-
|
|
2947
3013
|
const makeVToolbarTitleProps = propsFactory({
|
|
2948
3014
|
text: String,
|
|
3015
|
+
...makeComponentProps(),
|
|
2949
3016
|
...makeTagProps()
|
|
2950
3017
|
}, 'v-toolbar-title');
|
|
2951
3018
|
const VToolbarTitle = genericComponent()({
|
|
@@ -2958,7 +3025,8 @@
|
|
|
2958
3025
|
useRender(() => {
|
|
2959
3026
|
const hasText = !!(slots.default || slots.text || props.text);
|
|
2960
3027
|
return vue.createVNode(props.tag, {
|
|
2961
|
-
"class":
|
|
3028
|
+
"class": ['v-toolbar-title', props.class],
|
|
3029
|
+
"style": props.style
|
|
2962
3030
|
}, {
|
|
2963
3031
|
default: () => [hasText && vue.createVNode("div", {
|
|
2964
3032
|
"class": "v-toolbar-title__placeholder"
|
|
@@ -3139,6 +3207,7 @@
|
|
|
3139
3207
|
image: String,
|
|
3140
3208
|
title: String,
|
|
3141
3209
|
...makeBorderProps(),
|
|
3210
|
+
...makeComponentProps(),
|
|
3142
3211
|
...makeElevationProps(),
|
|
3143
3212
|
...makeRoundedProps(),
|
|
3144
3213
|
...makeTagProps({
|
|
@@ -3189,8 +3258,8 @@
|
|
|
3189
3258
|
'v-toolbar--flat': props.flat,
|
|
3190
3259
|
'v-toolbar--floating': props.floating,
|
|
3191
3260
|
[`v-toolbar--density-${props.density}`]: true
|
|
3192
|
-
}, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value],
|
|
3193
|
-
"style": [backgroundColorStyles.value]
|
|
3261
|
+
}, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
3262
|
+
"style": [backgroundColorStyles.value, props.style]
|
|
3194
3263
|
}, {
|
|
3195
3264
|
default: () => [hasImage && vue.createVNode("div", {
|
|
3196
3265
|
"key": "image",
|
|
@@ -3257,6 +3326,98 @@
|
|
|
3257
3326
|
|
|
3258
3327
|
// Utilities
|
|
3259
3328
|
|
|
3329
|
+
// Types
|
|
3330
|
+
|
|
3331
|
+
// Composables
|
|
3332
|
+
const makeScrollProps = propsFactory({
|
|
3333
|
+
scrollTarget: {
|
|
3334
|
+
type: String
|
|
3335
|
+
},
|
|
3336
|
+
scrollThreshold: {
|
|
3337
|
+
type: [String, Number]
|
|
3338
|
+
}
|
|
3339
|
+
}, 'scroll');
|
|
3340
|
+
function useScroll(props) {
|
|
3341
|
+
let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
3342
|
+
const {
|
|
3343
|
+
thresholdMetCallback,
|
|
3344
|
+
scrollThreshold,
|
|
3345
|
+
canScroll
|
|
3346
|
+
} = args;
|
|
3347
|
+
let previousScroll = 0;
|
|
3348
|
+
const target = vue.ref(null);
|
|
3349
|
+
const currentScroll = vue.ref(0);
|
|
3350
|
+
const savedScroll = vue.ref(0);
|
|
3351
|
+
const currentThreshold = vue.ref(0);
|
|
3352
|
+
const isScrollActive = vue.ref(false);
|
|
3353
|
+
const isScrollingUp = vue.ref(false);
|
|
3354
|
+
const computedScrollThreshold = vue.computed(() => {
|
|
3355
|
+
return Number(props.scrollThreshold ?? scrollThreshold ?? 300);
|
|
3356
|
+
});
|
|
3357
|
+
const onScroll = () => {
|
|
3358
|
+
const targetEl = target.value;
|
|
3359
|
+
if (!targetEl || canScroll && !canScroll.value) return;
|
|
3360
|
+
previousScroll = currentScroll.value;
|
|
3361
|
+
currentScroll.value = 'window' in targetEl ? targetEl.pageYOffset : targetEl.scrollTop;
|
|
3362
|
+
isScrollingUp.value = currentScroll.value < previousScroll;
|
|
3363
|
+
currentThreshold.value = Math.abs(currentScroll.value - computedScrollThreshold.value);
|
|
3364
|
+
};
|
|
3365
|
+
vue.watch(isScrollingUp, () => {
|
|
3366
|
+
savedScroll.value = savedScroll.value || currentScroll.value;
|
|
3367
|
+
});
|
|
3368
|
+
vue.watch(isScrollActive, () => {
|
|
3369
|
+
savedScroll.value = 0;
|
|
3370
|
+
});
|
|
3371
|
+
vue.onMounted(() => {
|
|
3372
|
+
vue.watch(() => props.scrollTarget, scrollTarget => {
|
|
3373
|
+
const newTarget = scrollTarget ? document.querySelector(scrollTarget) : window;
|
|
3374
|
+
if (!newTarget) {
|
|
3375
|
+
consoleWarn(`Unable to locate element with identifier ${scrollTarget}`, vue.getCurrentInstance());
|
|
3376
|
+
return;
|
|
3377
|
+
}
|
|
3378
|
+
if (newTarget === target.value) return;
|
|
3379
|
+
target.value?.removeEventListener('scroll', onScroll);
|
|
3380
|
+
target.value = newTarget;
|
|
3381
|
+
target.value.addEventListener('scroll', onScroll, {
|
|
3382
|
+
passive: true
|
|
3383
|
+
});
|
|
3384
|
+
}, {
|
|
3385
|
+
immediate: true
|
|
3386
|
+
});
|
|
3387
|
+
});
|
|
3388
|
+
vue.onBeforeUnmount(() => {
|
|
3389
|
+
target.value?.removeEventListener('scroll', onScroll);
|
|
3390
|
+
});
|
|
3391
|
+
thresholdMetCallback && vue.watch(() => Math.abs(currentScroll.value - savedScroll.value) > computedScrollThreshold.value, thresholdMet => {
|
|
3392
|
+
thresholdMet && thresholdMetCallback({
|
|
3393
|
+
currentThreshold: currentThreshold.value,
|
|
3394
|
+
isScrollingUp: isScrollingUp.value,
|
|
3395
|
+
savedScroll
|
|
3396
|
+
});
|
|
3397
|
+
}, {
|
|
3398
|
+
immediate: true
|
|
3399
|
+
});
|
|
3400
|
+
|
|
3401
|
+
// Do we need this? If yes - seems that
|
|
3402
|
+
// there's no need to expose onScroll
|
|
3403
|
+
canScroll && vue.watch(canScroll, onScroll, {
|
|
3404
|
+
immediate: true
|
|
3405
|
+
});
|
|
3406
|
+
return {
|
|
3407
|
+
computedScrollThreshold,
|
|
3408
|
+
currentScroll,
|
|
3409
|
+
currentThreshold,
|
|
3410
|
+
isScrollActive,
|
|
3411
|
+
// required only for testing
|
|
3412
|
+
// probably can be removed
|
|
3413
|
+
// later (2 chars chlng)
|
|
3414
|
+
isScrollingUp,
|
|
3415
|
+
savedScroll
|
|
3416
|
+
};
|
|
3417
|
+
}
|
|
3418
|
+
|
|
3419
|
+
// Utilities
|
|
3420
|
+
|
|
3260
3421
|
// Composables
|
|
3261
3422
|
function useSsrBoot() {
|
|
3262
3423
|
const isBooted = vue.ref(false);
|
|
@@ -3279,13 +3440,7 @@
|
|
|
3279
3440
|
const VAppBar = genericComponent()({
|
|
3280
3441
|
name: 'VAppBar',
|
|
3281
3442
|
props: {
|
|
3282
|
-
|
|
3283
|
-
// hideOnScroll: Boolean
|
|
3284
|
-
// invertedScroll: Boolean
|
|
3285
|
-
// collapseOnScroll: Boolean
|
|
3286
|
-
// elevateOnScroll: Boolean
|
|
3287
|
-
// shrinkOnScroll: Boolean
|
|
3288
|
-
// fadeImageOnScroll: Boolean
|
|
3443
|
+
scrollBehavior: String,
|
|
3289
3444
|
modelValue: {
|
|
3290
3445
|
type: Boolean,
|
|
3291
3446
|
default: true
|
|
@@ -3297,6 +3452,7 @@
|
|
|
3297
3452
|
},
|
|
3298
3453
|
...makeVToolbarProps(),
|
|
3299
3454
|
...makeLayoutItemProps(),
|
|
3455
|
+
...makeScrollProps(),
|
|
3300
3456
|
height: {
|
|
3301
3457
|
type: [Number, String],
|
|
3302
3458
|
default: 64
|
|
@@ -3311,11 +3467,63 @@
|
|
|
3311
3467
|
} = _ref;
|
|
3312
3468
|
const vToolbarRef = vue.ref();
|
|
3313
3469
|
const isActive = useProxiedModel(props, 'modelValue');
|
|
3470
|
+
const scrollBehavior = vue.computed(() => {
|
|
3471
|
+
const behavior = new Set(props.scrollBehavior?.split(' ') ?? []);
|
|
3472
|
+
return {
|
|
3473
|
+
hide: behavior.has('hide'),
|
|
3474
|
+
// fullyHide: behavior.has('fully-hide'),
|
|
3475
|
+
inverted: behavior.has('inverted'),
|
|
3476
|
+
collapse: behavior.has('collapse'),
|
|
3477
|
+
elevate: behavior.has('elevate'),
|
|
3478
|
+
fadeImage: behavior.has('fade-image')
|
|
3479
|
+
// shrink: behavior.has('shrink'),
|
|
3480
|
+
};
|
|
3481
|
+
});
|
|
3482
|
+
|
|
3483
|
+
const canScroll = vue.computed(() => {
|
|
3484
|
+
const behavior = scrollBehavior.value;
|
|
3485
|
+
return behavior.hide ||
|
|
3486
|
+
// behavior.fullyHide ||
|
|
3487
|
+
behavior.inverted || behavior.collapse || behavior.elevate || behavior.fadeImage ||
|
|
3488
|
+
// behavior.shrink ||
|
|
3489
|
+
!isActive.value;
|
|
3490
|
+
});
|
|
3491
|
+
const {
|
|
3492
|
+
currentScroll,
|
|
3493
|
+
currentThreshold,
|
|
3494
|
+
computedScrollThreshold,
|
|
3495
|
+
isScrollingUp
|
|
3496
|
+
} = useScroll(props, {
|
|
3497
|
+
canScroll
|
|
3498
|
+
});
|
|
3499
|
+
const isCollapsed = vue.computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? currentScroll.value < 1 : currentScroll.value > 0));
|
|
3500
|
+
const isFlat = vue.computed(() => props.flat || scrollBehavior.value.elevate && currentScroll.value === (scrollBehavior.value.inverted ? 1 : 0));
|
|
3501
|
+
const scrollRatio = vue.computed(() => Math.min((currentThreshold.value - currentScroll.value) / currentThreshold.value || 1, 1));
|
|
3502
|
+
const opacity = vue.computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
|
|
3314
3503
|
const height = vue.computed(() => {
|
|
3504
|
+
if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0;
|
|
3315
3505
|
const height = vToolbarRef.value?.contentHeight ?? 0;
|
|
3316
3506
|
const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;
|
|
3317
3507
|
return height + extensionHeight;
|
|
3318
3508
|
});
|
|
3509
|
+
function setActive() {
|
|
3510
|
+
const val = currentScroll.value;
|
|
3511
|
+
if (scrollBehavior.value.hide) {
|
|
3512
|
+
if (scrollBehavior.value.inverted) {
|
|
3513
|
+
isActive.value = val > computedScrollThreshold.value;
|
|
3514
|
+
} else {
|
|
3515
|
+
isActive.value = isScrollingUp.value || val < computedScrollThreshold.value;
|
|
3516
|
+
}
|
|
3517
|
+
} else if (scrollBehavior.value.inverted) {
|
|
3518
|
+
isActive.value = currentScroll.value === 0;
|
|
3519
|
+
} else {
|
|
3520
|
+
isActive.value = true;
|
|
3521
|
+
}
|
|
3522
|
+
}
|
|
3523
|
+
vue.watch(currentScroll, setActive, {
|
|
3524
|
+
immediate: true
|
|
3525
|
+
});
|
|
3526
|
+
vue.watch(scrollBehavior, setActive);
|
|
3319
3527
|
const {
|
|
3320
3528
|
ssrBootStyles
|
|
3321
3529
|
} = useSsrBoot();
|
|
@@ -3326,7 +3534,7 @@
|
|
|
3326
3534
|
order: vue.computed(() => parseInt(props.order, 10)),
|
|
3327
3535
|
position: vue.toRef(props, 'location'),
|
|
3328
3536
|
layoutSize: height,
|
|
3329
|
-
elementSize:
|
|
3537
|
+
elementSize: vue.ref(undefined),
|
|
3330
3538
|
active: isActive,
|
|
3331
3539
|
absolute: vue.toRef(props, 'absolute')
|
|
3332
3540
|
});
|
|
@@ -3336,13 +3544,17 @@
|
|
|
3336
3544
|
"ref": vToolbarRef,
|
|
3337
3545
|
"class": ['v-app-bar', {
|
|
3338
3546
|
'v-app-bar--bottom': props.location === 'bottom'
|
|
3339
|
-
}],
|
|
3340
|
-
"style": {
|
|
3547
|
+
}, props.class],
|
|
3548
|
+
"style": [{
|
|
3341
3549
|
...layoutItemStyles.value,
|
|
3550
|
+
'--v-toolbar-image-opacity': opacity.value,
|
|
3342
3551
|
height: undefined,
|
|
3343
3552
|
...ssrBootStyles.value
|
|
3344
|
-
}
|
|
3345
|
-
}, toolbarProps
|
|
3553
|
+
}, props.style]
|
|
3554
|
+
}, toolbarProps, {
|
|
3555
|
+
"collapse": isCollapsed.value,
|
|
3556
|
+
"flat": isFlat.value
|
|
3557
|
+
}), slots);
|
|
3346
3558
|
});
|
|
3347
3559
|
return {};
|
|
3348
3560
|
}
|
|
@@ -3425,6 +3637,7 @@
|
|
|
3425
3637
|
const makeVBtnGroupProps = propsFactory({
|
|
3426
3638
|
divided: Boolean,
|
|
3427
3639
|
...makeBorderProps(),
|
|
3640
|
+
...makeComponentProps(),
|
|
3428
3641
|
...makeDensityProps(),
|
|
3429
3642
|
...makeElevationProps(),
|
|
3430
3643
|
...makeRoundedProps(),
|
|
@@ -3467,7 +3680,8 @@
|
|
|
3467
3680
|
return vue.createVNode(props.tag, {
|
|
3468
3681
|
"class": ['v-btn-group', {
|
|
3469
3682
|
'v-btn-group--divided': props.divided
|
|
3470
|
-
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value]
|
|
3683
|
+
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
3684
|
+
"style": props.style
|
|
3471
3685
|
}, slots);
|
|
3472
3686
|
});
|
|
3473
3687
|
}
|
|
@@ -3700,8 +3914,10 @@
|
|
|
3700
3914
|
useRender(() => {
|
|
3701
3915
|
const [btnGroupProps] = VBtnGroup.filterProps(props);
|
|
3702
3916
|
return vue.createVNode(VBtnGroup, vue.mergeProps({
|
|
3703
|
-
"class":
|
|
3704
|
-
}, btnGroupProps
|
|
3917
|
+
"class": ['v-btn-toggle', props.class]
|
|
3918
|
+
}, btnGroupProps, {
|
|
3919
|
+
"style": props.style
|
|
3920
|
+
}), {
|
|
3705
3921
|
default: () => [slots.default?.({
|
|
3706
3922
|
isSelected,
|
|
3707
3923
|
next,
|
|
@@ -3772,7 +3988,7 @@
|
|
|
3772
3988
|
|
|
3773
3989
|
// Types
|
|
3774
3990
|
|
|
3775
|
-
const IconValue = [String, Function, Object];
|
|
3991
|
+
const IconValue = [String, Function, Object, Array];
|
|
3776
3992
|
const IconSymbol = Symbol.for('vuetify:icons');
|
|
3777
3993
|
const makeIconProps = propsFactory({
|
|
3778
3994
|
icon: {
|
|
@@ -3792,8 +4008,9 @@
|
|
|
3792
4008
|
slots
|
|
3793
4009
|
} = _ref;
|
|
3794
4010
|
return () => {
|
|
4011
|
+
const Icon = props.icon;
|
|
3795
4012
|
return vue.createVNode(props.tag, null, {
|
|
3796
|
-
default: () => [props.icon ? vue.createVNode(
|
|
4013
|
+
default: () => [props.icon ? vue.createVNode(Icon, null, null) : slots.default?.()]
|
|
3797
4014
|
});
|
|
3798
4015
|
};
|
|
3799
4016
|
}
|
|
@@ -3816,7 +4033,12 @@
|
|
|
3816
4033
|
"viewBox": "0 0 24 24",
|
|
3817
4034
|
"role": "img",
|
|
3818
4035
|
"aria-hidden": "true"
|
|
3819
|
-
}, [vue.createVNode("path", {
|
|
4036
|
+
}, [Array.isArray(props.icon) ? props.icon.map(path => Array.isArray(path) ? vue.createVNode("path", {
|
|
4037
|
+
"d": path[0],
|
|
4038
|
+
"fill-opacity": path[1]
|
|
4039
|
+
}, null) : vue.createVNode("path", {
|
|
4040
|
+
"d": path
|
|
4041
|
+
}, null)) : vue.createVNode("path", {
|
|
3820
4042
|
"d": props.icon
|
|
3821
4043
|
}, null)])]
|
|
3822
4044
|
});
|
|
@@ -3881,7 +4103,12 @@
|
|
|
3881
4103
|
}
|
|
3882
4104
|
}
|
|
3883
4105
|
if (!icon) throw new Error(`Could not find aliased icon "${iconAlias}"`);
|
|
3884
|
-
if (
|
|
4106
|
+
if (Array.isArray(icon)) {
|
|
4107
|
+
return {
|
|
4108
|
+
component: VSvgIcon,
|
|
4109
|
+
icon
|
|
4110
|
+
};
|
|
4111
|
+
} else if (typeof icon !== 'string') {
|
|
3885
4112
|
return {
|
|
3886
4113
|
component: VComponentIcon,
|
|
3887
4114
|
icon
|
|
@@ -3938,6 +4165,7 @@
|
|
|
3938
4165
|
start: Boolean,
|
|
3939
4166
|
end: Boolean,
|
|
3940
4167
|
icon: IconValue,
|
|
4168
|
+
...makeComponentProps(),
|
|
3941
4169
|
...makeSizeProps(),
|
|
3942
4170
|
...makeTagProps({
|
|
3943
4171
|
tag: 'i'
|
|
@@ -3980,12 +4208,12 @@
|
|
|
3980
4208
|
'v-icon--clickable': !!attrs.onClick,
|
|
3981
4209
|
'v-icon--start': props.start,
|
|
3982
4210
|
'v-icon--end': props.end
|
|
3983
|
-
}],
|
|
4211
|
+
}, props.class],
|
|
3984
4212
|
"style": [!sizeClasses.value ? {
|
|
3985
4213
|
fontSize: convertToUnit(props.size),
|
|
3986
4214
|
height: convertToUnit(props.size),
|
|
3987
4215
|
width: convertToUnit(props.size)
|
|
3988
|
-
} : undefined, textColorStyles.value],
|
|
4216
|
+
} : undefined, textColorStyles.value, props.style],
|
|
3989
4217
|
"role": attrs.onClick ? 'button' : undefined,
|
|
3990
4218
|
"aria-hidden": !attrs.onClick
|
|
3991
4219
|
}, {
|
|
@@ -3996,14 +4224,14 @@
|
|
|
3996
4224
|
});
|
|
3997
4225
|
|
|
3998
4226
|
// Utilities
|
|
3999
|
-
function useIntersectionObserver(callback) {
|
|
4227
|
+
function useIntersectionObserver(callback, options) {
|
|
4000
4228
|
const intersectionRef = vue.ref();
|
|
4001
4229
|
const isIntersecting = vue.ref(false);
|
|
4002
4230
|
if (SUPPORTS_INTERSECTION) {
|
|
4003
4231
|
const observer = new IntersectionObserver(entries => {
|
|
4004
4232
|
callback?.(entries, observer);
|
|
4005
4233
|
isIntersecting.value = !!entries.find(entry => entry.isIntersecting);
|
|
4006
|
-
});
|
|
4234
|
+
}, options);
|
|
4007
4235
|
vue.onBeforeUnmount(() => {
|
|
4008
4236
|
observer.disconnect();
|
|
4009
4237
|
});
|
|
@@ -4043,6 +4271,7 @@
|
|
|
4043
4271
|
type: [Number, String],
|
|
4044
4272
|
default: 4
|
|
4045
4273
|
},
|
|
4274
|
+
...makeComponentProps(),
|
|
4046
4275
|
...makeSizeProps(),
|
|
4047
4276
|
...makeTagProps({
|
|
4048
4277
|
tag: 'div'
|
|
@@ -4098,8 +4327,8 @@
|
|
|
4098
4327
|
'v-progress-circular--indeterminate': !!props.indeterminate,
|
|
4099
4328
|
'v-progress-circular--visible': isIntersecting.value,
|
|
4100
4329
|
'v-progress-circular--disable-shrink': props.indeterminate === 'disable-shrink'
|
|
4101
|
-
}, themeClasses.value, sizeClasses.value, textColorClasses.value],
|
|
4102
|
-
"style": [sizeStyles.value, textColorStyles.value],
|
|
4330
|
+
}, themeClasses.value, sizeClasses.value, textColorClasses.value, props.class],
|
|
4331
|
+
"style": [sizeStyles.value, textColorStyles.value, props.style],
|
|
4103
4332
|
"role": "progressbar",
|
|
4104
4333
|
"aria-valuemin": "0",
|
|
4105
4334
|
"aria-valuemax": "100",
|
|
@@ -4518,6 +4747,7 @@
|
|
|
4518
4747
|
stream: Boolean,
|
|
4519
4748
|
striped: Boolean,
|
|
4520
4749
|
roundedBar: Boolean,
|
|
4750
|
+
...makeComponentProps(),
|
|
4521
4751
|
...makeLocationProps({
|
|
4522
4752
|
location: 'top'
|
|
4523
4753
|
}),
|
|
@@ -4589,14 +4819,14 @@
|
|
|
4589
4819
|
'v-progress-linear--rounded': props.rounded,
|
|
4590
4820
|
'v-progress-linear--rounded-bar': props.roundedBar,
|
|
4591
4821
|
'v-progress-linear--striped': props.striped
|
|
4592
|
-
}, roundedClasses.value, themeClasses.value],
|
|
4593
|
-
"style": {
|
|
4822
|
+
}, roundedClasses.value, themeClasses.value, props.class],
|
|
4823
|
+
"style": [{
|
|
4594
4824
|
bottom: props.location === 'bottom' ? 0 : undefined,
|
|
4595
4825
|
top: props.location === 'top' ? 0 : undefined,
|
|
4596
4826
|
height: props.active ? convertToUnit(height.value) : 0,
|
|
4597
4827
|
'--v-progress-linear-height': convertToUnit(height.value),
|
|
4598
4828
|
...locationStyles.value
|
|
4599
|
-
},
|
|
4829
|
+
}, props.style],
|
|
4600
4830
|
"role": "progressbar",
|
|
4601
4831
|
"aria-hidden": props.active ? 'false' : 'true',
|
|
4602
4832
|
"aria-valuemin": "0",
|
|
@@ -4805,8 +5035,9 @@
|
|
|
4805
5035
|
type: Boolean,
|
|
4806
5036
|
default: true
|
|
4807
5037
|
},
|
|
5038
|
+
text: String,
|
|
4808
5039
|
...makeBorderProps(),
|
|
4809
|
-
...
|
|
5040
|
+
...makeComponentProps(),
|
|
4810
5041
|
...makeDensityProps(),
|
|
4811
5042
|
...makeDimensionProps(),
|
|
4812
5043
|
...makeElevationProps(),
|
|
@@ -4814,6 +5045,7 @@
|
|
|
4814
5045
|
...makeLoaderProps(),
|
|
4815
5046
|
...makeLocationProps(),
|
|
4816
5047
|
...makePositionProps(),
|
|
5048
|
+
...makeRoundedProps(),
|
|
4817
5049
|
...makeRouterProps(),
|
|
4818
5050
|
...makeSizeProps(),
|
|
4819
5051
|
...makeTagProps({
|
|
@@ -4911,8 +5143,8 @@
|
|
|
4911
5143
|
'v-btn--icon': !!props.icon,
|
|
4912
5144
|
'v-btn--loading': props.loading,
|
|
4913
5145
|
'v-btn--stacked': props.stacked
|
|
4914
|
-
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value],
|
|
4915
|
-
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value],
|
|
5146
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
|
5147
|
+
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],
|
|
4916
5148
|
"disabled": isDisabled.value || undefined,
|
|
4917
5149
|
"href": link.href.value,
|
|
4918
5150
|
"onClick": e => {
|
|
@@ -4950,7 +5182,9 @@
|
|
|
4950
5182
|
icon: props.icon
|
|
4951
5183
|
}
|
|
4952
5184
|
}
|
|
4953
|
-
},
|
|
5185
|
+
}, {
|
|
5186
|
+
default: () => [slots.default?.() ?? props.text]
|
|
5187
|
+
})]), !props.icon && hasAppend && vue.createVNode("span", {
|
|
4954
5188
|
"key": "append",
|
|
4955
5189
|
"class": "v-btn__append"
|
|
4956
5190
|
}, [!slots.append ? vue.createVNode(VIcon, {
|
|
@@ -4987,15 +5221,17 @@
|
|
|
4987
5221
|
icon: {
|
|
4988
5222
|
type: IconValue,
|
|
4989
5223
|
default: '$menu'
|
|
4990
|
-
}
|
|
5224
|
+
},
|
|
5225
|
+
...makeComponentProps()
|
|
4991
5226
|
},
|
|
4992
5227
|
setup(props, _ref) {
|
|
4993
5228
|
let {
|
|
4994
5229
|
slots
|
|
4995
5230
|
} = _ref;
|
|
4996
5231
|
useRender(() => vue.createVNode(VBtn, {
|
|
4997
|
-
"class":
|
|
4998
|
-
"icon": props.icon
|
|
5232
|
+
"class": ['v-app-bar-nav-icon', props.class],
|
|
5233
|
+
"icon": props.icon,
|
|
5234
|
+
"style": props.style
|
|
4999
5235
|
}, slots));
|
|
5000
5236
|
return {};
|
|
5001
5237
|
}
|
|
@@ -5003,9 +5239,12 @@
|
|
|
5003
5239
|
|
|
5004
5240
|
const VToolbarItems = genericComponent()({
|
|
5005
5241
|
name: 'VToolbarItems',
|
|
5006
|
-
props:
|
|
5007
|
-
|
|
5008
|
-
|
|
5242
|
+
props: {
|
|
5243
|
+
...makeComponentProps(),
|
|
5244
|
+
...makeVariantProps({
|
|
5245
|
+
variant: 'text'
|
|
5246
|
+
})
|
|
5247
|
+
},
|
|
5009
5248
|
setup(props, _ref) {
|
|
5010
5249
|
let {
|
|
5011
5250
|
slots
|
|
@@ -5018,7 +5257,8 @@
|
|
|
5018
5257
|
}
|
|
5019
5258
|
});
|
|
5020
5259
|
useRender(() => vue.createVNode("div", {
|
|
5021
|
-
"class":
|
|
5260
|
+
"class": ['v-toolbar-items', props.class],
|
|
5261
|
+
"style": props.style
|
|
5022
5262
|
}, [slots.default?.()]));
|
|
5023
5263
|
return {};
|
|
5024
5264
|
}
|
|
@@ -5080,6 +5320,7 @@
|
|
|
5080
5320
|
type: String,
|
|
5081
5321
|
validator: val => allowedTypes.includes(val)
|
|
5082
5322
|
},
|
|
5323
|
+
...makeComponentProps(),
|
|
5083
5324
|
...makeDensityProps(),
|
|
5084
5325
|
...makeDimensionProps(),
|
|
5085
5326
|
...makeElevationProps(),
|
|
@@ -5162,8 +5403,8 @@
|
|
|
5162
5403
|
[`v-alert--border-${props.border === true ? 'start' : props.border}`]: true
|
|
5163
5404
|
}, {
|
|
5164
5405
|
'v-alert--prominent': props.prominent
|
|
5165
|
-
}, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value],
|
|
5166
|
-
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value],
|
|
5406
|
+
}, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
|
5407
|
+
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
|
|
5167
5408
|
"role": "alert"
|
|
5168
5409
|
}, {
|
|
5169
5410
|
default: () => [genOverlays(false, 'v-alert'), props.border && vue.createVNode("div", {
|
|
@@ -5257,6 +5498,7 @@
|
|
|
5257
5498
|
props: {
|
|
5258
5499
|
text: String,
|
|
5259
5500
|
clickable: Boolean,
|
|
5501
|
+
...makeComponentProps(),
|
|
5260
5502
|
...makeThemeProps()
|
|
5261
5503
|
},
|
|
5262
5504
|
setup(props, _ref) {
|
|
@@ -5266,7 +5508,8 @@
|
|
|
5266
5508
|
useRender(() => vue.createVNode("label", {
|
|
5267
5509
|
"class": ['v-label', {
|
|
5268
5510
|
'v-label--clickable': props.clickable
|
|
5269
|
-
}]
|
|
5511
|
+
}, props.class],
|
|
5512
|
+
"style": props.style
|
|
5270
5513
|
}, [props.text, slots.default?.()]));
|
|
5271
5514
|
return {};
|
|
5272
5515
|
}
|
|
@@ -5275,7 +5518,8 @@
|
|
|
5275
5518
|
const VFieldLabel = genericComponent()({
|
|
5276
5519
|
name: 'VFieldLabel',
|
|
5277
5520
|
props: {
|
|
5278
|
-
floating: Boolean
|
|
5521
|
+
floating: Boolean,
|
|
5522
|
+
...makeComponentProps()
|
|
5279
5523
|
},
|
|
5280
5524
|
setup(props, _ref) {
|
|
5281
5525
|
let {
|
|
@@ -5284,7 +5528,8 @@
|
|
|
5284
5528
|
useRender(() => vue.createVNode(VLabel, {
|
|
5285
5529
|
"class": ['v-field-label', {
|
|
5286
5530
|
'v-field-label--floating': props.floating
|
|
5287
|
-
}],
|
|
5531
|
+
}, props.class],
|
|
5532
|
+
"style": props.style,
|
|
5288
5533
|
"aria-hidden": props.floating || undefined
|
|
5289
5534
|
}, slots));
|
|
5290
5535
|
return {};
|
|
@@ -5324,7 +5569,7 @@
|
|
|
5324
5569
|
|
|
5325
5570
|
// Types
|
|
5326
5571
|
|
|
5327
|
-
const allowedVariants$1 = ['underlined', 'outlined', 'filled', 'solo', 'plain'];
|
|
5572
|
+
const allowedVariants$1 = ['underlined', 'outlined', 'filled', 'solo', 'solo-inverted', 'solo-filled', 'plain'];
|
|
5328
5573
|
const makeVFieldProps = propsFactory({
|
|
5329
5574
|
appendInnerIcon: IconValue,
|
|
5330
5575
|
bgColor: String,
|
|
@@ -5335,9 +5580,11 @@
|
|
|
5335
5580
|
},
|
|
5336
5581
|
active: Boolean,
|
|
5337
5582
|
color: String,
|
|
5583
|
+
baseColor: String,
|
|
5338
5584
|
dirty: Boolean,
|
|
5339
5585
|
disabled: Boolean,
|
|
5340
5586
|
error: Boolean,
|
|
5587
|
+
flat: Boolean,
|
|
5341
5588
|
label: String,
|
|
5342
5589
|
persistentClear: Boolean,
|
|
5343
5590
|
prependInnerIcon: IconValue,
|
|
@@ -5351,8 +5598,10 @@
|
|
|
5351
5598
|
'onClick:clear': EventProp(),
|
|
5352
5599
|
'onClick:appendInner': EventProp(),
|
|
5353
5600
|
'onClick:prependInner': EventProp(),
|
|
5354
|
-
...
|
|
5355
|
-
...makeLoaderProps()
|
|
5601
|
+
...makeComponentProps(),
|
|
5602
|
+
...makeLoaderProps(),
|
|
5603
|
+
...makeRoundedProps(),
|
|
5604
|
+
...makeThemeProps()
|
|
5356
5605
|
}, 'v-field');
|
|
5357
5606
|
const VField = genericComponent()({
|
|
5358
5607
|
name: 'VField',
|
|
@@ -5387,7 +5636,10 @@
|
|
|
5387
5636
|
const {
|
|
5388
5637
|
InputIcon
|
|
5389
5638
|
} = useInputIcon(props);
|
|
5390
|
-
const
|
|
5639
|
+
const {
|
|
5640
|
+
roundedClasses
|
|
5641
|
+
} = useRounded(props);
|
|
5642
|
+
const isActive = vue.computed(() => props.dirty || props.active);
|
|
5391
5643
|
const hasLabel = vue.computed(() => !props.singleLine && !!(props.label || slots.label));
|
|
5392
5644
|
const uid = getUid();
|
|
5393
5645
|
const id = vue.computed(() => props.id || `input-${uid}`);
|
|
@@ -5403,7 +5655,7 @@
|
|
|
5403
5655
|
textColorClasses,
|
|
5404
5656
|
textColorStyles
|
|
5405
5657
|
} = useTextColor(vue.computed(() => {
|
|
5406
|
-
return
|
|
5658
|
+
return props.error || props.disabled ? undefined : isActive.value && isFocused.value ? props.color : props.baseColor;
|
|
5407
5659
|
}));
|
|
5408
5660
|
vue.watch(isActive, val => {
|
|
5409
5661
|
if (hasLabel.value) {
|
|
@@ -5472,6 +5724,7 @@
|
|
|
5472
5724
|
'v-field--disabled': props.disabled,
|
|
5473
5725
|
'v-field--dirty': props.dirty,
|
|
5474
5726
|
'v-field--error': props.error,
|
|
5727
|
+
'v-field--flat': props.flat,
|
|
5475
5728
|
'v-field--has-background': !!props.bgColor,
|
|
5476
5729
|
'v-field--persistent-clear': props.persistentClear,
|
|
5477
5730
|
'v-field--prepended': hasPrepend,
|
|
@@ -5479,8 +5732,8 @@
|
|
|
5479
5732
|
'v-field--single-line': props.singleLine,
|
|
5480
5733
|
'v-field--no-label': !label,
|
|
5481
5734
|
[`v-field--variant-${props.variant}`]: true
|
|
5482
|
-
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value],
|
|
5483
|
-
"style": [backgroundColorStyles.value, textColorStyles.value],
|
|
5735
|
+
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, props.class],
|
|
5736
|
+
"style": [backgroundColorStyles.value, textColorStyles.value, props.style],
|
|
5484
5737
|
"onClick": onClick
|
|
5485
5738
|
}, attrs), [vue.createVNode("div", {
|
|
5486
5739
|
"class": "v-field__overlay"
|
|
@@ -5499,7 +5752,7 @@
|
|
|
5499
5752
|
}, null), slots['prepend-inner']?.(slotProps.value)]), vue.createVNode("div", {
|
|
5500
5753
|
"class": "v-field__field",
|
|
5501
5754
|
"data-no-activator": ""
|
|
5502
|
-
}, [['solo', 'filled'].includes(props.variant) && hasLabel.value && vue.createVNode(VFieldLabel, {
|
|
5755
|
+
}, [['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasLabel.value && vue.createVNode(VFieldLabel, {
|
|
5503
5756
|
"key": "floating-label",
|
|
5504
5757
|
"ref": floatingLabelRef,
|
|
5505
5758
|
"class": [textColorClasses.value],
|
|
@@ -5568,7 +5821,7 @@
|
|
|
5568
5821
|
});
|
|
5569
5822
|
// TODO: this is kinda slow, might be better to implicitly inherit props instead
|
|
5570
5823
|
function filterFieldProps(attrs) {
|
|
5571
|
-
const keys = Object.keys(VField.props).filter(k => !isOn(k));
|
|
5824
|
+
const keys = Object.keys(VField.props).filter(k => !isOn(k) && k !== 'class' && k !== 'style');
|
|
5572
5825
|
return pick(attrs, keys);
|
|
5573
5826
|
}
|
|
5574
5827
|
|
|
@@ -5583,6 +5836,7 @@
|
|
|
5583
5836
|
type: [Array, String],
|
|
5584
5837
|
default: () => []
|
|
5585
5838
|
},
|
|
5839
|
+
...makeComponentProps(),
|
|
5586
5840
|
...makeTransitionProps({
|
|
5587
5841
|
transition: {
|
|
5588
5842
|
component: VSlideYTransition,
|
|
@@ -5603,8 +5857,8 @@
|
|
|
5603
5857
|
useRender(() => vue.createVNode(MaybeTransition, {
|
|
5604
5858
|
"transition": props.transition,
|
|
5605
5859
|
"tag": "div",
|
|
5606
|
-
"class": ['v-messages', textColorClasses.value],
|
|
5607
|
-
"style": textColorStyles.value,
|
|
5860
|
+
"class": ['v-messages', textColorClasses.value, props.class],
|
|
5861
|
+
"style": [textColorStyles.value, props.style],
|
|
5608
5862
|
"role": "alert",
|
|
5609
5863
|
"aria-live": "polite"
|
|
5610
5864
|
}, {
|
|
@@ -5900,6 +6154,7 @@
|
|
|
5900
6154
|
},
|
|
5901
6155
|
'onClick:prepend': EventProp(),
|
|
5902
6156
|
'onClick:append': EventProp(),
|
|
6157
|
+
...makeComponentProps(),
|
|
5903
6158
|
...makeDensityProps(),
|
|
5904
6159
|
...makeValidationProps()
|
|
5905
6160
|
}, 'v-input');
|
|
@@ -5967,7 +6222,8 @@
|
|
|
5967
6222
|
const hasMessages = messages.value.length > 0;
|
|
5968
6223
|
const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);
|
|
5969
6224
|
return vue.createVNode("div", {
|
|
5970
|
-
"class": ['v-input', `v-input--${props.direction}`, densityClasses.value, validationClasses.value]
|
|
6225
|
+
"class": ['v-input', `v-input--${props.direction}`, densityClasses.value, validationClasses.value, props.class],
|
|
6226
|
+
"style": props.style
|
|
5971
6227
|
}, [hasPrepend && vue.createVNode("div", {
|
|
5972
6228
|
"key": "prepend",
|
|
5973
6229
|
"class": "v-input__prepend"
|
|
@@ -6010,6 +6266,7 @@
|
|
|
6010
6266
|
type: [Number, String],
|
|
6011
6267
|
default: 0
|
|
6012
6268
|
},
|
|
6269
|
+
...makeComponentProps(),
|
|
6013
6270
|
...makeTransitionProps({
|
|
6014
6271
|
transition: {
|
|
6015
6272
|
component: VSlideYTransition
|
|
@@ -6027,7 +6284,8 @@
|
|
|
6027
6284
|
"transition": props.transition
|
|
6028
6285
|
}, {
|
|
6029
6286
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
|
6030
|
-
"class":
|
|
6287
|
+
"class": ['v-counter', props.class],
|
|
6288
|
+
"style": props.style
|
|
6031
6289
|
}, [slots.default ? slots.default({
|
|
6032
6290
|
counter: counter.value,
|
|
6033
6291
|
max: props.max,
|
|
@@ -6230,7 +6488,8 @@
|
|
|
6230
6488
|
'v-text-field--prefixed': props.prefix,
|
|
6231
6489
|
'v-text-field--suffixed': props.suffix,
|
|
6232
6490
|
'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant)
|
|
6233
|
-
}]
|
|
6491
|
+
}, props.class],
|
|
6492
|
+
"style": props.style
|
|
6234
6493
|
}, rootAttrs, inputProps, {
|
|
6235
6494
|
"focused": isFocused.value
|
|
6236
6495
|
}), {
|
|
@@ -6346,6 +6605,7 @@
|
|
|
6346
6605
|
type: String,
|
|
6347
6606
|
default: 'VSelectionControl'
|
|
6348
6607
|
},
|
|
6608
|
+
...makeComponentProps(),
|
|
6349
6609
|
...makeSelectionControlGroupProps()
|
|
6350
6610
|
},
|
|
6351
6611
|
emits: {
|
|
@@ -6393,7 +6653,8 @@
|
|
|
6393
6653
|
useRender(() => vue.createVNode("div", {
|
|
6394
6654
|
"class": ['v-selection-control-group', {
|
|
6395
6655
|
'v-selection-control-group--inline': props.inline
|
|
6396
|
-
}],
|
|
6656
|
+
}, props.class],
|
|
6657
|
+
"style": props.style,
|
|
6397
6658
|
"role": props.type === 'radio' ? 'radiogroup' : undefined
|
|
6398
6659
|
}, [slots.default?.()]));
|
|
6399
6660
|
return {};
|
|
@@ -6407,6 +6668,7 @@
|
|
|
6407
6668
|
trueValue: null,
|
|
6408
6669
|
falseValue: null,
|
|
6409
6670
|
value: null,
|
|
6671
|
+
...makeComponentProps(),
|
|
6410
6672
|
...makeSelectionControlGroupProps()
|
|
6411
6673
|
}, 'v-selection-control');
|
|
6412
6674
|
function useSelectionControl(props) {
|
|
@@ -6521,8 +6783,10 @@
|
|
|
6521
6783
|
'v-selection-control--focused': isFocused.value,
|
|
6522
6784
|
'v-selection-control--focus-visible': isFocusVisible.value,
|
|
6523
6785
|
'v-selection-control--inline': props.inline
|
|
6524
|
-
}, densityClasses.value]
|
|
6525
|
-
}, rootAttrs
|
|
6786
|
+
}, densityClasses.value, props.class]
|
|
6787
|
+
}, rootAttrs, {
|
|
6788
|
+
"style": props.style
|
|
6789
|
+
}), [vue.createVNode("div", {
|
|
6526
6790
|
"class": ['v-selection-control__wrapper', textColorClasses.value],
|
|
6527
6791
|
"style": textColorStyles.value
|
|
6528
6792
|
}, [slots.default?.(), vue.withDirectives(vue.createVNode("div", {
|
|
@@ -6604,7 +6868,8 @@
|
|
|
6604
6868
|
useRender(() => vue.createVNode(VSelectionControl, vue.mergeProps(props, {
|
|
6605
6869
|
"modelValue": model.value,
|
|
6606
6870
|
"onUpdate:modelValue": [$event => model.value = $event, onChange],
|
|
6607
|
-
"class":
|
|
6871
|
+
"class": ['v-checkbox-btn', props.class],
|
|
6872
|
+
"style": props.style,
|
|
6608
6873
|
"type": "checkbox",
|
|
6609
6874
|
"inline": true,
|
|
6610
6875
|
"falseIcon": falseIcon.value,
|
|
@@ -6644,10 +6909,11 @@
|
|
|
6644
6909
|
const [inputProps, _1] = VInput.filterProps(props);
|
|
6645
6910
|
const [checkboxProps, _2] = VCheckboxBtn.filterProps(props);
|
|
6646
6911
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
6647
|
-
"class":
|
|
6912
|
+
"class": ['v-checkbox', props.class]
|
|
6648
6913
|
}, inputAttrs, inputProps, {
|
|
6649
6914
|
"id": id.value,
|
|
6650
|
-
"focused": isFocused.value
|
|
6915
|
+
"focused": isFocused.value,
|
|
6916
|
+
"style": props.style
|
|
6651
6917
|
}), {
|
|
6652
6918
|
...slots,
|
|
6653
6919
|
default: _ref2 => {
|
|
@@ -6678,6 +6944,7 @@
|
|
|
6678
6944
|
end: Boolean,
|
|
6679
6945
|
icon: IconValue,
|
|
6680
6946
|
image: String,
|
|
6947
|
+
...makeComponentProps(),
|
|
6681
6948
|
...makeDensityProps(),
|
|
6682
6949
|
...makeRoundedProps(),
|
|
6683
6950
|
...makeSizeProps(),
|
|
@@ -6716,8 +6983,8 @@
|
|
|
6716
6983
|
"class": ['v-avatar', {
|
|
6717
6984
|
'v-avatar--start': props.start,
|
|
6718
6985
|
'v-avatar--end': props.end
|
|
6719
|
-
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value],
|
|
6720
|
-
"style": [colorStyles.value, sizeStyles.value]
|
|
6986
|
+
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
|
6987
|
+
"style": [colorStyles.value, sizeStyles.value, props.style]
|
|
6721
6988
|
}, {
|
|
6722
6989
|
default: () => [props.image ? vue.createVNode(VImg, {
|
|
6723
6990
|
"key": "image",
|
|
@@ -6745,6 +7012,7 @@
|
|
|
6745
7012
|
type: Function,
|
|
6746
7013
|
default: deepEqual
|
|
6747
7014
|
},
|
|
7015
|
+
...makeComponentProps(),
|
|
6748
7016
|
...makeGroupProps({
|
|
6749
7017
|
selectedClass: 'v-chip--selected'
|
|
6750
7018
|
}),
|
|
@@ -6782,7 +7050,8 @@
|
|
|
6782
7050
|
useRender(() => vue.createVNode(props.tag, {
|
|
6783
7051
|
"class": ['v-chip-group', {
|
|
6784
7052
|
'v-chip-group--column': props.column
|
|
6785
|
-
}, themeClasses.value]
|
|
7053
|
+
}, themeClasses.value, props.class],
|
|
7054
|
+
"style": props.style
|
|
6786
7055
|
}, {
|
|
6787
7056
|
default: () => [slots.default?.({
|
|
6788
7057
|
isSelected,
|
|
@@ -6796,8 +7065,6 @@
|
|
|
6796
7065
|
}
|
|
6797
7066
|
});
|
|
6798
7067
|
|
|
6799
|
-
// Types
|
|
6800
|
-
|
|
6801
7068
|
const VChip = genericComponent()({
|
|
6802
7069
|
name: 'VChip',
|
|
6803
7070
|
directives: {
|
|
@@ -6842,6 +7109,7 @@
|
|
|
6842
7109
|
onClick: EventProp(),
|
|
6843
7110
|
onClickOnce: EventProp(),
|
|
6844
7111
|
...makeBorderProps(),
|
|
7112
|
+
...makeComponentProps(),
|
|
6845
7113
|
...makeDensityProps(),
|
|
6846
7114
|
...makeElevationProps(),
|
|
6847
7115
|
...makeGroupItemProps(),
|
|
@@ -6934,8 +7202,8 @@
|
|
|
6934
7202
|
'v-chip--link': isClickable.value,
|
|
6935
7203
|
'v-chip--filter': hasFilter,
|
|
6936
7204
|
'v-chip--pill': props.pill
|
|
6937
|
-
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value],
|
|
6938
|
-
"style": [hasColor ? colorStyles.value : undefined],
|
|
7205
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value, props.class],
|
|
7206
|
+
"style": [hasColor ? colorStyles.value : undefined, props.style],
|
|
6939
7207
|
"disabled": props.disabled || undefined,
|
|
6940
7208
|
"draggable": props.draggable,
|
|
6941
7209
|
"href": link.href.value,
|
|
@@ -7044,6 +7312,7 @@
|
|
|
7044
7312
|
length: [Number, String],
|
|
7045
7313
|
thickness: [Number, String],
|
|
7046
7314
|
vertical: Boolean,
|
|
7315
|
+
...makeComponentProps(),
|
|
7047
7316
|
...makeThemeProps()
|
|
7048
7317
|
},
|
|
7049
7318
|
setup(props, _ref) {
|
|
@@ -7072,8 +7341,8 @@
|
|
|
7072
7341
|
'v-divider': true,
|
|
7073
7342
|
'v-divider--inset': props.inset,
|
|
7074
7343
|
'v-divider--vertical': props.vertical
|
|
7075
|
-
}, themeClasses.value, textColorClasses.value],
|
|
7076
|
-
"style": [dividerStyles.value, textColorStyles.value],
|
|
7344
|
+
}, themeClasses.value, textColorClasses.value, props.class],
|
|
7345
|
+
"style": [dividerStyles.value, textColorStyles.value, props.style],
|
|
7077
7346
|
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
|
7078
7347
|
"role": `${attrs.role || 'separator'}`
|
|
7079
7348
|
}, null));
|
|
@@ -7572,6 +7841,7 @@
|
|
|
7572
7841
|
fluid: Boolean,
|
|
7573
7842
|
subgroup: Boolean,
|
|
7574
7843
|
value: null,
|
|
7844
|
+
...makeComponentProps(),
|
|
7575
7845
|
...makeTagProps()
|
|
7576
7846
|
}, 'v-list-group');
|
|
7577
7847
|
const VListGroup = genericComponent()({
|
|
@@ -7620,7 +7890,8 @@
|
|
|
7620
7890
|
'v-list-group--fluid': props.fluid,
|
|
7621
7891
|
'v-list-group--subgroup': props.subgroup,
|
|
7622
7892
|
'v-list-group--open': isOpen.value
|
|
7623
|
-
}]
|
|
7893
|
+
}, props.class],
|
|
7894
|
+
"style": props.style
|
|
7624
7895
|
}, {
|
|
7625
7896
|
default: () => [slots.activator && vue.createVNode(VDefaultsProvider, {
|
|
7626
7897
|
"defaults": activatorDefaults.value
|
|
@@ -7687,6 +7958,7 @@
|
|
|
7687
7958
|
onClick: EventProp(),
|
|
7688
7959
|
onClickOnce: EventProp(),
|
|
7689
7960
|
...makeBorderProps(),
|
|
7961
|
+
...makeComponentProps(),
|
|
7690
7962
|
...makeDensityProps(),
|
|
7691
7963
|
...makeDimensionProps(),
|
|
7692
7964
|
...makeElevationProps(),
|
|
@@ -7797,8 +8069,8 @@
|
|
|
7797
8069
|
'v-list-item--nav': props.nav,
|
|
7798
8070
|
'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,
|
|
7799
8071
|
[`${props.activeClass}`]: props.activeClass && isActive.value
|
|
7800
|
-
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value],
|
|
7801
|
-
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value],
|
|
8072
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
|
8073
|
+
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, props.style],
|
|
7802
8074
|
"href": link.href.value,
|
|
7803
8075
|
"tabindex": isClickable.value ? 0 : undefined,
|
|
7804
8076
|
"onClick": onClick,
|
|
@@ -7891,6 +8163,7 @@
|
|
|
7891
8163
|
inset: Boolean,
|
|
7892
8164
|
sticky: Boolean,
|
|
7893
8165
|
title: String,
|
|
8166
|
+
...makeComponentProps(),
|
|
7894
8167
|
...makeTagProps()
|
|
7895
8168
|
},
|
|
7896
8169
|
setup(props, _ref) {
|
|
@@ -7907,10 +8180,10 @@
|
|
|
7907
8180
|
"class": ['v-list-subheader', {
|
|
7908
8181
|
'v-list-subheader--inset': props.inset,
|
|
7909
8182
|
'v-list-subheader--sticky': props.sticky
|
|
7910
|
-
}, textColorClasses.value],
|
|
7911
|
-
"style": {
|
|
8183
|
+
}, textColorClasses.value, props.class],
|
|
8184
|
+
"style": [{
|
|
7912
8185
|
textColorStyles
|
|
7913
|
-
}
|
|
8186
|
+
}, props.style]
|
|
7914
8187
|
}, {
|
|
7915
8188
|
default: () => [hasText && vue.createVNode("div", {
|
|
7916
8189
|
"class": "v-list-subheader__text"
|
|
@@ -8130,6 +8403,7 @@
|
|
|
8130
8403
|
openStrategy: 'list'
|
|
8131
8404
|
}),
|
|
8132
8405
|
...makeBorderProps(),
|
|
8406
|
+
...makeComponentProps(),
|
|
8133
8407
|
...makeDensityProps(),
|
|
8134
8408
|
...makeDimensionProps(),
|
|
8135
8409
|
...makeElevationProps(),
|
|
@@ -8231,27 +8505,8 @@
|
|
|
8231
8505
|
e.preventDefault();
|
|
8232
8506
|
}
|
|
8233
8507
|
function focus(location) {
|
|
8234
|
-
if (
|
|
8235
|
-
|
|
8236
|
-
const focusable = [...contentRef.value.querySelectorAll(targets)].filter(el => !el.hasAttribute('disabled'));
|
|
8237
|
-
const idx = focusable.indexOf(document.activeElement);
|
|
8238
|
-
if (!location) {
|
|
8239
|
-
if (!contentRef.value.contains(document.activeElement)) {
|
|
8240
|
-
focusable[0]?.focus();
|
|
8241
|
-
}
|
|
8242
|
-
} else if (location === 'first') {
|
|
8243
|
-
focusable[0]?.focus();
|
|
8244
|
-
} else if (location === 'last') {
|
|
8245
|
-
focusable.at(-1)?.focus();
|
|
8246
|
-
} else {
|
|
8247
|
-
let el;
|
|
8248
|
-
let idxx = idx;
|
|
8249
|
-
const inc = location === 'next' ? 1 : -1;
|
|
8250
|
-
do {
|
|
8251
|
-
idxx += inc;
|
|
8252
|
-
el = focusable[idxx];
|
|
8253
|
-
} while ((!el || el.offsetParent == null) && idxx < focusable.length && idxx >= 0);
|
|
8254
|
-
if (el) el.focus();else focus(location === 'next' ? 'first' : 'last');
|
|
8508
|
+
if (contentRef.value) {
|
|
8509
|
+
return focusChild(contentRef.value, location);
|
|
8255
8510
|
}
|
|
8256
8511
|
}
|
|
8257
8512
|
useRender(() => {
|
|
@@ -8260,8 +8515,8 @@
|
|
|
8260
8515
|
"class": ['v-list', {
|
|
8261
8516
|
'v-list--disabled': props.disabled,
|
|
8262
8517
|
'v-list--nav': props.nav
|
|
8263
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value],
|
|
8264
|
-
"style": [backgroundColorStyles.value, dimensionStyles.value],
|
|
8518
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class],
|
|
8519
|
+
"style": [backgroundColorStyles.value, dimensionStyles.value, props.style],
|
|
8265
8520
|
"role": "listbox",
|
|
8266
8521
|
"aria-activedescendant": undefined,
|
|
8267
8522
|
"onFocusin": onFocusin,
|
|
@@ -8289,6 +8544,7 @@
|
|
|
8289
8544
|
props: {
|
|
8290
8545
|
start: Boolean,
|
|
8291
8546
|
end: Boolean,
|
|
8547
|
+
...makeComponentProps(),
|
|
8292
8548
|
...makeTagProps()
|
|
8293
8549
|
},
|
|
8294
8550
|
setup(props, _ref) {
|
|
@@ -8299,7 +8555,8 @@
|
|
|
8299
8555
|
"class": ['v-list-item-action', {
|
|
8300
8556
|
'v-list-item-action--start': props.start,
|
|
8301
8557
|
'v-list-item-action--end': props.end
|
|
8302
|
-
}]
|
|
8558
|
+
}, props.class],
|
|
8559
|
+
"style": props.style
|
|
8303
8560
|
}, slots));
|
|
8304
8561
|
return {};
|
|
8305
8562
|
}
|
|
@@ -8310,6 +8567,7 @@
|
|
|
8310
8567
|
props: {
|
|
8311
8568
|
start: Boolean,
|
|
8312
8569
|
end: Boolean,
|
|
8570
|
+
...makeComponentProps(),
|
|
8313
8571
|
...makeTagProps()
|
|
8314
8572
|
},
|
|
8315
8573
|
setup(props, _ref) {
|
|
@@ -8321,7 +8579,8 @@
|
|
|
8321
8579
|
"class": ['v-list-item-media', {
|
|
8322
8580
|
'v-list-item-media--start': props.start,
|
|
8323
8581
|
'v-list-item-media--end': props.end
|
|
8324
|
-
}]
|
|
8582
|
+
}, props.class],
|
|
8583
|
+
"style": props.style
|
|
8325
8584
|
}, slots);
|
|
8326
8585
|
});
|
|
8327
8586
|
return {};
|
|
@@ -9562,6 +9821,7 @@
|
|
|
9562
9821
|
default: 2000
|
|
9563
9822
|
},
|
|
9564
9823
|
...makeActivatorProps(),
|
|
9824
|
+
...makeComponentProps(),
|
|
9565
9825
|
...makeDimensionProps(),
|
|
9566
9826
|
...makeLazyProps(),
|
|
9567
9827
|
...makeLocationStrategyProps(),
|
|
@@ -9729,10 +9989,10 @@
|
|
|
9729
9989
|
'v-overlay--absolute': props.absolute || props.contained,
|
|
9730
9990
|
'v-overlay--active': isActive.value,
|
|
9731
9991
|
'v-overlay--contained': props.contained
|
|
9732
|
-
}, themeClasses.value, rtlClasses.value],
|
|
9992
|
+
}, themeClasses.value, rtlClasses.value, props.class],
|
|
9733
9993
|
"style": [stackStyles.value, {
|
|
9734
9994
|
top: convertToUnit(top.value)
|
|
9735
|
-
}],
|
|
9995
|
+
}, props.style],
|
|
9736
9996
|
"ref": root
|
|
9737
9997
|
}, scopeId, attrs), [vue.createVNode(Scrim, vue.mergeProps({
|
|
9738
9998
|
"color": scrimColor,
|
|
@@ -9838,7 +10098,8 @@
|
|
|
9838
10098
|
const [overlayProps] = VOverlay.filterProps(props);
|
|
9839
10099
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
|
9840
10100
|
"ref": overlay,
|
|
9841
|
-
"class": ['v-menu']
|
|
10101
|
+
"class": ['v-menu', props.class],
|
|
10102
|
+
"style": props.style
|
|
9842
10103
|
}, overlayProps, {
|
|
9843
10104
|
"modelValue": isActive.value,
|
|
9844
10105
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
@@ -10057,7 +10318,8 @@
|
|
|
10057
10318
|
'v-select--chips': !!props.chips,
|
|
10058
10319
|
[`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,
|
|
10059
10320
|
'v-select--selected': model.value.length
|
|
10060
|
-
}],
|
|
10321
|
+
}, props.class],
|
|
10322
|
+
"style": props.style,
|
|
10061
10323
|
"appendInnerIcon": props.menuIcon,
|
|
10062
10324
|
"readonly": true,
|
|
10063
10325
|
"placeholder": placeholder,
|
|
@@ -10500,7 +10762,8 @@
|
|
|
10500
10762
|
'v-autocomplete--selecting-index': selectionIndex.value > -1,
|
|
10501
10763
|
[`v-autocomplete--${props.multiple ? 'multiple' : 'single'}`]: true,
|
|
10502
10764
|
'v-autocomplete--selection-slot': !!slots.selection
|
|
10503
|
-
}],
|
|
10765
|
+
}, props.class],
|
|
10766
|
+
"style": props.style,
|
|
10504
10767
|
"appendInnerIcon": props.menuIcon,
|
|
10505
10768
|
"readonly": props.readonly,
|
|
10506
10769
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
@@ -10614,8 +10877,6 @@
|
|
|
10614
10877
|
}
|
|
10615
10878
|
});
|
|
10616
10879
|
|
|
10617
|
-
// Types
|
|
10618
|
-
|
|
10619
10880
|
const VBadge = genericComponent()({
|
|
10620
10881
|
name: 'VBadge',
|
|
10621
10882
|
inheritAttrs: false,
|
|
@@ -10639,6 +10900,7 @@
|
|
|
10639
10900
|
offsetX: [Number, String],
|
|
10640
10901
|
offsetY: [Number, String],
|
|
10641
10902
|
textColor: String,
|
|
10903
|
+
...makeComponentProps(),
|
|
10642
10904
|
...makeLocationProps({
|
|
10643
10905
|
location: 'top end'
|
|
10644
10906
|
}),
|
|
@@ -10683,8 +10945,10 @@
|
|
|
10683
10945
|
'v-badge--dot': props.dot,
|
|
10684
10946
|
'v-badge--floating': props.floating,
|
|
10685
10947
|
'v-badge--inline': props.inline
|
|
10686
|
-
}]
|
|
10687
|
-
}, attrs
|
|
10948
|
+
}, props.class]
|
|
10949
|
+
}, attrs, {
|
|
10950
|
+
"style": props.style
|
|
10951
|
+
}), {
|
|
10688
10952
|
default: () => [vue.createVNode("div", {
|
|
10689
10953
|
"class": "v-badge__wrapper"
|
|
10690
10954
|
}, [ctx.slots.default?.(), vue.createVNode(MaybeTransition, {
|
|
@@ -10711,7 +10975,8 @@
|
|
|
10711
10975
|
name: 'VBannerActions',
|
|
10712
10976
|
props: {
|
|
10713
10977
|
color: String,
|
|
10714
|
-
density: String
|
|
10978
|
+
density: String,
|
|
10979
|
+
...makeComponentProps()
|
|
10715
10980
|
},
|
|
10716
10981
|
setup(props, _ref) {
|
|
10717
10982
|
let {
|
|
@@ -10725,7 +10990,8 @@
|
|
|
10725
10990
|
}
|
|
10726
10991
|
});
|
|
10727
10992
|
useRender(() => vue.createVNode("div", {
|
|
10728
|
-
"class":
|
|
10993
|
+
"class": ['v-banner-actions', props.class],
|
|
10994
|
+
"style": props.style
|
|
10729
10995
|
}, [slots.default?.()]));
|
|
10730
10996
|
return {};
|
|
10731
10997
|
}
|
|
@@ -10746,6 +11012,7 @@
|
|
|
10746
11012
|
sticky: Boolean,
|
|
10747
11013
|
text: String,
|
|
10748
11014
|
...makeBorderProps(),
|
|
11015
|
+
...makeComponentProps(),
|
|
10749
11016
|
...makeDensityProps(),
|
|
10750
11017
|
...makeDimensionProps(),
|
|
10751
11018
|
...makeElevationProps(),
|
|
@@ -10803,8 +11070,8 @@
|
|
|
10803
11070
|
'v-banner--stacked': props.stacked || mobile.value,
|
|
10804
11071
|
'v-banner--sticky': props.sticky,
|
|
10805
11072
|
[`v-banner--${props.lines}-line`]: !!props.lines
|
|
10806
|
-
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value],
|
|
10807
|
-
"style": [dimensionStyles.value, locationStyles.value],
|
|
11073
|
+
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
11074
|
+
"style": [dimensionStyles.value, locationStyles.value, props.style],
|
|
10808
11075
|
"role": "banner"
|
|
10809
11076
|
}, {
|
|
10810
11077
|
default: () => [hasPrepend && vue.createVNode("div", {
|
|
@@ -10860,6 +11127,7 @@
|
|
|
10860
11127
|
default: true
|
|
10861
11128
|
},
|
|
10862
11129
|
...makeBorderProps(),
|
|
11130
|
+
...makeComponentProps(),
|
|
10863
11131
|
...makeDensityProps(),
|
|
10864
11132
|
...makeElevationProps(),
|
|
10865
11133
|
...makeRoundedProps(),
|
|
@@ -10934,11 +11202,11 @@
|
|
|
10934
11202
|
'v-bottom-navigation--active': isActive.value,
|
|
10935
11203
|
'v-bottom-navigation--grow': props.grow,
|
|
10936
11204
|
'v-bottom-navigation--shift': props.mode === 'shift'
|
|
10937
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value],
|
|
11205
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
10938
11206
|
"style": [backgroundColorStyles.value, layoutItemStyles.value, {
|
|
10939
11207
|
height: convertToUnit(height.value),
|
|
10940
11208
|
transform: `translateY(${convertToUnit(!isActive.value ? 100 : 0, '%')})`
|
|
10941
|
-
}, ssrBootStyles.value]
|
|
11209
|
+
}, ssrBootStyles.value, props.style]
|
|
10942
11210
|
}, {
|
|
10943
11211
|
default: () => [slots.default && vue.createVNode("div", {
|
|
10944
11212
|
"class": "v-bottom-navigation__content"
|
|
@@ -10952,14 +11220,16 @@
|
|
|
10952
11220
|
const VBreadcrumbsDivider = genericComponent()({
|
|
10953
11221
|
name: 'VBreadcrumbsDivider',
|
|
10954
11222
|
props: {
|
|
10955
|
-
divider: [Number, String]
|
|
11223
|
+
divider: [Number, String],
|
|
11224
|
+
...makeComponentProps()
|
|
10956
11225
|
},
|
|
10957
11226
|
setup(props, _ref) {
|
|
10958
11227
|
let {
|
|
10959
11228
|
slots
|
|
10960
11229
|
} = _ref;
|
|
10961
11230
|
useRender(() => vue.createVNode("li", {
|
|
10962
|
-
"class":
|
|
11231
|
+
"class": ['v-breadcrumbs-divider', props.class],
|
|
11232
|
+
"style": props.style
|
|
10963
11233
|
}, [slots?.default?.() ?? props.divider]));
|
|
10964
11234
|
return {};
|
|
10965
11235
|
}
|
|
@@ -10974,6 +11244,7 @@
|
|
|
10974
11244
|
color: String,
|
|
10975
11245
|
disabled: Boolean,
|
|
10976
11246
|
title: String,
|
|
11247
|
+
...makeComponentProps(),
|
|
10977
11248
|
...makeRouterProps(),
|
|
10978
11249
|
...makeTagProps({
|
|
10979
11250
|
tag: 'li'
|
|
@@ -10999,8 +11270,8 @@
|
|
|
10999
11270
|
'v-breadcrumbs-item--disabled': props.disabled,
|
|
11000
11271
|
'v-breadcrumbs-item--link': link.isLink.value,
|
|
11001
11272
|
[`${props.activeClass}`]: isActive.value && props.activeClass
|
|
11002
|
-
}, textColorClasses.value],
|
|
11003
|
-
"style": [textColorStyles.value],
|
|
11273
|
+
}, textColorClasses.value, props.class],
|
|
11274
|
+
"style": [textColorStyles.value, props.style],
|
|
11004
11275
|
"href": link.href.value,
|
|
11005
11276
|
"aria-current": isActive.value ? 'page' : undefined,
|
|
11006
11277
|
"onClick": link.navigate
|
|
@@ -11031,6 +11302,7 @@
|
|
|
11031
11302
|
type: Array,
|
|
11032
11303
|
default: () => []
|
|
11033
11304
|
},
|
|
11305
|
+
...makeComponentProps(),
|
|
11034
11306
|
...makeDensityProps(),
|
|
11035
11307
|
...makeRoundedProps(),
|
|
11036
11308
|
...makeTagProps({
|
|
@@ -11062,11 +11334,22 @@
|
|
|
11062
11334
|
disabled: vue.toRef(props, 'disabled')
|
|
11063
11335
|
}
|
|
11064
11336
|
});
|
|
11337
|
+
const items = vue.computed(() => props.items.map(item => {
|
|
11338
|
+
return typeof item === 'string' ? {
|
|
11339
|
+
item: {
|
|
11340
|
+
title: item
|
|
11341
|
+
},
|
|
11342
|
+
raw: item
|
|
11343
|
+
} : {
|
|
11344
|
+
item,
|
|
11345
|
+
raw: item
|
|
11346
|
+
};
|
|
11347
|
+
}));
|
|
11065
11348
|
useRender(() => {
|
|
11066
11349
|
const hasPrepend = !!(slots.prepend || props.icon);
|
|
11067
11350
|
return vue.createVNode(props.tag, {
|
|
11068
|
-
"class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value],
|
|
11069
|
-
"style": backgroundColorStyles.value
|
|
11351
|
+
"class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value, props.class],
|
|
11352
|
+
"style": [backgroundColorStyles.value, props.style]
|
|
11070
11353
|
}, {
|
|
11071
11354
|
default: () => [hasPrepend && vue.createVNode("div", {
|
|
11072
11355
|
"key": "prepend",
|
|
@@ -11084,33 +11367,36 @@
|
|
|
11084
11367
|
start: true
|
|
11085
11368
|
}
|
|
11086
11369
|
}
|
|
11087
|
-
}, slots.prepend)]),
|
|
11088
|
-
|
|
11089
|
-
"disabled": index >= array.length - 1
|
|
11090
|
-
}, typeof item === 'string' ? {
|
|
11091
|
-
title: item
|
|
11092
|
-
} : item), {
|
|
11093
|
-
default: slots.title ? () => slots.title?.({
|
|
11094
|
-
item,
|
|
11095
|
-
index
|
|
11096
|
-
}) : undefined
|
|
11097
|
-
}), index < array.length - 1 && vue.createVNode(VBreadcrumbsDivider, null, {
|
|
11098
|
-
default: slots.divider ? () => slots.divider?.({
|
|
11370
|
+
}, slots.prepend)]), items.value.map((_ref2, index, array) => {
|
|
11371
|
+
let {
|
|
11099
11372
|
item,
|
|
11100
|
-
|
|
11101
|
-
}
|
|
11102
|
-
|
|
11373
|
+
raw
|
|
11374
|
+
} = _ref2;
|
|
11375
|
+
return vue.createVNode(vue.Fragment, null, [vue.createVNode(VBreadcrumbsItem, vue.mergeProps({
|
|
11376
|
+
"key": item.title,
|
|
11377
|
+
"disabled": index >= array.length - 1
|
|
11378
|
+
}, item), {
|
|
11379
|
+
default: slots.title ? () => slots.title?.({
|
|
11380
|
+
item: raw,
|
|
11381
|
+
index
|
|
11382
|
+
}) : undefined
|
|
11383
|
+
}), index < array.length - 1 && vue.createVNode(VBreadcrumbsDivider, null, {
|
|
11384
|
+
default: slots.divider ? () => slots.divider?.({
|
|
11385
|
+
item: raw,
|
|
11386
|
+
index
|
|
11387
|
+
}) : undefined
|
|
11388
|
+
})]);
|
|
11389
|
+
}), slots.default?.()]
|
|
11103
11390
|
});
|
|
11104
11391
|
});
|
|
11105
11392
|
return {};
|
|
11106
11393
|
}
|
|
11107
11394
|
});
|
|
11108
11395
|
|
|
11109
|
-
|
|
11110
|
-
|
|
11111
|
-
const VCardActions = defineComponent({
|
|
11396
|
+
const VCardActions = genericComponent()({
|
|
11112
11397
|
name: 'VCardActions',
|
|
11113
|
-
|
|
11398
|
+
props: makeComponentProps(),
|
|
11399
|
+
setup(props, _ref) {
|
|
11114
11400
|
let {
|
|
11115
11401
|
slots
|
|
11116
11402
|
} = _ref;
|
|
@@ -11120,7 +11406,8 @@
|
|
|
11120
11406
|
}
|
|
11121
11407
|
});
|
|
11122
11408
|
useRender(() => vue.createVNode("div", {
|
|
11123
|
-
"class":
|
|
11409
|
+
"class": ['v-card-actions', props.class],
|
|
11410
|
+
"style": props.style
|
|
11124
11411
|
}, [slots.default?.()]));
|
|
11125
11412
|
return {};
|
|
11126
11413
|
}
|
|
@@ -11130,8 +11417,6 @@
|
|
|
11130
11417
|
|
|
11131
11418
|
const VCardTitle = createSimpleFunctional('v-card-title');
|
|
11132
11419
|
|
|
11133
|
-
// Types
|
|
11134
|
-
|
|
11135
11420
|
const VCardItem = genericComponent()({
|
|
11136
11421
|
name: 'VCardItem',
|
|
11137
11422
|
props: {
|
|
@@ -11141,6 +11426,7 @@
|
|
|
11141
11426
|
prependIcon: IconValue,
|
|
11142
11427
|
subtitle: String,
|
|
11143
11428
|
title: String,
|
|
11429
|
+
...makeComponentProps(),
|
|
11144
11430
|
...makeDensityProps()
|
|
11145
11431
|
},
|
|
11146
11432
|
setup(props, _ref) {
|
|
@@ -11155,7 +11441,8 @@
|
|
|
11155
11441
|
const hasTitle = !!(props.title || slots.title);
|
|
11156
11442
|
const hasSubtitle = !!(props.subtitle || slots.subtitle);
|
|
11157
11443
|
return vue.createVNode("div", {
|
|
11158
|
-
"class":
|
|
11444
|
+
"class": ['v-card-item', props.class],
|
|
11445
|
+
"style": props.style
|
|
11159
11446
|
}, [hasPrepend && vue.createVNode("div", {
|
|
11160
11447
|
"key": "prepend",
|
|
11161
11448
|
"class": "v-card-item__prepend"
|
|
@@ -11237,8 +11524,8 @@
|
|
|
11237
11524
|
subtitle: String,
|
|
11238
11525
|
text: String,
|
|
11239
11526
|
title: String,
|
|
11240
|
-
...makeThemeProps(),
|
|
11241
11527
|
...makeBorderProps(),
|
|
11528
|
+
...makeComponentProps(),
|
|
11242
11529
|
...makeDensityProps(),
|
|
11243
11530
|
...makeDimensionProps(),
|
|
11244
11531
|
...makeElevationProps(),
|
|
@@ -11248,6 +11535,7 @@
|
|
|
11248
11535
|
...makeRoundedProps(),
|
|
11249
11536
|
...makeRouterProps(),
|
|
11250
11537
|
...makeTagProps(),
|
|
11538
|
+
...makeThemeProps(),
|
|
11251
11539
|
...makeVariantProps({
|
|
11252
11540
|
variant: 'elevated'
|
|
11253
11541
|
})
|
|
@@ -11308,8 +11596,8 @@
|
|
|
11308
11596
|
'v-card--flat': props.flat,
|
|
11309
11597
|
'v-card--hover': props.hover && !(props.disabled || props.flat),
|
|
11310
11598
|
'v-card--link': isClickable.value
|
|
11311
|
-
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value],
|
|
11312
|
-
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value],
|
|
11599
|
+
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
|
11600
|
+
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
|
|
11313
11601
|
"href": link.href.value,
|
|
11314
11602
|
"onClick": isClickable.value && link.navigate,
|
|
11315
11603
|
"tabindex": props.disabled ? -1 : undefined
|
|
@@ -11505,6 +11793,7 @@
|
|
|
11505
11793
|
mandatory: {
|
|
11506
11794
|
default: 'force'
|
|
11507
11795
|
},
|
|
11796
|
+
...makeComponentProps(),
|
|
11508
11797
|
...makeTagProps(),
|
|
11509
11798
|
...makeThemeProps()
|
|
11510
11799
|
}, 'v-window');
|
|
@@ -11620,7 +11909,8 @@
|
|
|
11620
11909
|
"ref": rootRef,
|
|
11621
11910
|
"class": ['v-window', {
|
|
11622
11911
|
'v-window--show-arrows-on-hover': props.showArrows === 'hover'
|
|
11623
|
-
}, themeClasses.value]
|
|
11912
|
+
}, themeClasses.value, props.class],
|
|
11913
|
+
"style": props.style
|
|
11624
11914
|
}, {
|
|
11625
11915
|
default: () => [vue.createVNode("div", {
|
|
11626
11916
|
"class": "v-window__container",
|
|
@@ -11705,10 +11995,10 @@
|
|
|
11705
11995
|
"class": ['v-carousel', {
|
|
11706
11996
|
'v-carousel--hide-delimiter-background': props.hideDelimiterBackground,
|
|
11707
11997
|
'v-carousel--vertical-delimiters': props.verticalDelimiters
|
|
11708
|
-
}],
|
|
11709
|
-
"style": {
|
|
11998
|
+
}, props.class],
|
|
11999
|
+
"style": [{
|
|
11710
12000
|
height: convertToUnit(props.height)
|
|
11711
|
-
},
|
|
12001
|
+
}, props.style],
|
|
11712
12002
|
"continuous": true,
|
|
11713
12003
|
"mandatory": "force",
|
|
11714
12004
|
"showArrows": props.showArrows
|
|
@@ -11774,6 +12064,7 @@
|
|
|
11774
12064
|
type: [Boolean, String],
|
|
11775
12065
|
default: undefined
|
|
11776
12066
|
},
|
|
12067
|
+
...makeComponentProps(),
|
|
11777
12068
|
...makeGroupItemProps(),
|
|
11778
12069
|
...makeLazyProps()
|
|
11779
12070
|
},
|
|
@@ -11860,7 +12151,8 @@
|
|
|
11860
12151
|
"disabled": !isBooted.value
|
|
11861
12152
|
}, {
|
|
11862
12153
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
|
11863
|
-
"class": ['v-window-item', groupItem.selectedClass.value]
|
|
12154
|
+
"class": ['v-window-item', groupItem.selectedClass.value, props.class],
|
|
12155
|
+
"style": props.style
|
|
11864
12156
|
}, [hasContent.value && slots.default?.()]), [[vue.vShow, groupItem.isSelected.value]])]
|
|
11865
12157
|
}));
|
|
11866
12158
|
return {};
|
|
@@ -11873,7 +12165,8 @@
|
|
|
11873
12165
|
name: 'VCarouselItem',
|
|
11874
12166
|
inheritAttrs: false,
|
|
11875
12167
|
props: {
|
|
11876
|
-
value: null
|
|
12168
|
+
value: null,
|
|
12169
|
+
...makeComponentProps()
|
|
11877
12170
|
},
|
|
11878
12171
|
setup(props, _ref) {
|
|
11879
12172
|
let {
|
|
@@ -11881,7 +12174,8 @@
|
|
|
11881
12174
|
attrs
|
|
11882
12175
|
} = _ref;
|
|
11883
12176
|
useRender(() => vue.createVNode(VWindowItem, {
|
|
11884
|
-
"class":
|
|
12177
|
+
"class": ['v-carousel-item', props.class],
|
|
12178
|
+
"style": props.style,
|
|
11885
12179
|
"value": props.value
|
|
11886
12180
|
}, {
|
|
11887
12181
|
default: () => [vue.createVNode(VImg, attrs, slots)]
|
|
@@ -11894,6 +12188,7 @@
|
|
|
11894
12188
|
const makeVSheetProps = propsFactory({
|
|
11895
12189
|
color: String,
|
|
11896
12190
|
...makeBorderProps(),
|
|
12191
|
+
...makeComponentProps(),
|
|
11897
12192
|
...makeDimensionProps(),
|
|
11898
12193
|
...makeElevationProps(),
|
|
11899
12194
|
...makeLocationProps(),
|
|
@@ -11937,8 +12232,8 @@
|
|
|
11937
12232
|
roundedClasses
|
|
11938
12233
|
} = useRounded(props);
|
|
11939
12234
|
useRender(() => vue.createVNode(props.tag, {
|
|
11940
|
-
"class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value],
|
|
11941
|
-
"style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value]
|
|
12235
|
+
"class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class],
|
|
12236
|
+
"style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style]
|
|
11942
12237
|
}, slots));
|
|
11943
12238
|
return {};
|
|
11944
12239
|
}
|
|
@@ -11964,7 +12259,8 @@
|
|
|
11964
12259
|
width: {
|
|
11965
12260
|
type: [Number, String],
|
|
11966
12261
|
default: 300
|
|
11967
|
-
}
|
|
12262
|
+
},
|
|
12263
|
+
...makeComponentProps()
|
|
11968
12264
|
},
|
|
11969
12265
|
emits: {
|
|
11970
12266
|
'update:color': color => true,
|
|
@@ -12109,7 +12405,8 @@
|
|
|
12109
12405
|
vue.onMounted(() => updateCanvas());
|
|
12110
12406
|
useRender(() => vue.createVNode("div", {
|
|
12111
12407
|
"ref": resizeRef,
|
|
12112
|
-
"class":
|
|
12408
|
+
"class": ['v-color-picker-canvas', props.class],
|
|
12409
|
+
"style": props.style,
|
|
12113
12410
|
"onClick": handleClick,
|
|
12114
12411
|
"onMousedown": handleMouseDown,
|
|
12115
12412
|
"onTouchstart": handleMouseDown
|
|
@@ -12342,7 +12639,8 @@
|
|
|
12342
12639
|
type: Array,
|
|
12343
12640
|
default: () => Object.keys(modes),
|
|
12344
12641
|
validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))
|
|
12345
|
-
}
|
|
12642
|
+
},
|
|
12643
|
+
...makeComponentProps()
|
|
12346
12644
|
},
|
|
12347
12645
|
emits: {
|
|
12348
12646
|
'update:color': color => true,
|
|
@@ -12382,7 +12680,8 @@
|
|
|
12382
12680
|
});
|
|
12383
12681
|
});
|
|
12384
12682
|
useRender(() => vue.createVNode("div", {
|
|
12385
|
-
"class":
|
|
12683
|
+
"class": ['v-color-picker-edit', props.class],
|
|
12684
|
+
"style": props.style
|
|
12386
12685
|
}, [inputs.value?.map(props => vue.createVNode(VColorPickerInput, props, null)), enabledModes.value.length > 1 && vue.createVNode(VBtn, {
|
|
12387
12686
|
"icon": "$unfold",
|
|
12388
12687
|
"size": "x-small",
|
|
@@ -12466,11 +12765,33 @@
|
|
|
12466
12765
|
elevation: 2
|
|
12467
12766
|
})
|
|
12468
12767
|
}, 'slider');
|
|
12768
|
+
const useSteps = props => {
|
|
12769
|
+
const min = vue.computed(() => parseFloat(props.min));
|
|
12770
|
+
const max = vue.computed(() => parseFloat(props.max));
|
|
12771
|
+
const step = vue.computed(() => +props.step > 0 ? parseFloat(props.step) : 0);
|
|
12772
|
+
const decimals = vue.computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
|
|
12773
|
+
function roundValue(value) {
|
|
12774
|
+
if (step.value <= 0) return value;
|
|
12775
|
+
const clamped = clamp(value, min.value, max.value);
|
|
12776
|
+
const offset = min.value % step.value;
|
|
12777
|
+
const newValue = Math.round((clamped - offset) / step.value) * step.value + offset;
|
|
12778
|
+
return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value));
|
|
12779
|
+
}
|
|
12780
|
+
return {
|
|
12781
|
+
min,
|
|
12782
|
+
max,
|
|
12783
|
+
step,
|
|
12784
|
+
decimals,
|
|
12785
|
+
roundValue
|
|
12786
|
+
};
|
|
12787
|
+
};
|
|
12469
12788
|
const useSlider = _ref => {
|
|
12470
12789
|
let {
|
|
12471
12790
|
props,
|
|
12472
|
-
|
|
12473
|
-
|
|
12791
|
+
steps,
|
|
12792
|
+
onSliderStart,
|
|
12793
|
+
onSliderMove,
|
|
12794
|
+
onSliderEnd,
|
|
12474
12795
|
getActiveThumb
|
|
12475
12796
|
} = _ref;
|
|
12476
12797
|
const {
|
|
@@ -12484,10 +12805,13 @@
|
|
|
12484
12805
|
}
|
|
12485
12806
|
return hd;
|
|
12486
12807
|
});
|
|
12487
|
-
const
|
|
12488
|
-
|
|
12489
|
-
|
|
12490
|
-
|
|
12808
|
+
const {
|
|
12809
|
+
min,
|
|
12810
|
+
max,
|
|
12811
|
+
step,
|
|
12812
|
+
decimals,
|
|
12813
|
+
roundValue
|
|
12814
|
+
} = steps;
|
|
12491
12815
|
const thumbSize = vue.computed(() => parseInt(props.thumbSize, 10));
|
|
12492
12816
|
const tickSize = vue.computed(() => parseInt(props.tickSize, 10));
|
|
12493
12817
|
const trackSize = vue.computed(() => parseInt(props.trackSize, 10));
|
|
@@ -12501,13 +12825,6 @@
|
|
|
12501
12825
|
const startOffset = vue.ref(0);
|
|
12502
12826
|
const trackContainerRef = vue.ref();
|
|
12503
12827
|
const activeThumbRef = vue.ref();
|
|
12504
|
-
function roundValue(value) {
|
|
12505
|
-
if (step.value <= 0) return value;
|
|
12506
|
-
const clamped = clamp(value, min.value, max.value);
|
|
12507
|
-
const offset = min.value % step.value;
|
|
12508
|
-
const newValue = Math.round((clamped - offset) / step.value) * step.value + offset;
|
|
12509
|
-
return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value));
|
|
12510
|
-
}
|
|
12511
12828
|
function parseMouseMove(e) {
|
|
12512
12829
|
const vertical = props.direction === 'vertical';
|
|
12513
12830
|
const start = vertical ? 'top' : 'left';
|
|
@@ -12524,14 +12841,11 @@
|
|
|
12524
12841
|
if (vertical || horizontalDirection.value === 'rtl') clickPos = 1 - clickPos;
|
|
12525
12842
|
return roundValue(min.value + clickPos * (max.value - min.value));
|
|
12526
12843
|
}
|
|
12527
|
-
let thumbMoved = false;
|
|
12528
12844
|
const handleStop = e => {
|
|
12529
|
-
|
|
12530
|
-
|
|
12531
|
-
|
|
12532
|
-
}
|
|
12845
|
+
onSliderEnd({
|
|
12846
|
+
value: parseMouseMove(e)
|
|
12847
|
+
});
|
|
12533
12848
|
mousePressed.value = false;
|
|
12534
|
-
thumbMoved = false;
|
|
12535
12849
|
startOffset.value = 0;
|
|
12536
12850
|
};
|
|
12537
12851
|
const handleStart = e => {
|
|
@@ -12540,20 +12854,25 @@
|
|
|
12540
12854
|
activeThumbRef.value.focus();
|
|
12541
12855
|
mousePressed.value = true;
|
|
12542
12856
|
if (activeThumbRef.value.contains(e.target)) {
|
|
12543
|
-
thumbMoved = true;
|
|
12544
12857
|
startOffset.value = getOffset(e, activeThumbRef.value, props.direction);
|
|
12545
12858
|
} else {
|
|
12546
12859
|
startOffset.value = 0;
|
|
12547
|
-
|
|
12860
|
+
onSliderMove({
|
|
12861
|
+
value: parseMouseMove(e)
|
|
12862
|
+
});
|
|
12548
12863
|
}
|
|
12864
|
+
onSliderStart({
|
|
12865
|
+
value: parseMouseMove(e)
|
|
12866
|
+
});
|
|
12549
12867
|
};
|
|
12550
12868
|
const moveListenerOptions = {
|
|
12551
12869
|
passive: true,
|
|
12552
12870
|
capture: true
|
|
12553
12871
|
};
|
|
12554
12872
|
function onMouseMove(e) {
|
|
12555
|
-
|
|
12556
|
-
|
|
12873
|
+
onSliderMove({
|
|
12874
|
+
value: parseMouseMove(e)
|
|
12875
|
+
});
|
|
12557
12876
|
}
|
|
12558
12877
|
function onSliderMouseUp(e) {
|
|
12559
12878
|
e.stopPropagation();
|
|
@@ -12681,7 +13000,8 @@
|
|
|
12681
13000
|
ripple: {
|
|
12682
13001
|
type: Boolean,
|
|
12683
13002
|
default: true
|
|
12684
|
-
}
|
|
13003
|
+
},
|
|
13004
|
+
...makeComponentProps()
|
|
12685
13005
|
},
|
|
12686
13006
|
emits: {
|
|
12687
13007
|
'update:modelValue': v => true
|
|
@@ -12759,11 +13079,11 @@
|
|
|
12759
13079
|
"class": ['v-slider-thumb', {
|
|
12760
13080
|
'v-slider-thumb--focused': props.focused,
|
|
12761
13081
|
'v-slider-thumb--pressed': props.focused && mousePressed.value
|
|
12762
|
-
}],
|
|
12763
|
-
"style": {
|
|
13082
|
+
}, props.class],
|
|
13083
|
+
"style": [{
|
|
12764
13084
|
'--v-slider-thumb-position': positionPercentage,
|
|
12765
13085
|
'--v-slider-thumb-size': convertToUnit(thumbSize.value)
|
|
12766
|
-
},
|
|
13086
|
+
}, props.style],
|
|
12767
13087
|
"role": "slider",
|
|
12768
13088
|
"tabindex": disabled.value ? -1 : 0,
|
|
12769
13089
|
"aria-valuemin": props.min,
|
|
@@ -12809,7 +13129,8 @@
|
|
|
12809
13129
|
stop: {
|
|
12810
13130
|
type: Number,
|
|
12811
13131
|
required: true
|
|
12812
|
-
}
|
|
13132
|
+
},
|
|
13133
|
+
...makeComponentProps()
|
|
12813
13134
|
},
|
|
12814
13135
|
emits: {},
|
|
12815
13136
|
setup(props, _ref) {
|
|
@@ -12884,12 +13205,12 @@
|
|
|
12884
13205
|
});
|
|
12885
13206
|
useRender(() => {
|
|
12886
13207
|
return vue.createVNode("div", {
|
|
12887
|
-
"class": ['v-slider-track', roundedClasses.value],
|
|
12888
|
-
"style": {
|
|
13208
|
+
"class": ['v-slider-track', roundedClasses.value, props.class],
|
|
13209
|
+
"style": [{
|
|
12889
13210
|
'--v-slider-track-size': convertToUnit(trackSize.value),
|
|
12890
13211
|
'--v-slider-tick-size': convertToUnit(tickSize.value),
|
|
12891
13212
|
direction: !vertical.value ? horizontalDirection.value : undefined
|
|
12892
|
-
}
|
|
13213
|
+
}, props.style]
|
|
12893
13214
|
}, [vue.createVNode("div", {
|
|
12894
13215
|
"class": ['v-slider-track__background', trackColorClasses.value, {
|
|
12895
13216
|
'v-slider-track__background--opacity': !!color.value || !trackFillColor.value
|
|
@@ -12929,13 +13250,21 @@
|
|
|
12929
13250
|
},
|
|
12930
13251
|
emits: {
|
|
12931
13252
|
'update:focused': value => true,
|
|
12932
|
-
'update:modelValue': v => true
|
|
13253
|
+
'update:modelValue': v => true,
|
|
13254
|
+
start: value => true,
|
|
13255
|
+
end: value => true
|
|
12933
13256
|
},
|
|
12934
13257
|
setup(props, _ref) {
|
|
12935
13258
|
let {
|
|
12936
|
-
slots
|
|
13259
|
+
slots,
|
|
13260
|
+
emit
|
|
12937
13261
|
} = _ref;
|
|
12938
13262
|
const thumbContainerRef = vue.ref();
|
|
13263
|
+
const steps = useSteps(props);
|
|
13264
|
+
const model = useProxiedModel(props, 'modelValue', undefined, v => {
|
|
13265
|
+
const value = typeof v === 'string' ? parseFloat(v) : v == null ? steps.min.value : v;
|
|
13266
|
+
return steps.roundValue(value);
|
|
13267
|
+
});
|
|
12939
13268
|
const {
|
|
12940
13269
|
min,
|
|
12941
13270
|
max,
|
|
@@ -12949,16 +13278,26 @@
|
|
|
12949
13278
|
readonly
|
|
12950
13279
|
} = useSlider({
|
|
12951
13280
|
props,
|
|
12952
|
-
|
|
12953
|
-
|
|
12954
|
-
|
|
12955
|
-
|
|
13281
|
+
steps,
|
|
13282
|
+
onSliderStart: () => {
|
|
13283
|
+
emit('start', model.value);
|
|
13284
|
+
},
|
|
13285
|
+
onSliderEnd: _ref2 => {
|
|
13286
|
+
let {
|
|
13287
|
+
value
|
|
13288
|
+
} = _ref2;
|
|
13289
|
+
const roundedValue = roundValue(value);
|
|
13290
|
+
model.value = roundedValue;
|
|
13291
|
+
emit('end', roundedValue);
|
|
13292
|
+
},
|
|
13293
|
+
onSliderMove: _ref3 => {
|
|
13294
|
+
let {
|
|
13295
|
+
value
|
|
13296
|
+
} = _ref3;
|
|
13297
|
+
return model.value = roundValue(value);
|
|
13298
|
+
},
|
|
12956
13299
|
getActiveThumb: () => thumbContainerRef.value?.$el
|
|
12957
13300
|
});
|
|
12958
|
-
const model = useProxiedModel(props, 'modelValue', undefined, v => {
|
|
12959
|
-
const value = typeof v === 'string' ? parseFloat(v) : v == null ? min.value : v;
|
|
12960
|
-
return roundValue(value);
|
|
12961
|
-
});
|
|
12962
13301
|
const {
|
|
12963
13302
|
isFocused,
|
|
12964
13303
|
focus,
|
|
@@ -12974,7 +13313,8 @@
|
|
|
12974
13313
|
'v-slider--focused': isFocused.value,
|
|
12975
13314
|
'v-slider--pressed': mousePressed.value,
|
|
12976
13315
|
'v-slider--disabled': props.disabled
|
|
12977
|
-
}]
|
|
13316
|
+
}, props.class],
|
|
13317
|
+
"style": props.style
|
|
12978
13318
|
}, inputProps, {
|
|
12979
13319
|
"focused": isFocused.value
|
|
12980
13320
|
}), {
|
|
@@ -12984,11 +13324,11 @@
|
|
|
12984
13324
|
"class": "v-slider__label",
|
|
12985
13325
|
"text": props.label
|
|
12986
13326
|
}, null) : undefined, slots.prepend?.(slotProps)]) : undefined,
|
|
12987
|
-
default:
|
|
13327
|
+
default: _ref4 => {
|
|
12988
13328
|
let {
|
|
12989
13329
|
id,
|
|
12990
13330
|
messagesId
|
|
12991
|
-
} =
|
|
13331
|
+
} = _ref4;
|
|
12992
13332
|
return vue.createVNode("div", {
|
|
12993
13333
|
"class": "v-slider__container",
|
|
12994
13334
|
"onMousedown": !readonly.value ? onSliderMousedown : undefined,
|
|
@@ -13037,7 +13377,8 @@
|
|
|
13037
13377
|
type: Object
|
|
13038
13378
|
},
|
|
13039
13379
|
disabled: Boolean,
|
|
13040
|
-
hideAlpha: Boolean
|
|
13380
|
+
hideAlpha: Boolean,
|
|
13381
|
+
...makeComponentProps()
|
|
13041
13382
|
},
|
|
13042
13383
|
emits: {
|
|
13043
13384
|
'update:color': color => true
|
|
@@ -13049,7 +13390,8 @@
|
|
|
13049
13390
|
useRender(() => vue.createVNode("div", {
|
|
13050
13391
|
"class": ['v-color-picker-preview', {
|
|
13051
13392
|
'v-color-picker-preview--hide-alpha': props.hideAlpha
|
|
13052
|
-
}]
|
|
13393
|
+
}, props.class],
|
|
13394
|
+
"style": props.style
|
|
13053
13395
|
}, [vue.createVNode("div", {
|
|
13054
13396
|
"class": "v-color-picker-preview__dot"
|
|
13055
13397
|
}, [vue.createVNode("div", {
|
|
@@ -13430,7 +13772,8 @@
|
|
|
13430
13772
|
},
|
|
13431
13773
|
disabled: Boolean,
|
|
13432
13774
|
color: Object,
|
|
13433
|
-
maxHeight: [Number, String]
|
|
13775
|
+
maxHeight: [Number, String],
|
|
13776
|
+
...makeComponentProps()
|
|
13434
13777
|
},
|
|
13435
13778
|
emits: {
|
|
13436
13779
|
'update:color': color => true
|
|
@@ -13440,10 +13783,10 @@
|
|
|
13440
13783
|
emit
|
|
13441
13784
|
} = _ref;
|
|
13442
13785
|
useRender(() => vue.createVNode("div", {
|
|
13443
|
-
"class":
|
|
13444
|
-
"style": {
|
|
13786
|
+
"class": ['v-color-picker-swatches', props.class],
|
|
13787
|
+
"style": [{
|
|
13445
13788
|
maxHeight: convertToUnit(props.maxHeight)
|
|
13446
|
-
}
|
|
13789
|
+
}, props.style]
|
|
13447
13790
|
}, [vue.createVNode("div", null, [props.swatches.map(swatch => vue.createVNode("div", {
|
|
13448
13791
|
"class": "v-color-picker-swatches__swatch"
|
|
13449
13792
|
}, [swatch.map(color => {
|
|
@@ -13547,13 +13890,13 @@
|
|
|
13547
13890
|
"rounded": props.rounded,
|
|
13548
13891
|
"elevation": props.elevation,
|
|
13549
13892
|
"theme": props.theme,
|
|
13550
|
-
"class": ['v-color-picker'],
|
|
13551
|
-
"style": {
|
|
13893
|
+
"class": ['v-color-picker', props.class],
|
|
13894
|
+
"style": [{
|
|
13552
13895
|
'--v-color-picker-color-hsv': HSVtoCSS({
|
|
13553
13896
|
...(currentColor.value ?? nullColor),
|
|
13554
13897
|
a: 1
|
|
13555
13898
|
})
|
|
13556
|
-
}
|
|
13899
|
+
}, props.style]
|
|
13557
13900
|
}, sheetProps, {
|
|
13558
13901
|
"maxWidth": props.width
|
|
13559
13902
|
}), {
|
|
@@ -13864,7 +14207,8 @@
|
|
|
13864
14207
|
'v-combobox--chips': !!props.chips,
|
|
13865
14208
|
'v-combobox--selecting-index': selectionIndex.value > -1,
|
|
13866
14209
|
[`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true
|
|
13867
|
-
}],
|
|
14210
|
+
}, props.class],
|
|
14211
|
+
"style": props.style,
|
|
13868
14212
|
"appendInnerIcon": props.items.length ? props.menuIcon : undefined,
|
|
13869
14213
|
"readonly": props.readonly,
|
|
13870
14214
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
@@ -14021,7 +14365,7 @@
|
|
|
14021
14365
|
![document, overlay.value.contentEl].includes(after) &&
|
|
14022
14366
|
// It isn't inside the dialog body
|
|
14023
14367
|
!overlay.value.contentEl.contains(after)) {
|
|
14024
|
-
const focusable =
|
|
14368
|
+
const focusable = focusableChildren(overlay.value.contentEl);
|
|
14025
14369
|
if (!focusable.length) return;
|
|
14026
14370
|
const firstElement = focusable[0];
|
|
14027
14371
|
const lastElement = focusable[focusable.length - 1];
|
|
@@ -14062,7 +14406,8 @@
|
|
|
14062
14406
|
"class": ['v-dialog', {
|
|
14063
14407
|
'v-dialog--fullscreen': props.fullscreen,
|
|
14064
14408
|
'v-dialog--scrollable': props.scrollable
|
|
14065
|
-
}]
|
|
14409
|
+
}, props.class],
|
|
14410
|
+
"style": props.style
|
|
14066
14411
|
}, overlayProps, {
|
|
14067
14412
|
"modelValue": isActive.value,
|
|
14068
14413
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
@@ -14101,6 +14446,7 @@
|
|
|
14101
14446
|
validator: v => allowedVariants.includes(v)
|
|
14102
14447
|
},
|
|
14103
14448
|
readonly: Boolean,
|
|
14449
|
+
...makeComponentProps(),
|
|
14104
14450
|
...makeGroupProps(),
|
|
14105
14451
|
...makeTagProps(),
|
|
14106
14452
|
...makeThemeProps()
|
|
@@ -14126,7 +14472,8 @@
|
|
|
14126
14472
|
}
|
|
14127
14473
|
});
|
|
14128
14474
|
useRender(() => vue.createVNode(props.tag, {
|
|
14129
|
-
"class": ['v-expansion-panels', themeClasses.value, variantClass.value]
|
|
14475
|
+
"class": ['v-expansion-panels', themeClasses.value, variantClass.value, props.class],
|
|
14476
|
+
"style": props.style
|
|
14130
14477
|
}, slots));
|
|
14131
14478
|
return {};
|
|
14132
14479
|
}
|
|
@@ -14155,6 +14502,7 @@
|
|
|
14155
14502
|
Ripple
|
|
14156
14503
|
},
|
|
14157
14504
|
props: {
|
|
14505
|
+
...makeComponentProps(),
|
|
14158
14506
|
...makeVExpansionPanelTitleProps()
|
|
14159
14507
|
},
|
|
14160
14508
|
setup(props, _ref) {
|
|
@@ -14177,8 +14525,8 @@
|
|
|
14177
14525
|
useRender(() => vue.withDirectives(vue.createVNode("button", {
|
|
14178
14526
|
"class": ['v-expansion-panel-title', {
|
|
14179
14527
|
'v-expansion-panel-title--active': expansionPanel.isSelected.value
|
|
14180
|
-
}, backgroundColorClasses.value],
|
|
14181
|
-
"style": backgroundColorStyles.value,
|
|
14528
|
+
}, backgroundColorClasses.value, props.class],
|
|
14529
|
+
"style": [backgroundColorStyles.value, props.style],
|
|
14182
14530
|
"type": "button",
|
|
14183
14531
|
"tabindex": expansionPanel.disabled.value ? -1 : undefined,
|
|
14184
14532
|
"disabled": expansionPanel.disabled.value,
|
|
@@ -14198,6 +14546,7 @@
|
|
|
14198
14546
|
const VExpansionPanelText = genericComponent()({
|
|
14199
14547
|
name: 'VExpansionPanelText',
|
|
14200
14548
|
props: {
|
|
14549
|
+
...makeComponentProps(),
|
|
14201
14550
|
...makeLazyProps()
|
|
14202
14551
|
},
|
|
14203
14552
|
setup(props, _ref) {
|
|
@@ -14214,7 +14563,8 @@
|
|
|
14214
14563
|
"onAfterLeave": onAfterLeave
|
|
14215
14564
|
}, {
|
|
14216
14565
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
|
14217
|
-
"class":
|
|
14566
|
+
"class": ['v-expansion-panel-text', props.class],
|
|
14567
|
+
"style": props.style
|
|
14218
14568
|
}, [slots.default && hasContent.value && vue.createVNode("div", {
|
|
14219
14569
|
"class": "v-expansion-panel-text__wrapper"
|
|
14220
14570
|
}, [slots.default?.()])]), [[vue.vShow, expansionPanel.isSelected.value]])]
|
|
@@ -14229,6 +14579,7 @@
|
|
|
14229
14579
|
title: String,
|
|
14230
14580
|
text: String,
|
|
14231
14581
|
bgColor: String,
|
|
14582
|
+
...makeComponentProps(),
|
|
14232
14583
|
...makeElevationProps(),
|
|
14233
14584
|
...makeGroupItemProps(),
|
|
14234
14585
|
...makeLazyProps(),
|
|
@@ -14277,8 +14628,8 @@
|
|
|
14277
14628
|
'v-expansion-panel--before-active': isBeforeSelected.value,
|
|
14278
14629
|
'v-expansion-panel--after-active': isAfterSelected.value,
|
|
14279
14630
|
'v-expansion-panel--disabled': isDisabled.value
|
|
14280
|
-
}, roundedClasses.value, backgroundColorClasses.value],
|
|
14281
|
-
"style": backgroundColorStyles.value,
|
|
14631
|
+
}, roundedClasses.value, backgroundColorClasses.value, props.class],
|
|
14632
|
+
"style": [backgroundColorStyles.value, props.style],
|
|
14282
14633
|
"aria-expanded": groupItem.isSelected.value
|
|
14283
14634
|
}, {
|
|
14284
14635
|
default: () => [vue.createVNode("div", {
|
|
@@ -14428,7 +14779,8 @@
|
|
|
14428
14779
|
"ref": vInputRef,
|
|
14429
14780
|
"modelValue": model.value,
|
|
14430
14781
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
14431
|
-
"class":
|
|
14782
|
+
"class": ['v-file-input', props.class],
|
|
14783
|
+
"style": props.style,
|
|
14432
14784
|
"onClick:prepend": onClickPrepend
|
|
14433
14785
|
}, rootAttrs, inputProps, {
|
|
14434
14786
|
"focused": isFocused.value
|
|
@@ -14520,6 +14872,7 @@
|
|
|
14520
14872
|
default: 'auto'
|
|
14521
14873
|
},
|
|
14522
14874
|
...makeBorderProps(),
|
|
14875
|
+
...makeComponentProps(),
|
|
14523
14876
|
...makeElevationProps(),
|
|
14524
14877
|
...makeLayoutItemProps(),
|
|
14525
14878
|
...makeRoundedProps(),
|
|
@@ -14569,8 +14922,8 @@
|
|
|
14569
14922
|
});
|
|
14570
14923
|
useRender(() => vue.createVNode(props.tag, {
|
|
14571
14924
|
"ref": resizeRef,
|
|
14572
|
-
"class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value],
|
|
14573
|
-
"style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : undefined]
|
|
14925
|
+
"class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
14926
|
+
"style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : undefined, props.style]
|
|
14574
14927
|
}, slots));
|
|
14575
14928
|
return {};
|
|
14576
14929
|
}
|
|
@@ -14581,6 +14934,7 @@
|
|
|
14581
14934
|
const VForm = genericComponent()({
|
|
14582
14935
|
name: 'VForm',
|
|
14583
14936
|
props: {
|
|
14937
|
+
...makeComponentProps(),
|
|
14584
14938
|
...makeFormProps()
|
|
14585
14939
|
},
|
|
14586
14940
|
emits: {
|
|
@@ -14619,7 +14973,8 @@
|
|
|
14619
14973
|
}
|
|
14620
14974
|
useRender(() => vue.createVNode("form", {
|
|
14621
14975
|
"ref": formRef,
|
|
14622
|
-
"class":
|
|
14976
|
+
"class": ['v-form', props.class],
|
|
14977
|
+
"style": props.style,
|
|
14623
14978
|
"novalidate": true,
|
|
14624
14979
|
"onReset": onReset,
|
|
14625
14980
|
"onSubmit": onSubmit
|
|
@@ -14635,6 +14990,7 @@
|
|
|
14635
14990
|
type: Boolean,
|
|
14636
14991
|
default: false
|
|
14637
14992
|
},
|
|
14993
|
+
...makeComponentProps(),
|
|
14638
14994
|
...makeTagProps()
|
|
14639
14995
|
},
|
|
14640
14996
|
setup(props, _ref) {
|
|
@@ -14644,7 +15000,8 @@
|
|
|
14644
15000
|
useRender(() => vue.createVNode(props.tag, {
|
|
14645
15001
|
"class": ['v-container', {
|
|
14646
15002
|
'v-container--fluid': props.fluid
|
|
14647
|
-
}]
|
|
15003
|
+
}, props.class],
|
|
15004
|
+
"style": props.style
|
|
14648
15005
|
}, slots));
|
|
14649
15006
|
return {};
|
|
14650
15007
|
}
|
|
@@ -14735,6 +15092,7 @@
|
|
|
14735
15092
|
default: null,
|
|
14736
15093
|
validator: str => ALIGN_SELF_VALUES.includes(str)
|
|
14737
15094
|
},
|
|
15095
|
+
...makeComponentProps(),
|
|
14738
15096
|
...makeTagProps()
|
|
14739
15097
|
},
|
|
14740
15098
|
setup(props, _ref) {
|
|
@@ -14765,7 +15123,8 @@
|
|
|
14765
15123
|
return classList;
|
|
14766
15124
|
});
|
|
14767
15125
|
return () => vue.h(props.tag, {
|
|
14768
|
-
class: classes.value
|
|
15126
|
+
class: [classes.value, props.class],
|
|
15127
|
+
style: props.style
|
|
14769
15128
|
}, slots.default?.());
|
|
14770
15129
|
}
|
|
14771
15130
|
});
|
|
@@ -14851,6 +15210,7 @@
|
|
|
14851
15210
|
validator: alignContentValidator
|
|
14852
15211
|
},
|
|
14853
15212
|
...alignContentProps,
|
|
15213
|
+
...makeComponentProps(),
|
|
14854
15214
|
...makeTagProps()
|
|
14855
15215
|
},
|
|
14856
15216
|
setup(props, _ref) {
|
|
@@ -14879,7 +15239,8 @@
|
|
|
14879
15239
|
return classList;
|
|
14880
15240
|
});
|
|
14881
15241
|
return () => vue.h(props.tag, {
|
|
14882
|
-
class: ['v-row', classes.value]
|
|
15242
|
+
class: ['v-row', classes.value, props.class],
|
|
15243
|
+
style: props.style
|
|
14883
15244
|
}, slots.default?.());
|
|
14884
15245
|
}
|
|
14885
15246
|
});
|
|
@@ -14923,6 +15284,7 @@
|
|
|
14923
15284
|
const VItemGroup = genericComponent()({
|
|
14924
15285
|
name: 'VItemGroup',
|
|
14925
15286
|
props: {
|
|
15287
|
+
...makeComponentProps(),
|
|
14926
15288
|
...makeGroupProps({
|
|
14927
15289
|
selectedClass: 'v-item--selected'
|
|
14928
15290
|
}),
|
|
@@ -14947,7 +15309,8 @@
|
|
|
14947
15309
|
selected
|
|
14948
15310
|
} = useGroup(props, VItemGroupSymbol);
|
|
14949
15311
|
return () => vue.createVNode(props.tag, {
|
|
14950
|
-
"class": ['v-item-group', themeClasses.value]
|
|
15312
|
+
"class": ['v-item-group', themeClasses.value, props.class],
|
|
15313
|
+
"style": props.style
|
|
14951
15314
|
}, {
|
|
14952
15315
|
default: () => [slots.default?.({
|
|
14953
15316
|
isSelected,
|
|
@@ -14997,7 +15360,10 @@
|
|
|
14997
15360
|
|
|
14998
15361
|
const VLayout = genericComponent()({
|
|
14999
15362
|
name: 'VLayout',
|
|
15000
|
-
props:
|
|
15363
|
+
props: {
|
|
15364
|
+
...makeComponentProps(),
|
|
15365
|
+
...makeLayoutProps()
|
|
15366
|
+
},
|
|
15001
15367
|
setup(props, _ref) {
|
|
15002
15368
|
let {
|
|
15003
15369
|
slots
|
|
@@ -15011,8 +15377,8 @@
|
|
|
15011
15377
|
} = createLayout(props);
|
|
15012
15378
|
useRender(() => vue.createVNode("div", {
|
|
15013
15379
|
"ref": layoutRef,
|
|
15014
|
-
"class": layoutClasses.value,
|
|
15015
|
-
"style": layoutStyles.value
|
|
15380
|
+
"class": [layoutClasses.value, props.class],
|
|
15381
|
+
"style": [layoutStyles.value, props.style]
|
|
15016
15382
|
}, [slots.default?.()]));
|
|
15017
15383
|
return {
|
|
15018
15384
|
getLayoutItem,
|
|
@@ -15035,6 +15401,7 @@
|
|
|
15035
15401
|
default: 300
|
|
15036
15402
|
},
|
|
15037
15403
|
modelValue: Boolean,
|
|
15404
|
+
...makeComponentProps(),
|
|
15038
15405
|
...makeLayoutItemProps()
|
|
15039
15406
|
},
|
|
15040
15407
|
setup(props, _ref) {
|
|
@@ -15053,8 +15420,8 @@
|
|
|
15053
15420
|
absolute: vue.toRef(props, 'absolute')
|
|
15054
15421
|
});
|
|
15055
15422
|
return () => vue.createVNode("div", {
|
|
15056
|
-
"class": ['v-layout-item'],
|
|
15057
|
-
"style": layoutItemStyles.value
|
|
15423
|
+
"class": ['v-layout-item', props.class],
|
|
15424
|
+
"style": [layoutItemStyles.value, props.style]
|
|
15058
15425
|
}, [slots.default?.()]);
|
|
15059
15426
|
}
|
|
15060
15427
|
});
|
|
@@ -15078,6 +15445,7 @@
|
|
|
15078
15445
|
threshold: undefined
|
|
15079
15446
|
})
|
|
15080
15447
|
},
|
|
15448
|
+
...makeComponentProps(),
|
|
15081
15449
|
...makeDimensionProps(),
|
|
15082
15450
|
...makeTagProps(),
|
|
15083
15451
|
...makeTransitionProps({
|
|
@@ -15100,8 +15468,8 @@
|
|
|
15100
15468
|
isActive.value = isIntersecting;
|
|
15101
15469
|
}
|
|
15102
15470
|
useRender(() => vue.withDirectives(vue.createVNode(props.tag, {
|
|
15103
|
-
"class":
|
|
15104
|
-
"style": dimensionStyles.value
|
|
15471
|
+
"class": ['v-lazy', props.class],
|
|
15472
|
+
"style": [dimensionStyles.value, props.style]
|
|
15105
15473
|
}, {
|
|
15106
15474
|
default: () => [isActive.value && vue.createVNode(MaybeTransition, {
|
|
15107
15475
|
"transition": props.transition,
|
|
@@ -15126,7 +15494,8 @@
|
|
|
15126
15494
|
rtl: {
|
|
15127
15495
|
type: Boolean,
|
|
15128
15496
|
default: undefined
|
|
15129
|
-
}
|
|
15497
|
+
},
|
|
15498
|
+
...makeComponentProps()
|
|
15130
15499
|
},
|
|
15131
15500
|
setup(props, _ref) {
|
|
15132
15501
|
let {
|
|
@@ -15136,7 +15505,8 @@
|
|
|
15136
15505
|
rtlClasses
|
|
15137
15506
|
} = provideLocale(props);
|
|
15138
15507
|
useRender(() => vue.createVNode("div", {
|
|
15139
|
-
"class": ['v-locale-provider', rtlClasses.value]
|
|
15508
|
+
"class": ['v-locale-provider', rtlClasses.value, props.class],
|
|
15509
|
+
"style": props.style
|
|
15140
15510
|
}, [slots.default?.()]));
|
|
15141
15511
|
return {};
|
|
15142
15512
|
}
|
|
@@ -15146,6 +15516,7 @@
|
|
|
15146
15516
|
name: 'VMain',
|
|
15147
15517
|
props: {
|
|
15148
15518
|
scrollable: Boolean,
|
|
15519
|
+
...makeComponentProps(),
|
|
15149
15520
|
...makeTagProps({
|
|
15150
15521
|
tag: 'main'
|
|
15151
15522
|
})
|
|
@@ -15163,8 +15534,8 @@
|
|
|
15163
15534
|
useRender(() => vue.createVNode(props.tag, {
|
|
15164
15535
|
"class": ['v-main', {
|
|
15165
15536
|
'v-main--scrollable': props.scrollable
|
|
15166
|
-
}],
|
|
15167
|
-
"style": [mainStyles.value, ssrBootStyles.value]
|
|
15537
|
+
}, props.class],
|
|
15538
|
+
"style": [mainStyles.value, ssrBootStyles.value, props.style]
|
|
15168
15539
|
}, {
|
|
15169
15540
|
default: () => [props.scrollable ? vue.createVNode("div", {
|
|
15170
15541
|
"class": "v-main__scroller"
|
|
@@ -15510,6 +15881,7 @@
|
|
|
15510
15881
|
},
|
|
15511
15882
|
sticky: Boolean,
|
|
15512
15883
|
...makeBorderProps(),
|
|
15884
|
+
...makeComponentProps(),
|
|
15513
15885
|
...makeElevationProps(),
|
|
15514
15886
|
...makeLayoutItemProps(),
|
|
15515
15887
|
...makeRoundedProps(),
|
|
@@ -15661,8 +16033,8 @@
|
|
|
15661
16033
|
'v-navigation-drawer--temporary': isTemporary.value,
|
|
15662
16034
|
'v-navigation-drawer--active': isActive.value,
|
|
15663
16035
|
'v-navigation-drawer--sticky': isSticky.value
|
|
15664
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value],
|
|
15665
|
-
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value]
|
|
16036
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
16037
|
+
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value, props.style]
|
|
15666
16038
|
}, attrs), {
|
|
15667
16039
|
default: () => [hasImage && vue.createVNode("div", {
|
|
15668
16040
|
"key": "image",
|
|
@@ -15791,6 +16163,7 @@
|
|
|
15791
16163
|
},
|
|
15792
16164
|
showFirstLastPage: Boolean,
|
|
15793
16165
|
...makeBorderProps(),
|
|
16166
|
+
...makeComponentProps(),
|
|
15794
16167
|
...makeDensityProps(),
|
|
15795
16168
|
...makeElevationProps(),
|
|
15796
16169
|
...makeRoundedProps(),
|
|
@@ -15987,7 +16360,8 @@
|
|
|
15987
16360
|
}
|
|
15988
16361
|
useRender(() => vue.createVNode(props.tag, {
|
|
15989
16362
|
"ref": resizeRef,
|
|
15990
|
-
"class": ['v-pagination', themeClasses.value],
|
|
16363
|
+
"class": ['v-pagination', themeClasses.value, props.class],
|
|
16364
|
+
"style": props.style,
|
|
15991
16365
|
"role": "navigation",
|
|
15992
16366
|
"aria-label": t(props.ariaLabel),
|
|
15993
16367
|
"onKeydown": onKeydown,
|
|
@@ -16046,7 +16420,8 @@
|
|
|
16046
16420
|
scale: {
|
|
16047
16421
|
type: [Number, String],
|
|
16048
16422
|
default: 0.5
|
|
16049
|
-
}
|
|
16423
|
+
},
|
|
16424
|
+
...makeComponentProps()
|
|
16050
16425
|
},
|
|
16051
16426
|
setup(props, _ref) {
|
|
16052
16427
|
let {
|
|
@@ -16108,7 +16483,8 @@
|
|
|
16108
16483
|
useRender(() => vue.createVNode(VImg, {
|
|
16109
16484
|
"class": ['v-parallax', {
|
|
16110
16485
|
'v-parallax--active': isIntersecting.value
|
|
16111
|
-
}],
|
|
16486
|
+
}, props.class],
|
|
16487
|
+
"style": props.style,
|
|
16112
16488
|
"ref": root,
|
|
16113
16489
|
"cover": true,
|
|
16114
16490
|
"onLoadstart": onScroll,
|
|
@@ -16133,7 +16509,8 @@
|
|
|
16133
16509
|
slots
|
|
16134
16510
|
} = _ref;
|
|
16135
16511
|
useRender(() => vue.createVNode(VSelectionControl, vue.mergeProps(props, {
|
|
16136
|
-
"class":
|
|
16512
|
+
"class": ['v-radio', props.class],
|
|
16513
|
+
"style": props.style,
|
|
16137
16514
|
"type": "radio"
|
|
16138
16515
|
}), slots));
|
|
16139
16516
|
return {};
|
|
@@ -16187,7 +16564,8 @@
|
|
|
16187
16564
|
}
|
|
16188
16565
|
}) : props.label;
|
|
16189
16566
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
16190
|
-
"class":
|
|
16567
|
+
"class": ['v-radio-group', props.class],
|
|
16568
|
+
"style": props.style
|
|
16191
16569
|
}, inputAttrs, inputProps, {
|
|
16192
16570
|
"modelValue": model.value,
|
|
16193
16571
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
@@ -16243,11 +16621,14 @@
|
|
|
16243
16621
|
},
|
|
16244
16622
|
emits: {
|
|
16245
16623
|
'update:focused': value => true,
|
|
16246
|
-
'update:modelValue': value => true
|
|
16624
|
+
'update:modelValue': value => true,
|
|
16625
|
+
end: value => true,
|
|
16626
|
+
start: value => true
|
|
16247
16627
|
},
|
|
16248
16628
|
setup(props, _ref) {
|
|
16249
16629
|
let {
|
|
16250
|
-
slots
|
|
16630
|
+
slots,
|
|
16631
|
+
emit
|
|
16251
16632
|
} = _ref;
|
|
16252
16633
|
const startThumbRef = vue.ref();
|
|
16253
16634
|
const stopThumbRef = vue.ref();
|
|
@@ -16260,6 +16641,11 @@
|
|
|
16260
16641
|
const b = Math.abs(stopOffset);
|
|
16261
16642
|
return a < b || a === b && startOffset < 0 ? startThumbRef.value.$el : stopThumbRef.value.$el;
|
|
16262
16643
|
}
|
|
16644
|
+
const steps = useSteps(props);
|
|
16645
|
+
const model = useProxiedModel(props, 'modelValue', undefined, arr => {
|
|
16646
|
+
if (!arr?.length) return [0, 0];
|
|
16647
|
+
return arr.map(value => steps.roundValue(value));
|
|
16648
|
+
});
|
|
16263
16649
|
const {
|
|
16264
16650
|
activeThumbRef,
|
|
16265
16651
|
hasLabels,
|
|
@@ -16269,34 +16655,37 @@
|
|
|
16269
16655
|
onSliderMousedown,
|
|
16270
16656
|
onSliderTouchstart,
|
|
16271
16657
|
position,
|
|
16272
|
-
roundValue,
|
|
16273
16658
|
trackContainerRef
|
|
16274
16659
|
} = useSlider({
|
|
16275
|
-
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
16276
16660
|
props,
|
|
16277
|
-
|
|
16278
|
-
|
|
16661
|
+
steps,
|
|
16662
|
+
onSliderStart: () => {
|
|
16663
|
+
emit('start', model.value);
|
|
16664
|
+
},
|
|
16665
|
+
onSliderEnd: _ref2 => {
|
|
16666
|
+
let {
|
|
16667
|
+
value
|
|
16668
|
+
} = _ref2;
|
|
16669
|
+
const newValue = activeThumbRef.value === startThumbRef.value?.$el ? [value, model.value[1]] : [model.value[0], value];
|
|
16670
|
+
model.value = newValue;
|
|
16671
|
+
emit('end', newValue);
|
|
16279
16672
|
},
|
|
16280
|
-
|
|
16673
|
+
onSliderMove: _ref3 => {
|
|
16674
|
+
let {
|
|
16675
|
+
value
|
|
16676
|
+
} = _ref3;
|
|
16281
16677
|
const [start, stop] = model.value;
|
|
16282
16678
|
if (!props.strict && start === stop && start !== min.value) {
|
|
16283
|
-
activeThumbRef.value =
|
|
16679
|
+
activeThumbRef.value = value > start ? stopThumbRef.value?.$el : startThumbRef.value?.$el;
|
|
16284
16680
|
activeThumbRef.value?.focus();
|
|
16285
16681
|
}
|
|
16286
16682
|
if (activeThumbRef.value === startThumbRef.value?.$el) {
|
|
16287
|
-
model.value = [Math.min(
|
|
16683
|
+
model.value = [Math.min(value, stop), stop];
|
|
16288
16684
|
} else {
|
|
16289
|
-
model.value = [start, Math.max(start,
|
|
16685
|
+
model.value = [start, Math.max(start, value)];
|
|
16290
16686
|
}
|
|
16291
16687
|
},
|
|
16292
16688
|
getActiveThumb
|
|
16293
|
-
/* eslint-enable @typescript-eslint/no-use-before-define */
|
|
16294
|
-
});
|
|
16295
|
-
|
|
16296
|
-
const model = useProxiedModel(props, 'modelValue', undefined, arr => {
|
|
16297
|
-
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
16298
|
-
if (!arr || !arr.length) return [0, 0];
|
|
16299
|
-
return arr.map(value => roundValue(value));
|
|
16300
16689
|
});
|
|
16301
16690
|
const {
|
|
16302
16691
|
isFocused,
|
|
@@ -16314,7 +16703,8 @@
|
|
|
16314
16703
|
'v-slider--focused': isFocused.value,
|
|
16315
16704
|
'v-slider--pressed': mousePressed.value,
|
|
16316
16705
|
'v-slider--disabled': props.disabled
|
|
16317
|
-
}],
|
|
16706
|
+
}, props.class],
|
|
16707
|
+
"style": props.style,
|
|
16318
16708
|
"ref": inputRef
|
|
16319
16709
|
}, inputProps, {
|
|
16320
16710
|
"focused": isFocused.value
|
|
@@ -16324,11 +16714,11 @@
|
|
|
16324
16714
|
"class": "v-slider__label",
|
|
16325
16715
|
"text": props.label
|
|
16326
16716
|
}, null) : undefined, slots.prepend?.(slotProps)]) : undefined,
|
|
16327
|
-
default:
|
|
16717
|
+
default: _ref4 => {
|
|
16328
16718
|
let {
|
|
16329
16719
|
id,
|
|
16330
16720
|
messagesId
|
|
16331
|
-
} =
|
|
16721
|
+
} = _ref4;
|
|
16332
16722
|
return vue.createVNode("div", {
|
|
16333
16723
|
"class": "v-slider__container",
|
|
16334
16724
|
"onMousedown": onSliderMousedown,
|
|
@@ -16457,6 +16847,7 @@
|
|
|
16457
16847
|
validator: v => ['top', 'bottom'].includes(v)
|
|
16458
16848
|
},
|
|
16459
16849
|
ripple: Boolean,
|
|
16850
|
+
...makeComponentProps(),
|
|
16460
16851
|
...makeDensityProps(),
|
|
16461
16852
|
...makeSizeProps(),
|
|
16462
16853
|
...makeTagProps(),
|
|
@@ -16480,9 +16871,6 @@
|
|
|
16480
16871
|
const range = vue.computed(() => createRange(Number(props.length), 1));
|
|
16481
16872
|
const increments = vue.computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]));
|
|
16482
16873
|
const hoverIndex = vue.ref(-1);
|
|
16483
|
-
const focusIndex = vue.ref(-1);
|
|
16484
|
-
const firstRef = vue.ref();
|
|
16485
|
-
let isClicking = false;
|
|
16486
16874
|
const itemState = vue.computed(() => increments.value.map(value => {
|
|
16487
16875
|
const isHovering = props.hover && hoverIndex.value > -1;
|
|
16488
16876
|
const isFilled = normalizedValue.value >= value;
|
|
@@ -16505,16 +16893,6 @@
|
|
|
16505
16893
|
function onMouseleave() {
|
|
16506
16894
|
hoverIndex.value = -1;
|
|
16507
16895
|
}
|
|
16508
|
-
function onFocus() {
|
|
16509
|
-
if (value === 0 && normalizedValue.value === 0) {
|
|
16510
|
-
firstRef.value?.focus();
|
|
16511
|
-
} else {
|
|
16512
|
-
focusIndex.value = value;
|
|
16513
|
-
}
|
|
16514
|
-
}
|
|
16515
|
-
function onBlur() {
|
|
16516
|
-
if (!isClicking) focusIndex.value = -1;
|
|
16517
|
-
}
|
|
16518
16896
|
function onClick() {
|
|
16519
16897
|
if (props.disabled || props.readonly) return;
|
|
16520
16898
|
rating.value = normalizedValue.value === value && props.clearable ? 0 : value;
|
|
@@ -16522,17 +16900,9 @@
|
|
|
16522
16900
|
return {
|
|
16523
16901
|
onMouseenter: props.hover ? onMouseenter : undefined,
|
|
16524
16902
|
onMouseleave: props.hover ? onMouseleave : undefined,
|
|
16525
|
-
onFocus,
|
|
16526
|
-
onBlur,
|
|
16527
16903
|
onClick
|
|
16528
16904
|
};
|
|
16529
16905
|
}));
|
|
16530
|
-
function onMousedown() {
|
|
16531
|
-
isClicking = true;
|
|
16532
|
-
}
|
|
16533
|
-
function onMouseup() {
|
|
16534
|
-
isClicking = false;
|
|
16535
|
-
}
|
|
16536
16906
|
const name = vue.computed(() => props.name ?? `v-rating-${getUid()}`);
|
|
16537
16907
|
function VRatingItem(_ref2) {
|
|
16538
16908
|
let {
|
|
@@ -16543,8 +16913,6 @@
|
|
|
16543
16913
|
const {
|
|
16544
16914
|
onMouseenter,
|
|
16545
16915
|
onMouseleave,
|
|
16546
|
-
onFocus,
|
|
16547
|
-
onBlur,
|
|
16548
16916
|
onClick
|
|
16549
16917
|
} = eventState.value[index + 1];
|
|
16550
16918
|
const id = `${name.value}-${String(value).replace('.', '-')}`;
|
|
@@ -16555,7 +16923,6 @@
|
|
|
16555
16923
|
icon: itemState.value[index]?.icon,
|
|
16556
16924
|
ripple: props.ripple,
|
|
16557
16925
|
size: props.size,
|
|
16558
|
-
tag: 'span',
|
|
16559
16926
|
variant: 'plain'
|
|
16560
16927
|
};
|
|
16561
16928
|
return vue.createVNode(vue.Fragment, null, [vue.createVNode("label", {
|
|
@@ -16564,17 +16931,17 @@
|
|
|
16564
16931
|
'v-rating__item--half': props.halfIncrements && value % 1 > 0,
|
|
16565
16932
|
'v-rating__item--full': props.halfIncrements && value % 1 === 0
|
|
16566
16933
|
},
|
|
16567
|
-
"onMousedown": onMousedown,
|
|
16568
|
-
"onMouseup": onMouseup,
|
|
16569
16934
|
"onMouseenter": onMouseenter,
|
|
16570
|
-
"onMouseleave": onMouseleave
|
|
16935
|
+
"onMouseleave": onMouseleave,
|
|
16936
|
+
"onClick": onClick
|
|
16571
16937
|
}, [vue.createVNode("span", {
|
|
16572
16938
|
"class": "v-rating__hidden"
|
|
16573
16939
|
}, [t(props.itemAriaLabel, value, props.length)]), !showStar ? undefined : slots.item ? slots.item({
|
|
16574
16940
|
...itemState.value[index],
|
|
16575
16941
|
props: btnProps,
|
|
16576
16942
|
value,
|
|
16577
|
-
index
|
|
16943
|
+
index,
|
|
16944
|
+
rating: normalizedValue.value
|
|
16578
16945
|
}) : vue.createVNode(VBtn, btnProps, null)]), vue.createVNode("input", {
|
|
16579
16946
|
"class": "v-rating__hidden",
|
|
16580
16947
|
"name": name.value,
|
|
@@ -16582,10 +16949,7 @@
|
|
|
16582
16949
|
"type": "radio",
|
|
16583
16950
|
"value": value,
|
|
16584
16951
|
"checked": normalizedValue.value === value,
|
|
16585
|
-
"
|
|
16586
|
-
"onFocus": onFocus,
|
|
16587
|
-
"onBlur": onBlur,
|
|
16588
|
-
"ref": index === 0 ? firstRef : undefined,
|
|
16952
|
+
"tabindex": -1,
|
|
16589
16953
|
"readonly": props.readonly,
|
|
16590
16954
|
"disabled": props.disabled
|
|
16591
16955
|
}, null)]);
|
|
@@ -16601,7 +16965,8 @@
|
|
|
16601
16965
|
"class": ['v-rating', {
|
|
16602
16966
|
'v-rating--hover': props.hover,
|
|
16603
16967
|
'v-rating--readonly': props.readonly
|
|
16604
|
-
}, themeClasses.value]
|
|
16968
|
+
}, themeClasses.value, props.class],
|
|
16969
|
+
"style": props.style
|
|
16605
16970
|
}, {
|
|
16606
16971
|
default: () => [vue.createVNode(VRatingItem, {
|
|
16607
16972
|
"value": 0,
|
|
@@ -16614,9 +16979,7 @@
|
|
|
16614
16979
|
index: i,
|
|
16615
16980
|
label: props.itemLabels?.[i]
|
|
16616
16981
|
}) : undefined, vue.createVNode("div", {
|
|
16617
|
-
"class":
|
|
16618
|
-
'v-rating__item--focused': Math.ceil(focusIndex.value) === value
|
|
16619
|
-
}]
|
|
16982
|
+
"class": "v-rating__item"
|
|
16620
16983
|
}, [props.halfIncrements ? vue.createVNode(vue.Fragment, null, [vue.createVNode(VRatingItem, {
|
|
16621
16984
|
"value": value - 0.5,
|
|
16622
16985
|
"index": i * 2
|
|
@@ -16703,6 +17066,7 @@
|
|
|
16703
17066
|
type: [Boolean, String],
|
|
16704
17067
|
validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
|
|
16705
17068
|
},
|
|
17069
|
+
...makeComponentProps(),
|
|
16706
17070
|
...makeTagProps(),
|
|
16707
17071
|
...makeGroupProps({
|
|
16708
17072
|
selectedClass: 'v-slide-group-item--active'
|
|
@@ -16866,7 +17230,7 @@
|
|
|
16866
17230
|
function focus(location) {
|
|
16867
17231
|
if (!contentRef.value) return;
|
|
16868
17232
|
if (!location) {
|
|
16869
|
-
const focusable =
|
|
17233
|
+
const focusable = focusableChildren(contentRef.value);
|
|
16870
17234
|
focusable[0]?.focus();
|
|
16871
17235
|
} else if (location === 'next') {
|
|
16872
17236
|
const el = contentRef.value.querySelector(':focus')?.nextElementSibling;
|
|
@@ -16943,7 +17307,8 @@
|
|
|
16943
17307
|
'v-slide-group--vertical': !isHorizontal.value,
|
|
16944
17308
|
'v-slide-group--has-affixes': hasAffixes.value,
|
|
16945
17309
|
'v-slide-group--is-overflowing': isOverflowing.value
|
|
16946
|
-
}],
|
|
17310
|
+
}, props.class],
|
|
17311
|
+
"style": props.style,
|
|
16947
17312
|
"tabindex": isFocused.value || group.selected.value.length ? -1 : 0,
|
|
16948
17313
|
"onFocus": onFocus
|
|
16949
17314
|
}, {
|
|
@@ -17093,7 +17458,8 @@
|
|
|
17093
17458
|
'v-snackbar--active': isActive.value,
|
|
17094
17459
|
'v-snackbar--multi-line': props.multiLine && !props.vertical,
|
|
17095
17460
|
'v-snackbar--vertical': props.vertical
|
|
17096
|
-
}, positionClasses.value]
|
|
17461
|
+
}, positionClasses.value, props.class],
|
|
17462
|
+
"style": props.style
|
|
17097
17463
|
}, overlayProps, {
|
|
17098
17464
|
"modelValue": isActive.value,
|
|
17099
17465
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
@@ -17193,7 +17559,8 @@
|
|
|
17193
17559
|
'v-switch--inset': props.inset
|
|
17194
17560
|
}, {
|
|
17195
17561
|
'v-switch--indeterminate': indeterminate.value
|
|
17196
|
-
}, loaderClasses.value]
|
|
17562
|
+
}, loaderClasses.value, props.class],
|
|
17563
|
+
"style": props.style
|
|
17197
17564
|
}, inputAttrs, inputProps, {
|
|
17198
17565
|
"id": id.value,
|
|
17199
17566
|
"focused": isFocused.value
|
|
@@ -17262,6 +17629,7 @@
|
|
|
17262
17629
|
color: String,
|
|
17263
17630
|
height: [Number, String],
|
|
17264
17631
|
window: Boolean,
|
|
17632
|
+
...makeComponentProps(),
|
|
17265
17633
|
...makeElevationProps(),
|
|
17266
17634
|
...makeLayoutItemProps(),
|
|
17267
17635
|
...makeRoundedProps(),
|
|
@@ -17303,8 +17671,8 @@
|
|
|
17303
17671
|
useRender(() => vue.createVNode(props.tag, {
|
|
17304
17672
|
"class": ['v-system-bar', {
|
|
17305
17673
|
'v-system-bar--window': props.window
|
|
17306
|
-
}, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value],
|
|
17307
|
-
"style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value]
|
|
17674
|
+
}, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
17675
|
+
"style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, props.style]
|
|
17308
17676
|
}, slots));
|
|
17309
17677
|
return {};
|
|
17310
17678
|
}
|
|
@@ -17316,7 +17684,6 @@
|
|
|
17316
17684
|
name: 'VTab',
|
|
17317
17685
|
props: {
|
|
17318
17686
|
fixed: Boolean,
|
|
17319
|
-
title: String,
|
|
17320
17687
|
sliderColor: String,
|
|
17321
17688
|
hideSlider: Boolean,
|
|
17322
17689
|
direction: {
|
|
@@ -17378,10 +17745,10 @@
|
|
|
17378
17745
|
useRender(() => {
|
|
17379
17746
|
const [btnProps] = VBtn.filterProps(props);
|
|
17380
17747
|
return vue.createVNode(VBtn, vue.mergeProps({
|
|
17381
|
-
"_as": "VTab",
|
|
17382
17748
|
"symbol": VTabsSymbol,
|
|
17383
17749
|
"ref": rootEl,
|
|
17384
|
-
"class": ['v-tab'],
|
|
17750
|
+
"class": ['v-tab', props.class],
|
|
17751
|
+
"style": props.style,
|
|
17385
17752
|
"tabindex": isSelected.value ? 0 : -1,
|
|
17386
17753
|
"role": "tab",
|
|
17387
17754
|
"aria-selected": String(isSelected.value),
|
|
@@ -17392,7 +17759,7 @@
|
|
|
17392
17759
|
}, btnProps, attrs, {
|
|
17393
17760
|
"onGroup:selected": updateSlider
|
|
17394
17761
|
}), {
|
|
17395
|
-
default: () => [slots.default
|
|
17762
|
+
default: () => [slots.default?.() ?? props.text, !props.hideSlider && vue.createVNode("div", {
|
|
17396
17763
|
"ref": sliderEl,
|
|
17397
17764
|
"class": ['v-tab__slider', sliderColorClasses.value],
|
|
17398
17765
|
"style": sliderColorStyles.value
|
|
@@ -17476,10 +17843,10 @@
|
|
|
17476
17843
|
'v-tabs--fixed-tabs': props.fixedTabs,
|
|
17477
17844
|
'v-tabs--grow': props.grow,
|
|
17478
17845
|
'v-tabs--stacked': props.stacked
|
|
17479
|
-
}, densityClasses.value, backgroundColorClasses.value],
|
|
17846
|
+
}, densityClasses.value, backgroundColorClasses.value, props.class],
|
|
17480
17847
|
"style": [{
|
|
17481
17848
|
'--v-tabs-height': convertToUnit(props.height)
|
|
17482
|
-
}, backgroundColorStyles.value],
|
|
17849
|
+
}, backgroundColorStyles.value, props.style],
|
|
17483
17850
|
"role": "tablist",
|
|
17484
17851
|
"symbol": VTabsSymbol
|
|
17485
17852
|
}), {
|
|
@@ -17499,6 +17866,7 @@
|
|
|
17499
17866
|
fixedFooter: Boolean,
|
|
17500
17867
|
height: [Number, String],
|
|
17501
17868
|
hover: Boolean,
|
|
17869
|
+
...makeComponentProps(),
|
|
17502
17870
|
...makeDensityProps(),
|
|
17503
17871
|
...makeTagProps(),
|
|
17504
17872
|
...makeThemeProps()
|
|
@@ -17521,7 +17889,8 @@
|
|
|
17521
17889
|
'v-table--has-top': !!slots.top,
|
|
17522
17890
|
'v-table--has-bottom': !!slots.bottom,
|
|
17523
17891
|
'v-table--hover': props.hover
|
|
17524
|
-
}, themeClasses.value, densityClasses.value]
|
|
17892
|
+
}, themeClasses.value, densityClasses.value, props.class],
|
|
17893
|
+
"style": props.style
|
|
17525
17894
|
}, {
|
|
17526
17895
|
default: () => [slots.top?.(), slots.default ? vue.createVNode("div", {
|
|
17527
17896
|
"class": "v-table__wrapper",
|
|
@@ -17686,7 +18055,8 @@
|
|
|
17686
18055
|
'v-textarea--auto-grow': props.autoGrow,
|
|
17687
18056
|
'v-textarea--no-resize': props.noResize || props.autoGrow,
|
|
17688
18057
|
'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant)
|
|
17689
|
-
}]
|
|
18058
|
+
}, props.class],
|
|
18059
|
+
"style": props.style
|
|
17690
18060
|
}, rootAttrs, inputProps, {
|
|
17691
18061
|
"focused": isFocused.value
|
|
17692
18062
|
}), {
|
|
@@ -17770,6 +18140,7 @@
|
|
|
17770
18140
|
name: 'VThemeProvider',
|
|
17771
18141
|
props: {
|
|
17772
18142
|
withBackground: Boolean,
|
|
18143
|
+
...makeComponentProps(),
|
|
17773
18144
|
...makeThemeProps(),
|
|
17774
18145
|
...makeTagProps()
|
|
17775
18146
|
},
|
|
@@ -17783,7 +18154,8 @@
|
|
|
17783
18154
|
return () => {
|
|
17784
18155
|
if (!props.withBackground) return slots.default?.();
|
|
17785
18156
|
return vue.createVNode(props.tag, {
|
|
17786
|
-
"class": ['v-theme-provider', themeClasses.value]
|
|
18157
|
+
"class": ['v-theme-provider', themeClasses.value, props.class],
|
|
18158
|
+
"style": props.style
|
|
17787
18159
|
}, {
|
|
17788
18160
|
default: () => [slots.default?.()]
|
|
17789
18161
|
});
|
|
@@ -17828,6 +18200,7 @@
|
|
|
17828
18200
|
type: String,
|
|
17829
18201
|
validator: v => ['start', 'end', 'both'].includes(v)
|
|
17830
18202
|
},
|
|
18203
|
+
...makeComponentProps(),
|
|
17831
18204
|
...makeDensityProps(),
|
|
17832
18205
|
...makeTagProps(),
|
|
17833
18206
|
...makeThemeProps()
|
|
@@ -17871,10 +18244,10 @@
|
|
|
17871
18244
|
useRender(() => vue.createVNode(props.tag, {
|
|
17872
18245
|
"class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {
|
|
17873
18246
|
'v-timeline--inset-line': !!props.lineInset
|
|
17874
|
-
}, themeClasses.value, densityClasses.value, sideClasses.value],
|
|
17875
|
-
"style": {
|
|
18247
|
+
}, themeClasses.value, densityClasses.value, sideClasses.value, props.class],
|
|
18248
|
+
"style": [{
|
|
17876
18249
|
'--v-timeline-line-thickness': convertToUnit(props.lineThickness)
|
|
17877
|
-
}
|
|
18250
|
+
}, props.style]
|
|
17878
18251
|
}, slots));
|
|
17879
18252
|
return {};
|
|
17880
18253
|
}
|
|
@@ -17889,6 +18262,7 @@
|
|
|
17889
18262
|
icon: IconValue,
|
|
17890
18263
|
iconColor: String,
|
|
17891
18264
|
lineColor: String,
|
|
18265
|
+
...makeComponentProps(),
|
|
17892
18266
|
...makeRoundedProps(),
|
|
17893
18267
|
...makeSizeProps(),
|
|
17894
18268
|
...makeElevationProps()
|
|
@@ -17918,7 +18292,8 @@
|
|
|
17918
18292
|
useRender(() => vue.createVNode("div", {
|
|
17919
18293
|
"class": ['v-timeline-divider', {
|
|
17920
18294
|
'v-timeline-divider--fill-dot': props.fillDot
|
|
17921
|
-
}]
|
|
18295
|
+
}, props.class],
|
|
18296
|
+
"style": props.style
|
|
17922
18297
|
}, [vue.createVNode("div", {
|
|
17923
18298
|
"class": ['v-timeline-divider__before', lineColorClasses.value],
|
|
17924
18299
|
"style": lineColorStyles.value
|
|
@@ -17968,11 +18343,12 @@
|
|
|
17968
18343
|
icon: IconValue,
|
|
17969
18344
|
iconColor: String,
|
|
17970
18345
|
lineInset: [Number, String],
|
|
17971
|
-
...
|
|
18346
|
+
...makeComponentProps(),
|
|
18347
|
+
...makeDimensionProps(),
|
|
17972
18348
|
...makeElevationProps(),
|
|
18349
|
+
...makeRoundedProps(),
|
|
17973
18350
|
...makeSizeProps(),
|
|
17974
|
-
...makeTagProps()
|
|
17975
|
-
...makeDimensionProps()
|
|
18351
|
+
...makeTagProps()
|
|
17976
18352
|
},
|
|
17977
18353
|
setup(props, _ref) {
|
|
17978
18354
|
let {
|
|
@@ -17992,11 +18368,11 @@
|
|
|
17992
18368
|
useRender(() => vue.createVNode("div", {
|
|
17993
18369
|
"class": ['v-timeline-item', {
|
|
17994
18370
|
'v-timeline-item--fill-dot': props.fillDot
|
|
17995
|
-
}],
|
|
17996
|
-
"style": {
|
|
18371
|
+
}, props.class],
|
|
18372
|
+
"style": [{
|
|
17997
18373
|
'--v-timeline-dot-size': convertToUnit(dotSize.value),
|
|
17998
18374
|
'--v-timeline-line-inset': props.lineInset ? `calc(var(--v-timeline-dot-size) / 2 + ${convertToUnit(props.lineInset)})` : convertToUnit(0)
|
|
17999
|
-
}
|
|
18375
|
+
}, props.style]
|
|
18000
18376
|
}, [vue.createVNode("div", {
|
|
18001
18377
|
"class": "v-timeline-item__body",
|
|
18002
18378
|
"style": dimensionStyles.value
|
|
@@ -18030,6 +18406,7 @@
|
|
|
18030
18406
|
closeOnBack: false,
|
|
18031
18407
|
location: 'end',
|
|
18032
18408
|
locationStrategy: 'connected',
|
|
18409
|
+
eager: true,
|
|
18033
18410
|
minWidth: 0,
|
|
18034
18411
|
offset: 10,
|
|
18035
18412
|
openOnClick: false,
|
|
@@ -18038,7 +18415,7 @@
|
|
|
18038
18415
|
scrim: false,
|
|
18039
18416
|
scrollStrategy: 'reposition',
|
|
18040
18417
|
transition: false
|
|
18041
|
-
}), ['absolute', 'persistent'
|
|
18418
|
+
}), ['absolute', 'persistent'])
|
|
18042
18419
|
},
|
|
18043
18420
|
emits: {
|
|
18044
18421
|
'update:modelValue': value => true
|
|
@@ -18071,7 +18448,8 @@
|
|
|
18071
18448
|
const [overlayProps] = VOverlay.filterProps(props);
|
|
18072
18449
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
|
18073
18450
|
"ref": overlay,
|
|
18074
|
-
"class": ['v-tooltip'],
|
|
18451
|
+
"class": ['v-tooltip', props.class],
|
|
18452
|
+
"style": props.style,
|
|
18075
18453
|
"id": id.value
|
|
18076
18454
|
}, overlayProps, {
|
|
18077
18455
|
"modelValue": isActive.value,
|
|
@@ -18082,7 +18460,6 @@
|
|
|
18082
18460
|
"origin": origin.value,
|
|
18083
18461
|
"persistent": true,
|
|
18084
18462
|
"role": "tooltip",
|
|
18085
|
-
"eager": true,
|
|
18086
18463
|
"activatorProps": activatorProps.value,
|
|
18087
18464
|
"_disableGlobalStack": true
|
|
18088
18465
|
}, scopeId), {
|
|
@@ -18117,40 +18494,210 @@
|
|
|
18117
18494
|
}
|
|
18118
18495
|
});
|
|
18119
18496
|
|
|
18120
|
-
const
|
|
18121
|
-
|
|
18122
|
-
|
|
18123
|
-
|
|
18497
|
+
const VVirtualScrollItem = genericComponent()({
|
|
18498
|
+
name: 'VVirtualScrollItem',
|
|
18499
|
+
props: {
|
|
18500
|
+
dynamicHeight: Boolean,
|
|
18501
|
+
...makeComponentProps()
|
|
18124
18502
|
},
|
|
18125
|
-
|
|
18126
|
-
|
|
18127
|
-
|
|
18128
|
-
|
|
18129
|
-
|
|
18130
|
-
|
|
18131
|
-
|
|
18132
|
-
|
|
18133
|
-
|
|
18134
|
-
|
|
18135
|
-
|
|
18136
|
-
|
|
18137
|
-
|
|
18138
|
-
|
|
18139
|
-
|
|
18140
|
-
|
|
18141
|
-
|
|
18142
|
-
|
|
18143
|
-
|
|
18144
|
-
|
|
18145
|
-
|
|
18146
|
-
width: convertToUnit(props.width),
|
|
18147
|
-
left: convertToUnit(props.fixedOffset || null)
|
|
18503
|
+
emits: {
|
|
18504
|
+
'update:height': height => true
|
|
18505
|
+
},
|
|
18506
|
+
setup(props, _ref) {
|
|
18507
|
+
let {
|
|
18508
|
+
emit,
|
|
18509
|
+
slots
|
|
18510
|
+
} = _ref;
|
|
18511
|
+
const {
|
|
18512
|
+
resizeRef,
|
|
18513
|
+
contentRect
|
|
18514
|
+
} = useResizeObserver();
|
|
18515
|
+
useToggleScope(() => props.dynamicHeight, () => {
|
|
18516
|
+
vue.watch(() => contentRect.value?.height, height => {
|
|
18517
|
+
if (height != null) emit('update:height', height);
|
|
18518
|
+
});
|
|
18519
|
+
});
|
|
18520
|
+
function updateHeight() {
|
|
18521
|
+
if (props.dynamicHeight && contentRect.value) {
|
|
18522
|
+
emit('update:height', contentRect.value.height);
|
|
18523
|
+
}
|
|
18148
18524
|
}
|
|
18149
|
-
|
|
18150
|
-
|
|
18151
|
-
|
|
18152
|
-
|
|
18153
|
-
|
|
18525
|
+
vue.onUpdated(updateHeight);
|
|
18526
|
+
useRender(() => vue.createVNode("div", {
|
|
18527
|
+
"ref": props.dynamicHeight ? resizeRef : undefined,
|
|
18528
|
+
"class": ['v-virtual-scroll__item', props.class],
|
|
18529
|
+
"style": props.style
|
|
18530
|
+
}, [slots.default?.()]));
|
|
18531
|
+
}
|
|
18532
|
+
});
|
|
18533
|
+
|
|
18534
|
+
// Types
|
|
18535
|
+
|
|
18536
|
+
const UP$1 = -1;
|
|
18537
|
+
const DOWN$1 = 1;
|
|
18538
|
+
const VVirtualScroll = genericComponent()({
|
|
18539
|
+
name: 'VVirtualScroll',
|
|
18540
|
+
props: {
|
|
18541
|
+
items: {
|
|
18542
|
+
type: Array,
|
|
18543
|
+
default: () => []
|
|
18544
|
+
},
|
|
18545
|
+
itemHeight: [Number, String],
|
|
18546
|
+
...makeComponentProps(),
|
|
18547
|
+
...makeDimensionProps()
|
|
18548
|
+
},
|
|
18549
|
+
setup(props, _ref) {
|
|
18550
|
+
let {
|
|
18551
|
+
slots
|
|
18552
|
+
} = _ref;
|
|
18553
|
+
const first = vue.ref(0);
|
|
18554
|
+
const baseItemHeight = vue.ref(props.itemHeight);
|
|
18555
|
+
const itemHeight = vue.computed({
|
|
18556
|
+
get: () => parseInt(baseItemHeight.value ?? 0, 10),
|
|
18557
|
+
set(val) {
|
|
18558
|
+
baseItemHeight.value = val;
|
|
18559
|
+
}
|
|
18560
|
+
});
|
|
18561
|
+
const rootEl = vue.ref();
|
|
18562
|
+
const {
|
|
18563
|
+
resizeRef,
|
|
18564
|
+
contentRect
|
|
18565
|
+
} = useResizeObserver();
|
|
18566
|
+
vue.watchEffect(() => {
|
|
18567
|
+
resizeRef.value = rootEl.value;
|
|
18568
|
+
});
|
|
18569
|
+
const display = useDisplay();
|
|
18570
|
+
const sizeMap = new Map();
|
|
18571
|
+
let sizes = createRange(props.items.length).map(() => itemHeight.value);
|
|
18572
|
+
const visibleItems = vue.computed(() => {
|
|
18573
|
+
return Math.max(12, Math.ceil((contentRect.value?.height ?? display.height.value) / itemHeight.value * 1.7 + 1));
|
|
18574
|
+
});
|
|
18575
|
+
function handleItemResize(index, height) {
|
|
18576
|
+
itemHeight.value = Math.max(itemHeight.value, height);
|
|
18577
|
+
sizes[index] = height;
|
|
18578
|
+
sizeMap.set(props.items[index], height);
|
|
18579
|
+
}
|
|
18580
|
+
function calculateOffset(index) {
|
|
18581
|
+
return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0);
|
|
18582
|
+
}
|
|
18583
|
+
function calculateMidPointIndex(scrollTop) {
|
|
18584
|
+
const end = props.items.length;
|
|
18585
|
+
let middle = 0;
|
|
18586
|
+
let middleOffset = 0;
|
|
18587
|
+
while (middleOffset < scrollTop && middle < end) {
|
|
18588
|
+
middleOffset += sizes[middle++] || itemHeight.value;
|
|
18589
|
+
}
|
|
18590
|
+
return middle - 1;
|
|
18591
|
+
}
|
|
18592
|
+
let lastScrollTop = 0;
|
|
18593
|
+
function handleScroll() {
|
|
18594
|
+
if (!rootEl.value || !contentRect.value) return;
|
|
18595
|
+
const height = contentRect.value.height;
|
|
18596
|
+
const scrollTop = rootEl.value.scrollTop;
|
|
18597
|
+
const direction = scrollTop < lastScrollTop ? UP$1 : DOWN$1;
|
|
18598
|
+
const midPointIndex = calculateMidPointIndex(scrollTop + height / 2);
|
|
18599
|
+
const buffer = Math.round(visibleItems.value / 3);
|
|
18600
|
+
if (direction === UP$1 && midPointIndex <= first.value + buffer * 2 - 1) {
|
|
18601
|
+
first.value = clamp(midPointIndex - buffer, 0, props.items.length);
|
|
18602
|
+
} else if (direction === DOWN$1 && midPointIndex >= first.value + buffer * 2 - 1) {
|
|
18603
|
+
first.value = clamp(midPointIndex - buffer, 0, props.items.length - visibleItems.value);
|
|
18604
|
+
}
|
|
18605
|
+
lastScrollTop = rootEl.value.scrollTop;
|
|
18606
|
+
}
|
|
18607
|
+
function scrollToIndex(index) {
|
|
18608
|
+
if (!rootEl.value) return;
|
|
18609
|
+
const offset = calculateOffset(index);
|
|
18610
|
+
rootEl.value.scrollTop = offset;
|
|
18611
|
+
}
|
|
18612
|
+
const items = vue.computed(() => props.items.map((item, index) => ({
|
|
18613
|
+
raw: item,
|
|
18614
|
+
index
|
|
18615
|
+
})));
|
|
18616
|
+
const last = vue.computed(() => Math.min(props.items.length, first.value + visibleItems.value));
|
|
18617
|
+
const computedItems = vue.computed(() => items.value.slice(first.value, last.value));
|
|
18618
|
+
const paddingTop = vue.computed(() => calculateOffset(first.value));
|
|
18619
|
+
const paddingBottom = vue.computed(() => calculateOffset(props.items.length) - calculateOffset(last.value));
|
|
18620
|
+
const {
|
|
18621
|
+
dimensionStyles
|
|
18622
|
+
} = useDimension(props);
|
|
18623
|
+
vue.onMounted(() => {
|
|
18624
|
+
if (!itemHeight.value) {
|
|
18625
|
+
// If itemHeight prop is not set, then calculate an estimated height from the average of inital items
|
|
18626
|
+
itemHeight.value = sizes.slice(first.value, last.value).reduce((curr, height) => curr + height, 0) / visibleItems.value;
|
|
18627
|
+
}
|
|
18628
|
+
});
|
|
18629
|
+
vue.watch(() => props.items.length, () => {
|
|
18630
|
+
sizes = createRange(props.items.length).map(() => itemHeight.value);
|
|
18631
|
+
sizeMap.forEach((height, item) => {
|
|
18632
|
+
const index = props.items.indexOf(item);
|
|
18633
|
+
if (index === -1) {
|
|
18634
|
+
sizeMap.delete(item);
|
|
18635
|
+
} else {
|
|
18636
|
+
sizes[index] = height;
|
|
18637
|
+
}
|
|
18638
|
+
});
|
|
18639
|
+
});
|
|
18640
|
+
useRender(() => vue.createVNode("div", {
|
|
18641
|
+
"ref": rootEl,
|
|
18642
|
+
"class": ['v-virtual-scroll', props.class],
|
|
18643
|
+
"onScroll": handleScroll,
|
|
18644
|
+
"style": [dimensionStyles.value, props.style]
|
|
18645
|
+
}, [vue.createVNode("div", {
|
|
18646
|
+
"class": "v-virtual-scroll__container",
|
|
18647
|
+
"style": {
|
|
18648
|
+
paddingTop: convertToUnit(paddingTop.value),
|
|
18649
|
+
paddingBottom: convertToUnit(paddingBottom.value)
|
|
18650
|
+
}
|
|
18651
|
+
}, [computedItems.value.map(item => vue.createVNode(VVirtualScrollItem, {
|
|
18652
|
+
"key": item.index,
|
|
18653
|
+
"dynamicHeight": !props.itemHeight,
|
|
18654
|
+
"onUpdate:height": height => handleItemResize(item.index, height)
|
|
18655
|
+
}, {
|
|
18656
|
+
default: () => [slots.default?.({
|
|
18657
|
+
item: item.raw,
|
|
18658
|
+
index: item.index
|
|
18659
|
+
})]
|
|
18660
|
+
}))])]));
|
|
18661
|
+
return {
|
|
18662
|
+
scrollToIndex
|
|
18663
|
+
};
|
|
18664
|
+
}
|
|
18665
|
+
});
|
|
18666
|
+
|
|
18667
|
+
const VDataTableColumn = defineFunctionalComponent({
|
|
18668
|
+
align: {
|
|
18669
|
+
type: String,
|
|
18670
|
+
default: 'start'
|
|
18671
|
+
},
|
|
18672
|
+
fixed: Boolean,
|
|
18673
|
+
fixedOffset: [Number, String],
|
|
18674
|
+
height: [Number, String],
|
|
18675
|
+
lastFixed: Boolean,
|
|
18676
|
+
noPadding: Boolean,
|
|
18677
|
+
tag: String,
|
|
18678
|
+
width: [Number, String]
|
|
18679
|
+
}, (props, _ref) => {
|
|
18680
|
+
let {
|
|
18681
|
+
slots,
|
|
18682
|
+
attrs
|
|
18683
|
+
} = _ref;
|
|
18684
|
+
const Tag = props.tag ?? 'td';
|
|
18685
|
+
return vue.createVNode(Tag, vue.mergeProps({
|
|
18686
|
+
"class": ['v-data-table__td', {
|
|
18687
|
+
'v-data-table-column--fixed': props.fixed,
|
|
18688
|
+
'v-data-table-column--last-fixed': props.lastFixed,
|
|
18689
|
+
'v-data-table-column--no-padding': props.noPadding
|
|
18690
|
+
}, `v-data-table-column--align-${props.align}`],
|
|
18691
|
+
"style": {
|
|
18692
|
+
height: convertToUnit(props.height),
|
|
18693
|
+
width: convertToUnit(props.width),
|
|
18694
|
+
left: convertToUnit(props.fixedOffset || null)
|
|
18695
|
+
}
|
|
18696
|
+
}, attrs), {
|
|
18697
|
+
default: () => [slots.default?.()]
|
|
18698
|
+
});
|
|
18699
|
+
});
|
|
18700
|
+
|
|
18154
18701
|
// Utilities
|
|
18155
18702
|
|
|
18156
18703
|
// Types
|
|
@@ -18542,6 +19089,17 @@
|
|
|
18542
19089
|
backgroundColorClasses,
|
|
18543
19090
|
backgroundColorStyles
|
|
18544
19091
|
} = useBackgroundColor(props, 'color');
|
|
19092
|
+
const slotProps = vue.computed(() => ({
|
|
19093
|
+
headers: headers.value,
|
|
19094
|
+
columns: columns.value,
|
|
19095
|
+
toggleSort,
|
|
19096
|
+
sortBy: sortBy.value,
|
|
19097
|
+
someSelected: someSelected.value,
|
|
19098
|
+
allSelected: allSelected.value,
|
|
19099
|
+
selectAll,
|
|
19100
|
+
getSortIcon,
|
|
19101
|
+
getFixedStyles
|
|
19102
|
+
}));
|
|
18545
19103
|
const VDataTableHeaderCell = _ref2 => {
|
|
18546
19104
|
let {
|
|
18547
19105
|
column,
|
|
@@ -18569,14 +19127,14 @@
|
|
|
18569
19127
|
"noPadding": noPadding
|
|
18570
19128
|
}, {
|
|
18571
19129
|
default: () => {
|
|
18572
|
-
const
|
|
18573
|
-
const
|
|
19130
|
+
const columnSlotName = `column.${column.key}`;
|
|
19131
|
+
const columnSlotProps = {
|
|
18574
19132
|
column,
|
|
18575
19133
|
selectAll
|
|
18576
19134
|
};
|
|
18577
|
-
if (slots[
|
|
19135
|
+
if (slots[columnSlotName]) return slots[columnSlotName](columnSlotProps);
|
|
18578
19136
|
if (column.key === 'data-table-select') {
|
|
18579
|
-
return slots['column.data-table-select']?.(
|
|
19137
|
+
return slots['column.data-table-select']?.(columnSlotProps) ?? vue.createVNode(VCheckboxBtn, {
|
|
18580
19138
|
"modelValue": allSelected.value,
|
|
18581
19139
|
"indeterminate": someSelected.value && !allSelected.value,
|
|
18582
19140
|
"onUpdate:modelValue": selectAll
|
|
@@ -18596,22 +19154,24 @@
|
|
|
18596
19154
|
}
|
|
18597
19155
|
});
|
|
18598
19156
|
};
|
|
18599
|
-
useRender(() =>
|
|
18600
|
-
"
|
|
18601
|
-
|
|
18602
|
-
|
|
18603
|
-
|
|
18604
|
-
"
|
|
18605
|
-
|
|
18606
|
-
"
|
|
18607
|
-
|
|
18608
|
-
|
|
18609
|
-
|
|
18610
|
-
|
|
18611
|
-
|
|
18612
|
-
|
|
18613
|
-
|
|
18614
|
-
|
|
19157
|
+
useRender(() => {
|
|
19158
|
+
return vue.createVNode(vue.Fragment, null, [slots.headers ? slots.headers(slotProps.value) : headers.value.map((row, y) => vue.createVNode("tr", null, [row.map((column, x) => vue.createVNode(VDataTableHeaderCell, {
|
|
19159
|
+
"column": column,
|
|
19160
|
+
"x": x,
|
|
19161
|
+
"y": y
|
|
19162
|
+
}, null))])), props.loading && vue.createVNode("tr", {
|
|
19163
|
+
"class": "v-data-table__progress"
|
|
19164
|
+
}, [vue.createVNode("th", {
|
|
19165
|
+
"colspan": columns.value.length
|
|
19166
|
+
}, [vue.createVNode(LoaderSlot, {
|
|
19167
|
+
"name": "v-data-table-headers",
|
|
19168
|
+
"active": true,
|
|
19169
|
+
"color": typeof props.loading === 'boolean' ? undefined : props.loading,
|
|
19170
|
+
"indeterminate": true
|
|
19171
|
+
}, {
|
|
19172
|
+
default: slots.loader
|
|
19173
|
+
})])])]);
|
|
19174
|
+
});
|
|
18615
19175
|
}
|
|
18616
19176
|
});
|
|
18617
19177
|
|
|
@@ -18910,9 +19470,7 @@
|
|
|
18910
19470
|
'v-data-table__tr--clickable': !!props.onClick
|
|
18911
19471
|
}],
|
|
18912
19472
|
"onClick": props.onClick
|
|
18913
|
-
}, [
|
|
18914
|
-
"key": "no-data"
|
|
18915
|
-
}, slots), props.item && columns.value.map((column, i) => vue.createVNode(VDataTableColumn, {
|
|
19473
|
+
}, [props.item && columns.value.map((column, i) => vue.createVNode(VDataTableColumn, {
|
|
18916
19474
|
"align": column.align,
|
|
18917
19475
|
"fixed": column.fixed,
|
|
18918
19476
|
"fixedOffset": column.fixedOffset,
|
|
@@ -19002,13 +19560,13 @@
|
|
|
19002
19560
|
useRender(() => {
|
|
19003
19561
|
if (props.loading && slots.loading) {
|
|
19004
19562
|
return vue.createVNode("tr", {
|
|
19005
|
-
"class": "v-data-table-rows-
|
|
19563
|
+
"class": "v-data-table-rows-loading",
|
|
19006
19564
|
"key": "loading"
|
|
19007
19565
|
}, [vue.createVNode("td", {
|
|
19008
19566
|
"colspan": columns.value.length
|
|
19009
19567
|
}, [slots.loading()])]);
|
|
19010
19568
|
}
|
|
19011
|
-
if (!props.loading && !props.items.length && !props.hideNoData
|
|
19569
|
+
if (!props.loading && !props.items.length && !props.hideNoData) {
|
|
19012
19570
|
return vue.createVNode("tr", {
|
|
19013
19571
|
"class": "v-data-table-rows-no-data",
|
|
19014
19572
|
"key": "no-data"
|
|
@@ -19487,7 +20045,7 @@
|
|
|
19487
20045
|
top: slots.top,
|
|
19488
20046
|
default: slots.default ?? (() => vue.createVNode(vue.Fragment, null, [slots.colgroup?.({
|
|
19489
20047
|
columns
|
|
19490
|
-
}), vue.createVNode("thead", null, [
|
|
20048
|
+
}), vue.createVNode("thead", null, [vue.createVNode(VDataTableHeaders, {
|
|
19491
20049
|
"sticky": props.fixedHeader,
|
|
19492
20050
|
"multiSort": props.multiSort
|
|
19493
20051
|
}, slots)]), slots.thead?.(), vue.createVNode("tbody", null, [slots.body ? slots.body() : vue.createVNode(VDataTableRows, {
|
|
@@ -19516,8 +20074,8 @@
|
|
|
19516
20074
|
default: 52
|
|
19517
20075
|
}
|
|
19518
20076
|
}, 'virtual');
|
|
19519
|
-
const UP
|
|
19520
|
-
const DOWN
|
|
20077
|
+
const UP = -1;
|
|
20078
|
+
const DOWN = 1;
|
|
19521
20079
|
|
|
19522
20080
|
// TODO: Replace this with composable from v-virtual-scroll
|
|
19523
20081
|
function useVirtual(props, items) {
|
|
@@ -19555,12 +20113,12 @@
|
|
|
19555
20113
|
isScrolling.value = false;
|
|
19556
20114
|
}, 100);
|
|
19557
20115
|
const scrollTop = containerRef.value.scrollTop;
|
|
19558
|
-
const direction = scrollTop < lastScrollTop ? UP
|
|
20116
|
+
const direction = scrollTop < lastScrollTop ? UP : DOWN;
|
|
19559
20117
|
const midPointIndex = calculateMidPointIndex(scrollTop);
|
|
19560
20118
|
const buffer = Math.round(visibleItems.value / 3);
|
|
19561
|
-
if (direction === UP
|
|
20119
|
+
if (direction === UP && midPointIndex <= startIndex.value) {
|
|
19562
20120
|
startIndex.value = Math.max(midPointIndex - buffer, 0);
|
|
19563
|
-
} else if (direction === DOWN
|
|
20121
|
+
} else if (direction === DOWN && midPointIndex >= startIndex.value + buffer * 2) {
|
|
19564
20122
|
startIndex.value = Math.min(Math.max(0, midPointIndex - buffer), items.value.length - visibleItems.value);
|
|
19565
20123
|
}
|
|
19566
20124
|
lastScrollTop = containerRef.value.scrollTop;
|
|
@@ -19853,7 +20411,7 @@
|
|
|
19853
20411
|
}), vue.createVNode("thead", {
|
|
19854
20412
|
"class": "v-data-table__thead",
|
|
19855
20413
|
"role": "rowgroup"
|
|
19856
|
-
}, [
|
|
20414
|
+
}, [vue.createVNode(VDataTableHeaders, {
|
|
19857
20415
|
"sticky": props.fixedHeader,
|
|
19858
20416
|
"loading": props.loading,
|
|
19859
20417
|
"color": props.color
|
|
@@ -19873,6 +20431,211 @@
|
|
|
19873
20431
|
|
|
19874
20432
|
// Types
|
|
19875
20433
|
|
|
20434
|
+
const VInfiniteScrollIntersect = defineComponent({
|
|
20435
|
+
name: 'VInfiniteScrollIntersect',
|
|
20436
|
+
props: {
|
|
20437
|
+
side: {
|
|
20438
|
+
type: String,
|
|
20439
|
+
required: true
|
|
20440
|
+
},
|
|
20441
|
+
rootRef: null,
|
|
20442
|
+
rootMargin: String
|
|
20443
|
+
},
|
|
20444
|
+
emits: {
|
|
20445
|
+
intersect: side => true
|
|
20446
|
+
},
|
|
20447
|
+
setup(props, _ref) {
|
|
20448
|
+
let {
|
|
20449
|
+
emit
|
|
20450
|
+
} = _ref;
|
|
20451
|
+
const {
|
|
20452
|
+
intersectionRef,
|
|
20453
|
+
isIntersecting
|
|
20454
|
+
} = useIntersectionObserver(entries => {}, props.rootMargin ? {
|
|
20455
|
+
root: props.rootRef,
|
|
20456
|
+
rootMargin: props.rootMargin
|
|
20457
|
+
} : undefined);
|
|
20458
|
+
vue.watch(isIntersecting, async val => {
|
|
20459
|
+
if (val) emit('intersect', props.side);
|
|
20460
|
+
});
|
|
20461
|
+
useRender(() => vue.createVNode("div", {
|
|
20462
|
+
"class": "v-infinite-scroll-intersect",
|
|
20463
|
+
"ref": intersectionRef
|
|
20464
|
+
}, [vue.createTextVNode("\xA0")]));
|
|
20465
|
+
return {};
|
|
20466
|
+
}
|
|
20467
|
+
});
|
|
20468
|
+
const VInfiniteScroll = genericComponent()({
|
|
20469
|
+
name: 'VInfiniteScroll',
|
|
20470
|
+
props: {
|
|
20471
|
+
color: String,
|
|
20472
|
+
direction: {
|
|
20473
|
+
type: String,
|
|
20474
|
+
default: 'vertical',
|
|
20475
|
+
validator: v => ['vertical', 'horizontal'].includes(v)
|
|
20476
|
+
},
|
|
20477
|
+
side: {
|
|
20478
|
+
type: String,
|
|
20479
|
+
default: 'end',
|
|
20480
|
+
validator: v => ['start', 'end', 'both'].includes(v)
|
|
20481
|
+
},
|
|
20482
|
+
mode: {
|
|
20483
|
+
type: String,
|
|
20484
|
+
default: 'intersect',
|
|
20485
|
+
validator: v => ['intersect', 'manual'].includes(v)
|
|
20486
|
+
},
|
|
20487
|
+
margin: [Number, String],
|
|
20488
|
+
loadMoreText: {
|
|
20489
|
+
type: String,
|
|
20490
|
+
default: '$vuetify.infiniteScroll.loadMore'
|
|
20491
|
+
},
|
|
20492
|
+
emptyText: {
|
|
20493
|
+
type: String,
|
|
20494
|
+
default: '$vuetify.infiniteScroll.empty'
|
|
20495
|
+
},
|
|
20496
|
+
...makeDimensionProps()
|
|
20497
|
+
},
|
|
20498
|
+
emits: {
|
|
20499
|
+
load: options => true
|
|
20500
|
+
},
|
|
20501
|
+
setup(props, _ref2) {
|
|
20502
|
+
let {
|
|
20503
|
+
slots,
|
|
20504
|
+
emit
|
|
20505
|
+
} = _ref2;
|
|
20506
|
+
const rootEl = vue.ref();
|
|
20507
|
+
const startStatus = vue.ref('ok');
|
|
20508
|
+
const endStatus = vue.ref('ok');
|
|
20509
|
+
const margin = vue.computed(() => convertToUnit(props.margin));
|
|
20510
|
+
function setScrollAmount(amount) {
|
|
20511
|
+
if (!rootEl.value) return;
|
|
20512
|
+
const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';
|
|
20513
|
+
rootEl.value[property] = amount;
|
|
20514
|
+
}
|
|
20515
|
+
function getScrollAmount() {
|
|
20516
|
+
if (!rootEl.value) return 0;
|
|
20517
|
+
const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';
|
|
20518
|
+
return rootEl.value[property];
|
|
20519
|
+
}
|
|
20520
|
+
function getScrollSize() {
|
|
20521
|
+
if (!rootEl.value) return 0;
|
|
20522
|
+
const property = props.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth';
|
|
20523
|
+
return rootEl.value[property];
|
|
20524
|
+
}
|
|
20525
|
+
function getContainerSize() {
|
|
20526
|
+
if (!rootEl.value) return 0;
|
|
20527
|
+
const property = props.direction === 'vertical' ? 'clientHeight' : 'clientWidth';
|
|
20528
|
+
return rootEl.value[property];
|
|
20529
|
+
}
|
|
20530
|
+
vue.onMounted(() => {
|
|
20531
|
+
if (!rootEl.value) return;
|
|
20532
|
+
if (props.side === 'start') {
|
|
20533
|
+
setScrollAmount(getScrollSize());
|
|
20534
|
+
} else if (props.side === 'both') {
|
|
20535
|
+
setScrollAmount(getScrollSize() / 2 - getContainerSize() / 2);
|
|
20536
|
+
}
|
|
20537
|
+
});
|
|
20538
|
+
function setStatus(side, status) {
|
|
20539
|
+
if (side === 'start') {
|
|
20540
|
+
startStatus.value = status;
|
|
20541
|
+
} else if (side === 'end') {
|
|
20542
|
+
endStatus.value = status;
|
|
20543
|
+
}
|
|
20544
|
+
}
|
|
20545
|
+
function getStatus(side) {
|
|
20546
|
+
return side === 'start' ? startStatus.value : endStatus.value;
|
|
20547
|
+
}
|
|
20548
|
+
let previousScrollSize = 0;
|
|
20549
|
+
function handleIntersect(side) {
|
|
20550
|
+
const status = getStatus(side);
|
|
20551
|
+
if (!rootEl.value || status === 'loading') return;
|
|
20552
|
+
previousScrollSize = getScrollSize();
|
|
20553
|
+
setStatus(side, 'loading');
|
|
20554
|
+
function done(status) {
|
|
20555
|
+
setStatus(side, status);
|
|
20556
|
+
vue.nextTick(() => {
|
|
20557
|
+
if (status === 'ok' && side === 'start') {
|
|
20558
|
+
setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount());
|
|
20559
|
+
}
|
|
20560
|
+
});
|
|
20561
|
+
}
|
|
20562
|
+
emit('load', {
|
|
20563
|
+
side,
|
|
20564
|
+
done
|
|
20565
|
+
});
|
|
20566
|
+
}
|
|
20567
|
+
const {
|
|
20568
|
+
t
|
|
20569
|
+
} = useLocale();
|
|
20570
|
+
function renderSide(side, status) {
|
|
20571
|
+
if (props.side !== side && props.side !== 'both') return;
|
|
20572
|
+
const onClick = () => handleIntersect(side);
|
|
20573
|
+
const slotProps = {
|
|
20574
|
+
side,
|
|
20575
|
+
props: {
|
|
20576
|
+
onClick,
|
|
20577
|
+
color: props.color
|
|
20578
|
+
}
|
|
20579
|
+
};
|
|
20580
|
+
if (status === 'error') return slots.error?.(slotProps);
|
|
20581
|
+
if (status === 'empty') return slots.empty?.(slotProps) ?? vue.createVNode("div", null, [t(props.emptyText)]);
|
|
20582
|
+
if (props.mode === 'manual') {
|
|
20583
|
+
if (status === 'loading') {
|
|
20584
|
+
return slots.loading?.(slotProps) ?? vue.createVNode(VProgressCircular, {
|
|
20585
|
+
"indeterminate": true,
|
|
20586
|
+
"color": props.color
|
|
20587
|
+
}, null);
|
|
20588
|
+
}
|
|
20589
|
+
return slots['load-more']?.(slotProps) ?? vue.createVNode(VBtn, {
|
|
20590
|
+
"variant": "outlined",
|
|
20591
|
+
"color": props.color,
|
|
20592
|
+
"onClick": onClick
|
|
20593
|
+
}, {
|
|
20594
|
+
default: () => [t(props.loadMoreText)]
|
|
20595
|
+
});
|
|
20596
|
+
}
|
|
20597
|
+
return slots.loading?.(slotProps) ?? vue.createVNode(VProgressCircular, {
|
|
20598
|
+
"indeterminate": true,
|
|
20599
|
+
"color": props.color
|
|
20600
|
+
}, null);
|
|
20601
|
+
}
|
|
20602
|
+
const {
|
|
20603
|
+
dimensionStyles
|
|
20604
|
+
} = useDimension(props);
|
|
20605
|
+
useRender(() => {
|
|
20606
|
+
const hasStartIntersect = props.side === 'start' || props.side === 'both';
|
|
20607
|
+
const hasEndIntersect = props.side === 'end' || props.side === 'both';
|
|
20608
|
+
const intersectMode = props.mode === 'intersect';
|
|
20609
|
+
return vue.createVNode("div", {
|
|
20610
|
+
"ref": rootEl,
|
|
20611
|
+
"class": ['v-infinite-scroll', `v-infinite-scroll--${props.direction}`, {
|
|
20612
|
+
'v-infinite-scroll--start': hasStartIntersect,
|
|
20613
|
+
'v-infinite-scroll--end': hasEndIntersect
|
|
20614
|
+
}],
|
|
20615
|
+
"style": dimensionStyles.value
|
|
20616
|
+
}, [vue.createVNode("div", {
|
|
20617
|
+
"class": "v-infinite-scroll__side"
|
|
20618
|
+
}, [renderSide('start', startStatus.value)]), rootEl.value && hasStartIntersect && intersectMode && vue.createVNode(VInfiniteScrollIntersect, {
|
|
20619
|
+
"key": "start",
|
|
20620
|
+
"side": "start",
|
|
20621
|
+
"onIntersect": handleIntersect,
|
|
20622
|
+
"rootRef": rootEl.value,
|
|
20623
|
+
"rootMargin": margin.value
|
|
20624
|
+
}, null), slots.default?.(), rootEl.value && hasEndIntersect && intersectMode && vue.createVNode(VInfiniteScrollIntersect, {
|
|
20625
|
+
"key": "end",
|
|
20626
|
+
"side": "end",
|
|
20627
|
+
"onIntersect": handleIntersect,
|
|
20628
|
+
"rootRef": rootEl.value,
|
|
20629
|
+
"rootMargin": margin.value
|
|
20630
|
+
}, null), vue.createVNode("div", {
|
|
20631
|
+
"class": "v-infinite-scroll__side"
|
|
20632
|
+
}, [renderSide('end', endStatus.value)])]);
|
|
20633
|
+
});
|
|
20634
|
+
}
|
|
20635
|
+
});
|
|
20636
|
+
|
|
20637
|
+
// Types
|
|
20638
|
+
|
|
19876
20639
|
const rootTypes = {
|
|
19877
20640
|
actions: 'button@2',
|
|
19878
20641
|
article: 'heading, paragraph',
|
|
@@ -20003,177 +20766,6 @@
|
|
|
20003
20766
|
}
|
|
20004
20767
|
});
|
|
20005
20768
|
|
|
20006
|
-
const VVirtualScrollItem = genericComponent()({
|
|
20007
|
-
name: 'VVirtualScrollItem',
|
|
20008
|
-
props: {
|
|
20009
|
-
dynamicHeight: Boolean
|
|
20010
|
-
},
|
|
20011
|
-
emits: {
|
|
20012
|
-
'update:height': height => true
|
|
20013
|
-
},
|
|
20014
|
-
setup(props, _ref) {
|
|
20015
|
-
let {
|
|
20016
|
-
emit,
|
|
20017
|
-
slots
|
|
20018
|
-
} = _ref;
|
|
20019
|
-
const {
|
|
20020
|
-
resizeRef,
|
|
20021
|
-
contentRect
|
|
20022
|
-
} = useResizeObserver();
|
|
20023
|
-
useToggleScope(() => props.dynamicHeight, () => {
|
|
20024
|
-
vue.watch(() => contentRect.value?.height, height => {
|
|
20025
|
-
if (height != null) emit('update:height', height);
|
|
20026
|
-
});
|
|
20027
|
-
});
|
|
20028
|
-
function updateHeight() {
|
|
20029
|
-
if (props.dynamicHeight && contentRect.value) {
|
|
20030
|
-
emit('update:height', contentRect.value.height);
|
|
20031
|
-
}
|
|
20032
|
-
}
|
|
20033
|
-
vue.onUpdated(updateHeight);
|
|
20034
|
-
useRender(() => vue.createVNode("div", {
|
|
20035
|
-
"ref": props.dynamicHeight ? resizeRef : undefined,
|
|
20036
|
-
"class": "v-virtual-scroll__item"
|
|
20037
|
-
}, [slots.default?.()]));
|
|
20038
|
-
}
|
|
20039
|
-
});
|
|
20040
|
-
|
|
20041
|
-
// Types
|
|
20042
|
-
|
|
20043
|
-
const UP = -1;
|
|
20044
|
-
const DOWN = 1;
|
|
20045
|
-
const VVirtualScroll = genericComponent()({
|
|
20046
|
-
name: 'VVirtualScroll',
|
|
20047
|
-
props: {
|
|
20048
|
-
items: {
|
|
20049
|
-
type: Array,
|
|
20050
|
-
default: () => []
|
|
20051
|
-
},
|
|
20052
|
-
itemHeight: [Number, String],
|
|
20053
|
-
visibleItems: [Number, String],
|
|
20054
|
-
...makeDimensionProps()
|
|
20055
|
-
},
|
|
20056
|
-
setup(props, _ref) {
|
|
20057
|
-
let {
|
|
20058
|
-
slots
|
|
20059
|
-
} = _ref;
|
|
20060
|
-
const first = vue.ref(0);
|
|
20061
|
-
const baseItemHeight = vue.ref(props.itemHeight);
|
|
20062
|
-
const itemHeight = vue.computed({
|
|
20063
|
-
get: () => parseInt(baseItemHeight.value ?? 0, 10),
|
|
20064
|
-
set(val) {
|
|
20065
|
-
baseItemHeight.value = val;
|
|
20066
|
-
}
|
|
20067
|
-
});
|
|
20068
|
-
const rootEl = vue.ref();
|
|
20069
|
-
const {
|
|
20070
|
-
resizeRef,
|
|
20071
|
-
contentRect
|
|
20072
|
-
} = useResizeObserver();
|
|
20073
|
-
vue.watchEffect(() => {
|
|
20074
|
-
resizeRef.value = rootEl.value;
|
|
20075
|
-
});
|
|
20076
|
-
const display = useDisplay();
|
|
20077
|
-
const sizeMap = new Map();
|
|
20078
|
-
let sizes = createRange(props.items.length).map(() => itemHeight.value);
|
|
20079
|
-
const visibleItems = vue.computed(() => {
|
|
20080
|
-
return props.visibleItems ? parseInt(props.visibleItems, 10) : Math.max(12, Math.ceil((contentRect.value?.height ?? display.height.value) / itemHeight.value * 1.7 + 1));
|
|
20081
|
-
});
|
|
20082
|
-
function handleItemResize(index, height) {
|
|
20083
|
-
itemHeight.value = Math.max(itemHeight.value, height);
|
|
20084
|
-
sizes[index] = height;
|
|
20085
|
-
sizeMap.set(props.items[index], height);
|
|
20086
|
-
}
|
|
20087
|
-
function calculateOffset(index) {
|
|
20088
|
-
return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0);
|
|
20089
|
-
}
|
|
20090
|
-
function calculateMidPointIndex(scrollTop) {
|
|
20091
|
-
let start = 0;
|
|
20092
|
-
let end = props.items.length;
|
|
20093
|
-
while (start <= end) {
|
|
20094
|
-
const middle = start + Math.floor((end - start) / 2);
|
|
20095
|
-
const middleOffset = calculateOffset(middle);
|
|
20096
|
-
if (middleOffset === scrollTop) {
|
|
20097
|
-
return middle;
|
|
20098
|
-
} else if (middleOffset < scrollTop) {
|
|
20099
|
-
start = middle + 1;
|
|
20100
|
-
} else if (middleOffset > scrollTop) {
|
|
20101
|
-
end = middle - 1;
|
|
20102
|
-
}
|
|
20103
|
-
}
|
|
20104
|
-
return start;
|
|
20105
|
-
}
|
|
20106
|
-
let lastScrollTop = 0;
|
|
20107
|
-
function handleScroll() {
|
|
20108
|
-
if (!rootEl.value || !contentRect.value) return;
|
|
20109
|
-
const height = contentRect.value.height;
|
|
20110
|
-
const scrollTop = rootEl.value.scrollTop;
|
|
20111
|
-
const direction = scrollTop < lastScrollTop ? UP : DOWN;
|
|
20112
|
-
const midPointIndex = calculateMidPointIndex(scrollTop + height / 2);
|
|
20113
|
-
const buffer = Math.round(visibleItems.value / 3);
|
|
20114
|
-
if (direction === UP && midPointIndex <= first.value + buffer * 2 - 1) {
|
|
20115
|
-
first.value = clamp(midPointIndex - buffer, 0, props.items.length);
|
|
20116
|
-
} else if (direction === DOWN && midPointIndex >= first.value + buffer * 2 - 1) {
|
|
20117
|
-
first.value = clamp(midPointIndex - buffer, 0, props.items.length - visibleItems.value);
|
|
20118
|
-
}
|
|
20119
|
-
lastScrollTop = rootEl.value.scrollTop;
|
|
20120
|
-
}
|
|
20121
|
-
function scrollToIndex(index) {
|
|
20122
|
-
if (!rootEl.value) return;
|
|
20123
|
-
const offset = calculateOffset(index);
|
|
20124
|
-
rootEl.value.scrollTop = offset;
|
|
20125
|
-
}
|
|
20126
|
-
const last = vue.computed(() => Math.min(props.items.length, first.value + visibleItems.value));
|
|
20127
|
-
const computedItems = vue.computed(() => props.items.slice(first.value, last.value));
|
|
20128
|
-
const paddingTop = vue.computed(() => calculateOffset(first.value));
|
|
20129
|
-
const paddingBottom = vue.computed(() => calculateOffset(props.items.length) - calculateOffset(last.value));
|
|
20130
|
-
const {
|
|
20131
|
-
dimensionStyles
|
|
20132
|
-
} = useDimension(props);
|
|
20133
|
-
vue.onMounted(() => {
|
|
20134
|
-
if (!itemHeight.value) {
|
|
20135
|
-
// If itemHeight prop is not set, then calculate an estimated height from the average of inital items
|
|
20136
|
-
itemHeight.value = sizes.slice(first.value, last.value).reduce((curr, height) => curr + height, 0) / visibleItems.value;
|
|
20137
|
-
}
|
|
20138
|
-
});
|
|
20139
|
-
vue.watch(() => props.items.length, () => {
|
|
20140
|
-
sizes = createRange(props.items.length).map(() => itemHeight.value);
|
|
20141
|
-
sizeMap.forEach((height, item) => {
|
|
20142
|
-
const index = props.items.indexOf(item);
|
|
20143
|
-
if (index === -1) {
|
|
20144
|
-
sizeMap.delete(item);
|
|
20145
|
-
} else {
|
|
20146
|
-
sizes[index] = height;
|
|
20147
|
-
}
|
|
20148
|
-
});
|
|
20149
|
-
});
|
|
20150
|
-
useRender(() => vue.createVNode("div", {
|
|
20151
|
-
"ref": rootEl,
|
|
20152
|
-
"class": "v-virtual-scroll",
|
|
20153
|
-
"onScroll": handleScroll,
|
|
20154
|
-
"style": dimensionStyles.value
|
|
20155
|
-
}, [vue.createVNode("div", {
|
|
20156
|
-
"class": "v-virtual-scroll__container",
|
|
20157
|
-
"style": {
|
|
20158
|
-
paddingTop: convertToUnit(paddingTop.value),
|
|
20159
|
-
paddingBottom: convertToUnit(paddingBottom.value)
|
|
20160
|
-
}
|
|
20161
|
-
}, [computedItems.value.map((item, index) => vue.createVNode(VVirtualScrollItem, {
|
|
20162
|
-
"key": index,
|
|
20163
|
-
"dynamicHeight": !props.itemHeight,
|
|
20164
|
-
"onUpdate:height": height => handleItemResize(index + first.value, height)
|
|
20165
|
-
}, {
|
|
20166
|
-
default: () => [slots.default?.({
|
|
20167
|
-
item,
|
|
20168
|
-
index: index + first.value
|
|
20169
|
-
})]
|
|
20170
|
-
}))])]));
|
|
20171
|
-
return {
|
|
20172
|
-
scrollToIndex
|
|
20173
|
-
};
|
|
20174
|
-
}
|
|
20175
|
-
});
|
|
20176
|
-
|
|
20177
20769
|
var components = /*#__PURE__*/Object.freeze({
|
|
20178
20770
|
__proto__: null,
|
|
20179
20771
|
VAlert: VAlert,
|
|
@@ -20243,6 +20835,7 @@
|
|
|
20243
20835
|
VHover: VHover,
|
|
20244
20836
|
VIcon: VIcon,
|
|
20245
20837
|
VImg: VImg,
|
|
20838
|
+
VInfiniteScroll: VInfiniteScroll,
|
|
20246
20839
|
VInput: VInput,
|
|
20247
20840
|
VItem: VItem,
|
|
20248
20841
|
VItemGroup: VItemGroup,
|
|
@@ -20445,6 +21038,418 @@
|
|
|
20445
21038
|
Touch: Touch
|
|
20446
21039
|
});
|
|
20447
21040
|
|
|
21041
|
+
// Utilities
|
|
21042
|
+
|
|
21043
|
+
// Types
|
|
21044
|
+
|
|
21045
|
+
function getWeekArray(date) {
|
|
21046
|
+
let currentWeek = [];
|
|
21047
|
+
const weeks = [];
|
|
21048
|
+
const firstDayOfMonth = startOfMonth(date);
|
|
21049
|
+
const lastDayOfMonth = endOfMonth(date);
|
|
21050
|
+
for (let i = 0; i < firstDayOfMonth.getDay(); i++) {
|
|
21051
|
+
currentWeek.push(null);
|
|
21052
|
+
}
|
|
21053
|
+
for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {
|
|
21054
|
+
const day = new Date(date.getFullYear(), date.getMonth(), i);
|
|
21055
|
+
|
|
21056
|
+
// Add the day to the current week
|
|
21057
|
+
currentWeek.push(day);
|
|
21058
|
+
|
|
21059
|
+
// If the current week has 7 days, add it to the weeks array and start a new week
|
|
21060
|
+
if (currentWeek.length === 7) {
|
|
21061
|
+
weeks.push(currentWeek);
|
|
21062
|
+
currentWeek = [];
|
|
21063
|
+
}
|
|
21064
|
+
}
|
|
21065
|
+
for (let i = currentWeek.length; i < 7; i++) {
|
|
21066
|
+
currentWeek.push(null);
|
|
21067
|
+
}
|
|
21068
|
+
weeks.push(currentWeek);
|
|
21069
|
+
return weeks;
|
|
21070
|
+
}
|
|
21071
|
+
function startOfMonth(date) {
|
|
21072
|
+
return new Date(date.getFullYear(), date.getMonth(), 1);
|
|
21073
|
+
}
|
|
21074
|
+
function endOfMonth(date) {
|
|
21075
|
+
return new Date(date.getFullYear(), date.getMonth() + 1, 0);
|
|
21076
|
+
}
|
|
21077
|
+
function date(value) {
|
|
21078
|
+
if (value == null) return null;
|
|
21079
|
+
if (value instanceof Date) return value;
|
|
21080
|
+
if (typeof value === 'string') {
|
|
21081
|
+
const parsed = Date.parse(value);
|
|
21082
|
+
if (!isNaN(parsed)) return new Date(parsed);
|
|
21083
|
+
}
|
|
21084
|
+
return null;
|
|
21085
|
+
}
|
|
21086
|
+
const firstDay = {
|
|
21087
|
+
'001': 1,
|
|
21088
|
+
AD: 1,
|
|
21089
|
+
AE: 6,
|
|
21090
|
+
AF: 6,
|
|
21091
|
+
AG: 0,
|
|
21092
|
+
AI: 1,
|
|
21093
|
+
AL: 1,
|
|
21094
|
+
AM: 1,
|
|
21095
|
+
AN: 1,
|
|
21096
|
+
AR: 1,
|
|
21097
|
+
AS: 0,
|
|
21098
|
+
AT: 1,
|
|
21099
|
+
AU: 0,
|
|
21100
|
+
AX: 1,
|
|
21101
|
+
AZ: 1,
|
|
21102
|
+
BA: 1,
|
|
21103
|
+
BD: 0,
|
|
21104
|
+
BE: 1,
|
|
21105
|
+
BG: 1,
|
|
21106
|
+
BH: 6,
|
|
21107
|
+
BM: 1,
|
|
21108
|
+
BN: 1,
|
|
21109
|
+
BR: 0,
|
|
21110
|
+
BS: 0,
|
|
21111
|
+
BT: 0,
|
|
21112
|
+
BW: 0,
|
|
21113
|
+
BY: 1,
|
|
21114
|
+
BZ: 0,
|
|
21115
|
+
CA: 0,
|
|
21116
|
+
CH: 1,
|
|
21117
|
+
CL: 1,
|
|
21118
|
+
CM: 1,
|
|
21119
|
+
CN: 0,
|
|
21120
|
+
CO: 0,
|
|
21121
|
+
CR: 1,
|
|
21122
|
+
CY: 1,
|
|
21123
|
+
CZ: 1,
|
|
21124
|
+
DE: 1,
|
|
21125
|
+
DJ: 6,
|
|
21126
|
+
DK: 1,
|
|
21127
|
+
DM: 0,
|
|
21128
|
+
DO: 0,
|
|
21129
|
+
DZ: 6,
|
|
21130
|
+
EC: 1,
|
|
21131
|
+
EE: 1,
|
|
21132
|
+
EG: 6,
|
|
21133
|
+
ES: 1,
|
|
21134
|
+
ET: 0,
|
|
21135
|
+
FI: 1,
|
|
21136
|
+
FJ: 1,
|
|
21137
|
+
FO: 1,
|
|
21138
|
+
FR: 1,
|
|
21139
|
+
GB: 1,
|
|
21140
|
+
'GB-alt-variant': 0,
|
|
21141
|
+
GE: 1,
|
|
21142
|
+
GF: 1,
|
|
21143
|
+
GP: 1,
|
|
21144
|
+
GR: 1,
|
|
21145
|
+
GT: 0,
|
|
21146
|
+
GU: 0,
|
|
21147
|
+
HK: 0,
|
|
21148
|
+
HN: 0,
|
|
21149
|
+
HR: 1,
|
|
21150
|
+
HU: 1,
|
|
21151
|
+
ID: 0,
|
|
21152
|
+
IE: 1,
|
|
21153
|
+
IL: 0,
|
|
21154
|
+
IN: 0,
|
|
21155
|
+
IQ: 6,
|
|
21156
|
+
IR: 6,
|
|
21157
|
+
IS: 1,
|
|
21158
|
+
IT: 1,
|
|
21159
|
+
JM: 0,
|
|
21160
|
+
JO: 6,
|
|
21161
|
+
JP: 0,
|
|
21162
|
+
KE: 0,
|
|
21163
|
+
KG: 1,
|
|
21164
|
+
KH: 0,
|
|
21165
|
+
KR: 0,
|
|
21166
|
+
KW: 6,
|
|
21167
|
+
KZ: 1,
|
|
21168
|
+
LA: 0,
|
|
21169
|
+
LB: 1,
|
|
21170
|
+
LI: 1,
|
|
21171
|
+
LK: 1,
|
|
21172
|
+
LT: 1,
|
|
21173
|
+
LU: 1,
|
|
21174
|
+
LV: 1,
|
|
21175
|
+
LY: 6,
|
|
21176
|
+
MC: 1,
|
|
21177
|
+
MD: 1,
|
|
21178
|
+
ME: 1,
|
|
21179
|
+
MH: 0,
|
|
21180
|
+
MK: 1,
|
|
21181
|
+
MM: 0,
|
|
21182
|
+
MN: 1,
|
|
21183
|
+
MO: 0,
|
|
21184
|
+
MQ: 1,
|
|
21185
|
+
MT: 0,
|
|
21186
|
+
MV: 5,
|
|
21187
|
+
MX: 0,
|
|
21188
|
+
MY: 1,
|
|
21189
|
+
MZ: 0,
|
|
21190
|
+
NI: 0,
|
|
21191
|
+
NL: 1,
|
|
21192
|
+
NO: 1,
|
|
21193
|
+
NP: 0,
|
|
21194
|
+
NZ: 1,
|
|
21195
|
+
OM: 6,
|
|
21196
|
+
PA: 0,
|
|
21197
|
+
PE: 0,
|
|
21198
|
+
PH: 0,
|
|
21199
|
+
PK: 0,
|
|
21200
|
+
PL: 1,
|
|
21201
|
+
PR: 0,
|
|
21202
|
+
PT: 0,
|
|
21203
|
+
PY: 0,
|
|
21204
|
+
QA: 6,
|
|
21205
|
+
RE: 1,
|
|
21206
|
+
RO: 1,
|
|
21207
|
+
RS: 1,
|
|
21208
|
+
RU: 1,
|
|
21209
|
+
SA: 0,
|
|
21210
|
+
SD: 6,
|
|
21211
|
+
SE: 1,
|
|
21212
|
+
SG: 0,
|
|
21213
|
+
SI: 1,
|
|
21214
|
+
SK: 1,
|
|
21215
|
+
SM: 1,
|
|
21216
|
+
SV: 0,
|
|
21217
|
+
SY: 6,
|
|
21218
|
+
TH: 0,
|
|
21219
|
+
TJ: 1,
|
|
21220
|
+
TM: 1,
|
|
21221
|
+
TR: 1,
|
|
21222
|
+
TT: 0,
|
|
21223
|
+
TW: 0,
|
|
21224
|
+
UA: 1,
|
|
21225
|
+
UM: 0,
|
|
21226
|
+
US: 0,
|
|
21227
|
+
UY: 1,
|
|
21228
|
+
UZ: 1,
|
|
21229
|
+
VA: 1,
|
|
21230
|
+
VE: 0,
|
|
21231
|
+
VI: 0,
|
|
21232
|
+
VN: 1,
|
|
21233
|
+
WS: 0,
|
|
21234
|
+
XK: 1,
|
|
21235
|
+
YE: 0,
|
|
21236
|
+
ZA: 0,
|
|
21237
|
+
ZW: 0
|
|
21238
|
+
};
|
|
21239
|
+
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
|
21240
|
+
function getWeekdays(locale) {
|
|
21241
|
+
const daysFromSunday = firstDay[locale.slice(-2).toUpperCase()];
|
|
21242
|
+
return createRange(7).map(i => {
|
|
21243
|
+
const weekday = new Date(sundayJanuarySecond2000);
|
|
21244
|
+
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
|
21245
|
+
return new Intl.DateTimeFormat(locale, {
|
|
21246
|
+
weekday: 'long'
|
|
21247
|
+
}).format(weekday);
|
|
21248
|
+
});
|
|
21249
|
+
}
|
|
21250
|
+
function format(value, formatString, locale) {
|
|
21251
|
+
const date = new Date(value);
|
|
21252
|
+
let options = {};
|
|
21253
|
+
switch (formatString) {
|
|
21254
|
+
case 'fullDateWithWeekday':
|
|
21255
|
+
options = {
|
|
21256
|
+
weekday: 'long',
|
|
21257
|
+
day: 'numeric',
|
|
21258
|
+
month: 'long',
|
|
21259
|
+
year: 'numeric'
|
|
21260
|
+
};
|
|
21261
|
+
break;
|
|
21262
|
+
case 'normalDateWithWeekday':
|
|
21263
|
+
options = {
|
|
21264
|
+
weekday: 'short',
|
|
21265
|
+
day: 'numeric',
|
|
21266
|
+
month: 'short',
|
|
21267
|
+
year: 'numeric'
|
|
21268
|
+
};
|
|
21269
|
+
break;
|
|
21270
|
+
case 'keyboardDate':
|
|
21271
|
+
options = {};
|
|
21272
|
+
break;
|
|
21273
|
+
case 'monthAndDate':
|
|
21274
|
+
options = {
|
|
21275
|
+
month: 'long',
|
|
21276
|
+
day: 'numeric'
|
|
21277
|
+
};
|
|
21278
|
+
break;
|
|
21279
|
+
case 'monthAndYear':
|
|
21280
|
+
options = {
|
|
21281
|
+
month: 'long',
|
|
21282
|
+
year: 'numeric'
|
|
21283
|
+
};
|
|
21284
|
+
break;
|
|
21285
|
+
default:
|
|
21286
|
+
options = {
|
|
21287
|
+
timeZone: 'UTC',
|
|
21288
|
+
timeZoneName: 'short'
|
|
21289
|
+
};
|
|
21290
|
+
}
|
|
21291
|
+
return new Intl.DateTimeFormat(locale, options).format(date);
|
|
21292
|
+
}
|
|
21293
|
+
function addDays(date, amount) {
|
|
21294
|
+
const d = new Date(date);
|
|
21295
|
+
d.setDate(d.getDate() + amount);
|
|
21296
|
+
return d;
|
|
21297
|
+
}
|
|
21298
|
+
function addMonths(date, amount) {
|
|
21299
|
+
const d = new Date(date);
|
|
21300
|
+
d.setMonth(d.getMonth() + amount);
|
|
21301
|
+
return d;
|
|
21302
|
+
}
|
|
21303
|
+
function getYear(date) {
|
|
21304
|
+
return date.getFullYear();
|
|
21305
|
+
}
|
|
21306
|
+
function getMonth(date) {
|
|
21307
|
+
return date.getMonth();
|
|
21308
|
+
}
|
|
21309
|
+
function startOfYear(date) {
|
|
21310
|
+
return new Date(date.getFullYear(), 0, 1);
|
|
21311
|
+
}
|
|
21312
|
+
function endOfYear(date) {
|
|
21313
|
+
return new Date(date.getFullYear(), 11, 31);
|
|
21314
|
+
}
|
|
21315
|
+
function getMondayOfFirstWeekOfYear(year) {
|
|
21316
|
+
return new Date(year, 0, 1);
|
|
21317
|
+
}
|
|
21318
|
+
|
|
21319
|
+
// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
|
|
21320
|
+
function getWeek(date) {
|
|
21321
|
+
let year = date.getFullYear();
|
|
21322
|
+
let d1w1 = getMondayOfFirstWeekOfYear(year);
|
|
21323
|
+
if (date < d1w1) {
|
|
21324
|
+
year = year - 1;
|
|
21325
|
+
d1w1 = getMondayOfFirstWeekOfYear(year);
|
|
21326
|
+
} else {
|
|
21327
|
+
const tv = getMondayOfFirstWeekOfYear(year + 1);
|
|
21328
|
+
if (date >= tv) {
|
|
21329
|
+
year = year + 1;
|
|
21330
|
+
d1w1 = tv;
|
|
21331
|
+
}
|
|
21332
|
+
}
|
|
21333
|
+
const diffTime = Math.abs(date.getTime() - d1w1.getTime());
|
|
21334
|
+
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
|
21335
|
+
return Math.floor(diffDays / 7) + 1;
|
|
21336
|
+
}
|
|
21337
|
+
function isWithinRange(date, range) {
|
|
21338
|
+
return isAfter(date, range[0]) && isBefore(date, range[1]);
|
|
21339
|
+
}
|
|
21340
|
+
function isValid(date) {
|
|
21341
|
+
const d = new Date(date);
|
|
21342
|
+
return d instanceof Date && !isNaN(d.getTime());
|
|
21343
|
+
}
|
|
21344
|
+
function isAfter(date, comparing) {
|
|
21345
|
+
return date.getTime() > comparing.getTime();
|
|
21346
|
+
}
|
|
21347
|
+
function isBefore(date, comparing) {
|
|
21348
|
+
return date.getTime() < comparing.getTime();
|
|
21349
|
+
}
|
|
21350
|
+
function isEqual(date, comparing) {
|
|
21351
|
+
return date.getTime() === comparing.getTime();
|
|
21352
|
+
}
|
|
21353
|
+
function isSameDay(date, comparing) {
|
|
21354
|
+
return date.getDate() === comparing.getDate() && date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
|
21355
|
+
}
|
|
21356
|
+
function isSameMonth(date, comparing) {
|
|
21357
|
+
return date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
|
21358
|
+
}
|
|
21359
|
+
function getDiff(date, comparing, unit) {
|
|
21360
|
+
const d = new Date(date);
|
|
21361
|
+
const c = new Date(comparing);
|
|
21362
|
+
if (unit === 'month') {
|
|
21363
|
+
return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12;
|
|
21364
|
+
}
|
|
21365
|
+
return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24));
|
|
21366
|
+
}
|
|
21367
|
+
function setYear(date, year) {
|
|
21368
|
+
const d = new Date(date);
|
|
21369
|
+
d.setFullYear(year);
|
|
21370
|
+
return d;
|
|
21371
|
+
}
|
|
21372
|
+
class VuetifyDateAdapter {
|
|
21373
|
+
constructor() {
|
|
21374
|
+
let locale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'en';
|
|
21375
|
+
this.locale = locale;
|
|
21376
|
+
}
|
|
21377
|
+
date(value) {
|
|
21378
|
+
return date(value);
|
|
21379
|
+
}
|
|
21380
|
+
addDays(date, amount) {
|
|
21381
|
+
return addDays(date, amount);
|
|
21382
|
+
}
|
|
21383
|
+
addMonths(date, amount) {
|
|
21384
|
+
return addMonths(date, amount);
|
|
21385
|
+
}
|
|
21386
|
+
getWeekArray(date) {
|
|
21387
|
+
return getWeekArray(date);
|
|
21388
|
+
}
|
|
21389
|
+
startOfMonth(date) {
|
|
21390
|
+
return startOfMonth(date);
|
|
21391
|
+
}
|
|
21392
|
+
endOfMonth(date) {
|
|
21393
|
+
return endOfMonth(date);
|
|
21394
|
+
}
|
|
21395
|
+
format(date, formatString) {
|
|
21396
|
+
return format(date, formatString, this.locale);
|
|
21397
|
+
}
|
|
21398
|
+
isEqual(date, comparing) {
|
|
21399
|
+
return isEqual(date, comparing);
|
|
21400
|
+
}
|
|
21401
|
+
isValid(date) {
|
|
21402
|
+
return isValid(date);
|
|
21403
|
+
}
|
|
21404
|
+
isWithinRange(date, range) {
|
|
21405
|
+
return isWithinRange(date, range);
|
|
21406
|
+
}
|
|
21407
|
+
isAfter(date, comparing) {
|
|
21408
|
+
return isAfter(date, comparing);
|
|
21409
|
+
}
|
|
21410
|
+
isSameDay(date, comparing) {
|
|
21411
|
+
return isSameDay(date, comparing);
|
|
21412
|
+
}
|
|
21413
|
+
isSameMonth(date, comparing) {
|
|
21414
|
+
return isSameMonth(date, comparing);
|
|
21415
|
+
}
|
|
21416
|
+
setYear(date, year) {
|
|
21417
|
+
return setYear(date, year);
|
|
21418
|
+
}
|
|
21419
|
+
getDiff(date, comparing, unit) {
|
|
21420
|
+
return getDiff(date, comparing, unit);
|
|
21421
|
+
}
|
|
21422
|
+
getWeek(date) {
|
|
21423
|
+
return getWeek(date);
|
|
21424
|
+
}
|
|
21425
|
+
getWeekdays() {
|
|
21426
|
+
return getWeekdays(this.locale);
|
|
21427
|
+
}
|
|
21428
|
+
getYear(date) {
|
|
21429
|
+
return getYear(date);
|
|
21430
|
+
}
|
|
21431
|
+
getMonth(date) {
|
|
21432
|
+
return getMonth(date);
|
|
21433
|
+
}
|
|
21434
|
+
startOfYear(date) {
|
|
21435
|
+
return startOfYear(date);
|
|
21436
|
+
}
|
|
21437
|
+
endOfYear(date) {
|
|
21438
|
+
return endOfYear(date);
|
|
21439
|
+
}
|
|
21440
|
+
}
|
|
21441
|
+
|
|
21442
|
+
// Composables
|
|
21443
|
+
|
|
21444
|
+
// Types
|
|
21445
|
+
|
|
21446
|
+
const DateAdapterSymbol = Symbol.for('vuetify:date-adapter');
|
|
21447
|
+
function createDate(options) {
|
|
21448
|
+
return options ?? {
|
|
21449
|
+
adapter: VuetifyDateAdapter
|
|
21450
|
+
};
|
|
21451
|
+
}
|
|
21452
|
+
|
|
20448
21453
|
// Composables
|
|
20449
21454
|
function createVuetify$1() {
|
|
20450
21455
|
let vuetify = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -20463,6 +21468,7 @@
|
|
|
20463
21468
|
const theme = createTheme(options.theme);
|
|
20464
21469
|
const icons = createIcons(options.icons);
|
|
20465
21470
|
const locale = createLocale(options.locale);
|
|
21471
|
+
const date = createDate(options.date);
|
|
20466
21472
|
const install = app => {
|
|
20467
21473
|
for (const key in directives) {
|
|
20468
21474
|
app.directive(key, directives[key]);
|
|
@@ -20483,6 +21489,7 @@
|
|
|
20483
21489
|
app.provide(ThemeSymbol, theme);
|
|
20484
21490
|
app.provide(IconSymbol, icons);
|
|
20485
21491
|
app.provide(LocaleSymbol, locale);
|
|
21492
|
+
app.provide(DateAdapterSymbol, date);
|
|
20486
21493
|
if (IN_BROWSER && options.ssr) {
|
|
20487
21494
|
if (app.$nuxt) {
|
|
20488
21495
|
app.$nuxt.hook('app:suspense:resolve', () => {
|
|
@@ -20510,7 +21517,8 @@
|
|
|
20510
21517
|
display: inject.call(this, DisplaySymbol),
|
|
20511
21518
|
theme: inject.call(this, ThemeSymbol),
|
|
20512
21519
|
icons: inject.call(this, IconSymbol),
|
|
20513
|
-
locale: inject.call(this, LocaleSymbol)
|
|
21520
|
+
locale: inject.call(this, LocaleSymbol),
|
|
21521
|
+
date: inject.call(this, DateAdapterSymbol)
|
|
20514
21522
|
});
|
|
20515
21523
|
}
|
|
20516
21524
|
}
|
|
@@ -20523,10 +21531,11 @@
|
|
|
20523
21531
|
display,
|
|
20524
21532
|
theme,
|
|
20525
21533
|
icons,
|
|
20526
|
-
locale
|
|
21534
|
+
locale,
|
|
21535
|
+
date
|
|
20527
21536
|
};
|
|
20528
21537
|
}
|
|
20529
|
-
const version$1 = "3.
|
|
21538
|
+
const version$1 = "3.2.0";
|
|
20530
21539
|
createVuetify$1.version = version$1;
|
|
20531
21540
|
|
|
20532
21541
|
// Vue's inject() can only be used in setup
|
|
@@ -20538,7 +21547,7 @@
|
|
|
20538
21547
|
}
|
|
20539
21548
|
}
|
|
20540
21549
|
|
|
20541
|
-
const version = "3.
|
|
21550
|
+
const version = "3.2.0";
|
|
20542
21551
|
|
|
20543
21552
|
const createVuetify = function () {
|
|
20544
21553
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -20552,6 +21561,7 @@
|
|
|
20552
21561
|
exports.components = components;
|
|
20553
21562
|
exports.createVuetify = createVuetify;
|
|
20554
21563
|
exports.directives = directives;
|
|
21564
|
+
exports.useDefaults = useDefaults;
|
|
20555
21565
|
exports.useDisplay = useDisplay;
|
|
20556
21566
|
exports.useLayout = useLayout;
|
|
20557
21567
|
exports.useLocale = useLocale;
|