vuetify 3.1.16 → 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 +331 -179
- package/dist/json/importMap-labs.json +4 -4
- package/dist/json/importMap.json +8 -4
- package/dist/json/tags.json +45 -2
- package/dist/json/web-types.json +851 -329
- package/dist/vuetify-labs.css +844 -621
- package/dist/vuetify-labs.d.ts +5908 -7618
- package/dist/vuetify-labs.esm.js +1628 -652
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +1627 -650
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +272 -65
- package/dist/vuetify.d.ts +6192 -7178
- package/dist/vuetify.esm.js +1365 -423
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +1364 -421
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +798 -728
- 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 +4 -2
- 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 +132 -91
- 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 +2 -1
- 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 -11
- package/lib/components/VField/VField.mjs +18 -8
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +57 -5
- 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 +4 -2
- 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 +4 -1
- 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 +5832 -6863
- 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 +46 -3
- 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 +6 -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 +3 -2
- package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +0 -1
- package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs.map +0 -1
- package/lib/labs/VVirtualScroll/index.mjs.map +0 -1
- /package/lib/{labs → components}/VVirtualScroll/VVirtualScroll.css +0 -0
- /package/lib/{labs → components}/VVirtualScroll/VVirtualScroll.sass +0 -0
- /package/lib/{labs → components}/VVirtualScroll/index.mjs +0 -0
package/dist/vuetify-labs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.
|
|
2
|
+
* Vuetify v3.2.0
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -171,11 +171,11 @@
|
|
|
171
171
|
function keys(o) {
|
|
172
172
|
return Object.keys(o);
|
|
173
173
|
}
|
|
174
|
-
function pick(obj, paths) {
|
|
174
|
+
function pick(obj, paths, exclude) {
|
|
175
175
|
const found = Object.create(null);
|
|
176
176
|
const rest = Object.create(null);
|
|
177
177
|
for (const key in obj) {
|
|
178
|
-
if (paths.some(path => path instanceof RegExp ? path.test(key) : path === key)) {
|
|
178
|
+
if (paths.some(path => path instanceof RegExp ? path.test(key) : path === key) && !exclude?.some(path => path === key)) {
|
|
179
179
|
found[key] = obj[key];
|
|
180
180
|
} else {
|
|
181
181
|
rest[key] = obj[key];
|
|
@@ -886,44 +886,6 @@
|
|
|
886
886
|
return (light + 0.05) / (dark + 0.05);
|
|
887
887
|
}
|
|
888
888
|
|
|
889
|
-
// Utilities
|
|
890
|
-
function getCurrentInstance(name, message) {
|
|
891
|
-
const vm = vue.getCurrentInstance();
|
|
892
|
-
if (!vm) {
|
|
893
|
-
throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);
|
|
894
|
-
}
|
|
895
|
-
return vm;
|
|
896
|
-
}
|
|
897
|
-
function getCurrentInstanceName() {
|
|
898
|
-
let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';
|
|
899
|
-
const vm = getCurrentInstance(name).type;
|
|
900
|
-
return toKebabCase(vm?.aliasName || vm?.name);
|
|
901
|
-
}
|
|
902
|
-
let _uid = 0;
|
|
903
|
-
let _map = new WeakMap();
|
|
904
|
-
function getUid() {
|
|
905
|
-
const vm = getCurrentInstance('getUid');
|
|
906
|
-
if (_map.has(vm)) return _map.get(vm);else {
|
|
907
|
-
const uid = _uid++;
|
|
908
|
-
_map.set(vm, uid);
|
|
909
|
-
return uid;
|
|
910
|
-
}
|
|
911
|
-
}
|
|
912
|
-
getUid.reset = () => {
|
|
913
|
-
_uid = 0;
|
|
914
|
-
_map = new WeakMap();
|
|
915
|
-
};
|
|
916
|
-
|
|
917
|
-
function injectSelf(key) {
|
|
918
|
-
const {
|
|
919
|
-
provides
|
|
920
|
-
} = getCurrentInstance('injectSelf');
|
|
921
|
-
if (provides && key in provides) {
|
|
922
|
-
// TS doesn't allow symbol as index type
|
|
923
|
-
return provides[key];
|
|
924
|
-
}
|
|
925
|
-
}
|
|
926
|
-
|
|
927
889
|
/**
|
|
928
890
|
* Creates a factory function for props definitions.
|
|
929
891
|
* This is used to define props in a composable then override
|
|
@@ -977,17 +939,54 @@
|
|
|
977
939
|
|
|
978
940
|
// Types
|
|
979
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
|
+
|
|
980
979
|
const DefaultsSymbol = Symbol.for('vuetify:defaults');
|
|
981
980
|
function createDefaults(options) {
|
|
982
981
|
return vue.ref(options);
|
|
983
982
|
}
|
|
984
|
-
function
|
|
983
|
+
function injectDefaults() {
|
|
985
984
|
const defaults = vue.inject(DefaultsSymbol);
|
|
986
985
|
if (!defaults) throw new Error('[Vuetify] Could not find defaults instance');
|
|
987
986
|
return defaults;
|
|
988
987
|
}
|
|
989
988
|
function provideDefaults(defaults, options) {
|
|
990
|
-
const injectedDefaults =
|
|
989
|
+
const injectedDefaults = injectDefaults();
|
|
991
990
|
const providedDefaults = vue.ref(defaults);
|
|
992
991
|
const newDefaults = vue.computed(() => {
|
|
993
992
|
const disabled = vue.unref(options?.disabled);
|
|
@@ -1014,41 +1013,58 @@
|
|
|
1014
1013
|
vue.provide(DefaultsSymbol, newDefaults);
|
|
1015
1014
|
return newDefaults;
|
|
1016
1015
|
}
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
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;
|
|
1033
1038
|
}
|
|
1034
|
-
}, {
|
|
1035
|
-
immediate: true
|
|
1036
1039
|
});
|
|
1037
|
-
vue.
|
|
1038
|
-
|
|
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
|
+
}
|
|
1039
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
|
+
};
|
|
1040
1062
|
}
|
|
1041
1063
|
|
|
1042
1064
|
// Utils
|
|
1043
1065
|
|
|
1044
1066
|
// Types
|
|
1045
1067
|
|
|
1046
|
-
function propIsDefined(vnode, prop) {
|
|
1047
|
-
return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';
|
|
1048
|
-
}
|
|
1049
|
-
|
|
1050
|
-
// No props
|
|
1051
|
-
|
|
1052
1068
|
// Implementation
|
|
1053
1069
|
function defineComponent(options) {
|
|
1054
1070
|
options._setup = options._setup ?? options.setup;
|
|
@@ -1060,43 +1076,20 @@
|
|
|
1060
1076
|
options.props = propsFactory(options.props ?? {}, toKebabCase(options.name))();
|
|
1061
1077
|
const propKeys = Object.keys(options.props);
|
|
1062
1078
|
options.filterProps = function filterProps(props) {
|
|
1063
|
-
return pick(props, propKeys);
|
|
1079
|
+
return pick(props, propKeys, ['class', 'style']);
|
|
1064
1080
|
};
|
|
1065
1081
|
options.props._as = String;
|
|
1066
1082
|
options.setup = function setup(props, ctx) {
|
|
1067
|
-
const defaults =
|
|
1083
|
+
const defaults = injectDefaults();
|
|
1068
1084
|
|
|
1069
1085
|
// Skip props proxy if defaults are not provided
|
|
1070
1086
|
if (!defaults.value) return options._setup(props, ctx);
|
|
1071
|
-
const
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
const propValue = Reflect.get(target, prop);
|
|
1076
|
-
if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
|
|
1077
|
-
return componentDefaults.value?.[prop] ?? defaults.value.global?.[prop] ?? propValue;
|
|
1078
|
-
}
|
|
1079
|
-
return propValue;
|
|
1080
|
-
}
|
|
1081
|
-
});
|
|
1082
|
-
const _subcomponentDefaults = vue.shallowRef();
|
|
1083
|
-
vue.watchEffect(() => {
|
|
1084
|
-
if (componentDefaults.value) {
|
|
1085
|
-
const subComponents = Object.entries(componentDefaults.value).filter(_ref => {
|
|
1086
|
-
let [key] = _ref;
|
|
1087
|
-
return key.startsWith(key[0].toUpperCase());
|
|
1088
|
-
});
|
|
1089
|
-
if (subComponents.length) _subcomponentDefaults.value = Object.fromEntries(subComponents);
|
|
1090
|
-
}
|
|
1091
|
-
});
|
|
1087
|
+
const {
|
|
1088
|
+
props: _props,
|
|
1089
|
+
provideSubDefaults
|
|
1090
|
+
} = useDefaults(props, props._as ?? options.name, defaults);
|
|
1092
1091
|
const setupBindings = options._setup(_props, ctx);
|
|
1093
|
-
|
|
1094
|
-
// If subcomponent defaults are provided, override any
|
|
1095
|
-
// subcomponents provided by the component's setup function.
|
|
1096
|
-
// This uses injectSelf so must be done after the original setup to work.
|
|
1097
|
-
useToggleScope(_subcomponentDefaults, () => {
|
|
1098
|
-
provideDefaults(mergeDeep(injectSelf(DefaultsSymbol)?.value ?? {}, _subcomponentDefaults.value));
|
|
1099
|
-
});
|
|
1092
|
+
provideSubDefaults();
|
|
1100
1093
|
return setupBindings;
|
|
1101
1094
|
};
|
|
1102
1095
|
}
|
|
@@ -1121,15 +1114,19 @@
|
|
|
1121
1114
|
tag: {
|
|
1122
1115
|
type: String,
|
|
1123
1116
|
default: tag
|
|
1124
|
-
}
|
|
1117
|
+
},
|
|
1118
|
+
...makeComponentProps()
|
|
1125
1119
|
},
|
|
1126
1120
|
setup(props, _ref) {
|
|
1127
1121
|
let {
|
|
1128
1122
|
slots
|
|
1129
1123
|
} = _ref;
|
|
1130
|
-
return () =>
|
|
1131
|
-
|
|
1132
|
-
|
|
1124
|
+
return () => {
|
|
1125
|
+
return vue.h(props.tag, {
|
|
1126
|
+
class: [klass, props.class],
|
|
1127
|
+
style: props.style
|
|
1128
|
+
}, slots.default?.());
|
|
1129
|
+
};
|
|
1133
1130
|
}
|
|
1134
1131
|
});
|
|
1135
1132
|
}
|
|
@@ -1162,6 +1159,34 @@
|
|
|
1162
1159
|
const deceleratedEasing = 'cubic-bezier(0.0, 0, 0.2, 1)'; // Entering
|
|
1163
1160
|
const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)'; // Leaving
|
|
1164
1161
|
|
|
1162
|
+
// Utilities
|
|
1163
|
+
function getCurrentInstance(name, message) {
|
|
1164
|
+
const vm = vue.getCurrentInstance();
|
|
1165
|
+
if (!vm) {
|
|
1166
|
+
throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);
|
|
1167
|
+
}
|
|
1168
|
+
return vm;
|
|
1169
|
+
}
|
|
1170
|
+
function getCurrentInstanceName() {
|
|
1171
|
+
let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';
|
|
1172
|
+
const vm = getCurrentInstance(name).type;
|
|
1173
|
+
return toKebabCase(vm?.aliasName || vm?.name);
|
|
1174
|
+
}
|
|
1175
|
+
let _uid = 0;
|
|
1176
|
+
let _map = new WeakMap();
|
|
1177
|
+
function getUid() {
|
|
1178
|
+
const vm = getCurrentInstance('getUid');
|
|
1179
|
+
if (_map.has(vm)) return _map.get(vm);else {
|
|
1180
|
+
const uid = _uid++;
|
|
1181
|
+
_map.set(vm, uid);
|
|
1182
|
+
return uid;
|
|
1183
|
+
}
|
|
1184
|
+
}
|
|
1185
|
+
getUid.reset = () => {
|
|
1186
|
+
_uid = 0;
|
|
1187
|
+
_map = new WeakMap();
|
|
1188
|
+
};
|
|
1189
|
+
|
|
1165
1190
|
function getScrollParent(el) {
|
|
1166
1191
|
while (el) {
|
|
1167
1192
|
if (hasScrollbar(el)) return el;
|
|
@@ -1185,6 +1210,16 @@
|
|
|
1185
1210
|
return style.overflowY === 'scroll' || style.overflowY === 'auto' && el.scrollHeight > el.clientHeight;
|
|
1186
1211
|
}
|
|
1187
1212
|
|
|
1213
|
+
function injectSelf(key) {
|
|
1214
|
+
const {
|
|
1215
|
+
provides
|
|
1216
|
+
} = getCurrentInstance('injectSelf');
|
|
1217
|
+
if (provides && key in provides) {
|
|
1218
|
+
// TS doesn't allow symbol as index type
|
|
1219
|
+
return provides[key];
|
|
1220
|
+
}
|
|
1221
|
+
}
|
|
1222
|
+
|
|
1188
1223
|
function isFixedPosition(el) {
|
|
1189
1224
|
while (el) {
|
|
1190
1225
|
if (window.getComputedStyle(el).position === 'fixed') {
|
|
@@ -1965,7 +2000,11 @@
|
|
|
1965
2000
|
item: 'Rating {0} of {1}'
|
|
1966
2001
|
}
|
|
1967
2002
|
},
|
|
1968
|
-
loading: 'Loading...'
|
|
2003
|
+
loading: 'Loading...',
|
|
2004
|
+
infiniteScroll: {
|
|
2005
|
+
loadMore: 'Load more',
|
|
2006
|
+
empty: 'No more'
|
|
2007
|
+
}
|
|
1969
2008
|
};
|
|
1970
2009
|
|
|
1971
2010
|
const LANG_PREFIX = '$vuetify.';
|
|
@@ -2163,6 +2202,7 @@
|
|
|
2163
2202
|
const VApp = genericComponent()({
|
|
2164
2203
|
name: 'VApp',
|
|
2165
2204
|
props: {
|
|
2205
|
+
...makeComponentProps(),
|
|
2166
2206
|
...makeLayoutProps({
|
|
2167
2207
|
fullHeight: true
|
|
2168
2208
|
}),
|
|
@@ -2185,8 +2225,8 @@
|
|
|
2185
2225
|
} = useRtl();
|
|
2186
2226
|
useRender(() => vue.createVNode("div", {
|
|
2187
2227
|
"ref": layoutRef,
|
|
2188
|
-
"class": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value],
|
|
2189
|
-
"style": layoutStyles.value
|
|
2228
|
+
"class": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value, props.class],
|
|
2229
|
+
"style": [layoutStyles.value, props.style]
|
|
2190
2230
|
}, [vue.createVNode("div", {
|
|
2191
2231
|
"class": "v-application__wrap"
|
|
2192
2232
|
}, [slots.default?.()])]));
|
|
@@ -2611,6 +2651,7 @@
|
|
|
2611
2651
|
props: {
|
|
2612
2652
|
aspectRatio: [String, Number],
|
|
2613
2653
|
contentClass: String,
|
|
2654
|
+
...makeComponentProps(),
|
|
2614
2655
|
...makeDimensionProps()
|
|
2615
2656
|
},
|
|
2616
2657
|
setup(props, _ref) {
|
|
@@ -2624,8 +2665,8 @@
|
|
|
2624
2665
|
dimensionStyles
|
|
2625
2666
|
} = useDimension(props);
|
|
2626
2667
|
useRender(() => vue.createVNode("div", {
|
|
2627
|
-
"class":
|
|
2628
|
-
"style": dimensionStyles.value
|
|
2668
|
+
"class": ['v-responsive', props.class],
|
|
2669
|
+
"style": [dimensionStyles.value, props.style]
|
|
2629
2670
|
}, [vue.createVNode("div", {
|
|
2630
2671
|
"class": "v-responsive__sizer",
|
|
2631
2672
|
"style": aspectStyles.value
|
|
@@ -2743,6 +2784,7 @@
|
|
|
2743
2784
|
},
|
|
2744
2785
|
srcset: String,
|
|
2745
2786
|
width: [String, Number],
|
|
2787
|
+
...makeComponentProps(),
|
|
2746
2788
|
...makeTransitionProps()
|
|
2747
2789
|
},
|
|
2748
2790
|
emits: {
|
|
@@ -2930,10 +2972,10 @@
|
|
|
2930
2972
|
useRender(() => vue.withDirectives(vue.createVNode(VResponsive, {
|
|
2931
2973
|
"class": ['v-img', {
|
|
2932
2974
|
'v-img--booting': !isBooted.value
|
|
2933
|
-
}],
|
|
2934
|
-
"style": {
|
|
2975
|
+
}, props.class],
|
|
2976
|
+
"style": [{
|
|
2935
2977
|
width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width)
|
|
2936
|
-
},
|
|
2978
|
+
}, props.style],
|
|
2937
2979
|
"aspectRatio": aspectRatio.value,
|
|
2938
2980
|
"aria-label": props.alt,
|
|
2939
2981
|
"role": props.alt ? 'img' : undefined
|
|
@@ -2968,10 +3010,9 @@
|
|
|
2968
3010
|
}
|
|
2969
3011
|
}, 'tag');
|
|
2970
3012
|
|
|
2971
|
-
// Types
|
|
2972
|
-
|
|
2973
3013
|
const makeVToolbarTitleProps = propsFactory({
|
|
2974
3014
|
text: String,
|
|
3015
|
+
...makeComponentProps(),
|
|
2975
3016
|
...makeTagProps()
|
|
2976
3017
|
}, 'v-toolbar-title');
|
|
2977
3018
|
const VToolbarTitle = genericComponent()({
|
|
@@ -2984,7 +3025,8 @@
|
|
|
2984
3025
|
useRender(() => {
|
|
2985
3026
|
const hasText = !!(slots.default || slots.text || props.text);
|
|
2986
3027
|
return vue.createVNode(props.tag, {
|
|
2987
|
-
"class":
|
|
3028
|
+
"class": ['v-toolbar-title', props.class],
|
|
3029
|
+
"style": props.style
|
|
2988
3030
|
}, {
|
|
2989
3031
|
default: () => [hasText && vue.createVNode("div", {
|
|
2990
3032
|
"class": "v-toolbar-title__placeholder"
|
|
@@ -3165,6 +3207,7 @@
|
|
|
3165
3207
|
image: String,
|
|
3166
3208
|
title: String,
|
|
3167
3209
|
...makeBorderProps(),
|
|
3210
|
+
...makeComponentProps(),
|
|
3168
3211
|
...makeElevationProps(),
|
|
3169
3212
|
...makeRoundedProps(),
|
|
3170
3213
|
...makeTagProps({
|
|
@@ -3215,8 +3258,8 @@
|
|
|
3215
3258
|
'v-toolbar--flat': props.flat,
|
|
3216
3259
|
'v-toolbar--floating': props.floating,
|
|
3217
3260
|
[`v-toolbar--density-${props.density}`]: true
|
|
3218
|
-
}, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value],
|
|
3219
|
-
"style": [backgroundColorStyles.value]
|
|
3261
|
+
}, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
3262
|
+
"style": [backgroundColorStyles.value, props.style]
|
|
3220
3263
|
}, {
|
|
3221
3264
|
default: () => [hasImage && vue.createVNode("div", {
|
|
3222
3265
|
"key": "image",
|
|
@@ -3283,6 +3326,98 @@
|
|
|
3283
3326
|
|
|
3284
3327
|
// Utilities
|
|
3285
3328
|
|
|
3329
|
+
// Types
|
|
3330
|
+
|
|
3331
|
+
// Composables
|
|
3332
|
+
const makeScrollProps = propsFactory({
|
|
3333
|
+
scrollTarget: {
|
|
3334
|
+
type: String
|
|
3335
|
+
},
|
|
3336
|
+
scrollThreshold: {
|
|
3337
|
+
type: [String, Number]
|
|
3338
|
+
}
|
|
3339
|
+
}, 'scroll');
|
|
3340
|
+
function useScroll(props) {
|
|
3341
|
+
let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
3342
|
+
const {
|
|
3343
|
+
thresholdMetCallback,
|
|
3344
|
+
scrollThreshold,
|
|
3345
|
+
canScroll
|
|
3346
|
+
} = args;
|
|
3347
|
+
let previousScroll = 0;
|
|
3348
|
+
const target = vue.ref(null);
|
|
3349
|
+
const currentScroll = vue.ref(0);
|
|
3350
|
+
const savedScroll = vue.ref(0);
|
|
3351
|
+
const currentThreshold = vue.ref(0);
|
|
3352
|
+
const isScrollActive = vue.ref(false);
|
|
3353
|
+
const isScrollingUp = vue.ref(false);
|
|
3354
|
+
const computedScrollThreshold = vue.computed(() => {
|
|
3355
|
+
return Number(props.scrollThreshold ?? scrollThreshold ?? 300);
|
|
3356
|
+
});
|
|
3357
|
+
const onScroll = () => {
|
|
3358
|
+
const targetEl = target.value;
|
|
3359
|
+
if (!targetEl || canScroll && !canScroll.value) return;
|
|
3360
|
+
previousScroll = currentScroll.value;
|
|
3361
|
+
currentScroll.value = 'window' in targetEl ? targetEl.pageYOffset : targetEl.scrollTop;
|
|
3362
|
+
isScrollingUp.value = currentScroll.value < previousScroll;
|
|
3363
|
+
currentThreshold.value = Math.abs(currentScroll.value - computedScrollThreshold.value);
|
|
3364
|
+
};
|
|
3365
|
+
vue.watch(isScrollingUp, () => {
|
|
3366
|
+
savedScroll.value = savedScroll.value || currentScroll.value;
|
|
3367
|
+
});
|
|
3368
|
+
vue.watch(isScrollActive, () => {
|
|
3369
|
+
savedScroll.value = 0;
|
|
3370
|
+
});
|
|
3371
|
+
vue.onMounted(() => {
|
|
3372
|
+
vue.watch(() => props.scrollTarget, scrollTarget => {
|
|
3373
|
+
const newTarget = scrollTarget ? document.querySelector(scrollTarget) : window;
|
|
3374
|
+
if (!newTarget) {
|
|
3375
|
+
consoleWarn(`Unable to locate element with identifier ${scrollTarget}`, vue.getCurrentInstance());
|
|
3376
|
+
return;
|
|
3377
|
+
}
|
|
3378
|
+
if (newTarget === target.value) return;
|
|
3379
|
+
target.value?.removeEventListener('scroll', onScroll);
|
|
3380
|
+
target.value = newTarget;
|
|
3381
|
+
target.value.addEventListener('scroll', onScroll, {
|
|
3382
|
+
passive: true
|
|
3383
|
+
});
|
|
3384
|
+
}, {
|
|
3385
|
+
immediate: true
|
|
3386
|
+
});
|
|
3387
|
+
});
|
|
3388
|
+
vue.onBeforeUnmount(() => {
|
|
3389
|
+
target.value?.removeEventListener('scroll', onScroll);
|
|
3390
|
+
});
|
|
3391
|
+
thresholdMetCallback && vue.watch(() => Math.abs(currentScroll.value - savedScroll.value) > computedScrollThreshold.value, thresholdMet => {
|
|
3392
|
+
thresholdMet && thresholdMetCallback({
|
|
3393
|
+
currentThreshold: currentThreshold.value,
|
|
3394
|
+
isScrollingUp: isScrollingUp.value,
|
|
3395
|
+
savedScroll
|
|
3396
|
+
});
|
|
3397
|
+
}, {
|
|
3398
|
+
immediate: true
|
|
3399
|
+
});
|
|
3400
|
+
|
|
3401
|
+
// Do we need this? If yes - seems that
|
|
3402
|
+
// there's no need to expose onScroll
|
|
3403
|
+
canScroll && vue.watch(canScroll, onScroll, {
|
|
3404
|
+
immediate: true
|
|
3405
|
+
});
|
|
3406
|
+
return {
|
|
3407
|
+
computedScrollThreshold,
|
|
3408
|
+
currentScroll,
|
|
3409
|
+
currentThreshold,
|
|
3410
|
+
isScrollActive,
|
|
3411
|
+
// required only for testing
|
|
3412
|
+
// probably can be removed
|
|
3413
|
+
// later (2 chars chlng)
|
|
3414
|
+
isScrollingUp,
|
|
3415
|
+
savedScroll
|
|
3416
|
+
};
|
|
3417
|
+
}
|
|
3418
|
+
|
|
3419
|
+
// Utilities
|
|
3420
|
+
|
|
3286
3421
|
// Composables
|
|
3287
3422
|
function useSsrBoot() {
|
|
3288
3423
|
const isBooted = vue.ref(false);
|
|
@@ -3305,13 +3440,7 @@
|
|
|
3305
3440
|
const VAppBar = genericComponent()({
|
|
3306
3441
|
name: 'VAppBar',
|
|
3307
3442
|
props: {
|
|
3308
|
-
|
|
3309
|
-
// hideOnScroll: Boolean
|
|
3310
|
-
// invertedScroll: Boolean
|
|
3311
|
-
// collapseOnScroll: Boolean
|
|
3312
|
-
// elevateOnScroll: Boolean
|
|
3313
|
-
// shrinkOnScroll: Boolean
|
|
3314
|
-
// fadeImageOnScroll: Boolean
|
|
3443
|
+
scrollBehavior: String,
|
|
3315
3444
|
modelValue: {
|
|
3316
3445
|
type: Boolean,
|
|
3317
3446
|
default: true
|
|
@@ -3323,6 +3452,7 @@
|
|
|
3323
3452
|
},
|
|
3324
3453
|
...makeVToolbarProps(),
|
|
3325
3454
|
...makeLayoutItemProps(),
|
|
3455
|
+
...makeScrollProps(),
|
|
3326
3456
|
height: {
|
|
3327
3457
|
type: [Number, String],
|
|
3328
3458
|
default: 64
|
|
@@ -3337,11 +3467,63 @@
|
|
|
3337
3467
|
} = _ref;
|
|
3338
3468
|
const vToolbarRef = vue.ref();
|
|
3339
3469
|
const isActive = useProxiedModel(props, 'modelValue');
|
|
3470
|
+
const scrollBehavior = vue.computed(() => {
|
|
3471
|
+
const behavior = new Set(props.scrollBehavior?.split(' ') ?? []);
|
|
3472
|
+
return {
|
|
3473
|
+
hide: behavior.has('hide'),
|
|
3474
|
+
// fullyHide: behavior.has('fully-hide'),
|
|
3475
|
+
inverted: behavior.has('inverted'),
|
|
3476
|
+
collapse: behavior.has('collapse'),
|
|
3477
|
+
elevate: behavior.has('elevate'),
|
|
3478
|
+
fadeImage: behavior.has('fade-image')
|
|
3479
|
+
// shrink: behavior.has('shrink'),
|
|
3480
|
+
};
|
|
3481
|
+
});
|
|
3482
|
+
|
|
3483
|
+
const canScroll = vue.computed(() => {
|
|
3484
|
+
const behavior = scrollBehavior.value;
|
|
3485
|
+
return behavior.hide ||
|
|
3486
|
+
// behavior.fullyHide ||
|
|
3487
|
+
behavior.inverted || behavior.collapse || behavior.elevate || behavior.fadeImage ||
|
|
3488
|
+
// behavior.shrink ||
|
|
3489
|
+
!isActive.value;
|
|
3490
|
+
});
|
|
3491
|
+
const {
|
|
3492
|
+
currentScroll,
|
|
3493
|
+
currentThreshold,
|
|
3494
|
+
computedScrollThreshold,
|
|
3495
|
+
isScrollingUp
|
|
3496
|
+
} = useScroll(props, {
|
|
3497
|
+
canScroll
|
|
3498
|
+
});
|
|
3499
|
+
const isCollapsed = vue.computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? currentScroll.value < 1 : currentScroll.value > 0));
|
|
3500
|
+
const isFlat = vue.computed(() => props.flat || scrollBehavior.value.elevate && currentScroll.value === (scrollBehavior.value.inverted ? 1 : 0));
|
|
3501
|
+
const scrollRatio = vue.computed(() => Math.min((currentThreshold.value - currentScroll.value) / currentThreshold.value || 1, 1));
|
|
3502
|
+
const opacity = vue.computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
|
|
3340
3503
|
const height = vue.computed(() => {
|
|
3504
|
+
if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0;
|
|
3341
3505
|
const height = vToolbarRef.value?.contentHeight ?? 0;
|
|
3342
3506
|
const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;
|
|
3343
3507
|
return height + extensionHeight;
|
|
3344
3508
|
});
|
|
3509
|
+
function setActive() {
|
|
3510
|
+
const val = currentScroll.value;
|
|
3511
|
+
if (scrollBehavior.value.hide) {
|
|
3512
|
+
if (scrollBehavior.value.inverted) {
|
|
3513
|
+
isActive.value = val > computedScrollThreshold.value;
|
|
3514
|
+
} else {
|
|
3515
|
+
isActive.value = isScrollingUp.value || val < computedScrollThreshold.value;
|
|
3516
|
+
}
|
|
3517
|
+
} else if (scrollBehavior.value.inverted) {
|
|
3518
|
+
isActive.value = currentScroll.value === 0;
|
|
3519
|
+
} else {
|
|
3520
|
+
isActive.value = true;
|
|
3521
|
+
}
|
|
3522
|
+
}
|
|
3523
|
+
vue.watch(currentScroll, setActive, {
|
|
3524
|
+
immediate: true
|
|
3525
|
+
});
|
|
3526
|
+
vue.watch(scrollBehavior, setActive);
|
|
3345
3527
|
const {
|
|
3346
3528
|
ssrBootStyles
|
|
3347
3529
|
} = useSsrBoot();
|
|
@@ -3352,7 +3534,7 @@
|
|
|
3352
3534
|
order: vue.computed(() => parseInt(props.order, 10)),
|
|
3353
3535
|
position: vue.toRef(props, 'location'),
|
|
3354
3536
|
layoutSize: height,
|
|
3355
|
-
elementSize:
|
|
3537
|
+
elementSize: vue.ref(undefined),
|
|
3356
3538
|
active: isActive,
|
|
3357
3539
|
absolute: vue.toRef(props, 'absolute')
|
|
3358
3540
|
});
|
|
@@ -3362,13 +3544,17 @@
|
|
|
3362
3544
|
"ref": vToolbarRef,
|
|
3363
3545
|
"class": ['v-app-bar', {
|
|
3364
3546
|
'v-app-bar--bottom': props.location === 'bottom'
|
|
3365
|
-
}],
|
|
3366
|
-
"style": {
|
|
3547
|
+
}, props.class],
|
|
3548
|
+
"style": [{
|
|
3367
3549
|
...layoutItemStyles.value,
|
|
3550
|
+
'--v-toolbar-image-opacity': opacity.value,
|
|
3368
3551
|
height: undefined,
|
|
3369
3552
|
...ssrBootStyles.value
|
|
3370
|
-
}
|
|
3371
|
-
}, toolbarProps
|
|
3553
|
+
}, props.style]
|
|
3554
|
+
}, toolbarProps, {
|
|
3555
|
+
"collapse": isCollapsed.value,
|
|
3556
|
+
"flat": isFlat.value
|
|
3557
|
+
}), slots);
|
|
3372
3558
|
});
|
|
3373
3559
|
return {};
|
|
3374
3560
|
}
|
|
@@ -3451,6 +3637,7 @@
|
|
|
3451
3637
|
const makeVBtnGroupProps = propsFactory({
|
|
3452
3638
|
divided: Boolean,
|
|
3453
3639
|
...makeBorderProps(),
|
|
3640
|
+
...makeComponentProps(),
|
|
3454
3641
|
...makeDensityProps(),
|
|
3455
3642
|
...makeElevationProps(),
|
|
3456
3643
|
...makeRoundedProps(),
|
|
@@ -3493,7 +3680,8 @@
|
|
|
3493
3680
|
return vue.createVNode(props.tag, {
|
|
3494
3681
|
"class": ['v-btn-group', {
|
|
3495
3682
|
'v-btn-group--divided': props.divided
|
|
3496
|
-
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value]
|
|
3683
|
+
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
3684
|
+
"style": props.style
|
|
3497
3685
|
}, slots);
|
|
3498
3686
|
});
|
|
3499
3687
|
}
|
|
@@ -3726,8 +3914,10 @@
|
|
|
3726
3914
|
useRender(() => {
|
|
3727
3915
|
const [btnGroupProps] = VBtnGroup.filterProps(props);
|
|
3728
3916
|
return vue.createVNode(VBtnGroup, vue.mergeProps({
|
|
3729
|
-
"class":
|
|
3730
|
-
}, btnGroupProps
|
|
3917
|
+
"class": ['v-btn-toggle', props.class]
|
|
3918
|
+
}, btnGroupProps, {
|
|
3919
|
+
"style": props.style
|
|
3920
|
+
}), {
|
|
3731
3921
|
default: () => [slots.default?.({
|
|
3732
3922
|
isSelected,
|
|
3733
3923
|
next,
|
|
@@ -3798,7 +3988,7 @@
|
|
|
3798
3988
|
|
|
3799
3989
|
// Types
|
|
3800
3990
|
|
|
3801
|
-
const IconValue = [String, Function, Object];
|
|
3991
|
+
const IconValue = [String, Function, Object, Array];
|
|
3802
3992
|
const IconSymbol = Symbol.for('vuetify:icons');
|
|
3803
3993
|
const makeIconProps = propsFactory({
|
|
3804
3994
|
icon: {
|
|
@@ -3818,8 +4008,9 @@
|
|
|
3818
4008
|
slots
|
|
3819
4009
|
} = _ref;
|
|
3820
4010
|
return () => {
|
|
4011
|
+
const Icon = props.icon;
|
|
3821
4012
|
return vue.createVNode(props.tag, null, {
|
|
3822
|
-
default: () => [props.icon ? vue.createVNode(
|
|
4013
|
+
default: () => [props.icon ? vue.createVNode(Icon, null, null) : slots.default?.()]
|
|
3823
4014
|
});
|
|
3824
4015
|
};
|
|
3825
4016
|
}
|
|
@@ -3842,7 +4033,12 @@
|
|
|
3842
4033
|
"viewBox": "0 0 24 24",
|
|
3843
4034
|
"role": "img",
|
|
3844
4035
|
"aria-hidden": "true"
|
|
3845
|
-
}, [vue.createVNode("path", {
|
|
4036
|
+
}, [Array.isArray(props.icon) ? props.icon.map(path => Array.isArray(path) ? vue.createVNode("path", {
|
|
4037
|
+
"d": path[0],
|
|
4038
|
+
"fill-opacity": path[1]
|
|
4039
|
+
}, null) : vue.createVNode("path", {
|
|
4040
|
+
"d": path
|
|
4041
|
+
}, null)) : vue.createVNode("path", {
|
|
3846
4042
|
"d": props.icon
|
|
3847
4043
|
}, null)])]
|
|
3848
4044
|
});
|
|
@@ -3907,7 +4103,12 @@
|
|
|
3907
4103
|
}
|
|
3908
4104
|
}
|
|
3909
4105
|
if (!icon) throw new Error(`Could not find aliased icon "${iconAlias}"`);
|
|
3910
|
-
if (
|
|
4106
|
+
if (Array.isArray(icon)) {
|
|
4107
|
+
return {
|
|
4108
|
+
component: VSvgIcon,
|
|
4109
|
+
icon
|
|
4110
|
+
};
|
|
4111
|
+
} else if (typeof icon !== 'string') {
|
|
3911
4112
|
return {
|
|
3912
4113
|
component: VComponentIcon,
|
|
3913
4114
|
icon
|
|
@@ -3964,6 +4165,7 @@
|
|
|
3964
4165
|
start: Boolean,
|
|
3965
4166
|
end: Boolean,
|
|
3966
4167
|
icon: IconValue,
|
|
4168
|
+
...makeComponentProps(),
|
|
3967
4169
|
...makeSizeProps(),
|
|
3968
4170
|
...makeTagProps({
|
|
3969
4171
|
tag: 'i'
|
|
@@ -4006,12 +4208,12 @@
|
|
|
4006
4208
|
'v-icon--clickable': !!attrs.onClick,
|
|
4007
4209
|
'v-icon--start': props.start,
|
|
4008
4210
|
'v-icon--end': props.end
|
|
4009
|
-
}],
|
|
4211
|
+
}, props.class],
|
|
4010
4212
|
"style": [!sizeClasses.value ? {
|
|
4011
4213
|
fontSize: convertToUnit(props.size),
|
|
4012
4214
|
height: convertToUnit(props.size),
|
|
4013
4215
|
width: convertToUnit(props.size)
|
|
4014
|
-
} : undefined, textColorStyles.value],
|
|
4216
|
+
} : undefined, textColorStyles.value, props.style],
|
|
4015
4217
|
"role": attrs.onClick ? 'button' : undefined,
|
|
4016
4218
|
"aria-hidden": !attrs.onClick
|
|
4017
4219
|
}, {
|
|
@@ -4022,14 +4224,14 @@
|
|
|
4022
4224
|
});
|
|
4023
4225
|
|
|
4024
4226
|
// Utilities
|
|
4025
|
-
function useIntersectionObserver(callback) {
|
|
4227
|
+
function useIntersectionObserver(callback, options) {
|
|
4026
4228
|
const intersectionRef = vue.ref();
|
|
4027
4229
|
const isIntersecting = vue.ref(false);
|
|
4028
4230
|
if (SUPPORTS_INTERSECTION) {
|
|
4029
4231
|
const observer = new IntersectionObserver(entries => {
|
|
4030
4232
|
callback?.(entries, observer);
|
|
4031
4233
|
isIntersecting.value = !!entries.find(entry => entry.isIntersecting);
|
|
4032
|
-
});
|
|
4234
|
+
}, options);
|
|
4033
4235
|
vue.onBeforeUnmount(() => {
|
|
4034
4236
|
observer.disconnect();
|
|
4035
4237
|
});
|
|
@@ -4069,6 +4271,7 @@
|
|
|
4069
4271
|
type: [Number, String],
|
|
4070
4272
|
default: 4
|
|
4071
4273
|
},
|
|
4274
|
+
...makeComponentProps(),
|
|
4072
4275
|
...makeSizeProps(),
|
|
4073
4276
|
...makeTagProps({
|
|
4074
4277
|
tag: 'div'
|
|
@@ -4124,8 +4327,8 @@
|
|
|
4124
4327
|
'v-progress-circular--indeterminate': !!props.indeterminate,
|
|
4125
4328
|
'v-progress-circular--visible': isIntersecting.value,
|
|
4126
4329
|
'v-progress-circular--disable-shrink': props.indeterminate === 'disable-shrink'
|
|
4127
|
-
}, themeClasses.value, sizeClasses.value, textColorClasses.value],
|
|
4128
|
-
"style": [sizeStyles.value, textColorStyles.value],
|
|
4330
|
+
}, themeClasses.value, sizeClasses.value, textColorClasses.value, props.class],
|
|
4331
|
+
"style": [sizeStyles.value, textColorStyles.value, props.style],
|
|
4129
4332
|
"role": "progressbar",
|
|
4130
4333
|
"aria-valuemin": "0",
|
|
4131
4334
|
"aria-valuemax": "100",
|
|
@@ -4544,6 +4747,7 @@
|
|
|
4544
4747
|
stream: Boolean,
|
|
4545
4748
|
striped: Boolean,
|
|
4546
4749
|
roundedBar: Boolean,
|
|
4750
|
+
...makeComponentProps(),
|
|
4547
4751
|
...makeLocationProps({
|
|
4548
4752
|
location: 'top'
|
|
4549
4753
|
}),
|
|
@@ -4615,14 +4819,14 @@
|
|
|
4615
4819
|
'v-progress-linear--rounded': props.rounded,
|
|
4616
4820
|
'v-progress-linear--rounded-bar': props.roundedBar,
|
|
4617
4821
|
'v-progress-linear--striped': props.striped
|
|
4618
|
-
}, roundedClasses.value, themeClasses.value],
|
|
4619
|
-
"style": {
|
|
4822
|
+
}, roundedClasses.value, themeClasses.value, props.class],
|
|
4823
|
+
"style": [{
|
|
4620
4824
|
bottom: props.location === 'bottom' ? 0 : undefined,
|
|
4621
4825
|
top: props.location === 'top' ? 0 : undefined,
|
|
4622
4826
|
height: props.active ? convertToUnit(height.value) : 0,
|
|
4623
4827
|
'--v-progress-linear-height': convertToUnit(height.value),
|
|
4624
4828
|
...locationStyles.value
|
|
4625
|
-
},
|
|
4829
|
+
}, props.style],
|
|
4626
4830
|
"role": "progressbar",
|
|
4627
4831
|
"aria-hidden": props.active ? 'false' : 'true',
|
|
4628
4832
|
"aria-valuemin": "0",
|
|
@@ -4831,8 +5035,9 @@
|
|
|
4831
5035
|
type: Boolean,
|
|
4832
5036
|
default: true
|
|
4833
5037
|
},
|
|
5038
|
+
text: String,
|
|
4834
5039
|
...makeBorderProps(),
|
|
4835
|
-
...
|
|
5040
|
+
...makeComponentProps(),
|
|
4836
5041
|
...makeDensityProps(),
|
|
4837
5042
|
...makeDimensionProps(),
|
|
4838
5043
|
...makeElevationProps(),
|
|
@@ -4840,6 +5045,7 @@
|
|
|
4840
5045
|
...makeLoaderProps(),
|
|
4841
5046
|
...makeLocationProps(),
|
|
4842
5047
|
...makePositionProps(),
|
|
5048
|
+
...makeRoundedProps(),
|
|
4843
5049
|
...makeRouterProps(),
|
|
4844
5050
|
...makeSizeProps(),
|
|
4845
5051
|
...makeTagProps({
|
|
@@ -4937,8 +5143,8 @@
|
|
|
4937
5143
|
'v-btn--icon': !!props.icon,
|
|
4938
5144
|
'v-btn--loading': props.loading,
|
|
4939
5145
|
'v-btn--stacked': props.stacked
|
|
4940
|
-
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value],
|
|
4941
|
-
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value],
|
|
5146
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
|
5147
|
+
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],
|
|
4942
5148
|
"disabled": isDisabled.value || undefined,
|
|
4943
5149
|
"href": link.href.value,
|
|
4944
5150
|
"onClick": e => {
|
|
@@ -4976,7 +5182,9 @@
|
|
|
4976
5182
|
icon: props.icon
|
|
4977
5183
|
}
|
|
4978
5184
|
}
|
|
4979
|
-
},
|
|
5185
|
+
}, {
|
|
5186
|
+
default: () => [slots.default?.() ?? props.text]
|
|
5187
|
+
})]), !props.icon && hasAppend && vue.createVNode("span", {
|
|
4980
5188
|
"key": "append",
|
|
4981
5189
|
"class": "v-btn__append"
|
|
4982
5190
|
}, [!slots.append ? vue.createVNode(VIcon, {
|
|
@@ -5013,15 +5221,17 @@
|
|
|
5013
5221
|
icon: {
|
|
5014
5222
|
type: IconValue,
|
|
5015
5223
|
default: '$menu'
|
|
5016
|
-
}
|
|
5224
|
+
},
|
|
5225
|
+
...makeComponentProps()
|
|
5017
5226
|
},
|
|
5018
5227
|
setup(props, _ref) {
|
|
5019
5228
|
let {
|
|
5020
5229
|
slots
|
|
5021
5230
|
} = _ref;
|
|
5022
5231
|
useRender(() => vue.createVNode(VBtn, {
|
|
5023
|
-
"class":
|
|
5024
|
-
"icon": props.icon
|
|
5232
|
+
"class": ['v-app-bar-nav-icon', props.class],
|
|
5233
|
+
"icon": props.icon,
|
|
5234
|
+
"style": props.style
|
|
5025
5235
|
}, slots));
|
|
5026
5236
|
return {};
|
|
5027
5237
|
}
|
|
@@ -5029,9 +5239,12 @@
|
|
|
5029
5239
|
|
|
5030
5240
|
const VToolbarItems = genericComponent()({
|
|
5031
5241
|
name: 'VToolbarItems',
|
|
5032
|
-
props:
|
|
5033
|
-
|
|
5034
|
-
|
|
5242
|
+
props: {
|
|
5243
|
+
...makeComponentProps(),
|
|
5244
|
+
...makeVariantProps({
|
|
5245
|
+
variant: 'text'
|
|
5246
|
+
})
|
|
5247
|
+
},
|
|
5035
5248
|
setup(props, _ref) {
|
|
5036
5249
|
let {
|
|
5037
5250
|
slots
|
|
@@ -5044,7 +5257,8 @@
|
|
|
5044
5257
|
}
|
|
5045
5258
|
});
|
|
5046
5259
|
useRender(() => vue.createVNode("div", {
|
|
5047
|
-
"class":
|
|
5260
|
+
"class": ['v-toolbar-items', props.class],
|
|
5261
|
+
"style": props.style
|
|
5048
5262
|
}, [slots.default?.()]));
|
|
5049
5263
|
return {};
|
|
5050
5264
|
}
|
|
@@ -5106,6 +5320,7 @@
|
|
|
5106
5320
|
type: String,
|
|
5107
5321
|
validator: val => allowedTypes.includes(val)
|
|
5108
5322
|
},
|
|
5323
|
+
...makeComponentProps(),
|
|
5109
5324
|
...makeDensityProps(),
|
|
5110
5325
|
...makeDimensionProps(),
|
|
5111
5326
|
...makeElevationProps(),
|
|
@@ -5188,8 +5403,8 @@
|
|
|
5188
5403
|
[`v-alert--border-${props.border === true ? 'start' : props.border}`]: true
|
|
5189
5404
|
}, {
|
|
5190
5405
|
'v-alert--prominent': props.prominent
|
|
5191
|
-
}, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value],
|
|
5192
|
-
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value],
|
|
5406
|
+
}, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
|
5407
|
+
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
|
|
5193
5408
|
"role": "alert"
|
|
5194
5409
|
}, {
|
|
5195
5410
|
default: () => [genOverlays(false, 'v-alert'), props.border && vue.createVNode("div", {
|
|
@@ -5283,6 +5498,7 @@
|
|
|
5283
5498
|
props: {
|
|
5284
5499
|
text: String,
|
|
5285
5500
|
clickable: Boolean,
|
|
5501
|
+
...makeComponentProps(),
|
|
5286
5502
|
...makeThemeProps()
|
|
5287
5503
|
},
|
|
5288
5504
|
setup(props, _ref) {
|
|
@@ -5292,7 +5508,8 @@
|
|
|
5292
5508
|
useRender(() => vue.createVNode("label", {
|
|
5293
5509
|
"class": ['v-label', {
|
|
5294
5510
|
'v-label--clickable': props.clickable
|
|
5295
|
-
}]
|
|
5511
|
+
}, props.class],
|
|
5512
|
+
"style": props.style
|
|
5296
5513
|
}, [props.text, slots.default?.()]));
|
|
5297
5514
|
return {};
|
|
5298
5515
|
}
|
|
@@ -5301,7 +5518,8 @@
|
|
|
5301
5518
|
const VFieldLabel = genericComponent()({
|
|
5302
5519
|
name: 'VFieldLabel',
|
|
5303
5520
|
props: {
|
|
5304
|
-
floating: Boolean
|
|
5521
|
+
floating: Boolean,
|
|
5522
|
+
...makeComponentProps()
|
|
5305
5523
|
},
|
|
5306
5524
|
setup(props, _ref) {
|
|
5307
5525
|
let {
|
|
@@ -5310,7 +5528,8 @@
|
|
|
5310
5528
|
useRender(() => vue.createVNode(VLabel, {
|
|
5311
5529
|
"class": ['v-field-label', {
|
|
5312
5530
|
'v-field-label--floating': props.floating
|
|
5313
|
-
}],
|
|
5531
|
+
}, props.class],
|
|
5532
|
+
"style": props.style,
|
|
5314
5533
|
"aria-hidden": props.floating || undefined
|
|
5315
5534
|
}, slots));
|
|
5316
5535
|
return {};
|
|
@@ -5350,7 +5569,7 @@
|
|
|
5350
5569
|
|
|
5351
5570
|
// Types
|
|
5352
5571
|
|
|
5353
|
-
const allowedVariants$1 = ['underlined', 'outlined', 'filled', 'solo', 'plain'];
|
|
5572
|
+
const allowedVariants$1 = ['underlined', 'outlined', 'filled', 'solo', 'solo-inverted', 'solo-filled', 'plain'];
|
|
5354
5573
|
const makeVFieldProps = propsFactory({
|
|
5355
5574
|
appendInnerIcon: IconValue,
|
|
5356
5575
|
bgColor: String,
|
|
@@ -5361,9 +5580,11 @@
|
|
|
5361
5580
|
},
|
|
5362
5581
|
active: Boolean,
|
|
5363
5582
|
color: String,
|
|
5583
|
+
baseColor: String,
|
|
5364
5584
|
dirty: Boolean,
|
|
5365
5585
|
disabled: Boolean,
|
|
5366
5586
|
error: Boolean,
|
|
5587
|
+
flat: Boolean,
|
|
5367
5588
|
label: String,
|
|
5368
5589
|
persistentClear: Boolean,
|
|
5369
5590
|
prependInnerIcon: IconValue,
|
|
@@ -5377,8 +5598,10 @@
|
|
|
5377
5598
|
'onClick:clear': EventProp(),
|
|
5378
5599
|
'onClick:appendInner': EventProp(),
|
|
5379
5600
|
'onClick:prependInner': EventProp(),
|
|
5380
|
-
...
|
|
5381
|
-
...makeLoaderProps()
|
|
5601
|
+
...makeComponentProps(),
|
|
5602
|
+
...makeLoaderProps(),
|
|
5603
|
+
...makeRoundedProps(),
|
|
5604
|
+
...makeThemeProps()
|
|
5382
5605
|
}, 'v-field');
|
|
5383
5606
|
const VField = genericComponent()({
|
|
5384
5607
|
name: 'VField',
|
|
@@ -5413,6 +5636,9 @@
|
|
|
5413
5636
|
const {
|
|
5414
5637
|
InputIcon
|
|
5415
5638
|
} = useInputIcon(props);
|
|
5639
|
+
const {
|
|
5640
|
+
roundedClasses
|
|
5641
|
+
} = useRounded(props);
|
|
5416
5642
|
const isActive = vue.computed(() => props.dirty || props.active);
|
|
5417
5643
|
const hasLabel = vue.computed(() => !props.singleLine && !!(props.label || slots.label));
|
|
5418
5644
|
const uid = getUid();
|
|
@@ -5429,7 +5655,7 @@
|
|
|
5429
5655
|
textColorClasses,
|
|
5430
5656
|
textColorStyles
|
|
5431
5657
|
} = useTextColor(vue.computed(() => {
|
|
5432
|
-
return
|
|
5658
|
+
return props.error || props.disabled ? undefined : isActive.value && isFocused.value ? props.color : props.baseColor;
|
|
5433
5659
|
}));
|
|
5434
5660
|
vue.watch(isActive, val => {
|
|
5435
5661
|
if (hasLabel.value) {
|
|
@@ -5498,6 +5724,7 @@
|
|
|
5498
5724
|
'v-field--disabled': props.disabled,
|
|
5499
5725
|
'v-field--dirty': props.dirty,
|
|
5500
5726
|
'v-field--error': props.error,
|
|
5727
|
+
'v-field--flat': props.flat,
|
|
5501
5728
|
'v-field--has-background': !!props.bgColor,
|
|
5502
5729
|
'v-field--persistent-clear': props.persistentClear,
|
|
5503
5730
|
'v-field--prepended': hasPrepend,
|
|
@@ -5505,8 +5732,8 @@
|
|
|
5505
5732
|
'v-field--single-line': props.singleLine,
|
|
5506
5733
|
'v-field--no-label': !label,
|
|
5507
5734
|
[`v-field--variant-${props.variant}`]: true
|
|
5508
|
-
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value],
|
|
5509
|
-
"style": [backgroundColorStyles.value, textColorStyles.value],
|
|
5735
|
+
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, props.class],
|
|
5736
|
+
"style": [backgroundColorStyles.value, textColorStyles.value, props.style],
|
|
5510
5737
|
"onClick": onClick
|
|
5511
5738
|
}, attrs), [vue.createVNode("div", {
|
|
5512
5739
|
"class": "v-field__overlay"
|
|
@@ -5525,7 +5752,7 @@
|
|
|
5525
5752
|
}, null), slots['prepend-inner']?.(slotProps.value)]), vue.createVNode("div", {
|
|
5526
5753
|
"class": "v-field__field",
|
|
5527
5754
|
"data-no-activator": ""
|
|
5528
|
-
}, [['solo', 'filled'].includes(props.variant) && hasLabel.value && vue.createVNode(VFieldLabel, {
|
|
5755
|
+
}, [['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasLabel.value && vue.createVNode(VFieldLabel, {
|
|
5529
5756
|
"key": "floating-label",
|
|
5530
5757
|
"ref": floatingLabelRef,
|
|
5531
5758
|
"class": [textColorClasses.value],
|
|
@@ -5594,7 +5821,7 @@
|
|
|
5594
5821
|
});
|
|
5595
5822
|
// TODO: this is kinda slow, might be better to implicitly inherit props instead
|
|
5596
5823
|
function filterFieldProps(attrs) {
|
|
5597
|
-
const keys = Object.keys(VField.props).filter(k => !isOn(k));
|
|
5824
|
+
const keys = Object.keys(VField.props).filter(k => !isOn(k) && k !== 'class' && k !== 'style');
|
|
5598
5825
|
return pick(attrs, keys);
|
|
5599
5826
|
}
|
|
5600
5827
|
|
|
@@ -5609,6 +5836,7 @@
|
|
|
5609
5836
|
type: [Array, String],
|
|
5610
5837
|
default: () => []
|
|
5611
5838
|
},
|
|
5839
|
+
...makeComponentProps(),
|
|
5612
5840
|
...makeTransitionProps({
|
|
5613
5841
|
transition: {
|
|
5614
5842
|
component: VSlideYTransition,
|
|
@@ -5629,8 +5857,8 @@
|
|
|
5629
5857
|
useRender(() => vue.createVNode(MaybeTransition, {
|
|
5630
5858
|
"transition": props.transition,
|
|
5631
5859
|
"tag": "div",
|
|
5632
|
-
"class": ['v-messages', textColorClasses.value],
|
|
5633
|
-
"style": textColorStyles.value,
|
|
5860
|
+
"class": ['v-messages', textColorClasses.value, props.class],
|
|
5861
|
+
"style": [textColorStyles.value, props.style],
|
|
5634
5862
|
"role": "alert",
|
|
5635
5863
|
"aria-live": "polite"
|
|
5636
5864
|
}, {
|
|
@@ -5926,6 +6154,7 @@
|
|
|
5926
6154
|
},
|
|
5927
6155
|
'onClick:prepend': EventProp(),
|
|
5928
6156
|
'onClick:append': EventProp(),
|
|
6157
|
+
...makeComponentProps(),
|
|
5929
6158
|
...makeDensityProps(),
|
|
5930
6159
|
...makeValidationProps()
|
|
5931
6160
|
}, 'v-input');
|
|
@@ -5993,7 +6222,8 @@
|
|
|
5993
6222
|
const hasMessages = messages.value.length > 0;
|
|
5994
6223
|
const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);
|
|
5995
6224
|
return vue.createVNode("div", {
|
|
5996
|
-
"class": ['v-input', `v-input--${props.direction}`, densityClasses.value, validationClasses.value]
|
|
6225
|
+
"class": ['v-input', `v-input--${props.direction}`, densityClasses.value, validationClasses.value, props.class],
|
|
6226
|
+
"style": props.style
|
|
5997
6227
|
}, [hasPrepend && vue.createVNode("div", {
|
|
5998
6228
|
"key": "prepend",
|
|
5999
6229
|
"class": "v-input__prepend"
|
|
@@ -6036,6 +6266,7 @@
|
|
|
6036
6266
|
type: [Number, String],
|
|
6037
6267
|
default: 0
|
|
6038
6268
|
},
|
|
6269
|
+
...makeComponentProps(),
|
|
6039
6270
|
...makeTransitionProps({
|
|
6040
6271
|
transition: {
|
|
6041
6272
|
component: VSlideYTransition
|
|
@@ -6053,7 +6284,8 @@
|
|
|
6053
6284
|
"transition": props.transition
|
|
6054
6285
|
}, {
|
|
6055
6286
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
|
6056
|
-
"class":
|
|
6287
|
+
"class": ['v-counter', props.class],
|
|
6288
|
+
"style": props.style
|
|
6057
6289
|
}, [slots.default ? slots.default({
|
|
6058
6290
|
counter: counter.value,
|
|
6059
6291
|
max: props.max,
|
|
@@ -6256,7 +6488,8 @@
|
|
|
6256
6488
|
'v-text-field--prefixed': props.prefix,
|
|
6257
6489
|
'v-text-field--suffixed': props.suffix,
|
|
6258
6490
|
'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant)
|
|
6259
|
-
}]
|
|
6491
|
+
}, props.class],
|
|
6492
|
+
"style": props.style
|
|
6260
6493
|
}, rootAttrs, inputProps, {
|
|
6261
6494
|
"focused": isFocused.value
|
|
6262
6495
|
}), {
|
|
@@ -6372,6 +6605,7 @@
|
|
|
6372
6605
|
type: String,
|
|
6373
6606
|
default: 'VSelectionControl'
|
|
6374
6607
|
},
|
|
6608
|
+
...makeComponentProps(),
|
|
6375
6609
|
...makeSelectionControlGroupProps()
|
|
6376
6610
|
},
|
|
6377
6611
|
emits: {
|
|
@@ -6419,7 +6653,8 @@
|
|
|
6419
6653
|
useRender(() => vue.createVNode("div", {
|
|
6420
6654
|
"class": ['v-selection-control-group', {
|
|
6421
6655
|
'v-selection-control-group--inline': props.inline
|
|
6422
|
-
}],
|
|
6656
|
+
}, props.class],
|
|
6657
|
+
"style": props.style,
|
|
6423
6658
|
"role": props.type === 'radio' ? 'radiogroup' : undefined
|
|
6424
6659
|
}, [slots.default?.()]));
|
|
6425
6660
|
return {};
|
|
@@ -6433,6 +6668,7 @@
|
|
|
6433
6668
|
trueValue: null,
|
|
6434
6669
|
falseValue: null,
|
|
6435
6670
|
value: null,
|
|
6671
|
+
...makeComponentProps(),
|
|
6436
6672
|
...makeSelectionControlGroupProps()
|
|
6437
6673
|
}, 'v-selection-control');
|
|
6438
6674
|
function useSelectionControl(props) {
|
|
@@ -6547,8 +6783,10 @@
|
|
|
6547
6783
|
'v-selection-control--focused': isFocused.value,
|
|
6548
6784
|
'v-selection-control--focus-visible': isFocusVisible.value,
|
|
6549
6785
|
'v-selection-control--inline': props.inline
|
|
6550
|
-
}, densityClasses.value]
|
|
6551
|
-
}, rootAttrs
|
|
6786
|
+
}, densityClasses.value, props.class]
|
|
6787
|
+
}, rootAttrs, {
|
|
6788
|
+
"style": props.style
|
|
6789
|
+
}), [vue.createVNode("div", {
|
|
6552
6790
|
"class": ['v-selection-control__wrapper', textColorClasses.value],
|
|
6553
6791
|
"style": textColorStyles.value
|
|
6554
6792
|
}, [slots.default?.(), vue.withDirectives(vue.createVNode("div", {
|
|
@@ -6630,7 +6868,8 @@
|
|
|
6630
6868
|
useRender(() => vue.createVNode(VSelectionControl, vue.mergeProps(props, {
|
|
6631
6869
|
"modelValue": model.value,
|
|
6632
6870
|
"onUpdate:modelValue": [$event => model.value = $event, onChange],
|
|
6633
|
-
"class":
|
|
6871
|
+
"class": ['v-checkbox-btn', props.class],
|
|
6872
|
+
"style": props.style,
|
|
6634
6873
|
"type": "checkbox",
|
|
6635
6874
|
"inline": true,
|
|
6636
6875
|
"falseIcon": falseIcon.value,
|
|
@@ -6670,10 +6909,11 @@
|
|
|
6670
6909
|
const [inputProps, _1] = VInput.filterProps(props);
|
|
6671
6910
|
const [checkboxProps, _2] = VCheckboxBtn.filterProps(props);
|
|
6672
6911
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
6673
|
-
"class":
|
|
6912
|
+
"class": ['v-checkbox', props.class]
|
|
6674
6913
|
}, inputAttrs, inputProps, {
|
|
6675
6914
|
"id": id.value,
|
|
6676
|
-
"focused": isFocused.value
|
|
6915
|
+
"focused": isFocused.value,
|
|
6916
|
+
"style": props.style
|
|
6677
6917
|
}), {
|
|
6678
6918
|
...slots,
|
|
6679
6919
|
default: _ref2 => {
|
|
@@ -6704,6 +6944,7 @@
|
|
|
6704
6944
|
end: Boolean,
|
|
6705
6945
|
icon: IconValue,
|
|
6706
6946
|
image: String,
|
|
6947
|
+
...makeComponentProps(),
|
|
6707
6948
|
...makeDensityProps(),
|
|
6708
6949
|
...makeRoundedProps(),
|
|
6709
6950
|
...makeSizeProps(),
|
|
@@ -6742,8 +6983,8 @@
|
|
|
6742
6983
|
"class": ['v-avatar', {
|
|
6743
6984
|
'v-avatar--start': props.start,
|
|
6744
6985
|
'v-avatar--end': props.end
|
|
6745
|
-
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value],
|
|
6746
|
-
"style": [colorStyles.value, sizeStyles.value]
|
|
6986
|
+
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
|
6987
|
+
"style": [colorStyles.value, sizeStyles.value, props.style]
|
|
6747
6988
|
}, {
|
|
6748
6989
|
default: () => [props.image ? vue.createVNode(VImg, {
|
|
6749
6990
|
"key": "image",
|
|
@@ -6771,6 +7012,7 @@
|
|
|
6771
7012
|
type: Function,
|
|
6772
7013
|
default: deepEqual
|
|
6773
7014
|
},
|
|
7015
|
+
...makeComponentProps(),
|
|
6774
7016
|
...makeGroupProps({
|
|
6775
7017
|
selectedClass: 'v-chip--selected'
|
|
6776
7018
|
}),
|
|
@@ -6808,7 +7050,8 @@
|
|
|
6808
7050
|
useRender(() => vue.createVNode(props.tag, {
|
|
6809
7051
|
"class": ['v-chip-group', {
|
|
6810
7052
|
'v-chip-group--column': props.column
|
|
6811
|
-
}, themeClasses.value]
|
|
7053
|
+
}, themeClasses.value, props.class],
|
|
7054
|
+
"style": props.style
|
|
6812
7055
|
}, {
|
|
6813
7056
|
default: () => [slots.default?.({
|
|
6814
7057
|
isSelected,
|
|
@@ -6822,8 +7065,6 @@
|
|
|
6822
7065
|
}
|
|
6823
7066
|
});
|
|
6824
7067
|
|
|
6825
|
-
// Types
|
|
6826
|
-
|
|
6827
7068
|
const VChip = genericComponent()({
|
|
6828
7069
|
name: 'VChip',
|
|
6829
7070
|
directives: {
|
|
@@ -6868,6 +7109,7 @@
|
|
|
6868
7109
|
onClick: EventProp(),
|
|
6869
7110
|
onClickOnce: EventProp(),
|
|
6870
7111
|
...makeBorderProps(),
|
|
7112
|
+
...makeComponentProps(),
|
|
6871
7113
|
...makeDensityProps(),
|
|
6872
7114
|
...makeElevationProps(),
|
|
6873
7115
|
...makeGroupItemProps(),
|
|
@@ -6960,8 +7202,8 @@
|
|
|
6960
7202
|
'v-chip--link': isClickable.value,
|
|
6961
7203
|
'v-chip--filter': hasFilter,
|
|
6962
7204
|
'v-chip--pill': props.pill
|
|
6963
|
-
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value],
|
|
6964
|
-
"style": [hasColor ? colorStyles.value : undefined],
|
|
7205
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value, props.class],
|
|
7206
|
+
"style": [hasColor ? colorStyles.value : undefined, props.style],
|
|
6965
7207
|
"disabled": props.disabled || undefined,
|
|
6966
7208
|
"draggable": props.draggable,
|
|
6967
7209
|
"href": link.href.value,
|
|
@@ -7070,6 +7312,7 @@
|
|
|
7070
7312
|
length: [Number, String],
|
|
7071
7313
|
thickness: [Number, String],
|
|
7072
7314
|
vertical: Boolean,
|
|
7315
|
+
...makeComponentProps(),
|
|
7073
7316
|
...makeThemeProps()
|
|
7074
7317
|
},
|
|
7075
7318
|
setup(props, _ref) {
|
|
@@ -7098,8 +7341,8 @@
|
|
|
7098
7341
|
'v-divider': true,
|
|
7099
7342
|
'v-divider--inset': props.inset,
|
|
7100
7343
|
'v-divider--vertical': props.vertical
|
|
7101
|
-
}, themeClasses.value, textColorClasses.value],
|
|
7102
|
-
"style": [dividerStyles.value, textColorStyles.value],
|
|
7344
|
+
}, themeClasses.value, textColorClasses.value, props.class],
|
|
7345
|
+
"style": [dividerStyles.value, textColorStyles.value, props.style],
|
|
7103
7346
|
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
|
7104
7347
|
"role": `${attrs.role || 'separator'}`
|
|
7105
7348
|
}, null));
|
|
@@ -7598,6 +7841,7 @@
|
|
|
7598
7841
|
fluid: Boolean,
|
|
7599
7842
|
subgroup: Boolean,
|
|
7600
7843
|
value: null,
|
|
7844
|
+
...makeComponentProps(),
|
|
7601
7845
|
...makeTagProps()
|
|
7602
7846
|
}, 'v-list-group');
|
|
7603
7847
|
const VListGroup = genericComponent()({
|
|
@@ -7646,7 +7890,8 @@
|
|
|
7646
7890
|
'v-list-group--fluid': props.fluid,
|
|
7647
7891
|
'v-list-group--subgroup': props.subgroup,
|
|
7648
7892
|
'v-list-group--open': isOpen.value
|
|
7649
|
-
}]
|
|
7893
|
+
}, props.class],
|
|
7894
|
+
"style": props.style
|
|
7650
7895
|
}, {
|
|
7651
7896
|
default: () => [slots.activator && vue.createVNode(VDefaultsProvider, {
|
|
7652
7897
|
"defaults": activatorDefaults.value
|
|
@@ -7713,6 +7958,7 @@
|
|
|
7713
7958
|
onClick: EventProp(),
|
|
7714
7959
|
onClickOnce: EventProp(),
|
|
7715
7960
|
...makeBorderProps(),
|
|
7961
|
+
...makeComponentProps(),
|
|
7716
7962
|
...makeDensityProps(),
|
|
7717
7963
|
...makeDimensionProps(),
|
|
7718
7964
|
...makeElevationProps(),
|
|
@@ -7823,8 +8069,8 @@
|
|
|
7823
8069
|
'v-list-item--nav': props.nav,
|
|
7824
8070
|
'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,
|
|
7825
8071
|
[`${props.activeClass}`]: props.activeClass && isActive.value
|
|
7826
|
-
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value],
|
|
7827
|
-
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value],
|
|
8072
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
|
8073
|
+
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, props.style],
|
|
7828
8074
|
"href": link.href.value,
|
|
7829
8075
|
"tabindex": isClickable.value ? 0 : undefined,
|
|
7830
8076
|
"onClick": onClick,
|
|
@@ -7917,6 +8163,7 @@
|
|
|
7917
8163
|
inset: Boolean,
|
|
7918
8164
|
sticky: Boolean,
|
|
7919
8165
|
title: String,
|
|
8166
|
+
...makeComponentProps(),
|
|
7920
8167
|
...makeTagProps()
|
|
7921
8168
|
},
|
|
7922
8169
|
setup(props, _ref) {
|
|
@@ -7933,10 +8180,10 @@
|
|
|
7933
8180
|
"class": ['v-list-subheader', {
|
|
7934
8181
|
'v-list-subheader--inset': props.inset,
|
|
7935
8182
|
'v-list-subheader--sticky': props.sticky
|
|
7936
|
-
}, textColorClasses.value],
|
|
7937
|
-
"style": {
|
|
8183
|
+
}, textColorClasses.value, props.class],
|
|
8184
|
+
"style": [{
|
|
7938
8185
|
textColorStyles
|
|
7939
|
-
}
|
|
8186
|
+
}, props.style]
|
|
7940
8187
|
}, {
|
|
7941
8188
|
default: () => [hasText && vue.createVNode("div", {
|
|
7942
8189
|
"class": "v-list-subheader__text"
|
|
@@ -8156,6 +8403,7 @@
|
|
|
8156
8403
|
openStrategy: 'list'
|
|
8157
8404
|
}),
|
|
8158
8405
|
...makeBorderProps(),
|
|
8406
|
+
...makeComponentProps(),
|
|
8159
8407
|
...makeDensityProps(),
|
|
8160
8408
|
...makeDimensionProps(),
|
|
8161
8409
|
...makeElevationProps(),
|
|
@@ -8267,8 +8515,8 @@
|
|
|
8267
8515
|
"class": ['v-list', {
|
|
8268
8516
|
'v-list--disabled': props.disabled,
|
|
8269
8517
|
'v-list--nav': props.nav
|
|
8270
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value],
|
|
8271
|
-
"style": [backgroundColorStyles.value, dimensionStyles.value],
|
|
8518
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class],
|
|
8519
|
+
"style": [backgroundColorStyles.value, dimensionStyles.value, props.style],
|
|
8272
8520
|
"role": "listbox",
|
|
8273
8521
|
"aria-activedescendant": undefined,
|
|
8274
8522
|
"onFocusin": onFocusin,
|
|
@@ -8296,6 +8544,7 @@
|
|
|
8296
8544
|
props: {
|
|
8297
8545
|
start: Boolean,
|
|
8298
8546
|
end: Boolean,
|
|
8547
|
+
...makeComponentProps(),
|
|
8299
8548
|
...makeTagProps()
|
|
8300
8549
|
},
|
|
8301
8550
|
setup(props, _ref) {
|
|
@@ -8306,7 +8555,8 @@
|
|
|
8306
8555
|
"class": ['v-list-item-action', {
|
|
8307
8556
|
'v-list-item-action--start': props.start,
|
|
8308
8557
|
'v-list-item-action--end': props.end
|
|
8309
|
-
}]
|
|
8558
|
+
}, props.class],
|
|
8559
|
+
"style": props.style
|
|
8310
8560
|
}, slots));
|
|
8311
8561
|
return {};
|
|
8312
8562
|
}
|
|
@@ -8317,6 +8567,7 @@
|
|
|
8317
8567
|
props: {
|
|
8318
8568
|
start: Boolean,
|
|
8319
8569
|
end: Boolean,
|
|
8570
|
+
...makeComponentProps(),
|
|
8320
8571
|
...makeTagProps()
|
|
8321
8572
|
},
|
|
8322
8573
|
setup(props, _ref) {
|
|
@@ -8328,7 +8579,8 @@
|
|
|
8328
8579
|
"class": ['v-list-item-media', {
|
|
8329
8580
|
'v-list-item-media--start': props.start,
|
|
8330
8581
|
'v-list-item-media--end': props.end
|
|
8331
|
-
}]
|
|
8582
|
+
}, props.class],
|
|
8583
|
+
"style": props.style
|
|
8332
8584
|
}, slots);
|
|
8333
8585
|
});
|
|
8334
8586
|
return {};
|
|
@@ -9569,6 +9821,7 @@
|
|
|
9569
9821
|
default: 2000
|
|
9570
9822
|
},
|
|
9571
9823
|
...makeActivatorProps(),
|
|
9824
|
+
...makeComponentProps(),
|
|
9572
9825
|
...makeDimensionProps(),
|
|
9573
9826
|
...makeLazyProps(),
|
|
9574
9827
|
...makeLocationStrategyProps(),
|
|
@@ -9736,10 +9989,10 @@
|
|
|
9736
9989
|
'v-overlay--absolute': props.absolute || props.contained,
|
|
9737
9990
|
'v-overlay--active': isActive.value,
|
|
9738
9991
|
'v-overlay--contained': props.contained
|
|
9739
|
-
}, themeClasses.value, rtlClasses.value],
|
|
9992
|
+
}, themeClasses.value, rtlClasses.value, props.class],
|
|
9740
9993
|
"style": [stackStyles.value, {
|
|
9741
9994
|
top: convertToUnit(top.value)
|
|
9742
|
-
}],
|
|
9995
|
+
}, props.style],
|
|
9743
9996
|
"ref": root
|
|
9744
9997
|
}, scopeId, attrs), [vue.createVNode(Scrim, vue.mergeProps({
|
|
9745
9998
|
"color": scrimColor,
|
|
@@ -9845,7 +10098,8 @@
|
|
|
9845
10098
|
const [overlayProps] = VOverlay.filterProps(props);
|
|
9846
10099
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
|
9847
10100
|
"ref": overlay,
|
|
9848
|
-
"class": ['v-menu']
|
|
10101
|
+
"class": ['v-menu', props.class],
|
|
10102
|
+
"style": props.style
|
|
9849
10103
|
}, overlayProps, {
|
|
9850
10104
|
"modelValue": isActive.value,
|
|
9851
10105
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
@@ -10064,7 +10318,8 @@
|
|
|
10064
10318
|
'v-select--chips': !!props.chips,
|
|
10065
10319
|
[`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,
|
|
10066
10320
|
'v-select--selected': model.value.length
|
|
10067
|
-
}],
|
|
10321
|
+
}, props.class],
|
|
10322
|
+
"style": props.style,
|
|
10068
10323
|
"appendInnerIcon": props.menuIcon,
|
|
10069
10324
|
"readonly": true,
|
|
10070
10325
|
"placeholder": placeholder,
|
|
@@ -10507,7 +10762,8 @@
|
|
|
10507
10762
|
'v-autocomplete--selecting-index': selectionIndex.value > -1,
|
|
10508
10763
|
[`v-autocomplete--${props.multiple ? 'multiple' : 'single'}`]: true,
|
|
10509
10764
|
'v-autocomplete--selection-slot': !!slots.selection
|
|
10510
|
-
}],
|
|
10765
|
+
}, props.class],
|
|
10766
|
+
"style": props.style,
|
|
10511
10767
|
"appendInnerIcon": props.menuIcon,
|
|
10512
10768
|
"readonly": props.readonly,
|
|
10513
10769
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
@@ -10621,8 +10877,6 @@
|
|
|
10621
10877
|
}
|
|
10622
10878
|
});
|
|
10623
10879
|
|
|
10624
|
-
// Types
|
|
10625
|
-
|
|
10626
10880
|
const VBadge = genericComponent()({
|
|
10627
10881
|
name: 'VBadge',
|
|
10628
10882
|
inheritAttrs: false,
|
|
@@ -10646,6 +10900,7 @@
|
|
|
10646
10900
|
offsetX: [Number, String],
|
|
10647
10901
|
offsetY: [Number, String],
|
|
10648
10902
|
textColor: String,
|
|
10903
|
+
...makeComponentProps(),
|
|
10649
10904
|
...makeLocationProps({
|
|
10650
10905
|
location: 'top end'
|
|
10651
10906
|
}),
|
|
@@ -10690,8 +10945,10 @@
|
|
|
10690
10945
|
'v-badge--dot': props.dot,
|
|
10691
10946
|
'v-badge--floating': props.floating,
|
|
10692
10947
|
'v-badge--inline': props.inline
|
|
10693
|
-
}]
|
|
10694
|
-
}, attrs
|
|
10948
|
+
}, props.class]
|
|
10949
|
+
}, attrs, {
|
|
10950
|
+
"style": props.style
|
|
10951
|
+
}), {
|
|
10695
10952
|
default: () => [vue.createVNode("div", {
|
|
10696
10953
|
"class": "v-badge__wrapper"
|
|
10697
10954
|
}, [ctx.slots.default?.(), vue.createVNode(MaybeTransition, {
|
|
@@ -10718,7 +10975,8 @@
|
|
|
10718
10975
|
name: 'VBannerActions',
|
|
10719
10976
|
props: {
|
|
10720
10977
|
color: String,
|
|
10721
|
-
density: String
|
|
10978
|
+
density: String,
|
|
10979
|
+
...makeComponentProps()
|
|
10722
10980
|
},
|
|
10723
10981
|
setup(props, _ref) {
|
|
10724
10982
|
let {
|
|
@@ -10732,7 +10990,8 @@
|
|
|
10732
10990
|
}
|
|
10733
10991
|
});
|
|
10734
10992
|
useRender(() => vue.createVNode("div", {
|
|
10735
|
-
"class":
|
|
10993
|
+
"class": ['v-banner-actions', props.class],
|
|
10994
|
+
"style": props.style
|
|
10736
10995
|
}, [slots.default?.()]));
|
|
10737
10996
|
return {};
|
|
10738
10997
|
}
|
|
@@ -10753,6 +11012,7 @@
|
|
|
10753
11012
|
sticky: Boolean,
|
|
10754
11013
|
text: String,
|
|
10755
11014
|
...makeBorderProps(),
|
|
11015
|
+
...makeComponentProps(),
|
|
10756
11016
|
...makeDensityProps(),
|
|
10757
11017
|
...makeDimensionProps(),
|
|
10758
11018
|
...makeElevationProps(),
|
|
@@ -10810,8 +11070,8 @@
|
|
|
10810
11070
|
'v-banner--stacked': props.stacked || mobile.value,
|
|
10811
11071
|
'v-banner--sticky': props.sticky,
|
|
10812
11072
|
[`v-banner--${props.lines}-line`]: !!props.lines
|
|
10813
|
-
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value],
|
|
10814
|
-
"style": [dimensionStyles.value, locationStyles.value],
|
|
11073
|
+
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
11074
|
+
"style": [dimensionStyles.value, locationStyles.value, props.style],
|
|
10815
11075
|
"role": "banner"
|
|
10816
11076
|
}, {
|
|
10817
11077
|
default: () => [hasPrepend && vue.createVNode("div", {
|
|
@@ -10867,6 +11127,7 @@
|
|
|
10867
11127
|
default: true
|
|
10868
11128
|
},
|
|
10869
11129
|
...makeBorderProps(),
|
|
11130
|
+
...makeComponentProps(),
|
|
10870
11131
|
...makeDensityProps(),
|
|
10871
11132
|
...makeElevationProps(),
|
|
10872
11133
|
...makeRoundedProps(),
|
|
@@ -10941,11 +11202,11 @@
|
|
|
10941
11202
|
'v-bottom-navigation--active': isActive.value,
|
|
10942
11203
|
'v-bottom-navigation--grow': props.grow,
|
|
10943
11204
|
'v-bottom-navigation--shift': props.mode === 'shift'
|
|
10944
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value],
|
|
11205
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
10945
11206
|
"style": [backgroundColorStyles.value, layoutItemStyles.value, {
|
|
10946
11207
|
height: convertToUnit(height.value),
|
|
10947
11208
|
transform: `translateY(${convertToUnit(!isActive.value ? 100 : 0, '%')})`
|
|
10948
|
-
}, ssrBootStyles.value]
|
|
11209
|
+
}, ssrBootStyles.value, props.style]
|
|
10949
11210
|
}, {
|
|
10950
11211
|
default: () => [slots.default && vue.createVNode("div", {
|
|
10951
11212
|
"class": "v-bottom-navigation__content"
|
|
@@ -10959,14 +11220,16 @@
|
|
|
10959
11220
|
const VBreadcrumbsDivider = genericComponent()({
|
|
10960
11221
|
name: 'VBreadcrumbsDivider',
|
|
10961
11222
|
props: {
|
|
10962
|
-
divider: [Number, String]
|
|
11223
|
+
divider: [Number, String],
|
|
11224
|
+
...makeComponentProps()
|
|
10963
11225
|
},
|
|
10964
11226
|
setup(props, _ref) {
|
|
10965
11227
|
let {
|
|
10966
11228
|
slots
|
|
10967
11229
|
} = _ref;
|
|
10968
11230
|
useRender(() => vue.createVNode("li", {
|
|
10969
|
-
"class":
|
|
11231
|
+
"class": ['v-breadcrumbs-divider', props.class],
|
|
11232
|
+
"style": props.style
|
|
10970
11233
|
}, [slots?.default?.() ?? props.divider]));
|
|
10971
11234
|
return {};
|
|
10972
11235
|
}
|
|
@@ -10981,6 +11244,7 @@
|
|
|
10981
11244
|
color: String,
|
|
10982
11245
|
disabled: Boolean,
|
|
10983
11246
|
title: String,
|
|
11247
|
+
...makeComponentProps(),
|
|
10984
11248
|
...makeRouterProps(),
|
|
10985
11249
|
...makeTagProps({
|
|
10986
11250
|
tag: 'li'
|
|
@@ -11006,8 +11270,8 @@
|
|
|
11006
11270
|
'v-breadcrumbs-item--disabled': props.disabled,
|
|
11007
11271
|
'v-breadcrumbs-item--link': link.isLink.value,
|
|
11008
11272
|
[`${props.activeClass}`]: isActive.value && props.activeClass
|
|
11009
|
-
}, textColorClasses.value],
|
|
11010
|
-
"style": [textColorStyles.value],
|
|
11273
|
+
}, textColorClasses.value, props.class],
|
|
11274
|
+
"style": [textColorStyles.value, props.style],
|
|
11011
11275
|
"href": link.href.value,
|
|
11012
11276
|
"aria-current": isActive.value ? 'page' : undefined,
|
|
11013
11277
|
"onClick": link.navigate
|
|
@@ -11038,6 +11302,7 @@
|
|
|
11038
11302
|
type: Array,
|
|
11039
11303
|
default: () => []
|
|
11040
11304
|
},
|
|
11305
|
+
...makeComponentProps(),
|
|
11041
11306
|
...makeDensityProps(),
|
|
11042
11307
|
...makeRoundedProps(),
|
|
11043
11308
|
...makeTagProps({
|
|
@@ -11083,8 +11348,8 @@
|
|
|
11083
11348
|
useRender(() => {
|
|
11084
11349
|
const hasPrepend = !!(slots.prepend || props.icon);
|
|
11085
11350
|
return vue.createVNode(props.tag, {
|
|
11086
|
-
"class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value],
|
|
11087
|
-
"style": backgroundColorStyles.value
|
|
11351
|
+
"class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value, props.class],
|
|
11352
|
+
"style": [backgroundColorStyles.value, props.style]
|
|
11088
11353
|
}, {
|
|
11089
11354
|
default: () => [hasPrepend && vue.createVNode("div", {
|
|
11090
11355
|
"key": "prepend",
|
|
@@ -11128,11 +11393,10 @@
|
|
|
11128
11393
|
}
|
|
11129
11394
|
});
|
|
11130
11395
|
|
|
11131
|
-
|
|
11132
|
-
|
|
11133
|
-
const VCardActions = defineComponent({
|
|
11396
|
+
const VCardActions = genericComponent()({
|
|
11134
11397
|
name: 'VCardActions',
|
|
11135
|
-
|
|
11398
|
+
props: makeComponentProps(),
|
|
11399
|
+
setup(props, _ref) {
|
|
11136
11400
|
let {
|
|
11137
11401
|
slots
|
|
11138
11402
|
} = _ref;
|
|
@@ -11142,7 +11406,8 @@
|
|
|
11142
11406
|
}
|
|
11143
11407
|
});
|
|
11144
11408
|
useRender(() => vue.createVNode("div", {
|
|
11145
|
-
"class":
|
|
11409
|
+
"class": ['v-card-actions', props.class],
|
|
11410
|
+
"style": props.style
|
|
11146
11411
|
}, [slots.default?.()]));
|
|
11147
11412
|
return {};
|
|
11148
11413
|
}
|
|
@@ -11152,8 +11417,6 @@
|
|
|
11152
11417
|
|
|
11153
11418
|
const VCardTitle = createSimpleFunctional('v-card-title');
|
|
11154
11419
|
|
|
11155
|
-
// Types
|
|
11156
|
-
|
|
11157
11420
|
const VCardItem = genericComponent()({
|
|
11158
11421
|
name: 'VCardItem',
|
|
11159
11422
|
props: {
|
|
@@ -11163,6 +11426,7 @@
|
|
|
11163
11426
|
prependIcon: IconValue,
|
|
11164
11427
|
subtitle: String,
|
|
11165
11428
|
title: String,
|
|
11429
|
+
...makeComponentProps(),
|
|
11166
11430
|
...makeDensityProps()
|
|
11167
11431
|
},
|
|
11168
11432
|
setup(props, _ref) {
|
|
@@ -11177,7 +11441,8 @@
|
|
|
11177
11441
|
const hasTitle = !!(props.title || slots.title);
|
|
11178
11442
|
const hasSubtitle = !!(props.subtitle || slots.subtitle);
|
|
11179
11443
|
return vue.createVNode("div", {
|
|
11180
|
-
"class":
|
|
11444
|
+
"class": ['v-card-item', props.class],
|
|
11445
|
+
"style": props.style
|
|
11181
11446
|
}, [hasPrepend && vue.createVNode("div", {
|
|
11182
11447
|
"key": "prepend",
|
|
11183
11448
|
"class": "v-card-item__prepend"
|
|
@@ -11259,8 +11524,8 @@
|
|
|
11259
11524
|
subtitle: String,
|
|
11260
11525
|
text: String,
|
|
11261
11526
|
title: String,
|
|
11262
|
-
...makeThemeProps(),
|
|
11263
11527
|
...makeBorderProps(),
|
|
11528
|
+
...makeComponentProps(),
|
|
11264
11529
|
...makeDensityProps(),
|
|
11265
11530
|
...makeDimensionProps(),
|
|
11266
11531
|
...makeElevationProps(),
|
|
@@ -11270,6 +11535,7 @@
|
|
|
11270
11535
|
...makeRoundedProps(),
|
|
11271
11536
|
...makeRouterProps(),
|
|
11272
11537
|
...makeTagProps(),
|
|
11538
|
+
...makeThemeProps(),
|
|
11273
11539
|
...makeVariantProps({
|
|
11274
11540
|
variant: 'elevated'
|
|
11275
11541
|
})
|
|
@@ -11330,8 +11596,8 @@
|
|
|
11330
11596
|
'v-card--flat': props.flat,
|
|
11331
11597
|
'v-card--hover': props.hover && !(props.disabled || props.flat),
|
|
11332
11598
|
'v-card--link': isClickable.value
|
|
11333
|
-
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value],
|
|
11334
|
-
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value],
|
|
11599
|
+
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
|
11600
|
+
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
|
|
11335
11601
|
"href": link.href.value,
|
|
11336
11602
|
"onClick": isClickable.value && link.navigate,
|
|
11337
11603
|
"tabindex": props.disabled ? -1 : undefined
|
|
@@ -11527,6 +11793,7 @@
|
|
|
11527
11793
|
mandatory: {
|
|
11528
11794
|
default: 'force'
|
|
11529
11795
|
},
|
|
11796
|
+
...makeComponentProps(),
|
|
11530
11797
|
...makeTagProps(),
|
|
11531
11798
|
...makeThemeProps()
|
|
11532
11799
|
}, 'v-window');
|
|
@@ -11642,7 +11909,8 @@
|
|
|
11642
11909
|
"ref": rootRef,
|
|
11643
11910
|
"class": ['v-window', {
|
|
11644
11911
|
'v-window--show-arrows-on-hover': props.showArrows === 'hover'
|
|
11645
|
-
}, themeClasses.value]
|
|
11912
|
+
}, themeClasses.value, props.class],
|
|
11913
|
+
"style": props.style
|
|
11646
11914
|
}, {
|
|
11647
11915
|
default: () => [vue.createVNode("div", {
|
|
11648
11916
|
"class": "v-window__container",
|
|
@@ -11727,10 +11995,10 @@
|
|
|
11727
11995
|
"class": ['v-carousel', {
|
|
11728
11996
|
'v-carousel--hide-delimiter-background': props.hideDelimiterBackground,
|
|
11729
11997
|
'v-carousel--vertical-delimiters': props.verticalDelimiters
|
|
11730
|
-
}],
|
|
11731
|
-
"style": {
|
|
11998
|
+
}, props.class],
|
|
11999
|
+
"style": [{
|
|
11732
12000
|
height: convertToUnit(props.height)
|
|
11733
|
-
},
|
|
12001
|
+
}, props.style],
|
|
11734
12002
|
"continuous": true,
|
|
11735
12003
|
"mandatory": "force",
|
|
11736
12004
|
"showArrows": props.showArrows
|
|
@@ -11796,6 +12064,7 @@
|
|
|
11796
12064
|
type: [Boolean, String],
|
|
11797
12065
|
default: undefined
|
|
11798
12066
|
},
|
|
12067
|
+
...makeComponentProps(),
|
|
11799
12068
|
...makeGroupItemProps(),
|
|
11800
12069
|
...makeLazyProps()
|
|
11801
12070
|
},
|
|
@@ -11882,7 +12151,8 @@
|
|
|
11882
12151
|
"disabled": !isBooted.value
|
|
11883
12152
|
}, {
|
|
11884
12153
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
|
11885
|
-
"class": ['v-window-item', groupItem.selectedClass.value]
|
|
12154
|
+
"class": ['v-window-item', groupItem.selectedClass.value, props.class],
|
|
12155
|
+
"style": props.style
|
|
11886
12156
|
}, [hasContent.value && slots.default?.()]), [[vue.vShow, groupItem.isSelected.value]])]
|
|
11887
12157
|
}));
|
|
11888
12158
|
return {};
|
|
@@ -11895,7 +12165,8 @@
|
|
|
11895
12165
|
name: 'VCarouselItem',
|
|
11896
12166
|
inheritAttrs: false,
|
|
11897
12167
|
props: {
|
|
11898
|
-
value: null
|
|
12168
|
+
value: null,
|
|
12169
|
+
...makeComponentProps()
|
|
11899
12170
|
},
|
|
11900
12171
|
setup(props, _ref) {
|
|
11901
12172
|
let {
|
|
@@ -11903,7 +12174,8 @@
|
|
|
11903
12174
|
attrs
|
|
11904
12175
|
} = _ref;
|
|
11905
12176
|
useRender(() => vue.createVNode(VWindowItem, {
|
|
11906
|
-
"class":
|
|
12177
|
+
"class": ['v-carousel-item', props.class],
|
|
12178
|
+
"style": props.style,
|
|
11907
12179
|
"value": props.value
|
|
11908
12180
|
}, {
|
|
11909
12181
|
default: () => [vue.createVNode(VImg, attrs, slots)]
|
|
@@ -11916,6 +12188,7 @@
|
|
|
11916
12188
|
const makeVSheetProps = propsFactory({
|
|
11917
12189
|
color: String,
|
|
11918
12190
|
...makeBorderProps(),
|
|
12191
|
+
...makeComponentProps(),
|
|
11919
12192
|
...makeDimensionProps(),
|
|
11920
12193
|
...makeElevationProps(),
|
|
11921
12194
|
...makeLocationProps(),
|
|
@@ -11959,8 +12232,8 @@
|
|
|
11959
12232
|
roundedClasses
|
|
11960
12233
|
} = useRounded(props);
|
|
11961
12234
|
useRender(() => vue.createVNode(props.tag, {
|
|
11962
|
-
"class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value],
|
|
11963
|
-
"style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value]
|
|
12235
|
+
"class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class],
|
|
12236
|
+
"style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style]
|
|
11964
12237
|
}, slots));
|
|
11965
12238
|
return {};
|
|
11966
12239
|
}
|
|
@@ -11986,7 +12259,8 @@
|
|
|
11986
12259
|
width: {
|
|
11987
12260
|
type: [Number, String],
|
|
11988
12261
|
default: 300
|
|
11989
|
-
}
|
|
12262
|
+
},
|
|
12263
|
+
...makeComponentProps()
|
|
11990
12264
|
},
|
|
11991
12265
|
emits: {
|
|
11992
12266
|
'update:color': color => true,
|
|
@@ -12131,7 +12405,8 @@
|
|
|
12131
12405
|
vue.onMounted(() => updateCanvas());
|
|
12132
12406
|
useRender(() => vue.createVNode("div", {
|
|
12133
12407
|
"ref": resizeRef,
|
|
12134
|
-
"class":
|
|
12408
|
+
"class": ['v-color-picker-canvas', props.class],
|
|
12409
|
+
"style": props.style,
|
|
12135
12410
|
"onClick": handleClick,
|
|
12136
12411
|
"onMousedown": handleMouseDown,
|
|
12137
12412
|
"onTouchstart": handleMouseDown
|
|
@@ -12364,7 +12639,8 @@
|
|
|
12364
12639
|
type: Array,
|
|
12365
12640
|
default: () => Object.keys(modes),
|
|
12366
12641
|
validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))
|
|
12367
|
-
}
|
|
12642
|
+
},
|
|
12643
|
+
...makeComponentProps()
|
|
12368
12644
|
},
|
|
12369
12645
|
emits: {
|
|
12370
12646
|
'update:color': color => true,
|
|
@@ -12404,7 +12680,8 @@
|
|
|
12404
12680
|
});
|
|
12405
12681
|
});
|
|
12406
12682
|
useRender(() => vue.createVNode("div", {
|
|
12407
|
-
"class":
|
|
12683
|
+
"class": ['v-color-picker-edit', props.class],
|
|
12684
|
+
"style": props.style
|
|
12408
12685
|
}, [inputs.value?.map(props => vue.createVNode(VColorPickerInput, props, null)), enabledModes.value.length > 1 && vue.createVNode(VBtn, {
|
|
12409
12686
|
"icon": "$unfold",
|
|
12410
12687
|
"size": "x-small",
|
|
@@ -12488,11 +12765,33 @@
|
|
|
12488
12765
|
elevation: 2
|
|
12489
12766
|
})
|
|
12490
12767
|
}, 'slider');
|
|
12768
|
+
const useSteps = props => {
|
|
12769
|
+
const min = vue.computed(() => parseFloat(props.min));
|
|
12770
|
+
const max = vue.computed(() => parseFloat(props.max));
|
|
12771
|
+
const step = vue.computed(() => +props.step > 0 ? parseFloat(props.step) : 0);
|
|
12772
|
+
const decimals = vue.computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
|
|
12773
|
+
function roundValue(value) {
|
|
12774
|
+
if (step.value <= 0) return value;
|
|
12775
|
+
const clamped = clamp(value, min.value, max.value);
|
|
12776
|
+
const offset = min.value % step.value;
|
|
12777
|
+
const newValue = Math.round((clamped - offset) / step.value) * step.value + offset;
|
|
12778
|
+
return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value));
|
|
12779
|
+
}
|
|
12780
|
+
return {
|
|
12781
|
+
min,
|
|
12782
|
+
max,
|
|
12783
|
+
step,
|
|
12784
|
+
decimals,
|
|
12785
|
+
roundValue
|
|
12786
|
+
};
|
|
12787
|
+
};
|
|
12491
12788
|
const useSlider = _ref => {
|
|
12492
12789
|
let {
|
|
12493
12790
|
props,
|
|
12494
|
-
|
|
12495
|
-
|
|
12791
|
+
steps,
|
|
12792
|
+
onSliderStart,
|
|
12793
|
+
onSliderMove,
|
|
12794
|
+
onSliderEnd,
|
|
12496
12795
|
getActiveThumb
|
|
12497
12796
|
} = _ref;
|
|
12498
12797
|
const {
|
|
@@ -12506,10 +12805,13 @@
|
|
|
12506
12805
|
}
|
|
12507
12806
|
return hd;
|
|
12508
12807
|
});
|
|
12509
|
-
const
|
|
12510
|
-
|
|
12511
|
-
|
|
12512
|
-
|
|
12808
|
+
const {
|
|
12809
|
+
min,
|
|
12810
|
+
max,
|
|
12811
|
+
step,
|
|
12812
|
+
decimals,
|
|
12813
|
+
roundValue
|
|
12814
|
+
} = steps;
|
|
12513
12815
|
const thumbSize = vue.computed(() => parseInt(props.thumbSize, 10));
|
|
12514
12816
|
const tickSize = vue.computed(() => parseInt(props.tickSize, 10));
|
|
12515
12817
|
const trackSize = vue.computed(() => parseInt(props.trackSize, 10));
|
|
@@ -12523,13 +12825,6 @@
|
|
|
12523
12825
|
const startOffset = vue.ref(0);
|
|
12524
12826
|
const trackContainerRef = vue.ref();
|
|
12525
12827
|
const activeThumbRef = vue.ref();
|
|
12526
|
-
function roundValue(value) {
|
|
12527
|
-
if (step.value <= 0) return value;
|
|
12528
|
-
const clamped = clamp(value, min.value, max.value);
|
|
12529
|
-
const offset = min.value % step.value;
|
|
12530
|
-
const newValue = Math.round((clamped - offset) / step.value) * step.value + offset;
|
|
12531
|
-
return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value));
|
|
12532
|
-
}
|
|
12533
12828
|
function parseMouseMove(e) {
|
|
12534
12829
|
const vertical = props.direction === 'vertical';
|
|
12535
12830
|
const start = vertical ? 'top' : 'left';
|
|
@@ -12546,14 +12841,11 @@
|
|
|
12546
12841
|
if (vertical || horizontalDirection.value === 'rtl') clickPos = 1 - clickPos;
|
|
12547
12842
|
return roundValue(min.value + clickPos * (max.value - min.value));
|
|
12548
12843
|
}
|
|
12549
|
-
let thumbMoved = false;
|
|
12550
12844
|
const handleStop = e => {
|
|
12551
|
-
|
|
12552
|
-
|
|
12553
|
-
|
|
12554
|
-
}
|
|
12845
|
+
onSliderEnd({
|
|
12846
|
+
value: parseMouseMove(e)
|
|
12847
|
+
});
|
|
12555
12848
|
mousePressed.value = false;
|
|
12556
|
-
thumbMoved = false;
|
|
12557
12849
|
startOffset.value = 0;
|
|
12558
12850
|
};
|
|
12559
12851
|
const handleStart = e => {
|
|
@@ -12562,20 +12854,25 @@
|
|
|
12562
12854
|
activeThumbRef.value.focus();
|
|
12563
12855
|
mousePressed.value = true;
|
|
12564
12856
|
if (activeThumbRef.value.contains(e.target)) {
|
|
12565
|
-
thumbMoved = true;
|
|
12566
12857
|
startOffset.value = getOffset(e, activeThumbRef.value, props.direction);
|
|
12567
12858
|
} else {
|
|
12568
12859
|
startOffset.value = 0;
|
|
12569
|
-
|
|
12860
|
+
onSliderMove({
|
|
12861
|
+
value: parseMouseMove(e)
|
|
12862
|
+
});
|
|
12570
12863
|
}
|
|
12864
|
+
onSliderStart({
|
|
12865
|
+
value: parseMouseMove(e)
|
|
12866
|
+
});
|
|
12571
12867
|
};
|
|
12572
12868
|
const moveListenerOptions = {
|
|
12573
12869
|
passive: true,
|
|
12574
12870
|
capture: true
|
|
12575
12871
|
};
|
|
12576
12872
|
function onMouseMove(e) {
|
|
12577
|
-
|
|
12578
|
-
|
|
12873
|
+
onSliderMove({
|
|
12874
|
+
value: parseMouseMove(e)
|
|
12875
|
+
});
|
|
12579
12876
|
}
|
|
12580
12877
|
function onSliderMouseUp(e) {
|
|
12581
12878
|
e.stopPropagation();
|
|
@@ -12703,7 +13000,8 @@
|
|
|
12703
13000
|
ripple: {
|
|
12704
13001
|
type: Boolean,
|
|
12705
13002
|
default: true
|
|
12706
|
-
}
|
|
13003
|
+
},
|
|
13004
|
+
...makeComponentProps()
|
|
12707
13005
|
},
|
|
12708
13006
|
emits: {
|
|
12709
13007
|
'update:modelValue': v => true
|
|
@@ -12781,11 +13079,11 @@
|
|
|
12781
13079
|
"class": ['v-slider-thumb', {
|
|
12782
13080
|
'v-slider-thumb--focused': props.focused,
|
|
12783
13081
|
'v-slider-thumb--pressed': props.focused && mousePressed.value
|
|
12784
|
-
}],
|
|
12785
|
-
"style": {
|
|
13082
|
+
}, props.class],
|
|
13083
|
+
"style": [{
|
|
12786
13084
|
'--v-slider-thumb-position': positionPercentage,
|
|
12787
13085
|
'--v-slider-thumb-size': convertToUnit(thumbSize.value)
|
|
12788
|
-
},
|
|
13086
|
+
}, props.style],
|
|
12789
13087
|
"role": "slider",
|
|
12790
13088
|
"tabindex": disabled.value ? -1 : 0,
|
|
12791
13089
|
"aria-valuemin": props.min,
|
|
@@ -12831,7 +13129,8 @@
|
|
|
12831
13129
|
stop: {
|
|
12832
13130
|
type: Number,
|
|
12833
13131
|
required: true
|
|
12834
|
-
}
|
|
13132
|
+
},
|
|
13133
|
+
...makeComponentProps()
|
|
12835
13134
|
},
|
|
12836
13135
|
emits: {},
|
|
12837
13136
|
setup(props, _ref) {
|
|
@@ -12906,12 +13205,12 @@
|
|
|
12906
13205
|
});
|
|
12907
13206
|
useRender(() => {
|
|
12908
13207
|
return vue.createVNode("div", {
|
|
12909
|
-
"class": ['v-slider-track', roundedClasses.value],
|
|
12910
|
-
"style": {
|
|
13208
|
+
"class": ['v-slider-track', roundedClasses.value, props.class],
|
|
13209
|
+
"style": [{
|
|
12911
13210
|
'--v-slider-track-size': convertToUnit(trackSize.value),
|
|
12912
13211
|
'--v-slider-tick-size': convertToUnit(tickSize.value),
|
|
12913
13212
|
direction: !vertical.value ? horizontalDirection.value : undefined
|
|
12914
|
-
}
|
|
13213
|
+
}, props.style]
|
|
12915
13214
|
}, [vue.createVNode("div", {
|
|
12916
13215
|
"class": ['v-slider-track__background', trackColorClasses.value, {
|
|
12917
13216
|
'v-slider-track__background--opacity': !!color.value || !trackFillColor.value
|
|
@@ -12951,13 +13250,21 @@
|
|
|
12951
13250
|
},
|
|
12952
13251
|
emits: {
|
|
12953
13252
|
'update:focused': value => true,
|
|
12954
|
-
'update:modelValue': v => true
|
|
13253
|
+
'update:modelValue': v => true,
|
|
13254
|
+
start: value => true,
|
|
13255
|
+
end: value => true
|
|
12955
13256
|
},
|
|
12956
13257
|
setup(props, _ref) {
|
|
12957
13258
|
let {
|
|
12958
|
-
slots
|
|
13259
|
+
slots,
|
|
13260
|
+
emit
|
|
12959
13261
|
} = _ref;
|
|
12960
13262
|
const thumbContainerRef = vue.ref();
|
|
13263
|
+
const steps = useSteps(props);
|
|
13264
|
+
const model = useProxiedModel(props, 'modelValue', undefined, v => {
|
|
13265
|
+
const value = typeof v === 'string' ? parseFloat(v) : v == null ? steps.min.value : v;
|
|
13266
|
+
return steps.roundValue(value);
|
|
13267
|
+
});
|
|
12961
13268
|
const {
|
|
12962
13269
|
min,
|
|
12963
13270
|
max,
|
|
@@ -12971,16 +13278,26 @@
|
|
|
12971
13278
|
readonly
|
|
12972
13279
|
} = useSlider({
|
|
12973
13280
|
props,
|
|
12974
|
-
|
|
12975
|
-
|
|
12976
|
-
|
|
12977
|
-
|
|
13281
|
+
steps,
|
|
13282
|
+
onSliderStart: () => {
|
|
13283
|
+
emit('start', model.value);
|
|
13284
|
+
},
|
|
13285
|
+
onSliderEnd: _ref2 => {
|
|
13286
|
+
let {
|
|
13287
|
+
value
|
|
13288
|
+
} = _ref2;
|
|
13289
|
+
const roundedValue = roundValue(value);
|
|
13290
|
+
model.value = roundedValue;
|
|
13291
|
+
emit('end', roundedValue);
|
|
13292
|
+
},
|
|
13293
|
+
onSliderMove: _ref3 => {
|
|
13294
|
+
let {
|
|
13295
|
+
value
|
|
13296
|
+
} = _ref3;
|
|
13297
|
+
return model.value = roundValue(value);
|
|
13298
|
+
},
|
|
12978
13299
|
getActiveThumb: () => thumbContainerRef.value?.$el
|
|
12979
13300
|
});
|
|
12980
|
-
const model = useProxiedModel(props, 'modelValue', undefined, v => {
|
|
12981
|
-
const value = typeof v === 'string' ? parseFloat(v) : v == null ? min.value : v;
|
|
12982
|
-
return roundValue(value);
|
|
12983
|
-
});
|
|
12984
13301
|
const {
|
|
12985
13302
|
isFocused,
|
|
12986
13303
|
focus,
|
|
@@ -12996,7 +13313,8 @@
|
|
|
12996
13313
|
'v-slider--focused': isFocused.value,
|
|
12997
13314
|
'v-slider--pressed': mousePressed.value,
|
|
12998
13315
|
'v-slider--disabled': props.disabled
|
|
12999
|
-
}]
|
|
13316
|
+
}, props.class],
|
|
13317
|
+
"style": props.style
|
|
13000
13318
|
}, inputProps, {
|
|
13001
13319
|
"focused": isFocused.value
|
|
13002
13320
|
}), {
|
|
@@ -13006,11 +13324,11 @@
|
|
|
13006
13324
|
"class": "v-slider__label",
|
|
13007
13325
|
"text": props.label
|
|
13008
13326
|
}, null) : undefined, slots.prepend?.(slotProps)]) : undefined,
|
|
13009
|
-
default:
|
|
13327
|
+
default: _ref4 => {
|
|
13010
13328
|
let {
|
|
13011
13329
|
id,
|
|
13012
13330
|
messagesId
|
|
13013
|
-
} =
|
|
13331
|
+
} = _ref4;
|
|
13014
13332
|
return vue.createVNode("div", {
|
|
13015
13333
|
"class": "v-slider__container",
|
|
13016
13334
|
"onMousedown": !readonly.value ? onSliderMousedown : undefined,
|
|
@@ -13059,7 +13377,8 @@
|
|
|
13059
13377
|
type: Object
|
|
13060
13378
|
},
|
|
13061
13379
|
disabled: Boolean,
|
|
13062
|
-
hideAlpha: Boolean
|
|
13380
|
+
hideAlpha: Boolean,
|
|
13381
|
+
...makeComponentProps()
|
|
13063
13382
|
},
|
|
13064
13383
|
emits: {
|
|
13065
13384
|
'update:color': color => true
|
|
@@ -13071,7 +13390,8 @@
|
|
|
13071
13390
|
useRender(() => vue.createVNode("div", {
|
|
13072
13391
|
"class": ['v-color-picker-preview', {
|
|
13073
13392
|
'v-color-picker-preview--hide-alpha': props.hideAlpha
|
|
13074
|
-
}]
|
|
13393
|
+
}, props.class],
|
|
13394
|
+
"style": props.style
|
|
13075
13395
|
}, [vue.createVNode("div", {
|
|
13076
13396
|
"class": "v-color-picker-preview__dot"
|
|
13077
13397
|
}, [vue.createVNode("div", {
|
|
@@ -13452,7 +13772,8 @@
|
|
|
13452
13772
|
},
|
|
13453
13773
|
disabled: Boolean,
|
|
13454
13774
|
color: Object,
|
|
13455
|
-
maxHeight: [Number, String]
|
|
13775
|
+
maxHeight: [Number, String],
|
|
13776
|
+
...makeComponentProps()
|
|
13456
13777
|
},
|
|
13457
13778
|
emits: {
|
|
13458
13779
|
'update:color': color => true
|
|
@@ -13462,10 +13783,10 @@
|
|
|
13462
13783
|
emit
|
|
13463
13784
|
} = _ref;
|
|
13464
13785
|
useRender(() => vue.createVNode("div", {
|
|
13465
|
-
"class":
|
|
13466
|
-
"style": {
|
|
13786
|
+
"class": ['v-color-picker-swatches', props.class],
|
|
13787
|
+
"style": [{
|
|
13467
13788
|
maxHeight: convertToUnit(props.maxHeight)
|
|
13468
|
-
}
|
|
13789
|
+
}, props.style]
|
|
13469
13790
|
}, [vue.createVNode("div", null, [props.swatches.map(swatch => vue.createVNode("div", {
|
|
13470
13791
|
"class": "v-color-picker-swatches__swatch"
|
|
13471
13792
|
}, [swatch.map(color => {
|
|
@@ -13569,13 +13890,13 @@
|
|
|
13569
13890
|
"rounded": props.rounded,
|
|
13570
13891
|
"elevation": props.elevation,
|
|
13571
13892
|
"theme": props.theme,
|
|
13572
|
-
"class": ['v-color-picker'],
|
|
13573
|
-
"style": {
|
|
13893
|
+
"class": ['v-color-picker', props.class],
|
|
13894
|
+
"style": [{
|
|
13574
13895
|
'--v-color-picker-color-hsv': HSVtoCSS({
|
|
13575
13896
|
...(currentColor.value ?? nullColor),
|
|
13576
13897
|
a: 1
|
|
13577
13898
|
})
|
|
13578
|
-
}
|
|
13899
|
+
}, props.style]
|
|
13579
13900
|
}, sheetProps, {
|
|
13580
13901
|
"maxWidth": props.width
|
|
13581
13902
|
}), {
|
|
@@ -13886,7 +14207,8 @@
|
|
|
13886
14207
|
'v-combobox--chips': !!props.chips,
|
|
13887
14208
|
'v-combobox--selecting-index': selectionIndex.value > -1,
|
|
13888
14209
|
[`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true
|
|
13889
|
-
}],
|
|
14210
|
+
}, props.class],
|
|
14211
|
+
"style": props.style,
|
|
13890
14212
|
"appendInnerIcon": props.items.length ? props.menuIcon : undefined,
|
|
13891
14213
|
"readonly": props.readonly,
|
|
13892
14214
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
@@ -14084,7 +14406,8 @@
|
|
|
14084
14406
|
"class": ['v-dialog', {
|
|
14085
14407
|
'v-dialog--fullscreen': props.fullscreen,
|
|
14086
14408
|
'v-dialog--scrollable': props.scrollable
|
|
14087
|
-
}]
|
|
14409
|
+
}, props.class],
|
|
14410
|
+
"style": props.style
|
|
14088
14411
|
}, overlayProps, {
|
|
14089
14412
|
"modelValue": isActive.value,
|
|
14090
14413
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
@@ -14123,6 +14446,7 @@
|
|
|
14123
14446
|
validator: v => allowedVariants.includes(v)
|
|
14124
14447
|
},
|
|
14125
14448
|
readonly: Boolean,
|
|
14449
|
+
...makeComponentProps(),
|
|
14126
14450
|
...makeGroupProps(),
|
|
14127
14451
|
...makeTagProps(),
|
|
14128
14452
|
...makeThemeProps()
|
|
@@ -14148,7 +14472,8 @@
|
|
|
14148
14472
|
}
|
|
14149
14473
|
});
|
|
14150
14474
|
useRender(() => vue.createVNode(props.tag, {
|
|
14151
|
-
"class": ['v-expansion-panels', themeClasses.value, variantClass.value]
|
|
14475
|
+
"class": ['v-expansion-panels', themeClasses.value, variantClass.value, props.class],
|
|
14476
|
+
"style": props.style
|
|
14152
14477
|
}, slots));
|
|
14153
14478
|
return {};
|
|
14154
14479
|
}
|
|
@@ -14177,6 +14502,7 @@
|
|
|
14177
14502
|
Ripple
|
|
14178
14503
|
},
|
|
14179
14504
|
props: {
|
|
14505
|
+
...makeComponentProps(),
|
|
14180
14506
|
...makeVExpansionPanelTitleProps()
|
|
14181
14507
|
},
|
|
14182
14508
|
setup(props, _ref) {
|
|
@@ -14199,8 +14525,8 @@
|
|
|
14199
14525
|
useRender(() => vue.withDirectives(vue.createVNode("button", {
|
|
14200
14526
|
"class": ['v-expansion-panel-title', {
|
|
14201
14527
|
'v-expansion-panel-title--active': expansionPanel.isSelected.value
|
|
14202
|
-
}, backgroundColorClasses.value],
|
|
14203
|
-
"style": backgroundColorStyles.value,
|
|
14528
|
+
}, backgroundColorClasses.value, props.class],
|
|
14529
|
+
"style": [backgroundColorStyles.value, props.style],
|
|
14204
14530
|
"type": "button",
|
|
14205
14531
|
"tabindex": expansionPanel.disabled.value ? -1 : undefined,
|
|
14206
14532
|
"disabled": expansionPanel.disabled.value,
|
|
@@ -14220,6 +14546,7 @@
|
|
|
14220
14546
|
const VExpansionPanelText = genericComponent()({
|
|
14221
14547
|
name: 'VExpansionPanelText',
|
|
14222
14548
|
props: {
|
|
14549
|
+
...makeComponentProps(),
|
|
14223
14550
|
...makeLazyProps()
|
|
14224
14551
|
},
|
|
14225
14552
|
setup(props, _ref) {
|
|
@@ -14236,7 +14563,8 @@
|
|
|
14236
14563
|
"onAfterLeave": onAfterLeave
|
|
14237
14564
|
}, {
|
|
14238
14565
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
|
14239
|
-
"class":
|
|
14566
|
+
"class": ['v-expansion-panel-text', props.class],
|
|
14567
|
+
"style": props.style
|
|
14240
14568
|
}, [slots.default && hasContent.value && vue.createVNode("div", {
|
|
14241
14569
|
"class": "v-expansion-panel-text__wrapper"
|
|
14242
14570
|
}, [slots.default?.()])]), [[vue.vShow, expansionPanel.isSelected.value]])]
|
|
@@ -14251,6 +14579,7 @@
|
|
|
14251
14579
|
title: String,
|
|
14252
14580
|
text: String,
|
|
14253
14581
|
bgColor: String,
|
|
14582
|
+
...makeComponentProps(),
|
|
14254
14583
|
...makeElevationProps(),
|
|
14255
14584
|
...makeGroupItemProps(),
|
|
14256
14585
|
...makeLazyProps(),
|
|
@@ -14299,8 +14628,8 @@
|
|
|
14299
14628
|
'v-expansion-panel--before-active': isBeforeSelected.value,
|
|
14300
14629
|
'v-expansion-panel--after-active': isAfterSelected.value,
|
|
14301
14630
|
'v-expansion-panel--disabled': isDisabled.value
|
|
14302
|
-
}, roundedClasses.value, backgroundColorClasses.value],
|
|
14303
|
-
"style": backgroundColorStyles.value,
|
|
14631
|
+
}, roundedClasses.value, backgroundColorClasses.value, props.class],
|
|
14632
|
+
"style": [backgroundColorStyles.value, props.style],
|
|
14304
14633
|
"aria-expanded": groupItem.isSelected.value
|
|
14305
14634
|
}, {
|
|
14306
14635
|
default: () => [vue.createVNode("div", {
|
|
@@ -14450,7 +14779,8 @@
|
|
|
14450
14779
|
"ref": vInputRef,
|
|
14451
14780
|
"modelValue": model.value,
|
|
14452
14781
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
14453
|
-
"class":
|
|
14782
|
+
"class": ['v-file-input', props.class],
|
|
14783
|
+
"style": props.style,
|
|
14454
14784
|
"onClick:prepend": onClickPrepend
|
|
14455
14785
|
}, rootAttrs, inputProps, {
|
|
14456
14786
|
"focused": isFocused.value
|
|
@@ -14542,6 +14872,7 @@
|
|
|
14542
14872
|
default: 'auto'
|
|
14543
14873
|
},
|
|
14544
14874
|
...makeBorderProps(),
|
|
14875
|
+
...makeComponentProps(),
|
|
14545
14876
|
...makeElevationProps(),
|
|
14546
14877
|
...makeLayoutItemProps(),
|
|
14547
14878
|
...makeRoundedProps(),
|
|
@@ -14591,8 +14922,8 @@
|
|
|
14591
14922
|
});
|
|
14592
14923
|
useRender(() => vue.createVNode(props.tag, {
|
|
14593
14924
|
"ref": resizeRef,
|
|
14594
|
-
"class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value],
|
|
14595
|
-
"style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : undefined]
|
|
14925
|
+
"class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
14926
|
+
"style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : undefined, props.style]
|
|
14596
14927
|
}, slots));
|
|
14597
14928
|
return {};
|
|
14598
14929
|
}
|
|
@@ -14603,6 +14934,7 @@
|
|
|
14603
14934
|
const VForm = genericComponent()({
|
|
14604
14935
|
name: 'VForm',
|
|
14605
14936
|
props: {
|
|
14937
|
+
...makeComponentProps(),
|
|
14606
14938
|
...makeFormProps()
|
|
14607
14939
|
},
|
|
14608
14940
|
emits: {
|
|
@@ -14641,7 +14973,8 @@
|
|
|
14641
14973
|
}
|
|
14642
14974
|
useRender(() => vue.createVNode("form", {
|
|
14643
14975
|
"ref": formRef,
|
|
14644
|
-
"class":
|
|
14976
|
+
"class": ['v-form', props.class],
|
|
14977
|
+
"style": props.style,
|
|
14645
14978
|
"novalidate": true,
|
|
14646
14979
|
"onReset": onReset,
|
|
14647
14980
|
"onSubmit": onSubmit
|
|
@@ -14657,6 +14990,7 @@
|
|
|
14657
14990
|
type: Boolean,
|
|
14658
14991
|
default: false
|
|
14659
14992
|
},
|
|
14993
|
+
...makeComponentProps(),
|
|
14660
14994
|
...makeTagProps()
|
|
14661
14995
|
},
|
|
14662
14996
|
setup(props, _ref) {
|
|
@@ -14666,7 +15000,8 @@
|
|
|
14666
15000
|
useRender(() => vue.createVNode(props.tag, {
|
|
14667
15001
|
"class": ['v-container', {
|
|
14668
15002
|
'v-container--fluid': props.fluid
|
|
14669
|
-
}]
|
|
15003
|
+
}, props.class],
|
|
15004
|
+
"style": props.style
|
|
14670
15005
|
}, slots));
|
|
14671
15006
|
return {};
|
|
14672
15007
|
}
|
|
@@ -14757,6 +15092,7 @@
|
|
|
14757
15092
|
default: null,
|
|
14758
15093
|
validator: str => ALIGN_SELF_VALUES.includes(str)
|
|
14759
15094
|
},
|
|
15095
|
+
...makeComponentProps(),
|
|
14760
15096
|
...makeTagProps()
|
|
14761
15097
|
},
|
|
14762
15098
|
setup(props, _ref) {
|
|
@@ -14787,7 +15123,8 @@
|
|
|
14787
15123
|
return classList;
|
|
14788
15124
|
});
|
|
14789
15125
|
return () => vue.h(props.tag, {
|
|
14790
|
-
class: classes.value
|
|
15126
|
+
class: [classes.value, props.class],
|
|
15127
|
+
style: props.style
|
|
14791
15128
|
}, slots.default?.());
|
|
14792
15129
|
}
|
|
14793
15130
|
});
|
|
@@ -14873,6 +15210,7 @@
|
|
|
14873
15210
|
validator: alignContentValidator
|
|
14874
15211
|
},
|
|
14875
15212
|
...alignContentProps,
|
|
15213
|
+
...makeComponentProps(),
|
|
14876
15214
|
...makeTagProps()
|
|
14877
15215
|
},
|
|
14878
15216
|
setup(props, _ref) {
|
|
@@ -14901,7 +15239,8 @@
|
|
|
14901
15239
|
return classList;
|
|
14902
15240
|
});
|
|
14903
15241
|
return () => vue.h(props.tag, {
|
|
14904
|
-
class: ['v-row', classes.value]
|
|
15242
|
+
class: ['v-row', classes.value, props.class],
|
|
15243
|
+
style: props.style
|
|
14905
15244
|
}, slots.default?.());
|
|
14906
15245
|
}
|
|
14907
15246
|
});
|
|
@@ -14945,6 +15284,7 @@
|
|
|
14945
15284
|
const VItemGroup = genericComponent()({
|
|
14946
15285
|
name: 'VItemGroup',
|
|
14947
15286
|
props: {
|
|
15287
|
+
...makeComponentProps(),
|
|
14948
15288
|
...makeGroupProps({
|
|
14949
15289
|
selectedClass: 'v-item--selected'
|
|
14950
15290
|
}),
|
|
@@ -14969,7 +15309,8 @@
|
|
|
14969
15309
|
selected
|
|
14970
15310
|
} = useGroup(props, VItemGroupSymbol);
|
|
14971
15311
|
return () => vue.createVNode(props.tag, {
|
|
14972
|
-
"class": ['v-item-group', themeClasses.value]
|
|
15312
|
+
"class": ['v-item-group', themeClasses.value, props.class],
|
|
15313
|
+
"style": props.style
|
|
14973
15314
|
}, {
|
|
14974
15315
|
default: () => [slots.default?.({
|
|
14975
15316
|
isSelected,
|
|
@@ -15019,7 +15360,10 @@
|
|
|
15019
15360
|
|
|
15020
15361
|
const VLayout = genericComponent()({
|
|
15021
15362
|
name: 'VLayout',
|
|
15022
|
-
props:
|
|
15363
|
+
props: {
|
|
15364
|
+
...makeComponentProps(),
|
|
15365
|
+
...makeLayoutProps()
|
|
15366
|
+
},
|
|
15023
15367
|
setup(props, _ref) {
|
|
15024
15368
|
let {
|
|
15025
15369
|
slots
|
|
@@ -15033,8 +15377,8 @@
|
|
|
15033
15377
|
} = createLayout(props);
|
|
15034
15378
|
useRender(() => vue.createVNode("div", {
|
|
15035
15379
|
"ref": layoutRef,
|
|
15036
|
-
"class": layoutClasses.value,
|
|
15037
|
-
"style": layoutStyles.value
|
|
15380
|
+
"class": [layoutClasses.value, props.class],
|
|
15381
|
+
"style": [layoutStyles.value, props.style]
|
|
15038
15382
|
}, [slots.default?.()]));
|
|
15039
15383
|
return {
|
|
15040
15384
|
getLayoutItem,
|
|
@@ -15057,6 +15401,7 @@
|
|
|
15057
15401
|
default: 300
|
|
15058
15402
|
},
|
|
15059
15403
|
modelValue: Boolean,
|
|
15404
|
+
...makeComponentProps(),
|
|
15060
15405
|
...makeLayoutItemProps()
|
|
15061
15406
|
},
|
|
15062
15407
|
setup(props, _ref) {
|
|
@@ -15075,8 +15420,8 @@
|
|
|
15075
15420
|
absolute: vue.toRef(props, 'absolute')
|
|
15076
15421
|
});
|
|
15077
15422
|
return () => vue.createVNode("div", {
|
|
15078
|
-
"class": ['v-layout-item'],
|
|
15079
|
-
"style": layoutItemStyles.value
|
|
15423
|
+
"class": ['v-layout-item', props.class],
|
|
15424
|
+
"style": [layoutItemStyles.value, props.style]
|
|
15080
15425
|
}, [slots.default?.()]);
|
|
15081
15426
|
}
|
|
15082
15427
|
});
|
|
@@ -15100,6 +15445,7 @@
|
|
|
15100
15445
|
threshold: undefined
|
|
15101
15446
|
})
|
|
15102
15447
|
},
|
|
15448
|
+
...makeComponentProps(),
|
|
15103
15449
|
...makeDimensionProps(),
|
|
15104
15450
|
...makeTagProps(),
|
|
15105
15451
|
...makeTransitionProps({
|
|
@@ -15122,8 +15468,8 @@
|
|
|
15122
15468
|
isActive.value = isIntersecting;
|
|
15123
15469
|
}
|
|
15124
15470
|
useRender(() => vue.withDirectives(vue.createVNode(props.tag, {
|
|
15125
|
-
"class":
|
|
15126
|
-
"style": dimensionStyles.value
|
|
15471
|
+
"class": ['v-lazy', props.class],
|
|
15472
|
+
"style": [dimensionStyles.value, props.style]
|
|
15127
15473
|
}, {
|
|
15128
15474
|
default: () => [isActive.value && vue.createVNode(MaybeTransition, {
|
|
15129
15475
|
"transition": props.transition,
|
|
@@ -15148,7 +15494,8 @@
|
|
|
15148
15494
|
rtl: {
|
|
15149
15495
|
type: Boolean,
|
|
15150
15496
|
default: undefined
|
|
15151
|
-
}
|
|
15497
|
+
},
|
|
15498
|
+
...makeComponentProps()
|
|
15152
15499
|
},
|
|
15153
15500
|
setup(props, _ref) {
|
|
15154
15501
|
let {
|
|
@@ -15158,7 +15505,8 @@
|
|
|
15158
15505
|
rtlClasses
|
|
15159
15506
|
} = provideLocale(props);
|
|
15160
15507
|
useRender(() => vue.createVNode("div", {
|
|
15161
|
-
"class": ['v-locale-provider', rtlClasses.value]
|
|
15508
|
+
"class": ['v-locale-provider', rtlClasses.value, props.class],
|
|
15509
|
+
"style": props.style
|
|
15162
15510
|
}, [slots.default?.()]));
|
|
15163
15511
|
return {};
|
|
15164
15512
|
}
|
|
@@ -15168,6 +15516,7 @@
|
|
|
15168
15516
|
name: 'VMain',
|
|
15169
15517
|
props: {
|
|
15170
15518
|
scrollable: Boolean,
|
|
15519
|
+
...makeComponentProps(),
|
|
15171
15520
|
...makeTagProps({
|
|
15172
15521
|
tag: 'main'
|
|
15173
15522
|
})
|
|
@@ -15185,8 +15534,8 @@
|
|
|
15185
15534
|
useRender(() => vue.createVNode(props.tag, {
|
|
15186
15535
|
"class": ['v-main', {
|
|
15187
15536
|
'v-main--scrollable': props.scrollable
|
|
15188
|
-
}],
|
|
15189
|
-
"style": [mainStyles.value, ssrBootStyles.value]
|
|
15537
|
+
}, props.class],
|
|
15538
|
+
"style": [mainStyles.value, ssrBootStyles.value, props.style]
|
|
15190
15539
|
}, {
|
|
15191
15540
|
default: () => [props.scrollable ? vue.createVNode("div", {
|
|
15192
15541
|
"class": "v-main__scroller"
|
|
@@ -15532,6 +15881,7 @@
|
|
|
15532
15881
|
},
|
|
15533
15882
|
sticky: Boolean,
|
|
15534
15883
|
...makeBorderProps(),
|
|
15884
|
+
...makeComponentProps(),
|
|
15535
15885
|
...makeElevationProps(),
|
|
15536
15886
|
...makeLayoutItemProps(),
|
|
15537
15887
|
...makeRoundedProps(),
|
|
@@ -15683,8 +16033,8 @@
|
|
|
15683
16033
|
'v-navigation-drawer--temporary': isTemporary.value,
|
|
15684
16034
|
'v-navigation-drawer--active': isActive.value,
|
|
15685
16035
|
'v-navigation-drawer--sticky': isSticky.value
|
|
15686
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value],
|
|
15687
|
-
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value]
|
|
16036
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
16037
|
+
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value, props.style]
|
|
15688
16038
|
}, attrs), {
|
|
15689
16039
|
default: () => [hasImage && vue.createVNode("div", {
|
|
15690
16040
|
"key": "image",
|
|
@@ -15813,6 +16163,7 @@
|
|
|
15813
16163
|
},
|
|
15814
16164
|
showFirstLastPage: Boolean,
|
|
15815
16165
|
...makeBorderProps(),
|
|
16166
|
+
...makeComponentProps(),
|
|
15816
16167
|
...makeDensityProps(),
|
|
15817
16168
|
...makeElevationProps(),
|
|
15818
16169
|
...makeRoundedProps(),
|
|
@@ -16009,7 +16360,8 @@
|
|
|
16009
16360
|
}
|
|
16010
16361
|
useRender(() => vue.createVNode(props.tag, {
|
|
16011
16362
|
"ref": resizeRef,
|
|
16012
|
-
"class": ['v-pagination', themeClasses.value],
|
|
16363
|
+
"class": ['v-pagination', themeClasses.value, props.class],
|
|
16364
|
+
"style": props.style,
|
|
16013
16365
|
"role": "navigation",
|
|
16014
16366
|
"aria-label": t(props.ariaLabel),
|
|
16015
16367
|
"onKeydown": onKeydown,
|
|
@@ -16068,7 +16420,8 @@
|
|
|
16068
16420
|
scale: {
|
|
16069
16421
|
type: [Number, String],
|
|
16070
16422
|
default: 0.5
|
|
16071
|
-
}
|
|
16423
|
+
},
|
|
16424
|
+
...makeComponentProps()
|
|
16072
16425
|
},
|
|
16073
16426
|
setup(props, _ref) {
|
|
16074
16427
|
let {
|
|
@@ -16130,7 +16483,8 @@
|
|
|
16130
16483
|
useRender(() => vue.createVNode(VImg, {
|
|
16131
16484
|
"class": ['v-parallax', {
|
|
16132
16485
|
'v-parallax--active': isIntersecting.value
|
|
16133
|
-
}],
|
|
16486
|
+
}, props.class],
|
|
16487
|
+
"style": props.style,
|
|
16134
16488
|
"ref": root,
|
|
16135
16489
|
"cover": true,
|
|
16136
16490
|
"onLoadstart": onScroll,
|
|
@@ -16155,7 +16509,8 @@
|
|
|
16155
16509
|
slots
|
|
16156
16510
|
} = _ref;
|
|
16157
16511
|
useRender(() => vue.createVNode(VSelectionControl, vue.mergeProps(props, {
|
|
16158
|
-
"class":
|
|
16512
|
+
"class": ['v-radio', props.class],
|
|
16513
|
+
"style": props.style,
|
|
16159
16514
|
"type": "radio"
|
|
16160
16515
|
}), slots));
|
|
16161
16516
|
return {};
|
|
@@ -16209,7 +16564,8 @@
|
|
|
16209
16564
|
}
|
|
16210
16565
|
}) : props.label;
|
|
16211
16566
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
16212
|
-
"class":
|
|
16567
|
+
"class": ['v-radio-group', props.class],
|
|
16568
|
+
"style": props.style
|
|
16213
16569
|
}, inputAttrs, inputProps, {
|
|
16214
16570
|
"modelValue": model.value,
|
|
16215
16571
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
@@ -16265,11 +16621,14 @@
|
|
|
16265
16621
|
},
|
|
16266
16622
|
emits: {
|
|
16267
16623
|
'update:focused': value => true,
|
|
16268
|
-
'update:modelValue': value => true
|
|
16624
|
+
'update:modelValue': value => true,
|
|
16625
|
+
end: value => true,
|
|
16626
|
+
start: value => true
|
|
16269
16627
|
},
|
|
16270
16628
|
setup(props, _ref) {
|
|
16271
16629
|
let {
|
|
16272
|
-
slots
|
|
16630
|
+
slots,
|
|
16631
|
+
emit
|
|
16273
16632
|
} = _ref;
|
|
16274
16633
|
const startThumbRef = vue.ref();
|
|
16275
16634
|
const stopThumbRef = vue.ref();
|
|
@@ -16282,6 +16641,11 @@
|
|
|
16282
16641
|
const b = Math.abs(stopOffset);
|
|
16283
16642
|
return a < b || a === b && startOffset < 0 ? startThumbRef.value.$el : stopThumbRef.value.$el;
|
|
16284
16643
|
}
|
|
16644
|
+
const steps = useSteps(props);
|
|
16645
|
+
const model = useProxiedModel(props, 'modelValue', undefined, arr => {
|
|
16646
|
+
if (!arr?.length) return [0, 0];
|
|
16647
|
+
return arr.map(value => steps.roundValue(value));
|
|
16648
|
+
});
|
|
16285
16649
|
const {
|
|
16286
16650
|
activeThumbRef,
|
|
16287
16651
|
hasLabels,
|
|
@@ -16291,34 +16655,37 @@
|
|
|
16291
16655
|
onSliderMousedown,
|
|
16292
16656
|
onSliderTouchstart,
|
|
16293
16657
|
position,
|
|
16294
|
-
roundValue,
|
|
16295
16658
|
trackContainerRef
|
|
16296
16659
|
} = useSlider({
|
|
16297
|
-
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
16298
16660
|
props,
|
|
16299
|
-
|
|
16300
|
-
|
|
16661
|
+
steps,
|
|
16662
|
+
onSliderStart: () => {
|
|
16663
|
+
emit('start', model.value);
|
|
16664
|
+
},
|
|
16665
|
+
onSliderEnd: _ref2 => {
|
|
16666
|
+
let {
|
|
16667
|
+
value
|
|
16668
|
+
} = _ref2;
|
|
16669
|
+
const newValue = activeThumbRef.value === startThumbRef.value?.$el ? [value, model.value[1]] : [model.value[0], value];
|
|
16670
|
+
model.value = newValue;
|
|
16671
|
+
emit('end', newValue);
|
|
16301
16672
|
},
|
|
16302
|
-
|
|
16673
|
+
onSliderMove: _ref3 => {
|
|
16674
|
+
let {
|
|
16675
|
+
value
|
|
16676
|
+
} = _ref3;
|
|
16303
16677
|
const [start, stop] = model.value;
|
|
16304
16678
|
if (!props.strict && start === stop && start !== min.value) {
|
|
16305
|
-
activeThumbRef.value =
|
|
16679
|
+
activeThumbRef.value = value > start ? stopThumbRef.value?.$el : startThumbRef.value?.$el;
|
|
16306
16680
|
activeThumbRef.value?.focus();
|
|
16307
16681
|
}
|
|
16308
16682
|
if (activeThumbRef.value === startThumbRef.value?.$el) {
|
|
16309
|
-
model.value = [Math.min(
|
|
16683
|
+
model.value = [Math.min(value, stop), stop];
|
|
16310
16684
|
} else {
|
|
16311
|
-
model.value = [start, Math.max(start,
|
|
16685
|
+
model.value = [start, Math.max(start, value)];
|
|
16312
16686
|
}
|
|
16313
16687
|
},
|
|
16314
16688
|
getActiveThumb
|
|
16315
|
-
/* eslint-enable @typescript-eslint/no-use-before-define */
|
|
16316
|
-
});
|
|
16317
|
-
|
|
16318
|
-
const model = useProxiedModel(props, 'modelValue', undefined, arr => {
|
|
16319
|
-
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
16320
|
-
if (!arr || !arr.length) return [0, 0];
|
|
16321
|
-
return arr.map(value => roundValue(value));
|
|
16322
16689
|
});
|
|
16323
16690
|
const {
|
|
16324
16691
|
isFocused,
|
|
@@ -16336,7 +16703,8 @@
|
|
|
16336
16703
|
'v-slider--focused': isFocused.value,
|
|
16337
16704
|
'v-slider--pressed': mousePressed.value,
|
|
16338
16705
|
'v-slider--disabled': props.disabled
|
|
16339
|
-
}],
|
|
16706
|
+
}, props.class],
|
|
16707
|
+
"style": props.style,
|
|
16340
16708
|
"ref": inputRef
|
|
16341
16709
|
}, inputProps, {
|
|
16342
16710
|
"focused": isFocused.value
|
|
@@ -16346,11 +16714,11 @@
|
|
|
16346
16714
|
"class": "v-slider__label",
|
|
16347
16715
|
"text": props.label
|
|
16348
16716
|
}, null) : undefined, slots.prepend?.(slotProps)]) : undefined,
|
|
16349
|
-
default:
|
|
16717
|
+
default: _ref4 => {
|
|
16350
16718
|
let {
|
|
16351
16719
|
id,
|
|
16352
16720
|
messagesId
|
|
16353
|
-
} =
|
|
16721
|
+
} = _ref4;
|
|
16354
16722
|
return vue.createVNode("div", {
|
|
16355
16723
|
"class": "v-slider__container",
|
|
16356
16724
|
"onMousedown": onSliderMousedown,
|
|
@@ -16479,6 +16847,7 @@
|
|
|
16479
16847
|
validator: v => ['top', 'bottom'].includes(v)
|
|
16480
16848
|
},
|
|
16481
16849
|
ripple: Boolean,
|
|
16850
|
+
...makeComponentProps(),
|
|
16482
16851
|
...makeDensityProps(),
|
|
16483
16852
|
...makeSizeProps(),
|
|
16484
16853
|
...makeTagProps(),
|
|
@@ -16502,9 +16871,6 @@
|
|
|
16502
16871
|
const range = vue.computed(() => createRange(Number(props.length), 1));
|
|
16503
16872
|
const increments = vue.computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]));
|
|
16504
16873
|
const hoverIndex = vue.ref(-1);
|
|
16505
|
-
const focusIndex = vue.ref(-1);
|
|
16506
|
-
const firstRef = vue.ref();
|
|
16507
|
-
let isClicking = false;
|
|
16508
16874
|
const itemState = vue.computed(() => increments.value.map(value => {
|
|
16509
16875
|
const isHovering = props.hover && hoverIndex.value > -1;
|
|
16510
16876
|
const isFilled = normalizedValue.value >= value;
|
|
@@ -16527,16 +16893,6 @@
|
|
|
16527
16893
|
function onMouseleave() {
|
|
16528
16894
|
hoverIndex.value = -1;
|
|
16529
16895
|
}
|
|
16530
|
-
function onFocus() {
|
|
16531
|
-
if (value === 0 && normalizedValue.value === 0) {
|
|
16532
|
-
firstRef.value?.focus();
|
|
16533
|
-
} else {
|
|
16534
|
-
focusIndex.value = value;
|
|
16535
|
-
}
|
|
16536
|
-
}
|
|
16537
|
-
function onBlur() {
|
|
16538
|
-
if (!isClicking) focusIndex.value = -1;
|
|
16539
|
-
}
|
|
16540
16896
|
function onClick() {
|
|
16541
16897
|
if (props.disabled || props.readonly) return;
|
|
16542
16898
|
rating.value = normalizedValue.value === value && props.clearable ? 0 : value;
|
|
@@ -16544,17 +16900,9 @@
|
|
|
16544
16900
|
return {
|
|
16545
16901
|
onMouseenter: props.hover ? onMouseenter : undefined,
|
|
16546
16902
|
onMouseleave: props.hover ? onMouseleave : undefined,
|
|
16547
|
-
onFocus,
|
|
16548
|
-
onBlur,
|
|
16549
16903
|
onClick
|
|
16550
16904
|
};
|
|
16551
16905
|
}));
|
|
16552
|
-
function onMousedown() {
|
|
16553
|
-
isClicking = true;
|
|
16554
|
-
}
|
|
16555
|
-
function onMouseup() {
|
|
16556
|
-
isClicking = false;
|
|
16557
|
-
}
|
|
16558
16906
|
const name = vue.computed(() => props.name ?? `v-rating-${getUid()}`);
|
|
16559
16907
|
function VRatingItem(_ref2) {
|
|
16560
16908
|
let {
|
|
@@ -16565,8 +16913,6 @@
|
|
|
16565
16913
|
const {
|
|
16566
16914
|
onMouseenter,
|
|
16567
16915
|
onMouseleave,
|
|
16568
|
-
onFocus,
|
|
16569
|
-
onBlur,
|
|
16570
16916
|
onClick
|
|
16571
16917
|
} = eventState.value[index + 1];
|
|
16572
16918
|
const id = `${name.value}-${String(value).replace('.', '-')}`;
|
|
@@ -16577,7 +16923,6 @@
|
|
|
16577
16923
|
icon: itemState.value[index]?.icon,
|
|
16578
16924
|
ripple: props.ripple,
|
|
16579
16925
|
size: props.size,
|
|
16580
|
-
tag: 'span',
|
|
16581
16926
|
variant: 'plain'
|
|
16582
16927
|
};
|
|
16583
16928
|
return vue.createVNode(vue.Fragment, null, [vue.createVNode("label", {
|
|
@@ -16586,17 +16931,17 @@
|
|
|
16586
16931
|
'v-rating__item--half': props.halfIncrements && value % 1 > 0,
|
|
16587
16932
|
'v-rating__item--full': props.halfIncrements && value % 1 === 0
|
|
16588
16933
|
},
|
|
16589
|
-
"onMousedown": onMousedown,
|
|
16590
|
-
"onMouseup": onMouseup,
|
|
16591
16934
|
"onMouseenter": onMouseenter,
|
|
16592
|
-
"onMouseleave": onMouseleave
|
|
16935
|
+
"onMouseleave": onMouseleave,
|
|
16936
|
+
"onClick": onClick
|
|
16593
16937
|
}, [vue.createVNode("span", {
|
|
16594
16938
|
"class": "v-rating__hidden"
|
|
16595
16939
|
}, [t(props.itemAriaLabel, value, props.length)]), !showStar ? undefined : slots.item ? slots.item({
|
|
16596
16940
|
...itemState.value[index],
|
|
16597
16941
|
props: btnProps,
|
|
16598
16942
|
value,
|
|
16599
|
-
index
|
|
16943
|
+
index,
|
|
16944
|
+
rating: normalizedValue.value
|
|
16600
16945
|
}) : vue.createVNode(VBtn, btnProps, null)]), vue.createVNode("input", {
|
|
16601
16946
|
"class": "v-rating__hidden",
|
|
16602
16947
|
"name": name.value,
|
|
@@ -16604,10 +16949,7 @@
|
|
|
16604
16949
|
"type": "radio",
|
|
16605
16950
|
"value": value,
|
|
16606
16951
|
"checked": normalizedValue.value === value,
|
|
16607
|
-
"
|
|
16608
|
-
"onFocus": onFocus,
|
|
16609
|
-
"onBlur": onBlur,
|
|
16610
|
-
"ref": index === 0 ? firstRef : undefined,
|
|
16952
|
+
"tabindex": -1,
|
|
16611
16953
|
"readonly": props.readonly,
|
|
16612
16954
|
"disabled": props.disabled
|
|
16613
16955
|
}, null)]);
|
|
@@ -16623,7 +16965,8 @@
|
|
|
16623
16965
|
"class": ['v-rating', {
|
|
16624
16966
|
'v-rating--hover': props.hover,
|
|
16625
16967
|
'v-rating--readonly': props.readonly
|
|
16626
|
-
}, themeClasses.value]
|
|
16968
|
+
}, themeClasses.value, props.class],
|
|
16969
|
+
"style": props.style
|
|
16627
16970
|
}, {
|
|
16628
16971
|
default: () => [vue.createVNode(VRatingItem, {
|
|
16629
16972
|
"value": 0,
|
|
@@ -16636,9 +16979,7 @@
|
|
|
16636
16979
|
index: i,
|
|
16637
16980
|
label: props.itemLabels?.[i]
|
|
16638
16981
|
}) : undefined, vue.createVNode("div", {
|
|
16639
|
-
"class":
|
|
16640
|
-
'v-rating__item--focused': Math.ceil(focusIndex.value) === value
|
|
16641
|
-
}]
|
|
16982
|
+
"class": "v-rating__item"
|
|
16642
16983
|
}, [props.halfIncrements ? vue.createVNode(vue.Fragment, null, [vue.createVNode(VRatingItem, {
|
|
16643
16984
|
"value": value - 0.5,
|
|
16644
16985
|
"index": i * 2
|
|
@@ -16725,6 +17066,7 @@
|
|
|
16725
17066
|
type: [Boolean, String],
|
|
16726
17067
|
validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
|
|
16727
17068
|
},
|
|
17069
|
+
...makeComponentProps(),
|
|
16728
17070
|
...makeTagProps(),
|
|
16729
17071
|
...makeGroupProps({
|
|
16730
17072
|
selectedClass: 'v-slide-group-item--active'
|
|
@@ -16965,7 +17307,8 @@
|
|
|
16965
17307
|
'v-slide-group--vertical': !isHorizontal.value,
|
|
16966
17308
|
'v-slide-group--has-affixes': hasAffixes.value,
|
|
16967
17309
|
'v-slide-group--is-overflowing': isOverflowing.value
|
|
16968
|
-
}],
|
|
17310
|
+
}, props.class],
|
|
17311
|
+
"style": props.style,
|
|
16969
17312
|
"tabindex": isFocused.value || group.selected.value.length ? -1 : 0,
|
|
16970
17313
|
"onFocus": onFocus
|
|
16971
17314
|
}, {
|
|
@@ -17115,7 +17458,8 @@
|
|
|
17115
17458
|
'v-snackbar--active': isActive.value,
|
|
17116
17459
|
'v-snackbar--multi-line': props.multiLine && !props.vertical,
|
|
17117
17460
|
'v-snackbar--vertical': props.vertical
|
|
17118
|
-
}, positionClasses.value]
|
|
17461
|
+
}, positionClasses.value, props.class],
|
|
17462
|
+
"style": props.style
|
|
17119
17463
|
}, overlayProps, {
|
|
17120
17464
|
"modelValue": isActive.value,
|
|
17121
17465
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
@@ -17215,7 +17559,8 @@
|
|
|
17215
17559
|
'v-switch--inset': props.inset
|
|
17216
17560
|
}, {
|
|
17217
17561
|
'v-switch--indeterminate': indeterminate.value
|
|
17218
|
-
}, loaderClasses.value]
|
|
17562
|
+
}, loaderClasses.value, props.class],
|
|
17563
|
+
"style": props.style
|
|
17219
17564
|
}, inputAttrs, inputProps, {
|
|
17220
17565
|
"id": id.value,
|
|
17221
17566
|
"focused": isFocused.value
|
|
@@ -17284,6 +17629,7 @@
|
|
|
17284
17629
|
color: String,
|
|
17285
17630
|
height: [Number, String],
|
|
17286
17631
|
window: Boolean,
|
|
17632
|
+
...makeComponentProps(),
|
|
17287
17633
|
...makeElevationProps(),
|
|
17288
17634
|
...makeLayoutItemProps(),
|
|
17289
17635
|
...makeRoundedProps(),
|
|
@@ -17325,8 +17671,8 @@
|
|
|
17325
17671
|
useRender(() => vue.createVNode(props.tag, {
|
|
17326
17672
|
"class": ['v-system-bar', {
|
|
17327
17673
|
'v-system-bar--window': props.window
|
|
17328
|
-
}, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value],
|
|
17329
|
-
"style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value]
|
|
17674
|
+
}, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
17675
|
+
"style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, props.style]
|
|
17330
17676
|
}, slots));
|
|
17331
17677
|
return {};
|
|
17332
17678
|
}
|
|
@@ -17338,7 +17684,6 @@
|
|
|
17338
17684
|
name: 'VTab',
|
|
17339
17685
|
props: {
|
|
17340
17686
|
fixed: Boolean,
|
|
17341
|
-
title: String,
|
|
17342
17687
|
sliderColor: String,
|
|
17343
17688
|
hideSlider: Boolean,
|
|
17344
17689
|
direction: {
|
|
@@ -17400,10 +17745,10 @@
|
|
|
17400
17745
|
useRender(() => {
|
|
17401
17746
|
const [btnProps] = VBtn.filterProps(props);
|
|
17402
17747
|
return vue.createVNode(VBtn, vue.mergeProps({
|
|
17403
|
-
"_as": "VTab",
|
|
17404
17748
|
"symbol": VTabsSymbol,
|
|
17405
17749
|
"ref": rootEl,
|
|
17406
|
-
"class": ['v-tab'],
|
|
17750
|
+
"class": ['v-tab', props.class],
|
|
17751
|
+
"style": props.style,
|
|
17407
17752
|
"tabindex": isSelected.value ? 0 : -1,
|
|
17408
17753
|
"role": "tab",
|
|
17409
17754
|
"aria-selected": String(isSelected.value),
|
|
@@ -17414,7 +17759,7 @@
|
|
|
17414
17759
|
}, btnProps, attrs, {
|
|
17415
17760
|
"onGroup:selected": updateSlider
|
|
17416
17761
|
}), {
|
|
17417
|
-
default: () => [slots.default
|
|
17762
|
+
default: () => [slots.default?.() ?? props.text, !props.hideSlider && vue.createVNode("div", {
|
|
17418
17763
|
"ref": sliderEl,
|
|
17419
17764
|
"class": ['v-tab__slider', sliderColorClasses.value],
|
|
17420
17765
|
"style": sliderColorStyles.value
|
|
@@ -17498,10 +17843,10 @@
|
|
|
17498
17843
|
'v-tabs--fixed-tabs': props.fixedTabs,
|
|
17499
17844
|
'v-tabs--grow': props.grow,
|
|
17500
17845
|
'v-tabs--stacked': props.stacked
|
|
17501
|
-
}, densityClasses.value, backgroundColorClasses.value],
|
|
17846
|
+
}, densityClasses.value, backgroundColorClasses.value, props.class],
|
|
17502
17847
|
"style": [{
|
|
17503
17848
|
'--v-tabs-height': convertToUnit(props.height)
|
|
17504
|
-
}, backgroundColorStyles.value],
|
|
17849
|
+
}, backgroundColorStyles.value, props.style],
|
|
17505
17850
|
"role": "tablist",
|
|
17506
17851
|
"symbol": VTabsSymbol
|
|
17507
17852
|
}), {
|
|
@@ -17521,6 +17866,7 @@
|
|
|
17521
17866
|
fixedFooter: Boolean,
|
|
17522
17867
|
height: [Number, String],
|
|
17523
17868
|
hover: Boolean,
|
|
17869
|
+
...makeComponentProps(),
|
|
17524
17870
|
...makeDensityProps(),
|
|
17525
17871
|
...makeTagProps(),
|
|
17526
17872
|
...makeThemeProps()
|
|
@@ -17543,7 +17889,8 @@
|
|
|
17543
17889
|
'v-table--has-top': !!slots.top,
|
|
17544
17890
|
'v-table--has-bottom': !!slots.bottom,
|
|
17545
17891
|
'v-table--hover': props.hover
|
|
17546
|
-
}, themeClasses.value, densityClasses.value]
|
|
17892
|
+
}, themeClasses.value, densityClasses.value, props.class],
|
|
17893
|
+
"style": props.style
|
|
17547
17894
|
}, {
|
|
17548
17895
|
default: () => [slots.top?.(), slots.default ? vue.createVNode("div", {
|
|
17549
17896
|
"class": "v-table__wrapper",
|
|
@@ -17708,7 +18055,8 @@
|
|
|
17708
18055
|
'v-textarea--auto-grow': props.autoGrow,
|
|
17709
18056
|
'v-textarea--no-resize': props.noResize || props.autoGrow,
|
|
17710
18057
|
'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant)
|
|
17711
|
-
}]
|
|
18058
|
+
}, props.class],
|
|
18059
|
+
"style": props.style
|
|
17712
18060
|
}, rootAttrs, inputProps, {
|
|
17713
18061
|
"focused": isFocused.value
|
|
17714
18062
|
}), {
|
|
@@ -17792,6 +18140,7 @@
|
|
|
17792
18140
|
name: 'VThemeProvider',
|
|
17793
18141
|
props: {
|
|
17794
18142
|
withBackground: Boolean,
|
|
18143
|
+
...makeComponentProps(),
|
|
17795
18144
|
...makeThemeProps(),
|
|
17796
18145
|
...makeTagProps()
|
|
17797
18146
|
},
|
|
@@ -17805,7 +18154,8 @@
|
|
|
17805
18154
|
return () => {
|
|
17806
18155
|
if (!props.withBackground) return slots.default?.();
|
|
17807
18156
|
return vue.createVNode(props.tag, {
|
|
17808
|
-
"class": ['v-theme-provider', themeClasses.value]
|
|
18157
|
+
"class": ['v-theme-provider', themeClasses.value, props.class],
|
|
18158
|
+
"style": props.style
|
|
17809
18159
|
}, {
|
|
17810
18160
|
default: () => [slots.default?.()]
|
|
17811
18161
|
});
|
|
@@ -17850,6 +18200,7 @@
|
|
|
17850
18200
|
type: String,
|
|
17851
18201
|
validator: v => ['start', 'end', 'both'].includes(v)
|
|
17852
18202
|
},
|
|
18203
|
+
...makeComponentProps(),
|
|
17853
18204
|
...makeDensityProps(),
|
|
17854
18205
|
...makeTagProps(),
|
|
17855
18206
|
...makeThemeProps()
|
|
@@ -17893,10 +18244,10 @@
|
|
|
17893
18244
|
useRender(() => vue.createVNode(props.tag, {
|
|
17894
18245
|
"class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {
|
|
17895
18246
|
'v-timeline--inset-line': !!props.lineInset
|
|
17896
|
-
}, themeClasses.value, densityClasses.value, sideClasses.value],
|
|
17897
|
-
"style": {
|
|
18247
|
+
}, themeClasses.value, densityClasses.value, sideClasses.value, props.class],
|
|
18248
|
+
"style": [{
|
|
17898
18249
|
'--v-timeline-line-thickness': convertToUnit(props.lineThickness)
|
|
17899
|
-
}
|
|
18250
|
+
}, props.style]
|
|
17900
18251
|
}, slots));
|
|
17901
18252
|
return {};
|
|
17902
18253
|
}
|
|
@@ -17911,6 +18262,7 @@
|
|
|
17911
18262
|
icon: IconValue,
|
|
17912
18263
|
iconColor: String,
|
|
17913
18264
|
lineColor: String,
|
|
18265
|
+
...makeComponentProps(),
|
|
17914
18266
|
...makeRoundedProps(),
|
|
17915
18267
|
...makeSizeProps(),
|
|
17916
18268
|
...makeElevationProps()
|
|
@@ -17940,7 +18292,8 @@
|
|
|
17940
18292
|
useRender(() => vue.createVNode("div", {
|
|
17941
18293
|
"class": ['v-timeline-divider', {
|
|
17942
18294
|
'v-timeline-divider--fill-dot': props.fillDot
|
|
17943
|
-
}]
|
|
18295
|
+
}, props.class],
|
|
18296
|
+
"style": props.style
|
|
17944
18297
|
}, [vue.createVNode("div", {
|
|
17945
18298
|
"class": ['v-timeline-divider__before', lineColorClasses.value],
|
|
17946
18299
|
"style": lineColorStyles.value
|
|
@@ -17990,11 +18343,12 @@
|
|
|
17990
18343
|
icon: IconValue,
|
|
17991
18344
|
iconColor: String,
|
|
17992
18345
|
lineInset: [Number, String],
|
|
17993
|
-
...
|
|
18346
|
+
...makeComponentProps(),
|
|
18347
|
+
...makeDimensionProps(),
|
|
17994
18348
|
...makeElevationProps(),
|
|
18349
|
+
...makeRoundedProps(),
|
|
17995
18350
|
...makeSizeProps(),
|
|
17996
|
-
...makeTagProps()
|
|
17997
|
-
...makeDimensionProps()
|
|
18351
|
+
...makeTagProps()
|
|
17998
18352
|
},
|
|
17999
18353
|
setup(props, _ref) {
|
|
18000
18354
|
let {
|
|
@@ -18014,11 +18368,11 @@
|
|
|
18014
18368
|
useRender(() => vue.createVNode("div", {
|
|
18015
18369
|
"class": ['v-timeline-item', {
|
|
18016
18370
|
'v-timeline-item--fill-dot': props.fillDot
|
|
18017
|
-
}],
|
|
18018
|
-
"style": {
|
|
18371
|
+
}, props.class],
|
|
18372
|
+
"style": [{
|
|
18019
18373
|
'--v-timeline-dot-size': convertToUnit(dotSize.value),
|
|
18020
18374
|
'--v-timeline-line-inset': props.lineInset ? `calc(var(--v-timeline-dot-size) / 2 + ${convertToUnit(props.lineInset)})` : convertToUnit(0)
|
|
18021
|
-
}
|
|
18375
|
+
}, props.style]
|
|
18022
18376
|
}, [vue.createVNode("div", {
|
|
18023
18377
|
"class": "v-timeline-item__body",
|
|
18024
18378
|
"style": dimensionStyles.value
|
|
@@ -18052,6 +18406,7 @@
|
|
|
18052
18406
|
closeOnBack: false,
|
|
18053
18407
|
location: 'end',
|
|
18054
18408
|
locationStrategy: 'connected',
|
|
18409
|
+
eager: true,
|
|
18055
18410
|
minWidth: 0,
|
|
18056
18411
|
offset: 10,
|
|
18057
18412
|
openOnClick: false,
|
|
@@ -18060,7 +18415,7 @@
|
|
|
18060
18415
|
scrim: false,
|
|
18061
18416
|
scrollStrategy: 'reposition',
|
|
18062
18417
|
transition: false
|
|
18063
|
-
}), ['absolute', 'persistent'
|
|
18418
|
+
}), ['absolute', 'persistent'])
|
|
18064
18419
|
},
|
|
18065
18420
|
emits: {
|
|
18066
18421
|
'update:modelValue': value => true
|
|
@@ -18093,7 +18448,8 @@
|
|
|
18093
18448
|
const [overlayProps] = VOverlay.filterProps(props);
|
|
18094
18449
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
|
18095
18450
|
"ref": overlay,
|
|
18096
|
-
"class": ['v-tooltip'],
|
|
18451
|
+
"class": ['v-tooltip', props.class],
|
|
18452
|
+
"style": props.style,
|
|
18097
18453
|
"id": id.value
|
|
18098
18454
|
}, overlayProps, {
|
|
18099
18455
|
"modelValue": isActive.value,
|
|
@@ -18104,7 +18460,6 @@
|
|
|
18104
18460
|
"origin": origin.value,
|
|
18105
18461
|
"persistent": true,
|
|
18106
18462
|
"role": "tooltip",
|
|
18107
|
-
"eager": true,
|
|
18108
18463
|
"activatorProps": activatorProps.value,
|
|
18109
18464
|
"_disableGlobalStack": true
|
|
18110
18465
|
}, scopeId), {
|
|
@@ -18139,69 +18494,239 @@
|
|
|
18139
18494
|
}
|
|
18140
18495
|
});
|
|
18141
18496
|
|
|
18142
|
-
const
|
|
18143
|
-
|
|
18144
|
-
|
|
18145
|
-
|
|
18497
|
+
const VVirtualScrollItem = genericComponent()({
|
|
18498
|
+
name: 'VVirtualScrollItem',
|
|
18499
|
+
props: {
|
|
18500
|
+
dynamicHeight: Boolean,
|
|
18501
|
+
...makeComponentProps()
|
|
18146
18502
|
},
|
|
18147
|
-
|
|
18148
|
-
|
|
18149
|
-
|
|
18150
|
-
|
|
18151
|
-
|
|
18152
|
-
|
|
18153
|
-
|
|
18154
|
-
|
|
18155
|
-
|
|
18156
|
-
|
|
18157
|
-
|
|
18158
|
-
|
|
18159
|
-
|
|
18160
|
-
|
|
18161
|
-
|
|
18162
|
-
|
|
18163
|
-
|
|
18164
|
-
|
|
18165
|
-
|
|
18166
|
-
|
|
18167
|
-
|
|
18168
|
-
width: convertToUnit(props.width),
|
|
18169
|
-
left: convertToUnit(props.fixedOffset || null)
|
|
18503
|
+
emits: {
|
|
18504
|
+
'update:height': height => true
|
|
18505
|
+
},
|
|
18506
|
+
setup(props, _ref) {
|
|
18507
|
+
let {
|
|
18508
|
+
emit,
|
|
18509
|
+
slots
|
|
18510
|
+
} = _ref;
|
|
18511
|
+
const {
|
|
18512
|
+
resizeRef,
|
|
18513
|
+
contentRect
|
|
18514
|
+
} = useResizeObserver();
|
|
18515
|
+
useToggleScope(() => props.dynamicHeight, () => {
|
|
18516
|
+
vue.watch(() => contentRect.value?.height, height => {
|
|
18517
|
+
if (height != null) emit('update:height', height);
|
|
18518
|
+
});
|
|
18519
|
+
});
|
|
18520
|
+
function updateHeight() {
|
|
18521
|
+
if (props.dynamicHeight && contentRect.value) {
|
|
18522
|
+
emit('update:height', contentRect.value.height);
|
|
18523
|
+
}
|
|
18170
18524
|
}
|
|
18171
|
-
|
|
18172
|
-
|
|
18173
|
-
|
|
18525
|
+
vue.onUpdated(updateHeight);
|
|
18526
|
+
useRender(() => vue.createVNode("div", {
|
|
18527
|
+
"ref": props.dynamicHeight ? resizeRef : undefined,
|
|
18528
|
+
"class": ['v-virtual-scroll__item', props.class],
|
|
18529
|
+
"style": props.style
|
|
18530
|
+
}, [slots.default?.()]));
|
|
18531
|
+
}
|
|
18174
18532
|
});
|
|
18175
18533
|
|
|
18176
|
-
// Utilities
|
|
18177
|
-
|
|
18178
18534
|
// Types
|
|
18179
18535
|
|
|
18180
|
-
const
|
|
18181
|
-
|
|
18182
|
-
|
|
18183
|
-
|
|
18184
|
-
|
|
18185
|
-
|
|
18186
|
-
|
|
18187
|
-
|
|
18188
|
-
|
|
18189
|
-
|
|
18190
|
-
|
|
18191
|
-
|
|
18192
|
-
|
|
18193
|
-
|
|
18194
|
-
|
|
18195
|
-
|
|
18196
|
-
|
|
18197
|
-
const
|
|
18198
|
-
|
|
18199
|
-
|
|
18200
|
-
|
|
18201
|
-
|
|
18202
|
-
|
|
18203
|
-
|
|
18204
|
-
};
|
|
18536
|
+
const UP$1 = -1;
|
|
18537
|
+
const DOWN$1 = 1;
|
|
18538
|
+
const VVirtualScroll = genericComponent()({
|
|
18539
|
+
name: 'VVirtualScroll',
|
|
18540
|
+
props: {
|
|
18541
|
+
items: {
|
|
18542
|
+
type: Array,
|
|
18543
|
+
default: () => []
|
|
18544
|
+
},
|
|
18545
|
+
itemHeight: [Number, String],
|
|
18546
|
+
...makeComponentProps(),
|
|
18547
|
+
...makeDimensionProps()
|
|
18548
|
+
},
|
|
18549
|
+
setup(props, _ref) {
|
|
18550
|
+
let {
|
|
18551
|
+
slots
|
|
18552
|
+
} = _ref;
|
|
18553
|
+
const first = vue.ref(0);
|
|
18554
|
+
const baseItemHeight = vue.ref(props.itemHeight);
|
|
18555
|
+
const itemHeight = vue.computed({
|
|
18556
|
+
get: () => parseInt(baseItemHeight.value ?? 0, 10),
|
|
18557
|
+
set(val) {
|
|
18558
|
+
baseItemHeight.value = val;
|
|
18559
|
+
}
|
|
18560
|
+
});
|
|
18561
|
+
const rootEl = vue.ref();
|
|
18562
|
+
const {
|
|
18563
|
+
resizeRef,
|
|
18564
|
+
contentRect
|
|
18565
|
+
} = useResizeObserver();
|
|
18566
|
+
vue.watchEffect(() => {
|
|
18567
|
+
resizeRef.value = rootEl.value;
|
|
18568
|
+
});
|
|
18569
|
+
const display = useDisplay();
|
|
18570
|
+
const sizeMap = new Map();
|
|
18571
|
+
let sizes = createRange(props.items.length).map(() => itemHeight.value);
|
|
18572
|
+
const visibleItems = vue.computed(() => {
|
|
18573
|
+
return Math.max(12, Math.ceil((contentRect.value?.height ?? display.height.value) / itemHeight.value * 1.7 + 1));
|
|
18574
|
+
});
|
|
18575
|
+
function handleItemResize(index, height) {
|
|
18576
|
+
itemHeight.value = Math.max(itemHeight.value, height);
|
|
18577
|
+
sizes[index] = height;
|
|
18578
|
+
sizeMap.set(props.items[index], height);
|
|
18579
|
+
}
|
|
18580
|
+
function calculateOffset(index) {
|
|
18581
|
+
return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0);
|
|
18582
|
+
}
|
|
18583
|
+
function calculateMidPointIndex(scrollTop) {
|
|
18584
|
+
const end = props.items.length;
|
|
18585
|
+
let middle = 0;
|
|
18586
|
+
let middleOffset = 0;
|
|
18587
|
+
while (middleOffset < scrollTop && middle < end) {
|
|
18588
|
+
middleOffset += sizes[middle++] || itemHeight.value;
|
|
18589
|
+
}
|
|
18590
|
+
return middle - 1;
|
|
18591
|
+
}
|
|
18592
|
+
let lastScrollTop = 0;
|
|
18593
|
+
function handleScroll() {
|
|
18594
|
+
if (!rootEl.value || !contentRect.value) return;
|
|
18595
|
+
const height = contentRect.value.height;
|
|
18596
|
+
const scrollTop = rootEl.value.scrollTop;
|
|
18597
|
+
const direction = scrollTop < lastScrollTop ? UP$1 : DOWN$1;
|
|
18598
|
+
const midPointIndex = calculateMidPointIndex(scrollTop + height / 2);
|
|
18599
|
+
const buffer = Math.round(visibleItems.value / 3);
|
|
18600
|
+
if (direction === UP$1 && midPointIndex <= first.value + buffer * 2 - 1) {
|
|
18601
|
+
first.value = clamp(midPointIndex - buffer, 0, props.items.length);
|
|
18602
|
+
} else if (direction === DOWN$1 && midPointIndex >= first.value + buffer * 2 - 1) {
|
|
18603
|
+
first.value = clamp(midPointIndex - buffer, 0, props.items.length - visibleItems.value);
|
|
18604
|
+
}
|
|
18605
|
+
lastScrollTop = rootEl.value.scrollTop;
|
|
18606
|
+
}
|
|
18607
|
+
function scrollToIndex(index) {
|
|
18608
|
+
if (!rootEl.value) return;
|
|
18609
|
+
const offset = calculateOffset(index);
|
|
18610
|
+
rootEl.value.scrollTop = offset;
|
|
18611
|
+
}
|
|
18612
|
+
const items = vue.computed(() => props.items.map((item, index) => ({
|
|
18613
|
+
raw: item,
|
|
18614
|
+
index
|
|
18615
|
+
})));
|
|
18616
|
+
const last = vue.computed(() => Math.min(props.items.length, first.value + visibleItems.value));
|
|
18617
|
+
const computedItems = vue.computed(() => items.value.slice(first.value, last.value));
|
|
18618
|
+
const paddingTop = vue.computed(() => calculateOffset(first.value));
|
|
18619
|
+
const paddingBottom = vue.computed(() => calculateOffset(props.items.length) - calculateOffset(last.value));
|
|
18620
|
+
const {
|
|
18621
|
+
dimensionStyles
|
|
18622
|
+
} = useDimension(props);
|
|
18623
|
+
vue.onMounted(() => {
|
|
18624
|
+
if (!itemHeight.value) {
|
|
18625
|
+
// If itemHeight prop is not set, then calculate an estimated height from the average of inital items
|
|
18626
|
+
itemHeight.value = sizes.slice(first.value, last.value).reduce((curr, height) => curr + height, 0) / visibleItems.value;
|
|
18627
|
+
}
|
|
18628
|
+
});
|
|
18629
|
+
vue.watch(() => props.items.length, () => {
|
|
18630
|
+
sizes = createRange(props.items.length).map(() => itemHeight.value);
|
|
18631
|
+
sizeMap.forEach((height, item) => {
|
|
18632
|
+
const index = props.items.indexOf(item);
|
|
18633
|
+
if (index === -1) {
|
|
18634
|
+
sizeMap.delete(item);
|
|
18635
|
+
} else {
|
|
18636
|
+
sizes[index] = height;
|
|
18637
|
+
}
|
|
18638
|
+
});
|
|
18639
|
+
});
|
|
18640
|
+
useRender(() => vue.createVNode("div", {
|
|
18641
|
+
"ref": rootEl,
|
|
18642
|
+
"class": ['v-virtual-scroll', props.class],
|
|
18643
|
+
"onScroll": handleScroll,
|
|
18644
|
+
"style": [dimensionStyles.value, props.style]
|
|
18645
|
+
}, [vue.createVNode("div", {
|
|
18646
|
+
"class": "v-virtual-scroll__container",
|
|
18647
|
+
"style": {
|
|
18648
|
+
paddingTop: convertToUnit(paddingTop.value),
|
|
18649
|
+
paddingBottom: convertToUnit(paddingBottom.value)
|
|
18650
|
+
}
|
|
18651
|
+
}, [computedItems.value.map(item => vue.createVNode(VVirtualScrollItem, {
|
|
18652
|
+
"key": item.index,
|
|
18653
|
+
"dynamicHeight": !props.itemHeight,
|
|
18654
|
+
"onUpdate:height": height => handleItemResize(item.index, height)
|
|
18655
|
+
}, {
|
|
18656
|
+
default: () => [slots.default?.({
|
|
18657
|
+
item: item.raw,
|
|
18658
|
+
index: item.index
|
|
18659
|
+
})]
|
|
18660
|
+
}))])]));
|
|
18661
|
+
return {
|
|
18662
|
+
scrollToIndex
|
|
18663
|
+
};
|
|
18664
|
+
}
|
|
18665
|
+
});
|
|
18666
|
+
|
|
18667
|
+
const VDataTableColumn = defineFunctionalComponent({
|
|
18668
|
+
align: {
|
|
18669
|
+
type: String,
|
|
18670
|
+
default: 'start'
|
|
18671
|
+
},
|
|
18672
|
+
fixed: Boolean,
|
|
18673
|
+
fixedOffset: [Number, String],
|
|
18674
|
+
height: [Number, String],
|
|
18675
|
+
lastFixed: Boolean,
|
|
18676
|
+
noPadding: Boolean,
|
|
18677
|
+
tag: String,
|
|
18678
|
+
width: [Number, String]
|
|
18679
|
+
}, (props, _ref) => {
|
|
18680
|
+
let {
|
|
18681
|
+
slots,
|
|
18682
|
+
attrs
|
|
18683
|
+
} = _ref;
|
|
18684
|
+
const Tag = props.tag ?? 'td';
|
|
18685
|
+
return vue.createVNode(Tag, vue.mergeProps({
|
|
18686
|
+
"class": ['v-data-table__td', {
|
|
18687
|
+
'v-data-table-column--fixed': props.fixed,
|
|
18688
|
+
'v-data-table-column--last-fixed': props.lastFixed,
|
|
18689
|
+
'v-data-table-column--no-padding': props.noPadding
|
|
18690
|
+
}, `v-data-table-column--align-${props.align}`],
|
|
18691
|
+
"style": {
|
|
18692
|
+
height: convertToUnit(props.height),
|
|
18693
|
+
width: convertToUnit(props.width),
|
|
18694
|
+
left: convertToUnit(props.fixedOffset || null)
|
|
18695
|
+
}
|
|
18696
|
+
}, attrs), {
|
|
18697
|
+
default: () => [slots.default?.()]
|
|
18698
|
+
});
|
|
18699
|
+
});
|
|
18700
|
+
|
|
18701
|
+
// Utilities
|
|
18702
|
+
|
|
18703
|
+
// Types
|
|
18704
|
+
|
|
18705
|
+
const makeDataTableHeaderProps = propsFactory({
|
|
18706
|
+
headers: {
|
|
18707
|
+
type: Array,
|
|
18708
|
+
default: () => []
|
|
18709
|
+
}
|
|
18710
|
+
}, 'v-data-table-header');
|
|
18711
|
+
const VDataTableHeadersSymbol = Symbol.for('vuetify:data-table-headers');
|
|
18712
|
+
function createHeaders(props, options) {
|
|
18713
|
+
const headers = vue.ref([]);
|
|
18714
|
+
const columns = vue.ref([]);
|
|
18715
|
+
vue.watch(() => props.headers, () => {
|
|
18716
|
+
const wrapped = !props.headers.length ? [] : Array.isArray(props.headers[0]) ? props.headers : [props.headers];
|
|
18717
|
+
const flat = wrapped.flatMap((row, index) => row.map(column => ({
|
|
18718
|
+
column,
|
|
18719
|
+
row: index
|
|
18720
|
+
})));
|
|
18721
|
+
const rowCount = wrapped.length;
|
|
18722
|
+
const defaultHeader = {
|
|
18723
|
+
title: '',
|
|
18724
|
+
sortable: false
|
|
18725
|
+
};
|
|
18726
|
+
const defaultActionHeader = {
|
|
18727
|
+
...defaultHeader,
|
|
18728
|
+
width: 48
|
|
18729
|
+
};
|
|
18205
18730
|
if (options?.groupBy?.value.length) {
|
|
18206
18731
|
const index = flat.findIndex(_ref => {
|
|
18207
18732
|
let {
|
|
@@ -19549,8 +20074,8 @@
|
|
|
19549
20074
|
default: 52
|
|
19550
20075
|
}
|
|
19551
20076
|
}, 'virtual');
|
|
19552
|
-
const UP
|
|
19553
|
-
const DOWN
|
|
20077
|
+
const UP = -1;
|
|
20078
|
+
const DOWN = 1;
|
|
19554
20079
|
|
|
19555
20080
|
// TODO: Replace this with composable from v-virtual-scroll
|
|
19556
20081
|
function useVirtual(props, items) {
|
|
@@ -19588,12 +20113,12 @@
|
|
|
19588
20113
|
isScrolling.value = false;
|
|
19589
20114
|
}, 100);
|
|
19590
20115
|
const scrollTop = containerRef.value.scrollTop;
|
|
19591
|
-
const direction = scrollTop < lastScrollTop ? UP
|
|
20116
|
+
const direction = scrollTop < lastScrollTop ? UP : DOWN;
|
|
19592
20117
|
const midPointIndex = calculateMidPointIndex(scrollTop);
|
|
19593
20118
|
const buffer = Math.round(visibleItems.value / 3);
|
|
19594
|
-
if (direction === UP
|
|
20119
|
+
if (direction === UP && midPointIndex <= startIndex.value) {
|
|
19595
20120
|
startIndex.value = Math.max(midPointIndex - buffer, 0);
|
|
19596
|
-
} else if (direction === DOWN
|
|
20121
|
+
} else if (direction === DOWN && midPointIndex >= startIndex.value + buffer * 2) {
|
|
19597
20122
|
startIndex.value = Math.min(Math.max(0, midPointIndex - buffer), items.value.length - visibleItems.value);
|
|
19598
20123
|
}
|
|
19599
20124
|
lastScrollTop = containerRef.value.scrollTop;
|
|
@@ -19906,6 +20431,211 @@
|
|
|
19906
20431
|
|
|
19907
20432
|
// Types
|
|
19908
20433
|
|
|
20434
|
+
const VInfiniteScrollIntersect = defineComponent({
|
|
20435
|
+
name: 'VInfiniteScrollIntersect',
|
|
20436
|
+
props: {
|
|
20437
|
+
side: {
|
|
20438
|
+
type: String,
|
|
20439
|
+
required: true
|
|
20440
|
+
},
|
|
20441
|
+
rootRef: null,
|
|
20442
|
+
rootMargin: String
|
|
20443
|
+
},
|
|
20444
|
+
emits: {
|
|
20445
|
+
intersect: side => true
|
|
20446
|
+
},
|
|
20447
|
+
setup(props, _ref) {
|
|
20448
|
+
let {
|
|
20449
|
+
emit
|
|
20450
|
+
} = _ref;
|
|
20451
|
+
const {
|
|
20452
|
+
intersectionRef,
|
|
20453
|
+
isIntersecting
|
|
20454
|
+
} = useIntersectionObserver(entries => {}, props.rootMargin ? {
|
|
20455
|
+
root: props.rootRef,
|
|
20456
|
+
rootMargin: props.rootMargin
|
|
20457
|
+
} : undefined);
|
|
20458
|
+
vue.watch(isIntersecting, async val => {
|
|
20459
|
+
if (val) emit('intersect', props.side);
|
|
20460
|
+
});
|
|
20461
|
+
useRender(() => vue.createVNode("div", {
|
|
20462
|
+
"class": "v-infinite-scroll-intersect",
|
|
20463
|
+
"ref": intersectionRef
|
|
20464
|
+
}, [vue.createTextVNode("\xA0")]));
|
|
20465
|
+
return {};
|
|
20466
|
+
}
|
|
20467
|
+
});
|
|
20468
|
+
const VInfiniteScroll = genericComponent()({
|
|
20469
|
+
name: 'VInfiniteScroll',
|
|
20470
|
+
props: {
|
|
20471
|
+
color: String,
|
|
20472
|
+
direction: {
|
|
20473
|
+
type: String,
|
|
20474
|
+
default: 'vertical',
|
|
20475
|
+
validator: v => ['vertical', 'horizontal'].includes(v)
|
|
20476
|
+
},
|
|
20477
|
+
side: {
|
|
20478
|
+
type: String,
|
|
20479
|
+
default: 'end',
|
|
20480
|
+
validator: v => ['start', 'end', 'both'].includes(v)
|
|
20481
|
+
},
|
|
20482
|
+
mode: {
|
|
20483
|
+
type: String,
|
|
20484
|
+
default: 'intersect',
|
|
20485
|
+
validator: v => ['intersect', 'manual'].includes(v)
|
|
20486
|
+
},
|
|
20487
|
+
margin: [Number, String],
|
|
20488
|
+
loadMoreText: {
|
|
20489
|
+
type: String,
|
|
20490
|
+
default: '$vuetify.infiniteScroll.loadMore'
|
|
20491
|
+
},
|
|
20492
|
+
emptyText: {
|
|
20493
|
+
type: String,
|
|
20494
|
+
default: '$vuetify.infiniteScroll.empty'
|
|
20495
|
+
},
|
|
20496
|
+
...makeDimensionProps()
|
|
20497
|
+
},
|
|
20498
|
+
emits: {
|
|
20499
|
+
load: options => true
|
|
20500
|
+
},
|
|
20501
|
+
setup(props, _ref2) {
|
|
20502
|
+
let {
|
|
20503
|
+
slots,
|
|
20504
|
+
emit
|
|
20505
|
+
} = _ref2;
|
|
20506
|
+
const rootEl = vue.ref();
|
|
20507
|
+
const startStatus = vue.ref('ok');
|
|
20508
|
+
const endStatus = vue.ref('ok');
|
|
20509
|
+
const margin = vue.computed(() => convertToUnit(props.margin));
|
|
20510
|
+
function setScrollAmount(amount) {
|
|
20511
|
+
if (!rootEl.value) return;
|
|
20512
|
+
const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';
|
|
20513
|
+
rootEl.value[property] = amount;
|
|
20514
|
+
}
|
|
20515
|
+
function getScrollAmount() {
|
|
20516
|
+
if (!rootEl.value) return 0;
|
|
20517
|
+
const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';
|
|
20518
|
+
return rootEl.value[property];
|
|
20519
|
+
}
|
|
20520
|
+
function getScrollSize() {
|
|
20521
|
+
if (!rootEl.value) return 0;
|
|
20522
|
+
const property = props.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth';
|
|
20523
|
+
return rootEl.value[property];
|
|
20524
|
+
}
|
|
20525
|
+
function getContainerSize() {
|
|
20526
|
+
if (!rootEl.value) return 0;
|
|
20527
|
+
const property = props.direction === 'vertical' ? 'clientHeight' : 'clientWidth';
|
|
20528
|
+
return rootEl.value[property];
|
|
20529
|
+
}
|
|
20530
|
+
vue.onMounted(() => {
|
|
20531
|
+
if (!rootEl.value) return;
|
|
20532
|
+
if (props.side === 'start') {
|
|
20533
|
+
setScrollAmount(getScrollSize());
|
|
20534
|
+
} else if (props.side === 'both') {
|
|
20535
|
+
setScrollAmount(getScrollSize() / 2 - getContainerSize() / 2);
|
|
20536
|
+
}
|
|
20537
|
+
});
|
|
20538
|
+
function setStatus(side, status) {
|
|
20539
|
+
if (side === 'start') {
|
|
20540
|
+
startStatus.value = status;
|
|
20541
|
+
} else if (side === 'end') {
|
|
20542
|
+
endStatus.value = status;
|
|
20543
|
+
}
|
|
20544
|
+
}
|
|
20545
|
+
function getStatus(side) {
|
|
20546
|
+
return side === 'start' ? startStatus.value : endStatus.value;
|
|
20547
|
+
}
|
|
20548
|
+
let previousScrollSize = 0;
|
|
20549
|
+
function handleIntersect(side) {
|
|
20550
|
+
const status = getStatus(side);
|
|
20551
|
+
if (!rootEl.value || status === 'loading') return;
|
|
20552
|
+
previousScrollSize = getScrollSize();
|
|
20553
|
+
setStatus(side, 'loading');
|
|
20554
|
+
function done(status) {
|
|
20555
|
+
setStatus(side, status);
|
|
20556
|
+
vue.nextTick(() => {
|
|
20557
|
+
if (status === 'ok' && side === 'start') {
|
|
20558
|
+
setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount());
|
|
20559
|
+
}
|
|
20560
|
+
});
|
|
20561
|
+
}
|
|
20562
|
+
emit('load', {
|
|
20563
|
+
side,
|
|
20564
|
+
done
|
|
20565
|
+
});
|
|
20566
|
+
}
|
|
20567
|
+
const {
|
|
20568
|
+
t
|
|
20569
|
+
} = useLocale();
|
|
20570
|
+
function renderSide(side, status) {
|
|
20571
|
+
if (props.side !== side && props.side !== 'both') return;
|
|
20572
|
+
const onClick = () => handleIntersect(side);
|
|
20573
|
+
const slotProps = {
|
|
20574
|
+
side,
|
|
20575
|
+
props: {
|
|
20576
|
+
onClick,
|
|
20577
|
+
color: props.color
|
|
20578
|
+
}
|
|
20579
|
+
};
|
|
20580
|
+
if (status === 'error') return slots.error?.(slotProps);
|
|
20581
|
+
if (status === 'empty') return slots.empty?.(slotProps) ?? vue.createVNode("div", null, [t(props.emptyText)]);
|
|
20582
|
+
if (props.mode === 'manual') {
|
|
20583
|
+
if (status === 'loading') {
|
|
20584
|
+
return slots.loading?.(slotProps) ?? vue.createVNode(VProgressCircular, {
|
|
20585
|
+
"indeterminate": true,
|
|
20586
|
+
"color": props.color
|
|
20587
|
+
}, null);
|
|
20588
|
+
}
|
|
20589
|
+
return slots['load-more']?.(slotProps) ?? vue.createVNode(VBtn, {
|
|
20590
|
+
"variant": "outlined",
|
|
20591
|
+
"color": props.color,
|
|
20592
|
+
"onClick": onClick
|
|
20593
|
+
}, {
|
|
20594
|
+
default: () => [t(props.loadMoreText)]
|
|
20595
|
+
});
|
|
20596
|
+
}
|
|
20597
|
+
return slots.loading?.(slotProps) ?? vue.createVNode(VProgressCircular, {
|
|
20598
|
+
"indeterminate": true,
|
|
20599
|
+
"color": props.color
|
|
20600
|
+
}, null);
|
|
20601
|
+
}
|
|
20602
|
+
const {
|
|
20603
|
+
dimensionStyles
|
|
20604
|
+
} = useDimension(props);
|
|
20605
|
+
useRender(() => {
|
|
20606
|
+
const hasStartIntersect = props.side === 'start' || props.side === 'both';
|
|
20607
|
+
const hasEndIntersect = props.side === 'end' || props.side === 'both';
|
|
20608
|
+
const intersectMode = props.mode === 'intersect';
|
|
20609
|
+
return vue.createVNode("div", {
|
|
20610
|
+
"ref": rootEl,
|
|
20611
|
+
"class": ['v-infinite-scroll', `v-infinite-scroll--${props.direction}`, {
|
|
20612
|
+
'v-infinite-scroll--start': hasStartIntersect,
|
|
20613
|
+
'v-infinite-scroll--end': hasEndIntersect
|
|
20614
|
+
}],
|
|
20615
|
+
"style": dimensionStyles.value
|
|
20616
|
+
}, [vue.createVNode("div", {
|
|
20617
|
+
"class": "v-infinite-scroll__side"
|
|
20618
|
+
}, [renderSide('start', startStatus.value)]), rootEl.value && hasStartIntersect && intersectMode && vue.createVNode(VInfiniteScrollIntersect, {
|
|
20619
|
+
"key": "start",
|
|
20620
|
+
"side": "start",
|
|
20621
|
+
"onIntersect": handleIntersect,
|
|
20622
|
+
"rootRef": rootEl.value,
|
|
20623
|
+
"rootMargin": margin.value
|
|
20624
|
+
}, null), slots.default?.(), rootEl.value && hasEndIntersect && intersectMode && vue.createVNode(VInfiniteScrollIntersect, {
|
|
20625
|
+
"key": "end",
|
|
20626
|
+
"side": "end",
|
|
20627
|
+
"onIntersect": handleIntersect,
|
|
20628
|
+
"rootRef": rootEl.value,
|
|
20629
|
+
"rootMargin": margin.value
|
|
20630
|
+
}, null), vue.createVNode("div", {
|
|
20631
|
+
"class": "v-infinite-scroll__side"
|
|
20632
|
+
}, [renderSide('end', endStatus.value)])]);
|
|
20633
|
+
});
|
|
20634
|
+
}
|
|
20635
|
+
});
|
|
20636
|
+
|
|
20637
|
+
// Types
|
|
20638
|
+
|
|
19909
20639
|
const rootTypes = {
|
|
19910
20640
|
actions: 'button@2',
|
|
19911
20641
|
article: 'heading, paragraph',
|
|
@@ -20036,177 +20766,6 @@
|
|
|
20036
20766
|
}
|
|
20037
20767
|
});
|
|
20038
20768
|
|
|
20039
|
-
const VVirtualScrollItem = genericComponent()({
|
|
20040
|
-
name: 'VVirtualScrollItem',
|
|
20041
|
-
props: {
|
|
20042
|
-
dynamicHeight: Boolean
|
|
20043
|
-
},
|
|
20044
|
-
emits: {
|
|
20045
|
-
'update:height': height => true
|
|
20046
|
-
},
|
|
20047
|
-
setup(props, _ref) {
|
|
20048
|
-
let {
|
|
20049
|
-
emit,
|
|
20050
|
-
slots
|
|
20051
|
-
} = _ref;
|
|
20052
|
-
const {
|
|
20053
|
-
resizeRef,
|
|
20054
|
-
contentRect
|
|
20055
|
-
} = useResizeObserver();
|
|
20056
|
-
useToggleScope(() => props.dynamicHeight, () => {
|
|
20057
|
-
vue.watch(() => contentRect.value?.height, height => {
|
|
20058
|
-
if (height != null) emit('update:height', height);
|
|
20059
|
-
});
|
|
20060
|
-
});
|
|
20061
|
-
function updateHeight() {
|
|
20062
|
-
if (props.dynamicHeight && contentRect.value) {
|
|
20063
|
-
emit('update:height', contentRect.value.height);
|
|
20064
|
-
}
|
|
20065
|
-
}
|
|
20066
|
-
vue.onUpdated(updateHeight);
|
|
20067
|
-
useRender(() => vue.createVNode("div", {
|
|
20068
|
-
"ref": props.dynamicHeight ? resizeRef : undefined,
|
|
20069
|
-
"class": "v-virtual-scroll__item"
|
|
20070
|
-
}, [slots.default?.()]));
|
|
20071
|
-
}
|
|
20072
|
-
});
|
|
20073
|
-
|
|
20074
|
-
// Types
|
|
20075
|
-
|
|
20076
|
-
const UP = -1;
|
|
20077
|
-
const DOWN = 1;
|
|
20078
|
-
const VVirtualScroll = genericComponent()({
|
|
20079
|
-
name: 'VVirtualScroll',
|
|
20080
|
-
props: {
|
|
20081
|
-
items: {
|
|
20082
|
-
type: Array,
|
|
20083
|
-
default: () => []
|
|
20084
|
-
},
|
|
20085
|
-
itemHeight: [Number, String],
|
|
20086
|
-
visibleItems: [Number, String],
|
|
20087
|
-
...makeDimensionProps()
|
|
20088
|
-
},
|
|
20089
|
-
setup(props, _ref) {
|
|
20090
|
-
let {
|
|
20091
|
-
slots
|
|
20092
|
-
} = _ref;
|
|
20093
|
-
const first = vue.ref(0);
|
|
20094
|
-
const baseItemHeight = vue.ref(props.itemHeight);
|
|
20095
|
-
const itemHeight = vue.computed({
|
|
20096
|
-
get: () => parseInt(baseItemHeight.value ?? 0, 10),
|
|
20097
|
-
set(val) {
|
|
20098
|
-
baseItemHeight.value = val;
|
|
20099
|
-
}
|
|
20100
|
-
});
|
|
20101
|
-
const rootEl = vue.ref();
|
|
20102
|
-
const {
|
|
20103
|
-
resizeRef,
|
|
20104
|
-
contentRect
|
|
20105
|
-
} = useResizeObserver();
|
|
20106
|
-
vue.watchEffect(() => {
|
|
20107
|
-
resizeRef.value = rootEl.value;
|
|
20108
|
-
});
|
|
20109
|
-
const display = useDisplay();
|
|
20110
|
-
const sizeMap = new Map();
|
|
20111
|
-
let sizes = createRange(props.items.length).map(() => itemHeight.value);
|
|
20112
|
-
const visibleItems = vue.computed(() => {
|
|
20113
|
-
return props.visibleItems ? parseInt(props.visibleItems, 10) : Math.max(12, Math.ceil((contentRect.value?.height ?? display.height.value) / itemHeight.value * 1.7 + 1));
|
|
20114
|
-
});
|
|
20115
|
-
function handleItemResize(index, height) {
|
|
20116
|
-
itemHeight.value = Math.max(itemHeight.value, height);
|
|
20117
|
-
sizes[index] = height;
|
|
20118
|
-
sizeMap.set(props.items[index], height);
|
|
20119
|
-
}
|
|
20120
|
-
function calculateOffset(index) {
|
|
20121
|
-
return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0);
|
|
20122
|
-
}
|
|
20123
|
-
function calculateMidPointIndex(scrollTop) {
|
|
20124
|
-
let start = 0;
|
|
20125
|
-
let end = props.items.length;
|
|
20126
|
-
while (start <= end) {
|
|
20127
|
-
const middle = start + Math.floor((end - start) / 2);
|
|
20128
|
-
const middleOffset = calculateOffset(middle);
|
|
20129
|
-
if (middleOffset === scrollTop) {
|
|
20130
|
-
return middle;
|
|
20131
|
-
} else if (middleOffset < scrollTop) {
|
|
20132
|
-
start = middle + 1;
|
|
20133
|
-
} else if (middleOffset > scrollTop) {
|
|
20134
|
-
end = middle - 1;
|
|
20135
|
-
}
|
|
20136
|
-
}
|
|
20137
|
-
return start;
|
|
20138
|
-
}
|
|
20139
|
-
let lastScrollTop = 0;
|
|
20140
|
-
function handleScroll() {
|
|
20141
|
-
if (!rootEl.value || !contentRect.value) return;
|
|
20142
|
-
const height = contentRect.value.height;
|
|
20143
|
-
const scrollTop = rootEl.value.scrollTop;
|
|
20144
|
-
const direction = scrollTop < lastScrollTop ? UP : DOWN;
|
|
20145
|
-
const midPointIndex = calculateMidPointIndex(scrollTop + height / 2);
|
|
20146
|
-
const buffer = Math.round(visibleItems.value / 3);
|
|
20147
|
-
if (direction === UP && midPointIndex <= first.value + buffer * 2 - 1) {
|
|
20148
|
-
first.value = clamp(midPointIndex - buffer, 0, props.items.length);
|
|
20149
|
-
} else if (direction === DOWN && midPointIndex >= first.value + buffer * 2 - 1) {
|
|
20150
|
-
first.value = clamp(midPointIndex - buffer, 0, props.items.length - visibleItems.value);
|
|
20151
|
-
}
|
|
20152
|
-
lastScrollTop = rootEl.value.scrollTop;
|
|
20153
|
-
}
|
|
20154
|
-
function scrollToIndex(index) {
|
|
20155
|
-
if (!rootEl.value) return;
|
|
20156
|
-
const offset = calculateOffset(index);
|
|
20157
|
-
rootEl.value.scrollTop = offset;
|
|
20158
|
-
}
|
|
20159
|
-
const last = vue.computed(() => Math.min(props.items.length, first.value + visibleItems.value));
|
|
20160
|
-
const computedItems = vue.computed(() => props.items.slice(first.value, last.value));
|
|
20161
|
-
const paddingTop = vue.computed(() => calculateOffset(first.value));
|
|
20162
|
-
const paddingBottom = vue.computed(() => calculateOffset(props.items.length) - calculateOffset(last.value));
|
|
20163
|
-
const {
|
|
20164
|
-
dimensionStyles
|
|
20165
|
-
} = useDimension(props);
|
|
20166
|
-
vue.onMounted(() => {
|
|
20167
|
-
if (!itemHeight.value) {
|
|
20168
|
-
// If itemHeight prop is not set, then calculate an estimated height from the average of inital items
|
|
20169
|
-
itemHeight.value = sizes.slice(first.value, last.value).reduce((curr, height) => curr + height, 0) / visibleItems.value;
|
|
20170
|
-
}
|
|
20171
|
-
});
|
|
20172
|
-
vue.watch(() => props.items.length, () => {
|
|
20173
|
-
sizes = createRange(props.items.length).map(() => itemHeight.value);
|
|
20174
|
-
sizeMap.forEach((height, item) => {
|
|
20175
|
-
const index = props.items.indexOf(item);
|
|
20176
|
-
if (index === -1) {
|
|
20177
|
-
sizeMap.delete(item);
|
|
20178
|
-
} else {
|
|
20179
|
-
sizes[index] = height;
|
|
20180
|
-
}
|
|
20181
|
-
});
|
|
20182
|
-
});
|
|
20183
|
-
useRender(() => vue.createVNode("div", {
|
|
20184
|
-
"ref": rootEl,
|
|
20185
|
-
"class": "v-virtual-scroll",
|
|
20186
|
-
"onScroll": handleScroll,
|
|
20187
|
-
"style": dimensionStyles.value
|
|
20188
|
-
}, [vue.createVNode("div", {
|
|
20189
|
-
"class": "v-virtual-scroll__container",
|
|
20190
|
-
"style": {
|
|
20191
|
-
paddingTop: convertToUnit(paddingTop.value),
|
|
20192
|
-
paddingBottom: convertToUnit(paddingBottom.value)
|
|
20193
|
-
}
|
|
20194
|
-
}, [computedItems.value.map((item, index) => vue.createVNode(VVirtualScrollItem, {
|
|
20195
|
-
"key": index,
|
|
20196
|
-
"dynamicHeight": !props.itemHeight,
|
|
20197
|
-
"onUpdate:height": height => handleItemResize(index + first.value, height)
|
|
20198
|
-
}, {
|
|
20199
|
-
default: () => [slots.default?.({
|
|
20200
|
-
item,
|
|
20201
|
-
index: index + first.value
|
|
20202
|
-
})]
|
|
20203
|
-
}))])]));
|
|
20204
|
-
return {
|
|
20205
|
-
scrollToIndex
|
|
20206
|
-
};
|
|
20207
|
-
}
|
|
20208
|
-
});
|
|
20209
|
-
|
|
20210
20769
|
var components = /*#__PURE__*/Object.freeze({
|
|
20211
20770
|
__proto__: null,
|
|
20212
20771
|
VAlert: VAlert,
|
|
@@ -20276,6 +20835,7 @@
|
|
|
20276
20835
|
VHover: VHover,
|
|
20277
20836
|
VIcon: VIcon,
|
|
20278
20837
|
VImg: VImg,
|
|
20838
|
+
VInfiniteScroll: VInfiniteScroll,
|
|
20279
20839
|
VInput: VInput,
|
|
20280
20840
|
VItem: VItem,
|
|
20281
20841
|
VItemGroup: VItemGroup,
|
|
@@ -20478,6 +21038,418 @@
|
|
|
20478
21038
|
Touch: Touch
|
|
20479
21039
|
});
|
|
20480
21040
|
|
|
21041
|
+
// Utilities
|
|
21042
|
+
|
|
21043
|
+
// Types
|
|
21044
|
+
|
|
21045
|
+
function getWeekArray(date) {
|
|
21046
|
+
let currentWeek = [];
|
|
21047
|
+
const weeks = [];
|
|
21048
|
+
const firstDayOfMonth = startOfMonth(date);
|
|
21049
|
+
const lastDayOfMonth = endOfMonth(date);
|
|
21050
|
+
for (let i = 0; i < firstDayOfMonth.getDay(); i++) {
|
|
21051
|
+
currentWeek.push(null);
|
|
21052
|
+
}
|
|
21053
|
+
for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {
|
|
21054
|
+
const day = new Date(date.getFullYear(), date.getMonth(), i);
|
|
21055
|
+
|
|
21056
|
+
// Add the day to the current week
|
|
21057
|
+
currentWeek.push(day);
|
|
21058
|
+
|
|
21059
|
+
// If the current week has 7 days, add it to the weeks array and start a new week
|
|
21060
|
+
if (currentWeek.length === 7) {
|
|
21061
|
+
weeks.push(currentWeek);
|
|
21062
|
+
currentWeek = [];
|
|
21063
|
+
}
|
|
21064
|
+
}
|
|
21065
|
+
for (let i = currentWeek.length; i < 7; i++) {
|
|
21066
|
+
currentWeek.push(null);
|
|
21067
|
+
}
|
|
21068
|
+
weeks.push(currentWeek);
|
|
21069
|
+
return weeks;
|
|
21070
|
+
}
|
|
21071
|
+
function startOfMonth(date) {
|
|
21072
|
+
return new Date(date.getFullYear(), date.getMonth(), 1);
|
|
21073
|
+
}
|
|
21074
|
+
function endOfMonth(date) {
|
|
21075
|
+
return new Date(date.getFullYear(), date.getMonth() + 1, 0);
|
|
21076
|
+
}
|
|
21077
|
+
function date(value) {
|
|
21078
|
+
if (value == null) return null;
|
|
21079
|
+
if (value instanceof Date) return value;
|
|
21080
|
+
if (typeof value === 'string') {
|
|
21081
|
+
const parsed = Date.parse(value);
|
|
21082
|
+
if (!isNaN(parsed)) return new Date(parsed);
|
|
21083
|
+
}
|
|
21084
|
+
return null;
|
|
21085
|
+
}
|
|
21086
|
+
const firstDay = {
|
|
21087
|
+
'001': 1,
|
|
21088
|
+
AD: 1,
|
|
21089
|
+
AE: 6,
|
|
21090
|
+
AF: 6,
|
|
21091
|
+
AG: 0,
|
|
21092
|
+
AI: 1,
|
|
21093
|
+
AL: 1,
|
|
21094
|
+
AM: 1,
|
|
21095
|
+
AN: 1,
|
|
21096
|
+
AR: 1,
|
|
21097
|
+
AS: 0,
|
|
21098
|
+
AT: 1,
|
|
21099
|
+
AU: 0,
|
|
21100
|
+
AX: 1,
|
|
21101
|
+
AZ: 1,
|
|
21102
|
+
BA: 1,
|
|
21103
|
+
BD: 0,
|
|
21104
|
+
BE: 1,
|
|
21105
|
+
BG: 1,
|
|
21106
|
+
BH: 6,
|
|
21107
|
+
BM: 1,
|
|
21108
|
+
BN: 1,
|
|
21109
|
+
BR: 0,
|
|
21110
|
+
BS: 0,
|
|
21111
|
+
BT: 0,
|
|
21112
|
+
BW: 0,
|
|
21113
|
+
BY: 1,
|
|
21114
|
+
BZ: 0,
|
|
21115
|
+
CA: 0,
|
|
21116
|
+
CH: 1,
|
|
21117
|
+
CL: 1,
|
|
21118
|
+
CM: 1,
|
|
21119
|
+
CN: 0,
|
|
21120
|
+
CO: 0,
|
|
21121
|
+
CR: 1,
|
|
21122
|
+
CY: 1,
|
|
21123
|
+
CZ: 1,
|
|
21124
|
+
DE: 1,
|
|
21125
|
+
DJ: 6,
|
|
21126
|
+
DK: 1,
|
|
21127
|
+
DM: 0,
|
|
21128
|
+
DO: 0,
|
|
21129
|
+
DZ: 6,
|
|
21130
|
+
EC: 1,
|
|
21131
|
+
EE: 1,
|
|
21132
|
+
EG: 6,
|
|
21133
|
+
ES: 1,
|
|
21134
|
+
ET: 0,
|
|
21135
|
+
FI: 1,
|
|
21136
|
+
FJ: 1,
|
|
21137
|
+
FO: 1,
|
|
21138
|
+
FR: 1,
|
|
21139
|
+
GB: 1,
|
|
21140
|
+
'GB-alt-variant': 0,
|
|
21141
|
+
GE: 1,
|
|
21142
|
+
GF: 1,
|
|
21143
|
+
GP: 1,
|
|
21144
|
+
GR: 1,
|
|
21145
|
+
GT: 0,
|
|
21146
|
+
GU: 0,
|
|
21147
|
+
HK: 0,
|
|
21148
|
+
HN: 0,
|
|
21149
|
+
HR: 1,
|
|
21150
|
+
HU: 1,
|
|
21151
|
+
ID: 0,
|
|
21152
|
+
IE: 1,
|
|
21153
|
+
IL: 0,
|
|
21154
|
+
IN: 0,
|
|
21155
|
+
IQ: 6,
|
|
21156
|
+
IR: 6,
|
|
21157
|
+
IS: 1,
|
|
21158
|
+
IT: 1,
|
|
21159
|
+
JM: 0,
|
|
21160
|
+
JO: 6,
|
|
21161
|
+
JP: 0,
|
|
21162
|
+
KE: 0,
|
|
21163
|
+
KG: 1,
|
|
21164
|
+
KH: 0,
|
|
21165
|
+
KR: 0,
|
|
21166
|
+
KW: 6,
|
|
21167
|
+
KZ: 1,
|
|
21168
|
+
LA: 0,
|
|
21169
|
+
LB: 1,
|
|
21170
|
+
LI: 1,
|
|
21171
|
+
LK: 1,
|
|
21172
|
+
LT: 1,
|
|
21173
|
+
LU: 1,
|
|
21174
|
+
LV: 1,
|
|
21175
|
+
LY: 6,
|
|
21176
|
+
MC: 1,
|
|
21177
|
+
MD: 1,
|
|
21178
|
+
ME: 1,
|
|
21179
|
+
MH: 0,
|
|
21180
|
+
MK: 1,
|
|
21181
|
+
MM: 0,
|
|
21182
|
+
MN: 1,
|
|
21183
|
+
MO: 0,
|
|
21184
|
+
MQ: 1,
|
|
21185
|
+
MT: 0,
|
|
21186
|
+
MV: 5,
|
|
21187
|
+
MX: 0,
|
|
21188
|
+
MY: 1,
|
|
21189
|
+
MZ: 0,
|
|
21190
|
+
NI: 0,
|
|
21191
|
+
NL: 1,
|
|
21192
|
+
NO: 1,
|
|
21193
|
+
NP: 0,
|
|
21194
|
+
NZ: 1,
|
|
21195
|
+
OM: 6,
|
|
21196
|
+
PA: 0,
|
|
21197
|
+
PE: 0,
|
|
21198
|
+
PH: 0,
|
|
21199
|
+
PK: 0,
|
|
21200
|
+
PL: 1,
|
|
21201
|
+
PR: 0,
|
|
21202
|
+
PT: 0,
|
|
21203
|
+
PY: 0,
|
|
21204
|
+
QA: 6,
|
|
21205
|
+
RE: 1,
|
|
21206
|
+
RO: 1,
|
|
21207
|
+
RS: 1,
|
|
21208
|
+
RU: 1,
|
|
21209
|
+
SA: 0,
|
|
21210
|
+
SD: 6,
|
|
21211
|
+
SE: 1,
|
|
21212
|
+
SG: 0,
|
|
21213
|
+
SI: 1,
|
|
21214
|
+
SK: 1,
|
|
21215
|
+
SM: 1,
|
|
21216
|
+
SV: 0,
|
|
21217
|
+
SY: 6,
|
|
21218
|
+
TH: 0,
|
|
21219
|
+
TJ: 1,
|
|
21220
|
+
TM: 1,
|
|
21221
|
+
TR: 1,
|
|
21222
|
+
TT: 0,
|
|
21223
|
+
TW: 0,
|
|
21224
|
+
UA: 1,
|
|
21225
|
+
UM: 0,
|
|
21226
|
+
US: 0,
|
|
21227
|
+
UY: 1,
|
|
21228
|
+
UZ: 1,
|
|
21229
|
+
VA: 1,
|
|
21230
|
+
VE: 0,
|
|
21231
|
+
VI: 0,
|
|
21232
|
+
VN: 1,
|
|
21233
|
+
WS: 0,
|
|
21234
|
+
XK: 1,
|
|
21235
|
+
YE: 0,
|
|
21236
|
+
ZA: 0,
|
|
21237
|
+
ZW: 0
|
|
21238
|
+
};
|
|
21239
|
+
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
|
21240
|
+
function getWeekdays(locale) {
|
|
21241
|
+
const daysFromSunday = firstDay[locale.slice(-2).toUpperCase()];
|
|
21242
|
+
return createRange(7).map(i => {
|
|
21243
|
+
const weekday = new Date(sundayJanuarySecond2000);
|
|
21244
|
+
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
|
21245
|
+
return new Intl.DateTimeFormat(locale, {
|
|
21246
|
+
weekday: 'long'
|
|
21247
|
+
}).format(weekday);
|
|
21248
|
+
});
|
|
21249
|
+
}
|
|
21250
|
+
function format(value, formatString, locale) {
|
|
21251
|
+
const date = new Date(value);
|
|
21252
|
+
let options = {};
|
|
21253
|
+
switch (formatString) {
|
|
21254
|
+
case 'fullDateWithWeekday':
|
|
21255
|
+
options = {
|
|
21256
|
+
weekday: 'long',
|
|
21257
|
+
day: 'numeric',
|
|
21258
|
+
month: 'long',
|
|
21259
|
+
year: 'numeric'
|
|
21260
|
+
};
|
|
21261
|
+
break;
|
|
21262
|
+
case 'normalDateWithWeekday':
|
|
21263
|
+
options = {
|
|
21264
|
+
weekday: 'short',
|
|
21265
|
+
day: 'numeric',
|
|
21266
|
+
month: 'short',
|
|
21267
|
+
year: 'numeric'
|
|
21268
|
+
};
|
|
21269
|
+
break;
|
|
21270
|
+
case 'keyboardDate':
|
|
21271
|
+
options = {};
|
|
21272
|
+
break;
|
|
21273
|
+
case 'monthAndDate':
|
|
21274
|
+
options = {
|
|
21275
|
+
month: 'long',
|
|
21276
|
+
day: 'numeric'
|
|
21277
|
+
};
|
|
21278
|
+
break;
|
|
21279
|
+
case 'monthAndYear':
|
|
21280
|
+
options = {
|
|
21281
|
+
month: 'long',
|
|
21282
|
+
year: 'numeric'
|
|
21283
|
+
};
|
|
21284
|
+
break;
|
|
21285
|
+
default:
|
|
21286
|
+
options = {
|
|
21287
|
+
timeZone: 'UTC',
|
|
21288
|
+
timeZoneName: 'short'
|
|
21289
|
+
};
|
|
21290
|
+
}
|
|
21291
|
+
return new Intl.DateTimeFormat(locale, options).format(date);
|
|
21292
|
+
}
|
|
21293
|
+
function addDays(date, amount) {
|
|
21294
|
+
const d = new Date(date);
|
|
21295
|
+
d.setDate(d.getDate() + amount);
|
|
21296
|
+
return d;
|
|
21297
|
+
}
|
|
21298
|
+
function addMonths(date, amount) {
|
|
21299
|
+
const d = new Date(date);
|
|
21300
|
+
d.setMonth(d.getMonth() + amount);
|
|
21301
|
+
return d;
|
|
21302
|
+
}
|
|
21303
|
+
function getYear(date) {
|
|
21304
|
+
return date.getFullYear();
|
|
21305
|
+
}
|
|
21306
|
+
function getMonth(date) {
|
|
21307
|
+
return date.getMonth();
|
|
21308
|
+
}
|
|
21309
|
+
function startOfYear(date) {
|
|
21310
|
+
return new Date(date.getFullYear(), 0, 1);
|
|
21311
|
+
}
|
|
21312
|
+
function endOfYear(date) {
|
|
21313
|
+
return new Date(date.getFullYear(), 11, 31);
|
|
21314
|
+
}
|
|
21315
|
+
function getMondayOfFirstWeekOfYear(year) {
|
|
21316
|
+
return new Date(year, 0, 1);
|
|
21317
|
+
}
|
|
21318
|
+
|
|
21319
|
+
// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
|
|
21320
|
+
function getWeek(date) {
|
|
21321
|
+
let year = date.getFullYear();
|
|
21322
|
+
let d1w1 = getMondayOfFirstWeekOfYear(year);
|
|
21323
|
+
if (date < d1w1) {
|
|
21324
|
+
year = year - 1;
|
|
21325
|
+
d1w1 = getMondayOfFirstWeekOfYear(year);
|
|
21326
|
+
} else {
|
|
21327
|
+
const tv = getMondayOfFirstWeekOfYear(year + 1);
|
|
21328
|
+
if (date >= tv) {
|
|
21329
|
+
year = year + 1;
|
|
21330
|
+
d1w1 = tv;
|
|
21331
|
+
}
|
|
21332
|
+
}
|
|
21333
|
+
const diffTime = Math.abs(date.getTime() - d1w1.getTime());
|
|
21334
|
+
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
|
21335
|
+
return Math.floor(diffDays / 7) + 1;
|
|
21336
|
+
}
|
|
21337
|
+
function isWithinRange(date, range) {
|
|
21338
|
+
return isAfter(date, range[0]) && isBefore(date, range[1]);
|
|
21339
|
+
}
|
|
21340
|
+
function isValid(date) {
|
|
21341
|
+
const d = new Date(date);
|
|
21342
|
+
return d instanceof Date && !isNaN(d.getTime());
|
|
21343
|
+
}
|
|
21344
|
+
function isAfter(date, comparing) {
|
|
21345
|
+
return date.getTime() > comparing.getTime();
|
|
21346
|
+
}
|
|
21347
|
+
function isBefore(date, comparing) {
|
|
21348
|
+
return date.getTime() < comparing.getTime();
|
|
21349
|
+
}
|
|
21350
|
+
function isEqual(date, comparing) {
|
|
21351
|
+
return date.getTime() === comparing.getTime();
|
|
21352
|
+
}
|
|
21353
|
+
function isSameDay(date, comparing) {
|
|
21354
|
+
return date.getDate() === comparing.getDate() && date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
|
21355
|
+
}
|
|
21356
|
+
function isSameMonth(date, comparing) {
|
|
21357
|
+
return date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
|
21358
|
+
}
|
|
21359
|
+
function getDiff(date, comparing, unit) {
|
|
21360
|
+
const d = new Date(date);
|
|
21361
|
+
const c = new Date(comparing);
|
|
21362
|
+
if (unit === 'month') {
|
|
21363
|
+
return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12;
|
|
21364
|
+
}
|
|
21365
|
+
return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24));
|
|
21366
|
+
}
|
|
21367
|
+
function setYear(date, year) {
|
|
21368
|
+
const d = new Date(date);
|
|
21369
|
+
d.setFullYear(year);
|
|
21370
|
+
return d;
|
|
21371
|
+
}
|
|
21372
|
+
class VuetifyDateAdapter {
|
|
21373
|
+
constructor() {
|
|
21374
|
+
let locale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'en';
|
|
21375
|
+
this.locale = locale;
|
|
21376
|
+
}
|
|
21377
|
+
date(value) {
|
|
21378
|
+
return date(value);
|
|
21379
|
+
}
|
|
21380
|
+
addDays(date, amount) {
|
|
21381
|
+
return addDays(date, amount);
|
|
21382
|
+
}
|
|
21383
|
+
addMonths(date, amount) {
|
|
21384
|
+
return addMonths(date, amount);
|
|
21385
|
+
}
|
|
21386
|
+
getWeekArray(date) {
|
|
21387
|
+
return getWeekArray(date);
|
|
21388
|
+
}
|
|
21389
|
+
startOfMonth(date) {
|
|
21390
|
+
return startOfMonth(date);
|
|
21391
|
+
}
|
|
21392
|
+
endOfMonth(date) {
|
|
21393
|
+
return endOfMonth(date);
|
|
21394
|
+
}
|
|
21395
|
+
format(date, formatString) {
|
|
21396
|
+
return format(date, formatString, this.locale);
|
|
21397
|
+
}
|
|
21398
|
+
isEqual(date, comparing) {
|
|
21399
|
+
return isEqual(date, comparing);
|
|
21400
|
+
}
|
|
21401
|
+
isValid(date) {
|
|
21402
|
+
return isValid(date);
|
|
21403
|
+
}
|
|
21404
|
+
isWithinRange(date, range) {
|
|
21405
|
+
return isWithinRange(date, range);
|
|
21406
|
+
}
|
|
21407
|
+
isAfter(date, comparing) {
|
|
21408
|
+
return isAfter(date, comparing);
|
|
21409
|
+
}
|
|
21410
|
+
isSameDay(date, comparing) {
|
|
21411
|
+
return isSameDay(date, comparing);
|
|
21412
|
+
}
|
|
21413
|
+
isSameMonth(date, comparing) {
|
|
21414
|
+
return isSameMonth(date, comparing);
|
|
21415
|
+
}
|
|
21416
|
+
setYear(date, year) {
|
|
21417
|
+
return setYear(date, year);
|
|
21418
|
+
}
|
|
21419
|
+
getDiff(date, comparing, unit) {
|
|
21420
|
+
return getDiff(date, comparing, unit);
|
|
21421
|
+
}
|
|
21422
|
+
getWeek(date) {
|
|
21423
|
+
return getWeek(date);
|
|
21424
|
+
}
|
|
21425
|
+
getWeekdays() {
|
|
21426
|
+
return getWeekdays(this.locale);
|
|
21427
|
+
}
|
|
21428
|
+
getYear(date) {
|
|
21429
|
+
return getYear(date);
|
|
21430
|
+
}
|
|
21431
|
+
getMonth(date) {
|
|
21432
|
+
return getMonth(date);
|
|
21433
|
+
}
|
|
21434
|
+
startOfYear(date) {
|
|
21435
|
+
return startOfYear(date);
|
|
21436
|
+
}
|
|
21437
|
+
endOfYear(date) {
|
|
21438
|
+
return endOfYear(date);
|
|
21439
|
+
}
|
|
21440
|
+
}
|
|
21441
|
+
|
|
21442
|
+
// Composables
|
|
21443
|
+
|
|
21444
|
+
// Types
|
|
21445
|
+
|
|
21446
|
+
const DateAdapterSymbol = Symbol.for('vuetify:date-adapter');
|
|
21447
|
+
function createDate(options) {
|
|
21448
|
+
return options ?? {
|
|
21449
|
+
adapter: VuetifyDateAdapter
|
|
21450
|
+
};
|
|
21451
|
+
}
|
|
21452
|
+
|
|
20481
21453
|
// Composables
|
|
20482
21454
|
function createVuetify$1() {
|
|
20483
21455
|
let vuetify = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -20496,6 +21468,7 @@
|
|
|
20496
21468
|
const theme = createTheme(options.theme);
|
|
20497
21469
|
const icons = createIcons(options.icons);
|
|
20498
21470
|
const locale = createLocale(options.locale);
|
|
21471
|
+
const date = createDate(options.date);
|
|
20499
21472
|
const install = app => {
|
|
20500
21473
|
for (const key in directives) {
|
|
20501
21474
|
app.directive(key, directives[key]);
|
|
@@ -20516,6 +21489,7 @@
|
|
|
20516
21489
|
app.provide(ThemeSymbol, theme);
|
|
20517
21490
|
app.provide(IconSymbol, icons);
|
|
20518
21491
|
app.provide(LocaleSymbol, locale);
|
|
21492
|
+
app.provide(DateAdapterSymbol, date);
|
|
20519
21493
|
if (IN_BROWSER && options.ssr) {
|
|
20520
21494
|
if (app.$nuxt) {
|
|
20521
21495
|
app.$nuxt.hook('app:suspense:resolve', () => {
|
|
@@ -20543,7 +21517,8 @@
|
|
|
20543
21517
|
display: inject.call(this, DisplaySymbol),
|
|
20544
21518
|
theme: inject.call(this, ThemeSymbol),
|
|
20545
21519
|
icons: inject.call(this, IconSymbol),
|
|
20546
|
-
locale: inject.call(this, LocaleSymbol)
|
|
21520
|
+
locale: inject.call(this, LocaleSymbol),
|
|
21521
|
+
date: inject.call(this, DateAdapterSymbol)
|
|
20547
21522
|
});
|
|
20548
21523
|
}
|
|
20549
21524
|
}
|
|
@@ -20556,10 +21531,11 @@
|
|
|
20556
21531
|
display,
|
|
20557
21532
|
theme,
|
|
20558
21533
|
icons,
|
|
20559
|
-
locale
|
|
21534
|
+
locale,
|
|
21535
|
+
date
|
|
20560
21536
|
};
|
|
20561
21537
|
}
|
|
20562
|
-
const version$1 = "3.
|
|
21538
|
+
const version$1 = "3.2.0";
|
|
20563
21539
|
createVuetify$1.version = version$1;
|
|
20564
21540
|
|
|
20565
21541
|
// Vue's inject() can only be used in setup
|
|
@@ -20571,7 +21547,7 @@
|
|
|
20571
21547
|
}
|
|
20572
21548
|
}
|
|
20573
21549
|
|
|
20574
|
-
const version = "3.
|
|
21550
|
+
const version = "3.2.0";
|
|
20575
21551
|
|
|
20576
21552
|
const createVuetify = function () {
|
|
20577
21553
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -20585,6 +21561,7 @@
|
|
|
20585
21561
|
exports.components = components;
|
|
20586
21562
|
exports.createVuetify = createVuetify;
|
|
20587
21563
|
exports.directives = directives;
|
|
21564
|
+
exports.useDefaults = useDefaults;
|
|
20588
21565
|
exports.useDisplay = useDisplay;
|
|
20589
21566
|
exports.useLayout = useLayout;
|
|
20590
21567
|
exports.useLocale = useLocale;
|