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.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
|
}
|
|
@@ -1091,15 +1110,19 @@
|
|
|
1091
1110
|
tag: {
|
|
1092
1111
|
type: String,
|
|
1093
1112
|
default: tag
|
|
1094
|
-
}
|
|
1113
|
+
},
|
|
1114
|
+
...makeComponentProps()
|
|
1095
1115
|
},
|
|
1096
1116
|
setup(props, _ref) {
|
|
1097
1117
|
let {
|
|
1098
1118
|
slots
|
|
1099
1119
|
} = _ref;
|
|
1100
|
-
return () =>
|
|
1101
|
-
|
|
1102
|
-
|
|
1120
|
+
return () => {
|
|
1121
|
+
return vue.h(props.tag, {
|
|
1122
|
+
class: [klass, props.class],
|
|
1123
|
+
style: props.style
|
|
1124
|
+
}, slots.default?.());
|
|
1125
|
+
};
|
|
1103
1126
|
}
|
|
1104
1127
|
});
|
|
1105
1128
|
}
|
|
@@ -1132,6 +1155,34 @@
|
|
|
1132
1155
|
const deceleratedEasing = 'cubic-bezier(0.0, 0, 0.2, 1)'; // Entering
|
|
1133
1156
|
const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)'; // Leaving
|
|
1134
1157
|
|
|
1158
|
+
// Utilities
|
|
1159
|
+
function getCurrentInstance(name, message) {
|
|
1160
|
+
const vm = vue.getCurrentInstance();
|
|
1161
|
+
if (!vm) {
|
|
1162
|
+
throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);
|
|
1163
|
+
}
|
|
1164
|
+
return vm;
|
|
1165
|
+
}
|
|
1166
|
+
function getCurrentInstanceName() {
|
|
1167
|
+
let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';
|
|
1168
|
+
const vm = getCurrentInstance(name).type;
|
|
1169
|
+
return toKebabCase(vm?.aliasName || vm?.name);
|
|
1170
|
+
}
|
|
1171
|
+
let _uid = 0;
|
|
1172
|
+
let _map = new WeakMap();
|
|
1173
|
+
function getUid() {
|
|
1174
|
+
const vm = getCurrentInstance('getUid');
|
|
1175
|
+
if (_map.has(vm)) return _map.get(vm);else {
|
|
1176
|
+
const uid = _uid++;
|
|
1177
|
+
_map.set(vm, uid);
|
|
1178
|
+
return uid;
|
|
1179
|
+
}
|
|
1180
|
+
}
|
|
1181
|
+
getUid.reset = () => {
|
|
1182
|
+
_uid = 0;
|
|
1183
|
+
_map = new WeakMap();
|
|
1184
|
+
};
|
|
1185
|
+
|
|
1135
1186
|
function getScrollParent(el) {
|
|
1136
1187
|
while (el) {
|
|
1137
1188
|
if (hasScrollbar(el)) return el;
|
|
@@ -1155,6 +1206,16 @@
|
|
|
1155
1206
|
return style.overflowY === 'scroll' || style.overflowY === 'auto' && el.scrollHeight > el.clientHeight;
|
|
1156
1207
|
}
|
|
1157
1208
|
|
|
1209
|
+
function injectSelf(key) {
|
|
1210
|
+
const {
|
|
1211
|
+
provides
|
|
1212
|
+
} = getCurrentInstance('injectSelf');
|
|
1213
|
+
if (provides && key in provides) {
|
|
1214
|
+
// TS doesn't allow symbol as index type
|
|
1215
|
+
return provides[key];
|
|
1216
|
+
}
|
|
1217
|
+
}
|
|
1218
|
+
|
|
1158
1219
|
function isFixedPosition(el) {
|
|
1159
1220
|
while (el) {
|
|
1160
1221
|
if (window.getComputedStyle(el).position === 'fixed') {
|
|
@@ -1935,7 +1996,11 @@
|
|
|
1935
1996
|
item: 'Rating {0} of {1}'
|
|
1936
1997
|
}
|
|
1937
1998
|
},
|
|
1938
|
-
loading: 'Loading...'
|
|
1999
|
+
loading: 'Loading...',
|
|
2000
|
+
infiniteScroll: {
|
|
2001
|
+
loadMore: 'Load more',
|
|
2002
|
+
empty: 'No more'
|
|
2003
|
+
}
|
|
1939
2004
|
};
|
|
1940
2005
|
|
|
1941
2006
|
const LANG_PREFIX = '$vuetify.';
|
|
@@ -2133,6 +2198,7 @@
|
|
|
2133
2198
|
const VApp = genericComponent()({
|
|
2134
2199
|
name: 'VApp',
|
|
2135
2200
|
props: {
|
|
2201
|
+
...makeComponentProps(),
|
|
2136
2202
|
...makeLayoutProps({
|
|
2137
2203
|
fullHeight: true
|
|
2138
2204
|
}),
|
|
@@ -2155,8 +2221,8 @@
|
|
|
2155
2221
|
} = useRtl();
|
|
2156
2222
|
useRender(() => vue.createVNode("div", {
|
|
2157
2223
|
"ref": layoutRef,
|
|
2158
|
-
"class": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value],
|
|
2159
|
-
"style": layoutStyles.value
|
|
2224
|
+
"class": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value, props.class],
|
|
2225
|
+
"style": [layoutStyles.value, props.style]
|
|
2160
2226
|
}, [vue.createVNode("div", {
|
|
2161
2227
|
"class": "v-application__wrap"
|
|
2162
2228
|
}, [slots.default?.()])]));
|
|
@@ -2581,6 +2647,7 @@
|
|
|
2581
2647
|
props: {
|
|
2582
2648
|
aspectRatio: [String, Number],
|
|
2583
2649
|
contentClass: String,
|
|
2650
|
+
...makeComponentProps(),
|
|
2584
2651
|
...makeDimensionProps()
|
|
2585
2652
|
},
|
|
2586
2653
|
setup(props, _ref) {
|
|
@@ -2594,8 +2661,8 @@
|
|
|
2594
2661
|
dimensionStyles
|
|
2595
2662
|
} = useDimension(props);
|
|
2596
2663
|
useRender(() => vue.createVNode("div", {
|
|
2597
|
-
"class":
|
|
2598
|
-
"style": dimensionStyles.value
|
|
2664
|
+
"class": ['v-responsive', props.class],
|
|
2665
|
+
"style": [dimensionStyles.value, props.style]
|
|
2599
2666
|
}, [vue.createVNode("div", {
|
|
2600
2667
|
"class": "v-responsive__sizer",
|
|
2601
2668
|
"style": aspectStyles.value
|
|
@@ -2713,6 +2780,7 @@
|
|
|
2713
2780
|
},
|
|
2714
2781
|
srcset: String,
|
|
2715
2782
|
width: [String, Number],
|
|
2783
|
+
...makeComponentProps(),
|
|
2716
2784
|
...makeTransitionProps()
|
|
2717
2785
|
},
|
|
2718
2786
|
emits: {
|
|
@@ -2900,10 +2968,10 @@
|
|
|
2900
2968
|
useRender(() => vue.withDirectives(vue.createVNode(VResponsive, {
|
|
2901
2969
|
"class": ['v-img', {
|
|
2902
2970
|
'v-img--booting': !isBooted.value
|
|
2903
|
-
}],
|
|
2904
|
-
"style": {
|
|
2971
|
+
}, props.class],
|
|
2972
|
+
"style": [{
|
|
2905
2973
|
width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width)
|
|
2906
|
-
},
|
|
2974
|
+
}, props.style],
|
|
2907
2975
|
"aspectRatio": aspectRatio.value,
|
|
2908
2976
|
"aria-label": props.alt,
|
|
2909
2977
|
"role": props.alt ? 'img' : undefined
|
|
@@ -2938,10 +3006,9 @@
|
|
|
2938
3006
|
}
|
|
2939
3007
|
}, 'tag');
|
|
2940
3008
|
|
|
2941
|
-
// Types
|
|
2942
|
-
|
|
2943
3009
|
const makeVToolbarTitleProps = propsFactory({
|
|
2944
3010
|
text: String,
|
|
3011
|
+
...makeComponentProps(),
|
|
2945
3012
|
...makeTagProps()
|
|
2946
3013
|
}, 'v-toolbar-title');
|
|
2947
3014
|
const VToolbarTitle = genericComponent()({
|
|
@@ -2954,7 +3021,8 @@
|
|
|
2954
3021
|
useRender(() => {
|
|
2955
3022
|
const hasText = !!(slots.default || slots.text || props.text);
|
|
2956
3023
|
return vue.createVNode(props.tag, {
|
|
2957
|
-
"class":
|
|
3024
|
+
"class": ['v-toolbar-title', props.class],
|
|
3025
|
+
"style": props.style
|
|
2958
3026
|
}, {
|
|
2959
3027
|
default: () => [hasText && vue.createVNode("div", {
|
|
2960
3028
|
"class": "v-toolbar-title__placeholder"
|
|
@@ -3135,6 +3203,7 @@
|
|
|
3135
3203
|
image: String,
|
|
3136
3204
|
title: String,
|
|
3137
3205
|
...makeBorderProps(),
|
|
3206
|
+
...makeComponentProps(),
|
|
3138
3207
|
...makeElevationProps(),
|
|
3139
3208
|
...makeRoundedProps(),
|
|
3140
3209
|
...makeTagProps({
|
|
@@ -3185,8 +3254,8 @@
|
|
|
3185
3254
|
'v-toolbar--flat': props.flat,
|
|
3186
3255
|
'v-toolbar--floating': props.floating,
|
|
3187
3256
|
[`v-toolbar--density-${props.density}`]: true
|
|
3188
|
-
}, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value],
|
|
3189
|
-
"style": [backgroundColorStyles.value]
|
|
3257
|
+
}, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
3258
|
+
"style": [backgroundColorStyles.value, props.style]
|
|
3190
3259
|
}, {
|
|
3191
3260
|
default: () => [hasImage && vue.createVNode("div", {
|
|
3192
3261
|
"key": "image",
|
|
@@ -3253,6 +3322,98 @@
|
|
|
3253
3322
|
|
|
3254
3323
|
// Utilities
|
|
3255
3324
|
|
|
3325
|
+
// Types
|
|
3326
|
+
|
|
3327
|
+
// Composables
|
|
3328
|
+
const makeScrollProps = propsFactory({
|
|
3329
|
+
scrollTarget: {
|
|
3330
|
+
type: String
|
|
3331
|
+
},
|
|
3332
|
+
scrollThreshold: {
|
|
3333
|
+
type: [String, Number]
|
|
3334
|
+
}
|
|
3335
|
+
}, 'scroll');
|
|
3336
|
+
function useScroll(props) {
|
|
3337
|
+
let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
3338
|
+
const {
|
|
3339
|
+
thresholdMetCallback,
|
|
3340
|
+
scrollThreshold,
|
|
3341
|
+
canScroll
|
|
3342
|
+
} = args;
|
|
3343
|
+
let previousScroll = 0;
|
|
3344
|
+
const target = vue.ref(null);
|
|
3345
|
+
const currentScroll = vue.ref(0);
|
|
3346
|
+
const savedScroll = vue.ref(0);
|
|
3347
|
+
const currentThreshold = vue.ref(0);
|
|
3348
|
+
const isScrollActive = vue.ref(false);
|
|
3349
|
+
const isScrollingUp = vue.ref(false);
|
|
3350
|
+
const computedScrollThreshold = vue.computed(() => {
|
|
3351
|
+
return Number(props.scrollThreshold ?? scrollThreshold ?? 300);
|
|
3352
|
+
});
|
|
3353
|
+
const onScroll = () => {
|
|
3354
|
+
const targetEl = target.value;
|
|
3355
|
+
if (!targetEl || canScroll && !canScroll.value) return;
|
|
3356
|
+
previousScroll = currentScroll.value;
|
|
3357
|
+
currentScroll.value = 'window' in targetEl ? targetEl.pageYOffset : targetEl.scrollTop;
|
|
3358
|
+
isScrollingUp.value = currentScroll.value < previousScroll;
|
|
3359
|
+
currentThreshold.value = Math.abs(currentScroll.value - computedScrollThreshold.value);
|
|
3360
|
+
};
|
|
3361
|
+
vue.watch(isScrollingUp, () => {
|
|
3362
|
+
savedScroll.value = savedScroll.value || currentScroll.value;
|
|
3363
|
+
});
|
|
3364
|
+
vue.watch(isScrollActive, () => {
|
|
3365
|
+
savedScroll.value = 0;
|
|
3366
|
+
});
|
|
3367
|
+
vue.onMounted(() => {
|
|
3368
|
+
vue.watch(() => props.scrollTarget, scrollTarget => {
|
|
3369
|
+
const newTarget = scrollTarget ? document.querySelector(scrollTarget) : window;
|
|
3370
|
+
if (!newTarget) {
|
|
3371
|
+
consoleWarn(`Unable to locate element with identifier ${scrollTarget}`, vue.getCurrentInstance());
|
|
3372
|
+
return;
|
|
3373
|
+
}
|
|
3374
|
+
if (newTarget === target.value) return;
|
|
3375
|
+
target.value?.removeEventListener('scroll', onScroll);
|
|
3376
|
+
target.value = newTarget;
|
|
3377
|
+
target.value.addEventListener('scroll', onScroll, {
|
|
3378
|
+
passive: true
|
|
3379
|
+
});
|
|
3380
|
+
}, {
|
|
3381
|
+
immediate: true
|
|
3382
|
+
});
|
|
3383
|
+
});
|
|
3384
|
+
vue.onBeforeUnmount(() => {
|
|
3385
|
+
target.value?.removeEventListener('scroll', onScroll);
|
|
3386
|
+
});
|
|
3387
|
+
thresholdMetCallback && vue.watch(() => Math.abs(currentScroll.value - savedScroll.value) > computedScrollThreshold.value, thresholdMet => {
|
|
3388
|
+
thresholdMet && thresholdMetCallback({
|
|
3389
|
+
currentThreshold: currentThreshold.value,
|
|
3390
|
+
isScrollingUp: isScrollingUp.value,
|
|
3391
|
+
savedScroll
|
|
3392
|
+
});
|
|
3393
|
+
}, {
|
|
3394
|
+
immediate: true
|
|
3395
|
+
});
|
|
3396
|
+
|
|
3397
|
+
// Do we need this? If yes - seems that
|
|
3398
|
+
// there's no need to expose onScroll
|
|
3399
|
+
canScroll && vue.watch(canScroll, onScroll, {
|
|
3400
|
+
immediate: true
|
|
3401
|
+
});
|
|
3402
|
+
return {
|
|
3403
|
+
computedScrollThreshold,
|
|
3404
|
+
currentScroll,
|
|
3405
|
+
currentThreshold,
|
|
3406
|
+
isScrollActive,
|
|
3407
|
+
// required only for testing
|
|
3408
|
+
// probably can be removed
|
|
3409
|
+
// later (2 chars chlng)
|
|
3410
|
+
isScrollingUp,
|
|
3411
|
+
savedScroll
|
|
3412
|
+
};
|
|
3413
|
+
}
|
|
3414
|
+
|
|
3415
|
+
// Utilities
|
|
3416
|
+
|
|
3256
3417
|
// Composables
|
|
3257
3418
|
function useSsrBoot() {
|
|
3258
3419
|
const isBooted = vue.ref(false);
|
|
@@ -3275,13 +3436,7 @@
|
|
|
3275
3436
|
const VAppBar = genericComponent()({
|
|
3276
3437
|
name: 'VAppBar',
|
|
3277
3438
|
props: {
|
|
3278
|
-
|
|
3279
|
-
// hideOnScroll: Boolean
|
|
3280
|
-
// invertedScroll: Boolean
|
|
3281
|
-
// collapseOnScroll: Boolean
|
|
3282
|
-
// elevateOnScroll: Boolean
|
|
3283
|
-
// shrinkOnScroll: Boolean
|
|
3284
|
-
// fadeImageOnScroll: Boolean
|
|
3439
|
+
scrollBehavior: String,
|
|
3285
3440
|
modelValue: {
|
|
3286
3441
|
type: Boolean,
|
|
3287
3442
|
default: true
|
|
@@ -3293,6 +3448,7 @@
|
|
|
3293
3448
|
},
|
|
3294
3449
|
...makeVToolbarProps(),
|
|
3295
3450
|
...makeLayoutItemProps(),
|
|
3451
|
+
...makeScrollProps(),
|
|
3296
3452
|
height: {
|
|
3297
3453
|
type: [Number, String],
|
|
3298
3454
|
default: 64
|
|
@@ -3307,11 +3463,63 @@
|
|
|
3307
3463
|
} = _ref;
|
|
3308
3464
|
const vToolbarRef = vue.ref();
|
|
3309
3465
|
const isActive = useProxiedModel(props, 'modelValue');
|
|
3466
|
+
const scrollBehavior = vue.computed(() => {
|
|
3467
|
+
const behavior = new Set(props.scrollBehavior?.split(' ') ?? []);
|
|
3468
|
+
return {
|
|
3469
|
+
hide: behavior.has('hide'),
|
|
3470
|
+
// fullyHide: behavior.has('fully-hide'),
|
|
3471
|
+
inverted: behavior.has('inverted'),
|
|
3472
|
+
collapse: behavior.has('collapse'),
|
|
3473
|
+
elevate: behavior.has('elevate'),
|
|
3474
|
+
fadeImage: behavior.has('fade-image')
|
|
3475
|
+
// shrink: behavior.has('shrink'),
|
|
3476
|
+
};
|
|
3477
|
+
});
|
|
3478
|
+
|
|
3479
|
+
const canScroll = vue.computed(() => {
|
|
3480
|
+
const behavior = scrollBehavior.value;
|
|
3481
|
+
return behavior.hide ||
|
|
3482
|
+
// behavior.fullyHide ||
|
|
3483
|
+
behavior.inverted || behavior.collapse || behavior.elevate || behavior.fadeImage ||
|
|
3484
|
+
// behavior.shrink ||
|
|
3485
|
+
!isActive.value;
|
|
3486
|
+
});
|
|
3487
|
+
const {
|
|
3488
|
+
currentScroll,
|
|
3489
|
+
currentThreshold,
|
|
3490
|
+
computedScrollThreshold,
|
|
3491
|
+
isScrollingUp
|
|
3492
|
+
} = useScroll(props, {
|
|
3493
|
+
canScroll
|
|
3494
|
+
});
|
|
3495
|
+
const isCollapsed = vue.computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? currentScroll.value < 1 : currentScroll.value > 0));
|
|
3496
|
+
const isFlat = vue.computed(() => props.flat || scrollBehavior.value.elevate && currentScroll.value === (scrollBehavior.value.inverted ? 1 : 0));
|
|
3497
|
+
const scrollRatio = vue.computed(() => Math.min((currentThreshold.value - currentScroll.value) / currentThreshold.value || 1, 1));
|
|
3498
|
+
const opacity = vue.computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
|
|
3310
3499
|
const height = vue.computed(() => {
|
|
3500
|
+
if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0;
|
|
3311
3501
|
const height = vToolbarRef.value?.contentHeight ?? 0;
|
|
3312
3502
|
const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;
|
|
3313
3503
|
return height + extensionHeight;
|
|
3314
3504
|
});
|
|
3505
|
+
function setActive() {
|
|
3506
|
+
const val = currentScroll.value;
|
|
3507
|
+
if (scrollBehavior.value.hide) {
|
|
3508
|
+
if (scrollBehavior.value.inverted) {
|
|
3509
|
+
isActive.value = val > computedScrollThreshold.value;
|
|
3510
|
+
} else {
|
|
3511
|
+
isActive.value = isScrollingUp.value || val < computedScrollThreshold.value;
|
|
3512
|
+
}
|
|
3513
|
+
} else if (scrollBehavior.value.inverted) {
|
|
3514
|
+
isActive.value = currentScroll.value === 0;
|
|
3515
|
+
} else {
|
|
3516
|
+
isActive.value = true;
|
|
3517
|
+
}
|
|
3518
|
+
}
|
|
3519
|
+
vue.watch(currentScroll, setActive, {
|
|
3520
|
+
immediate: true
|
|
3521
|
+
});
|
|
3522
|
+
vue.watch(scrollBehavior, setActive);
|
|
3315
3523
|
const {
|
|
3316
3524
|
ssrBootStyles
|
|
3317
3525
|
} = useSsrBoot();
|
|
@@ -3322,7 +3530,7 @@
|
|
|
3322
3530
|
order: vue.computed(() => parseInt(props.order, 10)),
|
|
3323
3531
|
position: vue.toRef(props, 'location'),
|
|
3324
3532
|
layoutSize: height,
|
|
3325
|
-
elementSize:
|
|
3533
|
+
elementSize: vue.ref(undefined),
|
|
3326
3534
|
active: isActive,
|
|
3327
3535
|
absolute: vue.toRef(props, 'absolute')
|
|
3328
3536
|
});
|
|
@@ -3332,13 +3540,17 @@
|
|
|
3332
3540
|
"ref": vToolbarRef,
|
|
3333
3541
|
"class": ['v-app-bar', {
|
|
3334
3542
|
'v-app-bar--bottom': props.location === 'bottom'
|
|
3335
|
-
}],
|
|
3336
|
-
"style": {
|
|
3543
|
+
}, props.class],
|
|
3544
|
+
"style": [{
|
|
3337
3545
|
...layoutItemStyles.value,
|
|
3546
|
+
'--v-toolbar-image-opacity': opacity.value,
|
|
3338
3547
|
height: undefined,
|
|
3339
3548
|
...ssrBootStyles.value
|
|
3340
|
-
}
|
|
3341
|
-
}, toolbarProps
|
|
3549
|
+
}, props.style]
|
|
3550
|
+
}, toolbarProps, {
|
|
3551
|
+
"collapse": isCollapsed.value,
|
|
3552
|
+
"flat": isFlat.value
|
|
3553
|
+
}), slots);
|
|
3342
3554
|
});
|
|
3343
3555
|
return {};
|
|
3344
3556
|
}
|
|
@@ -3421,6 +3633,7 @@
|
|
|
3421
3633
|
const makeVBtnGroupProps = propsFactory({
|
|
3422
3634
|
divided: Boolean,
|
|
3423
3635
|
...makeBorderProps(),
|
|
3636
|
+
...makeComponentProps(),
|
|
3424
3637
|
...makeDensityProps(),
|
|
3425
3638
|
...makeElevationProps(),
|
|
3426
3639
|
...makeRoundedProps(),
|
|
@@ -3463,7 +3676,8 @@
|
|
|
3463
3676
|
return vue.createVNode(props.tag, {
|
|
3464
3677
|
"class": ['v-btn-group', {
|
|
3465
3678
|
'v-btn-group--divided': props.divided
|
|
3466
|
-
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value]
|
|
3679
|
+
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
3680
|
+
"style": props.style
|
|
3467
3681
|
}, slots);
|
|
3468
3682
|
});
|
|
3469
3683
|
}
|
|
@@ -3696,8 +3910,10 @@
|
|
|
3696
3910
|
useRender(() => {
|
|
3697
3911
|
const [btnGroupProps] = VBtnGroup.filterProps(props);
|
|
3698
3912
|
return vue.createVNode(VBtnGroup, vue.mergeProps({
|
|
3699
|
-
"class":
|
|
3700
|
-
}, btnGroupProps
|
|
3913
|
+
"class": ['v-btn-toggle', props.class]
|
|
3914
|
+
}, btnGroupProps, {
|
|
3915
|
+
"style": props.style
|
|
3916
|
+
}), {
|
|
3701
3917
|
default: () => [slots.default?.({
|
|
3702
3918
|
isSelected,
|
|
3703
3919
|
next,
|
|
@@ -3768,7 +3984,7 @@
|
|
|
3768
3984
|
|
|
3769
3985
|
// Types
|
|
3770
3986
|
|
|
3771
|
-
const IconValue = [String, Function, Object];
|
|
3987
|
+
const IconValue = [String, Function, Object, Array];
|
|
3772
3988
|
const IconSymbol = Symbol.for('vuetify:icons');
|
|
3773
3989
|
const makeIconProps = propsFactory({
|
|
3774
3990
|
icon: {
|
|
@@ -3788,8 +4004,9 @@
|
|
|
3788
4004
|
slots
|
|
3789
4005
|
} = _ref;
|
|
3790
4006
|
return () => {
|
|
4007
|
+
const Icon = props.icon;
|
|
3791
4008
|
return vue.createVNode(props.tag, null, {
|
|
3792
|
-
default: () => [props.icon ? vue.createVNode(
|
|
4009
|
+
default: () => [props.icon ? vue.createVNode(Icon, null, null) : slots.default?.()]
|
|
3793
4010
|
});
|
|
3794
4011
|
};
|
|
3795
4012
|
}
|
|
@@ -3812,7 +4029,12 @@
|
|
|
3812
4029
|
"viewBox": "0 0 24 24",
|
|
3813
4030
|
"role": "img",
|
|
3814
4031
|
"aria-hidden": "true"
|
|
3815
|
-
}, [vue.createVNode("path", {
|
|
4032
|
+
}, [Array.isArray(props.icon) ? props.icon.map(path => Array.isArray(path) ? vue.createVNode("path", {
|
|
4033
|
+
"d": path[0],
|
|
4034
|
+
"fill-opacity": path[1]
|
|
4035
|
+
}, null) : vue.createVNode("path", {
|
|
4036
|
+
"d": path
|
|
4037
|
+
}, null)) : vue.createVNode("path", {
|
|
3816
4038
|
"d": props.icon
|
|
3817
4039
|
}, null)])]
|
|
3818
4040
|
});
|
|
@@ -3877,7 +4099,12 @@
|
|
|
3877
4099
|
}
|
|
3878
4100
|
}
|
|
3879
4101
|
if (!icon) throw new Error(`Could not find aliased icon "${iconAlias}"`);
|
|
3880
|
-
if (
|
|
4102
|
+
if (Array.isArray(icon)) {
|
|
4103
|
+
return {
|
|
4104
|
+
component: VSvgIcon,
|
|
4105
|
+
icon
|
|
4106
|
+
};
|
|
4107
|
+
} else if (typeof icon !== 'string') {
|
|
3881
4108
|
return {
|
|
3882
4109
|
component: VComponentIcon,
|
|
3883
4110
|
icon
|
|
@@ -3934,6 +4161,7 @@
|
|
|
3934
4161
|
start: Boolean,
|
|
3935
4162
|
end: Boolean,
|
|
3936
4163
|
icon: IconValue,
|
|
4164
|
+
...makeComponentProps(),
|
|
3937
4165
|
...makeSizeProps(),
|
|
3938
4166
|
...makeTagProps({
|
|
3939
4167
|
tag: 'i'
|
|
@@ -3976,12 +4204,12 @@
|
|
|
3976
4204
|
'v-icon--clickable': !!attrs.onClick,
|
|
3977
4205
|
'v-icon--start': props.start,
|
|
3978
4206
|
'v-icon--end': props.end
|
|
3979
|
-
}],
|
|
4207
|
+
}, props.class],
|
|
3980
4208
|
"style": [!sizeClasses.value ? {
|
|
3981
4209
|
fontSize: convertToUnit(props.size),
|
|
3982
4210
|
height: convertToUnit(props.size),
|
|
3983
4211
|
width: convertToUnit(props.size)
|
|
3984
|
-
} : undefined, textColorStyles.value],
|
|
4212
|
+
} : undefined, textColorStyles.value, props.style],
|
|
3985
4213
|
"role": attrs.onClick ? 'button' : undefined,
|
|
3986
4214
|
"aria-hidden": !attrs.onClick
|
|
3987
4215
|
}, {
|
|
@@ -3992,14 +4220,14 @@
|
|
|
3992
4220
|
});
|
|
3993
4221
|
|
|
3994
4222
|
// Utilities
|
|
3995
|
-
function useIntersectionObserver(callback) {
|
|
4223
|
+
function useIntersectionObserver(callback, options) {
|
|
3996
4224
|
const intersectionRef = vue.ref();
|
|
3997
4225
|
const isIntersecting = vue.ref(false);
|
|
3998
4226
|
if (SUPPORTS_INTERSECTION) {
|
|
3999
4227
|
const observer = new IntersectionObserver(entries => {
|
|
4000
4228
|
callback?.(entries, observer);
|
|
4001
4229
|
isIntersecting.value = !!entries.find(entry => entry.isIntersecting);
|
|
4002
|
-
});
|
|
4230
|
+
}, options);
|
|
4003
4231
|
vue.onBeforeUnmount(() => {
|
|
4004
4232
|
observer.disconnect();
|
|
4005
4233
|
});
|
|
@@ -4039,6 +4267,7 @@
|
|
|
4039
4267
|
type: [Number, String],
|
|
4040
4268
|
default: 4
|
|
4041
4269
|
},
|
|
4270
|
+
...makeComponentProps(),
|
|
4042
4271
|
...makeSizeProps(),
|
|
4043
4272
|
...makeTagProps({
|
|
4044
4273
|
tag: 'div'
|
|
@@ -4094,8 +4323,8 @@
|
|
|
4094
4323
|
'v-progress-circular--indeterminate': !!props.indeterminate,
|
|
4095
4324
|
'v-progress-circular--visible': isIntersecting.value,
|
|
4096
4325
|
'v-progress-circular--disable-shrink': props.indeterminate === 'disable-shrink'
|
|
4097
|
-
}, themeClasses.value, sizeClasses.value, textColorClasses.value],
|
|
4098
|
-
"style": [sizeStyles.value, textColorStyles.value],
|
|
4326
|
+
}, themeClasses.value, sizeClasses.value, textColorClasses.value, props.class],
|
|
4327
|
+
"style": [sizeStyles.value, textColorStyles.value, props.style],
|
|
4099
4328
|
"role": "progressbar",
|
|
4100
4329
|
"aria-valuemin": "0",
|
|
4101
4330
|
"aria-valuemax": "100",
|
|
@@ -4514,6 +4743,7 @@
|
|
|
4514
4743
|
stream: Boolean,
|
|
4515
4744
|
striped: Boolean,
|
|
4516
4745
|
roundedBar: Boolean,
|
|
4746
|
+
...makeComponentProps(),
|
|
4517
4747
|
...makeLocationProps({
|
|
4518
4748
|
location: 'top'
|
|
4519
4749
|
}),
|
|
@@ -4585,14 +4815,14 @@
|
|
|
4585
4815
|
'v-progress-linear--rounded': props.rounded,
|
|
4586
4816
|
'v-progress-linear--rounded-bar': props.roundedBar,
|
|
4587
4817
|
'v-progress-linear--striped': props.striped
|
|
4588
|
-
}, roundedClasses.value, themeClasses.value],
|
|
4589
|
-
"style": {
|
|
4818
|
+
}, roundedClasses.value, themeClasses.value, props.class],
|
|
4819
|
+
"style": [{
|
|
4590
4820
|
bottom: props.location === 'bottom' ? 0 : undefined,
|
|
4591
4821
|
top: props.location === 'top' ? 0 : undefined,
|
|
4592
4822
|
height: props.active ? convertToUnit(height.value) : 0,
|
|
4593
4823
|
'--v-progress-linear-height': convertToUnit(height.value),
|
|
4594
4824
|
...locationStyles.value
|
|
4595
|
-
},
|
|
4825
|
+
}, props.style],
|
|
4596
4826
|
"role": "progressbar",
|
|
4597
4827
|
"aria-hidden": props.active ? 'false' : 'true',
|
|
4598
4828
|
"aria-valuemin": "0",
|
|
@@ -4801,8 +5031,9 @@
|
|
|
4801
5031
|
type: Boolean,
|
|
4802
5032
|
default: true
|
|
4803
5033
|
},
|
|
5034
|
+
text: String,
|
|
4804
5035
|
...makeBorderProps(),
|
|
4805
|
-
...
|
|
5036
|
+
...makeComponentProps(),
|
|
4806
5037
|
...makeDensityProps(),
|
|
4807
5038
|
...makeDimensionProps(),
|
|
4808
5039
|
...makeElevationProps(),
|
|
@@ -4810,6 +5041,7 @@
|
|
|
4810
5041
|
...makeLoaderProps(),
|
|
4811
5042
|
...makeLocationProps(),
|
|
4812
5043
|
...makePositionProps(),
|
|
5044
|
+
...makeRoundedProps(),
|
|
4813
5045
|
...makeRouterProps(),
|
|
4814
5046
|
...makeSizeProps(),
|
|
4815
5047
|
...makeTagProps({
|
|
@@ -4907,8 +5139,8 @@
|
|
|
4907
5139
|
'v-btn--icon': !!props.icon,
|
|
4908
5140
|
'v-btn--loading': props.loading,
|
|
4909
5141
|
'v-btn--stacked': props.stacked
|
|
4910
|
-
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value],
|
|
4911
|
-
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value],
|
|
5142
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
|
5143
|
+
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],
|
|
4912
5144
|
"disabled": isDisabled.value || undefined,
|
|
4913
5145
|
"href": link.href.value,
|
|
4914
5146
|
"onClick": e => {
|
|
@@ -4946,7 +5178,9 @@
|
|
|
4946
5178
|
icon: props.icon
|
|
4947
5179
|
}
|
|
4948
5180
|
}
|
|
4949
|
-
},
|
|
5181
|
+
}, {
|
|
5182
|
+
default: () => [slots.default?.() ?? props.text]
|
|
5183
|
+
})]), !props.icon && hasAppend && vue.createVNode("span", {
|
|
4950
5184
|
"key": "append",
|
|
4951
5185
|
"class": "v-btn__append"
|
|
4952
5186
|
}, [!slots.append ? vue.createVNode(VIcon, {
|
|
@@ -4983,15 +5217,17 @@
|
|
|
4983
5217
|
icon: {
|
|
4984
5218
|
type: IconValue,
|
|
4985
5219
|
default: '$menu'
|
|
4986
|
-
}
|
|
5220
|
+
},
|
|
5221
|
+
...makeComponentProps()
|
|
4987
5222
|
},
|
|
4988
5223
|
setup(props, _ref) {
|
|
4989
5224
|
let {
|
|
4990
5225
|
slots
|
|
4991
5226
|
} = _ref;
|
|
4992
5227
|
useRender(() => vue.createVNode(VBtn, {
|
|
4993
|
-
"class":
|
|
4994
|
-
"icon": props.icon
|
|
5228
|
+
"class": ['v-app-bar-nav-icon', props.class],
|
|
5229
|
+
"icon": props.icon,
|
|
5230
|
+
"style": props.style
|
|
4995
5231
|
}, slots));
|
|
4996
5232
|
return {};
|
|
4997
5233
|
}
|
|
@@ -4999,9 +5235,12 @@
|
|
|
4999
5235
|
|
|
5000
5236
|
const VToolbarItems = genericComponent()({
|
|
5001
5237
|
name: 'VToolbarItems',
|
|
5002
|
-
props:
|
|
5003
|
-
|
|
5004
|
-
|
|
5238
|
+
props: {
|
|
5239
|
+
...makeComponentProps(),
|
|
5240
|
+
...makeVariantProps({
|
|
5241
|
+
variant: 'text'
|
|
5242
|
+
})
|
|
5243
|
+
},
|
|
5005
5244
|
setup(props, _ref) {
|
|
5006
5245
|
let {
|
|
5007
5246
|
slots
|
|
@@ -5014,7 +5253,8 @@
|
|
|
5014
5253
|
}
|
|
5015
5254
|
});
|
|
5016
5255
|
useRender(() => vue.createVNode("div", {
|
|
5017
|
-
"class":
|
|
5256
|
+
"class": ['v-toolbar-items', props.class],
|
|
5257
|
+
"style": props.style
|
|
5018
5258
|
}, [slots.default?.()]));
|
|
5019
5259
|
return {};
|
|
5020
5260
|
}
|
|
@@ -5076,6 +5316,7 @@
|
|
|
5076
5316
|
type: String,
|
|
5077
5317
|
validator: val => allowedTypes.includes(val)
|
|
5078
5318
|
},
|
|
5319
|
+
...makeComponentProps(),
|
|
5079
5320
|
...makeDensityProps(),
|
|
5080
5321
|
...makeDimensionProps(),
|
|
5081
5322
|
...makeElevationProps(),
|
|
@@ -5158,8 +5399,8 @@
|
|
|
5158
5399
|
[`v-alert--border-${props.border === true ? 'start' : props.border}`]: true
|
|
5159
5400
|
}, {
|
|
5160
5401
|
'v-alert--prominent': props.prominent
|
|
5161
|
-
}, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value],
|
|
5162
|
-
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value],
|
|
5402
|
+
}, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
|
5403
|
+
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
|
|
5163
5404
|
"role": "alert"
|
|
5164
5405
|
}, {
|
|
5165
5406
|
default: () => [genOverlays(false, 'v-alert'), props.border && vue.createVNode("div", {
|
|
@@ -5253,6 +5494,7 @@
|
|
|
5253
5494
|
props: {
|
|
5254
5495
|
text: String,
|
|
5255
5496
|
clickable: Boolean,
|
|
5497
|
+
...makeComponentProps(),
|
|
5256
5498
|
...makeThemeProps()
|
|
5257
5499
|
},
|
|
5258
5500
|
setup(props, _ref) {
|
|
@@ -5262,7 +5504,8 @@
|
|
|
5262
5504
|
useRender(() => vue.createVNode("label", {
|
|
5263
5505
|
"class": ['v-label', {
|
|
5264
5506
|
'v-label--clickable': props.clickable
|
|
5265
|
-
}]
|
|
5507
|
+
}, props.class],
|
|
5508
|
+
"style": props.style
|
|
5266
5509
|
}, [props.text, slots.default?.()]));
|
|
5267
5510
|
return {};
|
|
5268
5511
|
}
|
|
@@ -5271,7 +5514,8 @@
|
|
|
5271
5514
|
const VFieldLabel = genericComponent()({
|
|
5272
5515
|
name: 'VFieldLabel',
|
|
5273
5516
|
props: {
|
|
5274
|
-
floating: Boolean
|
|
5517
|
+
floating: Boolean,
|
|
5518
|
+
...makeComponentProps()
|
|
5275
5519
|
},
|
|
5276
5520
|
setup(props, _ref) {
|
|
5277
5521
|
let {
|
|
@@ -5280,7 +5524,8 @@
|
|
|
5280
5524
|
useRender(() => vue.createVNode(VLabel, {
|
|
5281
5525
|
"class": ['v-field-label', {
|
|
5282
5526
|
'v-field-label--floating': props.floating
|
|
5283
|
-
}],
|
|
5527
|
+
}, props.class],
|
|
5528
|
+
"style": props.style,
|
|
5284
5529
|
"aria-hidden": props.floating || undefined
|
|
5285
5530
|
}, slots));
|
|
5286
5531
|
return {};
|
|
@@ -5320,7 +5565,7 @@
|
|
|
5320
5565
|
|
|
5321
5566
|
// Types
|
|
5322
5567
|
|
|
5323
|
-
const allowedVariants$1 = ['underlined', 'outlined', 'filled', 'solo', 'plain'];
|
|
5568
|
+
const allowedVariants$1 = ['underlined', 'outlined', 'filled', 'solo', 'solo-inverted', 'solo-filled', 'plain'];
|
|
5324
5569
|
const makeVFieldProps = propsFactory({
|
|
5325
5570
|
appendInnerIcon: IconValue,
|
|
5326
5571
|
bgColor: String,
|
|
@@ -5331,9 +5576,11 @@
|
|
|
5331
5576
|
},
|
|
5332
5577
|
active: Boolean,
|
|
5333
5578
|
color: String,
|
|
5579
|
+
baseColor: String,
|
|
5334
5580
|
dirty: Boolean,
|
|
5335
5581
|
disabled: Boolean,
|
|
5336
5582
|
error: Boolean,
|
|
5583
|
+
flat: Boolean,
|
|
5337
5584
|
label: String,
|
|
5338
5585
|
persistentClear: Boolean,
|
|
5339
5586
|
prependInnerIcon: IconValue,
|
|
@@ -5347,8 +5594,10 @@
|
|
|
5347
5594
|
'onClick:clear': EventProp(),
|
|
5348
5595
|
'onClick:appendInner': EventProp(),
|
|
5349
5596
|
'onClick:prependInner': EventProp(),
|
|
5350
|
-
...
|
|
5351
|
-
...makeLoaderProps()
|
|
5597
|
+
...makeComponentProps(),
|
|
5598
|
+
...makeLoaderProps(),
|
|
5599
|
+
...makeRoundedProps(),
|
|
5600
|
+
...makeThemeProps()
|
|
5352
5601
|
}, 'v-field');
|
|
5353
5602
|
const VField = genericComponent()({
|
|
5354
5603
|
name: 'VField',
|
|
@@ -5383,6 +5632,9 @@
|
|
|
5383
5632
|
const {
|
|
5384
5633
|
InputIcon
|
|
5385
5634
|
} = useInputIcon(props);
|
|
5635
|
+
const {
|
|
5636
|
+
roundedClasses
|
|
5637
|
+
} = useRounded(props);
|
|
5386
5638
|
const isActive = vue.computed(() => props.dirty || props.active);
|
|
5387
5639
|
const hasLabel = vue.computed(() => !props.singleLine && !!(props.label || slots.label));
|
|
5388
5640
|
const uid = getUid();
|
|
@@ -5399,7 +5651,7 @@
|
|
|
5399
5651
|
textColorClasses,
|
|
5400
5652
|
textColorStyles
|
|
5401
5653
|
} = useTextColor(vue.computed(() => {
|
|
5402
|
-
return
|
|
5654
|
+
return props.error || props.disabled ? undefined : isActive.value && isFocused.value ? props.color : props.baseColor;
|
|
5403
5655
|
}));
|
|
5404
5656
|
vue.watch(isActive, val => {
|
|
5405
5657
|
if (hasLabel.value) {
|
|
@@ -5468,6 +5720,7 @@
|
|
|
5468
5720
|
'v-field--disabled': props.disabled,
|
|
5469
5721
|
'v-field--dirty': props.dirty,
|
|
5470
5722
|
'v-field--error': props.error,
|
|
5723
|
+
'v-field--flat': props.flat,
|
|
5471
5724
|
'v-field--has-background': !!props.bgColor,
|
|
5472
5725
|
'v-field--persistent-clear': props.persistentClear,
|
|
5473
5726
|
'v-field--prepended': hasPrepend,
|
|
@@ -5475,8 +5728,8 @@
|
|
|
5475
5728
|
'v-field--single-line': props.singleLine,
|
|
5476
5729
|
'v-field--no-label': !label,
|
|
5477
5730
|
[`v-field--variant-${props.variant}`]: true
|
|
5478
|
-
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value],
|
|
5479
|
-
"style": [backgroundColorStyles.value, textColorStyles.value],
|
|
5731
|
+
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, props.class],
|
|
5732
|
+
"style": [backgroundColorStyles.value, textColorStyles.value, props.style],
|
|
5480
5733
|
"onClick": onClick
|
|
5481
5734
|
}, attrs), [vue.createVNode("div", {
|
|
5482
5735
|
"class": "v-field__overlay"
|
|
@@ -5495,7 +5748,7 @@
|
|
|
5495
5748
|
}, null), slots['prepend-inner']?.(slotProps.value)]), vue.createVNode("div", {
|
|
5496
5749
|
"class": "v-field__field",
|
|
5497
5750
|
"data-no-activator": ""
|
|
5498
|
-
}, [['solo', 'filled'].includes(props.variant) && hasLabel.value && vue.createVNode(VFieldLabel, {
|
|
5751
|
+
}, [['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasLabel.value && vue.createVNode(VFieldLabel, {
|
|
5499
5752
|
"key": "floating-label",
|
|
5500
5753
|
"ref": floatingLabelRef,
|
|
5501
5754
|
"class": [textColorClasses.value],
|
|
@@ -5564,7 +5817,7 @@
|
|
|
5564
5817
|
});
|
|
5565
5818
|
// TODO: this is kinda slow, might be better to implicitly inherit props instead
|
|
5566
5819
|
function filterFieldProps(attrs) {
|
|
5567
|
-
const keys = Object.keys(VField.props).filter(k => !isOn(k));
|
|
5820
|
+
const keys = Object.keys(VField.props).filter(k => !isOn(k) && k !== 'class' && k !== 'style');
|
|
5568
5821
|
return pick(attrs, keys);
|
|
5569
5822
|
}
|
|
5570
5823
|
|
|
@@ -5579,6 +5832,7 @@
|
|
|
5579
5832
|
type: [Array, String],
|
|
5580
5833
|
default: () => []
|
|
5581
5834
|
},
|
|
5835
|
+
...makeComponentProps(),
|
|
5582
5836
|
...makeTransitionProps({
|
|
5583
5837
|
transition: {
|
|
5584
5838
|
component: VSlideYTransition,
|
|
@@ -5599,8 +5853,8 @@
|
|
|
5599
5853
|
useRender(() => vue.createVNode(MaybeTransition, {
|
|
5600
5854
|
"transition": props.transition,
|
|
5601
5855
|
"tag": "div",
|
|
5602
|
-
"class": ['v-messages', textColorClasses.value],
|
|
5603
|
-
"style": textColorStyles.value,
|
|
5856
|
+
"class": ['v-messages', textColorClasses.value, props.class],
|
|
5857
|
+
"style": [textColorStyles.value, props.style],
|
|
5604
5858
|
"role": "alert",
|
|
5605
5859
|
"aria-live": "polite"
|
|
5606
5860
|
}, {
|
|
@@ -5896,6 +6150,7 @@
|
|
|
5896
6150
|
},
|
|
5897
6151
|
'onClick:prepend': EventProp(),
|
|
5898
6152
|
'onClick:append': EventProp(),
|
|
6153
|
+
...makeComponentProps(),
|
|
5899
6154
|
...makeDensityProps(),
|
|
5900
6155
|
...makeValidationProps()
|
|
5901
6156
|
}, 'v-input');
|
|
@@ -5963,7 +6218,8 @@
|
|
|
5963
6218
|
const hasMessages = messages.value.length > 0;
|
|
5964
6219
|
const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);
|
|
5965
6220
|
return vue.createVNode("div", {
|
|
5966
|
-
"class": ['v-input', `v-input--${props.direction}`, densityClasses.value, validationClasses.value]
|
|
6221
|
+
"class": ['v-input', `v-input--${props.direction}`, densityClasses.value, validationClasses.value, props.class],
|
|
6222
|
+
"style": props.style
|
|
5967
6223
|
}, [hasPrepend && vue.createVNode("div", {
|
|
5968
6224
|
"key": "prepend",
|
|
5969
6225
|
"class": "v-input__prepend"
|
|
@@ -6006,6 +6262,7 @@
|
|
|
6006
6262
|
type: [Number, String],
|
|
6007
6263
|
default: 0
|
|
6008
6264
|
},
|
|
6265
|
+
...makeComponentProps(),
|
|
6009
6266
|
...makeTransitionProps({
|
|
6010
6267
|
transition: {
|
|
6011
6268
|
component: VSlideYTransition
|
|
@@ -6023,7 +6280,8 @@
|
|
|
6023
6280
|
"transition": props.transition
|
|
6024
6281
|
}, {
|
|
6025
6282
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
|
6026
|
-
"class":
|
|
6283
|
+
"class": ['v-counter', props.class],
|
|
6284
|
+
"style": props.style
|
|
6027
6285
|
}, [slots.default ? slots.default({
|
|
6028
6286
|
counter: counter.value,
|
|
6029
6287
|
max: props.max,
|
|
@@ -6226,7 +6484,8 @@
|
|
|
6226
6484
|
'v-text-field--prefixed': props.prefix,
|
|
6227
6485
|
'v-text-field--suffixed': props.suffix,
|
|
6228
6486
|
'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant)
|
|
6229
|
-
}]
|
|
6487
|
+
}, props.class],
|
|
6488
|
+
"style": props.style
|
|
6230
6489
|
}, rootAttrs, inputProps, {
|
|
6231
6490
|
"focused": isFocused.value
|
|
6232
6491
|
}), {
|
|
@@ -6342,6 +6601,7 @@
|
|
|
6342
6601
|
type: String,
|
|
6343
6602
|
default: 'VSelectionControl'
|
|
6344
6603
|
},
|
|
6604
|
+
...makeComponentProps(),
|
|
6345
6605
|
...makeSelectionControlGroupProps()
|
|
6346
6606
|
},
|
|
6347
6607
|
emits: {
|
|
@@ -6389,7 +6649,8 @@
|
|
|
6389
6649
|
useRender(() => vue.createVNode("div", {
|
|
6390
6650
|
"class": ['v-selection-control-group', {
|
|
6391
6651
|
'v-selection-control-group--inline': props.inline
|
|
6392
|
-
}],
|
|
6652
|
+
}, props.class],
|
|
6653
|
+
"style": props.style,
|
|
6393
6654
|
"role": props.type === 'radio' ? 'radiogroup' : undefined
|
|
6394
6655
|
}, [slots.default?.()]));
|
|
6395
6656
|
return {};
|
|
@@ -6403,6 +6664,7 @@
|
|
|
6403
6664
|
trueValue: null,
|
|
6404
6665
|
falseValue: null,
|
|
6405
6666
|
value: null,
|
|
6667
|
+
...makeComponentProps(),
|
|
6406
6668
|
...makeSelectionControlGroupProps()
|
|
6407
6669
|
}, 'v-selection-control');
|
|
6408
6670
|
function useSelectionControl(props) {
|
|
@@ -6517,8 +6779,10 @@
|
|
|
6517
6779
|
'v-selection-control--focused': isFocused.value,
|
|
6518
6780
|
'v-selection-control--focus-visible': isFocusVisible.value,
|
|
6519
6781
|
'v-selection-control--inline': props.inline
|
|
6520
|
-
}, densityClasses.value]
|
|
6521
|
-
}, rootAttrs
|
|
6782
|
+
}, densityClasses.value, props.class]
|
|
6783
|
+
}, rootAttrs, {
|
|
6784
|
+
"style": props.style
|
|
6785
|
+
}), [vue.createVNode("div", {
|
|
6522
6786
|
"class": ['v-selection-control__wrapper', textColorClasses.value],
|
|
6523
6787
|
"style": textColorStyles.value
|
|
6524
6788
|
}, [slots.default?.(), vue.withDirectives(vue.createVNode("div", {
|
|
@@ -6600,7 +6864,8 @@
|
|
|
6600
6864
|
useRender(() => vue.createVNode(VSelectionControl, vue.mergeProps(props, {
|
|
6601
6865
|
"modelValue": model.value,
|
|
6602
6866
|
"onUpdate:modelValue": [$event => model.value = $event, onChange],
|
|
6603
|
-
"class":
|
|
6867
|
+
"class": ['v-checkbox-btn', props.class],
|
|
6868
|
+
"style": props.style,
|
|
6604
6869
|
"type": "checkbox",
|
|
6605
6870
|
"inline": true,
|
|
6606
6871
|
"falseIcon": falseIcon.value,
|
|
@@ -6640,10 +6905,11 @@
|
|
|
6640
6905
|
const [inputProps, _1] = VInput.filterProps(props);
|
|
6641
6906
|
const [checkboxProps, _2] = VCheckboxBtn.filterProps(props);
|
|
6642
6907
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
6643
|
-
"class":
|
|
6908
|
+
"class": ['v-checkbox', props.class]
|
|
6644
6909
|
}, inputAttrs, inputProps, {
|
|
6645
6910
|
"id": id.value,
|
|
6646
|
-
"focused": isFocused.value
|
|
6911
|
+
"focused": isFocused.value,
|
|
6912
|
+
"style": props.style
|
|
6647
6913
|
}), {
|
|
6648
6914
|
...slots,
|
|
6649
6915
|
default: _ref2 => {
|
|
@@ -6674,6 +6940,7 @@
|
|
|
6674
6940
|
end: Boolean,
|
|
6675
6941
|
icon: IconValue,
|
|
6676
6942
|
image: String,
|
|
6943
|
+
...makeComponentProps(),
|
|
6677
6944
|
...makeDensityProps(),
|
|
6678
6945
|
...makeRoundedProps(),
|
|
6679
6946
|
...makeSizeProps(),
|
|
@@ -6712,8 +6979,8 @@
|
|
|
6712
6979
|
"class": ['v-avatar', {
|
|
6713
6980
|
'v-avatar--start': props.start,
|
|
6714
6981
|
'v-avatar--end': props.end
|
|
6715
|
-
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value],
|
|
6716
|
-
"style": [colorStyles.value, sizeStyles.value]
|
|
6982
|
+
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
|
6983
|
+
"style": [colorStyles.value, sizeStyles.value, props.style]
|
|
6717
6984
|
}, {
|
|
6718
6985
|
default: () => [props.image ? vue.createVNode(VImg, {
|
|
6719
6986
|
"key": "image",
|
|
@@ -6741,6 +7008,7 @@
|
|
|
6741
7008
|
type: Function,
|
|
6742
7009
|
default: deepEqual
|
|
6743
7010
|
},
|
|
7011
|
+
...makeComponentProps(),
|
|
6744
7012
|
...makeGroupProps({
|
|
6745
7013
|
selectedClass: 'v-chip--selected'
|
|
6746
7014
|
}),
|
|
@@ -6778,7 +7046,8 @@
|
|
|
6778
7046
|
useRender(() => vue.createVNode(props.tag, {
|
|
6779
7047
|
"class": ['v-chip-group', {
|
|
6780
7048
|
'v-chip-group--column': props.column
|
|
6781
|
-
}, themeClasses.value]
|
|
7049
|
+
}, themeClasses.value, props.class],
|
|
7050
|
+
"style": props.style
|
|
6782
7051
|
}, {
|
|
6783
7052
|
default: () => [slots.default?.({
|
|
6784
7053
|
isSelected,
|
|
@@ -6792,8 +7061,6 @@
|
|
|
6792
7061
|
}
|
|
6793
7062
|
});
|
|
6794
7063
|
|
|
6795
|
-
// Types
|
|
6796
|
-
|
|
6797
7064
|
const VChip = genericComponent()({
|
|
6798
7065
|
name: 'VChip',
|
|
6799
7066
|
directives: {
|
|
@@ -6838,6 +7105,7 @@
|
|
|
6838
7105
|
onClick: EventProp(),
|
|
6839
7106
|
onClickOnce: EventProp(),
|
|
6840
7107
|
...makeBorderProps(),
|
|
7108
|
+
...makeComponentProps(),
|
|
6841
7109
|
...makeDensityProps(),
|
|
6842
7110
|
...makeElevationProps(),
|
|
6843
7111
|
...makeGroupItemProps(),
|
|
@@ -6930,8 +7198,8 @@
|
|
|
6930
7198
|
'v-chip--link': isClickable.value,
|
|
6931
7199
|
'v-chip--filter': hasFilter,
|
|
6932
7200
|
'v-chip--pill': props.pill
|
|
6933
|
-
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value],
|
|
6934
|
-
"style": [hasColor ? colorStyles.value : undefined],
|
|
7201
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value, props.class],
|
|
7202
|
+
"style": [hasColor ? colorStyles.value : undefined, props.style],
|
|
6935
7203
|
"disabled": props.disabled || undefined,
|
|
6936
7204
|
"draggable": props.draggable,
|
|
6937
7205
|
"href": link.href.value,
|
|
@@ -7040,6 +7308,7 @@
|
|
|
7040
7308
|
length: [Number, String],
|
|
7041
7309
|
thickness: [Number, String],
|
|
7042
7310
|
vertical: Boolean,
|
|
7311
|
+
...makeComponentProps(),
|
|
7043
7312
|
...makeThemeProps()
|
|
7044
7313
|
},
|
|
7045
7314
|
setup(props, _ref) {
|
|
@@ -7068,8 +7337,8 @@
|
|
|
7068
7337
|
'v-divider': true,
|
|
7069
7338
|
'v-divider--inset': props.inset,
|
|
7070
7339
|
'v-divider--vertical': props.vertical
|
|
7071
|
-
}, themeClasses.value, textColorClasses.value],
|
|
7072
|
-
"style": [dividerStyles.value, textColorStyles.value],
|
|
7340
|
+
}, themeClasses.value, textColorClasses.value, props.class],
|
|
7341
|
+
"style": [dividerStyles.value, textColorStyles.value, props.style],
|
|
7073
7342
|
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
|
7074
7343
|
"role": `${attrs.role || 'separator'}`
|
|
7075
7344
|
}, null));
|
|
@@ -7568,6 +7837,7 @@
|
|
|
7568
7837
|
fluid: Boolean,
|
|
7569
7838
|
subgroup: Boolean,
|
|
7570
7839
|
value: null,
|
|
7840
|
+
...makeComponentProps(),
|
|
7571
7841
|
...makeTagProps()
|
|
7572
7842
|
}, 'v-list-group');
|
|
7573
7843
|
const VListGroup = genericComponent()({
|
|
@@ -7616,7 +7886,8 @@
|
|
|
7616
7886
|
'v-list-group--fluid': props.fluid,
|
|
7617
7887
|
'v-list-group--subgroup': props.subgroup,
|
|
7618
7888
|
'v-list-group--open': isOpen.value
|
|
7619
|
-
}]
|
|
7889
|
+
}, props.class],
|
|
7890
|
+
"style": props.style
|
|
7620
7891
|
}, {
|
|
7621
7892
|
default: () => [slots.activator && vue.createVNode(VDefaultsProvider, {
|
|
7622
7893
|
"defaults": activatorDefaults.value
|
|
@@ -7683,6 +7954,7 @@
|
|
|
7683
7954
|
onClick: EventProp(),
|
|
7684
7955
|
onClickOnce: EventProp(),
|
|
7685
7956
|
...makeBorderProps(),
|
|
7957
|
+
...makeComponentProps(),
|
|
7686
7958
|
...makeDensityProps(),
|
|
7687
7959
|
...makeDimensionProps(),
|
|
7688
7960
|
...makeElevationProps(),
|
|
@@ -7793,8 +8065,8 @@
|
|
|
7793
8065
|
'v-list-item--nav': props.nav,
|
|
7794
8066
|
'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,
|
|
7795
8067
|
[`${props.activeClass}`]: props.activeClass && isActive.value
|
|
7796
|
-
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value],
|
|
7797
|
-
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value],
|
|
8068
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
|
8069
|
+
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, props.style],
|
|
7798
8070
|
"href": link.href.value,
|
|
7799
8071
|
"tabindex": isClickable.value ? 0 : undefined,
|
|
7800
8072
|
"onClick": onClick,
|
|
@@ -7887,6 +8159,7 @@
|
|
|
7887
8159
|
inset: Boolean,
|
|
7888
8160
|
sticky: Boolean,
|
|
7889
8161
|
title: String,
|
|
8162
|
+
...makeComponentProps(),
|
|
7890
8163
|
...makeTagProps()
|
|
7891
8164
|
},
|
|
7892
8165
|
setup(props, _ref) {
|
|
@@ -7903,10 +8176,10 @@
|
|
|
7903
8176
|
"class": ['v-list-subheader', {
|
|
7904
8177
|
'v-list-subheader--inset': props.inset,
|
|
7905
8178
|
'v-list-subheader--sticky': props.sticky
|
|
7906
|
-
}, textColorClasses.value],
|
|
7907
|
-
"style": {
|
|
8179
|
+
}, textColorClasses.value, props.class],
|
|
8180
|
+
"style": [{
|
|
7908
8181
|
textColorStyles
|
|
7909
|
-
}
|
|
8182
|
+
}, props.style]
|
|
7910
8183
|
}, {
|
|
7911
8184
|
default: () => [hasText && vue.createVNode("div", {
|
|
7912
8185
|
"class": "v-list-subheader__text"
|
|
@@ -8126,6 +8399,7 @@
|
|
|
8126
8399
|
openStrategy: 'list'
|
|
8127
8400
|
}),
|
|
8128
8401
|
...makeBorderProps(),
|
|
8402
|
+
...makeComponentProps(),
|
|
8129
8403
|
...makeDensityProps(),
|
|
8130
8404
|
...makeDimensionProps(),
|
|
8131
8405
|
...makeElevationProps(),
|
|
@@ -8227,27 +8501,8 @@
|
|
|
8227
8501
|
e.preventDefault();
|
|
8228
8502
|
}
|
|
8229
8503
|
function focus(location) {
|
|
8230
|
-
if (
|
|
8231
|
-
|
|
8232
|
-
const focusable = [...contentRef.value.querySelectorAll(targets)].filter(el => !el.hasAttribute('disabled'));
|
|
8233
|
-
const idx = focusable.indexOf(document.activeElement);
|
|
8234
|
-
if (!location) {
|
|
8235
|
-
if (!contentRef.value.contains(document.activeElement)) {
|
|
8236
|
-
focusable[0]?.focus();
|
|
8237
|
-
}
|
|
8238
|
-
} else if (location === 'first') {
|
|
8239
|
-
focusable[0]?.focus();
|
|
8240
|
-
} else if (location === 'last') {
|
|
8241
|
-
focusable.at(-1)?.focus();
|
|
8242
|
-
} else {
|
|
8243
|
-
let el;
|
|
8244
|
-
let idxx = idx;
|
|
8245
|
-
const inc = location === 'next' ? 1 : -1;
|
|
8246
|
-
do {
|
|
8247
|
-
idxx += inc;
|
|
8248
|
-
el = focusable[idxx];
|
|
8249
|
-
} while ((!el || el.offsetParent == null) && idxx < focusable.length && idxx >= 0);
|
|
8250
|
-
if (el) el.focus();else focus(location === 'next' ? 'first' : 'last');
|
|
8504
|
+
if (contentRef.value) {
|
|
8505
|
+
return focusChild(contentRef.value, location);
|
|
8251
8506
|
}
|
|
8252
8507
|
}
|
|
8253
8508
|
useRender(() => {
|
|
@@ -8256,8 +8511,8 @@
|
|
|
8256
8511
|
"class": ['v-list', {
|
|
8257
8512
|
'v-list--disabled': props.disabled,
|
|
8258
8513
|
'v-list--nav': props.nav
|
|
8259
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value],
|
|
8260
|
-
"style": [backgroundColorStyles.value, dimensionStyles.value],
|
|
8514
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class],
|
|
8515
|
+
"style": [backgroundColorStyles.value, dimensionStyles.value, props.style],
|
|
8261
8516
|
"role": "listbox",
|
|
8262
8517
|
"aria-activedescendant": undefined,
|
|
8263
8518
|
"onFocusin": onFocusin,
|
|
@@ -8285,6 +8540,7 @@
|
|
|
8285
8540
|
props: {
|
|
8286
8541
|
start: Boolean,
|
|
8287
8542
|
end: Boolean,
|
|
8543
|
+
...makeComponentProps(),
|
|
8288
8544
|
...makeTagProps()
|
|
8289
8545
|
},
|
|
8290
8546
|
setup(props, _ref) {
|
|
@@ -8295,7 +8551,8 @@
|
|
|
8295
8551
|
"class": ['v-list-item-action', {
|
|
8296
8552
|
'v-list-item-action--start': props.start,
|
|
8297
8553
|
'v-list-item-action--end': props.end
|
|
8298
|
-
}]
|
|
8554
|
+
}, props.class],
|
|
8555
|
+
"style": props.style
|
|
8299
8556
|
}, slots));
|
|
8300
8557
|
return {};
|
|
8301
8558
|
}
|
|
@@ -8306,6 +8563,7 @@
|
|
|
8306
8563
|
props: {
|
|
8307
8564
|
start: Boolean,
|
|
8308
8565
|
end: Boolean,
|
|
8566
|
+
...makeComponentProps(),
|
|
8309
8567
|
...makeTagProps()
|
|
8310
8568
|
},
|
|
8311
8569
|
setup(props, _ref) {
|
|
@@ -8317,7 +8575,8 @@
|
|
|
8317
8575
|
"class": ['v-list-item-media', {
|
|
8318
8576
|
'v-list-item-media--start': props.start,
|
|
8319
8577
|
'v-list-item-media--end': props.end
|
|
8320
|
-
}]
|
|
8578
|
+
}, props.class],
|
|
8579
|
+
"style": props.style
|
|
8321
8580
|
}, slots);
|
|
8322
8581
|
});
|
|
8323
8582
|
return {};
|
|
@@ -9558,6 +9817,7 @@
|
|
|
9558
9817
|
default: 2000
|
|
9559
9818
|
},
|
|
9560
9819
|
...makeActivatorProps(),
|
|
9820
|
+
...makeComponentProps(),
|
|
9561
9821
|
...makeDimensionProps(),
|
|
9562
9822
|
...makeLazyProps(),
|
|
9563
9823
|
...makeLocationStrategyProps(),
|
|
@@ -9725,10 +9985,10 @@
|
|
|
9725
9985
|
'v-overlay--absolute': props.absolute || props.contained,
|
|
9726
9986
|
'v-overlay--active': isActive.value,
|
|
9727
9987
|
'v-overlay--contained': props.contained
|
|
9728
|
-
}, themeClasses.value, rtlClasses.value],
|
|
9988
|
+
}, themeClasses.value, rtlClasses.value, props.class],
|
|
9729
9989
|
"style": [stackStyles.value, {
|
|
9730
9990
|
top: convertToUnit(top.value)
|
|
9731
|
-
}],
|
|
9991
|
+
}, props.style],
|
|
9732
9992
|
"ref": root
|
|
9733
9993
|
}, scopeId, attrs), [vue.createVNode(Scrim, vue.mergeProps({
|
|
9734
9994
|
"color": scrimColor,
|
|
@@ -9834,7 +10094,8 @@
|
|
|
9834
10094
|
const [overlayProps] = VOverlay.filterProps(props);
|
|
9835
10095
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
|
9836
10096
|
"ref": overlay,
|
|
9837
|
-
"class": ['v-menu']
|
|
10097
|
+
"class": ['v-menu', props.class],
|
|
10098
|
+
"style": props.style
|
|
9838
10099
|
}, overlayProps, {
|
|
9839
10100
|
"modelValue": isActive.value,
|
|
9840
10101
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
@@ -10053,7 +10314,8 @@
|
|
|
10053
10314
|
'v-select--chips': !!props.chips,
|
|
10054
10315
|
[`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,
|
|
10055
10316
|
'v-select--selected': model.value.length
|
|
10056
|
-
}],
|
|
10317
|
+
}, props.class],
|
|
10318
|
+
"style": props.style,
|
|
10057
10319
|
"appendInnerIcon": props.menuIcon,
|
|
10058
10320
|
"readonly": true,
|
|
10059
10321
|
"placeholder": placeholder,
|
|
@@ -10496,7 +10758,8 @@
|
|
|
10496
10758
|
'v-autocomplete--selecting-index': selectionIndex.value > -1,
|
|
10497
10759
|
[`v-autocomplete--${props.multiple ? 'multiple' : 'single'}`]: true,
|
|
10498
10760
|
'v-autocomplete--selection-slot': !!slots.selection
|
|
10499
|
-
}],
|
|
10761
|
+
}, props.class],
|
|
10762
|
+
"style": props.style,
|
|
10500
10763
|
"appendInnerIcon": props.menuIcon,
|
|
10501
10764
|
"readonly": props.readonly,
|
|
10502
10765
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
@@ -10610,8 +10873,6 @@
|
|
|
10610
10873
|
}
|
|
10611
10874
|
});
|
|
10612
10875
|
|
|
10613
|
-
// Types
|
|
10614
|
-
|
|
10615
10876
|
const VBadge = genericComponent()({
|
|
10616
10877
|
name: 'VBadge',
|
|
10617
10878
|
inheritAttrs: false,
|
|
@@ -10635,6 +10896,7 @@
|
|
|
10635
10896
|
offsetX: [Number, String],
|
|
10636
10897
|
offsetY: [Number, String],
|
|
10637
10898
|
textColor: String,
|
|
10899
|
+
...makeComponentProps(),
|
|
10638
10900
|
...makeLocationProps({
|
|
10639
10901
|
location: 'top end'
|
|
10640
10902
|
}),
|
|
@@ -10679,8 +10941,10 @@
|
|
|
10679
10941
|
'v-badge--dot': props.dot,
|
|
10680
10942
|
'v-badge--floating': props.floating,
|
|
10681
10943
|
'v-badge--inline': props.inline
|
|
10682
|
-
}]
|
|
10683
|
-
}, attrs
|
|
10944
|
+
}, props.class]
|
|
10945
|
+
}, attrs, {
|
|
10946
|
+
"style": props.style
|
|
10947
|
+
}), {
|
|
10684
10948
|
default: () => [vue.createVNode("div", {
|
|
10685
10949
|
"class": "v-badge__wrapper"
|
|
10686
10950
|
}, [ctx.slots.default?.(), vue.createVNode(MaybeTransition, {
|
|
@@ -10707,7 +10971,8 @@
|
|
|
10707
10971
|
name: 'VBannerActions',
|
|
10708
10972
|
props: {
|
|
10709
10973
|
color: String,
|
|
10710
|
-
density: String
|
|
10974
|
+
density: String,
|
|
10975
|
+
...makeComponentProps()
|
|
10711
10976
|
},
|
|
10712
10977
|
setup(props, _ref) {
|
|
10713
10978
|
let {
|
|
@@ -10721,7 +10986,8 @@
|
|
|
10721
10986
|
}
|
|
10722
10987
|
});
|
|
10723
10988
|
useRender(() => vue.createVNode("div", {
|
|
10724
|
-
"class":
|
|
10989
|
+
"class": ['v-banner-actions', props.class],
|
|
10990
|
+
"style": props.style
|
|
10725
10991
|
}, [slots.default?.()]));
|
|
10726
10992
|
return {};
|
|
10727
10993
|
}
|
|
@@ -10742,6 +11008,7 @@
|
|
|
10742
11008
|
sticky: Boolean,
|
|
10743
11009
|
text: String,
|
|
10744
11010
|
...makeBorderProps(),
|
|
11011
|
+
...makeComponentProps(),
|
|
10745
11012
|
...makeDensityProps(),
|
|
10746
11013
|
...makeDimensionProps(),
|
|
10747
11014
|
...makeElevationProps(),
|
|
@@ -10799,8 +11066,8 @@
|
|
|
10799
11066
|
'v-banner--stacked': props.stacked || mobile.value,
|
|
10800
11067
|
'v-banner--sticky': props.sticky,
|
|
10801
11068
|
[`v-banner--${props.lines}-line`]: !!props.lines
|
|
10802
|
-
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value],
|
|
10803
|
-
"style": [dimensionStyles.value, locationStyles.value],
|
|
11069
|
+
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
11070
|
+
"style": [dimensionStyles.value, locationStyles.value, props.style],
|
|
10804
11071
|
"role": "banner"
|
|
10805
11072
|
}, {
|
|
10806
11073
|
default: () => [hasPrepend && vue.createVNode("div", {
|
|
@@ -10856,6 +11123,7 @@
|
|
|
10856
11123
|
default: true
|
|
10857
11124
|
},
|
|
10858
11125
|
...makeBorderProps(),
|
|
11126
|
+
...makeComponentProps(),
|
|
10859
11127
|
...makeDensityProps(),
|
|
10860
11128
|
...makeElevationProps(),
|
|
10861
11129
|
...makeRoundedProps(),
|
|
@@ -10930,11 +11198,11 @@
|
|
|
10930
11198
|
'v-bottom-navigation--active': isActive.value,
|
|
10931
11199
|
'v-bottom-navigation--grow': props.grow,
|
|
10932
11200
|
'v-bottom-navigation--shift': props.mode === 'shift'
|
|
10933
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value],
|
|
11201
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
10934
11202
|
"style": [backgroundColorStyles.value, layoutItemStyles.value, {
|
|
10935
11203
|
height: convertToUnit(height.value),
|
|
10936
11204
|
transform: `translateY(${convertToUnit(!isActive.value ? 100 : 0, '%')})`
|
|
10937
|
-
}, ssrBootStyles.value]
|
|
11205
|
+
}, ssrBootStyles.value, props.style]
|
|
10938
11206
|
}, {
|
|
10939
11207
|
default: () => [slots.default && vue.createVNode("div", {
|
|
10940
11208
|
"class": "v-bottom-navigation__content"
|
|
@@ -10948,14 +11216,16 @@
|
|
|
10948
11216
|
const VBreadcrumbsDivider = genericComponent()({
|
|
10949
11217
|
name: 'VBreadcrumbsDivider',
|
|
10950
11218
|
props: {
|
|
10951
|
-
divider: [Number, String]
|
|
11219
|
+
divider: [Number, String],
|
|
11220
|
+
...makeComponentProps()
|
|
10952
11221
|
},
|
|
10953
11222
|
setup(props, _ref) {
|
|
10954
11223
|
let {
|
|
10955
11224
|
slots
|
|
10956
11225
|
} = _ref;
|
|
10957
11226
|
useRender(() => vue.createVNode("li", {
|
|
10958
|
-
"class":
|
|
11227
|
+
"class": ['v-breadcrumbs-divider', props.class],
|
|
11228
|
+
"style": props.style
|
|
10959
11229
|
}, [slots?.default?.() ?? props.divider]));
|
|
10960
11230
|
return {};
|
|
10961
11231
|
}
|
|
@@ -10970,6 +11240,7 @@
|
|
|
10970
11240
|
color: String,
|
|
10971
11241
|
disabled: Boolean,
|
|
10972
11242
|
title: String,
|
|
11243
|
+
...makeComponentProps(),
|
|
10973
11244
|
...makeRouterProps(),
|
|
10974
11245
|
...makeTagProps({
|
|
10975
11246
|
tag: 'li'
|
|
@@ -10995,8 +11266,8 @@
|
|
|
10995
11266
|
'v-breadcrumbs-item--disabled': props.disabled,
|
|
10996
11267
|
'v-breadcrumbs-item--link': link.isLink.value,
|
|
10997
11268
|
[`${props.activeClass}`]: isActive.value && props.activeClass
|
|
10998
|
-
}, textColorClasses.value],
|
|
10999
|
-
"style": [textColorStyles.value],
|
|
11269
|
+
}, textColorClasses.value, props.class],
|
|
11270
|
+
"style": [textColorStyles.value, props.style],
|
|
11000
11271
|
"href": link.href.value,
|
|
11001
11272
|
"aria-current": isActive.value ? 'page' : undefined,
|
|
11002
11273
|
"onClick": link.navigate
|
|
@@ -11027,6 +11298,7 @@
|
|
|
11027
11298
|
type: Array,
|
|
11028
11299
|
default: () => []
|
|
11029
11300
|
},
|
|
11301
|
+
...makeComponentProps(),
|
|
11030
11302
|
...makeDensityProps(),
|
|
11031
11303
|
...makeRoundedProps(),
|
|
11032
11304
|
...makeTagProps({
|
|
@@ -11058,11 +11330,22 @@
|
|
|
11058
11330
|
disabled: vue.toRef(props, 'disabled')
|
|
11059
11331
|
}
|
|
11060
11332
|
});
|
|
11333
|
+
const items = vue.computed(() => props.items.map(item => {
|
|
11334
|
+
return typeof item === 'string' ? {
|
|
11335
|
+
item: {
|
|
11336
|
+
title: item
|
|
11337
|
+
},
|
|
11338
|
+
raw: item
|
|
11339
|
+
} : {
|
|
11340
|
+
item,
|
|
11341
|
+
raw: item
|
|
11342
|
+
};
|
|
11343
|
+
}));
|
|
11061
11344
|
useRender(() => {
|
|
11062
11345
|
const hasPrepend = !!(slots.prepend || props.icon);
|
|
11063
11346
|
return vue.createVNode(props.tag, {
|
|
11064
|
-
"class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value],
|
|
11065
|
-
"style": backgroundColorStyles.value
|
|
11347
|
+
"class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value, props.class],
|
|
11348
|
+
"style": [backgroundColorStyles.value, props.style]
|
|
11066
11349
|
}, {
|
|
11067
11350
|
default: () => [hasPrepend && vue.createVNode("div", {
|
|
11068
11351
|
"key": "prepend",
|
|
@@ -11080,33 +11363,36 @@
|
|
|
11080
11363
|
start: true
|
|
11081
11364
|
}
|
|
11082
11365
|
}
|
|
11083
|
-
}, slots.prepend)]),
|
|
11084
|
-
|
|
11085
|
-
"disabled": index >= array.length - 1
|
|
11086
|
-
}, typeof item === 'string' ? {
|
|
11087
|
-
title: item
|
|
11088
|
-
} : item), {
|
|
11089
|
-
default: slots.title ? () => slots.title?.({
|
|
11090
|
-
item,
|
|
11091
|
-
index
|
|
11092
|
-
}) : undefined
|
|
11093
|
-
}), index < array.length - 1 && vue.createVNode(VBreadcrumbsDivider, null, {
|
|
11094
|
-
default: slots.divider ? () => slots.divider?.({
|
|
11366
|
+
}, slots.prepend)]), items.value.map((_ref2, index, array) => {
|
|
11367
|
+
let {
|
|
11095
11368
|
item,
|
|
11096
|
-
|
|
11097
|
-
}
|
|
11098
|
-
|
|
11369
|
+
raw
|
|
11370
|
+
} = _ref2;
|
|
11371
|
+
return vue.createVNode(vue.Fragment, null, [vue.createVNode(VBreadcrumbsItem, vue.mergeProps({
|
|
11372
|
+
"key": item.title,
|
|
11373
|
+
"disabled": index >= array.length - 1
|
|
11374
|
+
}, item), {
|
|
11375
|
+
default: slots.title ? () => slots.title?.({
|
|
11376
|
+
item: raw,
|
|
11377
|
+
index
|
|
11378
|
+
}) : undefined
|
|
11379
|
+
}), index < array.length - 1 && vue.createVNode(VBreadcrumbsDivider, null, {
|
|
11380
|
+
default: slots.divider ? () => slots.divider?.({
|
|
11381
|
+
item: raw,
|
|
11382
|
+
index
|
|
11383
|
+
}) : undefined
|
|
11384
|
+
})]);
|
|
11385
|
+
}), slots.default?.()]
|
|
11099
11386
|
});
|
|
11100
11387
|
});
|
|
11101
11388
|
return {};
|
|
11102
11389
|
}
|
|
11103
11390
|
});
|
|
11104
11391
|
|
|
11105
|
-
|
|
11106
|
-
|
|
11107
|
-
const VCardActions = defineComponent({
|
|
11392
|
+
const VCardActions = genericComponent()({
|
|
11108
11393
|
name: 'VCardActions',
|
|
11109
|
-
|
|
11394
|
+
props: makeComponentProps(),
|
|
11395
|
+
setup(props, _ref) {
|
|
11110
11396
|
let {
|
|
11111
11397
|
slots
|
|
11112
11398
|
} = _ref;
|
|
@@ -11116,7 +11402,8 @@
|
|
|
11116
11402
|
}
|
|
11117
11403
|
});
|
|
11118
11404
|
useRender(() => vue.createVNode("div", {
|
|
11119
|
-
"class":
|
|
11405
|
+
"class": ['v-card-actions', props.class],
|
|
11406
|
+
"style": props.style
|
|
11120
11407
|
}, [slots.default?.()]));
|
|
11121
11408
|
return {};
|
|
11122
11409
|
}
|
|
@@ -11126,8 +11413,6 @@
|
|
|
11126
11413
|
|
|
11127
11414
|
const VCardTitle = createSimpleFunctional('v-card-title');
|
|
11128
11415
|
|
|
11129
|
-
// Types
|
|
11130
|
-
|
|
11131
11416
|
const VCardItem = genericComponent()({
|
|
11132
11417
|
name: 'VCardItem',
|
|
11133
11418
|
props: {
|
|
@@ -11137,6 +11422,7 @@
|
|
|
11137
11422
|
prependIcon: IconValue,
|
|
11138
11423
|
subtitle: String,
|
|
11139
11424
|
title: String,
|
|
11425
|
+
...makeComponentProps(),
|
|
11140
11426
|
...makeDensityProps()
|
|
11141
11427
|
},
|
|
11142
11428
|
setup(props, _ref) {
|
|
@@ -11151,7 +11437,8 @@
|
|
|
11151
11437
|
const hasTitle = !!(props.title || slots.title);
|
|
11152
11438
|
const hasSubtitle = !!(props.subtitle || slots.subtitle);
|
|
11153
11439
|
return vue.createVNode("div", {
|
|
11154
|
-
"class":
|
|
11440
|
+
"class": ['v-card-item', props.class],
|
|
11441
|
+
"style": props.style
|
|
11155
11442
|
}, [hasPrepend && vue.createVNode("div", {
|
|
11156
11443
|
"key": "prepend",
|
|
11157
11444
|
"class": "v-card-item__prepend"
|
|
@@ -11233,8 +11520,8 @@
|
|
|
11233
11520
|
subtitle: String,
|
|
11234
11521
|
text: String,
|
|
11235
11522
|
title: String,
|
|
11236
|
-
...makeThemeProps(),
|
|
11237
11523
|
...makeBorderProps(),
|
|
11524
|
+
...makeComponentProps(),
|
|
11238
11525
|
...makeDensityProps(),
|
|
11239
11526
|
...makeDimensionProps(),
|
|
11240
11527
|
...makeElevationProps(),
|
|
@@ -11244,6 +11531,7 @@
|
|
|
11244
11531
|
...makeRoundedProps(),
|
|
11245
11532
|
...makeRouterProps(),
|
|
11246
11533
|
...makeTagProps(),
|
|
11534
|
+
...makeThemeProps(),
|
|
11247
11535
|
...makeVariantProps({
|
|
11248
11536
|
variant: 'elevated'
|
|
11249
11537
|
})
|
|
@@ -11304,8 +11592,8 @@
|
|
|
11304
11592
|
'v-card--flat': props.flat,
|
|
11305
11593
|
'v-card--hover': props.hover && !(props.disabled || props.flat),
|
|
11306
11594
|
'v-card--link': isClickable.value
|
|
11307
|
-
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value],
|
|
11308
|
-
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value],
|
|
11595
|
+
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
|
11596
|
+
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
|
|
11309
11597
|
"href": link.href.value,
|
|
11310
11598
|
"onClick": isClickable.value && link.navigate,
|
|
11311
11599
|
"tabindex": props.disabled ? -1 : undefined
|
|
@@ -11501,6 +11789,7 @@
|
|
|
11501
11789
|
mandatory: {
|
|
11502
11790
|
default: 'force'
|
|
11503
11791
|
},
|
|
11792
|
+
...makeComponentProps(),
|
|
11504
11793
|
...makeTagProps(),
|
|
11505
11794
|
...makeThemeProps()
|
|
11506
11795
|
}, 'v-window');
|
|
@@ -11616,7 +11905,8 @@
|
|
|
11616
11905
|
"ref": rootRef,
|
|
11617
11906
|
"class": ['v-window', {
|
|
11618
11907
|
'v-window--show-arrows-on-hover': props.showArrows === 'hover'
|
|
11619
|
-
}, themeClasses.value]
|
|
11908
|
+
}, themeClasses.value, props.class],
|
|
11909
|
+
"style": props.style
|
|
11620
11910
|
}, {
|
|
11621
11911
|
default: () => [vue.createVNode("div", {
|
|
11622
11912
|
"class": "v-window__container",
|
|
@@ -11701,10 +11991,10 @@
|
|
|
11701
11991
|
"class": ['v-carousel', {
|
|
11702
11992
|
'v-carousel--hide-delimiter-background': props.hideDelimiterBackground,
|
|
11703
11993
|
'v-carousel--vertical-delimiters': props.verticalDelimiters
|
|
11704
|
-
}],
|
|
11705
|
-
"style": {
|
|
11994
|
+
}, props.class],
|
|
11995
|
+
"style": [{
|
|
11706
11996
|
height: convertToUnit(props.height)
|
|
11707
|
-
},
|
|
11997
|
+
}, props.style],
|
|
11708
11998
|
"continuous": true,
|
|
11709
11999
|
"mandatory": "force",
|
|
11710
12000
|
"showArrows": props.showArrows
|
|
@@ -11770,6 +12060,7 @@
|
|
|
11770
12060
|
type: [Boolean, String],
|
|
11771
12061
|
default: undefined
|
|
11772
12062
|
},
|
|
12063
|
+
...makeComponentProps(),
|
|
11773
12064
|
...makeGroupItemProps(),
|
|
11774
12065
|
...makeLazyProps()
|
|
11775
12066
|
},
|
|
@@ -11856,7 +12147,8 @@
|
|
|
11856
12147
|
"disabled": !isBooted.value
|
|
11857
12148
|
}, {
|
|
11858
12149
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
|
11859
|
-
"class": ['v-window-item', groupItem.selectedClass.value]
|
|
12150
|
+
"class": ['v-window-item', groupItem.selectedClass.value, props.class],
|
|
12151
|
+
"style": props.style
|
|
11860
12152
|
}, [hasContent.value && slots.default?.()]), [[vue.vShow, groupItem.isSelected.value]])]
|
|
11861
12153
|
}));
|
|
11862
12154
|
return {};
|
|
@@ -11869,7 +12161,8 @@
|
|
|
11869
12161
|
name: 'VCarouselItem',
|
|
11870
12162
|
inheritAttrs: false,
|
|
11871
12163
|
props: {
|
|
11872
|
-
value: null
|
|
12164
|
+
value: null,
|
|
12165
|
+
...makeComponentProps()
|
|
11873
12166
|
},
|
|
11874
12167
|
setup(props, _ref) {
|
|
11875
12168
|
let {
|
|
@@ -11877,7 +12170,8 @@
|
|
|
11877
12170
|
attrs
|
|
11878
12171
|
} = _ref;
|
|
11879
12172
|
useRender(() => vue.createVNode(VWindowItem, {
|
|
11880
|
-
"class":
|
|
12173
|
+
"class": ['v-carousel-item', props.class],
|
|
12174
|
+
"style": props.style,
|
|
11881
12175
|
"value": props.value
|
|
11882
12176
|
}, {
|
|
11883
12177
|
default: () => [vue.createVNode(VImg, attrs, slots)]
|
|
@@ -11890,6 +12184,7 @@
|
|
|
11890
12184
|
const makeVSheetProps = propsFactory({
|
|
11891
12185
|
color: String,
|
|
11892
12186
|
...makeBorderProps(),
|
|
12187
|
+
...makeComponentProps(),
|
|
11893
12188
|
...makeDimensionProps(),
|
|
11894
12189
|
...makeElevationProps(),
|
|
11895
12190
|
...makeLocationProps(),
|
|
@@ -11933,8 +12228,8 @@
|
|
|
11933
12228
|
roundedClasses
|
|
11934
12229
|
} = useRounded(props);
|
|
11935
12230
|
useRender(() => vue.createVNode(props.tag, {
|
|
11936
|
-
"class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value],
|
|
11937
|
-
"style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value]
|
|
12231
|
+
"class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class],
|
|
12232
|
+
"style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style]
|
|
11938
12233
|
}, slots));
|
|
11939
12234
|
return {};
|
|
11940
12235
|
}
|
|
@@ -11960,7 +12255,8 @@
|
|
|
11960
12255
|
width: {
|
|
11961
12256
|
type: [Number, String],
|
|
11962
12257
|
default: 300
|
|
11963
|
-
}
|
|
12258
|
+
},
|
|
12259
|
+
...makeComponentProps()
|
|
11964
12260
|
},
|
|
11965
12261
|
emits: {
|
|
11966
12262
|
'update:color': color => true,
|
|
@@ -12105,7 +12401,8 @@
|
|
|
12105
12401
|
vue.onMounted(() => updateCanvas());
|
|
12106
12402
|
useRender(() => vue.createVNode("div", {
|
|
12107
12403
|
"ref": resizeRef,
|
|
12108
|
-
"class":
|
|
12404
|
+
"class": ['v-color-picker-canvas', props.class],
|
|
12405
|
+
"style": props.style,
|
|
12109
12406
|
"onClick": handleClick,
|
|
12110
12407
|
"onMousedown": handleMouseDown,
|
|
12111
12408
|
"onTouchstart": handleMouseDown
|
|
@@ -12338,7 +12635,8 @@
|
|
|
12338
12635
|
type: Array,
|
|
12339
12636
|
default: () => Object.keys(modes),
|
|
12340
12637
|
validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))
|
|
12341
|
-
}
|
|
12638
|
+
},
|
|
12639
|
+
...makeComponentProps()
|
|
12342
12640
|
},
|
|
12343
12641
|
emits: {
|
|
12344
12642
|
'update:color': color => true,
|
|
@@ -12378,7 +12676,8 @@
|
|
|
12378
12676
|
});
|
|
12379
12677
|
});
|
|
12380
12678
|
useRender(() => vue.createVNode("div", {
|
|
12381
|
-
"class":
|
|
12679
|
+
"class": ['v-color-picker-edit', props.class],
|
|
12680
|
+
"style": props.style
|
|
12382
12681
|
}, [inputs.value?.map(props => vue.createVNode(VColorPickerInput, props, null)), enabledModes.value.length > 1 && vue.createVNode(VBtn, {
|
|
12383
12682
|
"icon": "$unfold",
|
|
12384
12683
|
"size": "x-small",
|
|
@@ -12462,11 +12761,33 @@
|
|
|
12462
12761
|
elevation: 2
|
|
12463
12762
|
})
|
|
12464
12763
|
}, 'slider');
|
|
12764
|
+
const useSteps = props => {
|
|
12765
|
+
const min = vue.computed(() => parseFloat(props.min));
|
|
12766
|
+
const max = vue.computed(() => parseFloat(props.max));
|
|
12767
|
+
const step = vue.computed(() => +props.step > 0 ? parseFloat(props.step) : 0);
|
|
12768
|
+
const decimals = vue.computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
|
|
12769
|
+
function roundValue(value) {
|
|
12770
|
+
if (step.value <= 0) return value;
|
|
12771
|
+
const clamped = clamp(value, min.value, max.value);
|
|
12772
|
+
const offset = min.value % step.value;
|
|
12773
|
+
const newValue = Math.round((clamped - offset) / step.value) * step.value + offset;
|
|
12774
|
+
return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value));
|
|
12775
|
+
}
|
|
12776
|
+
return {
|
|
12777
|
+
min,
|
|
12778
|
+
max,
|
|
12779
|
+
step,
|
|
12780
|
+
decimals,
|
|
12781
|
+
roundValue
|
|
12782
|
+
};
|
|
12783
|
+
};
|
|
12465
12784
|
const useSlider = _ref => {
|
|
12466
12785
|
let {
|
|
12467
12786
|
props,
|
|
12468
|
-
|
|
12469
|
-
|
|
12787
|
+
steps,
|
|
12788
|
+
onSliderStart,
|
|
12789
|
+
onSliderMove,
|
|
12790
|
+
onSliderEnd,
|
|
12470
12791
|
getActiveThumb
|
|
12471
12792
|
} = _ref;
|
|
12472
12793
|
const {
|
|
@@ -12480,10 +12801,13 @@
|
|
|
12480
12801
|
}
|
|
12481
12802
|
return hd;
|
|
12482
12803
|
});
|
|
12483
|
-
const
|
|
12484
|
-
|
|
12485
|
-
|
|
12486
|
-
|
|
12804
|
+
const {
|
|
12805
|
+
min,
|
|
12806
|
+
max,
|
|
12807
|
+
step,
|
|
12808
|
+
decimals,
|
|
12809
|
+
roundValue
|
|
12810
|
+
} = steps;
|
|
12487
12811
|
const thumbSize = vue.computed(() => parseInt(props.thumbSize, 10));
|
|
12488
12812
|
const tickSize = vue.computed(() => parseInt(props.tickSize, 10));
|
|
12489
12813
|
const trackSize = vue.computed(() => parseInt(props.trackSize, 10));
|
|
@@ -12493,17 +12817,10 @@
|
|
|
12493
12817
|
const thumbColor = vue.computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color);
|
|
12494
12818
|
const trackColor = vue.computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color);
|
|
12495
12819
|
const trackFillColor = vue.computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color);
|
|
12496
|
-
const mousePressed = vue.ref(false);
|
|
12497
|
-
const startOffset = vue.ref(0);
|
|
12498
|
-
const trackContainerRef = vue.ref();
|
|
12499
|
-
const activeThumbRef = vue.ref();
|
|
12500
|
-
function roundValue(value) {
|
|
12501
|
-
if (step.value <= 0) return value;
|
|
12502
|
-
const clamped = clamp(value, min.value, max.value);
|
|
12503
|
-
const offset = min.value % step.value;
|
|
12504
|
-
const newValue = Math.round((clamped - offset) / step.value) * step.value + offset;
|
|
12505
|
-
return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value));
|
|
12506
|
-
}
|
|
12820
|
+
const mousePressed = vue.ref(false);
|
|
12821
|
+
const startOffset = vue.ref(0);
|
|
12822
|
+
const trackContainerRef = vue.ref();
|
|
12823
|
+
const activeThumbRef = vue.ref();
|
|
12507
12824
|
function parseMouseMove(e) {
|
|
12508
12825
|
const vertical = props.direction === 'vertical';
|
|
12509
12826
|
const start = vertical ? 'top' : 'left';
|
|
@@ -12520,14 +12837,11 @@
|
|
|
12520
12837
|
if (vertical || horizontalDirection.value === 'rtl') clickPos = 1 - clickPos;
|
|
12521
12838
|
return roundValue(min.value + clickPos * (max.value - min.value));
|
|
12522
12839
|
}
|
|
12523
|
-
let thumbMoved = false;
|
|
12524
12840
|
const handleStop = e => {
|
|
12525
|
-
|
|
12526
|
-
|
|
12527
|
-
|
|
12528
|
-
}
|
|
12841
|
+
onSliderEnd({
|
|
12842
|
+
value: parseMouseMove(e)
|
|
12843
|
+
});
|
|
12529
12844
|
mousePressed.value = false;
|
|
12530
|
-
thumbMoved = false;
|
|
12531
12845
|
startOffset.value = 0;
|
|
12532
12846
|
};
|
|
12533
12847
|
const handleStart = e => {
|
|
@@ -12536,20 +12850,25 @@
|
|
|
12536
12850
|
activeThumbRef.value.focus();
|
|
12537
12851
|
mousePressed.value = true;
|
|
12538
12852
|
if (activeThumbRef.value.contains(e.target)) {
|
|
12539
|
-
thumbMoved = true;
|
|
12540
12853
|
startOffset.value = getOffset(e, activeThumbRef.value, props.direction);
|
|
12541
12854
|
} else {
|
|
12542
12855
|
startOffset.value = 0;
|
|
12543
|
-
|
|
12856
|
+
onSliderMove({
|
|
12857
|
+
value: parseMouseMove(e)
|
|
12858
|
+
});
|
|
12544
12859
|
}
|
|
12860
|
+
onSliderStart({
|
|
12861
|
+
value: parseMouseMove(e)
|
|
12862
|
+
});
|
|
12545
12863
|
};
|
|
12546
12864
|
const moveListenerOptions = {
|
|
12547
12865
|
passive: true,
|
|
12548
12866
|
capture: true
|
|
12549
12867
|
};
|
|
12550
12868
|
function onMouseMove(e) {
|
|
12551
|
-
|
|
12552
|
-
|
|
12869
|
+
onSliderMove({
|
|
12870
|
+
value: parseMouseMove(e)
|
|
12871
|
+
});
|
|
12553
12872
|
}
|
|
12554
12873
|
function onSliderMouseUp(e) {
|
|
12555
12874
|
e.stopPropagation();
|
|
@@ -12677,7 +12996,8 @@
|
|
|
12677
12996
|
ripple: {
|
|
12678
12997
|
type: Boolean,
|
|
12679
12998
|
default: true
|
|
12680
|
-
}
|
|
12999
|
+
},
|
|
13000
|
+
...makeComponentProps()
|
|
12681
13001
|
},
|
|
12682
13002
|
emits: {
|
|
12683
13003
|
'update:modelValue': v => true
|
|
@@ -12755,11 +13075,11 @@
|
|
|
12755
13075
|
"class": ['v-slider-thumb', {
|
|
12756
13076
|
'v-slider-thumb--focused': props.focused,
|
|
12757
13077
|
'v-slider-thumb--pressed': props.focused && mousePressed.value
|
|
12758
|
-
}],
|
|
12759
|
-
"style": {
|
|
13078
|
+
}, props.class],
|
|
13079
|
+
"style": [{
|
|
12760
13080
|
'--v-slider-thumb-position': positionPercentage,
|
|
12761
13081
|
'--v-slider-thumb-size': convertToUnit(thumbSize.value)
|
|
12762
|
-
},
|
|
13082
|
+
}, props.style],
|
|
12763
13083
|
"role": "slider",
|
|
12764
13084
|
"tabindex": disabled.value ? -1 : 0,
|
|
12765
13085
|
"aria-valuemin": props.min,
|
|
@@ -12805,7 +13125,8 @@
|
|
|
12805
13125
|
stop: {
|
|
12806
13126
|
type: Number,
|
|
12807
13127
|
required: true
|
|
12808
|
-
}
|
|
13128
|
+
},
|
|
13129
|
+
...makeComponentProps()
|
|
12809
13130
|
},
|
|
12810
13131
|
emits: {},
|
|
12811
13132
|
setup(props, _ref) {
|
|
@@ -12880,12 +13201,12 @@
|
|
|
12880
13201
|
});
|
|
12881
13202
|
useRender(() => {
|
|
12882
13203
|
return vue.createVNode("div", {
|
|
12883
|
-
"class": ['v-slider-track', roundedClasses.value],
|
|
12884
|
-
"style": {
|
|
13204
|
+
"class": ['v-slider-track', roundedClasses.value, props.class],
|
|
13205
|
+
"style": [{
|
|
12885
13206
|
'--v-slider-track-size': convertToUnit(trackSize.value),
|
|
12886
13207
|
'--v-slider-tick-size': convertToUnit(tickSize.value),
|
|
12887
13208
|
direction: !vertical.value ? horizontalDirection.value : undefined
|
|
12888
|
-
}
|
|
13209
|
+
}, props.style]
|
|
12889
13210
|
}, [vue.createVNode("div", {
|
|
12890
13211
|
"class": ['v-slider-track__background', trackColorClasses.value, {
|
|
12891
13212
|
'v-slider-track__background--opacity': !!color.value || !trackFillColor.value
|
|
@@ -12925,13 +13246,21 @@
|
|
|
12925
13246
|
},
|
|
12926
13247
|
emits: {
|
|
12927
13248
|
'update:focused': value => true,
|
|
12928
|
-
'update:modelValue': v => true
|
|
13249
|
+
'update:modelValue': v => true,
|
|
13250
|
+
start: value => true,
|
|
13251
|
+
end: value => true
|
|
12929
13252
|
},
|
|
12930
13253
|
setup(props, _ref) {
|
|
12931
13254
|
let {
|
|
12932
|
-
slots
|
|
13255
|
+
slots,
|
|
13256
|
+
emit
|
|
12933
13257
|
} = _ref;
|
|
12934
13258
|
const thumbContainerRef = vue.ref();
|
|
13259
|
+
const steps = useSteps(props);
|
|
13260
|
+
const model = useProxiedModel(props, 'modelValue', undefined, v => {
|
|
13261
|
+
const value = typeof v === 'string' ? parseFloat(v) : v == null ? steps.min.value : v;
|
|
13262
|
+
return steps.roundValue(value);
|
|
13263
|
+
});
|
|
12935
13264
|
const {
|
|
12936
13265
|
min,
|
|
12937
13266
|
max,
|
|
@@ -12945,16 +13274,26 @@
|
|
|
12945
13274
|
readonly
|
|
12946
13275
|
} = useSlider({
|
|
12947
13276
|
props,
|
|
12948
|
-
|
|
12949
|
-
|
|
12950
|
-
|
|
12951
|
-
|
|
13277
|
+
steps,
|
|
13278
|
+
onSliderStart: () => {
|
|
13279
|
+
emit('start', model.value);
|
|
13280
|
+
},
|
|
13281
|
+
onSliderEnd: _ref2 => {
|
|
13282
|
+
let {
|
|
13283
|
+
value
|
|
13284
|
+
} = _ref2;
|
|
13285
|
+
const roundedValue = roundValue(value);
|
|
13286
|
+
model.value = roundedValue;
|
|
13287
|
+
emit('end', roundedValue);
|
|
13288
|
+
},
|
|
13289
|
+
onSliderMove: _ref3 => {
|
|
13290
|
+
let {
|
|
13291
|
+
value
|
|
13292
|
+
} = _ref3;
|
|
13293
|
+
return model.value = roundValue(value);
|
|
13294
|
+
},
|
|
12952
13295
|
getActiveThumb: () => thumbContainerRef.value?.$el
|
|
12953
13296
|
});
|
|
12954
|
-
const model = useProxiedModel(props, 'modelValue', undefined, v => {
|
|
12955
|
-
const value = typeof v === 'string' ? parseFloat(v) : v == null ? min.value : v;
|
|
12956
|
-
return roundValue(value);
|
|
12957
|
-
});
|
|
12958
13297
|
const {
|
|
12959
13298
|
isFocused,
|
|
12960
13299
|
focus,
|
|
@@ -12970,7 +13309,8 @@
|
|
|
12970
13309
|
'v-slider--focused': isFocused.value,
|
|
12971
13310
|
'v-slider--pressed': mousePressed.value,
|
|
12972
13311
|
'v-slider--disabled': props.disabled
|
|
12973
|
-
}]
|
|
13312
|
+
}, props.class],
|
|
13313
|
+
"style": props.style
|
|
12974
13314
|
}, inputProps, {
|
|
12975
13315
|
"focused": isFocused.value
|
|
12976
13316
|
}), {
|
|
@@ -12980,11 +13320,11 @@
|
|
|
12980
13320
|
"class": "v-slider__label",
|
|
12981
13321
|
"text": props.label
|
|
12982
13322
|
}, null) : undefined, slots.prepend?.(slotProps)]) : undefined,
|
|
12983
|
-
default:
|
|
13323
|
+
default: _ref4 => {
|
|
12984
13324
|
let {
|
|
12985
13325
|
id,
|
|
12986
13326
|
messagesId
|
|
12987
|
-
} =
|
|
13327
|
+
} = _ref4;
|
|
12988
13328
|
return vue.createVNode("div", {
|
|
12989
13329
|
"class": "v-slider__container",
|
|
12990
13330
|
"onMousedown": !readonly.value ? onSliderMousedown : undefined,
|
|
@@ -13033,7 +13373,8 @@
|
|
|
13033
13373
|
type: Object
|
|
13034
13374
|
},
|
|
13035
13375
|
disabled: Boolean,
|
|
13036
|
-
hideAlpha: Boolean
|
|
13376
|
+
hideAlpha: Boolean,
|
|
13377
|
+
...makeComponentProps()
|
|
13037
13378
|
},
|
|
13038
13379
|
emits: {
|
|
13039
13380
|
'update:color': color => true
|
|
@@ -13045,7 +13386,8 @@
|
|
|
13045
13386
|
useRender(() => vue.createVNode("div", {
|
|
13046
13387
|
"class": ['v-color-picker-preview', {
|
|
13047
13388
|
'v-color-picker-preview--hide-alpha': props.hideAlpha
|
|
13048
|
-
}]
|
|
13389
|
+
}, props.class],
|
|
13390
|
+
"style": props.style
|
|
13049
13391
|
}, [vue.createVNode("div", {
|
|
13050
13392
|
"class": "v-color-picker-preview__dot"
|
|
13051
13393
|
}, [vue.createVNode("div", {
|
|
@@ -13426,7 +13768,8 @@
|
|
|
13426
13768
|
},
|
|
13427
13769
|
disabled: Boolean,
|
|
13428
13770
|
color: Object,
|
|
13429
|
-
maxHeight: [Number, String]
|
|
13771
|
+
maxHeight: [Number, String],
|
|
13772
|
+
...makeComponentProps()
|
|
13430
13773
|
},
|
|
13431
13774
|
emits: {
|
|
13432
13775
|
'update:color': color => true
|
|
@@ -13436,10 +13779,10 @@
|
|
|
13436
13779
|
emit
|
|
13437
13780
|
} = _ref;
|
|
13438
13781
|
useRender(() => vue.createVNode("div", {
|
|
13439
|
-
"class":
|
|
13440
|
-
"style": {
|
|
13782
|
+
"class": ['v-color-picker-swatches', props.class],
|
|
13783
|
+
"style": [{
|
|
13441
13784
|
maxHeight: convertToUnit(props.maxHeight)
|
|
13442
|
-
}
|
|
13785
|
+
}, props.style]
|
|
13443
13786
|
}, [vue.createVNode("div", null, [props.swatches.map(swatch => vue.createVNode("div", {
|
|
13444
13787
|
"class": "v-color-picker-swatches__swatch"
|
|
13445
13788
|
}, [swatch.map(color => {
|
|
@@ -13543,13 +13886,13 @@
|
|
|
13543
13886
|
"rounded": props.rounded,
|
|
13544
13887
|
"elevation": props.elevation,
|
|
13545
13888
|
"theme": props.theme,
|
|
13546
|
-
"class": ['v-color-picker'],
|
|
13547
|
-
"style": {
|
|
13889
|
+
"class": ['v-color-picker', props.class],
|
|
13890
|
+
"style": [{
|
|
13548
13891
|
'--v-color-picker-color-hsv': HSVtoCSS({
|
|
13549
13892
|
...(currentColor.value ?? nullColor),
|
|
13550
13893
|
a: 1
|
|
13551
13894
|
})
|
|
13552
|
-
}
|
|
13895
|
+
}, props.style]
|
|
13553
13896
|
}, sheetProps, {
|
|
13554
13897
|
"maxWidth": props.width
|
|
13555
13898
|
}), {
|
|
@@ -13860,7 +14203,8 @@
|
|
|
13860
14203
|
'v-combobox--chips': !!props.chips,
|
|
13861
14204
|
'v-combobox--selecting-index': selectionIndex.value > -1,
|
|
13862
14205
|
[`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true
|
|
13863
|
-
}],
|
|
14206
|
+
}, props.class],
|
|
14207
|
+
"style": props.style,
|
|
13864
14208
|
"appendInnerIcon": props.items.length ? props.menuIcon : undefined,
|
|
13865
14209
|
"readonly": props.readonly,
|
|
13866
14210
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
@@ -14017,7 +14361,7 @@
|
|
|
14017
14361
|
![document, overlay.value.contentEl].includes(after) &&
|
|
14018
14362
|
// It isn't inside the dialog body
|
|
14019
14363
|
!overlay.value.contentEl.contains(after)) {
|
|
14020
|
-
const focusable =
|
|
14364
|
+
const focusable = focusableChildren(overlay.value.contentEl);
|
|
14021
14365
|
if (!focusable.length) return;
|
|
14022
14366
|
const firstElement = focusable[0];
|
|
14023
14367
|
const lastElement = focusable[focusable.length - 1];
|
|
@@ -14058,7 +14402,8 @@
|
|
|
14058
14402
|
"class": ['v-dialog', {
|
|
14059
14403
|
'v-dialog--fullscreen': props.fullscreen,
|
|
14060
14404
|
'v-dialog--scrollable': props.scrollable
|
|
14061
|
-
}]
|
|
14405
|
+
}, props.class],
|
|
14406
|
+
"style": props.style
|
|
14062
14407
|
}, overlayProps, {
|
|
14063
14408
|
"modelValue": isActive.value,
|
|
14064
14409
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
@@ -14097,6 +14442,7 @@
|
|
|
14097
14442
|
validator: v => allowedVariants.includes(v)
|
|
14098
14443
|
},
|
|
14099
14444
|
readonly: Boolean,
|
|
14445
|
+
...makeComponentProps(),
|
|
14100
14446
|
...makeGroupProps(),
|
|
14101
14447
|
...makeTagProps(),
|
|
14102
14448
|
...makeThemeProps()
|
|
@@ -14122,7 +14468,8 @@
|
|
|
14122
14468
|
}
|
|
14123
14469
|
});
|
|
14124
14470
|
useRender(() => vue.createVNode(props.tag, {
|
|
14125
|
-
"class": ['v-expansion-panels', themeClasses.value, variantClass.value]
|
|
14471
|
+
"class": ['v-expansion-panels', themeClasses.value, variantClass.value, props.class],
|
|
14472
|
+
"style": props.style
|
|
14126
14473
|
}, slots));
|
|
14127
14474
|
return {};
|
|
14128
14475
|
}
|
|
@@ -14151,6 +14498,7 @@
|
|
|
14151
14498
|
Ripple
|
|
14152
14499
|
},
|
|
14153
14500
|
props: {
|
|
14501
|
+
...makeComponentProps(),
|
|
14154
14502
|
...makeVExpansionPanelTitleProps()
|
|
14155
14503
|
},
|
|
14156
14504
|
setup(props, _ref) {
|
|
@@ -14173,8 +14521,8 @@
|
|
|
14173
14521
|
useRender(() => vue.withDirectives(vue.createVNode("button", {
|
|
14174
14522
|
"class": ['v-expansion-panel-title', {
|
|
14175
14523
|
'v-expansion-panel-title--active': expansionPanel.isSelected.value
|
|
14176
|
-
}, backgroundColorClasses.value],
|
|
14177
|
-
"style": backgroundColorStyles.value,
|
|
14524
|
+
}, backgroundColorClasses.value, props.class],
|
|
14525
|
+
"style": [backgroundColorStyles.value, props.style],
|
|
14178
14526
|
"type": "button",
|
|
14179
14527
|
"tabindex": expansionPanel.disabled.value ? -1 : undefined,
|
|
14180
14528
|
"disabled": expansionPanel.disabled.value,
|
|
@@ -14194,6 +14542,7 @@
|
|
|
14194
14542
|
const VExpansionPanelText = genericComponent()({
|
|
14195
14543
|
name: 'VExpansionPanelText',
|
|
14196
14544
|
props: {
|
|
14545
|
+
...makeComponentProps(),
|
|
14197
14546
|
...makeLazyProps()
|
|
14198
14547
|
},
|
|
14199
14548
|
setup(props, _ref) {
|
|
@@ -14210,7 +14559,8 @@
|
|
|
14210
14559
|
"onAfterLeave": onAfterLeave
|
|
14211
14560
|
}, {
|
|
14212
14561
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
|
14213
|
-
"class":
|
|
14562
|
+
"class": ['v-expansion-panel-text', props.class],
|
|
14563
|
+
"style": props.style
|
|
14214
14564
|
}, [slots.default && hasContent.value && vue.createVNode("div", {
|
|
14215
14565
|
"class": "v-expansion-panel-text__wrapper"
|
|
14216
14566
|
}, [slots.default?.()])]), [[vue.vShow, expansionPanel.isSelected.value]])]
|
|
@@ -14225,6 +14575,7 @@
|
|
|
14225
14575
|
title: String,
|
|
14226
14576
|
text: String,
|
|
14227
14577
|
bgColor: String,
|
|
14578
|
+
...makeComponentProps(),
|
|
14228
14579
|
...makeElevationProps(),
|
|
14229
14580
|
...makeGroupItemProps(),
|
|
14230
14581
|
...makeLazyProps(),
|
|
@@ -14273,8 +14624,8 @@
|
|
|
14273
14624
|
'v-expansion-panel--before-active': isBeforeSelected.value,
|
|
14274
14625
|
'v-expansion-panel--after-active': isAfterSelected.value,
|
|
14275
14626
|
'v-expansion-panel--disabled': isDisabled.value
|
|
14276
|
-
}, roundedClasses.value, backgroundColorClasses.value],
|
|
14277
|
-
"style": backgroundColorStyles.value,
|
|
14627
|
+
}, roundedClasses.value, backgroundColorClasses.value, props.class],
|
|
14628
|
+
"style": [backgroundColorStyles.value, props.style],
|
|
14278
14629
|
"aria-expanded": groupItem.isSelected.value
|
|
14279
14630
|
}, {
|
|
14280
14631
|
default: () => [vue.createVNode("div", {
|
|
@@ -14424,7 +14775,8 @@
|
|
|
14424
14775
|
"ref": vInputRef,
|
|
14425
14776
|
"modelValue": model.value,
|
|
14426
14777
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
14427
|
-
"class":
|
|
14778
|
+
"class": ['v-file-input', props.class],
|
|
14779
|
+
"style": props.style,
|
|
14428
14780
|
"onClick:prepend": onClickPrepend
|
|
14429
14781
|
}, rootAttrs, inputProps, {
|
|
14430
14782
|
"focused": isFocused.value
|
|
@@ -14516,6 +14868,7 @@
|
|
|
14516
14868
|
default: 'auto'
|
|
14517
14869
|
},
|
|
14518
14870
|
...makeBorderProps(),
|
|
14871
|
+
...makeComponentProps(),
|
|
14519
14872
|
...makeElevationProps(),
|
|
14520
14873
|
...makeLayoutItemProps(),
|
|
14521
14874
|
...makeRoundedProps(),
|
|
@@ -14565,8 +14918,8 @@
|
|
|
14565
14918
|
});
|
|
14566
14919
|
useRender(() => vue.createVNode(props.tag, {
|
|
14567
14920
|
"ref": resizeRef,
|
|
14568
|
-
"class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value],
|
|
14569
|
-
"style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : undefined]
|
|
14921
|
+
"class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
14922
|
+
"style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : undefined, props.style]
|
|
14570
14923
|
}, slots));
|
|
14571
14924
|
return {};
|
|
14572
14925
|
}
|
|
@@ -14577,6 +14930,7 @@
|
|
|
14577
14930
|
const VForm = genericComponent()({
|
|
14578
14931
|
name: 'VForm',
|
|
14579
14932
|
props: {
|
|
14933
|
+
...makeComponentProps(),
|
|
14580
14934
|
...makeFormProps()
|
|
14581
14935
|
},
|
|
14582
14936
|
emits: {
|
|
@@ -14615,7 +14969,8 @@
|
|
|
14615
14969
|
}
|
|
14616
14970
|
useRender(() => vue.createVNode("form", {
|
|
14617
14971
|
"ref": formRef,
|
|
14618
|
-
"class":
|
|
14972
|
+
"class": ['v-form', props.class],
|
|
14973
|
+
"style": props.style,
|
|
14619
14974
|
"novalidate": true,
|
|
14620
14975
|
"onReset": onReset,
|
|
14621
14976
|
"onSubmit": onSubmit
|
|
@@ -14631,6 +14986,7 @@
|
|
|
14631
14986
|
type: Boolean,
|
|
14632
14987
|
default: false
|
|
14633
14988
|
},
|
|
14989
|
+
...makeComponentProps(),
|
|
14634
14990
|
...makeTagProps()
|
|
14635
14991
|
},
|
|
14636
14992
|
setup(props, _ref) {
|
|
@@ -14640,7 +14996,8 @@
|
|
|
14640
14996
|
useRender(() => vue.createVNode(props.tag, {
|
|
14641
14997
|
"class": ['v-container', {
|
|
14642
14998
|
'v-container--fluid': props.fluid
|
|
14643
|
-
}]
|
|
14999
|
+
}, props.class],
|
|
15000
|
+
"style": props.style
|
|
14644
15001
|
}, slots));
|
|
14645
15002
|
return {};
|
|
14646
15003
|
}
|
|
@@ -14731,6 +15088,7 @@
|
|
|
14731
15088
|
default: null,
|
|
14732
15089
|
validator: str => ALIGN_SELF_VALUES.includes(str)
|
|
14733
15090
|
},
|
|
15091
|
+
...makeComponentProps(),
|
|
14734
15092
|
...makeTagProps()
|
|
14735
15093
|
},
|
|
14736
15094
|
setup(props, _ref) {
|
|
@@ -14761,7 +15119,8 @@
|
|
|
14761
15119
|
return classList;
|
|
14762
15120
|
});
|
|
14763
15121
|
return () => vue.h(props.tag, {
|
|
14764
|
-
class: classes.value
|
|
15122
|
+
class: [classes.value, props.class],
|
|
15123
|
+
style: props.style
|
|
14765
15124
|
}, slots.default?.());
|
|
14766
15125
|
}
|
|
14767
15126
|
});
|
|
@@ -14847,6 +15206,7 @@
|
|
|
14847
15206
|
validator: alignContentValidator
|
|
14848
15207
|
},
|
|
14849
15208
|
...alignContentProps,
|
|
15209
|
+
...makeComponentProps(),
|
|
14850
15210
|
...makeTagProps()
|
|
14851
15211
|
},
|
|
14852
15212
|
setup(props, _ref) {
|
|
@@ -14875,7 +15235,8 @@
|
|
|
14875
15235
|
return classList;
|
|
14876
15236
|
});
|
|
14877
15237
|
return () => vue.h(props.tag, {
|
|
14878
|
-
class: ['v-row', classes.value]
|
|
15238
|
+
class: ['v-row', classes.value, props.class],
|
|
15239
|
+
style: props.style
|
|
14879
15240
|
}, slots.default?.());
|
|
14880
15241
|
}
|
|
14881
15242
|
});
|
|
@@ -14919,6 +15280,7 @@
|
|
|
14919
15280
|
const VItemGroup = genericComponent()({
|
|
14920
15281
|
name: 'VItemGroup',
|
|
14921
15282
|
props: {
|
|
15283
|
+
...makeComponentProps(),
|
|
14922
15284
|
...makeGroupProps({
|
|
14923
15285
|
selectedClass: 'v-item--selected'
|
|
14924
15286
|
}),
|
|
@@ -14943,7 +15305,8 @@
|
|
|
14943
15305
|
selected
|
|
14944
15306
|
} = useGroup(props, VItemGroupSymbol);
|
|
14945
15307
|
return () => vue.createVNode(props.tag, {
|
|
14946
|
-
"class": ['v-item-group', themeClasses.value]
|
|
15308
|
+
"class": ['v-item-group', themeClasses.value, props.class],
|
|
15309
|
+
"style": props.style
|
|
14947
15310
|
}, {
|
|
14948
15311
|
default: () => [slots.default?.({
|
|
14949
15312
|
isSelected,
|
|
@@ -14993,7 +15356,10 @@
|
|
|
14993
15356
|
|
|
14994
15357
|
const VLayout = genericComponent()({
|
|
14995
15358
|
name: 'VLayout',
|
|
14996
|
-
props:
|
|
15359
|
+
props: {
|
|
15360
|
+
...makeComponentProps(),
|
|
15361
|
+
...makeLayoutProps()
|
|
15362
|
+
},
|
|
14997
15363
|
setup(props, _ref) {
|
|
14998
15364
|
let {
|
|
14999
15365
|
slots
|
|
@@ -15007,8 +15373,8 @@
|
|
|
15007
15373
|
} = createLayout(props);
|
|
15008
15374
|
useRender(() => vue.createVNode("div", {
|
|
15009
15375
|
"ref": layoutRef,
|
|
15010
|
-
"class": layoutClasses.value,
|
|
15011
|
-
"style": layoutStyles.value
|
|
15376
|
+
"class": [layoutClasses.value, props.class],
|
|
15377
|
+
"style": [layoutStyles.value, props.style]
|
|
15012
15378
|
}, [slots.default?.()]));
|
|
15013
15379
|
return {
|
|
15014
15380
|
getLayoutItem,
|
|
@@ -15031,6 +15397,7 @@
|
|
|
15031
15397
|
default: 300
|
|
15032
15398
|
},
|
|
15033
15399
|
modelValue: Boolean,
|
|
15400
|
+
...makeComponentProps(),
|
|
15034
15401
|
...makeLayoutItemProps()
|
|
15035
15402
|
},
|
|
15036
15403
|
setup(props, _ref) {
|
|
@@ -15049,8 +15416,8 @@
|
|
|
15049
15416
|
absolute: vue.toRef(props, 'absolute')
|
|
15050
15417
|
});
|
|
15051
15418
|
return () => vue.createVNode("div", {
|
|
15052
|
-
"class": ['v-layout-item'],
|
|
15053
|
-
"style": layoutItemStyles.value
|
|
15419
|
+
"class": ['v-layout-item', props.class],
|
|
15420
|
+
"style": [layoutItemStyles.value, props.style]
|
|
15054
15421
|
}, [slots.default?.()]);
|
|
15055
15422
|
}
|
|
15056
15423
|
});
|
|
@@ -15074,6 +15441,7 @@
|
|
|
15074
15441
|
threshold: undefined
|
|
15075
15442
|
})
|
|
15076
15443
|
},
|
|
15444
|
+
...makeComponentProps(),
|
|
15077
15445
|
...makeDimensionProps(),
|
|
15078
15446
|
...makeTagProps(),
|
|
15079
15447
|
...makeTransitionProps({
|
|
@@ -15096,8 +15464,8 @@
|
|
|
15096
15464
|
isActive.value = isIntersecting;
|
|
15097
15465
|
}
|
|
15098
15466
|
useRender(() => vue.withDirectives(vue.createVNode(props.tag, {
|
|
15099
|
-
"class":
|
|
15100
|
-
"style": dimensionStyles.value
|
|
15467
|
+
"class": ['v-lazy', props.class],
|
|
15468
|
+
"style": [dimensionStyles.value, props.style]
|
|
15101
15469
|
}, {
|
|
15102
15470
|
default: () => [isActive.value && vue.createVNode(MaybeTransition, {
|
|
15103
15471
|
"transition": props.transition,
|
|
@@ -15122,7 +15490,8 @@
|
|
|
15122
15490
|
rtl: {
|
|
15123
15491
|
type: Boolean,
|
|
15124
15492
|
default: undefined
|
|
15125
|
-
}
|
|
15493
|
+
},
|
|
15494
|
+
...makeComponentProps()
|
|
15126
15495
|
},
|
|
15127
15496
|
setup(props, _ref) {
|
|
15128
15497
|
let {
|
|
@@ -15132,7 +15501,8 @@
|
|
|
15132
15501
|
rtlClasses
|
|
15133
15502
|
} = provideLocale(props);
|
|
15134
15503
|
useRender(() => vue.createVNode("div", {
|
|
15135
|
-
"class": ['v-locale-provider', rtlClasses.value]
|
|
15504
|
+
"class": ['v-locale-provider', rtlClasses.value, props.class],
|
|
15505
|
+
"style": props.style
|
|
15136
15506
|
}, [slots.default?.()]));
|
|
15137
15507
|
return {};
|
|
15138
15508
|
}
|
|
@@ -15142,6 +15512,7 @@
|
|
|
15142
15512
|
name: 'VMain',
|
|
15143
15513
|
props: {
|
|
15144
15514
|
scrollable: Boolean,
|
|
15515
|
+
...makeComponentProps(),
|
|
15145
15516
|
...makeTagProps({
|
|
15146
15517
|
tag: 'main'
|
|
15147
15518
|
})
|
|
@@ -15159,8 +15530,8 @@
|
|
|
15159
15530
|
useRender(() => vue.createVNode(props.tag, {
|
|
15160
15531
|
"class": ['v-main', {
|
|
15161
15532
|
'v-main--scrollable': props.scrollable
|
|
15162
|
-
}],
|
|
15163
|
-
"style": [mainStyles.value, ssrBootStyles.value]
|
|
15533
|
+
}, props.class],
|
|
15534
|
+
"style": [mainStyles.value, ssrBootStyles.value, props.style]
|
|
15164
15535
|
}, {
|
|
15165
15536
|
default: () => [props.scrollable ? vue.createVNode("div", {
|
|
15166
15537
|
"class": "v-main__scroller"
|
|
@@ -15506,6 +15877,7 @@
|
|
|
15506
15877
|
},
|
|
15507
15878
|
sticky: Boolean,
|
|
15508
15879
|
...makeBorderProps(),
|
|
15880
|
+
...makeComponentProps(),
|
|
15509
15881
|
...makeElevationProps(),
|
|
15510
15882
|
...makeLayoutItemProps(),
|
|
15511
15883
|
...makeRoundedProps(),
|
|
@@ -15657,8 +16029,8 @@
|
|
|
15657
16029
|
'v-navigation-drawer--temporary': isTemporary.value,
|
|
15658
16030
|
'v-navigation-drawer--active': isActive.value,
|
|
15659
16031
|
'v-navigation-drawer--sticky': isSticky.value
|
|
15660
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value],
|
|
15661
|
-
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value]
|
|
16032
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
16033
|
+
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value, props.style]
|
|
15662
16034
|
}, attrs), {
|
|
15663
16035
|
default: () => [hasImage && vue.createVNode("div", {
|
|
15664
16036
|
"key": "image",
|
|
@@ -15787,6 +16159,7 @@
|
|
|
15787
16159
|
},
|
|
15788
16160
|
showFirstLastPage: Boolean,
|
|
15789
16161
|
...makeBorderProps(),
|
|
16162
|
+
...makeComponentProps(),
|
|
15790
16163
|
...makeDensityProps(),
|
|
15791
16164
|
...makeElevationProps(),
|
|
15792
16165
|
...makeRoundedProps(),
|
|
@@ -15983,7 +16356,8 @@
|
|
|
15983
16356
|
}
|
|
15984
16357
|
useRender(() => vue.createVNode(props.tag, {
|
|
15985
16358
|
"ref": resizeRef,
|
|
15986
|
-
"class": ['v-pagination', themeClasses.value],
|
|
16359
|
+
"class": ['v-pagination', themeClasses.value, props.class],
|
|
16360
|
+
"style": props.style,
|
|
15987
16361
|
"role": "navigation",
|
|
15988
16362
|
"aria-label": t(props.ariaLabel),
|
|
15989
16363
|
"onKeydown": onKeydown,
|
|
@@ -16042,7 +16416,8 @@
|
|
|
16042
16416
|
scale: {
|
|
16043
16417
|
type: [Number, String],
|
|
16044
16418
|
default: 0.5
|
|
16045
|
-
}
|
|
16419
|
+
},
|
|
16420
|
+
...makeComponentProps()
|
|
16046
16421
|
},
|
|
16047
16422
|
setup(props, _ref) {
|
|
16048
16423
|
let {
|
|
@@ -16104,7 +16479,8 @@
|
|
|
16104
16479
|
useRender(() => vue.createVNode(VImg, {
|
|
16105
16480
|
"class": ['v-parallax', {
|
|
16106
16481
|
'v-parallax--active': isIntersecting.value
|
|
16107
|
-
}],
|
|
16482
|
+
}, props.class],
|
|
16483
|
+
"style": props.style,
|
|
16108
16484
|
"ref": root,
|
|
16109
16485
|
"cover": true,
|
|
16110
16486
|
"onLoadstart": onScroll,
|
|
@@ -16129,7 +16505,8 @@
|
|
|
16129
16505
|
slots
|
|
16130
16506
|
} = _ref;
|
|
16131
16507
|
useRender(() => vue.createVNode(VSelectionControl, vue.mergeProps(props, {
|
|
16132
|
-
"class":
|
|
16508
|
+
"class": ['v-radio', props.class],
|
|
16509
|
+
"style": props.style,
|
|
16133
16510
|
"type": "radio"
|
|
16134
16511
|
}), slots));
|
|
16135
16512
|
return {};
|
|
@@ -16183,7 +16560,8 @@
|
|
|
16183
16560
|
}
|
|
16184
16561
|
}) : props.label;
|
|
16185
16562
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
16186
|
-
"class":
|
|
16563
|
+
"class": ['v-radio-group', props.class],
|
|
16564
|
+
"style": props.style
|
|
16187
16565
|
}, inputAttrs, inputProps, {
|
|
16188
16566
|
"modelValue": model.value,
|
|
16189
16567
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
@@ -16239,11 +16617,14 @@
|
|
|
16239
16617
|
},
|
|
16240
16618
|
emits: {
|
|
16241
16619
|
'update:focused': value => true,
|
|
16242
|
-
'update:modelValue': value => true
|
|
16620
|
+
'update:modelValue': value => true,
|
|
16621
|
+
end: value => true,
|
|
16622
|
+
start: value => true
|
|
16243
16623
|
},
|
|
16244
16624
|
setup(props, _ref) {
|
|
16245
16625
|
let {
|
|
16246
|
-
slots
|
|
16626
|
+
slots,
|
|
16627
|
+
emit
|
|
16247
16628
|
} = _ref;
|
|
16248
16629
|
const startThumbRef = vue.ref();
|
|
16249
16630
|
const stopThumbRef = vue.ref();
|
|
@@ -16256,6 +16637,11 @@
|
|
|
16256
16637
|
const b = Math.abs(stopOffset);
|
|
16257
16638
|
return a < b || a === b && startOffset < 0 ? startThumbRef.value.$el : stopThumbRef.value.$el;
|
|
16258
16639
|
}
|
|
16640
|
+
const steps = useSteps(props);
|
|
16641
|
+
const model = useProxiedModel(props, 'modelValue', undefined, arr => {
|
|
16642
|
+
if (!arr?.length) return [0, 0];
|
|
16643
|
+
return arr.map(value => steps.roundValue(value));
|
|
16644
|
+
});
|
|
16259
16645
|
const {
|
|
16260
16646
|
activeThumbRef,
|
|
16261
16647
|
hasLabels,
|
|
@@ -16265,34 +16651,37 @@
|
|
|
16265
16651
|
onSliderMousedown,
|
|
16266
16652
|
onSliderTouchstart,
|
|
16267
16653
|
position,
|
|
16268
|
-
roundValue,
|
|
16269
16654
|
trackContainerRef
|
|
16270
16655
|
} = useSlider({
|
|
16271
|
-
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
16272
16656
|
props,
|
|
16273
|
-
|
|
16274
|
-
|
|
16657
|
+
steps,
|
|
16658
|
+
onSliderStart: () => {
|
|
16659
|
+
emit('start', model.value);
|
|
16660
|
+
},
|
|
16661
|
+
onSliderEnd: _ref2 => {
|
|
16662
|
+
let {
|
|
16663
|
+
value
|
|
16664
|
+
} = _ref2;
|
|
16665
|
+
const newValue = activeThumbRef.value === startThumbRef.value?.$el ? [value, model.value[1]] : [model.value[0], value];
|
|
16666
|
+
model.value = newValue;
|
|
16667
|
+
emit('end', newValue);
|
|
16275
16668
|
},
|
|
16276
|
-
|
|
16669
|
+
onSliderMove: _ref3 => {
|
|
16670
|
+
let {
|
|
16671
|
+
value
|
|
16672
|
+
} = _ref3;
|
|
16277
16673
|
const [start, stop] = model.value;
|
|
16278
16674
|
if (!props.strict && start === stop && start !== min.value) {
|
|
16279
|
-
activeThumbRef.value =
|
|
16675
|
+
activeThumbRef.value = value > start ? stopThumbRef.value?.$el : startThumbRef.value?.$el;
|
|
16280
16676
|
activeThumbRef.value?.focus();
|
|
16281
16677
|
}
|
|
16282
16678
|
if (activeThumbRef.value === startThumbRef.value?.$el) {
|
|
16283
|
-
model.value = [Math.min(
|
|
16679
|
+
model.value = [Math.min(value, stop), stop];
|
|
16284
16680
|
} else {
|
|
16285
|
-
model.value = [start, Math.max(start,
|
|
16681
|
+
model.value = [start, Math.max(start, value)];
|
|
16286
16682
|
}
|
|
16287
16683
|
},
|
|
16288
16684
|
getActiveThumb
|
|
16289
|
-
/* eslint-enable @typescript-eslint/no-use-before-define */
|
|
16290
|
-
});
|
|
16291
|
-
|
|
16292
|
-
const model = useProxiedModel(props, 'modelValue', undefined, arr => {
|
|
16293
|
-
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
16294
|
-
if (!arr || !arr.length) return [0, 0];
|
|
16295
|
-
return arr.map(value => roundValue(value));
|
|
16296
16685
|
});
|
|
16297
16686
|
const {
|
|
16298
16687
|
isFocused,
|
|
@@ -16310,7 +16699,8 @@
|
|
|
16310
16699
|
'v-slider--focused': isFocused.value,
|
|
16311
16700
|
'v-slider--pressed': mousePressed.value,
|
|
16312
16701
|
'v-slider--disabled': props.disabled
|
|
16313
|
-
}],
|
|
16702
|
+
}, props.class],
|
|
16703
|
+
"style": props.style,
|
|
16314
16704
|
"ref": inputRef
|
|
16315
16705
|
}, inputProps, {
|
|
16316
16706
|
"focused": isFocused.value
|
|
@@ -16320,11 +16710,11 @@
|
|
|
16320
16710
|
"class": "v-slider__label",
|
|
16321
16711
|
"text": props.label
|
|
16322
16712
|
}, null) : undefined, slots.prepend?.(slotProps)]) : undefined,
|
|
16323
|
-
default:
|
|
16713
|
+
default: _ref4 => {
|
|
16324
16714
|
let {
|
|
16325
16715
|
id,
|
|
16326
16716
|
messagesId
|
|
16327
|
-
} =
|
|
16717
|
+
} = _ref4;
|
|
16328
16718
|
return vue.createVNode("div", {
|
|
16329
16719
|
"class": "v-slider__container",
|
|
16330
16720
|
"onMousedown": onSliderMousedown,
|
|
@@ -16453,6 +16843,7 @@
|
|
|
16453
16843
|
validator: v => ['top', 'bottom'].includes(v)
|
|
16454
16844
|
},
|
|
16455
16845
|
ripple: Boolean,
|
|
16846
|
+
...makeComponentProps(),
|
|
16456
16847
|
...makeDensityProps(),
|
|
16457
16848
|
...makeSizeProps(),
|
|
16458
16849
|
...makeTagProps(),
|
|
@@ -16476,9 +16867,6 @@
|
|
|
16476
16867
|
const range = vue.computed(() => createRange(Number(props.length), 1));
|
|
16477
16868
|
const increments = vue.computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]));
|
|
16478
16869
|
const hoverIndex = vue.ref(-1);
|
|
16479
|
-
const focusIndex = vue.ref(-1);
|
|
16480
|
-
const firstRef = vue.ref();
|
|
16481
|
-
let isClicking = false;
|
|
16482
16870
|
const itemState = vue.computed(() => increments.value.map(value => {
|
|
16483
16871
|
const isHovering = props.hover && hoverIndex.value > -1;
|
|
16484
16872
|
const isFilled = normalizedValue.value >= value;
|
|
@@ -16501,16 +16889,6 @@
|
|
|
16501
16889
|
function onMouseleave() {
|
|
16502
16890
|
hoverIndex.value = -1;
|
|
16503
16891
|
}
|
|
16504
|
-
function onFocus() {
|
|
16505
|
-
if (value === 0 && normalizedValue.value === 0) {
|
|
16506
|
-
firstRef.value?.focus();
|
|
16507
|
-
} else {
|
|
16508
|
-
focusIndex.value = value;
|
|
16509
|
-
}
|
|
16510
|
-
}
|
|
16511
|
-
function onBlur() {
|
|
16512
|
-
if (!isClicking) focusIndex.value = -1;
|
|
16513
|
-
}
|
|
16514
16892
|
function onClick() {
|
|
16515
16893
|
if (props.disabled || props.readonly) return;
|
|
16516
16894
|
rating.value = normalizedValue.value === value && props.clearable ? 0 : value;
|
|
@@ -16518,17 +16896,9 @@
|
|
|
16518
16896
|
return {
|
|
16519
16897
|
onMouseenter: props.hover ? onMouseenter : undefined,
|
|
16520
16898
|
onMouseleave: props.hover ? onMouseleave : undefined,
|
|
16521
|
-
onFocus,
|
|
16522
|
-
onBlur,
|
|
16523
16899
|
onClick
|
|
16524
16900
|
};
|
|
16525
16901
|
}));
|
|
16526
|
-
function onMousedown() {
|
|
16527
|
-
isClicking = true;
|
|
16528
|
-
}
|
|
16529
|
-
function onMouseup() {
|
|
16530
|
-
isClicking = false;
|
|
16531
|
-
}
|
|
16532
16902
|
const name = vue.computed(() => props.name ?? `v-rating-${getUid()}`);
|
|
16533
16903
|
function VRatingItem(_ref2) {
|
|
16534
16904
|
let {
|
|
@@ -16539,8 +16909,6 @@
|
|
|
16539
16909
|
const {
|
|
16540
16910
|
onMouseenter,
|
|
16541
16911
|
onMouseleave,
|
|
16542
|
-
onFocus,
|
|
16543
|
-
onBlur,
|
|
16544
16912
|
onClick
|
|
16545
16913
|
} = eventState.value[index + 1];
|
|
16546
16914
|
const id = `${name.value}-${String(value).replace('.', '-')}`;
|
|
@@ -16551,7 +16919,6 @@
|
|
|
16551
16919
|
icon: itemState.value[index]?.icon,
|
|
16552
16920
|
ripple: props.ripple,
|
|
16553
16921
|
size: props.size,
|
|
16554
|
-
tag: 'span',
|
|
16555
16922
|
variant: 'plain'
|
|
16556
16923
|
};
|
|
16557
16924
|
return vue.createVNode(vue.Fragment, null, [vue.createVNode("label", {
|
|
@@ -16560,17 +16927,17 @@
|
|
|
16560
16927
|
'v-rating__item--half': props.halfIncrements && value % 1 > 0,
|
|
16561
16928
|
'v-rating__item--full': props.halfIncrements && value % 1 === 0
|
|
16562
16929
|
},
|
|
16563
|
-
"onMousedown": onMousedown,
|
|
16564
|
-
"onMouseup": onMouseup,
|
|
16565
16930
|
"onMouseenter": onMouseenter,
|
|
16566
|
-
"onMouseleave": onMouseleave
|
|
16931
|
+
"onMouseleave": onMouseleave,
|
|
16932
|
+
"onClick": onClick
|
|
16567
16933
|
}, [vue.createVNode("span", {
|
|
16568
16934
|
"class": "v-rating__hidden"
|
|
16569
16935
|
}, [t(props.itemAriaLabel, value, props.length)]), !showStar ? undefined : slots.item ? slots.item({
|
|
16570
16936
|
...itemState.value[index],
|
|
16571
16937
|
props: btnProps,
|
|
16572
16938
|
value,
|
|
16573
|
-
index
|
|
16939
|
+
index,
|
|
16940
|
+
rating: normalizedValue.value
|
|
16574
16941
|
}) : vue.createVNode(VBtn, btnProps, null)]), vue.createVNode("input", {
|
|
16575
16942
|
"class": "v-rating__hidden",
|
|
16576
16943
|
"name": name.value,
|
|
@@ -16578,10 +16945,7 @@
|
|
|
16578
16945
|
"type": "radio",
|
|
16579
16946
|
"value": value,
|
|
16580
16947
|
"checked": normalizedValue.value === value,
|
|
16581
|
-
"
|
|
16582
|
-
"onFocus": onFocus,
|
|
16583
|
-
"onBlur": onBlur,
|
|
16584
|
-
"ref": index === 0 ? firstRef : undefined,
|
|
16948
|
+
"tabindex": -1,
|
|
16585
16949
|
"readonly": props.readonly,
|
|
16586
16950
|
"disabled": props.disabled
|
|
16587
16951
|
}, null)]);
|
|
@@ -16597,7 +16961,8 @@
|
|
|
16597
16961
|
"class": ['v-rating', {
|
|
16598
16962
|
'v-rating--hover': props.hover,
|
|
16599
16963
|
'v-rating--readonly': props.readonly
|
|
16600
|
-
}, themeClasses.value]
|
|
16964
|
+
}, themeClasses.value, props.class],
|
|
16965
|
+
"style": props.style
|
|
16601
16966
|
}, {
|
|
16602
16967
|
default: () => [vue.createVNode(VRatingItem, {
|
|
16603
16968
|
"value": 0,
|
|
@@ -16610,9 +16975,7 @@
|
|
|
16610
16975
|
index: i,
|
|
16611
16976
|
label: props.itemLabels?.[i]
|
|
16612
16977
|
}) : undefined, vue.createVNode("div", {
|
|
16613
|
-
"class":
|
|
16614
|
-
'v-rating__item--focused': Math.ceil(focusIndex.value) === value
|
|
16615
|
-
}]
|
|
16978
|
+
"class": "v-rating__item"
|
|
16616
16979
|
}, [props.halfIncrements ? vue.createVNode(vue.Fragment, null, [vue.createVNode(VRatingItem, {
|
|
16617
16980
|
"value": value - 0.5,
|
|
16618
16981
|
"index": i * 2
|
|
@@ -16699,6 +17062,7 @@
|
|
|
16699
17062
|
type: [Boolean, String],
|
|
16700
17063
|
validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
|
|
16701
17064
|
},
|
|
17065
|
+
...makeComponentProps(),
|
|
16702
17066
|
...makeTagProps(),
|
|
16703
17067
|
...makeGroupProps({
|
|
16704
17068
|
selectedClass: 'v-slide-group-item--active'
|
|
@@ -16862,7 +17226,7 @@
|
|
|
16862
17226
|
function focus(location) {
|
|
16863
17227
|
if (!contentRef.value) return;
|
|
16864
17228
|
if (!location) {
|
|
16865
|
-
const focusable =
|
|
17229
|
+
const focusable = focusableChildren(contentRef.value);
|
|
16866
17230
|
focusable[0]?.focus();
|
|
16867
17231
|
} else if (location === 'next') {
|
|
16868
17232
|
const el = contentRef.value.querySelector(':focus')?.nextElementSibling;
|
|
@@ -16939,7 +17303,8 @@
|
|
|
16939
17303
|
'v-slide-group--vertical': !isHorizontal.value,
|
|
16940
17304
|
'v-slide-group--has-affixes': hasAffixes.value,
|
|
16941
17305
|
'v-slide-group--is-overflowing': isOverflowing.value
|
|
16942
|
-
}],
|
|
17306
|
+
}, props.class],
|
|
17307
|
+
"style": props.style,
|
|
16943
17308
|
"tabindex": isFocused.value || group.selected.value.length ? -1 : 0,
|
|
16944
17309
|
"onFocus": onFocus
|
|
16945
17310
|
}, {
|
|
@@ -17089,7 +17454,8 @@
|
|
|
17089
17454
|
'v-snackbar--active': isActive.value,
|
|
17090
17455
|
'v-snackbar--multi-line': props.multiLine && !props.vertical,
|
|
17091
17456
|
'v-snackbar--vertical': props.vertical
|
|
17092
|
-
}, positionClasses.value]
|
|
17457
|
+
}, positionClasses.value, props.class],
|
|
17458
|
+
"style": props.style
|
|
17093
17459
|
}, overlayProps, {
|
|
17094
17460
|
"modelValue": isActive.value,
|
|
17095
17461
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
@@ -17189,7 +17555,8 @@
|
|
|
17189
17555
|
'v-switch--inset': props.inset
|
|
17190
17556
|
}, {
|
|
17191
17557
|
'v-switch--indeterminate': indeterminate.value
|
|
17192
|
-
}, loaderClasses.value]
|
|
17558
|
+
}, loaderClasses.value, props.class],
|
|
17559
|
+
"style": props.style
|
|
17193
17560
|
}, inputAttrs, inputProps, {
|
|
17194
17561
|
"id": id.value,
|
|
17195
17562
|
"focused": isFocused.value
|
|
@@ -17258,6 +17625,7 @@
|
|
|
17258
17625
|
color: String,
|
|
17259
17626
|
height: [Number, String],
|
|
17260
17627
|
window: Boolean,
|
|
17628
|
+
...makeComponentProps(),
|
|
17261
17629
|
...makeElevationProps(),
|
|
17262
17630
|
...makeLayoutItemProps(),
|
|
17263
17631
|
...makeRoundedProps(),
|
|
@@ -17299,8 +17667,8 @@
|
|
|
17299
17667
|
useRender(() => vue.createVNode(props.tag, {
|
|
17300
17668
|
"class": ['v-system-bar', {
|
|
17301
17669
|
'v-system-bar--window': props.window
|
|
17302
|
-
}, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value],
|
|
17303
|
-
"style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value]
|
|
17670
|
+
}, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
17671
|
+
"style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, props.style]
|
|
17304
17672
|
}, slots));
|
|
17305
17673
|
return {};
|
|
17306
17674
|
}
|
|
@@ -17312,7 +17680,6 @@
|
|
|
17312
17680
|
name: 'VTab',
|
|
17313
17681
|
props: {
|
|
17314
17682
|
fixed: Boolean,
|
|
17315
|
-
title: String,
|
|
17316
17683
|
sliderColor: String,
|
|
17317
17684
|
hideSlider: Boolean,
|
|
17318
17685
|
direction: {
|
|
@@ -17374,10 +17741,10 @@
|
|
|
17374
17741
|
useRender(() => {
|
|
17375
17742
|
const [btnProps] = VBtn.filterProps(props);
|
|
17376
17743
|
return vue.createVNode(VBtn, vue.mergeProps({
|
|
17377
|
-
"_as": "VTab",
|
|
17378
17744
|
"symbol": VTabsSymbol,
|
|
17379
17745
|
"ref": rootEl,
|
|
17380
|
-
"class": ['v-tab'],
|
|
17746
|
+
"class": ['v-tab', props.class],
|
|
17747
|
+
"style": props.style,
|
|
17381
17748
|
"tabindex": isSelected.value ? 0 : -1,
|
|
17382
17749
|
"role": "tab",
|
|
17383
17750
|
"aria-selected": String(isSelected.value),
|
|
@@ -17388,7 +17755,7 @@
|
|
|
17388
17755
|
}, btnProps, attrs, {
|
|
17389
17756
|
"onGroup:selected": updateSlider
|
|
17390
17757
|
}), {
|
|
17391
|
-
default: () => [slots.default
|
|
17758
|
+
default: () => [slots.default?.() ?? props.text, !props.hideSlider && vue.createVNode("div", {
|
|
17392
17759
|
"ref": sliderEl,
|
|
17393
17760
|
"class": ['v-tab__slider', sliderColorClasses.value],
|
|
17394
17761
|
"style": sliderColorStyles.value
|
|
@@ -17472,10 +17839,10 @@
|
|
|
17472
17839
|
'v-tabs--fixed-tabs': props.fixedTabs,
|
|
17473
17840
|
'v-tabs--grow': props.grow,
|
|
17474
17841
|
'v-tabs--stacked': props.stacked
|
|
17475
|
-
}, densityClasses.value, backgroundColorClasses.value],
|
|
17842
|
+
}, densityClasses.value, backgroundColorClasses.value, props.class],
|
|
17476
17843
|
"style": [{
|
|
17477
17844
|
'--v-tabs-height': convertToUnit(props.height)
|
|
17478
|
-
}, backgroundColorStyles.value],
|
|
17845
|
+
}, backgroundColorStyles.value, props.style],
|
|
17479
17846
|
"role": "tablist",
|
|
17480
17847
|
"symbol": VTabsSymbol
|
|
17481
17848
|
}), {
|
|
@@ -17495,6 +17862,7 @@
|
|
|
17495
17862
|
fixedFooter: Boolean,
|
|
17496
17863
|
height: [Number, String],
|
|
17497
17864
|
hover: Boolean,
|
|
17865
|
+
...makeComponentProps(),
|
|
17498
17866
|
...makeDensityProps(),
|
|
17499
17867
|
...makeTagProps(),
|
|
17500
17868
|
...makeThemeProps()
|
|
@@ -17517,7 +17885,8 @@
|
|
|
17517
17885
|
'v-table--has-top': !!slots.top,
|
|
17518
17886
|
'v-table--has-bottom': !!slots.bottom,
|
|
17519
17887
|
'v-table--hover': props.hover
|
|
17520
|
-
}, themeClasses.value, densityClasses.value]
|
|
17888
|
+
}, themeClasses.value, densityClasses.value, props.class],
|
|
17889
|
+
"style": props.style
|
|
17521
17890
|
}, {
|
|
17522
17891
|
default: () => [slots.top?.(), slots.default ? vue.createVNode("div", {
|
|
17523
17892
|
"class": "v-table__wrapper",
|
|
@@ -17682,7 +18051,8 @@
|
|
|
17682
18051
|
'v-textarea--auto-grow': props.autoGrow,
|
|
17683
18052
|
'v-textarea--no-resize': props.noResize || props.autoGrow,
|
|
17684
18053
|
'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant)
|
|
17685
|
-
}]
|
|
18054
|
+
}, props.class],
|
|
18055
|
+
"style": props.style
|
|
17686
18056
|
}, rootAttrs, inputProps, {
|
|
17687
18057
|
"focused": isFocused.value
|
|
17688
18058
|
}), {
|
|
@@ -17766,6 +18136,7 @@
|
|
|
17766
18136
|
name: 'VThemeProvider',
|
|
17767
18137
|
props: {
|
|
17768
18138
|
withBackground: Boolean,
|
|
18139
|
+
...makeComponentProps(),
|
|
17769
18140
|
...makeThemeProps(),
|
|
17770
18141
|
...makeTagProps()
|
|
17771
18142
|
},
|
|
@@ -17779,7 +18150,8 @@
|
|
|
17779
18150
|
return () => {
|
|
17780
18151
|
if (!props.withBackground) return slots.default?.();
|
|
17781
18152
|
return vue.createVNode(props.tag, {
|
|
17782
|
-
"class": ['v-theme-provider', themeClasses.value]
|
|
18153
|
+
"class": ['v-theme-provider', themeClasses.value, props.class],
|
|
18154
|
+
"style": props.style
|
|
17783
18155
|
}, {
|
|
17784
18156
|
default: () => [slots.default?.()]
|
|
17785
18157
|
});
|
|
@@ -17824,6 +18196,7 @@
|
|
|
17824
18196
|
type: String,
|
|
17825
18197
|
validator: v => ['start', 'end', 'both'].includes(v)
|
|
17826
18198
|
},
|
|
18199
|
+
...makeComponentProps(),
|
|
17827
18200
|
...makeDensityProps(),
|
|
17828
18201
|
...makeTagProps(),
|
|
17829
18202
|
...makeThemeProps()
|
|
@@ -17867,10 +18240,10 @@
|
|
|
17867
18240
|
useRender(() => vue.createVNode(props.tag, {
|
|
17868
18241
|
"class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {
|
|
17869
18242
|
'v-timeline--inset-line': !!props.lineInset
|
|
17870
|
-
}, themeClasses.value, densityClasses.value, sideClasses.value],
|
|
17871
|
-
"style": {
|
|
18243
|
+
}, themeClasses.value, densityClasses.value, sideClasses.value, props.class],
|
|
18244
|
+
"style": [{
|
|
17872
18245
|
'--v-timeline-line-thickness': convertToUnit(props.lineThickness)
|
|
17873
|
-
}
|
|
18246
|
+
}, props.style]
|
|
17874
18247
|
}, slots));
|
|
17875
18248
|
return {};
|
|
17876
18249
|
}
|
|
@@ -17885,6 +18258,7 @@
|
|
|
17885
18258
|
icon: IconValue,
|
|
17886
18259
|
iconColor: String,
|
|
17887
18260
|
lineColor: String,
|
|
18261
|
+
...makeComponentProps(),
|
|
17888
18262
|
...makeRoundedProps(),
|
|
17889
18263
|
...makeSizeProps(),
|
|
17890
18264
|
...makeElevationProps()
|
|
@@ -17914,7 +18288,8 @@
|
|
|
17914
18288
|
useRender(() => vue.createVNode("div", {
|
|
17915
18289
|
"class": ['v-timeline-divider', {
|
|
17916
18290
|
'v-timeline-divider--fill-dot': props.fillDot
|
|
17917
|
-
}]
|
|
18291
|
+
}, props.class],
|
|
18292
|
+
"style": props.style
|
|
17918
18293
|
}, [vue.createVNode("div", {
|
|
17919
18294
|
"class": ['v-timeline-divider__before', lineColorClasses.value],
|
|
17920
18295
|
"style": lineColorStyles.value
|
|
@@ -17964,11 +18339,12 @@
|
|
|
17964
18339
|
icon: IconValue,
|
|
17965
18340
|
iconColor: String,
|
|
17966
18341
|
lineInset: [Number, String],
|
|
17967
|
-
...
|
|
18342
|
+
...makeComponentProps(),
|
|
18343
|
+
...makeDimensionProps(),
|
|
17968
18344
|
...makeElevationProps(),
|
|
18345
|
+
...makeRoundedProps(),
|
|
17969
18346
|
...makeSizeProps(),
|
|
17970
|
-
...makeTagProps()
|
|
17971
|
-
...makeDimensionProps()
|
|
18347
|
+
...makeTagProps()
|
|
17972
18348
|
},
|
|
17973
18349
|
setup(props, _ref) {
|
|
17974
18350
|
let {
|
|
@@ -17988,11 +18364,11 @@
|
|
|
17988
18364
|
useRender(() => vue.createVNode("div", {
|
|
17989
18365
|
"class": ['v-timeline-item', {
|
|
17990
18366
|
'v-timeline-item--fill-dot': props.fillDot
|
|
17991
|
-
}],
|
|
17992
|
-
"style": {
|
|
18367
|
+
}, props.class],
|
|
18368
|
+
"style": [{
|
|
17993
18369
|
'--v-timeline-dot-size': convertToUnit(dotSize.value),
|
|
17994
18370
|
'--v-timeline-line-inset': props.lineInset ? `calc(var(--v-timeline-dot-size) / 2 + ${convertToUnit(props.lineInset)})` : convertToUnit(0)
|
|
17995
|
-
}
|
|
18371
|
+
}, props.style]
|
|
17996
18372
|
}, [vue.createVNode("div", {
|
|
17997
18373
|
"class": "v-timeline-item__body",
|
|
17998
18374
|
"style": dimensionStyles.value
|
|
@@ -18026,6 +18402,7 @@
|
|
|
18026
18402
|
closeOnBack: false,
|
|
18027
18403
|
location: 'end',
|
|
18028
18404
|
locationStrategy: 'connected',
|
|
18405
|
+
eager: true,
|
|
18029
18406
|
minWidth: 0,
|
|
18030
18407
|
offset: 10,
|
|
18031
18408
|
openOnClick: false,
|
|
@@ -18034,7 +18411,7 @@
|
|
|
18034
18411
|
scrim: false,
|
|
18035
18412
|
scrollStrategy: 'reposition',
|
|
18036
18413
|
transition: false
|
|
18037
|
-
}), ['absolute', 'persistent'
|
|
18414
|
+
}), ['absolute', 'persistent'])
|
|
18038
18415
|
},
|
|
18039
18416
|
emits: {
|
|
18040
18417
|
'update:modelValue': value => true
|
|
@@ -18067,7 +18444,8 @@
|
|
|
18067
18444
|
const [overlayProps] = VOverlay.filterProps(props);
|
|
18068
18445
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
|
18069
18446
|
"ref": overlay,
|
|
18070
|
-
"class": ['v-tooltip'],
|
|
18447
|
+
"class": ['v-tooltip', props.class],
|
|
18448
|
+
"style": props.style,
|
|
18071
18449
|
"id": id.value
|
|
18072
18450
|
}, overlayProps, {
|
|
18073
18451
|
"modelValue": isActive.value,
|
|
@@ -18078,7 +18456,6 @@
|
|
|
18078
18456
|
"origin": origin.value,
|
|
18079
18457
|
"persistent": true,
|
|
18080
18458
|
"role": "tooltip",
|
|
18081
|
-
"eager": true,
|
|
18082
18459
|
"activatorProps": activatorProps.value,
|
|
18083
18460
|
"_disableGlobalStack": true
|
|
18084
18461
|
}, scopeId), {
|
|
@@ -18113,6 +18490,176 @@
|
|
|
18113
18490
|
}
|
|
18114
18491
|
});
|
|
18115
18492
|
|
|
18493
|
+
const VVirtualScrollItem = genericComponent()({
|
|
18494
|
+
name: 'VVirtualScrollItem',
|
|
18495
|
+
props: {
|
|
18496
|
+
dynamicHeight: Boolean,
|
|
18497
|
+
...makeComponentProps()
|
|
18498
|
+
},
|
|
18499
|
+
emits: {
|
|
18500
|
+
'update:height': height => true
|
|
18501
|
+
},
|
|
18502
|
+
setup(props, _ref) {
|
|
18503
|
+
let {
|
|
18504
|
+
emit,
|
|
18505
|
+
slots
|
|
18506
|
+
} = _ref;
|
|
18507
|
+
const {
|
|
18508
|
+
resizeRef,
|
|
18509
|
+
contentRect
|
|
18510
|
+
} = useResizeObserver();
|
|
18511
|
+
useToggleScope(() => props.dynamicHeight, () => {
|
|
18512
|
+
vue.watch(() => contentRect.value?.height, height => {
|
|
18513
|
+
if (height != null) emit('update:height', height);
|
|
18514
|
+
});
|
|
18515
|
+
});
|
|
18516
|
+
function updateHeight() {
|
|
18517
|
+
if (props.dynamicHeight && contentRect.value) {
|
|
18518
|
+
emit('update:height', contentRect.value.height);
|
|
18519
|
+
}
|
|
18520
|
+
}
|
|
18521
|
+
vue.onUpdated(updateHeight);
|
|
18522
|
+
useRender(() => vue.createVNode("div", {
|
|
18523
|
+
"ref": props.dynamicHeight ? resizeRef : undefined,
|
|
18524
|
+
"class": ['v-virtual-scroll__item', props.class],
|
|
18525
|
+
"style": props.style
|
|
18526
|
+
}, [slots.default?.()]));
|
|
18527
|
+
}
|
|
18528
|
+
});
|
|
18529
|
+
|
|
18530
|
+
// Types
|
|
18531
|
+
|
|
18532
|
+
const UP = -1;
|
|
18533
|
+
const DOWN = 1;
|
|
18534
|
+
const VVirtualScroll = genericComponent()({
|
|
18535
|
+
name: 'VVirtualScroll',
|
|
18536
|
+
props: {
|
|
18537
|
+
items: {
|
|
18538
|
+
type: Array,
|
|
18539
|
+
default: () => []
|
|
18540
|
+
},
|
|
18541
|
+
itemHeight: [Number, String],
|
|
18542
|
+
...makeComponentProps(),
|
|
18543
|
+
...makeDimensionProps()
|
|
18544
|
+
},
|
|
18545
|
+
setup(props, _ref) {
|
|
18546
|
+
let {
|
|
18547
|
+
slots
|
|
18548
|
+
} = _ref;
|
|
18549
|
+
const first = vue.ref(0);
|
|
18550
|
+
const baseItemHeight = vue.ref(props.itemHeight);
|
|
18551
|
+
const itemHeight = vue.computed({
|
|
18552
|
+
get: () => parseInt(baseItemHeight.value ?? 0, 10),
|
|
18553
|
+
set(val) {
|
|
18554
|
+
baseItemHeight.value = val;
|
|
18555
|
+
}
|
|
18556
|
+
});
|
|
18557
|
+
const rootEl = vue.ref();
|
|
18558
|
+
const {
|
|
18559
|
+
resizeRef,
|
|
18560
|
+
contentRect
|
|
18561
|
+
} = useResizeObserver();
|
|
18562
|
+
vue.watchEffect(() => {
|
|
18563
|
+
resizeRef.value = rootEl.value;
|
|
18564
|
+
});
|
|
18565
|
+
const display = useDisplay();
|
|
18566
|
+
const sizeMap = new Map();
|
|
18567
|
+
let sizes = createRange(props.items.length).map(() => itemHeight.value);
|
|
18568
|
+
const visibleItems = vue.computed(() => {
|
|
18569
|
+
return Math.max(12, Math.ceil((contentRect.value?.height ?? display.height.value) / itemHeight.value * 1.7 + 1));
|
|
18570
|
+
});
|
|
18571
|
+
function handleItemResize(index, height) {
|
|
18572
|
+
itemHeight.value = Math.max(itemHeight.value, height);
|
|
18573
|
+
sizes[index] = height;
|
|
18574
|
+
sizeMap.set(props.items[index], height);
|
|
18575
|
+
}
|
|
18576
|
+
function calculateOffset(index) {
|
|
18577
|
+
return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0);
|
|
18578
|
+
}
|
|
18579
|
+
function calculateMidPointIndex(scrollTop) {
|
|
18580
|
+
const end = props.items.length;
|
|
18581
|
+
let middle = 0;
|
|
18582
|
+
let middleOffset = 0;
|
|
18583
|
+
while (middleOffset < scrollTop && middle < end) {
|
|
18584
|
+
middleOffset += sizes[middle++] || itemHeight.value;
|
|
18585
|
+
}
|
|
18586
|
+
return middle - 1;
|
|
18587
|
+
}
|
|
18588
|
+
let lastScrollTop = 0;
|
|
18589
|
+
function handleScroll() {
|
|
18590
|
+
if (!rootEl.value || !contentRect.value) return;
|
|
18591
|
+
const height = contentRect.value.height;
|
|
18592
|
+
const scrollTop = rootEl.value.scrollTop;
|
|
18593
|
+
const direction = scrollTop < lastScrollTop ? UP : DOWN;
|
|
18594
|
+
const midPointIndex = calculateMidPointIndex(scrollTop + height / 2);
|
|
18595
|
+
const buffer = Math.round(visibleItems.value / 3);
|
|
18596
|
+
if (direction === UP && midPointIndex <= first.value + buffer * 2 - 1) {
|
|
18597
|
+
first.value = clamp(midPointIndex - buffer, 0, props.items.length);
|
|
18598
|
+
} else if (direction === DOWN && midPointIndex >= first.value + buffer * 2 - 1) {
|
|
18599
|
+
first.value = clamp(midPointIndex - buffer, 0, props.items.length - visibleItems.value);
|
|
18600
|
+
}
|
|
18601
|
+
lastScrollTop = rootEl.value.scrollTop;
|
|
18602
|
+
}
|
|
18603
|
+
function scrollToIndex(index) {
|
|
18604
|
+
if (!rootEl.value) return;
|
|
18605
|
+
const offset = calculateOffset(index);
|
|
18606
|
+
rootEl.value.scrollTop = offset;
|
|
18607
|
+
}
|
|
18608
|
+
const items = vue.computed(() => props.items.map((item, index) => ({
|
|
18609
|
+
raw: item,
|
|
18610
|
+
index
|
|
18611
|
+
})));
|
|
18612
|
+
const last = vue.computed(() => Math.min(props.items.length, first.value + visibleItems.value));
|
|
18613
|
+
const computedItems = vue.computed(() => items.value.slice(first.value, last.value));
|
|
18614
|
+
const paddingTop = vue.computed(() => calculateOffset(first.value));
|
|
18615
|
+
const paddingBottom = vue.computed(() => calculateOffset(props.items.length) - calculateOffset(last.value));
|
|
18616
|
+
const {
|
|
18617
|
+
dimensionStyles
|
|
18618
|
+
} = useDimension(props);
|
|
18619
|
+
vue.onMounted(() => {
|
|
18620
|
+
if (!itemHeight.value) {
|
|
18621
|
+
// If itemHeight prop is not set, then calculate an estimated height from the average of inital items
|
|
18622
|
+
itemHeight.value = sizes.slice(first.value, last.value).reduce((curr, height) => curr + height, 0) / visibleItems.value;
|
|
18623
|
+
}
|
|
18624
|
+
});
|
|
18625
|
+
vue.watch(() => props.items.length, () => {
|
|
18626
|
+
sizes = createRange(props.items.length).map(() => itemHeight.value);
|
|
18627
|
+
sizeMap.forEach((height, item) => {
|
|
18628
|
+
const index = props.items.indexOf(item);
|
|
18629
|
+
if (index === -1) {
|
|
18630
|
+
sizeMap.delete(item);
|
|
18631
|
+
} else {
|
|
18632
|
+
sizes[index] = height;
|
|
18633
|
+
}
|
|
18634
|
+
});
|
|
18635
|
+
});
|
|
18636
|
+
useRender(() => vue.createVNode("div", {
|
|
18637
|
+
"ref": rootEl,
|
|
18638
|
+
"class": ['v-virtual-scroll', props.class],
|
|
18639
|
+
"onScroll": handleScroll,
|
|
18640
|
+
"style": [dimensionStyles.value, props.style]
|
|
18641
|
+
}, [vue.createVNode("div", {
|
|
18642
|
+
"class": "v-virtual-scroll__container",
|
|
18643
|
+
"style": {
|
|
18644
|
+
paddingTop: convertToUnit(paddingTop.value),
|
|
18645
|
+
paddingBottom: convertToUnit(paddingBottom.value)
|
|
18646
|
+
}
|
|
18647
|
+
}, [computedItems.value.map(item => vue.createVNode(VVirtualScrollItem, {
|
|
18648
|
+
"key": item.index,
|
|
18649
|
+
"dynamicHeight": !props.itemHeight,
|
|
18650
|
+
"onUpdate:height": height => handleItemResize(item.index, height)
|
|
18651
|
+
}, {
|
|
18652
|
+
default: () => [slots.default?.({
|
|
18653
|
+
item: item.raw,
|
|
18654
|
+
index: item.index
|
|
18655
|
+
})]
|
|
18656
|
+
}))])]));
|
|
18657
|
+
return {
|
|
18658
|
+
scrollToIndex
|
|
18659
|
+
};
|
|
18660
|
+
}
|
|
18661
|
+
});
|
|
18662
|
+
|
|
18116
18663
|
var components = /*#__PURE__*/Object.freeze({
|
|
18117
18664
|
__proto__: null,
|
|
18118
18665
|
VAlert: VAlert,
|
|
@@ -18245,6 +18792,7 @@
|
|
|
18245
18792
|
VToolbarTitle: VToolbarTitle,
|
|
18246
18793
|
VTooltip: VTooltip,
|
|
18247
18794
|
VValidation: VValidation,
|
|
18795
|
+
VVirtualScroll: VVirtualScroll,
|
|
18248
18796
|
VWindow: VWindow,
|
|
18249
18797
|
VWindowItem: VWindowItem
|
|
18250
18798
|
});
|
|
@@ -18376,6 +18924,418 @@
|
|
|
18376
18924
|
Touch: Touch
|
|
18377
18925
|
});
|
|
18378
18926
|
|
|
18927
|
+
// Utilities
|
|
18928
|
+
|
|
18929
|
+
// Types
|
|
18930
|
+
|
|
18931
|
+
function getWeekArray(date) {
|
|
18932
|
+
let currentWeek = [];
|
|
18933
|
+
const weeks = [];
|
|
18934
|
+
const firstDayOfMonth = startOfMonth(date);
|
|
18935
|
+
const lastDayOfMonth = endOfMonth(date);
|
|
18936
|
+
for (let i = 0; i < firstDayOfMonth.getDay(); i++) {
|
|
18937
|
+
currentWeek.push(null);
|
|
18938
|
+
}
|
|
18939
|
+
for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {
|
|
18940
|
+
const day = new Date(date.getFullYear(), date.getMonth(), i);
|
|
18941
|
+
|
|
18942
|
+
// Add the day to the current week
|
|
18943
|
+
currentWeek.push(day);
|
|
18944
|
+
|
|
18945
|
+
// If the current week has 7 days, add it to the weeks array and start a new week
|
|
18946
|
+
if (currentWeek.length === 7) {
|
|
18947
|
+
weeks.push(currentWeek);
|
|
18948
|
+
currentWeek = [];
|
|
18949
|
+
}
|
|
18950
|
+
}
|
|
18951
|
+
for (let i = currentWeek.length; i < 7; i++) {
|
|
18952
|
+
currentWeek.push(null);
|
|
18953
|
+
}
|
|
18954
|
+
weeks.push(currentWeek);
|
|
18955
|
+
return weeks;
|
|
18956
|
+
}
|
|
18957
|
+
function startOfMonth(date) {
|
|
18958
|
+
return new Date(date.getFullYear(), date.getMonth(), 1);
|
|
18959
|
+
}
|
|
18960
|
+
function endOfMonth(date) {
|
|
18961
|
+
return new Date(date.getFullYear(), date.getMonth() + 1, 0);
|
|
18962
|
+
}
|
|
18963
|
+
function date(value) {
|
|
18964
|
+
if (value == null) return null;
|
|
18965
|
+
if (value instanceof Date) return value;
|
|
18966
|
+
if (typeof value === 'string') {
|
|
18967
|
+
const parsed = Date.parse(value);
|
|
18968
|
+
if (!isNaN(parsed)) return new Date(parsed);
|
|
18969
|
+
}
|
|
18970
|
+
return null;
|
|
18971
|
+
}
|
|
18972
|
+
const firstDay = {
|
|
18973
|
+
'001': 1,
|
|
18974
|
+
AD: 1,
|
|
18975
|
+
AE: 6,
|
|
18976
|
+
AF: 6,
|
|
18977
|
+
AG: 0,
|
|
18978
|
+
AI: 1,
|
|
18979
|
+
AL: 1,
|
|
18980
|
+
AM: 1,
|
|
18981
|
+
AN: 1,
|
|
18982
|
+
AR: 1,
|
|
18983
|
+
AS: 0,
|
|
18984
|
+
AT: 1,
|
|
18985
|
+
AU: 0,
|
|
18986
|
+
AX: 1,
|
|
18987
|
+
AZ: 1,
|
|
18988
|
+
BA: 1,
|
|
18989
|
+
BD: 0,
|
|
18990
|
+
BE: 1,
|
|
18991
|
+
BG: 1,
|
|
18992
|
+
BH: 6,
|
|
18993
|
+
BM: 1,
|
|
18994
|
+
BN: 1,
|
|
18995
|
+
BR: 0,
|
|
18996
|
+
BS: 0,
|
|
18997
|
+
BT: 0,
|
|
18998
|
+
BW: 0,
|
|
18999
|
+
BY: 1,
|
|
19000
|
+
BZ: 0,
|
|
19001
|
+
CA: 0,
|
|
19002
|
+
CH: 1,
|
|
19003
|
+
CL: 1,
|
|
19004
|
+
CM: 1,
|
|
19005
|
+
CN: 0,
|
|
19006
|
+
CO: 0,
|
|
19007
|
+
CR: 1,
|
|
19008
|
+
CY: 1,
|
|
19009
|
+
CZ: 1,
|
|
19010
|
+
DE: 1,
|
|
19011
|
+
DJ: 6,
|
|
19012
|
+
DK: 1,
|
|
19013
|
+
DM: 0,
|
|
19014
|
+
DO: 0,
|
|
19015
|
+
DZ: 6,
|
|
19016
|
+
EC: 1,
|
|
19017
|
+
EE: 1,
|
|
19018
|
+
EG: 6,
|
|
19019
|
+
ES: 1,
|
|
19020
|
+
ET: 0,
|
|
19021
|
+
FI: 1,
|
|
19022
|
+
FJ: 1,
|
|
19023
|
+
FO: 1,
|
|
19024
|
+
FR: 1,
|
|
19025
|
+
GB: 1,
|
|
19026
|
+
'GB-alt-variant': 0,
|
|
19027
|
+
GE: 1,
|
|
19028
|
+
GF: 1,
|
|
19029
|
+
GP: 1,
|
|
19030
|
+
GR: 1,
|
|
19031
|
+
GT: 0,
|
|
19032
|
+
GU: 0,
|
|
19033
|
+
HK: 0,
|
|
19034
|
+
HN: 0,
|
|
19035
|
+
HR: 1,
|
|
19036
|
+
HU: 1,
|
|
19037
|
+
ID: 0,
|
|
19038
|
+
IE: 1,
|
|
19039
|
+
IL: 0,
|
|
19040
|
+
IN: 0,
|
|
19041
|
+
IQ: 6,
|
|
19042
|
+
IR: 6,
|
|
19043
|
+
IS: 1,
|
|
19044
|
+
IT: 1,
|
|
19045
|
+
JM: 0,
|
|
19046
|
+
JO: 6,
|
|
19047
|
+
JP: 0,
|
|
19048
|
+
KE: 0,
|
|
19049
|
+
KG: 1,
|
|
19050
|
+
KH: 0,
|
|
19051
|
+
KR: 0,
|
|
19052
|
+
KW: 6,
|
|
19053
|
+
KZ: 1,
|
|
19054
|
+
LA: 0,
|
|
19055
|
+
LB: 1,
|
|
19056
|
+
LI: 1,
|
|
19057
|
+
LK: 1,
|
|
19058
|
+
LT: 1,
|
|
19059
|
+
LU: 1,
|
|
19060
|
+
LV: 1,
|
|
19061
|
+
LY: 6,
|
|
19062
|
+
MC: 1,
|
|
19063
|
+
MD: 1,
|
|
19064
|
+
ME: 1,
|
|
19065
|
+
MH: 0,
|
|
19066
|
+
MK: 1,
|
|
19067
|
+
MM: 0,
|
|
19068
|
+
MN: 1,
|
|
19069
|
+
MO: 0,
|
|
19070
|
+
MQ: 1,
|
|
19071
|
+
MT: 0,
|
|
19072
|
+
MV: 5,
|
|
19073
|
+
MX: 0,
|
|
19074
|
+
MY: 1,
|
|
19075
|
+
MZ: 0,
|
|
19076
|
+
NI: 0,
|
|
19077
|
+
NL: 1,
|
|
19078
|
+
NO: 1,
|
|
19079
|
+
NP: 0,
|
|
19080
|
+
NZ: 1,
|
|
19081
|
+
OM: 6,
|
|
19082
|
+
PA: 0,
|
|
19083
|
+
PE: 0,
|
|
19084
|
+
PH: 0,
|
|
19085
|
+
PK: 0,
|
|
19086
|
+
PL: 1,
|
|
19087
|
+
PR: 0,
|
|
19088
|
+
PT: 0,
|
|
19089
|
+
PY: 0,
|
|
19090
|
+
QA: 6,
|
|
19091
|
+
RE: 1,
|
|
19092
|
+
RO: 1,
|
|
19093
|
+
RS: 1,
|
|
19094
|
+
RU: 1,
|
|
19095
|
+
SA: 0,
|
|
19096
|
+
SD: 6,
|
|
19097
|
+
SE: 1,
|
|
19098
|
+
SG: 0,
|
|
19099
|
+
SI: 1,
|
|
19100
|
+
SK: 1,
|
|
19101
|
+
SM: 1,
|
|
19102
|
+
SV: 0,
|
|
19103
|
+
SY: 6,
|
|
19104
|
+
TH: 0,
|
|
19105
|
+
TJ: 1,
|
|
19106
|
+
TM: 1,
|
|
19107
|
+
TR: 1,
|
|
19108
|
+
TT: 0,
|
|
19109
|
+
TW: 0,
|
|
19110
|
+
UA: 1,
|
|
19111
|
+
UM: 0,
|
|
19112
|
+
US: 0,
|
|
19113
|
+
UY: 1,
|
|
19114
|
+
UZ: 1,
|
|
19115
|
+
VA: 1,
|
|
19116
|
+
VE: 0,
|
|
19117
|
+
VI: 0,
|
|
19118
|
+
VN: 1,
|
|
19119
|
+
WS: 0,
|
|
19120
|
+
XK: 1,
|
|
19121
|
+
YE: 0,
|
|
19122
|
+
ZA: 0,
|
|
19123
|
+
ZW: 0
|
|
19124
|
+
};
|
|
19125
|
+
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
|
19126
|
+
function getWeekdays(locale) {
|
|
19127
|
+
const daysFromSunday = firstDay[locale.slice(-2).toUpperCase()];
|
|
19128
|
+
return createRange(7).map(i => {
|
|
19129
|
+
const weekday = new Date(sundayJanuarySecond2000);
|
|
19130
|
+
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
|
19131
|
+
return new Intl.DateTimeFormat(locale, {
|
|
19132
|
+
weekday: 'long'
|
|
19133
|
+
}).format(weekday);
|
|
19134
|
+
});
|
|
19135
|
+
}
|
|
19136
|
+
function format(value, formatString, locale) {
|
|
19137
|
+
const date = new Date(value);
|
|
19138
|
+
let options = {};
|
|
19139
|
+
switch (formatString) {
|
|
19140
|
+
case 'fullDateWithWeekday':
|
|
19141
|
+
options = {
|
|
19142
|
+
weekday: 'long',
|
|
19143
|
+
day: 'numeric',
|
|
19144
|
+
month: 'long',
|
|
19145
|
+
year: 'numeric'
|
|
19146
|
+
};
|
|
19147
|
+
break;
|
|
19148
|
+
case 'normalDateWithWeekday':
|
|
19149
|
+
options = {
|
|
19150
|
+
weekday: 'short',
|
|
19151
|
+
day: 'numeric',
|
|
19152
|
+
month: 'short',
|
|
19153
|
+
year: 'numeric'
|
|
19154
|
+
};
|
|
19155
|
+
break;
|
|
19156
|
+
case 'keyboardDate':
|
|
19157
|
+
options = {};
|
|
19158
|
+
break;
|
|
19159
|
+
case 'monthAndDate':
|
|
19160
|
+
options = {
|
|
19161
|
+
month: 'long',
|
|
19162
|
+
day: 'numeric'
|
|
19163
|
+
};
|
|
19164
|
+
break;
|
|
19165
|
+
case 'monthAndYear':
|
|
19166
|
+
options = {
|
|
19167
|
+
month: 'long',
|
|
19168
|
+
year: 'numeric'
|
|
19169
|
+
};
|
|
19170
|
+
break;
|
|
19171
|
+
default:
|
|
19172
|
+
options = {
|
|
19173
|
+
timeZone: 'UTC',
|
|
19174
|
+
timeZoneName: 'short'
|
|
19175
|
+
};
|
|
19176
|
+
}
|
|
19177
|
+
return new Intl.DateTimeFormat(locale, options).format(date);
|
|
19178
|
+
}
|
|
19179
|
+
function addDays(date, amount) {
|
|
19180
|
+
const d = new Date(date);
|
|
19181
|
+
d.setDate(d.getDate() + amount);
|
|
19182
|
+
return d;
|
|
19183
|
+
}
|
|
19184
|
+
function addMonths(date, amount) {
|
|
19185
|
+
const d = new Date(date);
|
|
19186
|
+
d.setMonth(d.getMonth() + amount);
|
|
19187
|
+
return d;
|
|
19188
|
+
}
|
|
19189
|
+
function getYear(date) {
|
|
19190
|
+
return date.getFullYear();
|
|
19191
|
+
}
|
|
19192
|
+
function getMonth(date) {
|
|
19193
|
+
return date.getMonth();
|
|
19194
|
+
}
|
|
19195
|
+
function startOfYear(date) {
|
|
19196
|
+
return new Date(date.getFullYear(), 0, 1);
|
|
19197
|
+
}
|
|
19198
|
+
function endOfYear(date) {
|
|
19199
|
+
return new Date(date.getFullYear(), 11, 31);
|
|
19200
|
+
}
|
|
19201
|
+
function getMondayOfFirstWeekOfYear(year) {
|
|
19202
|
+
return new Date(year, 0, 1);
|
|
19203
|
+
}
|
|
19204
|
+
|
|
19205
|
+
// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
|
|
19206
|
+
function getWeek(date) {
|
|
19207
|
+
let year = date.getFullYear();
|
|
19208
|
+
let d1w1 = getMondayOfFirstWeekOfYear(year);
|
|
19209
|
+
if (date < d1w1) {
|
|
19210
|
+
year = year - 1;
|
|
19211
|
+
d1w1 = getMondayOfFirstWeekOfYear(year);
|
|
19212
|
+
} else {
|
|
19213
|
+
const tv = getMondayOfFirstWeekOfYear(year + 1);
|
|
19214
|
+
if (date >= tv) {
|
|
19215
|
+
year = year + 1;
|
|
19216
|
+
d1w1 = tv;
|
|
19217
|
+
}
|
|
19218
|
+
}
|
|
19219
|
+
const diffTime = Math.abs(date.getTime() - d1w1.getTime());
|
|
19220
|
+
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
|
19221
|
+
return Math.floor(diffDays / 7) + 1;
|
|
19222
|
+
}
|
|
19223
|
+
function isWithinRange(date, range) {
|
|
19224
|
+
return isAfter(date, range[0]) && isBefore(date, range[1]);
|
|
19225
|
+
}
|
|
19226
|
+
function isValid(date) {
|
|
19227
|
+
const d = new Date(date);
|
|
19228
|
+
return d instanceof Date && !isNaN(d.getTime());
|
|
19229
|
+
}
|
|
19230
|
+
function isAfter(date, comparing) {
|
|
19231
|
+
return date.getTime() > comparing.getTime();
|
|
19232
|
+
}
|
|
19233
|
+
function isBefore(date, comparing) {
|
|
19234
|
+
return date.getTime() < comparing.getTime();
|
|
19235
|
+
}
|
|
19236
|
+
function isEqual(date, comparing) {
|
|
19237
|
+
return date.getTime() === comparing.getTime();
|
|
19238
|
+
}
|
|
19239
|
+
function isSameDay(date, comparing) {
|
|
19240
|
+
return date.getDate() === comparing.getDate() && date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
|
19241
|
+
}
|
|
19242
|
+
function isSameMonth(date, comparing) {
|
|
19243
|
+
return date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
|
19244
|
+
}
|
|
19245
|
+
function getDiff(date, comparing, unit) {
|
|
19246
|
+
const d = new Date(date);
|
|
19247
|
+
const c = new Date(comparing);
|
|
19248
|
+
if (unit === 'month') {
|
|
19249
|
+
return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12;
|
|
19250
|
+
}
|
|
19251
|
+
return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24));
|
|
19252
|
+
}
|
|
19253
|
+
function setYear(date, year) {
|
|
19254
|
+
const d = new Date(date);
|
|
19255
|
+
d.setFullYear(year);
|
|
19256
|
+
return d;
|
|
19257
|
+
}
|
|
19258
|
+
class VuetifyDateAdapter {
|
|
19259
|
+
constructor() {
|
|
19260
|
+
let locale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'en';
|
|
19261
|
+
this.locale = locale;
|
|
19262
|
+
}
|
|
19263
|
+
date(value) {
|
|
19264
|
+
return date(value);
|
|
19265
|
+
}
|
|
19266
|
+
addDays(date, amount) {
|
|
19267
|
+
return addDays(date, amount);
|
|
19268
|
+
}
|
|
19269
|
+
addMonths(date, amount) {
|
|
19270
|
+
return addMonths(date, amount);
|
|
19271
|
+
}
|
|
19272
|
+
getWeekArray(date) {
|
|
19273
|
+
return getWeekArray(date);
|
|
19274
|
+
}
|
|
19275
|
+
startOfMonth(date) {
|
|
19276
|
+
return startOfMonth(date);
|
|
19277
|
+
}
|
|
19278
|
+
endOfMonth(date) {
|
|
19279
|
+
return endOfMonth(date);
|
|
19280
|
+
}
|
|
19281
|
+
format(date, formatString) {
|
|
19282
|
+
return format(date, formatString, this.locale);
|
|
19283
|
+
}
|
|
19284
|
+
isEqual(date, comparing) {
|
|
19285
|
+
return isEqual(date, comparing);
|
|
19286
|
+
}
|
|
19287
|
+
isValid(date) {
|
|
19288
|
+
return isValid(date);
|
|
19289
|
+
}
|
|
19290
|
+
isWithinRange(date, range) {
|
|
19291
|
+
return isWithinRange(date, range);
|
|
19292
|
+
}
|
|
19293
|
+
isAfter(date, comparing) {
|
|
19294
|
+
return isAfter(date, comparing);
|
|
19295
|
+
}
|
|
19296
|
+
isSameDay(date, comparing) {
|
|
19297
|
+
return isSameDay(date, comparing);
|
|
19298
|
+
}
|
|
19299
|
+
isSameMonth(date, comparing) {
|
|
19300
|
+
return isSameMonth(date, comparing);
|
|
19301
|
+
}
|
|
19302
|
+
setYear(date, year) {
|
|
19303
|
+
return setYear(date, year);
|
|
19304
|
+
}
|
|
19305
|
+
getDiff(date, comparing, unit) {
|
|
19306
|
+
return getDiff(date, comparing, unit);
|
|
19307
|
+
}
|
|
19308
|
+
getWeek(date) {
|
|
19309
|
+
return getWeek(date);
|
|
19310
|
+
}
|
|
19311
|
+
getWeekdays() {
|
|
19312
|
+
return getWeekdays(this.locale);
|
|
19313
|
+
}
|
|
19314
|
+
getYear(date) {
|
|
19315
|
+
return getYear(date);
|
|
19316
|
+
}
|
|
19317
|
+
getMonth(date) {
|
|
19318
|
+
return getMonth(date);
|
|
19319
|
+
}
|
|
19320
|
+
startOfYear(date) {
|
|
19321
|
+
return startOfYear(date);
|
|
19322
|
+
}
|
|
19323
|
+
endOfYear(date) {
|
|
19324
|
+
return endOfYear(date);
|
|
19325
|
+
}
|
|
19326
|
+
}
|
|
19327
|
+
|
|
19328
|
+
// Composables
|
|
19329
|
+
|
|
19330
|
+
// Types
|
|
19331
|
+
|
|
19332
|
+
const DateAdapterSymbol = Symbol.for('vuetify:date-adapter');
|
|
19333
|
+
function createDate(options) {
|
|
19334
|
+
return options ?? {
|
|
19335
|
+
adapter: VuetifyDateAdapter
|
|
19336
|
+
};
|
|
19337
|
+
}
|
|
19338
|
+
|
|
18379
19339
|
// Composables
|
|
18380
19340
|
function createVuetify$1() {
|
|
18381
19341
|
let vuetify = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -18394,6 +19354,7 @@
|
|
|
18394
19354
|
const theme = createTheme(options.theme);
|
|
18395
19355
|
const icons = createIcons(options.icons);
|
|
18396
19356
|
const locale = createLocale(options.locale);
|
|
19357
|
+
const date = createDate(options.date);
|
|
18397
19358
|
const install = app => {
|
|
18398
19359
|
for (const key in directives) {
|
|
18399
19360
|
app.directive(key, directives[key]);
|
|
@@ -18414,6 +19375,7 @@
|
|
|
18414
19375
|
app.provide(ThemeSymbol, theme);
|
|
18415
19376
|
app.provide(IconSymbol, icons);
|
|
18416
19377
|
app.provide(LocaleSymbol, locale);
|
|
19378
|
+
app.provide(DateAdapterSymbol, date);
|
|
18417
19379
|
if (IN_BROWSER && options.ssr) {
|
|
18418
19380
|
if (app.$nuxt) {
|
|
18419
19381
|
app.$nuxt.hook('app:suspense:resolve', () => {
|
|
@@ -18441,7 +19403,8 @@
|
|
|
18441
19403
|
display: inject.call(this, DisplaySymbol),
|
|
18442
19404
|
theme: inject.call(this, ThemeSymbol),
|
|
18443
19405
|
icons: inject.call(this, IconSymbol),
|
|
18444
|
-
locale: inject.call(this, LocaleSymbol)
|
|
19406
|
+
locale: inject.call(this, LocaleSymbol),
|
|
19407
|
+
date: inject.call(this, DateAdapterSymbol)
|
|
18445
19408
|
});
|
|
18446
19409
|
}
|
|
18447
19410
|
}
|
|
@@ -18454,10 +19417,11 @@
|
|
|
18454
19417
|
display,
|
|
18455
19418
|
theme,
|
|
18456
19419
|
icons,
|
|
18457
|
-
locale
|
|
19420
|
+
locale,
|
|
19421
|
+
date
|
|
18458
19422
|
};
|
|
18459
19423
|
}
|
|
18460
|
-
const version$1 = "3.
|
|
19424
|
+
const version$1 = "3.2.0";
|
|
18461
19425
|
createVuetify$1.version = version$1;
|
|
18462
19426
|
|
|
18463
19427
|
// Vue's inject() can only be used in setup
|
|
@@ -18477,12 +19441,13 @@
|
|
|
18477
19441
|
...options
|
|
18478
19442
|
});
|
|
18479
19443
|
};
|
|
18480
|
-
const version = "3.
|
|
19444
|
+
const version = "3.2.0";
|
|
18481
19445
|
createVuetify.version = version;
|
|
18482
19446
|
|
|
18483
19447
|
exports.components = components;
|
|
18484
19448
|
exports.createVuetify = createVuetify;
|
|
18485
19449
|
exports.directives = directives;
|
|
19450
|
+
exports.useDefaults = useDefaults;
|
|
18486
19451
|
exports.useDisplay = useDisplay;
|
|
18487
19452
|
exports.useLayout = useLayout;
|
|
18488
19453
|
exports.useLocale = useLocale;
|