vuetify 3.1.16 → 3.2.1
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 +16 -12
- package/dist/json/tags.json +45 -2
- package/dist/json/web-types.json +851 -329
- package/dist/vuetify-labs.css +663 -440
- package/dist/vuetify-labs.d.ts +5905 -7618
- package/dist/vuetify-labs.esm.js +1635 -649
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +1634 -647
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +265 -58
- package/dist/vuetify.d.ts +6509 -7498
- package/dist/vuetify.esm.js +1375 -423
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +1374 -421
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +800 -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 +63 -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 +45 -5
- 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.1
|
|
2
|
+
* Vuetify v3.2.1
|
|
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,68 @@
|
|
|
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 internalUseDefaults() {
|
|
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
|
+
};
|
|
1062
|
+
}
|
|
1063
|
+
function useDefaults() {
|
|
1064
|
+
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1065
|
+
let name = arguments.length > 1 ? arguments[1] : undefined;
|
|
1066
|
+
const {
|
|
1067
|
+
props: _props,
|
|
1068
|
+
provideSubDefaults
|
|
1069
|
+
} = internalUseDefaults(props, name);
|
|
1070
|
+
provideSubDefaults();
|
|
1071
|
+
return _props;
|
|
1040
1072
|
}
|
|
1041
1073
|
|
|
1042
1074
|
// Utils
|
|
1043
1075
|
|
|
1044
1076
|
// Types
|
|
1045
1077
|
|
|
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
1078
|
// Implementation
|
|
1053
1079
|
function defineComponent(options) {
|
|
1054
1080
|
options._setup = options._setup ?? options.setup;
|
|
@@ -1060,43 +1086,20 @@
|
|
|
1060
1086
|
options.props = propsFactory(options.props ?? {}, toKebabCase(options.name))();
|
|
1061
1087
|
const propKeys = Object.keys(options.props);
|
|
1062
1088
|
options.filterProps = function filterProps(props) {
|
|
1063
|
-
return pick(props, propKeys);
|
|
1089
|
+
return pick(props, propKeys, ['class', 'style']);
|
|
1064
1090
|
};
|
|
1065
1091
|
options.props._as = String;
|
|
1066
1092
|
options.setup = function setup(props, ctx) {
|
|
1067
|
-
const defaults =
|
|
1093
|
+
const defaults = injectDefaults();
|
|
1068
1094
|
|
|
1069
1095
|
// Skip props proxy if defaults are not provided
|
|
1070
1096
|
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
|
-
});
|
|
1097
|
+
const {
|
|
1098
|
+
props: _props,
|
|
1099
|
+
provideSubDefaults
|
|
1100
|
+
} = internalUseDefaults(props, props._as ?? options.name, defaults);
|
|
1092
1101
|
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
|
-
});
|
|
1102
|
+
provideSubDefaults();
|
|
1100
1103
|
return setupBindings;
|
|
1101
1104
|
};
|
|
1102
1105
|
}
|
|
@@ -1121,15 +1124,19 @@
|
|
|
1121
1124
|
tag: {
|
|
1122
1125
|
type: String,
|
|
1123
1126
|
default: tag
|
|
1124
|
-
}
|
|
1127
|
+
},
|
|
1128
|
+
...makeComponentProps()
|
|
1125
1129
|
},
|
|
1126
1130
|
setup(props, _ref) {
|
|
1127
1131
|
let {
|
|
1128
1132
|
slots
|
|
1129
1133
|
} = _ref;
|
|
1130
|
-
return () =>
|
|
1131
|
-
|
|
1132
|
-
|
|
1134
|
+
return () => {
|
|
1135
|
+
return vue.h(props.tag, {
|
|
1136
|
+
class: [klass, props.class],
|
|
1137
|
+
style: props.style
|
|
1138
|
+
}, slots.default?.());
|
|
1139
|
+
};
|
|
1133
1140
|
}
|
|
1134
1141
|
});
|
|
1135
1142
|
}
|
|
@@ -1162,6 +1169,34 @@
|
|
|
1162
1169
|
const deceleratedEasing = 'cubic-bezier(0.0, 0, 0.2, 1)'; // Entering
|
|
1163
1170
|
const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)'; // Leaving
|
|
1164
1171
|
|
|
1172
|
+
// Utilities
|
|
1173
|
+
function getCurrentInstance(name, message) {
|
|
1174
|
+
const vm = vue.getCurrentInstance();
|
|
1175
|
+
if (!vm) {
|
|
1176
|
+
throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);
|
|
1177
|
+
}
|
|
1178
|
+
return vm;
|
|
1179
|
+
}
|
|
1180
|
+
function getCurrentInstanceName() {
|
|
1181
|
+
let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';
|
|
1182
|
+
const vm = getCurrentInstance(name).type;
|
|
1183
|
+
return toKebabCase(vm?.aliasName || vm?.name);
|
|
1184
|
+
}
|
|
1185
|
+
let _uid = 0;
|
|
1186
|
+
let _map = new WeakMap();
|
|
1187
|
+
function getUid() {
|
|
1188
|
+
const vm = getCurrentInstance('getUid');
|
|
1189
|
+
if (_map.has(vm)) return _map.get(vm);else {
|
|
1190
|
+
const uid = _uid++;
|
|
1191
|
+
_map.set(vm, uid);
|
|
1192
|
+
return uid;
|
|
1193
|
+
}
|
|
1194
|
+
}
|
|
1195
|
+
getUid.reset = () => {
|
|
1196
|
+
_uid = 0;
|
|
1197
|
+
_map = new WeakMap();
|
|
1198
|
+
};
|
|
1199
|
+
|
|
1165
1200
|
function getScrollParent(el) {
|
|
1166
1201
|
while (el) {
|
|
1167
1202
|
if (hasScrollbar(el)) return el;
|
|
@@ -1185,6 +1220,16 @@
|
|
|
1185
1220
|
return style.overflowY === 'scroll' || style.overflowY === 'auto' && el.scrollHeight > el.clientHeight;
|
|
1186
1221
|
}
|
|
1187
1222
|
|
|
1223
|
+
function injectSelf(key) {
|
|
1224
|
+
const {
|
|
1225
|
+
provides
|
|
1226
|
+
} = getCurrentInstance('injectSelf');
|
|
1227
|
+
if (provides && key in provides) {
|
|
1228
|
+
// TS doesn't allow symbol as index type
|
|
1229
|
+
return provides[key];
|
|
1230
|
+
}
|
|
1231
|
+
}
|
|
1232
|
+
|
|
1188
1233
|
function isFixedPosition(el) {
|
|
1189
1234
|
while (el) {
|
|
1190
1235
|
if (window.getComputedStyle(el).position === 'fixed') {
|
|
@@ -1965,7 +2010,11 @@
|
|
|
1965
2010
|
item: 'Rating {0} of {1}'
|
|
1966
2011
|
}
|
|
1967
2012
|
},
|
|
1968
|
-
loading: 'Loading...'
|
|
2013
|
+
loading: 'Loading...',
|
|
2014
|
+
infiniteScroll: {
|
|
2015
|
+
loadMore: 'Load more',
|
|
2016
|
+
empty: 'No more'
|
|
2017
|
+
}
|
|
1969
2018
|
};
|
|
1970
2019
|
|
|
1971
2020
|
const LANG_PREFIX = '$vuetify.';
|
|
@@ -2163,6 +2212,7 @@
|
|
|
2163
2212
|
const VApp = genericComponent()({
|
|
2164
2213
|
name: 'VApp',
|
|
2165
2214
|
props: {
|
|
2215
|
+
...makeComponentProps(),
|
|
2166
2216
|
...makeLayoutProps({
|
|
2167
2217
|
fullHeight: true
|
|
2168
2218
|
}),
|
|
@@ -2185,8 +2235,8 @@
|
|
|
2185
2235
|
} = useRtl();
|
|
2186
2236
|
useRender(() => vue.createVNode("div", {
|
|
2187
2237
|
"ref": layoutRef,
|
|
2188
|
-
"class": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value],
|
|
2189
|
-
"style": layoutStyles.value
|
|
2238
|
+
"class": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value, props.class],
|
|
2239
|
+
"style": [layoutStyles.value, props.style]
|
|
2190
2240
|
}, [vue.createVNode("div", {
|
|
2191
2241
|
"class": "v-application__wrap"
|
|
2192
2242
|
}, [slots.default?.()])]));
|
|
@@ -2611,6 +2661,7 @@
|
|
|
2611
2661
|
props: {
|
|
2612
2662
|
aspectRatio: [String, Number],
|
|
2613
2663
|
contentClass: String,
|
|
2664
|
+
...makeComponentProps(),
|
|
2614
2665
|
...makeDimensionProps()
|
|
2615
2666
|
},
|
|
2616
2667
|
setup(props, _ref) {
|
|
@@ -2624,8 +2675,8 @@
|
|
|
2624
2675
|
dimensionStyles
|
|
2625
2676
|
} = useDimension(props);
|
|
2626
2677
|
useRender(() => vue.createVNode("div", {
|
|
2627
|
-
"class":
|
|
2628
|
-
"style": dimensionStyles.value
|
|
2678
|
+
"class": ['v-responsive', props.class],
|
|
2679
|
+
"style": [dimensionStyles.value, props.style]
|
|
2629
2680
|
}, [vue.createVNode("div", {
|
|
2630
2681
|
"class": "v-responsive__sizer",
|
|
2631
2682
|
"style": aspectStyles.value
|
|
@@ -2743,6 +2794,7 @@
|
|
|
2743
2794
|
},
|
|
2744
2795
|
srcset: String,
|
|
2745
2796
|
width: [String, Number],
|
|
2797
|
+
...makeComponentProps(),
|
|
2746
2798
|
...makeTransitionProps()
|
|
2747
2799
|
},
|
|
2748
2800
|
emits: {
|
|
@@ -2930,10 +2982,10 @@
|
|
|
2930
2982
|
useRender(() => vue.withDirectives(vue.createVNode(VResponsive, {
|
|
2931
2983
|
"class": ['v-img', {
|
|
2932
2984
|
'v-img--booting': !isBooted.value
|
|
2933
|
-
}],
|
|
2934
|
-
"style": {
|
|
2985
|
+
}, props.class],
|
|
2986
|
+
"style": [{
|
|
2935
2987
|
width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width)
|
|
2936
|
-
},
|
|
2988
|
+
}, props.style],
|
|
2937
2989
|
"aspectRatio": aspectRatio.value,
|
|
2938
2990
|
"aria-label": props.alt,
|
|
2939
2991
|
"role": props.alt ? 'img' : undefined
|
|
@@ -2968,10 +3020,9 @@
|
|
|
2968
3020
|
}
|
|
2969
3021
|
}, 'tag');
|
|
2970
3022
|
|
|
2971
|
-
// Types
|
|
2972
|
-
|
|
2973
3023
|
const makeVToolbarTitleProps = propsFactory({
|
|
2974
3024
|
text: String,
|
|
3025
|
+
...makeComponentProps(),
|
|
2975
3026
|
...makeTagProps()
|
|
2976
3027
|
}, 'v-toolbar-title');
|
|
2977
3028
|
const VToolbarTitle = genericComponent()({
|
|
@@ -2984,7 +3035,8 @@
|
|
|
2984
3035
|
useRender(() => {
|
|
2985
3036
|
const hasText = !!(slots.default || slots.text || props.text);
|
|
2986
3037
|
return vue.createVNode(props.tag, {
|
|
2987
|
-
"class":
|
|
3038
|
+
"class": ['v-toolbar-title', props.class],
|
|
3039
|
+
"style": props.style
|
|
2988
3040
|
}, {
|
|
2989
3041
|
default: () => [hasText && vue.createVNode("div", {
|
|
2990
3042
|
"class": "v-toolbar-title__placeholder"
|
|
@@ -3165,6 +3217,7 @@
|
|
|
3165
3217
|
image: String,
|
|
3166
3218
|
title: String,
|
|
3167
3219
|
...makeBorderProps(),
|
|
3220
|
+
...makeComponentProps(),
|
|
3168
3221
|
...makeElevationProps(),
|
|
3169
3222
|
...makeRoundedProps(),
|
|
3170
3223
|
...makeTagProps({
|
|
@@ -3215,8 +3268,8 @@
|
|
|
3215
3268
|
'v-toolbar--flat': props.flat,
|
|
3216
3269
|
'v-toolbar--floating': props.floating,
|
|
3217
3270
|
[`v-toolbar--density-${props.density}`]: true
|
|
3218
|
-
}, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value],
|
|
3219
|
-
"style": [backgroundColorStyles.value]
|
|
3271
|
+
}, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
3272
|
+
"style": [backgroundColorStyles.value, props.style]
|
|
3220
3273
|
}, {
|
|
3221
3274
|
default: () => [hasImage && vue.createVNode("div", {
|
|
3222
3275
|
"key": "image",
|
|
@@ -3283,6 +3336,98 @@
|
|
|
3283
3336
|
|
|
3284
3337
|
// Utilities
|
|
3285
3338
|
|
|
3339
|
+
// Types
|
|
3340
|
+
|
|
3341
|
+
// Composables
|
|
3342
|
+
const makeScrollProps = propsFactory({
|
|
3343
|
+
scrollTarget: {
|
|
3344
|
+
type: String
|
|
3345
|
+
},
|
|
3346
|
+
scrollThreshold: {
|
|
3347
|
+
type: [String, Number]
|
|
3348
|
+
}
|
|
3349
|
+
}, 'scroll');
|
|
3350
|
+
function useScroll(props) {
|
|
3351
|
+
let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
3352
|
+
const {
|
|
3353
|
+
thresholdMetCallback,
|
|
3354
|
+
scrollThreshold,
|
|
3355
|
+
canScroll
|
|
3356
|
+
} = args;
|
|
3357
|
+
let previousScroll = 0;
|
|
3358
|
+
const target = vue.ref(null);
|
|
3359
|
+
const currentScroll = vue.ref(0);
|
|
3360
|
+
const savedScroll = vue.ref(0);
|
|
3361
|
+
const currentThreshold = vue.ref(0);
|
|
3362
|
+
const isScrollActive = vue.ref(false);
|
|
3363
|
+
const isScrollingUp = vue.ref(false);
|
|
3364
|
+
const computedScrollThreshold = vue.computed(() => {
|
|
3365
|
+
return Number(props.scrollThreshold ?? scrollThreshold ?? 300);
|
|
3366
|
+
});
|
|
3367
|
+
const onScroll = () => {
|
|
3368
|
+
const targetEl = target.value;
|
|
3369
|
+
if (!targetEl || canScroll && !canScroll.value) return;
|
|
3370
|
+
previousScroll = currentScroll.value;
|
|
3371
|
+
currentScroll.value = 'window' in targetEl ? targetEl.pageYOffset : targetEl.scrollTop;
|
|
3372
|
+
isScrollingUp.value = currentScroll.value < previousScroll;
|
|
3373
|
+
currentThreshold.value = Math.abs(currentScroll.value - computedScrollThreshold.value);
|
|
3374
|
+
};
|
|
3375
|
+
vue.watch(isScrollingUp, () => {
|
|
3376
|
+
savedScroll.value = savedScroll.value || currentScroll.value;
|
|
3377
|
+
});
|
|
3378
|
+
vue.watch(isScrollActive, () => {
|
|
3379
|
+
savedScroll.value = 0;
|
|
3380
|
+
});
|
|
3381
|
+
vue.onMounted(() => {
|
|
3382
|
+
vue.watch(() => props.scrollTarget, scrollTarget => {
|
|
3383
|
+
const newTarget = scrollTarget ? document.querySelector(scrollTarget) : window;
|
|
3384
|
+
if (!newTarget) {
|
|
3385
|
+
consoleWarn(`Unable to locate element with identifier ${scrollTarget}`, vue.getCurrentInstance());
|
|
3386
|
+
return;
|
|
3387
|
+
}
|
|
3388
|
+
if (newTarget === target.value) return;
|
|
3389
|
+
target.value?.removeEventListener('scroll', onScroll);
|
|
3390
|
+
target.value = newTarget;
|
|
3391
|
+
target.value.addEventListener('scroll', onScroll, {
|
|
3392
|
+
passive: true
|
|
3393
|
+
});
|
|
3394
|
+
}, {
|
|
3395
|
+
immediate: true
|
|
3396
|
+
});
|
|
3397
|
+
});
|
|
3398
|
+
vue.onBeforeUnmount(() => {
|
|
3399
|
+
target.value?.removeEventListener('scroll', onScroll);
|
|
3400
|
+
});
|
|
3401
|
+
thresholdMetCallback && vue.watch(() => Math.abs(currentScroll.value - savedScroll.value) > computedScrollThreshold.value, thresholdMet => {
|
|
3402
|
+
thresholdMet && thresholdMetCallback({
|
|
3403
|
+
currentThreshold: currentThreshold.value,
|
|
3404
|
+
isScrollingUp: isScrollingUp.value,
|
|
3405
|
+
savedScroll
|
|
3406
|
+
});
|
|
3407
|
+
}, {
|
|
3408
|
+
immediate: true
|
|
3409
|
+
});
|
|
3410
|
+
|
|
3411
|
+
// Do we need this? If yes - seems that
|
|
3412
|
+
// there's no need to expose onScroll
|
|
3413
|
+
canScroll && vue.watch(canScroll, onScroll, {
|
|
3414
|
+
immediate: true
|
|
3415
|
+
});
|
|
3416
|
+
return {
|
|
3417
|
+
computedScrollThreshold,
|
|
3418
|
+
currentScroll,
|
|
3419
|
+
currentThreshold,
|
|
3420
|
+
isScrollActive,
|
|
3421
|
+
// required only for testing
|
|
3422
|
+
// probably can be removed
|
|
3423
|
+
// later (2 chars chlng)
|
|
3424
|
+
isScrollingUp,
|
|
3425
|
+
savedScroll
|
|
3426
|
+
};
|
|
3427
|
+
}
|
|
3428
|
+
|
|
3429
|
+
// Utilities
|
|
3430
|
+
|
|
3286
3431
|
// Composables
|
|
3287
3432
|
function useSsrBoot() {
|
|
3288
3433
|
const isBooted = vue.ref(false);
|
|
@@ -3305,13 +3450,7 @@
|
|
|
3305
3450
|
const VAppBar = genericComponent()({
|
|
3306
3451
|
name: 'VAppBar',
|
|
3307
3452
|
props: {
|
|
3308
|
-
|
|
3309
|
-
// hideOnScroll: Boolean
|
|
3310
|
-
// invertedScroll: Boolean
|
|
3311
|
-
// collapseOnScroll: Boolean
|
|
3312
|
-
// elevateOnScroll: Boolean
|
|
3313
|
-
// shrinkOnScroll: Boolean
|
|
3314
|
-
// fadeImageOnScroll: Boolean
|
|
3453
|
+
scrollBehavior: String,
|
|
3315
3454
|
modelValue: {
|
|
3316
3455
|
type: Boolean,
|
|
3317
3456
|
default: true
|
|
@@ -3323,6 +3462,7 @@
|
|
|
3323
3462
|
},
|
|
3324
3463
|
...makeVToolbarProps(),
|
|
3325
3464
|
...makeLayoutItemProps(),
|
|
3465
|
+
...makeScrollProps(),
|
|
3326
3466
|
height: {
|
|
3327
3467
|
type: [Number, String],
|
|
3328
3468
|
default: 64
|
|
@@ -3337,11 +3477,63 @@
|
|
|
3337
3477
|
} = _ref;
|
|
3338
3478
|
const vToolbarRef = vue.ref();
|
|
3339
3479
|
const isActive = useProxiedModel(props, 'modelValue');
|
|
3480
|
+
const scrollBehavior = vue.computed(() => {
|
|
3481
|
+
const behavior = new Set(props.scrollBehavior?.split(' ') ?? []);
|
|
3482
|
+
return {
|
|
3483
|
+
hide: behavior.has('hide'),
|
|
3484
|
+
// fullyHide: behavior.has('fully-hide'),
|
|
3485
|
+
inverted: behavior.has('inverted'),
|
|
3486
|
+
collapse: behavior.has('collapse'),
|
|
3487
|
+
elevate: behavior.has('elevate'),
|
|
3488
|
+
fadeImage: behavior.has('fade-image')
|
|
3489
|
+
// shrink: behavior.has('shrink'),
|
|
3490
|
+
};
|
|
3491
|
+
});
|
|
3492
|
+
|
|
3493
|
+
const canScroll = vue.computed(() => {
|
|
3494
|
+
const behavior = scrollBehavior.value;
|
|
3495
|
+
return behavior.hide ||
|
|
3496
|
+
// behavior.fullyHide ||
|
|
3497
|
+
behavior.inverted || behavior.collapse || behavior.elevate || behavior.fadeImage ||
|
|
3498
|
+
// behavior.shrink ||
|
|
3499
|
+
!isActive.value;
|
|
3500
|
+
});
|
|
3501
|
+
const {
|
|
3502
|
+
currentScroll,
|
|
3503
|
+
currentThreshold,
|
|
3504
|
+
computedScrollThreshold,
|
|
3505
|
+
isScrollingUp
|
|
3506
|
+
} = useScroll(props, {
|
|
3507
|
+
canScroll
|
|
3508
|
+
});
|
|
3509
|
+
const isCollapsed = vue.computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? currentScroll.value < 1 : currentScroll.value > 0));
|
|
3510
|
+
const isFlat = vue.computed(() => props.flat || scrollBehavior.value.elevate && currentScroll.value === (scrollBehavior.value.inverted ? 1 : 0));
|
|
3511
|
+
const scrollRatio = vue.computed(() => Math.min((currentThreshold.value - currentScroll.value) / currentThreshold.value || 1, 1));
|
|
3512
|
+
const opacity = vue.computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
|
|
3340
3513
|
const height = vue.computed(() => {
|
|
3514
|
+
if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0;
|
|
3341
3515
|
const height = vToolbarRef.value?.contentHeight ?? 0;
|
|
3342
3516
|
const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;
|
|
3343
3517
|
return height + extensionHeight;
|
|
3344
3518
|
});
|
|
3519
|
+
function setActive() {
|
|
3520
|
+
const val = currentScroll.value;
|
|
3521
|
+
if (scrollBehavior.value.hide) {
|
|
3522
|
+
if (scrollBehavior.value.inverted) {
|
|
3523
|
+
isActive.value = val > computedScrollThreshold.value;
|
|
3524
|
+
} else {
|
|
3525
|
+
isActive.value = isScrollingUp.value || val < computedScrollThreshold.value;
|
|
3526
|
+
}
|
|
3527
|
+
} else if (scrollBehavior.value.inverted) {
|
|
3528
|
+
isActive.value = currentScroll.value === 0;
|
|
3529
|
+
} else {
|
|
3530
|
+
isActive.value = true;
|
|
3531
|
+
}
|
|
3532
|
+
}
|
|
3533
|
+
vue.watch(currentScroll, setActive, {
|
|
3534
|
+
immediate: true
|
|
3535
|
+
});
|
|
3536
|
+
vue.watch(scrollBehavior, setActive);
|
|
3345
3537
|
const {
|
|
3346
3538
|
ssrBootStyles
|
|
3347
3539
|
} = useSsrBoot();
|
|
@@ -3352,7 +3544,7 @@
|
|
|
3352
3544
|
order: vue.computed(() => parseInt(props.order, 10)),
|
|
3353
3545
|
position: vue.toRef(props, 'location'),
|
|
3354
3546
|
layoutSize: height,
|
|
3355
|
-
elementSize:
|
|
3547
|
+
elementSize: vue.ref(undefined),
|
|
3356
3548
|
active: isActive,
|
|
3357
3549
|
absolute: vue.toRef(props, 'absolute')
|
|
3358
3550
|
});
|
|
@@ -3362,13 +3554,17 @@
|
|
|
3362
3554
|
"ref": vToolbarRef,
|
|
3363
3555
|
"class": ['v-app-bar', {
|
|
3364
3556
|
'v-app-bar--bottom': props.location === 'bottom'
|
|
3365
|
-
}],
|
|
3366
|
-
"style": {
|
|
3557
|
+
}, props.class],
|
|
3558
|
+
"style": [{
|
|
3367
3559
|
...layoutItemStyles.value,
|
|
3560
|
+
'--v-toolbar-image-opacity': opacity.value,
|
|
3368
3561
|
height: undefined,
|
|
3369
3562
|
...ssrBootStyles.value
|
|
3370
|
-
}
|
|
3371
|
-
}, toolbarProps
|
|
3563
|
+
}, props.style]
|
|
3564
|
+
}, toolbarProps, {
|
|
3565
|
+
"collapse": isCollapsed.value,
|
|
3566
|
+
"flat": isFlat.value
|
|
3567
|
+
}), slots);
|
|
3372
3568
|
});
|
|
3373
3569
|
return {};
|
|
3374
3570
|
}
|
|
@@ -3451,6 +3647,7 @@
|
|
|
3451
3647
|
const makeVBtnGroupProps = propsFactory({
|
|
3452
3648
|
divided: Boolean,
|
|
3453
3649
|
...makeBorderProps(),
|
|
3650
|
+
...makeComponentProps(),
|
|
3454
3651
|
...makeDensityProps(),
|
|
3455
3652
|
...makeElevationProps(),
|
|
3456
3653
|
...makeRoundedProps(),
|
|
@@ -3493,7 +3690,8 @@
|
|
|
3493
3690
|
return vue.createVNode(props.tag, {
|
|
3494
3691
|
"class": ['v-btn-group', {
|
|
3495
3692
|
'v-btn-group--divided': props.divided
|
|
3496
|
-
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value]
|
|
3693
|
+
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
3694
|
+
"style": props.style
|
|
3497
3695
|
}, slots);
|
|
3498
3696
|
});
|
|
3499
3697
|
}
|
|
@@ -3726,8 +3924,10 @@
|
|
|
3726
3924
|
useRender(() => {
|
|
3727
3925
|
const [btnGroupProps] = VBtnGroup.filterProps(props);
|
|
3728
3926
|
return vue.createVNode(VBtnGroup, vue.mergeProps({
|
|
3729
|
-
"class":
|
|
3730
|
-
}, btnGroupProps
|
|
3927
|
+
"class": ['v-btn-toggle', props.class]
|
|
3928
|
+
}, btnGroupProps, {
|
|
3929
|
+
"style": props.style
|
|
3930
|
+
}), {
|
|
3731
3931
|
default: () => [slots.default?.({
|
|
3732
3932
|
isSelected,
|
|
3733
3933
|
next,
|
|
@@ -3798,7 +3998,7 @@
|
|
|
3798
3998
|
|
|
3799
3999
|
// Types
|
|
3800
4000
|
|
|
3801
|
-
const IconValue = [String, Function, Object];
|
|
4001
|
+
const IconValue = [String, Function, Object, Array];
|
|
3802
4002
|
const IconSymbol = Symbol.for('vuetify:icons');
|
|
3803
4003
|
const makeIconProps = propsFactory({
|
|
3804
4004
|
icon: {
|
|
@@ -3818,8 +4018,9 @@
|
|
|
3818
4018
|
slots
|
|
3819
4019
|
} = _ref;
|
|
3820
4020
|
return () => {
|
|
4021
|
+
const Icon = props.icon;
|
|
3821
4022
|
return vue.createVNode(props.tag, null, {
|
|
3822
|
-
default: () => [props.icon ? vue.createVNode(
|
|
4023
|
+
default: () => [props.icon ? vue.createVNode(Icon, null, null) : slots.default?.()]
|
|
3823
4024
|
});
|
|
3824
4025
|
};
|
|
3825
4026
|
}
|
|
@@ -3842,7 +4043,12 @@
|
|
|
3842
4043
|
"viewBox": "0 0 24 24",
|
|
3843
4044
|
"role": "img",
|
|
3844
4045
|
"aria-hidden": "true"
|
|
3845
|
-
}, [vue.createVNode("path", {
|
|
4046
|
+
}, [Array.isArray(props.icon) ? props.icon.map(path => Array.isArray(path) ? vue.createVNode("path", {
|
|
4047
|
+
"d": path[0],
|
|
4048
|
+
"fill-opacity": path[1]
|
|
4049
|
+
}, null) : vue.createVNode("path", {
|
|
4050
|
+
"d": path
|
|
4051
|
+
}, null)) : vue.createVNode("path", {
|
|
3846
4052
|
"d": props.icon
|
|
3847
4053
|
}, null)])]
|
|
3848
4054
|
});
|
|
@@ -3907,7 +4113,12 @@
|
|
|
3907
4113
|
}
|
|
3908
4114
|
}
|
|
3909
4115
|
if (!icon) throw new Error(`Could not find aliased icon "${iconAlias}"`);
|
|
3910
|
-
if (
|
|
4116
|
+
if (Array.isArray(icon)) {
|
|
4117
|
+
return {
|
|
4118
|
+
component: VSvgIcon,
|
|
4119
|
+
icon
|
|
4120
|
+
};
|
|
4121
|
+
} else if (typeof icon !== 'string') {
|
|
3911
4122
|
return {
|
|
3912
4123
|
component: VComponentIcon,
|
|
3913
4124
|
icon
|
|
@@ -3964,6 +4175,7 @@
|
|
|
3964
4175
|
start: Boolean,
|
|
3965
4176
|
end: Boolean,
|
|
3966
4177
|
icon: IconValue,
|
|
4178
|
+
...makeComponentProps(),
|
|
3967
4179
|
...makeSizeProps(),
|
|
3968
4180
|
...makeTagProps({
|
|
3969
4181
|
tag: 'i'
|
|
@@ -4006,12 +4218,12 @@
|
|
|
4006
4218
|
'v-icon--clickable': !!attrs.onClick,
|
|
4007
4219
|
'v-icon--start': props.start,
|
|
4008
4220
|
'v-icon--end': props.end
|
|
4009
|
-
}],
|
|
4221
|
+
}, props.class],
|
|
4010
4222
|
"style": [!sizeClasses.value ? {
|
|
4011
4223
|
fontSize: convertToUnit(props.size),
|
|
4012
4224
|
height: convertToUnit(props.size),
|
|
4013
4225
|
width: convertToUnit(props.size)
|
|
4014
|
-
} : undefined, textColorStyles.value],
|
|
4226
|
+
} : undefined, textColorStyles.value, props.style],
|
|
4015
4227
|
"role": attrs.onClick ? 'button' : undefined,
|
|
4016
4228
|
"aria-hidden": !attrs.onClick
|
|
4017
4229
|
}, {
|
|
@@ -4022,14 +4234,14 @@
|
|
|
4022
4234
|
});
|
|
4023
4235
|
|
|
4024
4236
|
// Utilities
|
|
4025
|
-
function useIntersectionObserver(callback) {
|
|
4237
|
+
function useIntersectionObserver(callback, options) {
|
|
4026
4238
|
const intersectionRef = vue.ref();
|
|
4027
4239
|
const isIntersecting = vue.ref(false);
|
|
4028
4240
|
if (SUPPORTS_INTERSECTION) {
|
|
4029
4241
|
const observer = new IntersectionObserver(entries => {
|
|
4030
4242
|
callback?.(entries, observer);
|
|
4031
4243
|
isIntersecting.value = !!entries.find(entry => entry.isIntersecting);
|
|
4032
|
-
});
|
|
4244
|
+
}, options);
|
|
4033
4245
|
vue.onBeforeUnmount(() => {
|
|
4034
4246
|
observer.disconnect();
|
|
4035
4247
|
});
|
|
@@ -4069,6 +4281,7 @@
|
|
|
4069
4281
|
type: [Number, String],
|
|
4070
4282
|
default: 4
|
|
4071
4283
|
},
|
|
4284
|
+
...makeComponentProps(),
|
|
4072
4285
|
...makeSizeProps(),
|
|
4073
4286
|
...makeTagProps({
|
|
4074
4287
|
tag: 'div'
|
|
@@ -4124,8 +4337,8 @@
|
|
|
4124
4337
|
'v-progress-circular--indeterminate': !!props.indeterminate,
|
|
4125
4338
|
'v-progress-circular--visible': isIntersecting.value,
|
|
4126
4339
|
'v-progress-circular--disable-shrink': props.indeterminate === 'disable-shrink'
|
|
4127
|
-
}, themeClasses.value, sizeClasses.value, textColorClasses.value],
|
|
4128
|
-
"style": [sizeStyles.value, textColorStyles.value],
|
|
4340
|
+
}, themeClasses.value, sizeClasses.value, textColorClasses.value, props.class],
|
|
4341
|
+
"style": [sizeStyles.value, textColorStyles.value, props.style],
|
|
4129
4342
|
"role": "progressbar",
|
|
4130
4343
|
"aria-valuemin": "0",
|
|
4131
4344
|
"aria-valuemax": "100",
|
|
@@ -4544,6 +4757,7 @@
|
|
|
4544
4757
|
stream: Boolean,
|
|
4545
4758
|
striped: Boolean,
|
|
4546
4759
|
roundedBar: Boolean,
|
|
4760
|
+
...makeComponentProps(),
|
|
4547
4761
|
...makeLocationProps({
|
|
4548
4762
|
location: 'top'
|
|
4549
4763
|
}),
|
|
@@ -4615,14 +4829,14 @@
|
|
|
4615
4829
|
'v-progress-linear--rounded': props.rounded,
|
|
4616
4830
|
'v-progress-linear--rounded-bar': props.roundedBar,
|
|
4617
4831
|
'v-progress-linear--striped': props.striped
|
|
4618
|
-
}, roundedClasses.value, themeClasses.value],
|
|
4619
|
-
"style": {
|
|
4832
|
+
}, roundedClasses.value, themeClasses.value, props.class],
|
|
4833
|
+
"style": [{
|
|
4620
4834
|
bottom: props.location === 'bottom' ? 0 : undefined,
|
|
4621
4835
|
top: props.location === 'top' ? 0 : undefined,
|
|
4622
4836
|
height: props.active ? convertToUnit(height.value) : 0,
|
|
4623
4837
|
'--v-progress-linear-height': convertToUnit(height.value),
|
|
4624
4838
|
...locationStyles.value
|
|
4625
|
-
},
|
|
4839
|
+
}, props.style],
|
|
4626
4840
|
"role": "progressbar",
|
|
4627
4841
|
"aria-hidden": props.active ? 'false' : 'true',
|
|
4628
4842
|
"aria-valuemin": "0",
|
|
@@ -4831,8 +5045,9 @@
|
|
|
4831
5045
|
type: Boolean,
|
|
4832
5046
|
default: true
|
|
4833
5047
|
},
|
|
5048
|
+
text: String,
|
|
4834
5049
|
...makeBorderProps(),
|
|
4835
|
-
...
|
|
5050
|
+
...makeComponentProps(),
|
|
4836
5051
|
...makeDensityProps(),
|
|
4837
5052
|
...makeDimensionProps(),
|
|
4838
5053
|
...makeElevationProps(),
|
|
@@ -4840,6 +5055,7 @@
|
|
|
4840
5055
|
...makeLoaderProps(),
|
|
4841
5056
|
...makeLocationProps(),
|
|
4842
5057
|
...makePositionProps(),
|
|
5058
|
+
...makeRoundedProps(),
|
|
4843
5059
|
...makeRouterProps(),
|
|
4844
5060
|
...makeSizeProps(),
|
|
4845
5061
|
...makeTagProps({
|
|
@@ -4937,8 +5153,8 @@
|
|
|
4937
5153
|
'v-btn--icon': !!props.icon,
|
|
4938
5154
|
'v-btn--loading': props.loading,
|
|
4939
5155
|
'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],
|
|
5156
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
|
5157
|
+
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],
|
|
4942
5158
|
"disabled": isDisabled.value || undefined,
|
|
4943
5159
|
"href": link.href.value,
|
|
4944
5160
|
"onClick": e => {
|
|
@@ -4976,7 +5192,9 @@
|
|
|
4976
5192
|
icon: props.icon
|
|
4977
5193
|
}
|
|
4978
5194
|
}
|
|
4979
|
-
},
|
|
5195
|
+
}, {
|
|
5196
|
+
default: () => [slots.default?.() ?? props.text]
|
|
5197
|
+
})]), !props.icon && hasAppend && vue.createVNode("span", {
|
|
4980
5198
|
"key": "append",
|
|
4981
5199
|
"class": "v-btn__append"
|
|
4982
5200
|
}, [!slots.append ? vue.createVNode(VIcon, {
|
|
@@ -5013,15 +5231,17 @@
|
|
|
5013
5231
|
icon: {
|
|
5014
5232
|
type: IconValue,
|
|
5015
5233
|
default: '$menu'
|
|
5016
|
-
}
|
|
5234
|
+
},
|
|
5235
|
+
...makeComponentProps()
|
|
5017
5236
|
},
|
|
5018
5237
|
setup(props, _ref) {
|
|
5019
5238
|
let {
|
|
5020
5239
|
slots
|
|
5021
5240
|
} = _ref;
|
|
5022
5241
|
useRender(() => vue.createVNode(VBtn, {
|
|
5023
|
-
"class":
|
|
5024
|
-
"icon": props.icon
|
|
5242
|
+
"class": ['v-app-bar-nav-icon', props.class],
|
|
5243
|
+
"icon": props.icon,
|
|
5244
|
+
"style": props.style
|
|
5025
5245
|
}, slots));
|
|
5026
5246
|
return {};
|
|
5027
5247
|
}
|
|
@@ -5029,9 +5249,12 @@
|
|
|
5029
5249
|
|
|
5030
5250
|
const VToolbarItems = genericComponent()({
|
|
5031
5251
|
name: 'VToolbarItems',
|
|
5032
|
-
props:
|
|
5033
|
-
|
|
5034
|
-
|
|
5252
|
+
props: {
|
|
5253
|
+
...makeComponentProps(),
|
|
5254
|
+
...makeVariantProps({
|
|
5255
|
+
variant: 'text'
|
|
5256
|
+
})
|
|
5257
|
+
},
|
|
5035
5258
|
setup(props, _ref) {
|
|
5036
5259
|
let {
|
|
5037
5260
|
slots
|
|
@@ -5044,7 +5267,8 @@
|
|
|
5044
5267
|
}
|
|
5045
5268
|
});
|
|
5046
5269
|
useRender(() => vue.createVNode("div", {
|
|
5047
|
-
"class":
|
|
5270
|
+
"class": ['v-toolbar-items', props.class],
|
|
5271
|
+
"style": props.style
|
|
5048
5272
|
}, [slots.default?.()]));
|
|
5049
5273
|
return {};
|
|
5050
5274
|
}
|
|
@@ -5106,6 +5330,7 @@
|
|
|
5106
5330
|
type: String,
|
|
5107
5331
|
validator: val => allowedTypes.includes(val)
|
|
5108
5332
|
},
|
|
5333
|
+
...makeComponentProps(),
|
|
5109
5334
|
...makeDensityProps(),
|
|
5110
5335
|
...makeDimensionProps(),
|
|
5111
5336
|
...makeElevationProps(),
|
|
@@ -5188,8 +5413,8 @@
|
|
|
5188
5413
|
[`v-alert--border-${props.border === true ? 'start' : props.border}`]: true
|
|
5189
5414
|
}, {
|
|
5190
5415
|
'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],
|
|
5416
|
+
}, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
|
5417
|
+
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
|
|
5193
5418
|
"role": "alert"
|
|
5194
5419
|
}, {
|
|
5195
5420
|
default: () => [genOverlays(false, 'v-alert'), props.border && vue.createVNode("div", {
|
|
@@ -5283,6 +5508,7 @@
|
|
|
5283
5508
|
props: {
|
|
5284
5509
|
text: String,
|
|
5285
5510
|
clickable: Boolean,
|
|
5511
|
+
...makeComponentProps(),
|
|
5286
5512
|
...makeThemeProps()
|
|
5287
5513
|
},
|
|
5288
5514
|
setup(props, _ref) {
|
|
@@ -5292,7 +5518,8 @@
|
|
|
5292
5518
|
useRender(() => vue.createVNode("label", {
|
|
5293
5519
|
"class": ['v-label', {
|
|
5294
5520
|
'v-label--clickable': props.clickable
|
|
5295
|
-
}]
|
|
5521
|
+
}, props.class],
|
|
5522
|
+
"style": props.style
|
|
5296
5523
|
}, [props.text, slots.default?.()]));
|
|
5297
5524
|
return {};
|
|
5298
5525
|
}
|
|
@@ -5301,7 +5528,8 @@
|
|
|
5301
5528
|
const VFieldLabel = genericComponent()({
|
|
5302
5529
|
name: 'VFieldLabel',
|
|
5303
5530
|
props: {
|
|
5304
|
-
floating: Boolean
|
|
5531
|
+
floating: Boolean,
|
|
5532
|
+
...makeComponentProps()
|
|
5305
5533
|
},
|
|
5306
5534
|
setup(props, _ref) {
|
|
5307
5535
|
let {
|
|
@@ -5310,7 +5538,8 @@
|
|
|
5310
5538
|
useRender(() => vue.createVNode(VLabel, {
|
|
5311
5539
|
"class": ['v-field-label', {
|
|
5312
5540
|
'v-field-label--floating': props.floating
|
|
5313
|
-
}],
|
|
5541
|
+
}, props.class],
|
|
5542
|
+
"style": props.style,
|
|
5314
5543
|
"aria-hidden": props.floating || undefined
|
|
5315
5544
|
}, slots));
|
|
5316
5545
|
return {};
|
|
@@ -5350,7 +5579,7 @@
|
|
|
5350
5579
|
|
|
5351
5580
|
// Types
|
|
5352
5581
|
|
|
5353
|
-
const allowedVariants$1 = ['underlined', 'outlined', 'filled', 'solo', 'plain'];
|
|
5582
|
+
const allowedVariants$1 = ['underlined', 'outlined', 'filled', 'solo', 'solo-inverted', 'solo-filled', 'plain'];
|
|
5354
5583
|
const makeVFieldProps = propsFactory({
|
|
5355
5584
|
appendInnerIcon: IconValue,
|
|
5356
5585
|
bgColor: String,
|
|
@@ -5361,9 +5590,11 @@
|
|
|
5361
5590
|
},
|
|
5362
5591
|
active: Boolean,
|
|
5363
5592
|
color: String,
|
|
5593
|
+
baseColor: String,
|
|
5364
5594
|
dirty: Boolean,
|
|
5365
5595
|
disabled: Boolean,
|
|
5366
5596
|
error: Boolean,
|
|
5597
|
+
flat: Boolean,
|
|
5367
5598
|
label: String,
|
|
5368
5599
|
persistentClear: Boolean,
|
|
5369
5600
|
prependInnerIcon: IconValue,
|
|
@@ -5377,8 +5608,10 @@
|
|
|
5377
5608
|
'onClick:clear': EventProp(),
|
|
5378
5609
|
'onClick:appendInner': EventProp(),
|
|
5379
5610
|
'onClick:prependInner': EventProp(),
|
|
5380
|
-
...
|
|
5381
|
-
...makeLoaderProps()
|
|
5611
|
+
...makeComponentProps(),
|
|
5612
|
+
...makeLoaderProps(),
|
|
5613
|
+
...makeRoundedProps(),
|
|
5614
|
+
...makeThemeProps()
|
|
5382
5615
|
}, 'v-field');
|
|
5383
5616
|
const VField = genericComponent()({
|
|
5384
5617
|
name: 'VField',
|
|
@@ -5413,6 +5646,9 @@
|
|
|
5413
5646
|
const {
|
|
5414
5647
|
InputIcon
|
|
5415
5648
|
} = useInputIcon(props);
|
|
5649
|
+
const {
|
|
5650
|
+
roundedClasses
|
|
5651
|
+
} = useRounded(props);
|
|
5416
5652
|
const isActive = vue.computed(() => props.dirty || props.active);
|
|
5417
5653
|
const hasLabel = vue.computed(() => !props.singleLine && !!(props.label || slots.label));
|
|
5418
5654
|
const uid = getUid();
|
|
@@ -5429,7 +5665,7 @@
|
|
|
5429
5665
|
textColorClasses,
|
|
5430
5666
|
textColorStyles
|
|
5431
5667
|
} = useTextColor(vue.computed(() => {
|
|
5432
|
-
return
|
|
5668
|
+
return props.error || props.disabled ? undefined : isActive.value && isFocused.value ? props.color : props.baseColor;
|
|
5433
5669
|
}));
|
|
5434
5670
|
vue.watch(isActive, val => {
|
|
5435
5671
|
if (hasLabel.value) {
|
|
@@ -5498,6 +5734,7 @@
|
|
|
5498
5734
|
'v-field--disabled': props.disabled,
|
|
5499
5735
|
'v-field--dirty': props.dirty,
|
|
5500
5736
|
'v-field--error': props.error,
|
|
5737
|
+
'v-field--flat': props.flat,
|
|
5501
5738
|
'v-field--has-background': !!props.bgColor,
|
|
5502
5739
|
'v-field--persistent-clear': props.persistentClear,
|
|
5503
5740
|
'v-field--prepended': hasPrepend,
|
|
@@ -5505,8 +5742,8 @@
|
|
|
5505
5742
|
'v-field--single-line': props.singleLine,
|
|
5506
5743
|
'v-field--no-label': !label,
|
|
5507
5744
|
[`v-field--variant-${props.variant}`]: true
|
|
5508
|
-
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value],
|
|
5509
|
-
"style": [backgroundColorStyles.value, textColorStyles.value],
|
|
5745
|
+
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, props.class],
|
|
5746
|
+
"style": [backgroundColorStyles.value, textColorStyles.value, props.style],
|
|
5510
5747
|
"onClick": onClick
|
|
5511
5748
|
}, attrs), [vue.createVNode("div", {
|
|
5512
5749
|
"class": "v-field__overlay"
|
|
@@ -5525,7 +5762,7 @@
|
|
|
5525
5762
|
}, null), slots['prepend-inner']?.(slotProps.value)]), vue.createVNode("div", {
|
|
5526
5763
|
"class": "v-field__field",
|
|
5527
5764
|
"data-no-activator": ""
|
|
5528
|
-
}, [['solo', 'filled'].includes(props.variant) && hasLabel.value && vue.createVNode(VFieldLabel, {
|
|
5765
|
+
}, [['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasLabel.value && vue.createVNode(VFieldLabel, {
|
|
5529
5766
|
"key": "floating-label",
|
|
5530
5767
|
"ref": floatingLabelRef,
|
|
5531
5768
|
"class": [textColorClasses.value],
|
|
@@ -5594,7 +5831,7 @@
|
|
|
5594
5831
|
});
|
|
5595
5832
|
// TODO: this is kinda slow, might be better to implicitly inherit props instead
|
|
5596
5833
|
function filterFieldProps(attrs) {
|
|
5597
|
-
const keys = Object.keys(VField.props).filter(k => !isOn(k));
|
|
5834
|
+
const keys = Object.keys(VField.props).filter(k => !isOn(k) && k !== 'class' && k !== 'style');
|
|
5598
5835
|
return pick(attrs, keys);
|
|
5599
5836
|
}
|
|
5600
5837
|
|
|
@@ -5609,6 +5846,7 @@
|
|
|
5609
5846
|
type: [Array, String],
|
|
5610
5847
|
default: () => []
|
|
5611
5848
|
},
|
|
5849
|
+
...makeComponentProps(),
|
|
5612
5850
|
...makeTransitionProps({
|
|
5613
5851
|
transition: {
|
|
5614
5852
|
component: VSlideYTransition,
|
|
@@ -5629,8 +5867,8 @@
|
|
|
5629
5867
|
useRender(() => vue.createVNode(MaybeTransition, {
|
|
5630
5868
|
"transition": props.transition,
|
|
5631
5869
|
"tag": "div",
|
|
5632
|
-
"class": ['v-messages', textColorClasses.value],
|
|
5633
|
-
"style": textColorStyles.value,
|
|
5870
|
+
"class": ['v-messages', textColorClasses.value, props.class],
|
|
5871
|
+
"style": [textColorStyles.value, props.style],
|
|
5634
5872
|
"role": "alert",
|
|
5635
5873
|
"aria-live": "polite"
|
|
5636
5874
|
}, {
|
|
@@ -5926,6 +6164,7 @@
|
|
|
5926
6164
|
},
|
|
5927
6165
|
'onClick:prepend': EventProp(),
|
|
5928
6166
|
'onClick:append': EventProp(),
|
|
6167
|
+
...makeComponentProps(),
|
|
5929
6168
|
...makeDensityProps(),
|
|
5930
6169
|
...makeValidationProps()
|
|
5931
6170
|
}, 'v-input');
|
|
@@ -5993,7 +6232,8 @@
|
|
|
5993
6232
|
const hasMessages = messages.value.length > 0;
|
|
5994
6233
|
const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);
|
|
5995
6234
|
return vue.createVNode("div", {
|
|
5996
|
-
"class": ['v-input', `v-input--${props.direction}`, densityClasses.value, validationClasses.value]
|
|
6235
|
+
"class": ['v-input', `v-input--${props.direction}`, densityClasses.value, validationClasses.value, props.class],
|
|
6236
|
+
"style": props.style
|
|
5997
6237
|
}, [hasPrepend && vue.createVNode("div", {
|
|
5998
6238
|
"key": "prepend",
|
|
5999
6239
|
"class": "v-input__prepend"
|
|
@@ -6036,6 +6276,7 @@
|
|
|
6036
6276
|
type: [Number, String],
|
|
6037
6277
|
default: 0
|
|
6038
6278
|
},
|
|
6279
|
+
...makeComponentProps(),
|
|
6039
6280
|
...makeTransitionProps({
|
|
6040
6281
|
transition: {
|
|
6041
6282
|
component: VSlideYTransition
|
|
@@ -6053,7 +6294,8 @@
|
|
|
6053
6294
|
"transition": props.transition
|
|
6054
6295
|
}, {
|
|
6055
6296
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
|
6056
|
-
"class":
|
|
6297
|
+
"class": ['v-counter', props.class],
|
|
6298
|
+
"style": props.style
|
|
6057
6299
|
}, [slots.default ? slots.default({
|
|
6058
6300
|
counter: counter.value,
|
|
6059
6301
|
max: props.max,
|
|
@@ -6256,7 +6498,8 @@
|
|
|
6256
6498
|
'v-text-field--prefixed': props.prefix,
|
|
6257
6499
|
'v-text-field--suffixed': props.suffix,
|
|
6258
6500
|
'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant)
|
|
6259
|
-
}]
|
|
6501
|
+
}, props.class],
|
|
6502
|
+
"style": props.style
|
|
6260
6503
|
}, rootAttrs, inputProps, {
|
|
6261
6504
|
"focused": isFocused.value
|
|
6262
6505
|
}), {
|
|
@@ -6372,6 +6615,7 @@
|
|
|
6372
6615
|
type: String,
|
|
6373
6616
|
default: 'VSelectionControl'
|
|
6374
6617
|
},
|
|
6618
|
+
...makeComponentProps(),
|
|
6375
6619
|
...makeSelectionControlGroupProps()
|
|
6376
6620
|
},
|
|
6377
6621
|
emits: {
|
|
@@ -6419,7 +6663,8 @@
|
|
|
6419
6663
|
useRender(() => vue.createVNode("div", {
|
|
6420
6664
|
"class": ['v-selection-control-group', {
|
|
6421
6665
|
'v-selection-control-group--inline': props.inline
|
|
6422
|
-
}],
|
|
6666
|
+
}, props.class],
|
|
6667
|
+
"style": props.style,
|
|
6423
6668
|
"role": props.type === 'radio' ? 'radiogroup' : undefined
|
|
6424
6669
|
}, [slots.default?.()]));
|
|
6425
6670
|
return {};
|
|
@@ -6433,6 +6678,7 @@
|
|
|
6433
6678
|
trueValue: null,
|
|
6434
6679
|
falseValue: null,
|
|
6435
6680
|
value: null,
|
|
6681
|
+
...makeComponentProps(),
|
|
6436
6682
|
...makeSelectionControlGroupProps()
|
|
6437
6683
|
}, 'v-selection-control');
|
|
6438
6684
|
function useSelectionControl(props) {
|
|
@@ -6547,8 +6793,10 @@
|
|
|
6547
6793
|
'v-selection-control--focused': isFocused.value,
|
|
6548
6794
|
'v-selection-control--focus-visible': isFocusVisible.value,
|
|
6549
6795
|
'v-selection-control--inline': props.inline
|
|
6550
|
-
}, densityClasses.value]
|
|
6551
|
-
}, rootAttrs
|
|
6796
|
+
}, densityClasses.value, props.class]
|
|
6797
|
+
}, rootAttrs, {
|
|
6798
|
+
"style": props.style
|
|
6799
|
+
}), [vue.createVNode("div", {
|
|
6552
6800
|
"class": ['v-selection-control__wrapper', textColorClasses.value],
|
|
6553
6801
|
"style": textColorStyles.value
|
|
6554
6802
|
}, [slots.default?.(), vue.withDirectives(vue.createVNode("div", {
|
|
@@ -6630,7 +6878,8 @@
|
|
|
6630
6878
|
useRender(() => vue.createVNode(VSelectionControl, vue.mergeProps(props, {
|
|
6631
6879
|
"modelValue": model.value,
|
|
6632
6880
|
"onUpdate:modelValue": [$event => model.value = $event, onChange],
|
|
6633
|
-
"class":
|
|
6881
|
+
"class": ['v-checkbox-btn', props.class],
|
|
6882
|
+
"style": props.style,
|
|
6634
6883
|
"type": "checkbox",
|
|
6635
6884
|
"inline": true,
|
|
6636
6885
|
"falseIcon": falseIcon.value,
|
|
@@ -6670,10 +6919,11 @@
|
|
|
6670
6919
|
const [inputProps, _1] = VInput.filterProps(props);
|
|
6671
6920
|
const [checkboxProps, _2] = VCheckboxBtn.filterProps(props);
|
|
6672
6921
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
6673
|
-
"class":
|
|
6922
|
+
"class": ['v-checkbox', props.class]
|
|
6674
6923
|
}, inputAttrs, inputProps, {
|
|
6675
6924
|
"id": id.value,
|
|
6676
|
-
"focused": isFocused.value
|
|
6925
|
+
"focused": isFocused.value,
|
|
6926
|
+
"style": props.style
|
|
6677
6927
|
}), {
|
|
6678
6928
|
...slots,
|
|
6679
6929
|
default: _ref2 => {
|
|
@@ -6704,6 +6954,7 @@
|
|
|
6704
6954
|
end: Boolean,
|
|
6705
6955
|
icon: IconValue,
|
|
6706
6956
|
image: String,
|
|
6957
|
+
...makeComponentProps(),
|
|
6707
6958
|
...makeDensityProps(),
|
|
6708
6959
|
...makeRoundedProps(),
|
|
6709
6960
|
...makeSizeProps(),
|
|
@@ -6742,8 +6993,8 @@
|
|
|
6742
6993
|
"class": ['v-avatar', {
|
|
6743
6994
|
'v-avatar--start': props.start,
|
|
6744
6995
|
'v-avatar--end': props.end
|
|
6745
|
-
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value],
|
|
6746
|
-
"style": [colorStyles.value, sizeStyles.value]
|
|
6996
|
+
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
|
6997
|
+
"style": [colorStyles.value, sizeStyles.value, props.style]
|
|
6747
6998
|
}, {
|
|
6748
6999
|
default: () => [props.image ? vue.createVNode(VImg, {
|
|
6749
7000
|
"key": "image",
|
|
@@ -6771,6 +7022,7 @@
|
|
|
6771
7022
|
type: Function,
|
|
6772
7023
|
default: deepEqual
|
|
6773
7024
|
},
|
|
7025
|
+
...makeComponentProps(),
|
|
6774
7026
|
...makeGroupProps({
|
|
6775
7027
|
selectedClass: 'v-chip--selected'
|
|
6776
7028
|
}),
|
|
@@ -6808,7 +7060,8 @@
|
|
|
6808
7060
|
useRender(() => vue.createVNode(props.tag, {
|
|
6809
7061
|
"class": ['v-chip-group', {
|
|
6810
7062
|
'v-chip-group--column': props.column
|
|
6811
|
-
}, themeClasses.value]
|
|
7063
|
+
}, themeClasses.value, props.class],
|
|
7064
|
+
"style": props.style
|
|
6812
7065
|
}, {
|
|
6813
7066
|
default: () => [slots.default?.({
|
|
6814
7067
|
isSelected,
|
|
@@ -6822,8 +7075,6 @@
|
|
|
6822
7075
|
}
|
|
6823
7076
|
});
|
|
6824
7077
|
|
|
6825
|
-
// Types
|
|
6826
|
-
|
|
6827
7078
|
const VChip = genericComponent()({
|
|
6828
7079
|
name: 'VChip',
|
|
6829
7080
|
directives: {
|
|
@@ -6868,6 +7119,7 @@
|
|
|
6868
7119
|
onClick: EventProp(),
|
|
6869
7120
|
onClickOnce: EventProp(),
|
|
6870
7121
|
...makeBorderProps(),
|
|
7122
|
+
...makeComponentProps(),
|
|
6871
7123
|
...makeDensityProps(),
|
|
6872
7124
|
...makeElevationProps(),
|
|
6873
7125
|
...makeGroupItemProps(),
|
|
@@ -6960,8 +7212,8 @@
|
|
|
6960
7212
|
'v-chip--link': isClickable.value,
|
|
6961
7213
|
'v-chip--filter': hasFilter,
|
|
6962
7214
|
'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],
|
|
7215
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value, props.class],
|
|
7216
|
+
"style": [hasColor ? colorStyles.value : undefined, props.style],
|
|
6965
7217
|
"disabled": props.disabled || undefined,
|
|
6966
7218
|
"draggable": props.draggable,
|
|
6967
7219
|
"href": link.href.value,
|
|
@@ -7070,6 +7322,7 @@
|
|
|
7070
7322
|
length: [Number, String],
|
|
7071
7323
|
thickness: [Number, String],
|
|
7072
7324
|
vertical: Boolean,
|
|
7325
|
+
...makeComponentProps(),
|
|
7073
7326
|
...makeThemeProps()
|
|
7074
7327
|
},
|
|
7075
7328
|
setup(props, _ref) {
|
|
@@ -7098,8 +7351,8 @@
|
|
|
7098
7351
|
'v-divider': true,
|
|
7099
7352
|
'v-divider--inset': props.inset,
|
|
7100
7353
|
'v-divider--vertical': props.vertical
|
|
7101
|
-
}, themeClasses.value, textColorClasses.value],
|
|
7102
|
-
"style": [dividerStyles.value, textColorStyles.value],
|
|
7354
|
+
}, themeClasses.value, textColorClasses.value, props.class],
|
|
7355
|
+
"style": [dividerStyles.value, textColorStyles.value, props.style],
|
|
7103
7356
|
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
|
7104
7357
|
"role": `${attrs.role || 'separator'}`
|
|
7105
7358
|
}, null));
|
|
@@ -7598,6 +7851,7 @@
|
|
|
7598
7851
|
fluid: Boolean,
|
|
7599
7852
|
subgroup: Boolean,
|
|
7600
7853
|
value: null,
|
|
7854
|
+
...makeComponentProps(),
|
|
7601
7855
|
...makeTagProps()
|
|
7602
7856
|
}, 'v-list-group');
|
|
7603
7857
|
const VListGroup = genericComponent()({
|
|
@@ -7646,7 +7900,8 @@
|
|
|
7646
7900
|
'v-list-group--fluid': props.fluid,
|
|
7647
7901
|
'v-list-group--subgroup': props.subgroup,
|
|
7648
7902
|
'v-list-group--open': isOpen.value
|
|
7649
|
-
}]
|
|
7903
|
+
}, props.class],
|
|
7904
|
+
"style": props.style
|
|
7650
7905
|
}, {
|
|
7651
7906
|
default: () => [slots.activator && vue.createVNode(VDefaultsProvider, {
|
|
7652
7907
|
"defaults": activatorDefaults.value
|
|
@@ -7713,6 +7968,7 @@
|
|
|
7713
7968
|
onClick: EventProp(),
|
|
7714
7969
|
onClickOnce: EventProp(),
|
|
7715
7970
|
...makeBorderProps(),
|
|
7971
|
+
...makeComponentProps(),
|
|
7716
7972
|
...makeDensityProps(),
|
|
7717
7973
|
...makeDimensionProps(),
|
|
7718
7974
|
...makeElevationProps(),
|
|
@@ -7823,8 +8079,8 @@
|
|
|
7823
8079
|
'v-list-item--nav': props.nav,
|
|
7824
8080
|
'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,
|
|
7825
8081
|
[`${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],
|
|
8082
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
|
8083
|
+
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, props.style],
|
|
7828
8084
|
"href": link.href.value,
|
|
7829
8085
|
"tabindex": isClickable.value ? 0 : undefined,
|
|
7830
8086
|
"onClick": onClick,
|
|
@@ -7917,6 +8173,7 @@
|
|
|
7917
8173
|
inset: Boolean,
|
|
7918
8174
|
sticky: Boolean,
|
|
7919
8175
|
title: String,
|
|
8176
|
+
...makeComponentProps(),
|
|
7920
8177
|
...makeTagProps()
|
|
7921
8178
|
},
|
|
7922
8179
|
setup(props, _ref) {
|
|
@@ -7933,10 +8190,10 @@
|
|
|
7933
8190
|
"class": ['v-list-subheader', {
|
|
7934
8191
|
'v-list-subheader--inset': props.inset,
|
|
7935
8192
|
'v-list-subheader--sticky': props.sticky
|
|
7936
|
-
}, textColorClasses.value],
|
|
7937
|
-
"style": {
|
|
8193
|
+
}, textColorClasses.value, props.class],
|
|
8194
|
+
"style": [{
|
|
7938
8195
|
textColorStyles
|
|
7939
|
-
}
|
|
8196
|
+
}, props.style]
|
|
7940
8197
|
}, {
|
|
7941
8198
|
default: () => [hasText && vue.createVNode("div", {
|
|
7942
8199
|
"class": "v-list-subheader__text"
|
|
@@ -8156,6 +8413,7 @@
|
|
|
8156
8413
|
openStrategy: 'list'
|
|
8157
8414
|
}),
|
|
8158
8415
|
...makeBorderProps(),
|
|
8416
|
+
...makeComponentProps(),
|
|
8159
8417
|
...makeDensityProps(),
|
|
8160
8418
|
...makeDimensionProps(),
|
|
8161
8419
|
...makeElevationProps(),
|
|
@@ -8267,8 +8525,8 @@
|
|
|
8267
8525
|
"class": ['v-list', {
|
|
8268
8526
|
'v-list--disabled': props.disabled,
|
|
8269
8527
|
'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],
|
|
8528
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class],
|
|
8529
|
+
"style": [backgroundColorStyles.value, dimensionStyles.value, props.style],
|
|
8272
8530
|
"role": "listbox",
|
|
8273
8531
|
"aria-activedescendant": undefined,
|
|
8274
8532
|
"onFocusin": onFocusin,
|
|
@@ -8296,6 +8554,7 @@
|
|
|
8296
8554
|
props: {
|
|
8297
8555
|
start: Boolean,
|
|
8298
8556
|
end: Boolean,
|
|
8557
|
+
...makeComponentProps(),
|
|
8299
8558
|
...makeTagProps()
|
|
8300
8559
|
},
|
|
8301
8560
|
setup(props, _ref) {
|
|
@@ -8306,7 +8565,8 @@
|
|
|
8306
8565
|
"class": ['v-list-item-action', {
|
|
8307
8566
|
'v-list-item-action--start': props.start,
|
|
8308
8567
|
'v-list-item-action--end': props.end
|
|
8309
|
-
}]
|
|
8568
|
+
}, props.class],
|
|
8569
|
+
"style": props.style
|
|
8310
8570
|
}, slots));
|
|
8311
8571
|
return {};
|
|
8312
8572
|
}
|
|
@@ -8317,6 +8577,7 @@
|
|
|
8317
8577
|
props: {
|
|
8318
8578
|
start: Boolean,
|
|
8319
8579
|
end: Boolean,
|
|
8580
|
+
...makeComponentProps(),
|
|
8320
8581
|
...makeTagProps()
|
|
8321
8582
|
},
|
|
8322
8583
|
setup(props, _ref) {
|
|
@@ -8328,7 +8589,8 @@
|
|
|
8328
8589
|
"class": ['v-list-item-media', {
|
|
8329
8590
|
'v-list-item-media--start': props.start,
|
|
8330
8591
|
'v-list-item-media--end': props.end
|
|
8331
|
-
}]
|
|
8592
|
+
}, props.class],
|
|
8593
|
+
"style": props.style
|
|
8332
8594
|
}, slots);
|
|
8333
8595
|
});
|
|
8334
8596
|
return {};
|
|
@@ -9569,6 +9831,7 @@
|
|
|
9569
9831
|
default: 2000
|
|
9570
9832
|
},
|
|
9571
9833
|
...makeActivatorProps(),
|
|
9834
|
+
...makeComponentProps(),
|
|
9572
9835
|
...makeDimensionProps(),
|
|
9573
9836
|
...makeLazyProps(),
|
|
9574
9837
|
...makeLocationStrategyProps(),
|
|
@@ -9736,10 +9999,10 @@
|
|
|
9736
9999
|
'v-overlay--absolute': props.absolute || props.contained,
|
|
9737
10000
|
'v-overlay--active': isActive.value,
|
|
9738
10001
|
'v-overlay--contained': props.contained
|
|
9739
|
-
}, themeClasses.value, rtlClasses.value],
|
|
10002
|
+
}, themeClasses.value, rtlClasses.value, props.class],
|
|
9740
10003
|
"style": [stackStyles.value, {
|
|
9741
10004
|
top: convertToUnit(top.value)
|
|
9742
|
-
}],
|
|
10005
|
+
}, props.style],
|
|
9743
10006
|
"ref": root
|
|
9744
10007
|
}, scopeId, attrs), [vue.createVNode(Scrim, vue.mergeProps({
|
|
9745
10008
|
"color": scrimColor,
|
|
@@ -9845,7 +10108,8 @@
|
|
|
9845
10108
|
const [overlayProps] = VOverlay.filterProps(props);
|
|
9846
10109
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
|
9847
10110
|
"ref": overlay,
|
|
9848
|
-
"class": ['v-menu']
|
|
10111
|
+
"class": ['v-menu', props.class],
|
|
10112
|
+
"style": props.style
|
|
9849
10113
|
}, overlayProps, {
|
|
9850
10114
|
"modelValue": isActive.value,
|
|
9851
10115
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
@@ -10064,7 +10328,8 @@
|
|
|
10064
10328
|
'v-select--chips': !!props.chips,
|
|
10065
10329
|
[`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,
|
|
10066
10330
|
'v-select--selected': model.value.length
|
|
10067
|
-
}],
|
|
10331
|
+
}, props.class],
|
|
10332
|
+
"style": props.style,
|
|
10068
10333
|
"appendInnerIcon": props.menuIcon,
|
|
10069
10334
|
"readonly": true,
|
|
10070
10335
|
"placeholder": placeholder,
|
|
@@ -10507,7 +10772,8 @@
|
|
|
10507
10772
|
'v-autocomplete--selecting-index': selectionIndex.value > -1,
|
|
10508
10773
|
[`v-autocomplete--${props.multiple ? 'multiple' : 'single'}`]: true,
|
|
10509
10774
|
'v-autocomplete--selection-slot': !!slots.selection
|
|
10510
|
-
}],
|
|
10775
|
+
}, props.class],
|
|
10776
|
+
"style": props.style,
|
|
10511
10777
|
"appendInnerIcon": props.menuIcon,
|
|
10512
10778
|
"readonly": props.readonly,
|
|
10513
10779
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
@@ -10621,8 +10887,6 @@
|
|
|
10621
10887
|
}
|
|
10622
10888
|
});
|
|
10623
10889
|
|
|
10624
|
-
// Types
|
|
10625
|
-
|
|
10626
10890
|
const VBadge = genericComponent()({
|
|
10627
10891
|
name: 'VBadge',
|
|
10628
10892
|
inheritAttrs: false,
|
|
@@ -10646,6 +10910,7 @@
|
|
|
10646
10910
|
offsetX: [Number, String],
|
|
10647
10911
|
offsetY: [Number, String],
|
|
10648
10912
|
textColor: String,
|
|
10913
|
+
...makeComponentProps(),
|
|
10649
10914
|
...makeLocationProps({
|
|
10650
10915
|
location: 'top end'
|
|
10651
10916
|
}),
|
|
@@ -10690,8 +10955,10 @@
|
|
|
10690
10955
|
'v-badge--dot': props.dot,
|
|
10691
10956
|
'v-badge--floating': props.floating,
|
|
10692
10957
|
'v-badge--inline': props.inline
|
|
10693
|
-
}]
|
|
10694
|
-
}, attrs
|
|
10958
|
+
}, props.class]
|
|
10959
|
+
}, attrs, {
|
|
10960
|
+
"style": props.style
|
|
10961
|
+
}), {
|
|
10695
10962
|
default: () => [vue.createVNode("div", {
|
|
10696
10963
|
"class": "v-badge__wrapper"
|
|
10697
10964
|
}, [ctx.slots.default?.(), vue.createVNode(MaybeTransition, {
|
|
@@ -10718,7 +10985,8 @@
|
|
|
10718
10985
|
name: 'VBannerActions',
|
|
10719
10986
|
props: {
|
|
10720
10987
|
color: String,
|
|
10721
|
-
density: String
|
|
10988
|
+
density: String,
|
|
10989
|
+
...makeComponentProps()
|
|
10722
10990
|
},
|
|
10723
10991
|
setup(props, _ref) {
|
|
10724
10992
|
let {
|
|
@@ -10732,7 +11000,8 @@
|
|
|
10732
11000
|
}
|
|
10733
11001
|
});
|
|
10734
11002
|
useRender(() => vue.createVNode("div", {
|
|
10735
|
-
"class":
|
|
11003
|
+
"class": ['v-banner-actions', props.class],
|
|
11004
|
+
"style": props.style
|
|
10736
11005
|
}, [slots.default?.()]));
|
|
10737
11006
|
return {};
|
|
10738
11007
|
}
|
|
@@ -10753,6 +11022,7 @@
|
|
|
10753
11022
|
sticky: Boolean,
|
|
10754
11023
|
text: String,
|
|
10755
11024
|
...makeBorderProps(),
|
|
11025
|
+
...makeComponentProps(),
|
|
10756
11026
|
...makeDensityProps(),
|
|
10757
11027
|
...makeDimensionProps(),
|
|
10758
11028
|
...makeElevationProps(),
|
|
@@ -10810,8 +11080,8 @@
|
|
|
10810
11080
|
'v-banner--stacked': props.stacked || mobile.value,
|
|
10811
11081
|
'v-banner--sticky': props.sticky,
|
|
10812
11082
|
[`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],
|
|
11083
|
+
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
11084
|
+
"style": [dimensionStyles.value, locationStyles.value, props.style],
|
|
10815
11085
|
"role": "banner"
|
|
10816
11086
|
}, {
|
|
10817
11087
|
default: () => [hasPrepend && vue.createVNode("div", {
|
|
@@ -10867,6 +11137,7 @@
|
|
|
10867
11137
|
default: true
|
|
10868
11138
|
},
|
|
10869
11139
|
...makeBorderProps(),
|
|
11140
|
+
...makeComponentProps(),
|
|
10870
11141
|
...makeDensityProps(),
|
|
10871
11142
|
...makeElevationProps(),
|
|
10872
11143
|
...makeRoundedProps(),
|
|
@@ -10941,11 +11212,11 @@
|
|
|
10941
11212
|
'v-bottom-navigation--active': isActive.value,
|
|
10942
11213
|
'v-bottom-navigation--grow': props.grow,
|
|
10943
11214
|
'v-bottom-navigation--shift': props.mode === 'shift'
|
|
10944
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value],
|
|
11215
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
10945
11216
|
"style": [backgroundColorStyles.value, layoutItemStyles.value, {
|
|
10946
11217
|
height: convertToUnit(height.value),
|
|
10947
11218
|
transform: `translateY(${convertToUnit(!isActive.value ? 100 : 0, '%')})`
|
|
10948
|
-
}, ssrBootStyles.value]
|
|
11219
|
+
}, ssrBootStyles.value, props.style]
|
|
10949
11220
|
}, {
|
|
10950
11221
|
default: () => [slots.default && vue.createVNode("div", {
|
|
10951
11222
|
"class": "v-bottom-navigation__content"
|
|
@@ -10959,14 +11230,16 @@
|
|
|
10959
11230
|
const VBreadcrumbsDivider = genericComponent()({
|
|
10960
11231
|
name: 'VBreadcrumbsDivider',
|
|
10961
11232
|
props: {
|
|
10962
|
-
divider: [Number, String]
|
|
11233
|
+
divider: [Number, String],
|
|
11234
|
+
...makeComponentProps()
|
|
10963
11235
|
},
|
|
10964
11236
|
setup(props, _ref) {
|
|
10965
11237
|
let {
|
|
10966
11238
|
slots
|
|
10967
11239
|
} = _ref;
|
|
10968
11240
|
useRender(() => vue.createVNode("li", {
|
|
10969
|
-
"class":
|
|
11241
|
+
"class": ['v-breadcrumbs-divider', props.class],
|
|
11242
|
+
"style": props.style
|
|
10970
11243
|
}, [slots?.default?.() ?? props.divider]));
|
|
10971
11244
|
return {};
|
|
10972
11245
|
}
|
|
@@ -10981,6 +11254,7 @@
|
|
|
10981
11254
|
color: String,
|
|
10982
11255
|
disabled: Boolean,
|
|
10983
11256
|
title: String,
|
|
11257
|
+
...makeComponentProps(),
|
|
10984
11258
|
...makeRouterProps(),
|
|
10985
11259
|
...makeTagProps({
|
|
10986
11260
|
tag: 'li'
|
|
@@ -11006,8 +11280,8 @@
|
|
|
11006
11280
|
'v-breadcrumbs-item--disabled': props.disabled,
|
|
11007
11281
|
'v-breadcrumbs-item--link': link.isLink.value,
|
|
11008
11282
|
[`${props.activeClass}`]: isActive.value && props.activeClass
|
|
11009
|
-
}, textColorClasses.value],
|
|
11010
|
-
"style": [textColorStyles.value],
|
|
11283
|
+
}, textColorClasses.value, props.class],
|
|
11284
|
+
"style": [textColorStyles.value, props.style],
|
|
11011
11285
|
"href": link.href.value,
|
|
11012
11286
|
"aria-current": isActive.value ? 'page' : undefined,
|
|
11013
11287
|
"onClick": link.navigate
|
|
@@ -11038,6 +11312,7 @@
|
|
|
11038
11312
|
type: Array,
|
|
11039
11313
|
default: () => []
|
|
11040
11314
|
},
|
|
11315
|
+
...makeComponentProps(),
|
|
11041
11316
|
...makeDensityProps(),
|
|
11042
11317
|
...makeRoundedProps(),
|
|
11043
11318
|
...makeTagProps({
|
|
@@ -11083,8 +11358,8 @@
|
|
|
11083
11358
|
useRender(() => {
|
|
11084
11359
|
const hasPrepend = !!(slots.prepend || props.icon);
|
|
11085
11360
|
return vue.createVNode(props.tag, {
|
|
11086
|
-
"class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value],
|
|
11087
|
-
"style": backgroundColorStyles.value
|
|
11361
|
+
"class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value, props.class],
|
|
11362
|
+
"style": [backgroundColorStyles.value, props.style]
|
|
11088
11363
|
}, {
|
|
11089
11364
|
default: () => [hasPrepend && vue.createVNode("div", {
|
|
11090
11365
|
"key": "prepend",
|
|
@@ -11128,11 +11403,10 @@
|
|
|
11128
11403
|
}
|
|
11129
11404
|
});
|
|
11130
11405
|
|
|
11131
|
-
|
|
11132
|
-
|
|
11133
|
-
const VCardActions = defineComponent({
|
|
11406
|
+
const VCardActions = genericComponent()({
|
|
11134
11407
|
name: 'VCardActions',
|
|
11135
|
-
|
|
11408
|
+
props: makeComponentProps(),
|
|
11409
|
+
setup(props, _ref) {
|
|
11136
11410
|
let {
|
|
11137
11411
|
slots
|
|
11138
11412
|
} = _ref;
|
|
@@ -11142,7 +11416,8 @@
|
|
|
11142
11416
|
}
|
|
11143
11417
|
});
|
|
11144
11418
|
useRender(() => vue.createVNode("div", {
|
|
11145
|
-
"class":
|
|
11419
|
+
"class": ['v-card-actions', props.class],
|
|
11420
|
+
"style": props.style
|
|
11146
11421
|
}, [slots.default?.()]));
|
|
11147
11422
|
return {};
|
|
11148
11423
|
}
|
|
@@ -11152,8 +11427,6 @@
|
|
|
11152
11427
|
|
|
11153
11428
|
const VCardTitle = createSimpleFunctional('v-card-title');
|
|
11154
11429
|
|
|
11155
|
-
// Types
|
|
11156
|
-
|
|
11157
11430
|
const VCardItem = genericComponent()({
|
|
11158
11431
|
name: 'VCardItem',
|
|
11159
11432
|
props: {
|
|
@@ -11163,6 +11436,7 @@
|
|
|
11163
11436
|
prependIcon: IconValue,
|
|
11164
11437
|
subtitle: String,
|
|
11165
11438
|
title: String,
|
|
11439
|
+
...makeComponentProps(),
|
|
11166
11440
|
...makeDensityProps()
|
|
11167
11441
|
},
|
|
11168
11442
|
setup(props, _ref) {
|
|
@@ -11177,7 +11451,8 @@
|
|
|
11177
11451
|
const hasTitle = !!(props.title || slots.title);
|
|
11178
11452
|
const hasSubtitle = !!(props.subtitle || slots.subtitle);
|
|
11179
11453
|
return vue.createVNode("div", {
|
|
11180
|
-
"class":
|
|
11454
|
+
"class": ['v-card-item', props.class],
|
|
11455
|
+
"style": props.style
|
|
11181
11456
|
}, [hasPrepend && vue.createVNode("div", {
|
|
11182
11457
|
"key": "prepend",
|
|
11183
11458
|
"class": "v-card-item__prepend"
|
|
@@ -11259,8 +11534,8 @@
|
|
|
11259
11534
|
subtitle: String,
|
|
11260
11535
|
text: String,
|
|
11261
11536
|
title: String,
|
|
11262
|
-
...makeThemeProps(),
|
|
11263
11537
|
...makeBorderProps(),
|
|
11538
|
+
...makeComponentProps(),
|
|
11264
11539
|
...makeDensityProps(),
|
|
11265
11540
|
...makeDimensionProps(),
|
|
11266
11541
|
...makeElevationProps(),
|
|
@@ -11270,6 +11545,7 @@
|
|
|
11270
11545
|
...makeRoundedProps(),
|
|
11271
11546
|
...makeRouterProps(),
|
|
11272
11547
|
...makeTagProps(),
|
|
11548
|
+
...makeThemeProps(),
|
|
11273
11549
|
...makeVariantProps({
|
|
11274
11550
|
variant: 'elevated'
|
|
11275
11551
|
})
|
|
@@ -11330,8 +11606,8 @@
|
|
|
11330
11606
|
'v-card--flat': props.flat,
|
|
11331
11607
|
'v-card--hover': props.hover && !(props.disabled || props.flat),
|
|
11332
11608
|
'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],
|
|
11609
|
+
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
|
11610
|
+
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
|
|
11335
11611
|
"href": link.href.value,
|
|
11336
11612
|
"onClick": isClickable.value && link.navigate,
|
|
11337
11613
|
"tabindex": props.disabled ? -1 : undefined
|
|
@@ -11527,6 +11803,7 @@
|
|
|
11527
11803
|
mandatory: {
|
|
11528
11804
|
default: 'force'
|
|
11529
11805
|
},
|
|
11806
|
+
...makeComponentProps(),
|
|
11530
11807
|
...makeTagProps(),
|
|
11531
11808
|
...makeThemeProps()
|
|
11532
11809
|
}, 'v-window');
|
|
@@ -11642,7 +11919,8 @@
|
|
|
11642
11919
|
"ref": rootRef,
|
|
11643
11920
|
"class": ['v-window', {
|
|
11644
11921
|
'v-window--show-arrows-on-hover': props.showArrows === 'hover'
|
|
11645
|
-
}, themeClasses.value]
|
|
11922
|
+
}, themeClasses.value, props.class],
|
|
11923
|
+
"style": props.style
|
|
11646
11924
|
}, {
|
|
11647
11925
|
default: () => [vue.createVNode("div", {
|
|
11648
11926
|
"class": "v-window__container",
|
|
@@ -11727,10 +12005,10 @@
|
|
|
11727
12005
|
"class": ['v-carousel', {
|
|
11728
12006
|
'v-carousel--hide-delimiter-background': props.hideDelimiterBackground,
|
|
11729
12007
|
'v-carousel--vertical-delimiters': props.verticalDelimiters
|
|
11730
|
-
}],
|
|
11731
|
-
"style": {
|
|
12008
|
+
}, props.class],
|
|
12009
|
+
"style": [{
|
|
11732
12010
|
height: convertToUnit(props.height)
|
|
11733
|
-
},
|
|
12011
|
+
}, props.style],
|
|
11734
12012
|
"continuous": true,
|
|
11735
12013
|
"mandatory": "force",
|
|
11736
12014
|
"showArrows": props.showArrows
|
|
@@ -11796,6 +12074,7 @@
|
|
|
11796
12074
|
type: [Boolean, String],
|
|
11797
12075
|
default: undefined
|
|
11798
12076
|
},
|
|
12077
|
+
...makeComponentProps(),
|
|
11799
12078
|
...makeGroupItemProps(),
|
|
11800
12079
|
...makeLazyProps()
|
|
11801
12080
|
},
|
|
@@ -11882,7 +12161,8 @@
|
|
|
11882
12161
|
"disabled": !isBooted.value
|
|
11883
12162
|
}, {
|
|
11884
12163
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
|
11885
|
-
"class": ['v-window-item', groupItem.selectedClass.value]
|
|
12164
|
+
"class": ['v-window-item', groupItem.selectedClass.value, props.class],
|
|
12165
|
+
"style": props.style
|
|
11886
12166
|
}, [hasContent.value && slots.default?.()]), [[vue.vShow, groupItem.isSelected.value]])]
|
|
11887
12167
|
}));
|
|
11888
12168
|
return {};
|
|
@@ -11895,7 +12175,8 @@
|
|
|
11895
12175
|
name: 'VCarouselItem',
|
|
11896
12176
|
inheritAttrs: false,
|
|
11897
12177
|
props: {
|
|
11898
|
-
value: null
|
|
12178
|
+
value: null,
|
|
12179
|
+
...makeComponentProps()
|
|
11899
12180
|
},
|
|
11900
12181
|
setup(props, _ref) {
|
|
11901
12182
|
let {
|
|
@@ -11903,7 +12184,8 @@
|
|
|
11903
12184
|
attrs
|
|
11904
12185
|
} = _ref;
|
|
11905
12186
|
useRender(() => vue.createVNode(VWindowItem, {
|
|
11906
|
-
"class":
|
|
12187
|
+
"class": ['v-carousel-item', props.class],
|
|
12188
|
+
"style": props.style,
|
|
11907
12189
|
"value": props.value
|
|
11908
12190
|
}, {
|
|
11909
12191
|
default: () => [vue.createVNode(VImg, attrs, slots)]
|
|
@@ -11916,6 +12198,7 @@
|
|
|
11916
12198
|
const makeVSheetProps = propsFactory({
|
|
11917
12199
|
color: String,
|
|
11918
12200
|
...makeBorderProps(),
|
|
12201
|
+
...makeComponentProps(),
|
|
11919
12202
|
...makeDimensionProps(),
|
|
11920
12203
|
...makeElevationProps(),
|
|
11921
12204
|
...makeLocationProps(),
|
|
@@ -11959,8 +12242,8 @@
|
|
|
11959
12242
|
roundedClasses
|
|
11960
12243
|
} = useRounded(props);
|
|
11961
12244
|
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]
|
|
12245
|
+
"class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class],
|
|
12246
|
+
"style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style]
|
|
11964
12247
|
}, slots));
|
|
11965
12248
|
return {};
|
|
11966
12249
|
}
|
|
@@ -11986,7 +12269,8 @@
|
|
|
11986
12269
|
width: {
|
|
11987
12270
|
type: [Number, String],
|
|
11988
12271
|
default: 300
|
|
11989
|
-
}
|
|
12272
|
+
},
|
|
12273
|
+
...makeComponentProps()
|
|
11990
12274
|
},
|
|
11991
12275
|
emits: {
|
|
11992
12276
|
'update:color': color => true,
|
|
@@ -12131,7 +12415,8 @@
|
|
|
12131
12415
|
vue.onMounted(() => updateCanvas());
|
|
12132
12416
|
useRender(() => vue.createVNode("div", {
|
|
12133
12417
|
"ref": resizeRef,
|
|
12134
|
-
"class":
|
|
12418
|
+
"class": ['v-color-picker-canvas', props.class],
|
|
12419
|
+
"style": props.style,
|
|
12135
12420
|
"onClick": handleClick,
|
|
12136
12421
|
"onMousedown": handleMouseDown,
|
|
12137
12422
|
"onTouchstart": handleMouseDown
|
|
@@ -12364,7 +12649,8 @@
|
|
|
12364
12649
|
type: Array,
|
|
12365
12650
|
default: () => Object.keys(modes),
|
|
12366
12651
|
validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))
|
|
12367
|
-
}
|
|
12652
|
+
},
|
|
12653
|
+
...makeComponentProps()
|
|
12368
12654
|
},
|
|
12369
12655
|
emits: {
|
|
12370
12656
|
'update:color': color => true,
|
|
@@ -12404,7 +12690,8 @@
|
|
|
12404
12690
|
});
|
|
12405
12691
|
});
|
|
12406
12692
|
useRender(() => vue.createVNode("div", {
|
|
12407
|
-
"class":
|
|
12693
|
+
"class": ['v-color-picker-edit', props.class],
|
|
12694
|
+
"style": props.style
|
|
12408
12695
|
}, [inputs.value?.map(props => vue.createVNode(VColorPickerInput, props, null)), enabledModes.value.length > 1 && vue.createVNode(VBtn, {
|
|
12409
12696
|
"icon": "$unfold",
|
|
12410
12697
|
"size": "x-small",
|
|
@@ -12488,11 +12775,33 @@
|
|
|
12488
12775
|
elevation: 2
|
|
12489
12776
|
})
|
|
12490
12777
|
}, 'slider');
|
|
12778
|
+
const useSteps = props => {
|
|
12779
|
+
const min = vue.computed(() => parseFloat(props.min));
|
|
12780
|
+
const max = vue.computed(() => parseFloat(props.max));
|
|
12781
|
+
const step = vue.computed(() => +props.step > 0 ? parseFloat(props.step) : 0);
|
|
12782
|
+
const decimals = vue.computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
|
|
12783
|
+
function roundValue(value) {
|
|
12784
|
+
if (step.value <= 0) return value;
|
|
12785
|
+
const clamped = clamp(value, min.value, max.value);
|
|
12786
|
+
const offset = min.value % step.value;
|
|
12787
|
+
const newValue = Math.round((clamped - offset) / step.value) * step.value + offset;
|
|
12788
|
+
return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value));
|
|
12789
|
+
}
|
|
12790
|
+
return {
|
|
12791
|
+
min,
|
|
12792
|
+
max,
|
|
12793
|
+
step,
|
|
12794
|
+
decimals,
|
|
12795
|
+
roundValue
|
|
12796
|
+
};
|
|
12797
|
+
};
|
|
12491
12798
|
const useSlider = _ref => {
|
|
12492
12799
|
let {
|
|
12493
12800
|
props,
|
|
12494
|
-
|
|
12495
|
-
|
|
12801
|
+
steps,
|
|
12802
|
+
onSliderStart,
|
|
12803
|
+
onSliderMove,
|
|
12804
|
+
onSliderEnd,
|
|
12496
12805
|
getActiveThumb
|
|
12497
12806
|
} = _ref;
|
|
12498
12807
|
const {
|
|
@@ -12506,10 +12815,13 @@
|
|
|
12506
12815
|
}
|
|
12507
12816
|
return hd;
|
|
12508
12817
|
});
|
|
12509
|
-
const
|
|
12510
|
-
|
|
12511
|
-
|
|
12512
|
-
|
|
12818
|
+
const {
|
|
12819
|
+
min,
|
|
12820
|
+
max,
|
|
12821
|
+
step,
|
|
12822
|
+
decimals,
|
|
12823
|
+
roundValue
|
|
12824
|
+
} = steps;
|
|
12513
12825
|
const thumbSize = vue.computed(() => parseInt(props.thumbSize, 10));
|
|
12514
12826
|
const tickSize = vue.computed(() => parseInt(props.tickSize, 10));
|
|
12515
12827
|
const trackSize = vue.computed(() => parseInt(props.trackSize, 10));
|
|
@@ -12523,13 +12835,6 @@
|
|
|
12523
12835
|
const startOffset = vue.ref(0);
|
|
12524
12836
|
const trackContainerRef = vue.ref();
|
|
12525
12837
|
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
12838
|
function parseMouseMove(e) {
|
|
12534
12839
|
const vertical = props.direction === 'vertical';
|
|
12535
12840
|
const start = vertical ? 'top' : 'left';
|
|
@@ -12546,14 +12851,11 @@
|
|
|
12546
12851
|
if (vertical || horizontalDirection.value === 'rtl') clickPos = 1 - clickPos;
|
|
12547
12852
|
return roundValue(min.value + clickPos * (max.value - min.value));
|
|
12548
12853
|
}
|
|
12549
|
-
let thumbMoved = false;
|
|
12550
12854
|
const handleStop = e => {
|
|
12551
|
-
|
|
12552
|
-
|
|
12553
|
-
|
|
12554
|
-
}
|
|
12855
|
+
onSliderEnd({
|
|
12856
|
+
value: parseMouseMove(e)
|
|
12857
|
+
});
|
|
12555
12858
|
mousePressed.value = false;
|
|
12556
|
-
thumbMoved = false;
|
|
12557
12859
|
startOffset.value = 0;
|
|
12558
12860
|
};
|
|
12559
12861
|
const handleStart = e => {
|
|
@@ -12562,20 +12864,25 @@
|
|
|
12562
12864
|
activeThumbRef.value.focus();
|
|
12563
12865
|
mousePressed.value = true;
|
|
12564
12866
|
if (activeThumbRef.value.contains(e.target)) {
|
|
12565
|
-
thumbMoved = true;
|
|
12566
12867
|
startOffset.value = getOffset(e, activeThumbRef.value, props.direction);
|
|
12567
12868
|
} else {
|
|
12568
12869
|
startOffset.value = 0;
|
|
12569
|
-
|
|
12870
|
+
onSliderMove({
|
|
12871
|
+
value: parseMouseMove(e)
|
|
12872
|
+
});
|
|
12570
12873
|
}
|
|
12874
|
+
onSliderStart({
|
|
12875
|
+
value: parseMouseMove(e)
|
|
12876
|
+
});
|
|
12571
12877
|
};
|
|
12572
12878
|
const moveListenerOptions = {
|
|
12573
12879
|
passive: true,
|
|
12574
12880
|
capture: true
|
|
12575
12881
|
};
|
|
12576
12882
|
function onMouseMove(e) {
|
|
12577
|
-
|
|
12578
|
-
|
|
12883
|
+
onSliderMove({
|
|
12884
|
+
value: parseMouseMove(e)
|
|
12885
|
+
});
|
|
12579
12886
|
}
|
|
12580
12887
|
function onSliderMouseUp(e) {
|
|
12581
12888
|
e.stopPropagation();
|
|
@@ -12703,7 +13010,8 @@
|
|
|
12703
13010
|
ripple: {
|
|
12704
13011
|
type: Boolean,
|
|
12705
13012
|
default: true
|
|
12706
|
-
}
|
|
13013
|
+
},
|
|
13014
|
+
...makeComponentProps()
|
|
12707
13015
|
},
|
|
12708
13016
|
emits: {
|
|
12709
13017
|
'update:modelValue': v => true
|
|
@@ -12781,11 +13089,11 @@
|
|
|
12781
13089
|
"class": ['v-slider-thumb', {
|
|
12782
13090
|
'v-slider-thumb--focused': props.focused,
|
|
12783
13091
|
'v-slider-thumb--pressed': props.focused && mousePressed.value
|
|
12784
|
-
}],
|
|
12785
|
-
"style": {
|
|
13092
|
+
}, props.class],
|
|
13093
|
+
"style": [{
|
|
12786
13094
|
'--v-slider-thumb-position': positionPercentage,
|
|
12787
13095
|
'--v-slider-thumb-size': convertToUnit(thumbSize.value)
|
|
12788
|
-
},
|
|
13096
|
+
}, props.style],
|
|
12789
13097
|
"role": "slider",
|
|
12790
13098
|
"tabindex": disabled.value ? -1 : 0,
|
|
12791
13099
|
"aria-valuemin": props.min,
|
|
@@ -12831,7 +13139,8 @@
|
|
|
12831
13139
|
stop: {
|
|
12832
13140
|
type: Number,
|
|
12833
13141
|
required: true
|
|
12834
|
-
}
|
|
13142
|
+
},
|
|
13143
|
+
...makeComponentProps()
|
|
12835
13144
|
},
|
|
12836
13145
|
emits: {},
|
|
12837
13146
|
setup(props, _ref) {
|
|
@@ -12906,12 +13215,12 @@
|
|
|
12906
13215
|
});
|
|
12907
13216
|
useRender(() => {
|
|
12908
13217
|
return vue.createVNode("div", {
|
|
12909
|
-
"class": ['v-slider-track', roundedClasses.value],
|
|
12910
|
-
"style": {
|
|
13218
|
+
"class": ['v-slider-track', roundedClasses.value, props.class],
|
|
13219
|
+
"style": [{
|
|
12911
13220
|
'--v-slider-track-size': convertToUnit(trackSize.value),
|
|
12912
13221
|
'--v-slider-tick-size': convertToUnit(tickSize.value),
|
|
12913
13222
|
direction: !vertical.value ? horizontalDirection.value : undefined
|
|
12914
|
-
}
|
|
13223
|
+
}, props.style]
|
|
12915
13224
|
}, [vue.createVNode("div", {
|
|
12916
13225
|
"class": ['v-slider-track__background', trackColorClasses.value, {
|
|
12917
13226
|
'v-slider-track__background--opacity': !!color.value || !trackFillColor.value
|
|
@@ -12951,13 +13260,21 @@
|
|
|
12951
13260
|
},
|
|
12952
13261
|
emits: {
|
|
12953
13262
|
'update:focused': value => true,
|
|
12954
|
-
'update:modelValue': v => true
|
|
13263
|
+
'update:modelValue': v => true,
|
|
13264
|
+
start: value => true,
|
|
13265
|
+
end: value => true
|
|
12955
13266
|
},
|
|
12956
13267
|
setup(props, _ref) {
|
|
12957
13268
|
let {
|
|
12958
|
-
slots
|
|
13269
|
+
slots,
|
|
13270
|
+
emit
|
|
12959
13271
|
} = _ref;
|
|
12960
13272
|
const thumbContainerRef = vue.ref();
|
|
13273
|
+
const steps = useSteps(props);
|
|
13274
|
+
const model = useProxiedModel(props, 'modelValue', undefined, v => {
|
|
13275
|
+
const value = typeof v === 'string' ? parseFloat(v) : v == null ? steps.min.value : v;
|
|
13276
|
+
return steps.roundValue(value);
|
|
13277
|
+
});
|
|
12961
13278
|
const {
|
|
12962
13279
|
min,
|
|
12963
13280
|
max,
|
|
@@ -12971,16 +13288,26 @@
|
|
|
12971
13288
|
readonly
|
|
12972
13289
|
} = useSlider({
|
|
12973
13290
|
props,
|
|
12974
|
-
|
|
12975
|
-
|
|
12976
|
-
|
|
12977
|
-
|
|
13291
|
+
steps,
|
|
13292
|
+
onSliderStart: () => {
|
|
13293
|
+
emit('start', model.value);
|
|
13294
|
+
},
|
|
13295
|
+
onSliderEnd: _ref2 => {
|
|
13296
|
+
let {
|
|
13297
|
+
value
|
|
13298
|
+
} = _ref2;
|
|
13299
|
+
const roundedValue = roundValue(value);
|
|
13300
|
+
model.value = roundedValue;
|
|
13301
|
+
emit('end', roundedValue);
|
|
13302
|
+
},
|
|
13303
|
+
onSliderMove: _ref3 => {
|
|
13304
|
+
let {
|
|
13305
|
+
value
|
|
13306
|
+
} = _ref3;
|
|
13307
|
+
return model.value = roundValue(value);
|
|
13308
|
+
},
|
|
12978
13309
|
getActiveThumb: () => thumbContainerRef.value?.$el
|
|
12979
13310
|
});
|
|
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
13311
|
const {
|
|
12985
13312
|
isFocused,
|
|
12986
13313
|
focus,
|
|
@@ -12996,7 +13323,8 @@
|
|
|
12996
13323
|
'v-slider--focused': isFocused.value,
|
|
12997
13324
|
'v-slider--pressed': mousePressed.value,
|
|
12998
13325
|
'v-slider--disabled': props.disabled
|
|
12999
|
-
}]
|
|
13326
|
+
}, props.class],
|
|
13327
|
+
"style": props.style
|
|
13000
13328
|
}, inputProps, {
|
|
13001
13329
|
"focused": isFocused.value
|
|
13002
13330
|
}), {
|
|
@@ -13006,11 +13334,11 @@
|
|
|
13006
13334
|
"class": "v-slider__label",
|
|
13007
13335
|
"text": props.label
|
|
13008
13336
|
}, null) : undefined, slots.prepend?.(slotProps)]) : undefined,
|
|
13009
|
-
default:
|
|
13337
|
+
default: _ref4 => {
|
|
13010
13338
|
let {
|
|
13011
13339
|
id,
|
|
13012
13340
|
messagesId
|
|
13013
|
-
} =
|
|
13341
|
+
} = _ref4;
|
|
13014
13342
|
return vue.createVNode("div", {
|
|
13015
13343
|
"class": "v-slider__container",
|
|
13016
13344
|
"onMousedown": !readonly.value ? onSliderMousedown : undefined,
|
|
@@ -13059,7 +13387,8 @@
|
|
|
13059
13387
|
type: Object
|
|
13060
13388
|
},
|
|
13061
13389
|
disabled: Boolean,
|
|
13062
|
-
hideAlpha: Boolean
|
|
13390
|
+
hideAlpha: Boolean,
|
|
13391
|
+
...makeComponentProps()
|
|
13063
13392
|
},
|
|
13064
13393
|
emits: {
|
|
13065
13394
|
'update:color': color => true
|
|
@@ -13071,7 +13400,8 @@
|
|
|
13071
13400
|
useRender(() => vue.createVNode("div", {
|
|
13072
13401
|
"class": ['v-color-picker-preview', {
|
|
13073
13402
|
'v-color-picker-preview--hide-alpha': props.hideAlpha
|
|
13074
|
-
}]
|
|
13403
|
+
}, props.class],
|
|
13404
|
+
"style": props.style
|
|
13075
13405
|
}, [vue.createVNode("div", {
|
|
13076
13406
|
"class": "v-color-picker-preview__dot"
|
|
13077
13407
|
}, [vue.createVNode("div", {
|
|
@@ -13452,7 +13782,8 @@
|
|
|
13452
13782
|
},
|
|
13453
13783
|
disabled: Boolean,
|
|
13454
13784
|
color: Object,
|
|
13455
|
-
maxHeight: [Number, String]
|
|
13785
|
+
maxHeight: [Number, String],
|
|
13786
|
+
...makeComponentProps()
|
|
13456
13787
|
},
|
|
13457
13788
|
emits: {
|
|
13458
13789
|
'update:color': color => true
|
|
@@ -13462,10 +13793,10 @@
|
|
|
13462
13793
|
emit
|
|
13463
13794
|
} = _ref;
|
|
13464
13795
|
useRender(() => vue.createVNode("div", {
|
|
13465
|
-
"class":
|
|
13466
|
-
"style": {
|
|
13796
|
+
"class": ['v-color-picker-swatches', props.class],
|
|
13797
|
+
"style": [{
|
|
13467
13798
|
maxHeight: convertToUnit(props.maxHeight)
|
|
13468
|
-
}
|
|
13799
|
+
}, props.style]
|
|
13469
13800
|
}, [vue.createVNode("div", null, [props.swatches.map(swatch => vue.createVNode("div", {
|
|
13470
13801
|
"class": "v-color-picker-swatches__swatch"
|
|
13471
13802
|
}, [swatch.map(color => {
|
|
@@ -13569,13 +13900,13 @@
|
|
|
13569
13900
|
"rounded": props.rounded,
|
|
13570
13901
|
"elevation": props.elevation,
|
|
13571
13902
|
"theme": props.theme,
|
|
13572
|
-
"class": ['v-color-picker'],
|
|
13573
|
-
"style": {
|
|
13903
|
+
"class": ['v-color-picker', props.class],
|
|
13904
|
+
"style": [{
|
|
13574
13905
|
'--v-color-picker-color-hsv': HSVtoCSS({
|
|
13575
13906
|
...(currentColor.value ?? nullColor),
|
|
13576
13907
|
a: 1
|
|
13577
13908
|
})
|
|
13578
|
-
}
|
|
13909
|
+
}, props.style]
|
|
13579
13910
|
}, sheetProps, {
|
|
13580
13911
|
"maxWidth": props.width
|
|
13581
13912
|
}), {
|
|
@@ -13886,7 +14217,8 @@
|
|
|
13886
14217
|
'v-combobox--chips': !!props.chips,
|
|
13887
14218
|
'v-combobox--selecting-index': selectionIndex.value > -1,
|
|
13888
14219
|
[`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true
|
|
13889
|
-
}],
|
|
14220
|
+
}, props.class],
|
|
14221
|
+
"style": props.style,
|
|
13890
14222
|
"appendInnerIcon": props.items.length ? props.menuIcon : undefined,
|
|
13891
14223
|
"readonly": props.readonly,
|
|
13892
14224
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
@@ -14084,7 +14416,8 @@
|
|
|
14084
14416
|
"class": ['v-dialog', {
|
|
14085
14417
|
'v-dialog--fullscreen': props.fullscreen,
|
|
14086
14418
|
'v-dialog--scrollable': props.scrollable
|
|
14087
|
-
}]
|
|
14419
|
+
}, props.class],
|
|
14420
|
+
"style": props.style
|
|
14088
14421
|
}, overlayProps, {
|
|
14089
14422
|
"modelValue": isActive.value,
|
|
14090
14423
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
@@ -14123,6 +14456,7 @@
|
|
|
14123
14456
|
validator: v => allowedVariants.includes(v)
|
|
14124
14457
|
},
|
|
14125
14458
|
readonly: Boolean,
|
|
14459
|
+
...makeComponentProps(),
|
|
14126
14460
|
...makeGroupProps(),
|
|
14127
14461
|
...makeTagProps(),
|
|
14128
14462
|
...makeThemeProps()
|
|
@@ -14148,7 +14482,8 @@
|
|
|
14148
14482
|
}
|
|
14149
14483
|
});
|
|
14150
14484
|
useRender(() => vue.createVNode(props.tag, {
|
|
14151
|
-
"class": ['v-expansion-panels', themeClasses.value, variantClass.value]
|
|
14485
|
+
"class": ['v-expansion-panels', themeClasses.value, variantClass.value, props.class],
|
|
14486
|
+
"style": props.style
|
|
14152
14487
|
}, slots));
|
|
14153
14488
|
return {};
|
|
14154
14489
|
}
|
|
@@ -14177,6 +14512,7 @@
|
|
|
14177
14512
|
Ripple
|
|
14178
14513
|
},
|
|
14179
14514
|
props: {
|
|
14515
|
+
...makeComponentProps(),
|
|
14180
14516
|
...makeVExpansionPanelTitleProps()
|
|
14181
14517
|
},
|
|
14182
14518
|
setup(props, _ref) {
|
|
@@ -14199,8 +14535,8 @@
|
|
|
14199
14535
|
useRender(() => vue.withDirectives(vue.createVNode("button", {
|
|
14200
14536
|
"class": ['v-expansion-panel-title', {
|
|
14201
14537
|
'v-expansion-panel-title--active': expansionPanel.isSelected.value
|
|
14202
|
-
}, backgroundColorClasses.value],
|
|
14203
|
-
"style": backgroundColorStyles.value,
|
|
14538
|
+
}, backgroundColorClasses.value, props.class],
|
|
14539
|
+
"style": [backgroundColorStyles.value, props.style],
|
|
14204
14540
|
"type": "button",
|
|
14205
14541
|
"tabindex": expansionPanel.disabled.value ? -1 : undefined,
|
|
14206
14542
|
"disabled": expansionPanel.disabled.value,
|
|
@@ -14220,6 +14556,7 @@
|
|
|
14220
14556
|
const VExpansionPanelText = genericComponent()({
|
|
14221
14557
|
name: 'VExpansionPanelText',
|
|
14222
14558
|
props: {
|
|
14559
|
+
...makeComponentProps(),
|
|
14223
14560
|
...makeLazyProps()
|
|
14224
14561
|
},
|
|
14225
14562
|
setup(props, _ref) {
|
|
@@ -14236,7 +14573,8 @@
|
|
|
14236
14573
|
"onAfterLeave": onAfterLeave
|
|
14237
14574
|
}, {
|
|
14238
14575
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
|
14239
|
-
"class":
|
|
14576
|
+
"class": ['v-expansion-panel-text', props.class],
|
|
14577
|
+
"style": props.style
|
|
14240
14578
|
}, [slots.default && hasContent.value && vue.createVNode("div", {
|
|
14241
14579
|
"class": "v-expansion-panel-text__wrapper"
|
|
14242
14580
|
}, [slots.default?.()])]), [[vue.vShow, expansionPanel.isSelected.value]])]
|
|
@@ -14251,6 +14589,7 @@
|
|
|
14251
14589
|
title: String,
|
|
14252
14590
|
text: String,
|
|
14253
14591
|
bgColor: String,
|
|
14592
|
+
...makeComponentProps(),
|
|
14254
14593
|
...makeElevationProps(),
|
|
14255
14594
|
...makeGroupItemProps(),
|
|
14256
14595
|
...makeLazyProps(),
|
|
@@ -14299,8 +14638,8 @@
|
|
|
14299
14638
|
'v-expansion-panel--before-active': isBeforeSelected.value,
|
|
14300
14639
|
'v-expansion-panel--after-active': isAfterSelected.value,
|
|
14301
14640
|
'v-expansion-panel--disabled': isDisabled.value
|
|
14302
|
-
}, roundedClasses.value, backgroundColorClasses.value],
|
|
14303
|
-
"style": backgroundColorStyles.value,
|
|
14641
|
+
}, roundedClasses.value, backgroundColorClasses.value, props.class],
|
|
14642
|
+
"style": [backgroundColorStyles.value, props.style],
|
|
14304
14643
|
"aria-expanded": groupItem.isSelected.value
|
|
14305
14644
|
}, {
|
|
14306
14645
|
default: () => [vue.createVNode("div", {
|
|
@@ -14450,7 +14789,8 @@
|
|
|
14450
14789
|
"ref": vInputRef,
|
|
14451
14790
|
"modelValue": model.value,
|
|
14452
14791
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
14453
|
-
"class":
|
|
14792
|
+
"class": ['v-file-input', props.class],
|
|
14793
|
+
"style": props.style,
|
|
14454
14794
|
"onClick:prepend": onClickPrepend
|
|
14455
14795
|
}, rootAttrs, inputProps, {
|
|
14456
14796
|
"focused": isFocused.value
|
|
@@ -14542,6 +14882,7 @@
|
|
|
14542
14882
|
default: 'auto'
|
|
14543
14883
|
},
|
|
14544
14884
|
...makeBorderProps(),
|
|
14885
|
+
...makeComponentProps(),
|
|
14545
14886
|
...makeElevationProps(),
|
|
14546
14887
|
...makeLayoutItemProps(),
|
|
14547
14888
|
...makeRoundedProps(),
|
|
@@ -14591,8 +14932,8 @@
|
|
|
14591
14932
|
});
|
|
14592
14933
|
useRender(() => vue.createVNode(props.tag, {
|
|
14593
14934
|
"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]
|
|
14935
|
+
"class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
14936
|
+
"style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : undefined, props.style]
|
|
14596
14937
|
}, slots));
|
|
14597
14938
|
return {};
|
|
14598
14939
|
}
|
|
@@ -14603,6 +14944,7 @@
|
|
|
14603
14944
|
const VForm = genericComponent()({
|
|
14604
14945
|
name: 'VForm',
|
|
14605
14946
|
props: {
|
|
14947
|
+
...makeComponentProps(),
|
|
14606
14948
|
...makeFormProps()
|
|
14607
14949
|
},
|
|
14608
14950
|
emits: {
|
|
@@ -14641,7 +14983,8 @@
|
|
|
14641
14983
|
}
|
|
14642
14984
|
useRender(() => vue.createVNode("form", {
|
|
14643
14985
|
"ref": formRef,
|
|
14644
|
-
"class":
|
|
14986
|
+
"class": ['v-form', props.class],
|
|
14987
|
+
"style": props.style,
|
|
14645
14988
|
"novalidate": true,
|
|
14646
14989
|
"onReset": onReset,
|
|
14647
14990
|
"onSubmit": onSubmit
|
|
@@ -14657,6 +15000,7 @@
|
|
|
14657
15000
|
type: Boolean,
|
|
14658
15001
|
default: false
|
|
14659
15002
|
},
|
|
15003
|
+
...makeComponentProps(),
|
|
14660
15004
|
...makeTagProps()
|
|
14661
15005
|
},
|
|
14662
15006
|
setup(props, _ref) {
|
|
@@ -14666,7 +15010,8 @@
|
|
|
14666
15010
|
useRender(() => vue.createVNode(props.tag, {
|
|
14667
15011
|
"class": ['v-container', {
|
|
14668
15012
|
'v-container--fluid': props.fluid
|
|
14669
|
-
}]
|
|
15013
|
+
}, props.class],
|
|
15014
|
+
"style": props.style
|
|
14670
15015
|
}, slots));
|
|
14671
15016
|
return {};
|
|
14672
15017
|
}
|
|
@@ -14757,6 +15102,7 @@
|
|
|
14757
15102
|
default: null,
|
|
14758
15103
|
validator: str => ALIGN_SELF_VALUES.includes(str)
|
|
14759
15104
|
},
|
|
15105
|
+
...makeComponentProps(),
|
|
14760
15106
|
...makeTagProps()
|
|
14761
15107
|
},
|
|
14762
15108
|
setup(props, _ref) {
|
|
@@ -14787,7 +15133,8 @@
|
|
|
14787
15133
|
return classList;
|
|
14788
15134
|
});
|
|
14789
15135
|
return () => vue.h(props.tag, {
|
|
14790
|
-
class: classes.value
|
|
15136
|
+
class: [classes.value, props.class],
|
|
15137
|
+
style: props.style
|
|
14791
15138
|
}, slots.default?.());
|
|
14792
15139
|
}
|
|
14793
15140
|
});
|
|
@@ -14873,6 +15220,7 @@
|
|
|
14873
15220
|
validator: alignContentValidator
|
|
14874
15221
|
},
|
|
14875
15222
|
...alignContentProps,
|
|
15223
|
+
...makeComponentProps(),
|
|
14876
15224
|
...makeTagProps()
|
|
14877
15225
|
},
|
|
14878
15226
|
setup(props, _ref) {
|
|
@@ -14901,7 +15249,8 @@
|
|
|
14901
15249
|
return classList;
|
|
14902
15250
|
});
|
|
14903
15251
|
return () => vue.h(props.tag, {
|
|
14904
|
-
class: ['v-row', classes.value]
|
|
15252
|
+
class: ['v-row', classes.value, props.class],
|
|
15253
|
+
style: props.style
|
|
14905
15254
|
}, slots.default?.());
|
|
14906
15255
|
}
|
|
14907
15256
|
});
|
|
@@ -14945,6 +15294,7 @@
|
|
|
14945
15294
|
const VItemGroup = genericComponent()({
|
|
14946
15295
|
name: 'VItemGroup',
|
|
14947
15296
|
props: {
|
|
15297
|
+
...makeComponentProps(),
|
|
14948
15298
|
...makeGroupProps({
|
|
14949
15299
|
selectedClass: 'v-item--selected'
|
|
14950
15300
|
}),
|
|
@@ -14969,7 +15319,8 @@
|
|
|
14969
15319
|
selected
|
|
14970
15320
|
} = useGroup(props, VItemGroupSymbol);
|
|
14971
15321
|
return () => vue.createVNode(props.tag, {
|
|
14972
|
-
"class": ['v-item-group', themeClasses.value]
|
|
15322
|
+
"class": ['v-item-group', themeClasses.value, props.class],
|
|
15323
|
+
"style": props.style
|
|
14973
15324
|
}, {
|
|
14974
15325
|
default: () => [slots.default?.({
|
|
14975
15326
|
isSelected,
|
|
@@ -15019,7 +15370,10 @@
|
|
|
15019
15370
|
|
|
15020
15371
|
const VLayout = genericComponent()({
|
|
15021
15372
|
name: 'VLayout',
|
|
15022
|
-
props:
|
|
15373
|
+
props: {
|
|
15374
|
+
...makeComponentProps(),
|
|
15375
|
+
...makeLayoutProps()
|
|
15376
|
+
},
|
|
15023
15377
|
setup(props, _ref) {
|
|
15024
15378
|
let {
|
|
15025
15379
|
slots
|
|
@@ -15033,8 +15387,8 @@
|
|
|
15033
15387
|
} = createLayout(props);
|
|
15034
15388
|
useRender(() => vue.createVNode("div", {
|
|
15035
15389
|
"ref": layoutRef,
|
|
15036
|
-
"class": layoutClasses.value,
|
|
15037
|
-
"style": layoutStyles.value
|
|
15390
|
+
"class": [layoutClasses.value, props.class],
|
|
15391
|
+
"style": [layoutStyles.value, props.style]
|
|
15038
15392
|
}, [slots.default?.()]));
|
|
15039
15393
|
return {
|
|
15040
15394
|
getLayoutItem,
|
|
@@ -15057,6 +15411,7 @@
|
|
|
15057
15411
|
default: 300
|
|
15058
15412
|
},
|
|
15059
15413
|
modelValue: Boolean,
|
|
15414
|
+
...makeComponentProps(),
|
|
15060
15415
|
...makeLayoutItemProps()
|
|
15061
15416
|
},
|
|
15062
15417
|
setup(props, _ref) {
|
|
@@ -15075,8 +15430,8 @@
|
|
|
15075
15430
|
absolute: vue.toRef(props, 'absolute')
|
|
15076
15431
|
});
|
|
15077
15432
|
return () => vue.createVNode("div", {
|
|
15078
|
-
"class": ['v-layout-item'],
|
|
15079
|
-
"style": layoutItemStyles.value
|
|
15433
|
+
"class": ['v-layout-item', props.class],
|
|
15434
|
+
"style": [layoutItemStyles.value, props.style]
|
|
15080
15435
|
}, [slots.default?.()]);
|
|
15081
15436
|
}
|
|
15082
15437
|
});
|
|
@@ -15100,6 +15455,7 @@
|
|
|
15100
15455
|
threshold: undefined
|
|
15101
15456
|
})
|
|
15102
15457
|
},
|
|
15458
|
+
...makeComponentProps(),
|
|
15103
15459
|
...makeDimensionProps(),
|
|
15104
15460
|
...makeTagProps(),
|
|
15105
15461
|
...makeTransitionProps({
|
|
@@ -15122,8 +15478,8 @@
|
|
|
15122
15478
|
isActive.value = isIntersecting;
|
|
15123
15479
|
}
|
|
15124
15480
|
useRender(() => vue.withDirectives(vue.createVNode(props.tag, {
|
|
15125
|
-
"class":
|
|
15126
|
-
"style": dimensionStyles.value
|
|
15481
|
+
"class": ['v-lazy', props.class],
|
|
15482
|
+
"style": [dimensionStyles.value, props.style]
|
|
15127
15483
|
}, {
|
|
15128
15484
|
default: () => [isActive.value && vue.createVNode(MaybeTransition, {
|
|
15129
15485
|
"transition": props.transition,
|
|
@@ -15148,7 +15504,8 @@
|
|
|
15148
15504
|
rtl: {
|
|
15149
15505
|
type: Boolean,
|
|
15150
15506
|
default: undefined
|
|
15151
|
-
}
|
|
15507
|
+
},
|
|
15508
|
+
...makeComponentProps()
|
|
15152
15509
|
},
|
|
15153
15510
|
setup(props, _ref) {
|
|
15154
15511
|
let {
|
|
@@ -15158,7 +15515,8 @@
|
|
|
15158
15515
|
rtlClasses
|
|
15159
15516
|
} = provideLocale(props);
|
|
15160
15517
|
useRender(() => vue.createVNode("div", {
|
|
15161
|
-
"class": ['v-locale-provider', rtlClasses.value]
|
|
15518
|
+
"class": ['v-locale-provider', rtlClasses.value, props.class],
|
|
15519
|
+
"style": props.style
|
|
15162
15520
|
}, [slots.default?.()]));
|
|
15163
15521
|
return {};
|
|
15164
15522
|
}
|
|
@@ -15168,6 +15526,7 @@
|
|
|
15168
15526
|
name: 'VMain',
|
|
15169
15527
|
props: {
|
|
15170
15528
|
scrollable: Boolean,
|
|
15529
|
+
...makeComponentProps(),
|
|
15171
15530
|
...makeTagProps({
|
|
15172
15531
|
tag: 'main'
|
|
15173
15532
|
})
|
|
@@ -15185,8 +15544,8 @@
|
|
|
15185
15544
|
useRender(() => vue.createVNode(props.tag, {
|
|
15186
15545
|
"class": ['v-main', {
|
|
15187
15546
|
'v-main--scrollable': props.scrollable
|
|
15188
|
-
}],
|
|
15189
|
-
"style": [mainStyles.value, ssrBootStyles.value]
|
|
15547
|
+
}, props.class],
|
|
15548
|
+
"style": [mainStyles.value, ssrBootStyles.value, props.style]
|
|
15190
15549
|
}, {
|
|
15191
15550
|
default: () => [props.scrollable ? vue.createVNode("div", {
|
|
15192
15551
|
"class": "v-main__scroller"
|
|
@@ -15532,6 +15891,7 @@
|
|
|
15532
15891
|
},
|
|
15533
15892
|
sticky: Boolean,
|
|
15534
15893
|
...makeBorderProps(),
|
|
15894
|
+
...makeComponentProps(),
|
|
15535
15895
|
...makeElevationProps(),
|
|
15536
15896
|
...makeLayoutItemProps(),
|
|
15537
15897
|
...makeRoundedProps(),
|
|
@@ -15683,8 +16043,8 @@
|
|
|
15683
16043
|
'v-navigation-drawer--temporary': isTemporary.value,
|
|
15684
16044
|
'v-navigation-drawer--active': isActive.value,
|
|
15685
16045
|
'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]
|
|
16046
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
16047
|
+
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value, props.style]
|
|
15688
16048
|
}, attrs), {
|
|
15689
16049
|
default: () => [hasImage && vue.createVNode("div", {
|
|
15690
16050
|
"key": "image",
|
|
@@ -15813,6 +16173,7 @@
|
|
|
15813
16173
|
},
|
|
15814
16174
|
showFirstLastPage: Boolean,
|
|
15815
16175
|
...makeBorderProps(),
|
|
16176
|
+
...makeComponentProps(),
|
|
15816
16177
|
...makeDensityProps(),
|
|
15817
16178
|
...makeElevationProps(),
|
|
15818
16179
|
...makeRoundedProps(),
|
|
@@ -16009,7 +16370,8 @@
|
|
|
16009
16370
|
}
|
|
16010
16371
|
useRender(() => vue.createVNode(props.tag, {
|
|
16011
16372
|
"ref": resizeRef,
|
|
16012
|
-
"class": ['v-pagination', themeClasses.value],
|
|
16373
|
+
"class": ['v-pagination', themeClasses.value, props.class],
|
|
16374
|
+
"style": props.style,
|
|
16013
16375
|
"role": "navigation",
|
|
16014
16376
|
"aria-label": t(props.ariaLabel),
|
|
16015
16377
|
"onKeydown": onKeydown,
|
|
@@ -16068,7 +16430,8 @@
|
|
|
16068
16430
|
scale: {
|
|
16069
16431
|
type: [Number, String],
|
|
16070
16432
|
default: 0.5
|
|
16071
|
-
}
|
|
16433
|
+
},
|
|
16434
|
+
...makeComponentProps()
|
|
16072
16435
|
},
|
|
16073
16436
|
setup(props, _ref) {
|
|
16074
16437
|
let {
|
|
@@ -16130,7 +16493,8 @@
|
|
|
16130
16493
|
useRender(() => vue.createVNode(VImg, {
|
|
16131
16494
|
"class": ['v-parallax', {
|
|
16132
16495
|
'v-parallax--active': isIntersecting.value
|
|
16133
|
-
}],
|
|
16496
|
+
}, props.class],
|
|
16497
|
+
"style": props.style,
|
|
16134
16498
|
"ref": root,
|
|
16135
16499
|
"cover": true,
|
|
16136
16500
|
"onLoadstart": onScroll,
|
|
@@ -16155,7 +16519,8 @@
|
|
|
16155
16519
|
slots
|
|
16156
16520
|
} = _ref;
|
|
16157
16521
|
useRender(() => vue.createVNode(VSelectionControl, vue.mergeProps(props, {
|
|
16158
|
-
"class":
|
|
16522
|
+
"class": ['v-radio', props.class],
|
|
16523
|
+
"style": props.style,
|
|
16159
16524
|
"type": "radio"
|
|
16160
16525
|
}), slots));
|
|
16161
16526
|
return {};
|
|
@@ -16209,7 +16574,8 @@
|
|
|
16209
16574
|
}
|
|
16210
16575
|
}) : props.label;
|
|
16211
16576
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
16212
|
-
"class":
|
|
16577
|
+
"class": ['v-radio-group', props.class],
|
|
16578
|
+
"style": props.style
|
|
16213
16579
|
}, inputAttrs, inputProps, {
|
|
16214
16580
|
"modelValue": model.value,
|
|
16215
16581
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
@@ -16265,11 +16631,14 @@
|
|
|
16265
16631
|
},
|
|
16266
16632
|
emits: {
|
|
16267
16633
|
'update:focused': value => true,
|
|
16268
|
-
'update:modelValue': value => true
|
|
16634
|
+
'update:modelValue': value => true,
|
|
16635
|
+
end: value => true,
|
|
16636
|
+
start: value => true
|
|
16269
16637
|
},
|
|
16270
16638
|
setup(props, _ref) {
|
|
16271
16639
|
let {
|
|
16272
|
-
slots
|
|
16640
|
+
slots,
|
|
16641
|
+
emit
|
|
16273
16642
|
} = _ref;
|
|
16274
16643
|
const startThumbRef = vue.ref();
|
|
16275
16644
|
const stopThumbRef = vue.ref();
|
|
@@ -16282,6 +16651,11 @@
|
|
|
16282
16651
|
const b = Math.abs(stopOffset);
|
|
16283
16652
|
return a < b || a === b && startOffset < 0 ? startThumbRef.value.$el : stopThumbRef.value.$el;
|
|
16284
16653
|
}
|
|
16654
|
+
const steps = useSteps(props);
|
|
16655
|
+
const model = useProxiedModel(props, 'modelValue', undefined, arr => {
|
|
16656
|
+
if (!arr?.length) return [0, 0];
|
|
16657
|
+
return arr.map(value => steps.roundValue(value));
|
|
16658
|
+
});
|
|
16285
16659
|
const {
|
|
16286
16660
|
activeThumbRef,
|
|
16287
16661
|
hasLabels,
|
|
@@ -16291,34 +16665,37 @@
|
|
|
16291
16665
|
onSliderMousedown,
|
|
16292
16666
|
onSliderTouchstart,
|
|
16293
16667
|
position,
|
|
16294
|
-
roundValue,
|
|
16295
16668
|
trackContainerRef
|
|
16296
16669
|
} = useSlider({
|
|
16297
|
-
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
16298
16670
|
props,
|
|
16299
|
-
|
|
16300
|
-
|
|
16671
|
+
steps,
|
|
16672
|
+
onSliderStart: () => {
|
|
16673
|
+
emit('start', model.value);
|
|
16674
|
+
},
|
|
16675
|
+
onSliderEnd: _ref2 => {
|
|
16676
|
+
let {
|
|
16677
|
+
value
|
|
16678
|
+
} = _ref2;
|
|
16679
|
+
const newValue = activeThumbRef.value === startThumbRef.value?.$el ? [value, model.value[1]] : [model.value[0], value];
|
|
16680
|
+
model.value = newValue;
|
|
16681
|
+
emit('end', newValue);
|
|
16301
16682
|
},
|
|
16302
|
-
|
|
16683
|
+
onSliderMove: _ref3 => {
|
|
16684
|
+
let {
|
|
16685
|
+
value
|
|
16686
|
+
} = _ref3;
|
|
16303
16687
|
const [start, stop] = model.value;
|
|
16304
16688
|
if (!props.strict && start === stop && start !== min.value) {
|
|
16305
|
-
activeThumbRef.value =
|
|
16689
|
+
activeThumbRef.value = value > start ? stopThumbRef.value?.$el : startThumbRef.value?.$el;
|
|
16306
16690
|
activeThumbRef.value?.focus();
|
|
16307
16691
|
}
|
|
16308
16692
|
if (activeThumbRef.value === startThumbRef.value?.$el) {
|
|
16309
|
-
model.value = [Math.min(
|
|
16693
|
+
model.value = [Math.min(value, stop), stop];
|
|
16310
16694
|
} else {
|
|
16311
|
-
model.value = [start, Math.max(start,
|
|
16695
|
+
model.value = [start, Math.max(start, value)];
|
|
16312
16696
|
}
|
|
16313
16697
|
},
|
|
16314
16698
|
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
16699
|
});
|
|
16323
16700
|
const {
|
|
16324
16701
|
isFocused,
|
|
@@ -16336,7 +16713,8 @@
|
|
|
16336
16713
|
'v-slider--focused': isFocused.value,
|
|
16337
16714
|
'v-slider--pressed': mousePressed.value,
|
|
16338
16715
|
'v-slider--disabled': props.disabled
|
|
16339
|
-
}],
|
|
16716
|
+
}, props.class],
|
|
16717
|
+
"style": props.style,
|
|
16340
16718
|
"ref": inputRef
|
|
16341
16719
|
}, inputProps, {
|
|
16342
16720
|
"focused": isFocused.value
|
|
@@ -16346,11 +16724,11 @@
|
|
|
16346
16724
|
"class": "v-slider__label",
|
|
16347
16725
|
"text": props.label
|
|
16348
16726
|
}, null) : undefined, slots.prepend?.(slotProps)]) : undefined,
|
|
16349
|
-
default:
|
|
16727
|
+
default: _ref4 => {
|
|
16350
16728
|
let {
|
|
16351
16729
|
id,
|
|
16352
16730
|
messagesId
|
|
16353
|
-
} =
|
|
16731
|
+
} = _ref4;
|
|
16354
16732
|
return vue.createVNode("div", {
|
|
16355
16733
|
"class": "v-slider__container",
|
|
16356
16734
|
"onMousedown": onSliderMousedown,
|
|
@@ -16479,6 +16857,7 @@
|
|
|
16479
16857
|
validator: v => ['top', 'bottom'].includes(v)
|
|
16480
16858
|
},
|
|
16481
16859
|
ripple: Boolean,
|
|
16860
|
+
...makeComponentProps(),
|
|
16482
16861
|
...makeDensityProps(),
|
|
16483
16862
|
...makeSizeProps(),
|
|
16484
16863
|
...makeTagProps(),
|
|
@@ -16502,9 +16881,6 @@
|
|
|
16502
16881
|
const range = vue.computed(() => createRange(Number(props.length), 1));
|
|
16503
16882
|
const increments = vue.computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]));
|
|
16504
16883
|
const hoverIndex = vue.ref(-1);
|
|
16505
|
-
const focusIndex = vue.ref(-1);
|
|
16506
|
-
const firstRef = vue.ref();
|
|
16507
|
-
let isClicking = false;
|
|
16508
16884
|
const itemState = vue.computed(() => increments.value.map(value => {
|
|
16509
16885
|
const isHovering = props.hover && hoverIndex.value > -1;
|
|
16510
16886
|
const isFilled = normalizedValue.value >= value;
|
|
@@ -16527,16 +16903,6 @@
|
|
|
16527
16903
|
function onMouseleave() {
|
|
16528
16904
|
hoverIndex.value = -1;
|
|
16529
16905
|
}
|
|
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
16906
|
function onClick() {
|
|
16541
16907
|
if (props.disabled || props.readonly) return;
|
|
16542
16908
|
rating.value = normalizedValue.value === value && props.clearable ? 0 : value;
|
|
@@ -16544,17 +16910,9 @@
|
|
|
16544
16910
|
return {
|
|
16545
16911
|
onMouseenter: props.hover ? onMouseenter : undefined,
|
|
16546
16912
|
onMouseleave: props.hover ? onMouseleave : undefined,
|
|
16547
|
-
onFocus,
|
|
16548
|
-
onBlur,
|
|
16549
16913
|
onClick
|
|
16550
16914
|
};
|
|
16551
16915
|
}));
|
|
16552
|
-
function onMousedown() {
|
|
16553
|
-
isClicking = true;
|
|
16554
|
-
}
|
|
16555
|
-
function onMouseup() {
|
|
16556
|
-
isClicking = false;
|
|
16557
|
-
}
|
|
16558
16916
|
const name = vue.computed(() => props.name ?? `v-rating-${getUid()}`);
|
|
16559
16917
|
function VRatingItem(_ref2) {
|
|
16560
16918
|
let {
|
|
@@ -16565,8 +16923,6 @@
|
|
|
16565
16923
|
const {
|
|
16566
16924
|
onMouseenter,
|
|
16567
16925
|
onMouseleave,
|
|
16568
|
-
onFocus,
|
|
16569
|
-
onBlur,
|
|
16570
16926
|
onClick
|
|
16571
16927
|
} = eventState.value[index + 1];
|
|
16572
16928
|
const id = `${name.value}-${String(value).replace('.', '-')}`;
|
|
@@ -16577,7 +16933,6 @@
|
|
|
16577
16933
|
icon: itemState.value[index]?.icon,
|
|
16578
16934
|
ripple: props.ripple,
|
|
16579
16935
|
size: props.size,
|
|
16580
|
-
tag: 'span',
|
|
16581
16936
|
variant: 'plain'
|
|
16582
16937
|
};
|
|
16583
16938
|
return vue.createVNode(vue.Fragment, null, [vue.createVNode("label", {
|
|
@@ -16586,17 +16941,17 @@
|
|
|
16586
16941
|
'v-rating__item--half': props.halfIncrements && value % 1 > 0,
|
|
16587
16942
|
'v-rating__item--full': props.halfIncrements && value % 1 === 0
|
|
16588
16943
|
},
|
|
16589
|
-
"onMousedown": onMousedown,
|
|
16590
|
-
"onMouseup": onMouseup,
|
|
16591
16944
|
"onMouseenter": onMouseenter,
|
|
16592
|
-
"onMouseleave": onMouseleave
|
|
16945
|
+
"onMouseleave": onMouseleave,
|
|
16946
|
+
"onClick": onClick
|
|
16593
16947
|
}, [vue.createVNode("span", {
|
|
16594
16948
|
"class": "v-rating__hidden"
|
|
16595
16949
|
}, [t(props.itemAriaLabel, value, props.length)]), !showStar ? undefined : slots.item ? slots.item({
|
|
16596
16950
|
...itemState.value[index],
|
|
16597
16951
|
props: btnProps,
|
|
16598
16952
|
value,
|
|
16599
|
-
index
|
|
16953
|
+
index,
|
|
16954
|
+
rating: normalizedValue.value
|
|
16600
16955
|
}) : vue.createVNode(VBtn, btnProps, null)]), vue.createVNode("input", {
|
|
16601
16956
|
"class": "v-rating__hidden",
|
|
16602
16957
|
"name": name.value,
|
|
@@ -16604,10 +16959,7 @@
|
|
|
16604
16959
|
"type": "radio",
|
|
16605
16960
|
"value": value,
|
|
16606
16961
|
"checked": normalizedValue.value === value,
|
|
16607
|
-
"
|
|
16608
|
-
"onFocus": onFocus,
|
|
16609
|
-
"onBlur": onBlur,
|
|
16610
|
-
"ref": index === 0 ? firstRef : undefined,
|
|
16962
|
+
"tabindex": -1,
|
|
16611
16963
|
"readonly": props.readonly,
|
|
16612
16964
|
"disabled": props.disabled
|
|
16613
16965
|
}, null)]);
|
|
@@ -16623,7 +16975,8 @@
|
|
|
16623
16975
|
"class": ['v-rating', {
|
|
16624
16976
|
'v-rating--hover': props.hover,
|
|
16625
16977
|
'v-rating--readonly': props.readonly
|
|
16626
|
-
}, themeClasses.value]
|
|
16978
|
+
}, themeClasses.value, props.class],
|
|
16979
|
+
"style": props.style
|
|
16627
16980
|
}, {
|
|
16628
16981
|
default: () => [vue.createVNode(VRatingItem, {
|
|
16629
16982
|
"value": 0,
|
|
@@ -16636,9 +16989,7 @@
|
|
|
16636
16989
|
index: i,
|
|
16637
16990
|
label: props.itemLabels?.[i]
|
|
16638
16991
|
}) : undefined, vue.createVNode("div", {
|
|
16639
|
-
"class":
|
|
16640
|
-
'v-rating__item--focused': Math.ceil(focusIndex.value) === value
|
|
16641
|
-
}]
|
|
16992
|
+
"class": "v-rating__item"
|
|
16642
16993
|
}, [props.halfIncrements ? vue.createVNode(vue.Fragment, null, [vue.createVNode(VRatingItem, {
|
|
16643
16994
|
"value": value - 0.5,
|
|
16644
16995
|
"index": i * 2
|
|
@@ -16725,6 +17076,7 @@
|
|
|
16725
17076
|
type: [Boolean, String],
|
|
16726
17077
|
validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
|
|
16727
17078
|
},
|
|
17079
|
+
...makeComponentProps(),
|
|
16728
17080
|
...makeTagProps(),
|
|
16729
17081
|
...makeGroupProps({
|
|
16730
17082
|
selectedClass: 'v-slide-group-item--active'
|
|
@@ -16965,7 +17317,8 @@
|
|
|
16965
17317
|
'v-slide-group--vertical': !isHorizontal.value,
|
|
16966
17318
|
'v-slide-group--has-affixes': hasAffixes.value,
|
|
16967
17319
|
'v-slide-group--is-overflowing': isOverflowing.value
|
|
16968
|
-
}],
|
|
17320
|
+
}, props.class],
|
|
17321
|
+
"style": props.style,
|
|
16969
17322
|
"tabindex": isFocused.value || group.selected.value.length ? -1 : 0,
|
|
16970
17323
|
"onFocus": onFocus
|
|
16971
17324
|
}, {
|
|
@@ -17115,7 +17468,8 @@
|
|
|
17115
17468
|
'v-snackbar--active': isActive.value,
|
|
17116
17469
|
'v-snackbar--multi-line': props.multiLine && !props.vertical,
|
|
17117
17470
|
'v-snackbar--vertical': props.vertical
|
|
17118
|
-
}, positionClasses.value]
|
|
17471
|
+
}, positionClasses.value, props.class],
|
|
17472
|
+
"style": props.style
|
|
17119
17473
|
}, overlayProps, {
|
|
17120
17474
|
"modelValue": isActive.value,
|
|
17121
17475
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
@@ -17215,7 +17569,8 @@
|
|
|
17215
17569
|
'v-switch--inset': props.inset
|
|
17216
17570
|
}, {
|
|
17217
17571
|
'v-switch--indeterminate': indeterminate.value
|
|
17218
|
-
}, loaderClasses.value]
|
|
17572
|
+
}, loaderClasses.value, props.class],
|
|
17573
|
+
"style": props.style
|
|
17219
17574
|
}, inputAttrs, inputProps, {
|
|
17220
17575
|
"id": id.value,
|
|
17221
17576
|
"focused": isFocused.value
|
|
@@ -17284,6 +17639,7 @@
|
|
|
17284
17639
|
color: String,
|
|
17285
17640
|
height: [Number, String],
|
|
17286
17641
|
window: Boolean,
|
|
17642
|
+
...makeComponentProps(),
|
|
17287
17643
|
...makeElevationProps(),
|
|
17288
17644
|
...makeLayoutItemProps(),
|
|
17289
17645
|
...makeRoundedProps(),
|
|
@@ -17325,8 +17681,8 @@
|
|
|
17325
17681
|
useRender(() => vue.createVNode(props.tag, {
|
|
17326
17682
|
"class": ['v-system-bar', {
|
|
17327
17683
|
'v-system-bar--window': props.window
|
|
17328
|
-
}, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value],
|
|
17329
|
-
"style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value]
|
|
17684
|
+
}, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
17685
|
+
"style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, props.style]
|
|
17330
17686
|
}, slots));
|
|
17331
17687
|
return {};
|
|
17332
17688
|
}
|
|
@@ -17338,7 +17694,6 @@
|
|
|
17338
17694
|
name: 'VTab',
|
|
17339
17695
|
props: {
|
|
17340
17696
|
fixed: Boolean,
|
|
17341
|
-
title: String,
|
|
17342
17697
|
sliderColor: String,
|
|
17343
17698
|
hideSlider: Boolean,
|
|
17344
17699
|
direction: {
|
|
@@ -17400,10 +17755,10 @@
|
|
|
17400
17755
|
useRender(() => {
|
|
17401
17756
|
const [btnProps] = VBtn.filterProps(props);
|
|
17402
17757
|
return vue.createVNode(VBtn, vue.mergeProps({
|
|
17403
|
-
"_as": "VTab",
|
|
17404
17758
|
"symbol": VTabsSymbol,
|
|
17405
17759
|
"ref": rootEl,
|
|
17406
|
-
"class": ['v-tab'],
|
|
17760
|
+
"class": ['v-tab', props.class],
|
|
17761
|
+
"style": props.style,
|
|
17407
17762
|
"tabindex": isSelected.value ? 0 : -1,
|
|
17408
17763
|
"role": "tab",
|
|
17409
17764
|
"aria-selected": String(isSelected.value),
|
|
@@ -17414,7 +17769,7 @@
|
|
|
17414
17769
|
}, btnProps, attrs, {
|
|
17415
17770
|
"onGroup:selected": updateSlider
|
|
17416
17771
|
}), {
|
|
17417
|
-
default: () => [slots.default
|
|
17772
|
+
default: () => [slots.default?.() ?? props.text, !props.hideSlider && vue.createVNode("div", {
|
|
17418
17773
|
"ref": sliderEl,
|
|
17419
17774
|
"class": ['v-tab__slider', sliderColorClasses.value],
|
|
17420
17775
|
"style": sliderColorStyles.value
|
|
@@ -17498,10 +17853,10 @@
|
|
|
17498
17853
|
'v-tabs--fixed-tabs': props.fixedTabs,
|
|
17499
17854
|
'v-tabs--grow': props.grow,
|
|
17500
17855
|
'v-tabs--stacked': props.stacked
|
|
17501
|
-
}, densityClasses.value, backgroundColorClasses.value],
|
|
17856
|
+
}, densityClasses.value, backgroundColorClasses.value, props.class],
|
|
17502
17857
|
"style": [{
|
|
17503
17858
|
'--v-tabs-height': convertToUnit(props.height)
|
|
17504
|
-
}, backgroundColorStyles.value],
|
|
17859
|
+
}, backgroundColorStyles.value, props.style],
|
|
17505
17860
|
"role": "tablist",
|
|
17506
17861
|
"symbol": VTabsSymbol
|
|
17507
17862
|
}), {
|
|
@@ -17521,6 +17876,7 @@
|
|
|
17521
17876
|
fixedFooter: Boolean,
|
|
17522
17877
|
height: [Number, String],
|
|
17523
17878
|
hover: Boolean,
|
|
17879
|
+
...makeComponentProps(),
|
|
17524
17880
|
...makeDensityProps(),
|
|
17525
17881
|
...makeTagProps(),
|
|
17526
17882
|
...makeThemeProps()
|
|
@@ -17543,7 +17899,8 @@
|
|
|
17543
17899
|
'v-table--has-top': !!slots.top,
|
|
17544
17900
|
'v-table--has-bottom': !!slots.bottom,
|
|
17545
17901
|
'v-table--hover': props.hover
|
|
17546
|
-
}, themeClasses.value, densityClasses.value]
|
|
17902
|
+
}, themeClasses.value, densityClasses.value, props.class],
|
|
17903
|
+
"style": props.style
|
|
17547
17904
|
}, {
|
|
17548
17905
|
default: () => [slots.top?.(), slots.default ? vue.createVNode("div", {
|
|
17549
17906
|
"class": "v-table__wrapper",
|
|
@@ -17708,7 +18065,8 @@
|
|
|
17708
18065
|
'v-textarea--auto-grow': props.autoGrow,
|
|
17709
18066
|
'v-textarea--no-resize': props.noResize || props.autoGrow,
|
|
17710
18067
|
'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant)
|
|
17711
|
-
}]
|
|
18068
|
+
}, props.class],
|
|
18069
|
+
"style": props.style
|
|
17712
18070
|
}, rootAttrs, inputProps, {
|
|
17713
18071
|
"focused": isFocused.value
|
|
17714
18072
|
}), {
|
|
@@ -17792,6 +18150,7 @@
|
|
|
17792
18150
|
name: 'VThemeProvider',
|
|
17793
18151
|
props: {
|
|
17794
18152
|
withBackground: Boolean,
|
|
18153
|
+
...makeComponentProps(),
|
|
17795
18154
|
...makeThemeProps(),
|
|
17796
18155
|
...makeTagProps()
|
|
17797
18156
|
},
|
|
@@ -17805,7 +18164,8 @@
|
|
|
17805
18164
|
return () => {
|
|
17806
18165
|
if (!props.withBackground) return slots.default?.();
|
|
17807
18166
|
return vue.createVNode(props.tag, {
|
|
17808
|
-
"class": ['v-theme-provider', themeClasses.value]
|
|
18167
|
+
"class": ['v-theme-provider', themeClasses.value, props.class],
|
|
18168
|
+
"style": props.style
|
|
17809
18169
|
}, {
|
|
17810
18170
|
default: () => [slots.default?.()]
|
|
17811
18171
|
});
|
|
@@ -17850,6 +18210,7 @@
|
|
|
17850
18210
|
type: String,
|
|
17851
18211
|
validator: v => ['start', 'end', 'both'].includes(v)
|
|
17852
18212
|
},
|
|
18213
|
+
...makeComponentProps(),
|
|
17853
18214
|
...makeDensityProps(),
|
|
17854
18215
|
...makeTagProps(),
|
|
17855
18216
|
...makeThemeProps()
|
|
@@ -17893,10 +18254,10 @@
|
|
|
17893
18254
|
useRender(() => vue.createVNode(props.tag, {
|
|
17894
18255
|
"class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {
|
|
17895
18256
|
'v-timeline--inset-line': !!props.lineInset
|
|
17896
|
-
}, themeClasses.value, densityClasses.value, sideClasses.value],
|
|
17897
|
-
"style": {
|
|
18257
|
+
}, themeClasses.value, densityClasses.value, sideClasses.value, props.class],
|
|
18258
|
+
"style": [{
|
|
17898
18259
|
'--v-timeline-line-thickness': convertToUnit(props.lineThickness)
|
|
17899
|
-
}
|
|
18260
|
+
}, props.style]
|
|
17900
18261
|
}, slots));
|
|
17901
18262
|
return {};
|
|
17902
18263
|
}
|
|
@@ -17911,6 +18272,7 @@
|
|
|
17911
18272
|
icon: IconValue,
|
|
17912
18273
|
iconColor: String,
|
|
17913
18274
|
lineColor: String,
|
|
18275
|
+
...makeComponentProps(),
|
|
17914
18276
|
...makeRoundedProps(),
|
|
17915
18277
|
...makeSizeProps(),
|
|
17916
18278
|
...makeElevationProps()
|
|
@@ -17940,7 +18302,8 @@
|
|
|
17940
18302
|
useRender(() => vue.createVNode("div", {
|
|
17941
18303
|
"class": ['v-timeline-divider', {
|
|
17942
18304
|
'v-timeline-divider--fill-dot': props.fillDot
|
|
17943
|
-
}]
|
|
18305
|
+
}, props.class],
|
|
18306
|
+
"style": props.style
|
|
17944
18307
|
}, [vue.createVNode("div", {
|
|
17945
18308
|
"class": ['v-timeline-divider__before', lineColorClasses.value],
|
|
17946
18309
|
"style": lineColorStyles.value
|
|
@@ -17990,11 +18353,12 @@
|
|
|
17990
18353
|
icon: IconValue,
|
|
17991
18354
|
iconColor: String,
|
|
17992
18355
|
lineInset: [Number, String],
|
|
17993
|
-
...
|
|
18356
|
+
...makeComponentProps(),
|
|
18357
|
+
...makeDimensionProps(),
|
|
17994
18358
|
...makeElevationProps(),
|
|
18359
|
+
...makeRoundedProps(),
|
|
17995
18360
|
...makeSizeProps(),
|
|
17996
|
-
...makeTagProps()
|
|
17997
|
-
...makeDimensionProps()
|
|
18361
|
+
...makeTagProps()
|
|
17998
18362
|
},
|
|
17999
18363
|
setup(props, _ref) {
|
|
18000
18364
|
let {
|
|
@@ -18014,11 +18378,11 @@
|
|
|
18014
18378
|
useRender(() => vue.createVNode("div", {
|
|
18015
18379
|
"class": ['v-timeline-item', {
|
|
18016
18380
|
'v-timeline-item--fill-dot': props.fillDot
|
|
18017
|
-
}],
|
|
18018
|
-
"style": {
|
|
18381
|
+
}, props.class],
|
|
18382
|
+
"style": [{
|
|
18019
18383
|
'--v-timeline-dot-size': convertToUnit(dotSize.value),
|
|
18020
18384
|
'--v-timeline-line-inset': props.lineInset ? `calc(var(--v-timeline-dot-size) / 2 + ${convertToUnit(props.lineInset)})` : convertToUnit(0)
|
|
18021
|
-
}
|
|
18385
|
+
}, props.style]
|
|
18022
18386
|
}, [vue.createVNode("div", {
|
|
18023
18387
|
"class": "v-timeline-item__body",
|
|
18024
18388
|
"style": dimensionStyles.value
|
|
@@ -18052,6 +18416,7 @@
|
|
|
18052
18416
|
closeOnBack: false,
|
|
18053
18417
|
location: 'end',
|
|
18054
18418
|
locationStrategy: 'connected',
|
|
18419
|
+
eager: true,
|
|
18055
18420
|
minWidth: 0,
|
|
18056
18421
|
offset: 10,
|
|
18057
18422
|
openOnClick: false,
|
|
@@ -18060,7 +18425,7 @@
|
|
|
18060
18425
|
scrim: false,
|
|
18061
18426
|
scrollStrategy: 'reposition',
|
|
18062
18427
|
transition: false
|
|
18063
|
-
}), ['absolute', 'persistent'
|
|
18428
|
+
}), ['absolute', 'persistent'])
|
|
18064
18429
|
},
|
|
18065
18430
|
emits: {
|
|
18066
18431
|
'update:modelValue': value => true
|
|
@@ -18093,7 +18458,8 @@
|
|
|
18093
18458
|
const [overlayProps] = VOverlay.filterProps(props);
|
|
18094
18459
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
|
18095
18460
|
"ref": overlay,
|
|
18096
|
-
"class": ['v-tooltip'],
|
|
18461
|
+
"class": ['v-tooltip', props.class],
|
|
18462
|
+
"style": props.style,
|
|
18097
18463
|
"id": id.value
|
|
18098
18464
|
}, overlayProps, {
|
|
18099
18465
|
"modelValue": isActive.value,
|
|
@@ -18104,7 +18470,6 @@
|
|
|
18104
18470
|
"origin": origin.value,
|
|
18105
18471
|
"persistent": true,
|
|
18106
18472
|
"role": "tooltip",
|
|
18107
|
-
"eager": true,
|
|
18108
18473
|
"activatorProps": activatorProps.value,
|
|
18109
18474
|
"_disableGlobalStack": true
|
|
18110
18475
|
}, scopeId), {
|
|
@@ -18139,66 +18504,236 @@
|
|
|
18139
18504
|
}
|
|
18140
18505
|
});
|
|
18141
18506
|
|
|
18142
|
-
const
|
|
18143
|
-
|
|
18144
|
-
|
|
18145
|
-
|
|
18507
|
+
const VVirtualScrollItem = genericComponent()({
|
|
18508
|
+
name: 'VVirtualScrollItem',
|
|
18509
|
+
props: {
|
|
18510
|
+
dynamicHeight: Boolean,
|
|
18511
|
+
...makeComponentProps()
|
|
18146
18512
|
},
|
|
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)
|
|
18513
|
+
emits: {
|
|
18514
|
+
'update:height': height => true
|
|
18515
|
+
},
|
|
18516
|
+
setup(props, _ref) {
|
|
18517
|
+
let {
|
|
18518
|
+
emit,
|
|
18519
|
+
slots
|
|
18520
|
+
} = _ref;
|
|
18521
|
+
const {
|
|
18522
|
+
resizeRef,
|
|
18523
|
+
contentRect
|
|
18524
|
+
} = useResizeObserver();
|
|
18525
|
+
useToggleScope(() => props.dynamicHeight, () => {
|
|
18526
|
+
vue.watch(() => contentRect.value?.height, height => {
|
|
18527
|
+
if (height != null) emit('update:height', height);
|
|
18528
|
+
});
|
|
18529
|
+
});
|
|
18530
|
+
function updateHeight() {
|
|
18531
|
+
if (props.dynamicHeight && contentRect.value) {
|
|
18532
|
+
emit('update:height', contentRect.value.height);
|
|
18533
|
+
}
|
|
18170
18534
|
}
|
|
18171
|
-
|
|
18172
|
-
|
|
18173
|
-
|
|
18535
|
+
vue.onUpdated(updateHeight);
|
|
18536
|
+
useRender(() => vue.createVNode("div", {
|
|
18537
|
+
"ref": props.dynamicHeight ? resizeRef : undefined,
|
|
18538
|
+
"class": ['v-virtual-scroll__item', props.class],
|
|
18539
|
+
"style": props.style
|
|
18540
|
+
}, [slots.default?.()]));
|
|
18541
|
+
}
|
|
18174
18542
|
});
|
|
18175
18543
|
|
|
18176
|
-
// Utilities
|
|
18177
|
-
|
|
18178
18544
|
// Types
|
|
18179
18545
|
|
|
18180
|
-
const
|
|
18181
|
-
|
|
18182
|
-
|
|
18183
|
-
|
|
18184
|
-
|
|
18185
|
-
|
|
18186
|
-
|
|
18187
|
-
|
|
18188
|
-
|
|
18189
|
-
|
|
18190
|
-
|
|
18191
|
-
|
|
18192
|
-
|
|
18193
|
-
|
|
18194
|
-
|
|
18195
|
-
|
|
18196
|
-
|
|
18197
|
-
const
|
|
18198
|
-
|
|
18199
|
-
|
|
18200
|
-
|
|
18201
|
-
|
|
18546
|
+
const UP$1 = -1;
|
|
18547
|
+
const DOWN$1 = 1;
|
|
18548
|
+
const VVirtualScroll = genericComponent()({
|
|
18549
|
+
name: 'VVirtualScroll',
|
|
18550
|
+
props: {
|
|
18551
|
+
items: {
|
|
18552
|
+
type: Array,
|
|
18553
|
+
default: () => []
|
|
18554
|
+
},
|
|
18555
|
+
itemHeight: [Number, String],
|
|
18556
|
+
...makeComponentProps(),
|
|
18557
|
+
...makeDimensionProps()
|
|
18558
|
+
},
|
|
18559
|
+
setup(props, _ref) {
|
|
18560
|
+
let {
|
|
18561
|
+
slots
|
|
18562
|
+
} = _ref;
|
|
18563
|
+
const first = vue.ref(0);
|
|
18564
|
+
const baseItemHeight = vue.ref(props.itemHeight);
|
|
18565
|
+
const itemHeight = vue.computed({
|
|
18566
|
+
get: () => parseInt(baseItemHeight.value ?? 0, 10),
|
|
18567
|
+
set(val) {
|
|
18568
|
+
baseItemHeight.value = val;
|
|
18569
|
+
}
|
|
18570
|
+
});
|
|
18571
|
+
const rootEl = vue.ref();
|
|
18572
|
+
const {
|
|
18573
|
+
resizeRef,
|
|
18574
|
+
contentRect
|
|
18575
|
+
} = useResizeObserver();
|
|
18576
|
+
vue.watchEffect(() => {
|
|
18577
|
+
resizeRef.value = rootEl.value;
|
|
18578
|
+
});
|
|
18579
|
+
const display = useDisplay();
|
|
18580
|
+
const sizeMap = new Map();
|
|
18581
|
+
let sizes = createRange(props.items.length).map(() => itemHeight.value);
|
|
18582
|
+
const visibleItems = vue.computed(() => {
|
|
18583
|
+
return Math.max(12, Math.ceil((contentRect.value?.height ?? display.height.value) / itemHeight.value * 1.7 + 1));
|
|
18584
|
+
});
|
|
18585
|
+
function handleItemResize(index, height) {
|
|
18586
|
+
itemHeight.value = Math.max(itemHeight.value, height);
|
|
18587
|
+
sizes[index] = height;
|
|
18588
|
+
sizeMap.set(props.items[index], height);
|
|
18589
|
+
}
|
|
18590
|
+
function calculateOffset(index) {
|
|
18591
|
+
return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0);
|
|
18592
|
+
}
|
|
18593
|
+
function calculateMidPointIndex(scrollTop) {
|
|
18594
|
+
const end = props.items.length;
|
|
18595
|
+
let middle = 0;
|
|
18596
|
+
let middleOffset = 0;
|
|
18597
|
+
while (middleOffset < scrollTop && middle < end) {
|
|
18598
|
+
middleOffset += sizes[middle++] || itemHeight.value;
|
|
18599
|
+
}
|
|
18600
|
+
return middle - 1;
|
|
18601
|
+
}
|
|
18602
|
+
let lastScrollTop = 0;
|
|
18603
|
+
function handleScroll() {
|
|
18604
|
+
if (!rootEl.value || !contentRect.value) return;
|
|
18605
|
+
const height = contentRect.value.height;
|
|
18606
|
+
const scrollTop = rootEl.value.scrollTop;
|
|
18607
|
+
const direction = scrollTop < lastScrollTop ? UP$1 : DOWN$1;
|
|
18608
|
+
const midPointIndex = calculateMidPointIndex(scrollTop + height / 2);
|
|
18609
|
+
const buffer = Math.round(visibleItems.value / 3);
|
|
18610
|
+
if (direction === UP$1 && midPointIndex <= first.value + buffer * 2 - 1) {
|
|
18611
|
+
first.value = clamp(midPointIndex - buffer, 0, props.items.length);
|
|
18612
|
+
} else if (direction === DOWN$1 && midPointIndex >= first.value + buffer * 2 - 1) {
|
|
18613
|
+
first.value = clamp(midPointIndex - buffer, 0, props.items.length - visibleItems.value);
|
|
18614
|
+
}
|
|
18615
|
+
lastScrollTop = rootEl.value.scrollTop;
|
|
18616
|
+
}
|
|
18617
|
+
function scrollToIndex(index) {
|
|
18618
|
+
if (!rootEl.value) return;
|
|
18619
|
+
const offset = calculateOffset(index);
|
|
18620
|
+
rootEl.value.scrollTop = offset;
|
|
18621
|
+
}
|
|
18622
|
+
const items = vue.computed(() => props.items.map((item, index) => ({
|
|
18623
|
+
raw: item,
|
|
18624
|
+
index
|
|
18625
|
+
})));
|
|
18626
|
+
const last = vue.computed(() => Math.min(props.items.length, first.value + visibleItems.value));
|
|
18627
|
+
const computedItems = vue.computed(() => items.value.slice(first.value, last.value));
|
|
18628
|
+
const paddingTop = vue.computed(() => calculateOffset(first.value));
|
|
18629
|
+
const paddingBottom = vue.computed(() => calculateOffset(props.items.length) - calculateOffset(last.value));
|
|
18630
|
+
const {
|
|
18631
|
+
dimensionStyles
|
|
18632
|
+
} = useDimension(props);
|
|
18633
|
+
vue.onMounted(() => {
|
|
18634
|
+
if (!itemHeight.value) {
|
|
18635
|
+
// If itemHeight prop is not set, then calculate an estimated height from the average of inital items
|
|
18636
|
+
itemHeight.value = sizes.slice(first.value, last.value).reduce((curr, height) => curr + height, 0) / visibleItems.value;
|
|
18637
|
+
}
|
|
18638
|
+
});
|
|
18639
|
+
vue.watch(() => props.items.length, () => {
|
|
18640
|
+
sizes = createRange(props.items.length).map(() => itemHeight.value);
|
|
18641
|
+
sizeMap.forEach((height, item) => {
|
|
18642
|
+
const index = props.items.indexOf(item);
|
|
18643
|
+
if (index === -1) {
|
|
18644
|
+
sizeMap.delete(item);
|
|
18645
|
+
} else {
|
|
18646
|
+
sizes[index] = height;
|
|
18647
|
+
}
|
|
18648
|
+
});
|
|
18649
|
+
});
|
|
18650
|
+
useRender(() => vue.createVNode("div", {
|
|
18651
|
+
"ref": rootEl,
|
|
18652
|
+
"class": ['v-virtual-scroll', props.class],
|
|
18653
|
+
"onScroll": handleScroll,
|
|
18654
|
+
"style": [dimensionStyles.value, props.style]
|
|
18655
|
+
}, [vue.createVNode("div", {
|
|
18656
|
+
"class": "v-virtual-scroll__container",
|
|
18657
|
+
"style": {
|
|
18658
|
+
paddingTop: convertToUnit(paddingTop.value),
|
|
18659
|
+
paddingBottom: convertToUnit(paddingBottom.value)
|
|
18660
|
+
}
|
|
18661
|
+
}, [computedItems.value.map(item => vue.createVNode(VVirtualScrollItem, {
|
|
18662
|
+
"key": item.index,
|
|
18663
|
+
"dynamicHeight": !props.itemHeight,
|
|
18664
|
+
"onUpdate:height": height => handleItemResize(item.index, height)
|
|
18665
|
+
}, {
|
|
18666
|
+
default: () => [slots.default?.({
|
|
18667
|
+
item: item.raw,
|
|
18668
|
+
index: item.index
|
|
18669
|
+
})]
|
|
18670
|
+
}))])]));
|
|
18671
|
+
return {
|
|
18672
|
+
scrollToIndex
|
|
18673
|
+
};
|
|
18674
|
+
}
|
|
18675
|
+
});
|
|
18676
|
+
|
|
18677
|
+
const VDataTableColumn = defineFunctionalComponent({
|
|
18678
|
+
align: {
|
|
18679
|
+
type: String,
|
|
18680
|
+
default: 'start'
|
|
18681
|
+
},
|
|
18682
|
+
fixed: Boolean,
|
|
18683
|
+
fixedOffset: [Number, String],
|
|
18684
|
+
height: [Number, String],
|
|
18685
|
+
lastFixed: Boolean,
|
|
18686
|
+
noPadding: Boolean,
|
|
18687
|
+
tag: String,
|
|
18688
|
+
width: [Number, String]
|
|
18689
|
+
}, (props, _ref) => {
|
|
18690
|
+
let {
|
|
18691
|
+
slots,
|
|
18692
|
+
attrs
|
|
18693
|
+
} = _ref;
|
|
18694
|
+
const Tag = props.tag ?? 'td';
|
|
18695
|
+
return vue.createVNode(Tag, vue.mergeProps({
|
|
18696
|
+
"class": ['v-data-table__td', {
|
|
18697
|
+
'v-data-table-column--fixed': props.fixed,
|
|
18698
|
+
'v-data-table-column--last-fixed': props.lastFixed,
|
|
18699
|
+
'v-data-table-column--no-padding': props.noPadding
|
|
18700
|
+
}, `v-data-table-column--align-${props.align}`],
|
|
18701
|
+
"style": {
|
|
18702
|
+
height: convertToUnit(props.height),
|
|
18703
|
+
width: convertToUnit(props.width),
|
|
18704
|
+
left: convertToUnit(props.fixedOffset || null)
|
|
18705
|
+
}
|
|
18706
|
+
}, attrs), {
|
|
18707
|
+
default: () => [slots.default?.()]
|
|
18708
|
+
});
|
|
18709
|
+
});
|
|
18710
|
+
|
|
18711
|
+
// Utilities
|
|
18712
|
+
|
|
18713
|
+
// Types
|
|
18714
|
+
|
|
18715
|
+
const makeDataTableHeaderProps = propsFactory({
|
|
18716
|
+
headers: {
|
|
18717
|
+
type: Array,
|
|
18718
|
+
default: () => []
|
|
18719
|
+
}
|
|
18720
|
+
}, 'v-data-table-header');
|
|
18721
|
+
const VDataTableHeadersSymbol = Symbol.for('vuetify:data-table-headers');
|
|
18722
|
+
function createHeaders(props, options) {
|
|
18723
|
+
const headers = vue.ref([]);
|
|
18724
|
+
const columns = vue.ref([]);
|
|
18725
|
+
vue.watch(() => props.headers, () => {
|
|
18726
|
+
const wrapped = !props.headers.length ? [] : Array.isArray(props.headers[0]) ? props.headers : [props.headers];
|
|
18727
|
+
const flat = wrapped.flatMap((row, index) => row.map(column => ({
|
|
18728
|
+
column,
|
|
18729
|
+
row: index
|
|
18730
|
+
})));
|
|
18731
|
+
const rowCount = wrapped.length;
|
|
18732
|
+
const defaultHeader = {
|
|
18733
|
+
title: '',
|
|
18734
|
+
sortable: false
|
|
18735
|
+
};
|
|
18736
|
+
const defaultActionHeader = {
|
|
18202
18737
|
...defaultHeader,
|
|
18203
18738
|
width: 48
|
|
18204
18739
|
};
|
|
@@ -19549,8 +20084,8 @@
|
|
|
19549
20084
|
default: 52
|
|
19550
20085
|
}
|
|
19551
20086
|
}, 'virtual');
|
|
19552
|
-
const UP
|
|
19553
|
-
const DOWN
|
|
20087
|
+
const UP = -1;
|
|
20088
|
+
const DOWN = 1;
|
|
19554
20089
|
|
|
19555
20090
|
// TODO: Replace this with composable from v-virtual-scroll
|
|
19556
20091
|
function useVirtual(props, items) {
|
|
@@ -19588,12 +20123,12 @@
|
|
|
19588
20123
|
isScrolling.value = false;
|
|
19589
20124
|
}, 100);
|
|
19590
20125
|
const scrollTop = containerRef.value.scrollTop;
|
|
19591
|
-
const direction = scrollTop < lastScrollTop ? UP
|
|
20126
|
+
const direction = scrollTop < lastScrollTop ? UP : DOWN;
|
|
19592
20127
|
const midPointIndex = calculateMidPointIndex(scrollTop);
|
|
19593
20128
|
const buffer = Math.round(visibleItems.value / 3);
|
|
19594
|
-
if (direction === UP
|
|
20129
|
+
if (direction === UP && midPointIndex <= startIndex.value) {
|
|
19595
20130
|
startIndex.value = Math.max(midPointIndex - buffer, 0);
|
|
19596
|
-
} else if (direction === DOWN
|
|
20131
|
+
} else if (direction === DOWN && midPointIndex >= startIndex.value + buffer * 2) {
|
|
19597
20132
|
startIndex.value = Math.min(Math.max(0, midPointIndex - buffer), items.value.length - visibleItems.value);
|
|
19598
20133
|
}
|
|
19599
20134
|
lastScrollTop = containerRef.value.scrollTop;
|
|
@@ -19906,6 +20441,211 @@
|
|
|
19906
20441
|
|
|
19907
20442
|
// Types
|
|
19908
20443
|
|
|
20444
|
+
const VInfiniteScrollIntersect = defineComponent({
|
|
20445
|
+
name: 'VInfiniteScrollIntersect',
|
|
20446
|
+
props: {
|
|
20447
|
+
side: {
|
|
20448
|
+
type: String,
|
|
20449
|
+
required: true
|
|
20450
|
+
},
|
|
20451
|
+
rootRef: null,
|
|
20452
|
+
rootMargin: String
|
|
20453
|
+
},
|
|
20454
|
+
emits: {
|
|
20455
|
+
intersect: side => true
|
|
20456
|
+
},
|
|
20457
|
+
setup(props, _ref) {
|
|
20458
|
+
let {
|
|
20459
|
+
emit
|
|
20460
|
+
} = _ref;
|
|
20461
|
+
const {
|
|
20462
|
+
intersectionRef,
|
|
20463
|
+
isIntersecting
|
|
20464
|
+
} = useIntersectionObserver(entries => {}, props.rootMargin ? {
|
|
20465
|
+
root: props.rootRef,
|
|
20466
|
+
rootMargin: props.rootMargin
|
|
20467
|
+
} : undefined);
|
|
20468
|
+
vue.watch(isIntersecting, async val => {
|
|
20469
|
+
if (val) emit('intersect', props.side);
|
|
20470
|
+
});
|
|
20471
|
+
useRender(() => vue.createVNode("div", {
|
|
20472
|
+
"class": "v-infinite-scroll-intersect",
|
|
20473
|
+
"ref": intersectionRef
|
|
20474
|
+
}, [vue.createTextVNode("\xA0")]));
|
|
20475
|
+
return {};
|
|
20476
|
+
}
|
|
20477
|
+
});
|
|
20478
|
+
const VInfiniteScroll = genericComponent()({
|
|
20479
|
+
name: 'VInfiniteScroll',
|
|
20480
|
+
props: {
|
|
20481
|
+
color: String,
|
|
20482
|
+
direction: {
|
|
20483
|
+
type: String,
|
|
20484
|
+
default: 'vertical',
|
|
20485
|
+
validator: v => ['vertical', 'horizontal'].includes(v)
|
|
20486
|
+
},
|
|
20487
|
+
side: {
|
|
20488
|
+
type: String,
|
|
20489
|
+
default: 'end',
|
|
20490
|
+
validator: v => ['start', 'end', 'both'].includes(v)
|
|
20491
|
+
},
|
|
20492
|
+
mode: {
|
|
20493
|
+
type: String,
|
|
20494
|
+
default: 'intersect',
|
|
20495
|
+
validator: v => ['intersect', 'manual'].includes(v)
|
|
20496
|
+
},
|
|
20497
|
+
margin: [Number, String],
|
|
20498
|
+
loadMoreText: {
|
|
20499
|
+
type: String,
|
|
20500
|
+
default: '$vuetify.infiniteScroll.loadMore'
|
|
20501
|
+
},
|
|
20502
|
+
emptyText: {
|
|
20503
|
+
type: String,
|
|
20504
|
+
default: '$vuetify.infiniteScroll.empty'
|
|
20505
|
+
},
|
|
20506
|
+
...makeDimensionProps()
|
|
20507
|
+
},
|
|
20508
|
+
emits: {
|
|
20509
|
+
load: options => true
|
|
20510
|
+
},
|
|
20511
|
+
setup(props, _ref2) {
|
|
20512
|
+
let {
|
|
20513
|
+
slots,
|
|
20514
|
+
emit
|
|
20515
|
+
} = _ref2;
|
|
20516
|
+
const rootEl = vue.ref();
|
|
20517
|
+
const startStatus = vue.ref('ok');
|
|
20518
|
+
const endStatus = vue.ref('ok');
|
|
20519
|
+
const margin = vue.computed(() => convertToUnit(props.margin));
|
|
20520
|
+
function setScrollAmount(amount) {
|
|
20521
|
+
if (!rootEl.value) return;
|
|
20522
|
+
const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';
|
|
20523
|
+
rootEl.value[property] = amount;
|
|
20524
|
+
}
|
|
20525
|
+
function getScrollAmount() {
|
|
20526
|
+
if (!rootEl.value) return 0;
|
|
20527
|
+
const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';
|
|
20528
|
+
return rootEl.value[property];
|
|
20529
|
+
}
|
|
20530
|
+
function getScrollSize() {
|
|
20531
|
+
if (!rootEl.value) return 0;
|
|
20532
|
+
const property = props.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth';
|
|
20533
|
+
return rootEl.value[property];
|
|
20534
|
+
}
|
|
20535
|
+
function getContainerSize() {
|
|
20536
|
+
if (!rootEl.value) return 0;
|
|
20537
|
+
const property = props.direction === 'vertical' ? 'clientHeight' : 'clientWidth';
|
|
20538
|
+
return rootEl.value[property];
|
|
20539
|
+
}
|
|
20540
|
+
vue.onMounted(() => {
|
|
20541
|
+
if (!rootEl.value) return;
|
|
20542
|
+
if (props.side === 'start') {
|
|
20543
|
+
setScrollAmount(getScrollSize());
|
|
20544
|
+
} else if (props.side === 'both') {
|
|
20545
|
+
setScrollAmount(getScrollSize() / 2 - getContainerSize() / 2);
|
|
20546
|
+
}
|
|
20547
|
+
});
|
|
20548
|
+
function setStatus(side, status) {
|
|
20549
|
+
if (side === 'start') {
|
|
20550
|
+
startStatus.value = status;
|
|
20551
|
+
} else if (side === 'end') {
|
|
20552
|
+
endStatus.value = status;
|
|
20553
|
+
}
|
|
20554
|
+
}
|
|
20555
|
+
function getStatus(side) {
|
|
20556
|
+
return side === 'start' ? startStatus.value : endStatus.value;
|
|
20557
|
+
}
|
|
20558
|
+
let previousScrollSize = 0;
|
|
20559
|
+
function handleIntersect(side) {
|
|
20560
|
+
const status = getStatus(side);
|
|
20561
|
+
if (!rootEl.value || status === 'loading') return;
|
|
20562
|
+
previousScrollSize = getScrollSize();
|
|
20563
|
+
setStatus(side, 'loading');
|
|
20564
|
+
function done(status) {
|
|
20565
|
+
setStatus(side, status);
|
|
20566
|
+
vue.nextTick(() => {
|
|
20567
|
+
if (status === 'ok' && side === 'start') {
|
|
20568
|
+
setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount());
|
|
20569
|
+
}
|
|
20570
|
+
});
|
|
20571
|
+
}
|
|
20572
|
+
emit('load', {
|
|
20573
|
+
side,
|
|
20574
|
+
done
|
|
20575
|
+
});
|
|
20576
|
+
}
|
|
20577
|
+
const {
|
|
20578
|
+
t
|
|
20579
|
+
} = useLocale();
|
|
20580
|
+
function renderSide(side, status) {
|
|
20581
|
+
if (props.side !== side && props.side !== 'both') return;
|
|
20582
|
+
const onClick = () => handleIntersect(side);
|
|
20583
|
+
const slotProps = {
|
|
20584
|
+
side,
|
|
20585
|
+
props: {
|
|
20586
|
+
onClick,
|
|
20587
|
+
color: props.color
|
|
20588
|
+
}
|
|
20589
|
+
};
|
|
20590
|
+
if (status === 'error') return slots.error?.(slotProps);
|
|
20591
|
+
if (status === 'empty') return slots.empty?.(slotProps) ?? vue.createVNode("div", null, [t(props.emptyText)]);
|
|
20592
|
+
if (props.mode === 'manual') {
|
|
20593
|
+
if (status === 'loading') {
|
|
20594
|
+
return slots.loading?.(slotProps) ?? vue.createVNode(VProgressCircular, {
|
|
20595
|
+
"indeterminate": true,
|
|
20596
|
+
"color": props.color
|
|
20597
|
+
}, null);
|
|
20598
|
+
}
|
|
20599
|
+
return slots['load-more']?.(slotProps) ?? vue.createVNode(VBtn, {
|
|
20600
|
+
"variant": "outlined",
|
|
20601
|
+
"color": props.color,
|
|
20602
|
+
"onClick": onClick
|
|
20603
|
+
}, {
|
|
20604
|
+
default: () => [t(props.loadMoreText)]
|
|
20605
|
+
});
|
|
20606
|
+
}
|
|
20607
|
+
return slots.loading?.(slotProps) ?? vue.createVNode(VProgressCircular, {
|
|
20608
|
+
"indeterminate": true,
|
|
20609
|
+
"color": props.color
|
|
20610
|
+
}, null);
|
|
20611
|
+
}
|
|
20612
|
+
const {
|
|
20613
|
+
dimensionStyles
|
|
20614
|
+
} = useDimension(props);
|
|
20615
|
+
useRender(() => {
|
|
20616
|
+
const hasStartIntersect = props.side === 'start' || props.side === 'both';
|
|
20617
|
+
const hasEndIntersect = props.side === 'end' || props.side === 'both';
|
|
20618
|
+
const intersectMode = props.mode === 'intersect';
|
|
20619
|
+
return vue.createVNode("div", {
|
|
20620
|
+
"ref": rootEl,
|
|
20621
|
+
"class": ['v-infinite-scroll', `v-infinite-scroll--${props.direction}`, {
|
|
20622
|
+
'v-infinite-scroll--start': hasStartIntersect,
|
|
20623
|
+
'v-infinite-scroll--end': hasEndIntersect
|
|
20624
|
+
}],
|
|
20625
|
+
"style": dimensionStyles.value
|
|
20626
|
+
}, [vue.createVNode("div", {
|
|
20627
|
+
"class": "v-infinite-scroll__side"
|
|
20628
|
+
}, [renderSide('start', startStatus.value)]), rootEl.value && hasStartIntersect && intersectMode && vue.createVNode(VInfiniteScrollIntersect, {
|
|
20629
|
+
"key": "start",
|
|
20630
|
+
"side": "start",
|
|
20631
|
+
"onIntersect": handleIntersect,
|
|
20632
|
+
"rootRef": rootEl.value,
|
|
20633
|
+
"rootMargin": margin.value
|
|
20634
|
+
}, null), slots.default?.(), rootEl.value && hasEndIntersect && intersectMode && vue.createVNode(VInfiniteScrollIntersect, {
|
|
20635
|
+
"key": "end",
|
|
20636
|
+
"side": "end",
|
|
20637
|
+
"onIntersect": handleIntersect,
|
|
20638
|
+
"rootRef": rootEl.value,
|
|
20639
|
+
"rootMargin": margin.value
|
|
20640
|
+
}, null), vue.createVNode("div", {
|
|
20641
|
+
"class": "v-infinite-scroll__side"
|
|
20642
|
+
}, [renderSide('end', endStatus.value)])]);
|
|
20643
|
+
});
|
|
20644
|
+
}
|
|
20645
|
+
});
|
|
20646
|
+
|
|
20647
|
+
// Types
|
|
20648
|
+
|
|
19909
20649
|
const rootTypes = {
|
|
19910
20650
|
actions: 'button@2',
|
|
19911
20651
|
article: 'heading, paragraph',
|
|
@@ -20036,177 +20776,6 @@
|
|
|
20036
20776
|
}
|
|
20037
20777
|
});
|
|
20038
20778
|
|
|
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
20779
|
var components = /*#__PURE__*/Object.freeze({
|
|
20211
20780
|
__proto__: null,
|
|
20212
20781
|
VAlert: VAlert,
|
|
@@ -20276,6 +20845,7 @@
|
|
|
20276
20845
|
VHover: VHover,
|
|
20277
20846
|
VIcon: VIcon,
|
|
20278
20847
|
VImg: VImg,
|
|
20848
|
+
VInfiniteScroll: VInfiniteScroll,
|
|
20279
20849
|
VInput: VInput,
|
|
20280
20850
|
VItem: VItem,
|
|
20281
20851
|
VItemGroup: VItemGroup,
|
|
@@ -20478,6 +21048,418 @@
|
|
|
20478
21048
|
Touch: Touch
|
|
20479
21049
|
});
|
|
20480
21050
|
|
|
21051
|
+
// Utilities
|
|
21052
|
+
|
|
21053
|
+
// Types
|
|
21054
|
+
|
|
21055
|
+
function getWeekArray(date) {
|
|
21056
|
+
let currentWeek = [];
|
|
21057
|
+
const weeks = [];
|
|
21058
|
+
const firstDayOfMonth = startOfMonth(date);
|
|
21059
|
+
const lastDayOfMonth = endOfMonth(date);
|
|
21060
|
+
for (let i = 0; i < firstDayOfMonth.getDay(); i++) {
|
|
21061
|
+
currentWeek.push(null);
|
|
21062
|
+
}
|
|
21063
|
+
for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {
|
|
21064
|
+
const day = new Date(date.getFullYear(), date.getMonth(), i);
|
|
21065
|
+
|
|
21066
|
+
// Add the day to the current week
|
|
21067
|
+
currentWeek.push(day);
|
|
21068
|
+
|
|
21069
|
+
// If the current week has 7 days, add it to the weeks array and start a new week
|
|
21070
|
+
if (currentWeek.length === 7) {
|
|
21071
|
+
weeks.push(currentWeek);
|
|
21072
|
+
currentWeek = [];
|
|
21073
|
+
}
|
|
21074
|
+
}
|
|
21075
|
+
for (let i = currentWeek.length; i < 7; i++) {
|
|
21076
|
+
currentWeek.push(null);
|
|
21077
|
+
}
|
|
21078
|
+
weeks.push(currentWeek);
|
|
21079
|
+
return weeks;
|
|
21080
|
+
}
|
|
21081
|
+
function startOfMonth(date) {
|
|
21082
|
+
return new Date(date.getFullYear(), date.getMonth(), 1);
|
|
21083
|
+
}
|
|
21084
|
+
function endOfMonth(date) {
|
|
21085
|
+
return new Date(date.getFullYear(), date.getMonth() + 1, 0);
|
|
21086
|
+
}
|
|
21087
|
+
function date(value) {
|
|
21088
|
+
if (value == null) return null;
|
|
21089
|
+
if (value instanceof Date) return value;
|
|
21090
|
+
if (typeof value === 'string') {
|
|
21091
|
+
const parsed = Date.parse(value);
|
|
21092
|
+
if (!isNaN(parsed)) return new Date(parsed);
|
|
21093
|
+
}
|
|
21094
|
+
return null;
|
|
21095
|
+
}
|
|
21096
|
+
const firstDay = {
|
|
21097
|
+
'001': 1,
|
|
21098
|
+
AD: 1,
|
|
21099
|
+
AE: 6,
|
|
21100
|
+
AF: 6,
|
|
21101
|
+
AG: 0,
|
|
21102
|
+
AI: 1,
|
|
21103
|
+
AL: 1,
|
|
21104
|
+
AM: 1,
|
|
21105
|
+
AN: 1,
|
|
21106
|
+
AR: 1,
|
|
21107
|
+
AS: 0,
|
|
21108
|
+
AT: 1,
|
|
21109
|
+
AU: 0,
|
|
21110
|
+
AX: 1,
|
|
21111
|
+
AZ: 1,
|
|
21112
|
+
BA: 1,
|
|
21113
|
+
BD: 0,
|
|
21114
|
+
BE: 1,
|
|
21115
|
+
BG: 1,
|
|
21116
|
+
BH: 6,
|
|
21117
|
+
BM: 1,
|
|
21118
|
+
BN: 1,
|
|
21119
|
+
BR: 0,
|
|
21120
|
+
BS: 0,
|
|
21121
|
+
BT: 0,
|
|
21122
|
+
BW: 0,
|
|
21123
|
+
BY: 1,
|
|
21124
|
+
BZ: 0,
|
|
21125
|
+
CA: 0,
|
|
21126
|
+
CH: 1,
|
|
21127
|
+
CL: 1,
|
|
21128
|
+
CM: 1,
|
|
21129
|
+
CN: 0,
|
|
21130
|
+
CO: 0,
|
|
21131
|
+
CR: 1,
|
|
21132
|
+
CY: 1,
|
|
21133
|
+
CZ: 1,
|
|
21134
|
+
DE: 1,
|
|
21135
|
+
DJ: 6,
|
|
21136
|
+
DK: 1,
|
|
21137
|
+
DM: 0,
|
|
21138
|
+
DO: 0,
|
|
21139
|
+
DZ: 6,
|
|
21140
|
+
EC: 1,
|
|
21141
|
+
EE: 1,
|
|
21142
|
+
EG: 6,
|
|
21143
|
+
ES: 1,
|
|
21144
|
+
ET: 0,
|
|
21145
|
+
FI: 1,
|
|
21146
|
+
FJ: 1,
|
|
21147
|
+
FO: 1,
|
|
21148
|
+
FR: 1,
|
|
21149
|
+
GB: 1,
|
|
21150
|
+
'GB-alt-variant': 0,
|
|
21151
|
+
GE: 1,
|
|
21152
|
+
GF: 1,
|
|
21153
|
+
GP: 1,
|
|
21154
|
+
GR: 1,
|
|
21155
|
+
GT: 0,
|
|
21156
|
+
GU: 0,
|
|
21157
|
+
HK: 0,
|
|
21158
|
+
HN: 0,
|
|
21159
|
+
HR: 1,
|
|
21160
|
+
HU: 1,
|
|
21161
|
+
ID: 0,
|
|
21162
|
+
IE: 1,
|
|
21163
|
+
IL: 0,
|
|
21164
|
+
IN: 0,
|
|
21165
|
+
IQ: 6,
|
|
21166
|
+
IR: 6,
|
|
21167
|
+
IS: 1,
|
|
21168
|
+
IT: 1,
|
|
21169
|
+
JM: 0,
|
|
21170
|
+
JO: 6,
|
|
21171
|
+
JP: 0,
|
|
21172
|
+
KE: 0,
|
|
21173
|
+
KG: 1,
|
|
21174
|
+
KH: 0,
|
|
21175
|
+
KR: 0,
|
|
21176
|
+
KW: 6,
|
|
21177
|
+
KZ: 1,
|
|
21178
|
+
LA: 0,
|
|
21179
|
+
LB: 1,
|
|
21180
|
+
LI: 1,
|
|
21181
|
+
LK: 1,
|
|
21182
|
+
LT: 1,
|
|
21183
|
+
LU: 1,
|
|
21184
|
+
LV: 1,
|
|
21185
|
+
LY: 6,
|
|
21186
|
+
MC: 1,
|
|
21187
|
+
MD: 1,
|
|
21188
|
+
ME: 1,
|
|
21189
|
+
MH: 0,
|
|
21190
|
+
MK: 1,
|
|
21191
|
+
MM: 0,
|
|
21192
|
+
MN: 1,
|
|
21193
|
+
MO: 0,
|
|
21194
|
+
MQ: 1,
|
|
21195
|
+
MT: 0,
|
|
21196
|
+
MV: 5,
|
|
21197
|
+
MX: 0,
|
|
21198
|
+
MY: 1,
|
|
21199
|
+
MZ: 0,
|
|
21200
|
+
NI: 0,
|
|
21201
|
+
NL: 1,
|
|
21202
|
+
NO: 1,
|
|
21203
|
+
NP: 0,
|
|
21204
|
+
NZ: 1,
|
|
21205
|
+
OM: 6,
|
|
21206
|
+
PA: 0,
|
|
21207
|
+
PE: 0,
|
|
21208
|
+
PH: 0,
|
|
21209
|
+
PK: 0,
|
|
21210
|
+
PL: 1,
|
|
21211
|
+
PR: 0,
|
|
21212
|
+
PT: 0,
|
|
21213
|
+
PY: 0,
|
|
21214
|
+
QA: 6,
|
|
21215
|
+
RE: 1,
|
|
21216
|
+
RO: 1,
|
|
21217
|
+
RS: 1,
|
|
21218
|
+
RU: 1,
|
|
21219
|
+
SA: 0,
|
|
21220
|
+
SD: 6,
|
|
21221
|
+
SE: 1,
|
|
21222
|
+
SG: 0,
|
|
21223
|
+
SI: 1,
|
|
21224
|
+
SK: 1,
|
|
21225
|
+
SM: 1,
|
|
21226
|
+
SV: 0,
|
|
21227
|
+
SY: 6,
|
|
21228
|
+
TH: 0,
|
|
21229
|
+
TJ: 1,
|
|
21230
|
+
TM: 1,
|
|
21231
|
+
TR: 1,
|
|
21232
|
+
TT: 0,
|
|
21233
|
+
TW: 0,
|
|
21234
|
+
UA: 1,
|
|
21235
|
+
UM: 0,
|
|
21236
|
+
US: 0,
|
|
21237
|
+
UY: 1,
|
|
21238
|
+
UZ: 1,
|
|
21239
|
+
VA: 1,
|
|
21240
|
+
VE: 0,
|
|
21241
|
+
VI: 0,
|
|
21242
|
+
VN: 1,
|
|
21243
|
+
WS: 0,
|
|
21244
|
+
XK: 1,
|
|
21245
|
+
YE: 0,
|
|
21246
|
+
ZA: 0,
|
|
21247
|
+
ZW: 0
|
|
21248
|
+
};
|
|
21249
|
+
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
|
21250
|
+
function getWeekdays(locale) {
|
|
21251
|
+
const daysFromSunday = firstDay[locale.slice(-2).toUpperCase()];
|
|
21252
|
+
return createRange(7).map(i => {
|
|
21253
|
+
const weekday = new Date(sundayJanuarySecond2000);
|
|
21254
|
+
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
|
21255
|
+
return new Intl.DateTimeFormat(locale, {
|
|
21256
|
+
weekday: 'long'
|
|
21257
|
+
}).format(weekday);
|
|
21258
|
+
});
|
|
21259
|
+
}
|
|
21260
|
+
function format(value, formatString, locale) {
|
|
21261
|
+
const date = new Date(value);
|
|
21262
|
+
let options = {};
|
|
21263
|
+
switch (formatString) {
|
|
21264
|
+
case 'fullDateWithWeekday':
|
|
21265
|
+
options = {
|
|
21266
|
+
weekday: 'long',
|
|
21267
|
+
day: 'numeric',
|
|
21268
|
+
month: 'long',
|
|
21269
|
+
year: 'numeric'
|
|
21270
|
+
};
|
|
21271
|
+
break;
|
|
21272
|
+
case 'normalDateWithWeekday':
|
|
21273
|
+
options = {
|
|
21274
|
+
weekday: 'short',
|
|
21275
|
+
day: 'numeric',
|
|
21276
|
+
month: 'short',
|
|
21277
|
+
year: 'numeric'
|
|
21278
|
+
};
|
|
21279
|
+
break;
|
|
21280
|
+
case 'keyboardDate':
|
|
21281
|
+
options = {};
|
|
21282
|
+
break;
|
|
21283
|
+
case 'monthAndDate':
|
|
21284
|
+
options = {
|
|
21285
|
+
month: 'long',
|
|
21286
|
+
day: 'numeric'
|
|
21287
|
+
};
|
|
21288
|
+
break;
|
|
21289
|
+
case 'monthAndYear':
|
|
21290
|
+
options = {
|
|
21291
|
+
month: 'long',
|
|
21292
|
+
year: 'numeric'
|
|
21293
|
+
};
|
|
21294
|
+
break;
|
|
21295
|
+
default:
|
|
21296
|
+
options = {
|
|
21297
|
+
timeZone: 'UTC',
|
|
21298
|
+
timeZoneName: 'short'
|
|
21299
|
+
};
|
|
21300
|
+
}
|
|
21301
|
+
return new Intl.DateTimeFormat(locale, options).format(date);
|
|
21302
|
+
}
|
|
21303
|
+
function addDays(date, amount) {
|
|
21304
|
+
const d = new Date(date);
|
|
21305
|
+
d.setDate(d.getDate() + amount);
|
|
21306
|
+
return d;
|
|
21307
|
+
}
|
|
21308
|
+
function addMonths(date, amount) {
|
|
21309
|
+
const d = new Date(date);
|
|
21310
|
+
d.setMonth(d.getMonth() + amount);
|
|
21311
|
+
return d;
|
|
21312
|
+
}
|
|
21313
|
+
function getYear(date) {
|
|
21314
|
+
return date.getFullYear();
|
|
21315
|
+
}
|
|
21316
|
+
function getMonth(date) {
|
|
21317
|
+
return date.getMonth();
|
|
21318
|
+
}
|
|
21319
|
+
function startOfYear(date) {
|
|
21320
|
+
return new Date(date.getFullYear(), 0, 1);
|
|
21321
|
+
}
|
|
21322
|
+
function endOfYear(date) {
|
|
21323
|
+
return new Date(date.getFullYear(), 11, 31);
|
|
21324
|
+
}
|
|
21325
|
+
function getMondayOfFirstWeekOfYear(year) {
|
|
21326
|
+
return new Date(year, 0, 1);
|
|
21327
|
+
}
|
|
21328
|
+
|
|
21329
|
+
// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
|
|
21330
|
+
function getWeek(date) {
|
|
21331
|
+
let year = date.getFullYear();
|
|
21332
|
+
let d1w1 = getMondayOfFirstWeekOfYear(year);
|
|
21333
|
+
if (date < d1w1) {
|
|
21334
|
+
year = year - 1;
|
|
21335
|
+
d1w1 = getMondayOfFirstWeekOfYear(year);
|
|
21336
|
+
} else {
|
|
21337
|
+
const tv = getMondayOfFirstWeekOfYear(year + 1);
|
|
21338
|
+
if (date >= tv) {
|
|
21339
|
+
year = year + 1;
|
|
21340
|
+
d1w1 = tv;
|
|
21341
|
+
}
|
|
21342
|
+
}
|
|
21343
|
+
const diffTime = Math.abs(date.getTime() - d1w1.getTime());
|
|
21344
|
+
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
|
21345
|
+
return Math.floor(diffDays / 7) + 1;
|
|
21346
|
+
}
|
|
21347
|
+
function isWithinRange(date, range) {
|
|
21348
|
+
return isAfter(date, range[0]) && isBefore(date, range[1]);
|
|
21349
|
+
}
|
|
21350
|
+
function isValid(date) {
|
|
21351
|
+
const d = new Date(date);
|
|
21352
|
+
return d instanceof Date && !isNaN(d.getTime());
|
|
21353
|
+
}
|
|
21354
|
+
function isAfter(date, comparing) {
|
|
21355
|
+
return date.getTime() > comparing.getTime();
|
|
21356
|
+
}
|
|
21357
|
+
function isBefore(date, comparing) {
|
|
21358
|
+
return date.getTime() < comparing.getTime();
|
|
21359
|
+
}
|
|
21360
|
+
function isEqual(date, comparing) {
|
|
21361
|
+
return date.getTime() === comparing.getTime();
|
|
21362
|
+
}
|
|
21363
|
+
function isSameDay(date, comparing) {
|
|
21364
|
+
return date.getDate() === comparing.getDate() && date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
|
21365
|
+
}
|
|
21366
|
+
function isSameMonth(date, comparing) {
|
|
21367
|
+
return date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
|
21368
|
+
}
|
|
21369
|
+
function getDiff(date, comparing, unit) {
|
|
21370
|
+
const d = new Date(date);
|
|
21371
|
+
const c = new Date(comparing);
|
|
21372
|
+
if (unit === 'month') {
|
|
21373
|
+
return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12;
|
|
21374
|
+
}
|
|
21375
|
+
return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24));
|
|
21376
|
+
}
|
|
21377
|
+
function setYear(date, year) {
|
|
21378
|
+
const d = new Date(date);
|
|
21379
|
+
d.setFullYear(year);
|
|
21380
|
+
return d;
|
|
21381
|
+
}
|
|
21382
|
+
class VuetifyDateAdapter {
|
|
21383
|
+
constructor() {
|
|
21384
|
+
let locale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'en';
|
|
21385
|
+
this.locale = locale;
|
|
21386
|
+
}
|
|
21387
|
+
date(value) {
|
|
21388
|
+
return date(value);
|
|
21389
|
+
}
|
|
21390
|
+
addDays(date, amount) {
|
|
21391
|
+
return addDays(date, amount);
|
|
21392
|
+
}
|
|
21393
|
+
addMonths(date, amount) {
|
|
21394
|
+
return addMonths(date, amount);
|
|
21395
|
+
}
|
|
21396
|
+
getWeekArray(date) {
|
|
21397
|
+
return getWeekArray(date);
|
|
21398
|
+
}
|
|
21399
|
+
startOfMonth(date) {
|
|
21400
|
+
return startOfMonth(date);
|
|
21401
|
+
}
|
|
21402
|
+
endOfMonth(date) {
|
|
21403
|
+
return endOfMonth(date);
|
|
21404
|
+
}
|
|
21405
|
+
format(date, formatString) {
|
|
21406
|
+
return format(date, formatString, this.locale);
|
|
21407
|
+
}
|
|
21408
|
+
isEqual(date, comparing) {
|
|
21409
|
+
return isEqual(date, comparing);
|
|
21410
|
+
}
|
|
21411
|
+
isValid(date) {
|
|
21412
|
+
return isValid(date);
|
|
21413
|
+
}
|
|
21414
|
+
isWithinRange(date, range) {
|
|
21415
|
+
return isWithinRange(date, range);
|
|
21416
|
+
}
|
|
21417
|
+
isAfter(date, comparing) {
|
|
21418
|
+
return isAfter(date, comparing);
|
|
21419
|
+
}
|
|
21420
|
+
isSameDay(date, comparing) {
|
|
21421
|
+
return isSameDay(date, comparing);
|
|
21422
|
+
}
|
|
21423
|
+
isSameMonth(date, comparing) {
|
|
21424
|
+
return isSameMonth(date, comparing);
|
|
21425
|
+
}
|
|
21426
|
+
setYear(date, year) {
|
|
21427
|
+
return setYear(date, year);
|
|
21428
|
+
}
|
|
21429
|
+
getDiff(date, comparing, unit) {
|
|
21430
|
+
return getDiff(date, comparing, unit);
|
|
21431
|
+
}
|
|
21432
|
+
getWeek(date) {
|
|
21433
|
+
return getWeek(date);
|
|
21434
|
+
}
|
|
21435
|
+
getWeekdays() {
|
|
21436
|
+
return getWeekdays(this.locale);
|
|
21437
|
+
}
|
|
21438
|
+
getYear(date) {
|
|
21439
|
+
return getYear(date);
|
|
21440
|
+
}
|
|
21441
|
+
getMonth(date) {
|
|
21442
|
+
return getMonth(date);
|
|
21443
|
+
}
|
|
21444
|
+
startOfYear(date) {
|
|
21445
|
+
return startOfYear(date);
|
|
21446
|
+
}
|
|
21447
|
+
endOfYear(date) {
|
|
21448
|
+
return endOfYear(date);
|
|
21449
|
+
}
|
|
21450
|
+
}
|
|
21451
|
+
|
|
21452
|
+
// Composables
|
|
21453
|
+
|
|
21454
|
+
// Types
|
|
21455
|
+
|
|
21456
|
+
const DateAdapterSymbol = Symbol.for('vuetify:date-adapter');
|
|
21457
|
+
function createDate(options) {
|
|
21458
|
+
return options ?? {
|
|
21459
|
+
adapter: VuetifyDateAdapter
|
|
21460
|
+
};
|
|
21461
|
+
}
|
|
21462
|
+
|
|
20481
21463
|
// Composables
|
|
20482
21464
|
function createVuetify$1() {
|
|
20483
21465
|
let vuetify = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -20496,6 +21478,7 @@
|
|
|
20496
21478
|
const theme = createTheme(options.theme);
|
|
20497
21479
|
const icons = createIcons(options.icons);
|
|
20498
21480
|
const locale = createLocale(options.locale);
|
|
21481
|
+
const date = createDate(options.date);
|
|
20499
21482
|
const install = app => {
|
|
20500
21483
|
for (const key in directives) {
|
|
20501
21484
|
app.directive(key, directives[key]);
|
|
@@ -20516,6 +21499,7 @@
|
|
|
20516
21499
|
app.provide(ThemeSymbol, theme);
|
|
20517
21500
|
app.provide(IconSymbol, icons);
|
|
20518
21501
|
app.provide(LocaleSymbol, locale);
|
|
21502
|
+
app.provide(DateAdapterSymbol, date);
|
|
20519
21503
|
if (IN_BROWSER && options.ssr) {
|
|
20520
21504
|
if (app.$nuxt) {
|
|
20521
21505
|
app.$nuxt.hook('app:suspense:resolve', () => {
|
|
@@ -20543,7 +21527,8 @@
|
|
|
20543
21527
|
display: inject.call(this, DisplaySymbol),
|
|
20544
21528
|
theme: inject.call(this, ThemeSymbol),
|
|
20545
21529
|
icons: inject.call(this, IconSymbol),
|
|
20546
|
-
locale: inject.call(this, LocaleSymbol)
|
|
21530
|
+
locale: inject.call(this, LocaleSymbol),
|
|
21531
|
+
date: inject.call(this, DateAdapterSymbol)
|
|
20547
21532
|
});
|
|
20548
21533
|
}
|
|
20549
21534
|
}
|
|
@@ -20556,10 +21541,11 @@
|
|
|
20556
21541
|
display,
|
|
20557
21542
|
theme,
|
|
20558
21543
|
icons,
|
|
20559
|
-
locale
|
|
21544
|
+
locale,
|
|
21545
|
+
date
|
|
20560
21546
|
};
|
|
20561
21547
|
}
|
|
20562
|
-
const version$1 = "3.1
|
|
21548
|
+
const version$1 = "3.2.1";
|
|
20563
21549
|
createVuetify$1.version = version$1;
|
|
20564
21550
|
|
|
20565
21551
|
// Vue's inject() can only be used in setup
|
|
@@ -20571,7 +21557,7 @@
|
|
|
20571
21557
|
}
|
|
20572
21558
|
}
|
|
20573
21559
|
|
|
20574
|
-
const version = "3.1
|
|
21560
|
+
const version = "3.2.1";
|
|
20575
21561
|
|
|
20576
21562
|
const createVuetify = function () {
|
|
20577
21563
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -20585,6 +21571,7 @@
|
|
|
20585
21571
|
exports.components = components;
|
|
20586
21572
|
exports.createVuetify = createVuetify;
|
|
20587
21573
|
exports.directives = directives;
|
|
21574
|
+
exports.useDefaults = useDefaults;
|
|
20588
21575
|
exports.useDisplay = useDisplay;
|
|
20589
21576
|
exports.useLayout = useLayout;
|
|
20590
21577
|
exports.useLocale = useLocale;
|