@vuetify/nightly 4.0.0-dev-20230426.0 → 4.0.0-dev-20230511.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -15
- package/dist/json/attributes.json +949 -729
- package/dist/json/importMap-labs.json +4 -4
- package/dist/json/importMap.json +12 -12
- package/dist/json/tags.json +57 -2
- package/dist/json/web-types.json +1966 -1440
- package/dist/vuetify-labs.css +1504 -1493
- package/dist/vuetify-labs.d.ts +6175 -8100
- package/dist/vuetify-labs.esm.js +1462 -1230
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +1461 -1229
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +51 -40
- package/dist/vuetify.d.ts +6327 -7380
- package/dist/vuetify.esm.js +1401 -1194
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +1400 -1193
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +805 -805
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/{index.d.ts → index.d.mts} +6 -2
- package/lib/blueprints/{md1.d.ts → md1.d.mts} +6 -2
- package/lib/blueprints/{md2.d.ts → md2.d.mts} +6 -2
- package/lib/blueprints/{md3.d.ts → md3.d.mts} +6 -2
- package/lib/components/VAlert/VAlert.mjs +6 -4
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/{index.d.ts → index.d.mts} +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 → index.d.mts} +22 -13
- package/lib/components/VAppBar/VAppBar.mjs +10 -14
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarNavIcon.mjs +10 -13
- package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
- package/lib/components/VAppBar/{index.d.ts → index.d.mts} +479 -118
- package/lib/components/VAutocomplete/VAutocomplete.css +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +11 -3
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +1 -1
- package/lib/components/VAutocomplete/{index.d.ts → index.d.mts} +231 -409
- package/lib/components/VAvatar/VAvatar.mjs +4 -2
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/{index.d.ts → index.d.mts} +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 → index.d.mts} +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 → index.d.mts} +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 → index.d.mts} +22 -13
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +35 -18
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +6 -3
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +4 -2
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/{index.d.ts → index.d.mts} +134 -93
- package/lib/components/VBtn/VBtn.mjs +12 -9
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/{index.d.ts → index.d.mts} +33 -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 → index.d.mts} +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 → index.d.mts} +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 → index.d.mts} +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 → index.d.mts} +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 -2
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
- package/lib/components/VCheckbox/{index.d.ts → index.d.mts} +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 → index.d.mts} +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 → index.d.mts} +22 -13
- package/lib/components/VCode/{index.d.ts → index.d.mts} +30 -17
- package/lib/components/VColorPicker/VColorPicker.mjs +12 -7
- 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 +12 -9
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VColorPicker/{index.d.ts → index.d.mts} +131 -32
- package/lib/components/VColorPicker/util/index.mjs +2 -22
- package/lib/components/VColorPicker/util/index.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +11 -3
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/{index.d.ts → index.d.mts} +231 -409
- package/lib/components/VCounter/VCounter.mjs +4 -1
- package/lib/components/VCounter/VCounter.mjs.map +1 -1
- package/lib/components/VCounter/{index.d.ts → index.d.mts} +22 -145
- package/lib/components/VDefaultsProvider/{index.d.ts → index.d.mts} +0 -12
- package/lib/components/VDialog/VDialog.mjs +4 -3
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/{index.d.ts → index.d.mts} +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 → index.d.mts} +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 → index.d.mts} +109 -81
- package/lib/components/VField/VField.css +0 -1
- package/lib/components/VField/VField.mjs +9 -6
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +0 -1
- package/lib/components/VField/VFieldLabel.mjs +6 -3
- package/lib/components/VField/VFieldLabel.mjs.map +1 -1
- package/lib/components/VField/{index.d.ts → index.d.mts} +125 -76
- package/lib/components/VFileInput/VFileInput.mjs +4 -2
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/{index.d.ts → index.d.mts} +114 -165
- package/lib/components/VFooter/VFooter.mjs +4 -2
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VFooter/{index.d.ts → index.d.mts} +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 → index.d.mts} +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 → index.d.mts} +104 -60
- package/lib/components/VHover/{index.d.ts → index.d.mts} +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 → index.d.mts} +23 -26
- package/lib/components/VImg/VImg.css +2 -4
- package/lib/components/VImg/VImg.mjs +27 -24
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/VImg.sass +4 -3
- package/lib/components/VImg/{index.d.ts → index.d.mts} +73 -31
- package/lib/components/VInput/VInput.mjs +4 -1
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/{index.d.ts → index.d.mts} +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 → index.d.mts} +30 -33
- package/lib/components/VKbd/{index.d.ts → index.d.mts} +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 → index.d.mts} +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 → index.d.mts} +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 → index.d.mts} +22 -13
- package/lib/components/VList/VList.mjs +12 -24
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +8 -2
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +12 -5
- 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 → index.d.mts} +950 -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 → index.d.mts} +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 → index.d.mts} +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 → index.d.mts} +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 → index.d.mts} +22 -145
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +5 -10
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/{index.d.ts → index.d.mts} +26 -29
- package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
- package/lib/components/VNoSsr/index.d.mts +8 -0
- package/lib/components/VOverlay/VOverlay.mjs +5 -3
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/{index.d.ts → index.d.mts} +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 → index.d.mts} +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 → index.d.mts} +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 → index.d.mts} +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 → index.d.mts} +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 → index.d.mts} +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 → index.d.mts} +45 -68
- package/lib/components/VRangeSlider/VRangeSlider.mjs +2 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/{index.d.ts → index.d.mts} +33 -44
- package/lib/components/VRating/VRating.mjs +4 -1
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/{index.d.ts → index.d.mts} +23 -18
- package/lib/components/VResponsive/VResponsive.css +13 -5
- package/lib/components/VResponsive/VResponsive.mjs +14 -8
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VResponsive/VResponsive.sass +12 -4
- package/lib/components/VResponsive/{index.d.ts → index.d.mts} +52 -31
- package/lib/components/VSelect/VSelect.mjs +11 -3
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/{index.d.ts → index.d.mts} +200 -558
- package/lib/components/VSelectionControl/VSelectionControl.mjs +6 -2
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/{index.d.ts → index.d.mts} +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 → index.d.mts} +23 -14
- package/lib/components/VSheet/VSheet.css +6 -0
- package/lib/components/VSheet/VSheet.mjs +4 -2
- package/lib/components/VSheet/VSheet.mjs.map +1 -1
- package/lib/components/VSheet/_variables.scss +1 -1
- package/lib/components/VSheet/{index.d.ts → index.d.mts} +22 -13
- package/lib/components/VSlideGroup/VSlideGroup.mjs +6 -3
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/{index.d.ts → index.d.mts} +59 -90
- package/lib/components/VSlider/VSlider.mjs +2 -1
- 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 → index.d.mts} +33 -44
- package/lib/components/VSnackbar/VSnackbar.mjs +2 -1
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/{index.d.ts → index.d.mts} +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 → index.d.mts} +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 → index.d.mts} +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 → index.d.mts} +26 -29
- package/lib/components/VTabs/VTab.mjs +2 -2
- 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 → index.d.mts} +45 -27
- package/lib/components/VTextField/VTextField.mjs +3 -2
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/{index.d.ts → index.d.mts} +232 -293
- package/lib/components/VTextarea/VTextarea.mjs +3 -2
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/{index.d.ts → index.d.mts} +94 -137
- package/lib/components/VThemeProvider/VThemeProvider.mjs +6 -3
- package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
- package/lib/components/VThemeProvider/{index.d.ts → index.d.mts} +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 → index.d.mts} +67 -57
- package/lib/components/VToolbar/VToolbar.mjs +4 -2
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -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 → index.d.mts} +74 -71
- package/lib/components/VTooltip/VTooltip.mjs +2 -1
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/{index.d.ts → index.d.mts} +104 -150
- package/lib/components/VValidation/{index.d.ts → index.d.mts} +6 -18
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs +21 -23
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs +5 -2
- package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
- package/lib/components/VVirtualScroll/{index.d.ts → index.d.mts} +70 -30
- 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 → index.d.mts} +61 -79
- package/lib/components/{index.d.ts → index.d.mts} +6475 -7529
- package/lib/components/transitions/{index.d.ts → index.d.mts} +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/display.mjs +6 -6
- package/lib/composables/display.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 -1
- package/lib/composables/index.mjs.map +1 -1
- package/lib/composables/loader.mjs.map +1 -1
- package/lib/composables/scroll.mjs +18 -19
- package/lib/composables/scroll.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +2 -2
- package/lib/framework.mjs.map +1 -1
- package/lib/iconsets/{fa-svg.d.ts → fa-svg.d.mts} +1 -1
- package/lib/iconsets/{fa.d.ts → fa.d.mts} +1 -1
- package/lib/iconsets/{fa4.d.ts → fa4.d.mts} +1 -1
- package/lib/iconsets/{md.d.ts → md.d.mts} +1 -1
- package/lib/iconsets/{mdi-svg.d.ts → mdi-svg.d.mts} +1 -1
- package/lib/iconsets/{mdi.d.ts → mdi.d.mts} +1 -1
- package/lib/{index.d.ts → index.d.mts} +13 -12
- package/lib/labs/VDataTable/VDataTable.mjs +12 -3
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableHeaders.mjs +34 -20
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRow.mjs +2 -4
- package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +2 -2
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +1 -6
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +7 -2
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/paginate.mjs +6 -1
- package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
- package/lib/labs/VDataTable/{index.d.ts → index.d.mts} +113 -943
- package/lib/labs/VInfiniteScroll/{index.d.ts → index.d.mts} +8 -36
- package/lib/labs/VSkeletonLoader/{index.d.ts → index.d.mts} +0 -12
- package/lib/labs/{components.d.ts → components.d.mts} +161 -1031
- package/lib/labs/date/DateAdapter.mjs +2 -0
- package/lib/labs/date/DateAdapter.mjs.map +1 -0
- package/lib/labs/date/adapters/vuetify.d.mts +52 -0
- package/lib/{adapters → labs/date/adapters}/vuetify.mjs +2 -2
- package/lib/labs/date/adapters/vuetify.mjs.map +1 -0
- package/lib/{composables → labs/date}/date.mjs +3 -3
- package/lib/labs/date/date.mjs.map +1 -0
- package/lib/labs/date/index.d.mts +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/util/colorUtils.mjs +68 -3
- package/lib/util/colorUtils.mjs.map +1 -1
- package/lib/util/console.mjs +12 -81
- package/lib/util/console.mjs.map +1 -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 +31 -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 +11 -6
- package/lib/adapters/date-adapter.mjs +0 -2
- package/lib/adapters/date-adapter.mjs.map +0 -1
- package/lib/adapters/vuetify.mjs.map +0 -1
- package/lib/components/VNoSsr/index.d.ts +0 -18
- package/lib/composables/date.mjs.map +0 -1
- /package/lib/directives/{index.d.ts → index.d.mts} +0 -0
- /package/lib/locale/adapters/{vue-i18n.d.ts → vue-i18n.d.mts} +0 -0
- /package/lib/locale/adapters/{vuetify.d.ts → vuetify.d.mts} +0 -0
- /package/lib/locale/{index.d.ts → index.d.mts} +0 -0
package/dist/vuetify.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v4.0.0-dev-
|
2
|
+
* Vuetify v4.0.0-dev-20230511.0
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -171,11 +171,14 @@
|
|
171
171
|
function keys(o) {
|
172
172
|
return Object.keys(o);
|
173
173
|
}
|
174
|
-
function
|
174
|
+
function has(obj, key) {
|
175
|
+
return key.every(k => obj.hasOwnProperty(k));
|
176
|
+
}
|
177
|
+
function pick(obj, paths, exclude) {
|
175
178
|
const found = Object.create(null);
|
176
179
|
const rest = Object.create(null);
|
177
180
|
for (const key in obj) {
|
178
|
-
if (paths.some(path => path instanceof RegExp ? path.test(key) : path === key)) {
|
181
|
+
if (paths.some(path => path instanceof RegExp ? path.test(key) : path === key) && !exclude?.some(path => path === key)) {
|
179
182
|
found[key] = obj[key];
|
180
183
|
} else {
|
181
184
|
rest[key] = obj[key];
|
@@ -360,6 +363,32 @@
|
|
360
363
|
handler(...args);
|
361
364
|
}
|
362
365
|
}
|
366
|
+
function focusableChildren(el) {
|
367
|
+
const targets = ['button', '[href]', 'input:not([type="hidden"])', 'select', 'textarea', '[tabindex]'].map(s => `${s}:not([tabindex="-1"]):not([disabled])`).join(', ');
|
368
|
+
return [...el.querySelectorAll(targets)];
|
369
|
+
}
|
370
|
+
function focusChild(el, location) {
|
371
|
+
const focusable = focusableChildren(el);
|
372
|
+
const idx = focusable.indexOf(document.activeElement);
|
373
|
+
if (!location) {
|
374
|
+
if (!el.contains(document.activeElement)) {
|
375
|
+
focusable[0]?.focus();
|
376
|
+
}
|
377
|
+
} else if (location === 'first') {
|
378
|
+
focusable[0]?.focus();
|
379
|
+
} else if (location === 'last') {
|
380
|
+
focusable.at(-1)?.focus();
|
381
|
+
} else {
|
382
|
+
let _el;
|
383
|
+
let idxx = idx;
|
384
|
+
const inc = location === 'next' ? 1 : -1;
|
385
|
+
do {
|
386
|
+
idxx += inc;
|
387
|
+
_el = focusable[idxx];
|
388
|
+
} while ((!_el || _el.offsetParent == null) && idxx < focusable.length && idxx >= 0);
|
389
|
+
if (_el) _el.focus();else focusChild(el, location === 'next' ? 'first' : 'last');
|
390
|
+
}
|
391
|
+
}
|
363
392
|
|
364
393
|
const block = ['top', 'bottom'];
|
365
394
|
const inline = ['start', 'end', 'left', 'right'];
|
@@ -512,79 +541,15 @@
|
|
512
541
|
}
|
513
542
|
|
514
543
|
/* eslint-disable no-console */
|
515
|
-
|
516
|
-
|
517
|
-
function createMessage(message, vm, parent) {
|
518
|
-
// if (Vuetify.config.silent) return
|
519
|
-
|
520
|
-
if (parent) {
|
521
|
-
vm = {
|
522
|
-
__isVue: true,
|
523
|
-
$parent: parent,
|
524
|
-
$options: vm
|
525
|
-
};
|
526
|
-
}
|
527
|
-
if (vm) {
|
528
|
-
// Only show each message once per instance
|
529
|
-
vm.$_alreadyWarned = vm.$_alreadyWarned || [];
|
530
|
-
if (vm.$_alreadyWarned.includes(message)) return;
|
531
|
-
vm.$_alreadyWarned.push(message);
|
532
|
-
}
|
533
|
-
return `[Vuetify] ${message}` + (vm ? generateComponentTrace(vm) : '');
|
534
|
-
}
|
535
|
-
function consoleWarn(message, vm, parent) {
|
536
|
-
const newMessage = createMessage(message, vm, parent);
|
537
|
-
newMessage != null && console.warn(newMessage);
|
544
|
+
function consoleWarn(message) {
|
545
|
+
vue.warn(`Vuetify: ${message}`);
|
538
546
|
}
|
539
|
-
function consoleError(message
|
540
|
-
|
541
|
-
newMessage != null && console.error(newMessage);
|
547
|
+
function consoleError(message) {
|
548
|
+
vue.warn(`Vuetify error: ${message}`);
|
542
549
|
}
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
*/
|
547
|
-
|
548
|
-
const classifyRE = /(?:^|[-_])(\w)/g;
|
549
|
-
const classify = str => str.replace(classifyRE, c => c.toUpperCase()).replace(/[-_]/g, '');
|
550
|
-
function formatComponentName(vm, includeFile) {
|
551
|
-
if (vm.$root === vm) {
|
552
|
-
return '<Root>';
|
553
|
-
}
|
554
|
-
const options = typeof vm === 'function' && vm.cid != null ? vm.options : vm.__isVue ? vm.$options || vm.constructor.options : vm || {};
|
555
|
-
let name = options.name || options._componentTag;
|
556
|
-
const file = options.__file;
|
557
|
-
if (!name && file) {
|
558
|
-
const match = file.match(/([^/\\]+)\.vue$/);
|
559
|
-
name = match?.[1];
|
560
|
-
}
|
561
|
-
return (name ? `<${classify(name)}>` : `<Anonymous>`) + (file && includeFile !== false ? ` at ${file}` : '');
|
562
|
-
}
|
563
|
-
function generateComponentTrace(vm) {
|
564
|
-
if (vm.__isVue && vm.$parent) {
|
565
|
-
const tree = [];
|
566
|
-
let currentRecursiveSequence = 0;
|
567
|
-
while (vm) {
|
568
|
-
if (tree.length > 0) {
|
569
|
-
const last = tree[tree.length - 1];
|
570
|
-
if (last.constructor === vm.constructor) {
|
571
|
-
currentRecursiveSequence++;
|
572
|
-
vm = vm.$parent;
|
573
|
-
continue;
|
574
|
-
} else if (currentRecursiveSequence > 0) {
|
575
|
-
tree[tree.length - 1] = [last, currentRecursiveSequence];
|
576
|
-
currentRecursiveSequence = 0;
|
577
|
-
}
|
578
|
-
}
|
579
|
-
tree.push(vm);
|
580
|
-
vm = vm.$parent;
|
581
|
-
}
|
582
|
-
return '\n\nfound in\n\n' + tree.map((vm, i) => `${i === 0 ? '---> ' : ' '.repeat(5 + i * 2)}${Array.isArray(vm)
|
583
|
-
// eslint-disable-next-line sonarjs/no-nested-template-literals
|
584
|
-
? `${formatComponentName(vm[0])}... (${vm[1]} recursive calls)` : formatComponentName(vm)}`).join('\n');
|
585
|
-
} else {
|
586
|
-
return `\n\n(found in ${formatComponentName(vm)})`;
|
587
|
-
}
|
550
|
+
function deprecate(original, replacement) {
|
551
|
+
replacement = Array.isArray(replacement) ? replacement.slice(0, -1).map(s => `'${s}'`).join(', ') + ` or '${replacement.at(-1)}'` : `'${replacement}'`;
|
552
|
+
vue.warn(`[Vuetify UPGRADE] '${original}' is deprecated, use ${replacement} instead.`);
|
588
553
|
}
|
589
554
|
|
590
555
|
// For converting XYZ to sRGB
|
@@ -658,7 +623,46 @@
|
|
658
623
|
function isCssColor(color) {
|
659
624
|
return !!color && /^(#|var\(--|(rgb|hsl)a?\()/.test(color);
|
660
625
|
}
|
661
|
-
|
626
|
+
const cssColorRe = /^(?<fn>(?:rgb|hsl)a?)\((?<values>.+)\)/;
|
627
|
+
const mappers = {
|
628
|
+
rgb: (r, g, b, a) => ({
|
629
|
+
r,
|
630
|
+
g,
|
631
|
+
b,
|
632
|
+
a
|
633
|
+
}),
|
634
|
+
rgba: (r, g, b, a) => ({
|
635
|
+
r,
|
636
|
+
g,
|
637
|
+
b,
|
638
|
+
a
|
639
|
+
}),
|
640
|
+
hsl: (h, s, l, a) => HSLtoRGB({
|
641
|
+
h,
|
642
|
+
s,
|
643
|
+
l,
|
644
|
+
a
|
645
|
+
}),
|
646
|
+
hsla: (h, s, l, a) => HSLtoRGB({
|
647
|
+
h,
|
648
|
+
s,
|
649
|
+
l,
|
650
|
+
a
|
651
|
+
}),
|
652
|
+
hsv: (h, s, v, a) => HSVtoRGB({
|
653
|
+
h,
|
654
|
+
s,
|
655
|
+
v,
|
656
|
+
a
|
657
|
+
}),
|
658
|
+
hsva: (h, s, v, a) => HSVtoRGB({
|
659
|
+
h,
|
660
|
+
s,
|
661
|
+
v,
|
662
|
+
a
|
663
|
+
})
|
664
|
+
};
|
665
|
+
function parseColor(color) {
|
662
666
|
if (typeof color === 'number') {
|
663
667
|
if (isNaN(color) || color < 0 || color > 0xFFFFFF) {
|
664
668
|
// int can't have opacity
|
@@ -669,6 +673,22 @@
|
|
669
673
|
g: (color & 0xFF00) >> 8,
|
670
674
|
b: color & 0xFF
|
671
675
|
};
|
676
|
+
} else if (typeof color === 'string' && cssColorRe.test(color)) {
|
677
|
+
const {
|
678
|
+
groups
|
679
|
+
} = color.match(cssColorRe);
|
680
|
+
const {
|
681
|
+
fn,
|
682
|
+
values
|
683
|
+
} = groups;
|
684
|
+
const realValues = values.split(/,\s*/).map(v => {
|
685
|
+
if (v.endsWith('%') && ['hsl', 'hsla', 'hsv', 'hsva'].includes(fn)) {
|
686
|
+
return parseFloat(v) / 100;
|
687
|
+
} else {
|
688
|
+
return parseFloat(v);
|
689
|
+
}
|
690
|
+
});
|
691
|
+
return mappers[fn](...realValues);
|
672
692
|
} else if (typeof color === 'string') {
|
673
693
|
let hex = color.startsWith('#') ? color.slice(1) : color;
|
674
694
|
if ([3, 4].includes(hex.length)) {
|
@@ -681,9 +701,16 @@
|
|
681
701
|
consoleWarn(`'${color}' is not a valid hex(a) color`);
|
682
702
|
}
|
683
703
|
return HexToRGB(hex);
|
684
|
-
} else {
|
685
|
-
|
704
|
+
} else if (typeof color === 'object') {
|
705
|
+
if (has(color, ['r', 'g', 'b'])) {
|
706
|
+
return color;
|
707
|
+
} else if (has(color, ['h', 's', 'l'])) {
|
708
|
+
return HSVtoRGB(HSLtoHSV(color));
|
709
|
+
} else if (has(color, ['h', 's', 'v'])) {
|
710
|
+
return HSVtoRGB(color);
|
711
|
+
}
|
686
712
|
}
|
713
|
+
throw new TypeError(`Invalid color: ${color == null ? color : String(color) || color.constructor.name}\nExpected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`);
|
687
714
|
}
|
688
715
|
|
689
716
|
/** Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */
|
@@ -706,6 +733,9 @@
|
|
706
733
|
a
|
707
734
|
};
|
708
735
|
}
|
736
|
+
function HSLtoRGB(hsla) {
|
737
|
+
return HSVtoRGB(HSLtoHSV(hsla));
|
738
|
+
}
|
709
739
|
|
710
740
|
/** Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */
|
711
741
|
function RGBtoHSV(rgba) {
|
@@ -844,7 +874,7 @@
|
|
844
874
|
* @see https://www.w3.org/TR/WCAG20/#relativeluminancedef
|
845
875
|
*/
|
846
876
|
function getLuma(color) {
|
847
|
-
const rgb = parseColor
|
877
|
+
const rgb = parseColor(color);
|
848
878
|
return toXYZ$1(rgb)[1];
|
849
879
|
}
|
850
880
|
|
@@ -860,44 +890,6 @@
|
|
860
890
|
return (light + 0.05) / (dark + 0.05);
|
861
891
|
}
|
862
892
|
|
863
|
-
// Utilities
|
864
|
-
function getCurrentInstance(name, message) {
|
865
|
-
const vm = vue.getCurrentInstance();
|
866
|
-
if (!vm) {
|
867
|
-
throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);
|
868
|
-
}
|
869
|
-
return vm;
|
870
|
-
}
|
871
|
-
function getCurrentInstanceName() {
|
872
|
-
let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';
|
873
|
-
const vm = getCurrentInstance(name).type;
|
874
|
-
return toKebabCase(vm?.aliasName || vm?.name);
|
875
|
-
}
|
876
|
-
let _uid = 0;
|
877
|
-
let _map = new WeakMap();
|
878
|
-
function getUid() {
|
879
|
-
const vm = getCurrentInstance('getUid');
|
880
|
-
if (_map.has(vm)) return _map.get(vm);else {
|
881
|
-
const uid = _uid++;
|
882
|
-
_map.set(vm, uid);
|
883
|
-
return uid;
|
884
|
-
}
|
885
|
-
}
|
886
|
-
getUid.reset = () => {
|
887
|
-
_uid = 0;
|
888
|
-
_map = new WeakMap();
|
889
|
-
};
|
890
|
-
|
891
|
-
function injectSelf(key) {
|
892
|
-
const {
|
893
|
-
provides
|
894
|
-
} = getCurrentInstance('injectSelf');
|
895
|
-
if (provides && key in provides) {
|
896
|
-
// TS doesn't allow symbol as index type
|
897
|
-
return provides[key];
|
898
|
-
}
|
899
|
-
}
|
900
|
-
|
901
893
|
/**
|
902
894
|
* Creates a factory function for props definitions.
|
903
895
|
* This is used to define props in a composable then override
|
@@ -951,17 +943,54 @@
|
|
951
943
|
|
952
944
|
// Types
|
953
945
|
|
946
|
+
// Composables
|
947
|
+
const makeComponentProps = propsFactory({
|
948
|
+
class: [String, Array],
|
949
|
+
style: {
|
950
|
+
type: [String, Array, Object],
|
951
|
+
default: null
|
952
|
+
}
|
953
|
+
}, 'component');
|
954
|
+
|
955
|
+
function useToggleScope(source, fn) {
|
956
|
+
let scope;
|
957
|
+
function start() {
|
958
|
+
scope = vue.effectScope();
|
959
|
+
scope.run(() => fn.length ? fn(() => {
|
960
|
+
scope?.stop();
|
961
|
+
start();
|
962
|
+
}) : fn());
|
963
|
+
}
|
964
|
+
vue.watch(source, active => {
|
965
|
+
if (active && !scope) {
|
966
|
+
start();
|
967
|
+
} else if (!active) {
|
968
|
+
scope?.stop();
|
969
|
+
scope = undefined;
|
970
|
+
}
|
971
|
+
}, {
|
972
|
+
immediate: true
|
973
|
+
});
|
974
|
+
vue.onScopeDispose(() => {
|
975
|
+
scope?.stop();
|
976
|
+
});
|
977
|
+
}
|
978
|
+
|
979
|
+
// Composables
|
980
|
+
|
981
|
+
// Types
|
982
|
+
|
954
983
|
const DefaultsSymbol = Symbol.for('vuetify:defaults');
|
955
984
|
function createDefaults(options) {
|
956
985
|
return vue.ref(options);
|
957
986
|
}
|
958
|
-
function
|
987
|
+
function injectDefaults() {
|
959
988
|
const defaults = vue.inject(DefaultsSymbol);
|
960
989
|
if (!defaults) throw new Error('[Vuetify] Could not find defaults instance');
|
961
990
|
return defaults;
|
962
991
|
}
|
963
992
|
function provideDefaults(defaults, options) {
|
964
|
-
const injectedDefaults =
|
993
|
+
const injectedDefaults = injectDefaults();
|
965
994
|
const providedDefaults = vue.ref(defaults);
|
966
995
|
const newDefaults = vue.computed(() => {
|
967
996
|
const disabled = vue.unref(options?.disabled);
|
@@ -988,41 +1017,68 @@
|
|
988
1017
|
vue.provide(DefaultsSymbol, newDefaults);
|
989
1018
|
return newDefaults;
|
990
1019
|
}
|
991
|
-
|
992
|
-
|
993
|
-
|
994
|
-
|
995
|
-
|
996
|
-
|
997
|
-
|
998
|
-
|
999
|
-
|
1000
|
-
|
1001
|
-
|
1002
|
-
|
1003
|
-
|
1004
|
-
|
1005
|
-
|
1006
|
-
|
1020
|
+
function propIsDefined(vnode, prop) {
|
1021
|
+
return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';
|
1022
|
+
}
|
1023
|
+
function internalUseDefaults() {
|
1024
|
+
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
1025
|
+
let name = arguments.length > 1 ? arguments[1] : undefined;
|
1026
|
+
let defaults = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : injectDefaults();
|
1027
|
+
const vm = getCurrentInstance('useDefaults');
|
1028
|
+
name = name ?? vm.type.name ?? vm.type.__name;
|
1029
|
+
if (!name) {
|
1030
|
+
throw new Error('[Vuetify] Could not determine component name');
|
1031
|
+
}
|
1032
|
+
const componentDefaults = vue.computed(() => defaults.value?.[props._as ?? name]);
|
1033
|
+
const _props = new Proxy(props, {
|
1034
|
+
get(target, prop) {
|
1035
|
+
const propValue = Reflect.get(target, prop);
|
1036
|
+
if (prop === 'class' || prop === 'style') {
|
1037
|
+
return [componentDefaults.value?.[prop], propValue].filter(v => v != null);
|
1038
|
+
} else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
|
1039
|
+
return componentDefaults.value?.[prop] ?? defaults.value?.global?.[prop] ?? propValue;
|
1040
|
+
}
|
1041
|
+
return propValue;
|
1007
1042
|
}
|
1008
|
-
}, {
|
1009
|
-
immediate: true
|
1010
1043
|
});
|
1011
|
-
vue.
|
1012
|
-
|
1044
|
+
const _subcomponentDefaults = vue.shallowRef();
|
1045
|
+
vue.watchEffect(() => {
|
1046
|
+
if (componentDefaults.value) {
|
1047
|
+
const subComponents = Object.entries(componentDefaults.value).filter(_ref => {
|
1048
|
+
let [key] = _ref;
|
1049
|
+
return key.startsWith(key[0].toUpperCase());
|
1050
|
+
});
|
1051
|
+
if (subComponents.length) _subcomponentDefaults.value = Object.fromEntries(subComponents);
|
1052
|
+
}
|
1013
1053
|
});
|
1054
|
+
function provideSubDefaults() {
|
1055
|
+
// If subcomponent defaults are provided, override any
|
1056
|
+
// subcomponents provided by the component's setup function.
|
1057
|
+
// This uses injectSelf so must be done after the original setup to work.
|
1058
|
+
useToggleScope(_subcomponentDefaults, () => {
|
1059
|
+
provideDefaults(mergeDeep(injectSelf(DefaultsSymbol)?.value ?? {}, _subcomponentDefaults.value));
|
1060
|
+
});
|
1061
|
+
}
|
1062
|
+
return {
|
1063
|
+
props: _props,
|
1064
|
+
provideSubDefaults
|
1065
|
+
};
|
1066
|
+
}
|
1067
|
+
function useDefaults() {
|
1068
|
+
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
1069
|
+
let name = arguments.length > 1 ? arguments[1] : undefined;
|
1070
|
+
const {
|
1071
|
+
props: _props,
|
1072
|
+
provideSubDefaults
|
1073
|
+
} = internalUseDefaults(props, name);
|
1074
|
+
provideSubDefaults();
|
1075
|
+
return _props;
|
1014
1076
|
}
|
1015
1077
|
|
1016
1078
|
// Utils
|
1017
1079
|
|
1018
1080
|
// Types
|
1019
1081
|
|
1020
|
-
function propIsDefined(vnode, prop) {
|
1021
|
-
return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';
|
1022
|
-
}
|
1023
|
-
|
1024
|
-
// No props
|
1025
|
-
|
1026
1082
|
// Implementation
|
1027
1083
|
function defineComponent(options) {
|
1028
1084
|
options._setup = options._setup ?? options.setup;
|
@@ -1034,43 +1090,20 @@
|
|
1034
1090
|
options.props = propsFactory(options.props ?? {}, toKebabCase(options.name))();
|
1035
1091
|
const propKeys = Object.keys(options.props);
|
1036
1092
|
options.filterProps = function filterProps(props) {
|
1037
|
-
return pick(props, propKeys);
|
1093
|
+
return pick(props, propKeys, ['class', 'style']);
|
1038
1094
|
};
|
1039
1095
|
options.props._as = String;
|
1040
1096
|
options.setup = function setup(props, ctx) {
|
1041
|
-
const defaults =
|
1097
|
+
const defaults = injectDefaults();
|
1042
1098
|
|
1043
1099
|
// Skip props proxy if defaults are not provided
|
1044
1100
|
if (!defaults.value) return options._setup(props, ctx);
|
1045
|
-
const
|
1046
|
-
|
1047
|
-
|
1048
|
-
|
1049
|
-
const propValue = Reflect.get(target, prop);
|
1050
|
-
if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
|
1051
|
-
return componentDefaults.value?.[prop] ?? defaults.value.global?.[prop] ?? propValue;
|
1052
|
-
}
|
1053
|
-
return propValue;
|
1054
|
-
}
|
1055
|
-
});
|
1056
|
-
const _subcomponentDefaults = vue.shallowRef();
|
1057
|
-
vue.watchEffect(() => {
|
1058
|
-
if (componentDefaults.value) {
|
1059
|
-
const subComponents = Object.entries(componentDefaults.value).filter(_ref => {
|
1060
|
-
let [key] = _ref;
|
1061
|
-
return key.startsWith(key[0].toUpperCase());
|
1062
|
-
});
|
1063
|
-
if (subComponents.length) _subcomponentDefaults.value = Object.fromEntries(subComponents);
|
1064
|
-
}
|
1065
|
-
});
|
1101
|
+
const {
|
1102
|
+
props: _props,
|
1103
|
+
provideSubDefaults
|
1104
|
+
} = internalUseDefaults(props, props._as ?? options.name, defaults);
|
1066
1105
|
const setupBindings = options._setup(_props, ctx);
|
1067
|
-
|
1068
|
-
// If subcomponent defaults are provided, override any
|
1069
|
-
// subcomponents provided by the component's setup function.
|
1070
|
-
// This uses injectSelf so must be done after the original setup to work.
|
1071
|
-
useToggleScope(_subcomponentDefaults, () => {
|
1072
|
-
provideDefaults(mergeDeep(injectSelf(DefaultsSymbol)?.value ?? {}, _subcomponentDefaults.value));
|
1073
|
-
});
|
1106
|
+
provideSubDefaults();
|
1074
1107
|
return setupBindings;
|
1075
1108
|
};
|
1076
1109
|
}
|
@@ -1091,15 +1124,19 @@
|
|
1091
1124
|
tag: {
|
1092
1125
|
type: String,
|
1093
1126
|
default: tag
|
1094
|
-
}
|
1127
|
+
},
|
1128
|
+
...makeComponentProps()
|
1095
1129
|
},
|
1096
1130
|
setup(props, _ref) {
|
1097
1131
|
let {
|
1098
1132
|
slots
|
1099
1133
|
} = _ref;
|
1100
|
-
return () =>
|
1101
|
-
|
1102
|
-
|
1134
|
+
return () => {
|
1135
|
+
return vue.h(props.tag, {
|
1136
|
+
class: [klass, props.class],
|
1137
|
+
style: props.style
|
1138
|
+
}, slots.default?.());
|
1139
|
+
};
|
1103
1140
|
}
|
1104
1141
|
});
|
1105
1142
|
}
|
@@ -1132,6 +1169,34 @@
|
|
1132
1169
|
const deceleratedEasing = 'cubic-bezier(0.0, 0, 0.2, 1)'; // Entering
|
1133
1170
|
const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)'; // Leaving
|
1134
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
|
+
|
1135
1200
|
function getScrollParent(el) {
|
1136
1201
|
while (el) {
|
1137
1202
|
if (hasScrollbar(el)) return el;
|
@@ -1155,6 +1220,16 @@
|
|
1155
1220
|
return style.overflowY === 'scroll' || style.overflowY === 'auto' && el.scrollHeight > el.clientHeight;
|
1156
1221
|
}
|
1157
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
|
+
|
1158
1233
|
function isFixedPosition(el) {
|
1159
1234
|
while (el) {
|
1160
1235
|
if (window.getComputedStyle(el).position === 'fixed') {
|
@@ -1659,7 +1734,7 @@
|
|
1659
1734
|
for (const variation of ['lighten', 'darken']) {
|
1660
1735
|
const fn = variation === 'lighten' ? lighten : darken;
|
1661
1736
|
for (const amount of createRange(parsedOptions.variations[variation], 1)) {
|
1662
|
-
theme.colors[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor
|
1737
|
+
theme.colors[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor(color), amount));
|
1663
1738
|
}
|
1664
1739
|
}
|
1665
1740
|
}
|
@@ -1667,9 +1742,9 @@
|
|
1667
1742
|
for (const color of Object.keys(theme.colors)) {
|
1668
1743
|
if (/^on-[a-z]/.test(color) || theme.colors[`on-${color}`]) continue;
|
1669
1744
|
const onColor = `on-${color}`;
|
1670
|
-
const colorVal = parseColor
|
1671
|
-
const blackContrast = Math.abs(APCAcontrast(parseColor
|
1672
|
-
const whiteContrast = Math.abs(APCAcontrast(parseColor
|
1745
|
+
const colorVal = parseColor(theme.colors[color]);
|
1746
|
+
const blackContrast = Math.abs(APCAcontrast(parseColor(0), colorVal));
|
1747
|
+
const whiteContrast = Math.abs(APCAcontrast(parseColor(0xffffff), colorVal));
|
1673
1748
|
|
1674
1749
|
// TODO: warn about poor color selections
|
1675
1750
|
// const contrastAsText = Math.abs(APCAcontrast(colorVal, colorToInt(theme.colors.background)))
|
@@ -1801,14 +1876,14 @@
|
|
1801
1876
|
const darkOverlay = theme.dark ? 1 : 2;
|
1802
1877
|
const variables = [];
|
1803
1878
|
for (const [key, value] of Object.entries(theme.colors)) {
|
1804
|
-
const rgb = parseColor
|
1879
|
+
const rgb = parseColor(value);
|
1805
1880
|
variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
|
1806
1881
|
if (!key.startsWith('on-')) {
|
1807
1882
|
variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
|
1808
1883
|
}
|
1809
1884
|
}
|
1810
1885
|
for (const [key, value] of Object.entries(theme.variables)) {
|
1811
|
-
const color = typeof value === 'string' && value.startsWith('#') ? parseColor
|
1886
|
+
const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
|
1812
1887
|
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
1813
1888
|
variables.push(`--v-${key}: ${rgb ?? value}`);
|
1814
1889
|
}
|
@@ -2137,6 +2212,7 @@
|
|
2137
2212
|
const VApp = genericComponent()({
|
2138
2213
|
name: 'VApp',
|
2139
2214
|
props: {
|
2215
|
+
...makeComponentProps(),
|
2140
2216
|
...makeLayoutProps({
|
2141
2217
|
fullHeight: true
|
2142
2218
|
}),
|
@@ -2159,8 +2235,8 @@
|
|
2159
2235
|
} = useRtl();
|
2160
2236
|
useRender(() => vue.createVNode("div", {
|
2161
2237
|
"ref": layoutRef,
|
2162
|
-
"class": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value],
|
2163
|
-
"style": layoutStyles.value
|
2238
|
+
"class": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value, props.class],
|
2239
|
+
"style": [layoutStyles.value, props.style]
|
2164
2240
|
}, [vue.createVNode("div", {
|
2165
2241
|
"class": "v-application__wrap"
|
2166
2242
|
}, [slots.default?.()])]));
|
@@ -2580,13 +2656,16 @@
|
|
2580
2656
|
})
|
2581
2657
|
};
|
2582
2658
|
}
|
2659
|
+
const makeVResponsiveProps = propsFactory({
|
2660
|
+
aspectRatio: [String, Number],
|
2661
|
+
contentClass: String,
|
2662
|
+
inline: Boolean,
|
2663
|
+
...makeComponentProps(),
|
2664
|
+
...makeDimensionProps()
|
2665
|
+
}, 'v-responsive');
|
2583
2666
|
const VResponsive = genericComponent()({
|
2584
2667
|
name: 'VResponsive',
|
2585
|
-
props:
|
2586
|
-
aspectRatio: [String, Number],
|
2587
|
-
contentClass: String,
|
2588
|
-
...makeDimensionProps()
|
2589
|
-
},
|
2668
|
+
props: makeVResponsiveProps(),
|
2590
2669
|
setup(props, _ref) {
|
2591
2670
|
let {
|
2592
2671
|
slots
|
@@ -2598,8 +2677,10 @@
|
|
2598
2677
|
dimensionStyles
|
2599
2678
|
} = useDimension(props);
|
2600
2679
|
useRender(() => vue.createVNode("div", {
|
2601
|
-
"class":
|
2602
|
-
|
2680
|
+
"class": ['v-responsive', {
|
2681
|
+
'v-responsive--inline': props.inline
|
2682
|
+
}, props.class],
|
2683
|
+
"style": [dimensionStyles.value, props.style]
|
2603
2684
|
}, [vue.createVNode("div", {
|
2604
2685
|
"class": "v-responsive__sizer",
|
2605
2686
|
"style": aspectStyles.value
|
@@ -2694,7 +2775,6 @@
|
|
2694
2775
|
intersect: Intersect
|
2695
2776
|
},
|
2696
2777
|
props: {
|
2697
|
-
aspectRatio: [String, Number],
|
2698
2778
|
alt: String,
|
2699
2779
|
cover: Boolean,
|
2700
2780
|
eager: Boolean,
|
@@ -2716,7 +2796,8 @@
|
|
2716
2796
|
default: ''
|
2717
2797
|
},
|
2718
2798
|
srcset: String,
|
2719
|
-
|
2799
|
+
...makeVResponsiveProps(),
|
2800
|
+
...makeComponentProps(),
|
2720
2801
|
...makeTransitionProps()
|
2721
2802
|
},
|
2722
2803
|
emits: {
|
@@ -2901,25 +2982,27 @@
|
|
2901
2982
|
}
|
2902
2983
|
});
|
2903
2984
|
}
|
2904
|
-
useRender(() =>
|
2905
|
-
|
2906
|
-
|
2907
|
-
|
2908
|
-
|
2909
|
-
|
2910
|
-
|
2911
|
-
|
2912
|
-
|
2913
|
-
|
2914
|
-
|
2915
|
-
|
2916
|
-
|
2917
|
-
|
2918
|
-
|
2919
|
-
|
2920
|
-
|
2921
|
-
|
2922
|
-
|
2985
|
+
useRender(() => {
|
2986
|
+
const [responsiveProps] = VResponsive.filterProps(props);
|
2987
|
+
return vue.withDirectives(vue.createVNode(VResponsive, vue.mergeProps({
|
2988
|
+
"class": ['v-img', {
|
2989
|
+
'v-img--booting': !isBooted.value
|
2990
|
+
}, props.class],
|
2991
|
+
"style": props.style
|
2992
|
+
}, responsiveProps, {
|
2993
|
+
"aspectRatio": aspectRatio.value,
|
2994
|
+
"aria-label": props.alt,
|
2995
|
+
"role": props.alt ? 'img' : undefined
|
2996
|
+
}), {
|
2997
|
+
additional: () => vue.createVNode(vue.Fragment, null, [vue.createVNode(__image, null, null), vue.createVNode(__preloadImage, null, null), vue.createVNode(__gradient, null, null), vue.createVNode(__placeholder, null, null), vue.createVNode(__error, null, null)]),
|
2998
|
+
default: slots.default
|
2999
|
+
}), [[vue.resolveDirective("intersect"), {
|
3000
|
+
handler: init,
|
3001
|
+
options: props.options
|
3002
|
+
}, null, {
|
3003
|
+
once: true
|
3004
|
+
}]]);
|
3005
|
+
});
|
2923
3006
|
return {
|
2924
3007
|
currentSrc,
|
2925
3008
|
image,
|
@@ -2942,10 +3025,9 @@
|
|
2942
3025
|
}
|
2943
3026
|
}, 'tag');
|
2944
3027
|
|
2945
|
-
// Types
|
2946
|
-
|
2947
3028
|
const makeVToolbarTitleProps = propsFactory({
|
2948
3029
|
text: String,
|
3030
|
+
...makeComponentProps(),
|
2949
3031
|
...makeTagProps()
|
2950
3032
|
}, 'v-toolbar-title');
|
2951
3033
|
const VToolbarTitle = genericComponent()({
|
@@ -2958,7 +3040,8 @@
|
|
2958
3040
|
useRender(() => {
|
2959
3041
|
const hasText = !!(slots.default || slots.text || props.text);
|
2960
3042
|
return vue.createVNode(props.tag, {
|
2961
|
-
"class":
|
3043
|
+
"class": ['v-toolbar-title', props.class],
|
3044
|
+
"style": props.style
|
2962
3045
|
}, {
|
2963
3046
|
default: () => [hasText && vue.createVNode("div", {
|
2964
3047
|
"class": "v-toolbar-title__placeholder"
|
@@ -3139,6 +3222,7 @@
|
|
3139
3222
|
image: String,
|
3140
3223
|
title: String,
|
3141
3224
|
...makeBorderProps(),
|
3225
|
+
...makeComponentProps(),
|
3142
3226
|
...makeElevationProps(),
|
3143
3227
|
...makeRoundedProps(),
|
3144
3228
|
...makeTagProps({
|
@@ -3189,8 +3273,8 @@
|
|
3189
3273
|
'v-toolbar--flat': props.flat,
|
3190
3274
|
'v-toolbar--floating': props.floating,
|
3191
3275
|
[`v-toolbar--density-${props.density}`]: true
|
3192
|
-
}, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value],
|
3193
|
-
"style": [backgroundColorStyles.value]
|
3276
|
+
}, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
3277
|
+
"style": [backgroundColorStyles.value, props.style]
|
3194
3278
|
}, {
|
3195
3279
|
default: () => [hasImage && vue.createVNode("div", {
|
3196
3280
|
"key": "image",
|
@@ -3265,14 +3349,13 @@
|
|
3265
3349
|
type: String
|
3266
3350
|
},
|
3267
3351
|
scrollThreshold: {
|
3268
|
-
type: [String, Number]
|
3352
|
+
type: [String, Number],
|
3353
|
+
default: 300
|
3269
3354
|
}
|
3270
3355
|
}, 'scroll');
|
3271
3356
|
function useScroll(props) {
|
3272
3357
|
let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
3273
3358
|
const {
|
3274
|
-
thresholdMetCallback,
|
3275
|
-
scrollThreshold,
|
3276
3359
|
canScroll
|
3277
3360
|
} = args;
|
3278
3361
|
let previousScroll = 0;
|
@@ -3282,8 +3365,16 @@
|
|
3282
3365
|
const currentThreshold = vue.ref(0);
|
3283
3366
|
const isScrollActive = vue.ref(false);
|
3284
3367
|
const isScrollingUp = vue.ref(false);
|
3285
|
-
const
|
3286
|
-
return Number(props.scrollThreshold
|
3368
|
+
const scrollThreshold = vue.computed(() => {
|
3369
|
+
return Number(props.scrollThreshold);
|
3370
|
+
});
|
3371
|
+
|
3372
|
+
/**
|
3373
|
+
* 1: at top
|
3374
|
+
* 0: at threshold
|
3375
|
+
*/
|
3376
|
+
const scrollRatio = vue.computed(() => {
|
3377
|
+
return clamp((scrollThreshold.value - currentScroll.value) / scrollThreshold.value || 0);
|
3287
3378
|
});
|
3288
3379
|
const onScroll = () => {
|
3289
3380
|
const targetEl = target.value;
|
@@ -3291,7 +3382,7 @@
|
|
3291
3382
|
previousScroll = currentScroll.value;
|
3292
3383
|
currentScroll.value = 'window' in targetEl ? targetEl.pageYOffset : targetEl.scrollTop;
|
3293
3384
|
isScrollingUp.value = currentScroll.value < previousScroll;
|
3294
|
-
currentThreshold.value = Math.abs(currentScroll.value -
|
3385
|
+
currentThreshold.value = Math.abs(currentScroll.value - scrollThreshold.value);
|
3295
3386
|
};
|
3296
3387
|
vue.watch(isScrollingUp, () => {
|
3297
3388
|
savedScroll.value = savedScroll.value || currentScroll.value;
|
@@ -3303,7 +3394,7 @@
|
|
3303
3394
|
vue.watch(() => props.scrollTarget, scrollTarget => {
|
3304
3395
|
const newTarget = scrollTarget ? document.querySelector(scrollTarget) : window;
|
3305
3396
|
if (!newTarget) {
|
3306
|
-
consoleWarn(`Unable to locate element with identifier ${scrollTarget}
|
3397
|
+
consoleWarn(`Unable to locate element with identifier ${scrollTarget}`);
|
3307
3398
|
return;
|
3308
3399
|
}
|
3309
3400
|
if (newTarget === target.value) return;
|
@@ -3319,15 +3410,6 @@
|
|
3319
3410
|
vue.onBeforeUnmount(() => {
|
3320
3411
|
target.value?.removeEventListener('scroll', onScroll);
|
3321
3412
|
});
|
3322
|
-
thresholdMetCallback && vue.watch(() => Math.abs(currentScroll.value - savedScroll.value) > computedScrollThreshold.value, thresholdMet => {
|
3323
|
-
thresholdMet && thresholdMetCallback({
|
3324
|
-
currentThreshold: currentThreshold.value,
|
3325
|
-
isScrollingUp: isScrollingUp.value,
|
3326
|
-
savedScroll
|
3327
|
-
});
|
3328
|
-
}, {
|
3329
|
-
immediate: true
|
3330
|
-
});
|
3331
3413
|
|
3332
3414
|
// Do we need this? If yes - seems that
|
3333
3415
|
// there's no need to expose onScroll
|
@@ -3335,10 +3417,11 @@
|
|
3335
3417
|
immediate: true
|
3336
3418
|
});
|
3337
3419
|
return {
|
3338
|
-
|
3420
|
+
scrollThreshold,
|
3339
3421
|
currentScroll,
|
3340
3422
|
currentThreshold,
|
3341
3423
|
isScrollActive,
|
3424
|
+
scrollRatio,
|
3342
3425
|
// required only for testing
|
3343
3426
|
// probably can be removed
|
3344
3427
|
// later (2 chars chlng)
|
@@ -3421,15 +3504,14 @@
|
|
3421
3504
|
});
|
3422
3505
|
const {
|
3423
3506
|
currentScroll,
|
3424
|
-
|
3425
|
-
|
3426
|
-
|
3507
|
+
scrollThreshold,
|
3508
|
+
isScrollingUp,
|
3509
|
+
scrollRatio
|
3427
3510
|
} = useScroll(props, {
|
3428
3511
|
canScroll
|
3429
3512
|
});
|
3430
|
-
const isCollapsed = vue.computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ?
|
3431
|
-
const isFlat = vue.computed(() => props.flat || scrollBehavior.value.elevate &&
|
3432
|
-
const scrollRatio = vue.computed(() => Math.min((currentThreshold.value - currentScroll.value) / currentThreshold.value || 1, 1));
|
3513
|
+
const isCollapsed = vue.computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? scrollRatio.value > 0 : scrollRatio.value === 0));
|
3514
|
+
const isFlat = vue.computed(() => props.flat || scrollBehavior.value.elevate && (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0));
|
3433
3515
|
const opacity = vue.computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
|
3434
3516
|
const height = vue.computed(() => {
|
3435
3517
|
if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0;
|
@@ -3438,15 +3520,12 @@
|
|
3438
3520
|
return height + extensionHeight;
|
3439
3521
|
});
|
3440
3522
|
function setActive() {
|
3441
|
-
const val = currentScroll.value;
|
3442
3523
|
if (scrollBehavior.value.hide) {
|
3443
3524
|
if (scrollBehavior.value.inverted) {
|
3444
|
-
isActive.value =
|
3525
|
+
isActive.value = currentScroll.value > scrollThreshold.value;
|
3445
3526
|
} else {
|
3446
|
-
isActive.value = isScrollingUp.value ||
|
3527
|
+
isActive.value = isScrollingUp.value || currentScroll.value < scrollThreshold.value;
|
3447
3528
|
}
|
3448
|
-
} else if (scrollBehavior.value.inverted) {
|
3449
|
-
isActive.value = currentScroll.value === 0;
|
3450
3529
|
} else {
|
3451
3530
|
isActive.value = true;
|
3452
3531
|
}
|
@@ -3475,13 +3554,13 @@
|
|
3475
3554
|
"ref": vToolbarRef,
|
3476
3555
|
"class": ['v-app-bar', {
|
3477
3556
|
'v-app-bar--bottom': props.location === 'bottom'
|
3478
|
-
}],
|
3479
|
-
"style": {
|
3557
|
+
}, props.class],
|
3558
|
+
"style": [{
|
3480
3559
|
...layoutItemStyles.value,
|
3481
3560
|
'--v-toolbar-image-opacity': opacity.value,
|
3482
3561
|
height: undefined,
|
3483
3562
|
...ssrBootStyles.value
|
3484
|
-
}
|
3563
|
+
}, props.style]
|
3485
3564
|
}, toolbarProps, {
|
3486
3565
|
"collapse": isCollapsed.value,
|
3487
3566
|
"flat": isFlat.value
|
@@ -3568,6 +3647,7 @@
|
|
3568
3647
|
const makeVBtnGroupProps = propsFactory({
|
3569
3648
|
divided: Boolean,
|
3570
3649
|
...makeBorderProps(),
|
3650
|
+
...makeComponentProps(),
|
3571
3651
|
...makeDensityProps(),
|
3572
3652
|
...makeElevationProps(),
|
3573
3653
|
...makeRoundedProps(),
|
@@ -3610,7 +3690,8 @@
|
|
3610
3690
|
return vue.createVNode(props.tag, {
|
3611
3691
|
"class": ['v-btn-group', {
|
3612
3692
|
'v-btn-group--divided': props.divided
|
3613
|
-
}, 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
|
3614
3695
|
}, slots);
|
3615
3696
|
});
|
3616
3697
|
}
|
@@ -3843,8 +3924,10 @@
|
|
3843
3924
|
useRender(() => {
|
3844
3925
|
const [btnGroupProps] = VBtnGroup.filterProps(props);
|
3845
3926
|
return vue.createVNode(VBtnGroup, vue.mergeProps({
|
3846
|
-
"class":
|
3847
|
-
}, btnGroupProps
|
3927
|
+
"class": ['v-btn-toggle', props.class]
|
3928
|
+
}, btnGroupProps, {
|
3929
|
+
"style": props.style
|
3930
|
+
}), {
|
3848
3931
|
default: () => [slots.default?.({
|
3849
3932
|
isSelected,
|
3850
3933
|
next,
|
@@ -3915,7 +3998,7 @@
|
|
3915
3998
|
|
3916
3999
|
// Types
|
3917
4000
|
|
3918
|
-
const IconValue = [String, Function, Object];
|
4001
|
+
const IconValue = [String, Function, Object, Array];
|
3919
4002
|
const IconSymbol = Symbol.for('vuetify:icons');
|
3920
4003
|
const makeIconProps = propsFactory({
|
3921
4004
|
icon: {
|
@@ -3935,8 +4018,9 @@
|
|
3935
4018
|
slots
|
3936
4019
|
} = _ref;
|
3937
4020
|
return () => {
|
4021
|
+
const Icon = props.icon;
|
3938
4022
|
return vue.createVNode(props.tag, null, {
|
3939
|
-
default: () => [props.icon ? vue.createVNode(
|
4023
|
+
default: () => [props.icon ? vue.createVNode(Icon, null, null) : slots.default?.()]
|
3940
4024
|
});
|
3941
4025
|
};
|
3942
4026
|
}
|
@@ -3959,7 +4043,12 @@
|
|
3959
4043
|
"viewBox": "0 0 24 24",
|
3960
4044
|
"role": "img",
|
3961
4045
|
"aria-hidden": "true"
|
3962
|
-
}, [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", {
|
3963
4052
|
"d": props.icon
|
3964
4053
|
}, null)])]
|
3965
4054
|
});
|
@@ -4024,7 +4113,12 @@
|
|
4024
4113
|
}
|
4025
4114
|
}
|
4026
4115
|
if (!icon) throw new Error(`Could not find aliased icon "${iconAlias}"`);
|
4027
|
-
if (
|
4116
|
+
if (Array.isArray(icon)) {
|
4117
|
+
return {
|
4118
|
+
component: VSvgIcon,
|
4119
|
+
icon
|
4120
|
+
};
|
4121
|
+
} else if (typeof icon !== 'string') {
|
4028
4122
|
return {
|
4029
4123
|
component: VComponentIcon,
|
4030
4124
|
icon
|
@@ -4081,6 +4175,7 @@
|
|
4081
4175
|
start: Boolean,
|
4082
4176
|
end: Boolean,
|
4083
4177
|
icon: IconValue,
|
4178
|
+
...makeComponentProps(),
|
4084
4179
|
...makeSizeProps(),
|
4085
4180
|
...makeTagProps({
|
4086
4181
|
tag: 'i'
|
@@ -4123,12 +4218,12 @@
|
|
4123
4218
|
'v-icon--clickable': !!attrs.onClick,
|
4124
4219
|
'v-icon--start': props.start,
|
4125
4220
|
'v-icon--end': props.end
|
4126
|
-
}],
|
4221
|
+
}, props.class],
|
4127
4222
|
"style": [!sizeClasses.value ? {
|
4128
4223
|
fontSize: convertToUnit(props.size),
|
4129
4224
|
height: convertToUnit(props.size),
|
4130
4225
|
width: convertToUnit(props.size)
|
4131
|
-
} : undefined, textColorStyles.value],
|
4226
|
+
} : undefined, textColorStyles.value, props.style],
|
4132
4227
|
"role": attrs.onClick ? 'button' : undefined,
|
4133
4228
|
"aria-hidden": !attrs.onClick
|
4134
4229
|
}, {
|
@@ -4186,6 +4281,7 @@
|
|
4186
4281
|
type: [Number, String],
|
4187
4282
|
default: 4
|
4188
4283
|
},
|
4284
|
+
...makeComponentProps(),
|
4189
4285
|
...makeSizeProps(),
|
4190
4286
|
...makeTagProps({
|
4191
4287
|
tag: 'div'
|
@@ -4241,8 +4337,8 @@
|
|
4241
4337
|
'v-progress-circular--indeterminate': !!props.indeterminate,
|
4242
4338
|
'v-progress-circular--visible': isIntersecting.value,
|
4243
4339
|
'v-progress-circular--disable-shrink': props.indeterminate === 'disable-shrink'
|
4244
|
-
}, themeClasses.value, sizeClasses.value, textColorClasses.value],
|
4245
|
-
"style": [sizeStyles.value, textColorStyles.value],
|
4340
|
+
}, themeClasses.value, sizeClasses.value, textColorClasses.value, props.class],
|
4341
|
+
"style": [sizeStyles.value, textColorStyles.value, props.style],
|
4246
4342
|
"role": "progressbar",
|
4247
4343
|
"aria-valuemin": "0",
|
4248
4344
|
"aria-valuemax": "100",
|
@@ -4661,6 +4757,7 @@
|
|
4661
4757
|
stream: Boolean,
|
4662
4758
|
striped: Boolean,
|
4663
4759
|
roundedBar: Boolean,
|
4760
|
+
...makeComponentProps(),
|
4664
4761
|
...makeLocationProps({
|
4665
4762
|
location: 'top'
|
4666
4763
|
}),
|
@@ -4732,14 +4829,14 @@
|
|
4732
4829
|
'v-progress-linear--rounded': props.rounded,
|
4733
4830
|
'v-progress-linear--rounded-bar': props.roundedBar,
|
4734
4831
|
'v-progress-linear--striped': props.striped
|
4735
|
-
}, roundedClasses.value, themeClasses.value],
|
4736
|
-
"style": {
|
4832
|
+
}, roundedClasses.value, themeClasses.value, props.class],
|
4833
|
+
"style": [{
|
4737
4834
|
bottom: props.location === 'bottom' ? 0 : undefined,
|
4738
4835
|
top: props.location === 'top' ? 0 : undefined,
|
4739
4836
|
height: props.active ? convertToUnit(height.value) : 0,
|
4740
4837
|
'--v-progress-linear-height': convertToUnit(height.value),
|
4741
4838
|
...locationStyles.value
|
4742
|
-
},
|
4839
|
+
}, props.style],
|
4743
4840
|
"role": "progressbar",
|
4744
4841
|
"aria-hidden": props.active ? 'false' : 'true',
|
4745
4842
|
"aria-valuemin": "0",
|
@@ -4950,7 +5047,7 @@
|
|
4950
5047
|
},
|
4951
5048
|
text: String,
|
4952
5049
|
...makeBorderProps(),
|
4953
|
-
...
|
5050
|
+
...makeComponentProps(),
|
4954
5051
|
...makeDensityProps(),
|
4955
5052
|
...makeDimensionProps(),
|
4956
5053
|
...makeElevationProps(),
|
@@ -4958,6 +5055,7 @@
|
|
4958
5055
|
...makeLoaderProps(),
|
4959
5056
|
...makeLocationProps(),
|
4960
5057
|
...makePositionProps(),
|
5058
|
+
...makeRoundedProps(),
|
4961
5059
|
...makeRouterProps(),
|
4962
5060
|
...makeSizeProps(),
|
4963
5061
|
...makeTagProps({
|
@@ -4967,7 +5065,7 @@
|
|
4967
5065
|
...makeVariantProps({
|
4968
5066
|
variant: 'elevated'
|
4969
5067
|
})
|
4970
|
-
}, '
|
5068
|
+
}, 'v-btn');
|
4971
5069
|
const VBtn = genericComponent()({
|
4972
5070
|
name: 'VBtn',
|
4973
5071
|
directives: {
|
@@ -5037,6 +5135,11 @@
|
|
5037
5135
|
if (props.value === undefined) return undefined;
|
5038
5136
|
return Object(props.value) === props.value ? JSON.stringify(props.value, null, 0) : props.value;
|
5039
5137
|
});
|
5138
|
+
function onClick(e) {
|
5139
|
+
if (isDisabled.value) return;
|
5140
|
+
link.navigate?.(e);
|
5141
|
+
group?.toggle();
|
5142
|
+
}
|
5040
5143
|
useSelectLink(link, group?.select);
|
5041
5144
|
useRender(() => {
|
5042
5145
|
const Tag = link.isLink.value ? 'a' : props.tag;
|
@@ -5055,15 +5158,11 @@
|
|
5055
5158
|
'v-btn--icon': !!props.icon,
|
5056
5159
|
'v-btn--loading': props.loading,
|
5057
5160
|
'v-btn--stacked': props.stacked
|
5058
|
-
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value],
|
5059
|
-
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value],
|
5161
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
5162
|
+
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],
|
5060
5163
|
"disabled": isDisabled.value || undefined,
|
5061
5164
|
"href": link.href.value,
|
5062
|
-
"onClick":
|
5063
|
-
if (isDisabled.value) return;
|
5064
|
-
link.navigate?.(e);
|
5065
|
-
group?.toggle();
|
5066
|
-
},
|
5165
|
+
"onClick": onClick,
|
5067
5166
|
"value": valueAttr.value
|
5068
5167
|
}, {
|
5069
5168
|
default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && vue.createVNode("span", {
|
@@ -5129,29 +5228,29 @@
|
|
5129
5228
|
|
5130
5229
|
const VAppBarNavIcon = genericComponent()({
|
5131
5230
|
name: 'VAppBarNavIcon',
|
5132
|
-
props: {
|
5133
|
-
icon:
|
5134
|
-
|
5135
|
-
|
5136
|
-
}
|
5137
|
-
},
|
5231
|
+
props: makeVBtnProps({
|
5232
|
+
icon: '$menu',
|
5233
|
+
variant: 'text'
|
5234
|
+
}),
|
5138
5235
|
setup(props, _ref) {
|
5139
5236
|
let {
|
5140
5237
|
slots
|
5141
5238
|
} = _ref;
|
5142
|
-
useRender(() => vue.createVNode(VBtn, {
|
5143
|
-
"class":
|
5144
|
-
|
5145
|
-
}, slots));
|
5239
|
+
useRender(() => vue.createVNode(VBtn, vue.mergeProps(props, {
|
5240
|
+
"class": ['v-app-bar-nav-icon']
|
5241
|
+
}), slots));
|
5146
5242
|
return {};
|
5147
5243
|
}
|
5148
5244
|
});
|
5149
5245
|
|
5150
5246
|
const VToolbarItems = genericComponent()({
|
5151
5247
|
name: 'VToolbarItems',
|
5152
|
-
props:
|
5153
|
-
|
5154
|
-
|
5248
|
+
props: {
|
5249
|
+
...makeComponentProps(),
|
5250
|
+
...makeVariantProps({
|
5251
|
+
variant: 'text'
|
5252
|
+
})
|
5253
|
+
},
|
5155
5254
|
setup(props, _ref) {
|
5156
5255
|
let {
|
5157
5256
|
slots
|
@@ -5164,7 +5263,8 @@
|
|
5164
5263
|
}
|
5165
5264
|
});
|
5166
5265
|
useRender(() => vue.createVNode("div", {
|
5167
|
-
"class":
|
5266
|
+
"class": ['v-toolbar-items', props.class],
|
5267
|
+
"style": props.style
|
5168
5268
|
}, [slots.default?.()]));
|
5169
5269
|
return {};
|
5170
5270
|
}
|
@@ -5226,6 +5326,7 @@
|
|
5226
5326
|
type: String,
|
5227
5327
|
validator: val => allowedTypes.includes(val)
|
5228
5328
|
},
|
5329
|
+
...makeComponentProps(),
|
5229
5330
|
...makeDensityProps(),
|
5230
5331
|
...makeDimensionProps(),
|
5231
5332
|
...makeElevationProps(),
|
@@ -5308,8 +5409,8 @@
|
|
5308
5409
|
[`v-alert--border-${props.border === true ? 'start' : props.border}`]: true
|
5309
5410
|
}, {
|
5310
5411
|
'v-alert--prominent': props.prominent
|
5311
|
-
}, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value],
|
5312
|
-
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value],
|
5412
|
+
}, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
5413
|
+
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
|
5313
5414
|
"role": "alert"
|
5314
5415
|
}, {
|
5315
5416
|
default: () => [genOverlays(false, 'v-alert'), props.border && vue.createVNode("div", {
|
@@ -5403,6 +5504,7 @@
|
|
5403
5504
|
props: {
|
5404
5505
|
text: String,
|
5405
5506
|
clickable: Boolean,
|
5507
|
+
...makeComponentProps(),
|
5406
5508
|
...makeThemeProps()
|
5407
5509
|
},
|
5408
5510
|
setup(props, _ref) {
|
@@ -5412,7 +5514,8 @@
|
|
5412
5514
|
useRender(() => vue.createVNode("label", {
|
5413
5515
|
"class": ['v-label', {
|
5414
5516
|
'v-label--clickable': props.clickable
|
5415
|
-
}]
|
5517
|
+
}, props.class],
|
5518
|
+
"style": props.style
|
5416
5519
|
}, [props.text, slots.default?.()]));
|
5417
5520
|
return {};
|
5418
5521
|
}
|
@@ -5421,7 +5524,8 @@
|
|
5421
5524
|
const VFieldLabel = genericComponent()({
|
5422
5525
|
name: 'VFieldLabel',
|
5423
5526
|
props: {
|
5424
|
-
floating: Boolean
|
5527
|
+
floating: Boolean,
|
5528
|
+
...makeComponentProps()
|
5425
5529
|
},
|
5426
5530
|
setup(props, _ref) {
|
5427
5531
|
let {
|
@@ -5430,7 +5534,8 @@
|
|
5430
5534
|
useRender(() => vue.createVNode(VLabel, {
|
5431
5535
|
"class": ['v-field-label', {
|
5432
5536
|
'v-field-label--floating': props.floating
|
5433
|
-
}],
|
5537
|
+
}, props.class],
|
5538
|
+
"style": props.style,
|
5434
5539
|
"aria-hidden": props.floating || undefined
|
5435
5540
|
}, slots));
|
5436
5541
|
return {};
|
@@ -5481,6 +5586,7 @@
|
|
5481
5586
|
},
|
5482
5587
|
active: Boolean,
|
5483
5588
|
color: String,
|
5589
|
+
baseColor: String,
|
5484
5590
|
dirty: Boolean,
|
5485
5591
|
disabled: Boolean,
|
5486
5592
|
error: Boolean,
|
@@ -5498,9 +5604,10 @@
|
|
5498
5604
|
'onClick:clear': EventProp(),
|
5499
5605
|
'onClick:appendInner': EventProp(),
|
5500
5606
|
'onClick:prependInner': EventProp(),
|
5501
|
-
...
|
5607
|
+
...makeComponentProps(),
|
5502
5608
|
...makeLoaderProps(),
|
5503
|
-
...makeRoundedProps()
|
5609
|
+
...makeRoundedProps(),
|
5610
|
+
...makeThemeProps()
|
5504
5611
|
}, 'v-field');
|
5505
5612
|
const VField = genericComponent()({
|
5506
5613
|
name: 'VField',
|
@@ -5554,7 +5661,7 @@
|
|
5554
5661
|
textColorClasses,
|
5555
5662
|
textColorStyles
|
5556
5663
|
} = useTextColor(vue.computed(() => {
|
5557
|
-
return
|
5664
|
+
return props.error || props.disabled ? undefined : isActive.value && isFocused.value ? props.color : props.baseColor;
|
5558
5665
|
}));
|
5559
5666
|
vue.watch(isActive, val => {
|
5560
5667
|
if (hasLabel.value) {
|
@@ -5631,8 +5738,8 @@
|
|
5631
5738
|
'v-field--single-line': props.singleLine,
|
5632
5739
|
'v-field--no-label': !label,
|
5633
5740
|
[`v-field--variant-${props.variant}`]: true
|
5634
|
-
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value],
|
5635
|
-
"style": [backgroundColorStyles.value, textColorStyles.value],
|
5741
|
+
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, props.class],
|
5742
|
+
"style": [backgroundColorStyles.value, textColorStyles.value, props.style],
|
5636
5743
|
"onClick": onClick
|
5637
5744
|
}, attrs), [vue.createVNode("div", {
|
5638
5745
|
"class": "v-field__overlay"
|
@@ -5720,7 +5827,7 @@
|
|
5720
5827
|
});
|
5721
5828
|
// TODO: this is kinda slow, might be better to implicitly inherit props instead
|
5722
5829
|
function filterFieldProps(attrs) {
|
5723
|
-
const keys = Object.keys(VField.props).filter(k => !isOn(k));
|
5830
|
+
const keys = Object.keys(VField.props).filter(k => !isOn(k) && k !== 'class' && k !== 'style');
|
5724
5831
|
return pick(attrs, keys);
|
5725
5832
|
}
|
5726
5833
|
|
@@ -5735,6 +5842,7 @@
|
|
5735
5842
|
type: [Array, String],
|
5736
5843
|
default: () => []
|
5737
5844
|
},
|
5845
|
+
...makeComponentProps(),
|
5738
5846
|
...makeTransitionProps({
|
5739
5847
|
transition: {
|
5740
5848
|
component: VSlideYTransition,
|
@@ -5755,8 +5863,8 @@
|
|
5755
5863
|
useRender(() => vue.createVNode(MaybeTransition, {
|
5756
5864
|
"transition": props.transition,
|
5757
5865
|
"tag": "div",
|
5758
|
-
"class": ['v-messages', textColorClasses.value],
|
5759
|
-
"style": textColorStyles.value,
|
5866
|
+
"class": ['v-messages', textColorClasses.value, props.class],
|
5867
|
+
"style": [textColorStyles.value, props.style],
|
5760
5868
|
"role": "alert",
|
5761
5869
|
"aria-live": "polite"
|
5762
5870
|
}, {
|
@@ -6052,6 +6160,7 @@
|
|
6052
6160
|
},
|
6053
6161
|
'onClick:prepend': EventProp(),
|
6054
6162
|
'onClick:append': EventProp(),
|
6163
|
+
...makeComponentProps(),
|
6055
6164
|
...makeDensityProps(),
|
6056
6165
|
...makeValidationProps()
|
6057
6166
|
}, 'v-input');
|
@@ -6119,7 +6228,8 @@
|
|
6119
6228
|
const hasMessages = messages.value.length > 0;
|
6120
6229
|
const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);
|
6121
6230
|
return vue.createVNode("div", {
|
6122
|
-
"class": ['v-input', `v-input--${props.direction}`, densityClasses.value, validationClasses.value]
|
6231
|
+
"class": ['v-input', `v-input--${props.direction}`, densityClasses.value, validationClasses.value, props.class],
|
6232
|
+
"style": props.style
|
6123
6233
|
}, [hasPrepend && vue.createVNode("div", {
|
6124
6234
|
"key": "prepend",
|
6125
6235
|
"class": "v-input__prepend"
|
@@ -6162,6 +6272,7 @@
|
|
6162
6272
|
type: [Number, String],
|
6163
6273
|
default: 0
|
6164
6274
|
},
|
6275
|
+
...makeComponentProps(),
|
6165
6276
|
...makeTransitionProps({
|
6166
6277
|
transition: {
|
6167
6278
|
component: VSlideYTransition
|
@@ -6179,7 +6290,8 @@
|
|
6179
6290
|
"transition": props.transition
|
6180
6291
|
}, {
|
6181
6292
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
6182
|
-
"class":
|
6293
|
+
"class": ['v-counter', props.class],
|
6294
|
+
"style": props.style
|
6183
6295
|
}, [slots.default ? slots.default({
|
6184
6296
|
counter: counter.value,
|
6185
6297
|
max: props.max,
|
@@ -6329,7 +6441,7 @@
|
|
6329
6441
|
const vInputRef = vue.ref();
|
6330
6442
|
const vFieldRef = vue.ref();
|
6331
6443
|
const inputRef = vue.ref();
|
6332
|
-
const isActive = vue.computed(() => activeTypes.includes(props.type) || props.persistentPlaceholder || isFocused.value);
|
6444
|
+
const isActive = vue.computed(() => activeTypes.includes(props.type) || props.persistentPlaceholder || isFocused.value || props.active);
|
6333
6445
|
function onFocus() {
|
6334
6446
|
if (inputRef.value !== document.activeElement) {
|
6335
6447
|
inputRef.value?.focus();
|
@@ -6382,7 +6494,8 @@
|
|
6382
6494
|
'v-text-field--prefixed': props.prefix,
|
6383
6495
|
'v-text-field--suffixed': props.suffix,
|
6384
6496
|
'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant)
|
6385
|
-
}]
|
6497
|
+
}, props.class],
|
6498
|
+
"style": props.style
|
6386
6499
|
}, rootAttrs, inputProps, {
|
6387
6500
|
"focused": isFocused.value
|
6388
6501
|
}), {
|
@@ -6498,6 +6611,7 @@
|
|
6498
6611
|
type: String,
|
6499
6612
|
default: 'VSelectionControl'
|
6500
6613
|
},
|
6614
|
+
...makeComponentProps(),
|
6501
6615
|
...makeSelectionControlGroupProps()
|
6502
6616
|
},
|
6503
6617
|
emits: {
|
@@ -6545,7 +6659,8 @@
|
|
6545
6659
|
useRender(() => vue.createVNode("div", {
|
6546
6660
|
"class": ['v-selection-control-group', {
|
6547
6661
|
'v-selection-control-group--inline': props.inline
|
6548
|
-
}],
|
6662
|
+
}, props.class],
|
6663
|
+
"style": props.style,
|
6549
6664
|
"role": props.type === 'radio' ? 'radiogroup' : undefined
|
6550
6665
|
}, [slots.default?.()]));
|
6551
6666
|
return {};
|
@@ -6559,6 +6674,7 @@
|
|
6559
6674
|
trueValue: null,
|
6560
6675
|
falseValue: null,
|
6561
6676
|
value: null,
|
6677
|
+
...makeComponentProps(),
|
6562
6678
|
...makeSelectionControlGroupProps()
|
6563
6679
|
}, 'v-selection-control');
|
6564
6680
|
function useSelectionControl(props) {
|
@@ -6673,8 +6789,10 @@
|
|
6673
6789
|
'v-selection-control--focused': isFocused.value,
|
6674
6790
|
'v-selection-control--focus-visible': isFocusVisible.value,
|
6675
6791
|
'v-selection-control--inline': props.inline
|
6676
|
-
}, densityClasses.value]
|
6677
|
-
}, rootAttrs
|
6792
|
+
}, densityClasses.value, props.class]
|
6793
|
+
}, rootAttrs, {
|
6794
|
+
"style": props.style
|
6795
|
+
}), [vue.createVNode("div", {
|
6678
6796
|
"class": ['v-selection-control__wrapper', textColorClasses.value],
|
6679
6797
|
"style": textColorStyles.value
|
6680
6798
|
}, [slots.default?.(), vue.withDirectives(vue.createVNode("div", {
|
@@ -6756,9 +6874,9 @@
|
|
6756
6874
|
useRender(() => vue.createVNode(VSelectionControl, vue.mergeProps(props, {
|
6757
6875
|
"modelValue": model.value,
|
6758
6876
|
"onUpdate:modelValue": [$event => model.value = $event, onChange],
|
6759
|
-
"class":
|
6877
|
+
"class": ['v-checkbox-btn', props.class],
|
6878
|
+
"style": props.style,
|
6760
6879
|
"type": "checkbox",
|
6761
|
-
"inline": true,
|
6762
6880
|
"falseIcon": falseIcon.value,
|
6763
6881
|
"trueIcon": trueIcon.value,
|
6764
6882
|
"aria-checked": props.indeterminate ? 'mixed' : undefined
|
@@ -6796,10 +6914,11 @@
|
|
6796
6914
|
const [inputProps, _1] = VInput.filterProps(props);
|
6797
6915
|
const [checkboxProps, _2] = VCheckboxBtn.filterProps(props);
|
6798
6916
|
return vue.createVNode(VInput, vue.mergeProps({
|
6799
|
-
"class":
|
6917
|
+
"class": ['v-checkbox', props.class]
|
6800
6918
|
}, inputAttrs, inputProps, {
|
6801
6919
|
"id": id.value,
|
6802
|
-
"focused": isFocused.value
|
6920
|
+
"focused": isFocused.value,
|
6921
|
+
"style": props.style
|
6803
6922
|
}), {
|
6804
6923
|
...slots,
|
6805
6924
|
default: _ref2 => {
|
@@ -6830,6 +6949,7 @@
|
|
6830
6949
|
end: Boolean,
|
6831
6950
|
icon: IconValue,
|
6832
6951
|
image: String,
|
6952
|
+
...makeComponentProps(),
|
6833
6953
|
...makeDensityProps(),
|
6834
6954
|
...makeRoundedProps(),
|
6835
6955
|
...makeSizeProps(),
|
@@ -6868,8 +6988,8 @@
|
|
6868
6988
|
"class": ['v-avatar', {
|
6869
6989
|
'v-avatar--start': props.start,
|
6870
6990
|
'v-avatar--end': props.end
|
6871
|
-
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value],
|
6872
|
-
"style": [colorStyles.value, sizeStyles.value]
|
6991
|
+
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
6992
|
+
"style": [colorStyles.value, sizeStyles.value, props.style]
|
6873
6993
|
}, {
|
6874
6994
|
default: () => [props.image ? vue.createVNode(VImg, {
|
6875
6995
|
"key": "image",
|
@@ -6897,6 +7017,7 @@
|
|
6897
7017
|
type: Function,
|
6898
7018
|
default: deepEqual
|
6899
7019
|
},
|
7020
|
+
...makeComponentProps(),
|
6900
7021
|
...makeGroupProps({
|
6901
7022
|
selectedClass: 'v-chip--selected'
|
6902
7023
|
}),
|
@@ -6934,7 +7055,8 @@
|
|
6934
7055
|
useRender(() => vue.createVNode(props.tag, {
|
6935
7056
|
"class": ['v-chip-group', {
|
6936
7057
|
'v-chip-group--column': props.column
|
6937
|
-
}, themeClasses.value]
|
7058
|
+
}, themeClasses.value, props.class],
|
7059
|
+
"style": props.style
|
6938
7060
|
}, {
|
6939
7061
|
default: () => [slots.default?.({
|
6940
7062
|
isSelected,
|
@@ -6948,8 +7070,6 @@
|
|
6948
7070
|
}
|
6949
7071
|
});
|
6950
7072
|
|
6951
|
-
// Types
|
6952
|
-
|
6953
7073
|
const VChip = genericComponent()({
|
6954
7074
|
name: 'VChip',
|
6955
7075
|
directives: {
|
@@ -6994,6 +7114,7 @@
|
|
6994
7114
|
onClick: EventProp(),
|
6995
7115
|
onClickOnce: EventProp(),
|
6996
7116
|
...makeBorderProps(),
|
7117
|
+
...makeComponentProps(),
|
6997
7118
|
...makeDensityProps(),
|
6998
7119
|
...makeElevationProps(),
|
6999
7120
|
...makeGroupItemProps(),
|
@@ -7086,8 +7207,8 @@
|
|
7086
7207
|
'v-chip--link': isClickable.value,
|
7087
7208
|
'v-chip--filter': hasFilter,
|
7088
7209
|
'v-chip--pill': props.pill
|
7089
|
-
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value],
|
7090
|
-
"style": [hasColor ? colorStyles.value : undefined],
|
7210
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value, props.class],
|
7211
|
+
"style": [hasColor ? colorStyles.value : undefined, props.style],
|
7091
7212
|
"disabled": props.disabled || undefined,
|
7092
7213
|
"draggable": props.draggable,
|
7093
7214
|
"href": link.href.value,
|
@@ -7196,6 +7317,7 @@
|
|
7196
7317
|
length: [Number, String],
|
7197
7318
|
thickness: [Number, String],
|
7198
7319
|
vertical: Boolean,
|
7320
|
+
...makeComponentProps(),
|
7199
7321
|
...makeThemeProps()
|
7200
7322
|
},
|
7201
7323
|
setup(props, _ref) {
|
@@ -7224,8 +7346,8 @@
|
|
7224
7346
|
'v-divider': true,
|
7225
7347
|
'v-divider--inset': props.inset,
|
7226
7348
|
'v-divider--vertical': props.vertical
|
7227
|
-
}, themeClasses.value, textColorClasses.value],
|
7228
|
-
"style": [dividerStyles.value, textColorStyles.value],
|
7349
|
+
}, themeClasses.value, textColorClasses.value, props.class],
|
7350
|
+
"style": [dividerStyles.value, textColorStyles.value, props.style],
|
7229
7351
|
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
7230
7352
|
"role": `${attrs.role || 'separator'}`
|
7231
7353
|
}, null));
|
@@ -7709,7 +7831,9 @@
|
|
7709
7831
|
}
|
7710
7832
|
});
|
7711
7833
|
const makeVListGroupProps = propsFactory({
|
7834
|
+
/* @deprecated */
|
7712
7835
|
activeColor: String,
|
7836
|
+
baseColor: String,
|
7713
7837
|
color: String,
|
7714
7838
|
collapseIcon: {
|
7715
7839
|
type: IconValue,
|
@@ -7724,6 +7848,7 @@
|
|
7724
7848
|
fluid: Boolean,
|
7725
7849
|
subgroup: Boolean,
|
7726
7850
|
value: null,
|
7851
|
+
...makeComponentProps(),
|
7727
7852
|
...makeTagProps()
|
7728
7853
|
}, 'v-list-group');
|
7729
7854
|
const VListGroup = genericComponent()({
|
@@ -7759,6 +7884,7 @@
|
|
7759
7884
|
VListItem: {
|
7760
7885
|
active: isOpen.value,
|
7761
7886
|
activeColor: props.activeColor,
|
7887
|
+
baseColor: props.baseColor,
|
7762
7888
|
color: props.color,
|
7763
7889
|
prependIcon: props.prependIcon || props.subgroup && toggleIcon.value,
|
7764
7890
|
appendIcon: props.appendIcon || !props.subgroup && toggleIcon.value,
|
@@ -7772,7 +7898,8 @@
|
|
7772
7898
|
'v-list-group--fluid': props.fluid,
|
7773
7899
|
'v-list-group--subgroup': props.subgroup,
|
7774
7900
|
'v-list-group--open': isOpen.value
|
7775
|
-
}]
|
7901
|
+
}, props.class],
|
7902
|
+
"style": props.style
|
7776
7903
|
}, {
|
7777
7904
|
default: () => [slots.activator && vue.createVNode(VDefaultsProvider, {
|
7778
7905
|
"defaults": activatorDefaults.value
|
@@ -7817,9 +7944,11 @@
|
|
7817
7944
|
default: undefined
|
7818
7945
|
},
|
7819
7946
|
activeClass: String,
|
7947
|
+
/* @deprecated */
|
7820
7948
|
activeColor: String,
|
7821
7949
|
appendAvatar: String,
|
7822
7950
|
appendIcon: IconValue,
|
7951
|
+
baseColor: String,
|
7823
7952
|
disabled: Boolean,
|
7824
7953
|
lines: String,
|
7825
7954
|
link: {
|
@@ -7839,6 +7968,7 @@
|
|
7839
7968
|
onClick: EventProp(),
|
7840
7969
|
onClickOnce: EventProp(),
|
7841
7970
|
...makeBorderProps(),
|
7971
|
+
...makeComponentProps(),
|
7842
7972
|
...makeDensityProps(),
|
7843
7973
|
...makeDimensionProps(),
|
7844
7974
|
...makeElevationProps(),
|
@@ -7875,8 +8005,9 @@
|
|
7875
8005
|
const isLink = vue.computed(() => props.link !== false && link.isLink.value);
|
7876
8006
|
const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null && !!list));
|
7877
8007
|
const roundedProps = vue.computed(() => props.rounded || props.nav);
|
8008
|
+
const color = vue.computed(() => props.color ?? props.activeColor);
|
7878
8009
|
const variantProps = vue.computed(() => ({
|
7879
|
-
color: isActive.value ?
|
8010
|
+
color: isActive.value ? color.value ?? props.baseColor : props.baseColor,
|
7880
8011
|
variant: props.variant
|
7881
8012
|
}));
|
7882
8013
|
vue.watch(() => link.isActive?.value, val => {
|
@@ -7933,7 +8064,6 @@
|
|
7933
8064
|
}
|
7934
8065
|
useRender(() => {
|
7935
8066
|
const Tag = isLink.value ? 'a' : props.tag;
|
7936
|
-
const hasColor = !list || isSelected.value || isActive.value;
|
7937
8067
|
const hasTitle = slots.title || props.title;
|
7938
8068
|
const hasSubtitle = slots.subtitle || props.subtitle;
|
7939
8069
|
const hasAppendMedia = !!(props.appendAvatar || props.appendIcon);
|
@@ -7941,6 +8071,9 @@
|
|
7941
8071
|
const hasPrependMedia = !!(props.prependAvatar || props.prependIcon);
|
7942
8072
|
const hasPrepend = !!(hasPrependMedia || slots.prepend);
|
7943
8073
|
list?.updateHasPrepend(hasPrepend);
|
8074
|
+
if (props.activeColor) {
|
8075
|
+
deprecate('active-color', ['color', 'base-color']);
|
8076
|
+
}
|
7944
8077
|
return vue.withDirectives(vue.createVNode(Tag, {
|
7945
8078
|
"class": ['v-list-item', {
|
7946
8079
|
'v-list-item--active': isActive.value,
|
@@ -7949,8 +8082,8 @@
|
|
7949
8082
|
'v-list-item--nav': props.nav,
|
7950
8083
|
'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,
|
7951
8084
|
[`${props.activeClass}`]: props.activeClass && isActive.value
|
7952
|
-
}, themeClasses.value, borderClasses.value,
|
7953
|
-
"style": [
|
8085
|
+
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
8086
|
+
"style": [colorStyles.value, dimensionStyles.value, props.style],
|
7954
8087
|
"href": link.href.value,
|
7955
8088
|
"tabindex": isClickable.value ? 0 : undefined,
|
7956
8089
|
"onClick": onClick,
|
@@ -8043,6 +8176,7 @@
|
|
8043
8176
|
inset: Boolean,
|
8044
8177
|
sticky: Boolean,
|
8045
8178
|
title: String,
|
8179
|
+
...makeComponentProps(),
|
8046
8180
|
...makeTagProps()
|
8047
8181
|
},
|
8048
8182
|
setup(props, _ref) {
|
@@ -8059,10 +8193,10 @@
|
|
8059
8193
|
"class": ['v-list-subheader', {
|
8060
8194
|
'v-list-subheader--inset': props.inset,
|
8061
8195
|
'v-list-subheader--sticky': props.sticky
|
8062
|
-
}, textColorClasses.value],
|
8063
|
-
"style": {
|
8196
|
+
}, textColorClasses.value, props.class],
|
8197
|
+
"style": [{
|
8064
8198
|
textColorStyles
|
8065
|
-
}
|
8199
|
+
}, props.style]
|
8066
8200
|
}, {
|
8067
8201
|
default: () => [hasText && vue.createVNode("div", {
|
8068
8202
|
"class": "v-list-subheader__text"
|
@@ -8268,6 +8402,8 @@
|
|
8268
8402
|
const VList = genericComponent()({
|
8269
8403
|
name: 'VList',
|
8270
8404
|
props: {
|
8405
|
+
baseColor: String,
|
8406
|
+
/* @deprecated */
|
8271
8407
|
activeColor: String,
|
8272
8408
|
activeClass: String,
|
8273
8409
|
bgColor: String,
|
@@ -8282,6 +8418,7 @@
|
|
8282
8418
|
openStrategy: 'list'
|
8283
8419
|
}),
|
8284
8420
|
...makeBorderProps(),
|
8421
|
+
...makeComponentProps(),
|
8285
8422
|
...makeDensityProps(),
|
8286
8423
|
...makeDimensionProps(),
|
8287
8424
|
...makeElevationProps(),
|
@@ -8338,16 +8475,19 @@
|
|
8338
8475
|
} = useNested(props);
|
8339
8476
|
const lineClasses = vue.computed(() => props.lines ? `v-list--${props.lines}-line` : undefined);
|
8340
8477
|
const activeColor = vue.toRef(props, 'activeColor');
|
8478
|
+
const baseColor = vue.toRef(props, 'baseColor');
|
8341
8479
|
const color = vue.toRef(props, 'color');
|
8342
8480
|
createList();
|
8343
8481
|
provideDefaults({
|
8344
8482
|
VListGroup: {
|
8345
8483
|
activeColor,
|
8484
|
+
baseColor,
|
8346
8485
|
color
|
8347
8486
|
},
|
8348
8487
|
VListItem: {
|
8349
8488
|
activeClass: vue.toRef(props, 'activeClass'),
|
8350
8489
|
activeColor,
|
8490
|
+
baseColor,
|
8351
8491
|
color,
|
8352
8492
|
density: vue.toRef(props, 'density'),
|
8353
8493
|
disabled: vue.toRef(props, 'disabled'),
|
@@ -8383,27 +8523,8 @@
|
|
8383
8523
|
e.preventDefault();
|
8384
8524
|
}
|
8385
8525
|
function focus(location) {
|
8386
|
-
if (
|
8387
|
-
|
8388
|
-
const focusable = [...contentRef.value.querySelectorAll(targets)].filter(el => !el.hasAttribute('disabled'));
|
8389
|
-
const idx = focusable.indexOf(document.activeElement);
|
8390
|
-
if (!location) {
|
8391
|
-
if (!contentRef.value.contains(document.activeElement)) {
|
8392
|
-
focusable[0]?.focus();
|
8393
|
-
}
|
8394
|
-
} else if (location === 'first') {
|
8395
|
-
focusable[0]?.focus();
|
8396
|
-
} else if (location === 'last') {
|
8397
|
-
focusable.at(-1)?.focus();
|
8398
|
-
} else {
|
8399
|
-
let el;
|
8400
|
-
let idxx = idx;
|
8401
|
-
const inc = location === 'next' ? 1 : -1;
|
8402
|
-
do {
|
8403
|
-
idxx += inc;
|
8404
|
-
el = focusable[idxx];
|
8405
|
-
} while ((!el || el.offsetParent == null) && idxx < focusable.length && idxx >= 0);
|
8406
|
-
if (el) el.focus();else focus(location === 'next' ? 'first' : 'last');
|
8526
|
+
if (contentRef.value) {
|
8527
|
+
return focusChild(contentRef.value, location);
|
8407
8528
|
}
|
8408
8529
|
}
|
8409
8530
|
useRender(() => {
|
@@ -8412,8 +8533,8 @@
|
|
8412
8533
|
"class": ['v-list', {
|
8413
8534
|
'v-list--disabled': props.disabled,
|
8414
8535
|
'v-list--nav': props.nav
|
8415
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value],
|
8416
|
-
"style": [backgroundColorStyles.value, dimensionStyles.value],
|
8536
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class],
|
8537
|
+
"style": [backgroundColorStyles.value, dimensionStyles.value, props.style],
|
8417
8538
|
"role": "listbox",
|
8418
8539
|
"aria-activedescendant": undefined,
|
8419
8540
|
"onFocusin": onFocusin,
|
@@ -8441,6 +8562,7 @@
|
|
8441
8562
|
props: {
|
8442
8563
|
start: Boolean,
|
8443
8564
|
end: Boolean,
|
8565
|
+
...makeComponentProps(),
|
8444
8566
|
...makeTagProps()
|
8445
8567
|
},
|
8446
8568
|
setup(props, _ref) {
|
@@ -8451,7 +8573,8 @@
|
|
8451
8573
|
"class": ['v-list-item-action', {
|
8452
8574
|
'v-list-item-action--start': props.start,
|
8453
8575
|
'v-list-item-action--end': props.end
|
8454
|
-
}]
|
8576
|
+
}, props.class],
|
8577
|
+
"style": props.style
|
8455
8578
|
}, slots));
|
8456
8579
|
return {};
|
8457
8580
|
}
|
@@ -8462,6 +8585,7 @@
|
|
8462
8585
|
props: {
|
8463
8586
|
start: Boolean,
|
8464
8587
|
end: Boolean,
|
8588
|
+
...makeComponentProps(),
|
8465
8589
|
...makeTagProps()
|
8466
8590
|
},
|
8467
8591
|
setup(props, _ref) {
|
@@ -8473,7 +8597,8 @@
|
|
8473
8597
|
"class": ['v-list-item-media', {
|
8474
8598
|
'v-list-item-media--start': props.start,
|
8475
8599
|
'v-list-item-media--end': props.end
|
8476
|
-
}]
|
8600
|
+
}, props.class],
|
8601
|
+
"style": props.style
|
8477
8602
|
}, slots);
|
8478
8603
|
});
|
8479
8604
|
return {};
|
@@ -9383,14 +9508,14 @@
|
|
9383
9508
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultDisplayOptions;
|
9384
9509
|
return mergeDeep(defaultDisplayOptions, options);
|
9385
9510
|
};
|
9386
|
-
function getClientWidth(
|
9387
|
-
return IN_BROWSER && !
|
9511
|
+
function getClientWidth(ssr) {
|
9512
|
+
return IN_BROWSER && !ssr ? window.innerWidth : typeof ssr === 'object' && ssr.clientWidth || 0;
|
9388
9513
|
}
|
9389
|
-
function getClientHeight(
|
9390
|
-
return IN_BROWSER && !
|
9514
|
+
function getClientHeight(ssr) {
|
9515
|
+
return IN_BROWSER && !ssr ? window.innerHeight : typeof ssr === 'object' && ssr.clientHeight || 0;
|
9391
9516
|
}
|
9392
|
-
function getPlatform(
|
9393
|
-
const userAgent = IN_BROWSER && !
|
9517
|
+
function getPlatform(ssr) {
|
9518
|
+
const userAgent = IN_BROWSER && !ssr ? window.navigator.userAgent : 'ssr';
|
9394
9519
|
function match(regexp) {
|
9395
9520
|
return Boolean(userAgent.match(regexp));
|
9396
9521
|
}
|
@@ -9714,6 +9839,7 @@
|
|
9714
9839
|
default: 2000
|
9715
9840
|
},
|
9716
9841
|
...makeActivatorProps(),
|
9842
|
+
...makeComponentProps(),
|
9717
9843
|
...makeDimensionProps(),
|
9718
9844
|
...makeLazyProps(),
|
9719
9845
|
...makeLocationStrategyProps(),
|
@@ -9881,10 +10007,10 @@
|
|
9881
10007
|
'v-overlay--absolute': props.absolute || props.contained,
|
9882
10008
|
'v-overlay--active': isActive.value,
|
9883
10009
|
'v-overlay--contained': props.contained
|
9884
|
-
}, themeClasses.value, rtlClasses.value],
|
10010
|
+
}, themeClasses.value, rtlClasses.value, props.class],
|
9885
10011
|
"style": [stackStyles.value, {
|
9886
10012
|
top: convertToUnit(top.value)
|
9887
|
-
}],
|
10013
|
+
}, props.style],
|
9888
10014
|
"ref": root
|
9889
10015
|
}, scopeId, attrs), [vue.createVNode(Scrim, vue.mergeProps({
|
9890
10016
|
"color": scrimColor,
|
@@ -9990,7 +10116,8 @@
|
|
9990
10116
|
const [overlayProps] = VOverlay.filterProps(props);
|
9991
10117
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
9992
10118
|
"ref": overlay,
|
9993
|
-
"class": ['v-menu']
|
10119
|
+
"class": ['v-menu', props.class],
|
10120
|
+
"style": props.style
|
9994
10121
|
}, overlayProps, {
|
9995
10122
|
"modelValue": isActive.value,
|
9996
10123
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
@@ -10209,7 +10336,8 @@
|
|
10209
10336
|
'v-select--chips': !!props.chips,
|
10210
10337
|
[`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,
|
10211
10338
|
'v-select--selected': model.value.length
|
10212
|
-
}],
|
10339
|
+
}, props.class],
|
10340
|
+
"style": props.style,
|
10213
10341
|
"appendInnerIcon": props.menuIcon,
|
10214
10342
|
"readonly": true,
|
10215
10343
|
"placeholder": placeholder,
|
@@ -10260,11 +10388,13 @@
|
|
10260
10388
|
let {
|
10261
10389
|
isSelected
|
10262
10390
|
} = _ref2;
|
10263
|
-
return props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
10391
|
+
return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
10264
10392
|
"modelValue": isSelected,
|
10265
10393
|
"ripple": false,
|
10266
10394
|
"tabindex": "-1"
|
10267
|
-
}, null) : undefined
|
10395
|
+
}, null) : undefined, item.props.prependIcon && vue.createVNode(VIcon, {
|
10396
|
+
"icon": item.props.prependIcon
|
10397
|
+
}, null)]);
|
10268
10398
|
}
|
10269
10399
|
});
|
10270
10400
|
}), slots['append-item']?.()]
|
@@ -10277,6 +10407,10 @@
|
|
10277
10407
|
}
|
10278
10408
|
const slotProps = {
|
10279
10409
|
'onClick:close': onChipClose,
|
10410
|
+
onMousedown(e) {
|
10411
|
+
e.preventDefault();
|
10412
|
+
e.stopPropagation();
|
10413
|
+
},
|
10280
10414
|
modelValue: true,
|
10281
10415
|
'onUpdate:modelValue': undefined
|
10282
10416
|
};
|
@@ -10652,7 +10786,8 @@
|
|
10652
10786
|
'v-autocomplete--selecting-index': selectionIndex.value > -1,
|
10653
10787
|
[`v-autocomplete--${props.multiple ? 'multiple' : 'single'}`]: true,
|
10654
10788
|
'v-autocomplete--selection-slot': !!slots.selection
|
10655
|
-
}],
|
10789
|
+
}, props.class],
|
10790
|
+
"style": props.style,
|
10656
10791
|
"appendInnerIcon": props.menuIcon,
|
10657
10792
|
"readonly": props.readonly,
|
10658
10793
|
"placeholder": isDirty ? undefined : props.placeholder,
|
@@ -10698,11 +10833,13 @@
|
|
10698
10833
|
let {
|
10699
10834
|
isSelected
|
10700
10835
|
} = _ref2;
|
10701
|
-
return props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
10836
|
+
return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
10702
10837
|
"modelValue": isSelected,
|
10703
10838
|
"ripple": false,
|
10704
10839
|
"tabindex": "-1"
|
10705
|
-
}, null) : undefined
|
10840
|
+
}, null) : undefined, item.props.prependIcon && vue.createVNode(VIcon, {
|
10841
|
+
"icon": item.props.prependIcon
|
10842
|
+
}, null)]);
|
10706
10843
|
},
|
10707
10844
|
title: () => {
|
10708
10845
|
return isPristine.value ? item.title : highlightResult$1(item.title, getMatches(item)?.title, search.value?.length ?? 0);
|
@@ -10717,6 +10854,10 @@
|
|
10717
10854
|
}
|
10718
10855
|
const slotProps = {
|
10719
10856
|
'onClick:close': onChipClose,
|
10857
|
+
onMousedown(e) {
|
10858
|
+
e.preventDefault();
|
10859
|
+
e.stopPropagation();
|
10860
|
+
},
|
10720
10861
|
modelValue: true,
|
10721
10862
|
'onUpdate:modelValue': undefined
|
10722
10863
|
};
|
@@ -10766,8 +10907,6 @@
|
|
10766
10907
|
}
|
10767
10908
|
});
|
10768
10909
|
|
10769
|
-
// Types
|
10770
|
-
|
10771
10910
|
const VBadge = genericComponent()({
|
10772
10911
|
name: 'VBadge',
|
10773
10912
|
inheritAttrs: false,
|
@@ -10791,6 +10930,7 @@
|
|
10791
10930
|
offsetX: [Number, String],
|
10792
10931
|
offsetY: [Number, String],
|
10793
10932
|
textColor: String,
|
10933
|
+
...makeComponentProps(),
|
10794
10934
|
...makeLocationProps({
|
10795
10935
|
location: 'top end'
|
10796
10936
|
}),
|
@@ -10835,8 +10975,10 @@
|
|
10835
10975
|
'v-badge--dot': props.dot,
|
10836
10976
|
'v-badge--floating': props.floating,
|
10837
10977
|
'v-badge--inline': props.inline
|
10838
|
-
}]
|
10839
|
-
}, attrs
|
10978
|
+
}, props.class]
|
10979
|
+
}, attrs, {
|
10980
|
+
"style": props.style
|
10981
|
+
}), {
|
10840
10982
|
default: () => [vue.createVNode("div", {
|
10841
10983
|
"class": "v-badge__wrapper"
|
10842
10984
|
}, [ctx.slots.default?.(), vue.createVNode(MaybeTransition, {
|
@@ -10863,7 +11005,8 @@
|
|
10863
11005
|
name: 'VBannerActions',
|
10864
11006
|
props: {
|
10865
11007
|
color: String,
|
10866
|
-
density: String
|
11008
|
+
density: String,
|
11009
|
+
...makeComponentProps()
|
10867
11010
|
},
|
10868
11011
|
setup(props, _ref) {
|
10869
11012
|
let {
|
@@ -10877,7 +11020,8 @@
|
|
10877
11020
|
}
|
10878
11021
|
});
|
10879
11022
|
useRender(() => vue.createVNode("div", {
|
10880
|
-
"class":
|
11023
|
+
"class": ['v-banner-actions', props.class],
|
11024
|
+
"style": props.style
|
10881
11025
|
}, [slots.default?.()]));
|
10882
11026
|
return {};
|
10883
11027
|
}
|
@@ -10898,6 +11042,7 @@
|
|
10898
11042
|
sticky: Boolean,
|
10899
11043
|
text: String,
|
10900
11044
|
...makeBorderProps(),
|
11045
|
+
...makeComponentProps(),
|
10901
11046
|
...makeDensityProps(),
|
10902
11047
|
...makeDimensionProps(),
|
10903
11048
|
...makeElevationProps(),
|
@@ -10955,8 +11100,8 @@
|
|
10955
11100
|
'v-banner--stacked': props.stacked || mobile.value,
|
10956
11101
|
'v-banner--sticky': props.sticky,
|
10957
11102
|
[`v-banner--${props.lines}-line`]: !!props.lines
|
10958
|
-
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value],
|
10959
|
-
"style": [dimensionStyles.value, locationStyles.value],
|
11103
|
+
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
11104
|
+
"style": [dimensionStyles.value, locationStyles.value, props.style],
|
10960
11105
|
"role": "banner"
|
10961
11106
|
}, {
|
10962
11107
|
default: () => [hasPrepend && vue.createVNode("div", {
|
@@ -11012,6 +11157,7 @@
|
|
11012
11157
|
default: true
|
11013
11158
|
},
|
11014
11159
|
...makeBorderProps(),
|
11160
|
+
...makeComponentProps(),
|
11015
11161
|
...makeDensityProps(),
|
11016
11162
|
...makeElevationProps(),
|
11017
11163
|
...makeRoundedProps(),
|
@@ -11086,11 +11232,11 @@
|
|
11086
11232
|
'v-bottom-navigation--active': isActive.value,
|
11087
11233
|
'v-bottom-navigation--grow': props.grow,
|
11088
11234
|
'v-bottom-navigation--shift': props.mode === 'shift'
|
11089
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value],
|
11235
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
11090
11236
|
"style": [backgroundColorStyles.value, layoutItemStyles.value, {
|
11091
11237
|
height: convertToUnit(height.value),
|
11092
11238
|
transform: `translateY(${convertToUnit(!isActive.value ? 100 : 0, '%')})`
|
11093
|
-
}, ssrBootStyles.value]
|
11239
|
+
}, ssrBootStyles.value, props.style]
|
11094
11240
|
}, {
|
11095
11241
|
default: () => [slots.default && vue.createVNode("div", {
|
11096
11242
|
"class": "v-bottom-navigation__content"
|
@@ -11104,14 +11250,16 @@
|
|
11104
11250
|
const VBreadcrumbsDivider = genericComponent()({
|
11105
11251
|
name: 'VBreadcrumbsDivider',
|
11106
11252
|
props: {
|
11107
|
-
divider: [Number, String]
|
11253
|
+
divider: [Number, String],
|
11254
|
+
...makeComponentProps()
|
11108
11255
|
},
|
11109
11256
|
setup(props, _ref) {
|
11110
11257
|
let {
|
11111
11258
|
slots
|
11112
11259
|
} = _ref;
|
11113
11260
|
useRender(() => vue.createVNode("li", {
|
11114
|
-
"class":
|
11261
|
+
"class": ['v-breadcrumbs-divider', props.class],
|
11262
|
+
"style": props.style
|
11115
11263
|
}, [slots?.default?.() ?? props.divider]));
|
11116
11264
|
return {};
|
11117
11265
|
}
|
@@ -11126,6 +11274,7 @@
|
|
11126
11274
|
color: String,
|
11127
11275
|
disabled: Boolean,
|
11128
11276
|
title: String,
|
11277
|
+
...makeComponentProps(),
|
11129
11278
|
...makeRouterProps(),
|
11130
11279
|
...makeTagProps({
|
11131
11280
|
tag: 'li'
|
@@ -11151,8 +11300,8 @@
|
|
11151
11300
|
'v-breadcrumbs-item--disabled': props.disabled,
|
11152
11301
|
'v-breadcrumbs-item--link': link.isLink.value,
|
11153
11302
|
[`${props.activeClass}`]: isActive.value && props.activeClass
|
11154
|
-
}, textColorClasses.value],
|
11155
|
-
"style": [textColorStyles.value],
|
11303
|
+
}, textColorClasses.value, props.class],
|
11304
|
+
"style": [textColorStyles.value, props.style],
|
11156
11305
|
"href": link.href.value,
|
11157
11306
|
"aria-current": isActive.value ? 'page' : undefined,
|
11158
11307
|
"onClick": link.navigate
|
@@ -11183,6 +11332,7 @@
|
|
11183
11332
|
type: Array,
|
11184
11333
|
default: () => []
|
11185
11334
|
},
|
11335
|
+
...makeComponentProps(),
|
11186
11336
|
...makeDensityProps(),
|
11187
11337
|
...makeRoundedProps(),
|
11188
11338
|
...makeTagProps({
|
@@ -11214,11 +11364,22 @@
|
|
11214
11364
|
disabled: vue.toRef(props, 'disabled')
|
11215
11365
|
}
|
11216
11366
|
});
|
11367
|
+
const items = vue.computed(() => props.items.map(item => {
|
11368
|
+
return typeof item === 'string' ? {
|
11369
|
+
item: {
|
11370
|
+
title: item
|
11371
|
+
},
|
11372
|
+
raw: item
|
11373
|
+
} : {
|
11374
|
+
item,
|
11375
|
+
raw: item
|
11376
|
+
};
|
11377
|
+
}));
|
11217
11378
|
useRender(() => {
|
11218
11379
|
const hasPrepend = !!(slots.prepend || props.icon);
|
11219
11380
|
return vue.createVNode(props.tag, {
|
11220
|
-
"class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value],
|
11221
|
-
"style": backgroundColorStyles.value
|
11381
|
+
"class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value, props.class],
|
11382
|
+
"style": [backgroundColorStyles.value, props.style]
|
11222
11383
|
}, {
|
11223
11384
|
default: () => [hasPrepend && vue.createVNode("div", {
|
11224
11385
|
"key": "prepend",
|
@@ -11236,33 +11397,36 @@
|
|
11236
11397
|
start: true
|
11237
11398
|
}
|
11238
11399
|
}
|
11239
|
-
}, slots.prepend)]),
|
11240
|
-
|
11241
|
-
"disabled": index >= array.length - 1
|
11242
|
-
}, typeof item === 'string' ? {
|
11243
|
-
title: item
|
11244
|
-
} : item), {
|
11245
|
-
default: slots.title ? () => slots.title?.({
|
11246
|
-
item,
|
11247
|
-
index
|
11248
|
-
}) : undefined
|
11249
|
-
}), index < array.length - 1 && vue.createVNode(VBreadcrumbsDivider, null, {
|
11250
|
-
default: slots.divider ? () => slots.divider?.({
|
11400
|
+
}, slots.prepend)]), items.value.map((_ref2, index, array) => {
|
11401
|
+
let {
|
11251
11402
|
item,
|
11252
|
-
|
11253
|
-
}
|
11254
|
-
|
11403
|
+
raw
|
11404
|
+
} = _ref2;
|
11405
|
+
return vue.createVNode(vue.Fragment, null, [vue.createVNode(VBreadcrumbsItem, vue.mergeProps({
|
11406
|
+
"key": item.title,
|
11407
|
+
"disabled": index >= array.length - 1
|
11408
|
+
}, item), {
|
11409
|
+
default: slots.title ? () => slots.title?.({
|
11410
|
+
item: raw,
|
11411
|
+
index
|
11412
|
+
}) : undefined
|
11413
|
+
}), index < array.length - 1 && vue.createVNode(VBreadcrumbsDivider, null, {
|
11414
|
+
default: slots.divider ? () => slots.divider?.({
|
11415
|
+
item: raw,
|
11416
|
+
index
|
11417
|
+
}) : undefined
|
11418
|
+
})]);
|
11419
|
+
}), slots.default?.()]
|
11255
11420
|
});
|
11256
11421
|
});
|
11257
11422
|
return {};
|
11258
11423
|
}
|
11259
11424
|
});
|
11260
11425
|
|
11261
|
-
|
11262
|
-
|
11263
|
-
const VCardActions = defineComponent({
|
11426
|
+
const VCardActions = genericComponent()({
|
11264
11427
|
name: 'VCardActions',
|
11265
|
-
|
11428
|
+
props: makeComponentProps(),
|
11429
|
+
setup(props, _ref) {
|
11266
11430
|
let {
|
11267
11431
|
slots
|
11268
11432
|
} = _ref;
|
@@ -11272,7 +11436,8 @@
|
|
11272
11436
|
}
|
11273
11437
|
});
|
11274
11438
|
useRender(() => vue.createVNode("div", {
|
11275
|
-
"class":
|
11439
|
+
"class": ['v-card-actions', props.class],
|
11440
|
+
"style": props.style
|
11276
11441
|
}, [slots.default?.()]));
|
11277
11442
|
return {};
|
11278
11443
|
}
|
@@ -11282,8 +11447,6 @@
|
|
11282
11447
|
|
11283
11448
|
const VCardTitle = createSimpleFunctional('v-card-title');
|
11284
11449
|
|
11285
|
-
// Types
|
11286
|
-
|
11287
11450
|
const VCardItem = genericComponent()({
|
11288
11451
|
name: 'VCardItem',
|
11289
11452
|
props: {
|
@@ -11293,6 +11456,7 @@
|
|
11293
11456
|
prependIcon: IconValue,
|
11294
11457
|
subtitle: String,
|
11295
11458
|
title: String,
|
11459
|
+
...makeComponentProps(),
|
11296
11460
|
...makeDensityProps()
|
11297
11461
|
},
|
11298
11462
|
setup(props, _ref) {
|
@@ -11307,7 +11471,8 @@
|
|
11307
11471
|
const hasTitle = !!(props.title || slots.title);
|
11308
11472
|
const hasSubtitle = !!(props.subtitle || slots.subtitle);
|
11309
11473
|
return vue.createVNode("div", {
|
11310
|
-
"class":
|
11474
|
+
"class": ['v-card-item', props.class],
|
11475
|
+
"style": props.style
|
11311
11476
|
}, [hasPrepend && vue.createVNode("div", {
|
11312
11477
|
"key": "prepend",
|
11313
11478
|
"class": "v-card-item__prepend"
|
@@ -11389,8 +11554,8 @@
|
|
11389
11554
|
subtitle: String,
|
11390
11555
|
text: String,
|
11391
11556
|
title: String,
|
11392
|
-
...makeThemeProps(),
|
11393
11557
|
...makeBorderProps(),
|
11558
|
+
...makeComponentProps(),
|
11394
11559
|
...makeDensityProps(),
|
11395
11560
|
...makeDimensionProps(),
|
11396
11561
|
...makeElevationProps(),
|
@@ -11400,6 +11565,7 @@
|
|
11400
11565
|
...makeRoundedProps(),
|
11401
11566
|
...makeRouterProps(),
|
11402
11567
|
...makeTagProps(),
|
11568
|
+
...makeThemeProps(),
|
11403
11569
|
...makeVariantProps({
|
11404
11570
|
variant: 'elevated'
|
11405
11571
|
})
|
@@ -11460,8 +11626,8 @@
|
|
11460
11626
|
'v-card--flat': props.flat,
|
11461
11627
|
'v-card--hover': props.hover && !(props.disabled || props.flat),
|
11462
11628
|
'v-card--link': isClickable.value
|
11463
|
-
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value],
|
11464
|
-
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value],
|
11629
|
+
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
11630
|
+
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
|
11465
11631
|
"href": link.href.value,
|
11466
11632
|
"onClick": isClickable.value && link.navigate,
|
11467
11633
|
"tabindex": props.disabled ? -1 : undefined
|
@@ -11657,6 +11823,7 @@
|
|
11657
11823
|
mandatory: {
|
11658
11824
|
default: 'force'
|
11659
11825
|
},
|
11826
|
+
...makeComponentProps(),
|
11660
11827
|
...makeTagProps(),
|
11661
11828
|
...makeThemeProps()
|
11662
11829
|
}, 'v-window');
|
@@ -11772,7 +11939,8 @@
|
|
11772
11939
|
"ref": rootRef,
|
11773
11940
|
"class": ['v-window', {
|
11774
11941
|
'v-window--show-arrows-on-hover': props.showArrows === 'hover'
|
11775
|
-
}, themeClasses.value]
|
11942
|
+
}, themeClasses.value, props.class],
|
11943
|
+
"style": props.style
|
11776
11944
|
}, {
|
11777
11945
|
default: () => [vue.createVNode("div", {
|
11778
11946
|
"class": "v-window__container",
|
@@ -11857,10 +12025,10 @@
|
|
11857
12025
|
"class": ['v-carousel', {
|
11858
12026
|
'v-carousel--hide-delimiter-background': props.hideDelimiterBackground,
|
11859
12027
|
'v-carousel--vertical-delimiters': props.verticalDelimiters
|
11860
|
-
}],
|
11861
|
-
"style": {
|
12028
|
+
}, props.class],
|
12029
|
+
"style": [{
|
11862
12030
|
height: convertToUnit(props.height)
|
11863
|
-
},
|
12031
|
+
}, props.style],
|
11864
12032
|
"continuous": true,
|
11865
12033
|
"mandatory": "force",
|
11866
12034
|
"showArrows": props.showArrows
|
@@ -11926,6 +12094,7 @@
|
|
11926
12094
|
type: [Boolean, String],
|
11927
12095
|
default: undefined
|
11928
12096
|
},
|
12097
|
+
...makeComponentProps(),
|
11929
12098
|
...makeGroupItemProps(),
|
11930
12099
|
...makeLazyProps()
|
11931
12100
|
},
|
@@ -12012,7 +12181,8 @@
|
|
12012
12181
|
"disabled": !isBooted.value
|
12013
12182
|
}, {
|
12014
12183
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
12015
|
-
"class": ['v-window-item', groupItem.selectedClass.value]
|
12184
|
+
"class": ['v-window-item', groupItem.selectedClass.value, props.class],
|
12185
|
+
"style": props.style
|
12016
12186
|
}, [hasContent.value && slots.default?.()]), [[vue.vShow, groupItem.isSelected.value]])]
|
12017
12187
|
}));
|
12018
12188
|
return {};
|
@@ -12025,7 +12195,8 @@
|
|
12025
12195
|
name: 'VCarouselItem',
|
12026
12196
|
inheritAttrs: false,
|
12027
12197
|
props: {
|
12028
|
-
value: null
|
12198
|
+
value: null,
|
12199
|
+
...makeComponentProps()
|
12029
12200
|
},
|
12030
12201
|
setup(props, _ref) {
|
12031
12202
|
let {
|
@@ -12033,7 +12204,8 @@
|
|
12033
12204
|
attrs
|
12034
12205
|
} = _ref;
|
12035
12206
|
useRender(() => vue.createVNode(VWindowItem, {
|
12036
|
-
"class":
|
12207
|
+
"class": ['v-carousel-item', props.class],
|
12208
|
+
"style": props.style,
|
12037
12209
|
"value": props.value
|
12038
12210
|
}, {
|
12039
12211
|
default: () => [vue.createVNode(VImg, attrs, slots)]
|
@@ -12046,6 +12218,7 @@
|
|
12046
12218
|
const makeVSheetProps = propsFactory({
|
12047
12219
|
color: String,
|
12048
12220
|
...makeBorderProps(),
|
12221
|
+
...makeComponentProps(),
|
12049
12222
|
...makeDimensionProps(),
|
12050
12223
|
...makeElevationProps(),
|
12051
12224
|
...makeLocationProps(),
|
@@ -12089,8 +12262,8 @@
|
|
12089
12262
|
roundedClasses
|
12090
12263
|
} = useRounded(props);
|
12091
12264
|
useRender(() => vue.createVNode(props.tag, {
|
12092
|
-
"class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value],
|
12093
|
-
"style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value]
|
12265
|
+
"class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class],
|
12266
|
+
"style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style]
|
12094
12267
|
}, slots));
|
12095
12268
|
return {};
|
12096
12269
|
}
|
@@ -12116,7 +12289,8 @@
|
|
12116
12289
|
width: {
|
12117
12290
|
type: [Number, String],
|
12118
12291
|
default: 300
|
12119
|
-
}
|
12292
|
+
},
|
12293
|
+
...makeComponentProps()
|
12120
12294
|
},
|
12121
12295
|
emits: {
|
12122
12296
|
'update:color': color => true,
|
@@ -12261,7 +12435,8 @@
|
|
12261
12435
|
vue.onMounted(() => updateCanvas());
|
12262
12436
|
useRender(() => vue.createVNode("div", {
|
12263
12437
|
"ref": resizeRef,
|
12264
|
-
"class":
|
12438
|
+
"class": ['v-color-picker-canvas', props.class],
|
12439
|
+
"style": props.style,
|
12265
12440
|
"onClick": handleClick,
|
12266
12441
|
"onMousedown": handleMouseDown,
|
12267
12442
|
"onTouchstart": handleMouseDown
|
@@ -12283,27 +12458,6 @@
|
|
12283
12458
|
|
12284
12459
|
// Types
|
12285
12460
|
|
12286
|
-
function has(obj, key) {
|
12287
|
-
return key.every(k => obj.hasOwnProperty(k));
|
12288
|
-
}
|
12289
|
-
function parseColor(color) {
|
12290
|
-
if (!color) return null;
|
12291
|
-
let hsva = null;
|
12292
|
-
if (typeof color === 'string') {
|
12293
|
-
const hex = parseHex(color);
|
12294
|
-
hsva = HexToHSV(hex);
|
12295
|
-
}
|
12296
|
-
if (typeof color === 'object') {
|
12297
|
-
if (has(color, ['r', 'g', 'b'])) {
|
12298
|
-
hsva = RGBtoHSV(color);
|
12299
|
-
} else if (has(color, ['h', 's', 'l'])) {
|
12300
|
-
hsva = HSLtoHSV(color);
|
12301
|
-
} else if (has(color, ['h', 's', 'v'])) {
|
12302
|
-
hsva = color;
|
12303
|
-
}
|
12304
|
-
}
|
12305
|
-
return hsva;
|
12306
|
-
}
|
12307
12461
|
function stripAlpha(color, stripAlpha) {
|
12308
12462
|
if (stripAlpha) {
|
12309
12463
|
const {
|
@@ -12494,7 +12648,8 @@
|
|
12494
12648
|
type: Array,
|
12495
12649
|
default: () => Object.keys(modes),
|
12496
12650
|
validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))
|
12497
|
-
}
|
12651
|
+
},
|
12652
|
+
...makeComponentProps()
|
12498
12653
|
},
|
12499
12654
|
emits: {
|
12500
12655
|
'update:color': color => true,
|
@@ -12534,7 +12689,8 @@
|
|
12534
12689
|
});
|
12535
12690
|
});
|
12536
12691
|
useRender(() => vue.createVNode("div", {
|
12537
|
-
"class":
|
12692
|
+
"class": ['v-color-picker-edit', props.class],
|
12693
|
+
"style": props.style
|
12538
12694
|
}, [inputs.value?.map(props => vue.createVNode(VColorPickerInput, props, null)), enabledModes.value.length > 1 && vue.createVNode(VBtn, {
|
12539
12695
|
"icon": "$unfold",
|
12540
12696
|
"size": "x-small",
|
@@ -12853,7 +13009,8 @@
|
|
12853
13009
|
ripple: {
|
12854
13010
|
type: Boolean,
|
12855
13011
|
default: true
|
12856
|
-
}
|
13012
|
+
},
|
13013
|
+
...makeComponentProps()
|
12857
13014
|
},
|
12858
13015
|
emits: {
|
12859
13016
|
'update:modelValue': v => true
|
@@ -12931,11 +13088,11 @@
|
|
12931
13088
|
"class": ['v-slider-thumb', {
|
12932
13089
|
'v-slider-thumb--focused': props.focused,
|
12933
13090
|
'v-slider-thumb--pressed': props.focused && mousePressed.value
|
12934
|
-
}],
|
12935
|
-
"style": {
|
13091
|
+
}, props.class],
|
13092
|
+
"style": [{
|
12936
13093
|
'--v-slider-thumb-position': positionPercentage,
|
12937
13094
|
'--v-slider-thumb-size': convertToUnit(thumbSize.value)
|
12938
|
-
},
|
13095
|
+
}, props.style],
|
12939
13096
|
"role": "slider",
|
12940
13097
|
"tabindex": disabled.value ? -1 : 0,
|
12941
13098
|
"aria-valuemin": props.min,
|
@@ -12981,7 +13138,8 @@
|
|
12981
13138
|
stop: {
|
12982
13139
|
type: Number,
|
12983
13140
|
required: true
|
12984
|
-
}
|
13141
|
+
},
|
13142
|
+
...makeComponentProps()
|
12985
13143
|
},
|
12986
13144
|
emits: {},
|
12987
13145
|
setup(props, _ref) {
|
@@ -13056,12 +13214,12 @@
|
|
13056
13214
|
});
|
13057
13215
|
useRender(() => {
|
13058
13216
|
return vue.createVNode("div", {
|
13059
|
-
"class": ['v-slider-track', roundedClasses.value],
|
13060
|
-
"style": {
|
13217
|
+
"class": ['v-slider-track', roundedClasses.value, props.class],
|
13218
|
+
"style": [{
|
13061
13219
|
'--v-slider-track-size': convertToUnit(trackSize.value),
|
13062
13220
|
'--v-slider-tick-size': convertToUnit(tickSize.value),
|
13063
13221
|
direction: !vertical.value ? horizontalDirection.value : undefined
|
13064
|
-
}
|
13222
|
+
}, props.style]
|
13065
13223
|
}, [vue.createVNode("div", {
|
13066
13224
|
"class": ['v-slider-track__background', trackColorClasses.value, {
|
13067
13225
|
'v-slider-track__background--opacity': !!color.value || !trackFillColor.value
|
@@ -13164,7 +13322,8 @@
|
|
13164
13322
|
'v-slider--focused': isFocused.value,
|
13165
13323
|
'v-slider--pressed': mousePressed.value,
|
13166
13324
|
'v-slider--disabled': props.disabled
|
13167
|
-
}]
|
13325
|
+
}, props.class],
|
13326
|
+
"style": props.style
|
13168
13327
|
}, inputProps, {
|
13169
13328
|
"focused": isFocused.value
|
13170
13329
|
}), {
|
@@ -13227,7 +13386,8 @@
|
|
13227
13386
|
type: Object
|
13228
13387
|
},
|
13229
13388
|
disabled: Boolean,
|
13230
|
-
hideAlpha: Boolean
|
13389
|
+
hideAlpha: Boolean,
|
13390
|
+
...makeComponentProps()
|
13231
13391
|
},
|
13232
13392
|
emits: {
|
13233
13393
|
'update:color': color => true
|
@@ -13239,7 +13399,8 @@
|
|
13239
13399
|
useRender(() => vue.createVNode("div", {
|
13240
13400
|
"class": ['v-color-picker-preview', {
|
13241
13401
|
'v-color-picker-preview--hide-alpha': props.hideAlpha
|
13242
|
-
}]
|
13402
|
+
}, props.class],
|
13403
|
+
"style": props.style
|
13243
13404
|
}, [vue.createVNode("div", {
|
13244
13405
|
"class": "v-color-picker-preview__dot"
|
13245
13406
|
}, [vue.createVNode("div", {
|
@@ -13620,7 +13781,8 @@
|
|
13620
13781
|
},
|
13621
13782
|
disabled: Boolean,
|
13622
13783
|
color: Object,
|
13623
|
-
maxHeight: [Number, String]
|
13784
|
+
maxHeight: [Number, String],
|
13785
|
+
...makeComponentProps()
|
13624
13786
|
},
|
13625
13787
|
emits: {
|
13626
13788
|
'update:color': color => true
|
@@ -13630,20 +13792,22 @@
|
|
13630
13792
|
emit
|
13631
13793
|
} = _ref;
|
13632
13794
|
useRender(() => vue.createVNode("div", {
|
13633
|
-
"class":
|
13634
|
-
"style": {
|
13795
|
+
"class": ['v-color-picker-swatches', props.class],
|
13796
|
+
"style": [{
|
13635
13797
|
maxHeight: convertToUnit(props.maxHeight)
|
13636
|
-
}
|
13798
|
+
}, props.style]
|
13637
13799
|
}, [vue.createVNode("div", null, [props.swatches.map(swatch => vue.createVNode("div", {
|
13638
13800
|
"class": "v-color-picker-swatches__swatch"
|
13639
13801
|
}, [swatch.map(color => {
|
13640
|
-
const
|
13802
|
+
const rgba = parseColor(color);
|
13803
|
+
const hsva = RGBtoHSV(rgba);
|
13804
|
+
const background = RGBtoCSS(rgba);
|
13641
13805
|
return vue.createVNode("div", {
|
13642
13806
|
"class": "v-color-picker-swatches__color",
|
13643
13807
|
"onClick": () => hsva && emit('update:color', hsva)
|
13644
13808
|
}, [vue.createVNode("div", {
|
13645
13809
|
"style": {
|
13646
|
-
background
|
13810
|
+
background
|
13647
13811
|
}
|
13648
13812
|
}, [props.color && deepEqual(props.color, hsva) ? vue.createVNode(VIcon, {
|
13649
13813
|
"size": "x-small",
|
@@ -13703,8 +13867,13 @@
|
|
13703
13867
|
const mode = useProxiedModel(props, 'mode');
|
13704
13868
|
const lastPickedColor = vue.ref(null);
|
13705
13869
|
const currentColor = useProxiedModel(props, 'modelValue', undefined, v => {
|
13706
|
-
let c
|
13707
|
-
|
13870
|
+
let c;
|
13871
|
+
try {
|
13872
|
+
c = RGBtoHSV(parseColor(v));
|
13873
|
+
} catch (err) {
|
13874
|
+
consoleWarn(err);
|
13875
|
+
return null;
|
13876
|
+
}
|
13708
13877
|
if (lastPickedColor.value) {
|
13709
13878
|
c = {
|
13710
13879
|
...c,
|
@@ -13737,13 +13906,13 @@
|
|
13737
13906
|
"rounded": props.rounded,
|
13738
13907
|
"elevation": props.elevation,
|
13739
13908
|
"theme": props.theme,
|
13740
|
-
"class": ['v-color-picker'],
|
13741
|
-
"style": {
|
13909
|
+
"class": ['v-color-picker', props.class],
|
13910
|
+
"style": [{
|
13742
13911
|
'--v-color-picker-color-hsv': HSVtoCSS({
|
13743
13912
|
...(currentColor.value ?? nullColor),
|
13744
13913
|
a: 1
|
13745
13914
|
})
|
13746
|
-
}
|
13915
|
+
}, props.style]
|
13747
13916
|
}, sheetProps, {
|
13748
13917
|
"maxWidth": props.width
|
13749
13918
|
}), {
|
@@ -14054,7 +14223,8 @@
|
|
14054
14223
|
'v-combobox--chips': !!props.chips,
|
14055
14224
|
'v-combobox--selecting-index': selectionIndex.value > -1,
|
14056
14225
|
[`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true
|
14057
|
-
}],
|
14226
|
+
}, props.class],
|
14227
|
+
"style": props.style,
|
14058
14228
|
"appendInnerIcon": props.items.length ? props.menuIcon : undefined,
|
14059
14229
|
"readonly": props.readonly,
|
14060
14230
|
"placeholder": isDirty ? undefined : props.placeholder,
|
@@ -14100,11 +14270,13 @@
|
|
14100
14270
|
let {
|
14101
14271
|
isSelected
|
14102
14272
|
} = _ref2;
|
14103
|
-
return props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
14273
|
+
return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
14104
14274
|
"modelValue": isSelected,
|
14105
14275
|
"ripple": false,
|
14106
14276
|
"tabindex": "-1"
|
14107
|
-
}, null) : undefined
|
14277
|
+
}, null) : undefined, item.props.prependIcon && vue.createVNode(VIcon, {
|
14278
|
+
"icon": item.props.prependIcon
|
14279
|
+
}, null)]);
|
14108
14280
|
},
|
14109
14281
|
title: () => {
|
14110
14282
|
return isPristine.value ? item.title : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0);
|
@@ -14119,6 +14291,10 @@
|
|
14119
14291
|
}
|
14120
14292
|
const slotProps = {
|
14121
14293
|
'onClick:close': onChipClose,
|
14294
|
+
onMousedown(e) {
|
14295
|
+
e.preventDefault();
|
14296
|
+
e.stopPropagation();
|
14297
|
+
},
|
14122
14298
|
modelValue: true,
|
14123
14299
|
'onUpdate:modelValue': undefined
|
14124
14300
|
};
|
@@ -14211,7 +14387,7 @@
|
|
14211
14387
|
![document, overlay.value.contentEl].includes(after) &&
|
14212
14388
|
// It isn't inside the dialog body
|
14213
14389
|
!overlay.value.contentEl.contains(after)) {
|
14214
|
-
const focusable =
|
14390
|
+
const focusable = focusableChildren(overlay.value.contentEl);
|
14215
14391
|
if (!focusable.length) return;
|
14216
14392
|
const firstElement = focusable[0];
|
14217
14393
|
const lastElement = focusable[focusable.length - 1];
|
@@ -14252,7 +14428,8 @@
|
|
14252
14428
|
"class": ['v-dialog', {
|
14253
14429
|
'v-dialog--fullscreen': props.fullscreen,
|
14254
14430
|
'v-dialog--scrollable': props.scrollable
|
14255
|
-
}]
|
14431
|
+
}, props.class],
|
14432
|
+
"style": props.style
|
14256
14433
|
}, overlayProps, {
|
14257
14434
|
"modelValue": isActive.value,
|
14258
14435
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
@@ -14291,6 +14468,7 @@
|
|
14291
14468
|
validator: v => allowedVariants.includes(v)
|
14292
14469
|
},
|
14293
14470
|
readonly: Boolean,
|
14471
|
+
...makeComponentProps(),
|
14294
14472
|
...makeGroupProps(),
|
14295
14473
|
...makeTagProps(),
|
14296
14474
|
...makeThemeProps()
|
@@ -14316,7 +14494,8 @@
|
|
14316
14494
|
}
|
14317
14495
|
});
|
14318
14496
|
useRender(() => vue.createVNode(props.tag, {
|
14319
|
-
"class": ['v-expansion-panels', themeClasses.value, variantClass.value]
|
14497
|
+
"class": ['v-expansion-panels', themeClasses.value, variantClass.value, props.class],
|
14498
|
+
"style": props.style
|
14320
14499
|
}, slots));
|
14321
14500
|
return {};
|
14322
14501
|
}
|
@@ -14345,6 +14524,7 @@
|
|
14345
14524
|
Ripple
|
14346
14525
|
},
|
14347
14526
|
props: {
|
14527
|
+
...makeComponentProps(),
|
14348
14528
|
...makeVExpansionPanelTitleProps()
|
14349
14529
|
},
|
14350
14530
|
setup(props, _ref) {
|
@@ -14367,8 +14547,8 @@
|
|
14367
14547
|
useRender(() => vue.withDirectives(vue.createVNode("button", {
|
14368
14548
|
"class": ['v-expansion-panel-title', {
|
14369
14549
|
'v-expansion-panel-title--active': expansionPanel.isSelected.value
|
14370
|
-
}, backgroundColorClasses.value],
|
14371
|
-
"style": backgroundColorStyles.value,
|
14550
|
+
}, backgroundColorClasses.value, props.class],
|
14551
|
+
"style": [backgroundColorStyles.value, props.style],
|
14372
14552
|
"type": "button",
|
14373
14553
|
"tabindex": expansionPanel.disabled.value ? -1 : undefined,
|
14374
14554
|
"disabled": expansionPanel.disabled.value,
|
@@ -14388,6 +14568,7 @@
|
|
14388
14568
|
const VExpansionPanelText = genericComponent()({
|
14389
14569
|
name: 'VExpansionPanelText',
|
14390
14570
|
props: {
|
14571
|
+
...makeComponentProps(),
|
14391
14572
|
...makeLazyProps()
|
14392
14573
|
},
|
14393
14574
|
setup(props, _ref) {
|
@@ -14404,7 +14585,8 @@
|
|
14404
14585
|
"onAfterLeave": onAfterLeave
|
14405
14586
|
}, {
|
14406
14587
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
14407
|
-
"class":
|
14588
|
+
"class": ['v-expansion-panel-text', props.class],
|
14589
|
+
"style": props.style
|
14408
14590
|
}, [slots.default && hasContent.value && vue.createVNode("div", {
|
14409
14591
|
"class": "v-expansion-panel-text__wrapper"
|
14410
14592
|
}, [slots.default?.()])]), [[vue.vShow, expansionPanel.isSelected.value]])]
|
@@ -14419,6 +14601,7 @@
|
|
14419
14601
|
title: String,
|
14420
14602
|
text: String,
|
14421
14603
|
bgColor: String,
|
14604
|
+
...makeComponentProps(),
|
14422
14605
|
...makeElevationProps(),
|
14423
14606
|
...makeGroupItemProps(),
|
14424
14607
|
...makeLazyProps(),
|
@@ -14467,8 +14650,8 @@
|
|
14467
14650
|
'v-expansion-panel--before-active': isBeforeSelected.value,
|
14468
14651
|
'v-expansion-panel--after-active': isAfterSelected.value,
|
14469
14652
|
'v-expansion-panel--disabled': isDisabled.value
|
14470
|
-
}, roundedClasses.value, backgroundColorClasses.value],
|
14471
|
-
"style": backgroundColorStyles.value,
|
14653
|
+
}, roundedClasses.value, backgroundColorClasses.value, props.class],
|
14654
|
+
"style": [backgroundColorStyles.value, props.style],
|
14472
14655
|
"aria-expanded": groupItem.isSelected.value
|
14473
14656
|
}, {
|
14474
14657
|
default: () => [vue.createVNode("div", {
|
@@ -14575,6 +14758,7 @@
|
|
14575
14758
|
const vInputRef = vue.ref();
|
14576
14759
|
const vFieldRef = vue.ref();
|
14577
14760
|
const inputRef = vue.ref();
|
14761
|
+
const isActive = vue.computed(() => isFocused.value || props.active);
|
14578
14762
|
function onFocus() {
|
14579
14763
|
if (inputRef.value !== document.activeElement) {
|
14580
14764
|
inputRef.value?.focus();
|
@@ -14618,7 +14802,8 @@
|
|
14618
14802
|
"ref": vInputRef,
|
14619
14803
|
"modelValue": model.value,
|
14620
14804
|
"onUpdate:modelValue": $event => model.value = $event,
|
14621
|
-
"class":
|
14805
|
+
"class": ['v-file-input', props.class],
|
14806
|
+
"style": props.style,
|
14622
14807
|
"onClick:prepend": onClickPrepend
|
14623
14808
|
}, rootAttrs, inputProps, {
|
14624
14809
|
"focused": isFocused.value
|
@@ -14642,7 +14827,7 @@
|
|
14642
14827
|
"onClick:appendInner": props['onClick:appendInner']
|
14643
14828
|
}, fieldProps, {
|
14644
14829
|
"id": id.value,
|
14645
|
-
"active":
|
14830
|
+
"active": isActive.value || isDirty.value,
|
14646
14831
|
"dirty": isDirty.value,
|
14647
14832
|
"disabled": isDisabled.value,
|
14648
14833
|
"focused": isFocused.value,
|
@@ -14710,6 +14895,7 @@
|
|
14710
14895
|
default: 'auto'
|
14711
14896
|
},
|
14712
14897
|
...makeBorderProps(),
|
14898
|
+
...makeComponentProps(),
|
14713
14899
|
...makeElevationProps(),
|
14714
14900
|
...makeLayoutItemProps(),
|
14715
14901
|
...makeRoundedProps(),
|
@@ -14759,8 +14945,8 @@
|
|
14759
14945
|
});
|
14760
14946
|
useRender(() => vue.createVNode(props.tag, {
|
14761
14947
|
"ref": resizeRef,
|
14762
|
-
"class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value],
|
14763
|
-
"style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : undefined]
|
14948
|
+
"class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
14949
|
+
"style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : undefined, props.style]
|
14764
14950
|
}, slots));
|
14765
14951
|
return {};
|
14766
14952
|
}
|
@@ -14771,6 +14957,7 @@
|
|
14771
14957
|
const VForm = genericComponent()({
|
14772
14958
|
name: 'VForm',
|
14773
14959
|
props: {
|
14960
|
+
...makeComponentProps(),
|
14774
14961
|
...makeFormProps()
|
14775
14962
|
},
|
14776
14963
|
emits: {
|
@@ -14809,7 +14996,8 @@
|
|
14809
14996
|
}
|
14810
14997
|
useRender(() => vue.createVNode("form", {
|
14811
14998
|
"ref": formRef,
|
14812
|
-
"class":
|
14999
|
+
"class": ['v-form', props.class],
|
15000
|
+
"style": props.style,
|
14813
15001
|
"novalidate": true,
|
14814
15002
|
"onReset": onReset,
|
14815
15003
|
"onSubmit": onSubmit
|
@@ -14825,6 +15013,7 @@
|
|
14825
15013
|
type: Boolean,
|
14826
15014
|
default: false
|
14827
15015
|
},
|
15016
|
+
...makeComponentProps(),
|
14828
15017
|
...makeTagProps()
|
14829
15018
|
},
|
14830
15019
|
setup(props, _ref) {
|
@@ -14834,7 +15023,8 @@
|
|
14834
15023
|
useRender(() => vue.createVNode(props.tag, {
|
14835
15024
|
"class": ['v-container', {
|
14836
15025
|
'v-container--fluid': props.fluid
|
14837
|
-
}]
|
15026
|
+
}, props.class],
|
15027
|
+
"style": props.style
|
14838
15028
|
}, slots));
|
14839
15029
|
return {};
|
14840
15030
|
}
|
@@ -14925,6 +15115,7 @@
|
|
14925
15115
|
default: null,
|
14926
15116
|
validator: str => ALIGN_SELF_VALUES.includes(str)
|
14927
15117
|
},
|
15118
|
+
...makeComponentProps(),
|
14928
15119
|
...makeTagProps()
|
14929
15120
|
},
|
14930
15121
|
setup(props, _ref) {
|
@@ -14955,7 +15146,8 @@
|
|
14955
15146
|
return classList;
|
14956
15147
|
});
|
14957
15148
|
return () => vue.h(props.tag, {
|
14958
|
-
class: classes.value
|
15149
|
+
class: [classes.value, props.class],
|
15150
|
+
style: props.style
|
14959
15151
|
}, slots.default?.());
|
14960
15152
|
}
|
14961
15153
|
});
|
@@ -15041,6 +15233,7 @@
|
|
15041
15233
|
validator: alignContentValidator
|
15042
15234
|
},
|
15043
15235
|
...alignContentProps,
|
15236
|
+
...makeComponentProps(),
|
15044
15237
|
...makeTagProps()
|
15045
15238
|
},
|
15046
15239
|
setup(props, _ref) {
|
@@ -15069,7 +15262,8 @@
|
|
15069
15262
|
return classList;
|
15070
15263
|
});
|
15071
15264
|
return () => vue.h(props.tag, {
|
15072
|
-
class: ['v-row', classes.value]
|
15265
|
+
class: ['v-row', classes.value, props.class],
|
15266
|
+
style: props.style
|
15073
15267
|
}, slots.default?.());
|
15074
15268
|
}
|
15075
15269
|
});
|
@@ -15113,6 +15307,7 @@
|
|
15113
15307
|
const VItemGroup = genericComponent()({
|
15114
15308
|
name: 'VItemGroup',
|
15115
15309
|
props: {
|
15310
|
+
...makeComponentProps(),
|
15116
15311
|
...makeGroupProps({
|
15117
15312
|
selectedClass: 'v-item--selected'
|
15118
15313
|
}),
|
@@ -15137,7 +15332,8 @@
|
|
15137
15332
|
selected
|
15138
15333
|
} = useGroup(props, VItemGroupSymbol);
|
15139
15334
|
return () => vue.createVNode(props.tag, {
|
15140
|
-
"class": ['v-item-group', themeClasses.value]
|
15335
|
+
"class": ['v-item-group', themeClasses.value, props.class],
|
15336
|
+
"style": props.style
|
15141
15337
|
}, {
|
15142
15338
|
default: () => [slots.default?.({
|
15143
15339
|
isSelected,
|
@@ -15187,7 +15383,10 @@
|
|
15187
15383
|
|
15188
15384
|
const VLayout = genericComponent()({
|
15189
15385
|
name: 'VLayout',
|
15190
|
-
props:
|
15386
|
+
props: {
|
15387
|
+
...makeComponentProps(),
|
15388
|
+
...makeLayoutProps()
|
15389
|
+
},
|
15191
15390
|
setup(props, _ref) {
|
15192
15391
|
let {
|
15193
15392
|
slots
|
@@ -15201,8 +15400,8 @@
|
|
15201
15400
|
} = createLayout(props);
|
15202
15401
|
useRender(() => vue.createVNode("div", {
|
15203
15402
|
"ref": layoutRef,
|
15204
|
-
"class": layoutClasses.value,
|
15205
|
-
"style": layoutStyles.value
|
15403
|
+
"class": [layoutClasses.value, props.class],
|
15404
|
+
"style": [layoutStyles.value, props.style]
|
15206
15405
|
}, [slots.default?.()]));
|
15207
15406
|
return {
|
15208
15407
|
getLayoutItem,
|
@@ -15225,6 +15424,7 @@
|
|
15225
15424
|
default: 300
|
15226
15425
|
},
|
15227
15426
|
modelValue: Boolean,
|
15427
|
+
...makeComponentProps(),
|
15228
15428
|
...makeLayoutItemProps()
|
15229
15429
|
},
|
15230
15430
|
setup(props, _ref) {
|
@@ -15243,8 +15443,8 @@
|
|
15243
15443
|
absolute: vue.toRef(props, 'absolute')
|
15244
15444
|
});
|
15245
15445
|
return () => vue.createVNode("div", {
|
15246
|
-
"class": ['v-layout-item'],
|
15247
|
-
"style": layoutItemStyles.value
|
15446
|
+
"class": ['v-layout-item', props.class],
|
15447
|
+
"style": [layoutItemStyles.value, props.style]
|
15248
15448
|
}, [slots.default?.()]);
|
15249
15449
|
}
|
15250
15450
|
});
|
@@ -15268,6 +15468,7 @@
|
|
15268
15468
|
threshold: undefined
|
15269
15469
|
})
|
15270
15470
|
},
|
15471
|
+
...makeComponentProps(),
|
15271
15472
|
...makeDimensionProps(),
|
15272
15473
|
...makeTagProps(),
|
15273
15474
|
...makeTransitionProps({
|
@@ -15290,8 +15491,8 @@
|
|
15290
15491
|
isActive.value = isIntersecting;
|
15291
15492
|
}
|
15292
15493
|
useRender(() => vue.withDirectives(vue.createVNode(props.tag, {
|
15293
|
-
"class":
|
15294
|
-
"style": dimensionStyles.value
|
15494
|
+
"class": ['v-lazy', props.class],
|
15495
|
+
"style": [dimensionStyles.value, props.style]
|
15295
15496
|
}, {
|
15296
15497
|
default: () => [isActive.value && vue.createVNode(MaybeTransition, {
|
15297
15498
|
"transition": props.transition,
|
@@ -15316,7 +15517,8 @@
|
|
15316
15517
|
rtl: {
|
15317
15518
|
type: Boolean,
|
15318
15519
|
default: undefined
|
15319
|
-
}
|
15520
|
+
},
|
15521
|
+
...makeComponentProps()
|
15320
15522
|
},
|
15321
15523
|
setup(props, _ref) {
|
15322
15524
|
let {
|
@@ -15326,7 +15528,8 @@
|
|
15326
15528
|
rtlClasses
|
15327
15529
|
} = provideLocale(props);
|
15328
15530
|
useRender(() => vue.createVNode("div", {
|
15329
|
-
"class": ['v-locale-provider', rtlClasses.value]
|
15531
|
+
"class": ['v-locale-provider', rtlClasses.value, props.class],
|
15532
|
+
"style": props.style
|
15330
15533
|
}, [slots.default?.()]));
|
15331
15534
|
return {};
|
15332
15535
|
}
|
@@ -15336,6 +15539,7 @@
|
|
15336
15539
|
name: 'VMain',
|
15337
15540
|
props: {
|
15338
15541
|
scrollable: Boolean,
|
15542
|
+
...makeComponentProps(),
|
15339
15543
|
...makeTagProps({
|
15340
15544
|
tag: 'main'
|
15341
15545
|
})
|
@@ -15353,8 +15557,8 @@
|
|
15353
15557
|
useRender(() => vue.createVNode(props.tag, {
|
15354
15558
|
"class": ['v-main', {
|
15355
15559
|
'v-main--scrollable': props.scrollable
|
15356
|
-
}],
|
15357
|
-
"style": [mainStyles.value, ssrBootStyles.value]
|
15560
|
+
}, props.class],
|
15561
|
+
"style": [mainStyles.value, ssrBootStyles.value, props.style]
|
15358
15562
|
}, {
|
15359
15563
|
default: () => [props.scrollable ? vue.createVNode("div", {
|
15360
15564
|
"class": "v-main__scroller"
|
@@ -15364,525 +15568,99 @@
|
|
15364
15568
|
}
|
15365
15569
|
});
|
15366
15570
|
|
15367
|
-
|
15368
|
-
|
15369
|
-
|
15370
|
-
|
15371
|
-
|
15372
|
-
|
15373
|
-
const
|
15374
|
-
const
|
15375
|
-
const
|
15376
|
-
|
15377
|
-
|
15571
|
+
function useSticky(_ref) {
|
15572
|
+
let {
|
15573
|
+
rootEl,
|
15574
|
+
isSticky,
|
15575
|
+
layoutItemStyles
|
15576
|
+
} = _ref;
|
15577
|
+
const isStuck = vue.ref(false);
|
15578
|
+
const stuckPosition = vue.ref(0);
|
15579
|
+
const stickyStyles = vue.computed(() => {
|
15580
|
+
const side = typeof isStuck.value === 'boolean' ? 'top' : isStuck.value;
|
15581
|
+
return [isSticky.value ? {
|
15582
|
+
top: 'auto',
|
15583
|
+
bottom: 'auto',
|
15584
|
+
height: undefined
|
15585
|
+
} : undefined, isStuck.value ? {
|
15586
|
+
[side]: convertToUnit(stuckPosition.value)
|
15587
|
+
} : {
|
15588
|
+
top: layoutItemStyles.value.top
|
15589
|
+
}];
|
15590
|
+
});
|
15591
|
+
vue.onMounted(() => {
|
15592
|
+
vue.watch(isSticky, val => {
|
15593
|
+
if (val) {
|
15594
|
+
window.addEventListener('scroll', onScroll, {
|
15595
|
+
passive: true
|
15596
|
+
});
|
15597
|
+
} else {
|
15598
|
+
window.removeEventListener('scroll', onScroll);
|
15599
|
+
}
|
15600
|
+
}, {
|
15601
|
+
immediate: true
|
15602
|
+
});
|
15603
|
+
});
|
15604
|
+
vue.onBeforeUnmount(() => {
|
15605
|
+
document.removeEventListener('scroll', onScroll);
|
15606
|
+
});
|
15607
|
+
let lastScrollTop = 0;
|
15608
|
+
function onScroll() {
|
15609
|
+
const direction = lastScrollTop > window.scrollY ? 'up' : 'down';
|
15610
|
+
const rect = rootEl.value.getBoundingClientRect();
|
15611
|
+
const layoutTop = parseFloat(layoutItemStyles.value.top ?? 0);
|
15612
|
+
const top = window.scrollY - Math.max(0, stuckPosition.value - layoutTop);
|
15613
|
+
const bottom = rect.height + Math.max(stuckPosition.value, layoutTop) - window.scrollY - window.innerHeight;
|
15614
|
+
if (rect.height < window.innerHeight - layoutTop) {
|
15615
|
+
isStuck.value = 'top';
|
15616
|
+
stuckPosition.value = layoutTop;
|
15617
|
+
} else if (direction === 'up' && isStuck.value === 'bottom' || direction === 'down' && isStuck.value === 'top') {
|
15618
|
+
stuckPosition.value = window.scrollY + rect.top;
|
15619
|
+
isStuck.value = true;
|
15620
|
+
} else if (direction === 'down' && bottom <= 0) {
|
15621
|
+
stuckPosition.value = 0;
|
15622
|
+
isStuck.value = 'bottom';
|
15623
|
+
} else if (direction === 'up' && top <= 0) {
|
15624
|
+
stuckPosition.value = rect.top + top;
|
15625
|
+
isStuck.value = 'top';
|
15626
|
+
}
|
15627
|
+
lastScrollTop = window.scrollY;
|
15378
15628
|
}
|
15379
|
-
|
15380
|
-
|
15629
|
+
return {
|
15630
|
+
isStuck,
|
15631
|
+
stickyStyles
|
15632
|
+
};
|
15633
|
+
}
|
15381
15634
|
|
15382
|
-
|
15383
|
-
|
15635
|
+
const HORIZON = 100; // ms
|
15636
|
+
const HISTORY = 20; // number of samples to keep
|
15384
15637
|
|
15385
|
-
|
15386
|
-
|
15387
|
-
|
15388
|
-
|
15389
|
-
|
15638
|
+
/** @see https://android.googlesource.com/platform/frameworks/native/+/master/libs/input/VelocityTracker.cpp */
|
15639
|
+
function kineticEnergyToVelocity(work) {
|
15640
|
+
const sqrt2 = 1.41421356237;
|
15641
|
+
return (work < 0 ? -1.0 : 1.0) * Math.sqrt(Math.abs(work)) * sqrt2;
|
15642
|
+
}
|
15643
|
+
|
15644
|
+
/**
|
15645
|
+
* Returns pointer velocity in px/s
|
15646
|
+
*/
|
15647
|
+
function calculateImpulseVelocity(samples) {
|
15648
|
+
// The input should be in reversed time order (most recent sample at index i=0)
|
15649
|
+
if (samples.length < 2) {
|
15650
|
+
// if 0 or 1 points, velocity is zero
|
15651
|
+
return 0;
|
15390
15652
|
}
|
15391
|
-
|
15392
|
-
|
15393
|
-
|
15394
|
-
|
15395
|
-
|
15396
|
-
|
15397
|
-
|
15398
|
-
|
15399
|
-
|
15400
|
-
|
15401
|
-
|
15402
|
-
}
|
15403
|
-
function date(value) {
|
15404
|
-
if (value == null) return null;
|
15405
|
-
if (value instanceof Date) return value;
|
15406
|
-
if (typeof value === 'string') {
|
15407
|
-
const parsed = Date.parse(value);
|
15408
|
-
if (!isNaN(parsed)) return new Date(parsed);
|
15409
|
-
}
|
15410
|
-
return null;
|
15411
|
-
}
|
15412
|
-
const firstDay = {
|
15413
|
-
'001': 1,
|
15414
|
-
AD: 1,
|
15415
|
-
AE: 6,
|
15416
|
-
AF: 6,
|
15417
|
-
AG: 0,
|
15418
|
-
AI: 1,
|
15419
|
-
AL: 1,
|
15420
|
-
AM: 1,
|
15421
|
-
AN: 1,
|
15422
|
-
AR: 1,
|
15423
|
-
AS: 0,
|
15424
|
-
AT: 1,
|
15425
|
-
AU: 0,
|
15426
|
-
AX: 1,
|
15427
|
-
AZ: 1,
|
15428
|
-
BA: 1,
|
15429
|
-
BD: 0,
|
15430
|
-
BE: 1,
|
15431
|
-
BG: 1,
|
15432
|
-
BH: 6,
|
15433
|
-
BM: 1,
|
15434
|
-
BN: 1,
|
15435
|
-
BR: 0,
|
15436
|
-
BS: 0,
|
15437
|
-
BT: 0,
|
15438
|
-
BW: 0,
|
15439
|
-
BY: 1,
|
15440
|
-
BZ: 0,
|
15441
|
-
CA: 0,
|
15442
|
-
CH: 1,
|
15443
|
-
CL: 1,
|
15444
|
-
CM: 1,
|
15445
|
-
CN: 0,
|
15446
|
-
CO: 0,
|
15447
|
-
CR: 1,
|
15448
|
-
CY: 1,
|
15449
|
-
CZ: 1,
|
15450
|
-
DE: 1,
|
15451
|
-
DJ: 6,
|
15452
|
-
DK: 1,
|
15453
|
-
DM: 0,
|
15454
|
-
DO: 0,
|
15455
|
-
DZ: 6,
|
15456
|
-
EC: 1,
|
15457
|
-
EE: 1,
|
15458
|
-
EG: 6,
|
15459
|
-
ES: 1,
|
15460
|
-
ET: 0,
|
15461
|
-
FI: 1,
|
15462
|
-
FJ: 1,
|
15463
|
-
FO: 1,
|
15464
|
-
FR: 1,
|
15465
|
-
GB: 1,
|
15466
|
-
'GB-alt-variant': 0,
|
15467
|
-
GE: 1,
|
15468
|
-
GF: 1,
|
15469
|
-
GP: 1,
|
15470
|
-
GR: 1,
|
15471
|
-
GT: 0,
|
15472
|
-
GU: 0,
|
15473
|
-
HK: 0,
|
15474
|
-
HN: 0,
|
15475
|
-
HR: 1,
|
15476
|
-
HU: 1,
|
15477
|
-
ID: 0,
|
15478
|
-
IE: 1,
|
15479
|
-
IL: 0,
|
15480
|
-
IN: 0,
|
15481
|
-
IQ: 6,
|
15482
|
-
IR: 6,
|
15483
|
-
IS: 1,
|
15484
|
-
IT: 1,
|
15485
|
-
JM: 0,
|
15486
|
-
JO: 6,
|
15487
|
-
JP: 0,
|
15488
|
-
KE: 0,
|
15489
|
-
KG: 1,
|
15490
|
-
KH: 0,
|
15491
|
-
KR: 0,
|
15492
|
-
KW: 6,
|
15493
|
-
KZ: 1,
|
15494
|
-
LA: 0,
|
15495
|
-
LB: 1,
|
15496
|
-
LI: 1,
|
15497
|
-
LK: 1,
|
15498
|
-
LT: 1,
|
15499
|
-
LU: 1,
|
15500
|
-
LV: 1,
|
15501
|
-
LY: 6,
|
15502
|
-
MC: 1,
|
15503
|
-
MD: 1,
|
15504
|
-
ME: 1,
|
15505
|
-
MH: 0,
|
15506
|
-
MK: 1,
|
15507
|
-
MM: 0,
|
15508
|
-
MN: 1,
|
15509
|
-
MO: 0,
|
15510
|
-
MQ: 1,
|
15511
|
-
MT: 0,
|
15512
|
-
MV: 5,
|
15513
|
-
MX: 0,
|
15514
|
-
MY: 1,
|
15515
|
-
MZ: 0,
|
15516
|
-
NI: 0,
|
15517
|
-
NL: 1,
|
15518
|
-
NO: 1,
|
15519
|
-
NP: 0,
|
15520
|
-
NZ: 1,
|
15521
|
-
OM: 6,
|
15522
|
-
PA: 0,
|
15523
|
-
PE: 0,
|
15524
|
-
PH: 0,
|
15525
|
-
PK: 0,
|
15526
|
-
PL: 1,
|
15527
|
-
PR: 0,
|
15528
|
-
PT: 0,
|
15529
|
-
PY: 0,
|
15530
|
-
QA: 6,
|
15531
|
-
RE: 1,
|
15532
|
-
RO: 1,
|
15533
|
-
RS: 1,
|
15534
|
-
RU: 1,
|
15535
|
-
SA: 0,
|
15536
|
-
SD: 6,
|
15537
|
-
SE: 1,
|
15538
|
-
SG: 0,
|
15539
|
-
SI: 1,
|
15540
|
-
SK: 1,
|
15541
|
-
SM: 1,
|
15542
|
-
SV: 0,
|
15543
|
-
SY: 6,
|
15544
|
-
TH: 0,
|
15545
|
-
TJ: 1,
|
15546
|
-
TM: 1,
|
15547
|
-
TR: 1,
|
15548
|
-
TT: 0,
|
15549
|
-
TW: 0,
|
15550
|
-
UA: 1,
|
15551
|
-
UM: 0,
|
15552
|
-
US: 0,
|
15553
|
-
UY: 1,
|
15554
|
-
UZ: 1,
|
15555
|
-
VA: 1,
|
15556
|
-
VE: 0,
|
15557
|
-
VI: 0,
|
15558
|
-
VN: 1,
|
15559
|
-
WS: 0,
|
15560
|
-
XK: 1,
|
15561
|
-
YE: 0,
|
15562
|
-
ZA: 0,
|
15563
|
-
ZW: 0
|
15564
|
-
};
|
15565
|
-
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
15566
|
-
function getWeekdays(locale) {
|
15567
|
-
const daysFromSunday = firstDay[locale.slice(-2).toUpperCase()];
|
15568
|
-
return createRange(7).map(i => {
|
15569
|
-
const weekday = new Date(sundayJanuarySecond2000);
|
15570
|
-
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
15571
|
-
return new Intl.DateTimeFormat(locale, {
|
15572
|
-
weekday: 'long'
|
15573
|
-
}).format(weekday);
|
15574
|
-
});
|
15575
|
-
}
|
15576
|
-
function format(value, formatString, locale) {
|
15577
|
-
const date = new Date(value);
|
15578
|
-
let options = {};
|
15579
|
-
switch (formatString) {
|
15580
|
-
case 'fullDateWithWeekday':
|
15581
|
-
options = {
|
15582
|
-
weekday: 'long',
|
15583
|
-
day: 'numeric',
|
15584
|
-
month: 'long',
|
15585
|
-
year: 'numeric'
|
15586
|
-
};
|
15587
|
-
break;
|
15588
|
-
case 'normalDateWithWeekday':
|
15589
|
-
options = {
|
15590
|
-
weekday: 'short',
|
15591
|
-
day: 'numeric',
|
15592
|
-
month: 'short',
|
15593
|
-
year: 'numeric'
|
15594
|
-
};
|
15595
|
-
break;
|
15596
|
-
case 'keyboardDate':
|
15597
|
-
options = {};
|
15598
|
-
break;
|
15599
|
-
case 'monthAndDate':
|
15600
|
-
options = {
|
15601
|
-
month: 'long',
|
15602
|
-
day: 'numeric'
|
15603
|
-
};
|
15604
|
-
break;
|
15605
|
-
case 'monthAndYear':
|
15606
|
-
options = {
|
15607
|
-
month: 'long',
|
15608
|
-
year: 'numeric'
|
15609
|
-
};
|
15610
|
-
break;
|
15611
|
-
default:
|
15612
|
-
options = {
|
15613
|
-
timeZone: 'UTC',
|
15614
|
-
timeZoneName: 'short'
|
15615
|
-
};
|
15616
|
-
}
|
15617
|
-
return new Intl.DateTimeFormat(locale, options).format(date);
|
15618
|
-
}
|
15619
|
-
function addDays(date, amount) {
|
15620
|
-
const d = new Date(date);
|
15621
|
-
d.setDate(d.getDate() + amount);
|
15622
|
-
return d;
|
15623
|
-
}
|
15624
|
-
function addMonths(date, amount) {
|
15625
|
-
const d = new Date(date);
|
15626
|
-
d.setMonth(d.getMonth() + amount);
|
15627
|
-
return d;
|
15628
|
-
}
|
15629
|
-
function getYear(date) {
|
15630
|
-
return date.getFullYear();
|
15631
|
-
}
|
15632
|
-
function getMonth(date) {
|
15633
|
-
return date.getMonth();
|
15634
|
-
}
|
15635
|
-
function startOfYear(date) {
|
15636
|
-
return new Date(date.getFullYear(), 0, 1);
|
15637
|
-
}
|
15638
|
-
function endOfYear(date) {
|
15639
|
-
return new Date(date.getFullYear(), 11, 31);
|
15640
|
-
}
|
15641
|
-
function getMondayOfFirstWeekOfYear(year) {
|
15642
|
-
return new Date(year, 0, 1);
|
15643
|
-
}
|
15644
|
-
|
15645
|
-
// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
|
15646
|
-
function getWeek(date) {
|
15647
|
-
let year = date.getFullYear();
|
15648
|
-
let d1w1 = getMondayOfFirstWeekOfYear(year);
|
15649
|
-
if (date < d1w1) {
|
15650
|
-
year = year - 1;
|
15651
|
-
d1w1 = getMondayOfFirstWeekOfYear(year);
|
15652
|
-
} else {
|
15653
|
-
const tv = getMondayOfFirstWeekOfYear(year + 1);
|
15654
|
-
if (date >= tv) {
|
15655
|
-
year = year + 1;
|
15656
|
-
d1w1 = tv;
|
15657
|
-
}
|
15658
|
-
}
|
15659
|
-
const diffTime = Math.abs(date.getTime() - d1w1.getTime());
|
15660
|
-
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
15661
|
-
return Math.floor(diffDays / 7) + 1;
|
15662
|
-
}
|
15663
|
-
function isWithinRange(date, range) {
|
15664
|
-
return isAfter(date, range[0]) && isBefore(date, range[1]);
|
15665
|
-
}
|
15666
|
-
function isValid(date) {
|
15667
|
-
const d = new Date(date);
|
15668
|
-
return d instanceof Date && !isNaN(d.getTime());
|
15669
|
-
}
|
15670
|
-
function isAfter(date, comparing) {
|
15671
|
-
return date.getTime() > comparing.getTime();
|
15672
|
-
}
|
15673
|
-
function isBefore(date, comparing) {
|
15674
|
-
return date.getTime() < comparing.getTime();
|
15675
|
-
}
|
15676
|
-
function isEqual(date, comparing) {
|
15677
|
-
return date.getTime() === comparing.getTime();
|
15678
|
-
}
|
15679
|
-
function isSameDay(date, comparing) {
|
15680
|
-
return date.getDate() === comparing.getDate() && date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
15681
|
-
}
|
15682
|
-
function isSameMonth(date, comparing) {
|
15683
|
-
return date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
15684
|
-
}
|
15685
|
-
function getDiff(date, comparing, unit) {
|
15686
|
-
const d = new Date(date);
|
15687
|
-
const c = new Date(comparing);
|
15688
|
-
if (unit === 'month') {
|
15689
|
-
return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12;
|
15690
|
-
}
|
15691
|
-
return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24));
|
15692
|
-
}
|
15693
|
-
function setYear(date, year) {
|
15694
|
-
const d = new Date(date);
|
15695
|
-
d.setFullYear(year);
|
15696
|
-
return d;
|
15697
|
-
}
|
15698
|
-
class VuetifyDateAdapter {
|
15699
|
-
constructor() {
|
15700
|
-
let locale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'en';
|
15701
|
-
this.locale = locale;
|
15702
|
-
}
|
15703
|
-
date(value) {
|
15704
|
-
return date(value);
|
15705
|
-
}
|
15706
|
-
addDays(date, amount) {
|
15707
|
-
return addDays(date, amount);
|
15708
|
-
}
|
15709
|
-
addMonths(date, amount) {
|
15710
|
-
return addMonths(date, amount);
|
15711
|
-
}
|
15712
|
-
getWeekArray(date) {
|
15713
|
-
return getWeekArray(date);
|
15714
|
-
}
|
15715
|
-
startOfMonth(date) {
|
15716
|
-
return startOfMonth(date);
|
15717
|
-
}
|
15718
|
-
endOfMonth(date) {
|
15719
|
-
return endOfMonth(date);
|
15720
|
-
}
|
15721
|
-
format(date, formatString) {
|
15722
|
-
return format(date, formatString, this.locale);
|
15723
|
-
}
|
15724
|
-
isEqual(date, comparing) {
|
15725
|
-
return isEqual(date, comparing);
|
15726
|
-
}
|
15727
|
-
isValid(date) {
|
15728
|
-
return isValid(date);
|
15729
|
-
}
|
15730
|
-
isWithinRange(date, range) {
|
15731
|
-
return isWithinRange(date, range);
|
15732
|
-
}
|
15733
|
-
isAfter(date, comparing) {
|
15734
|
-
return isAfter(date, comparing);
|
15735
|
-
}
|
15736
|
-
isSameDay(date, comparing) {
|
15737
|
-
return isSameDay(date, comparing);
|
15738
|
-
}
|
15739
|
-
isSameMonth(date, comparing) {
|
15740
|
-
return isSameMonth(date, comparing);
|
15741
|
-
}
|
15742
|
-
setYear(date, year) {
|
15743
|
-
return setYear(date, year);
|
15744
|
-
}
|
15745
|
-
getDiff(date, comparing, unit) {
|
15746
|
-
return getDiff(date, comparing, unit);
|
15747
|
-
}
|
15748
|
-
getWeek(date) {
|
15749
|
-
return getWeek(date);
|
15750
|
-
}
|
15751
|
-
getWeekdays() {
|
15752
|
-
return getWeekdays(this.locale);
|
15753
|
-
}
|
15754
|
-
getYear(date) {
|
15755
|
-
return getYear(date);
|
15756
|
-
}
|
15757
|
-
getMonth(date) {
|
15758
|
-
return getMonth(date);
|
15759
|
-
}
|
15760
|
-
startOfYear(date) {
|
15761
|
-
return startOfYear(date);
|
15762
|
-
}
|
15763
|
-
endOfYear(date) {
|
15764
|
-
return endOfYear(date);
|
15765
|
-
}
|
15766
|
-
}
|
15767
|
-
|
15768
|
-
// Composables
|
15769
|
-
|
15770
|
-
// Types
|
15771
|
-
|
15772
|
-
const DateAdapterSymbol = Symbol.for('vuetify:date-adapter');
|
15773
|
-
function createDate(options) {
|
15774
|
-
return options ?? {
|
15775
|
-
adapter: VuetifyDateAdapter
|
15776
|
-
};
|
15777
|
-
}
|
15778
|
-
function useDate(props) {
|
15779
|
-
const date = vue.inject(DateAdapterSymbol);
|
15780
|
-
const locale = useLocale();
|
15781
|
-
if (!date) throw new Error('[Vuetify] Could not find injected date');
|
15782
|
-
|
15783
|
-
// eslint-disable-next-line new-cap
|
15784
|
-
const instance = new date.adapter(locale.current.value);
|
15785
|
-
vue.watch(locale.current, val => {
|
15786
|
-
instance.locale = val;
|
15787
|
-
}, {
|
15788
|
-
immediate: true
|
15789
|
-
});
|
15790
|
-
return instance;
|
15791
|
-
}
|
15792
|
-
|
15793
|
-
function useSticky(_ref) {
|
15794
|
-
let {
|
15795
|
-
rootEl,
|
15796
|
-
isSticky,
|
15797
|
-
layoutItemStyles
|
15798
|
-
} = _ref;
|
15799
|
-
const isStuck = vue.ref(false);
|
15800
|
-
const stuckPosition = vue.ref(0);
|
15801
|
-
const stickyStyles = vue.computed(() => {
|
15802
|
-
const side = typeof isStuck.value === 'boolean' ? 'top' : isStuck.value;
|
15803
|
-
return [isSticky.value ? {
|
15804
|
-
top: 'auto',
|
15805
|
-
bottom: 'auto',
|
15806
|
-
height: undefined
|
15807
|
-
} : undefined, isStuck.value ? {
|
15808
|
-
[side]: convertToUnit(stuckPosition.value)
|
15809
|
-
} : {
|
15810
|
-
top: layoutItemStyles.value.top
|
15811
|
-
}];
|
15812
|
-
});
|
15813
|
-
vue.onMounted(() => {
|
15814
|
-
vue.watch(isSticky, val => {
|
15815
|
-
if (val) {
|
15816
|
-
window.addEventListener('scroll', onScroll, {
|
15817
|
-
passive: true
|
15818
|
-
});
|
15819
|
-
} else {
|
15820
|
-
window.removeEventListener('scroll', onScroll);
|
15821
|
-
}
|
15822
|
-
}, {
|
15823
|
-
immediate: true
|
15824
|
-
});
|
15825
|
-
});
|
15826
|
-
vue.onBeforeUnmount(() => {
|
15827
|
-
document.removeEventListener('scroll', onScroll);
|
15828
|
-
});
|
15829
|
-
let lastScrollTop = 0;
|
15830
|
-
function onScroll() {
|
15831
|
-
const direction = lastScrollTop > window.scrollY ? 'up' : 'down';
|
15832
|
-
const rect = rootEl.value.getBoundingClientRect();
|
15833
|
-
const layoutTop = parseFloat(layoutItemStyles.value.top ?? 0);
|
15834
|
-
const top = window.scrollY - Math.max(0, stuckPosition.value - layoutTop);
|
15835
|
-
const bottom = rect.height + Math.max(stuckPosition.value, layoutTop) - window.scrollY - window.innerHeight;
|
15836
|
-
if (rect.height < window.innerHeight - layoutTop) {
|
15837
|
-
isStuck.value = 'top';
|
15838
|
-
stuckPosition.value = layoutTop;
|
15839
|
-
} else if (direction === 'up' && isStuck.value === 'bottom' || direction === 'down' && isStuck.value === 'top') {
|
15840
|
-
stuckPosition.value = window.scrollY + rect.top;
|
15841
|
-
isStuck.value = true;
|
15842
|
-
} else if (direction === 'down' && bottom <= 0) {
|
15843
|
-
stuckPosition.value = 0;
|
15844
|
-
isStuck.value = 'bottom';
|
15845
|
-
} else if (direction === 'up' && top <= 0) {
|
15846
|
-
stuckPosition.value = rect.top + top;
|
15847
|
-
isStuck.value = 'top';
|
15848
|
-
}
|
15849
|
-
lastScrollTop = window.scrollY;
|
15850
|
-
}
|
15851
|
-
return {
|
15852
|
-
isStuck,
|
15853
|
-
stickyStyles
|
15854
|
-
};
|
15855
|
-
}
|
15856
|
-
|
15857
|
-
const HORIZON = 100; // ms
|
15858
|
-
const HISTORY = 20; // number of samples to keep
|
15859
|
-
|
15860
|
-
/** @see https://android.googlesource.com/platform/frameworks/native/+/master/libs/input/VelocityTracker.cpp */
|
15861
|
-
function kineticEnergyToVelocity(work) {
|
15862
|
-
const sqrt2 = 1.41421356237;
|
15863
|
-
return (work < 0 ? -1.0 : 1.0) * Math.sqrt(Math.abs(work)) * sqrt2;
|
15864
|
-
}
|
15865
|
-
|
15866
|
-
/**
|
15867
|
-
* Returns pointer velocity in px/s
|
15868
|
-
*/
|
15869
|
-
function calculateImpulseVelocity(samples) {
|
15870
|
-
// The input should be in reversed time order (most recent sample at index i=0)
|
15871
|
-
if (samples.length < 2) {
|
15872
|
-
// if 0 or 1 points, velocity is zero
|
15873
|
-
return 0;
|
15874
|
-
}
|
15875
|
-
// if (samples[1].t > samples[0].t) {
|
15876
|
-
// // Algorithm will still work, but not perfectly
|
15877
|
-
// consoleWarn('Samples provided to calculateImpulseVelocity in the wrong order')
|
15878
|
-
// }
|
15879
|
-
if (samples.length === 2) {
|
15880
|
-
// if 2 points, basic linear calculation
|
15881
|
-
if (samples[1].t === samples[0].t) {
|
15882
|
-
// consoleWarn(`Events have identical time stamps t=${samples[0].t}, setting velocity = 0`)
|
15883
|
-
return 0;
|
15884
|
-
}
|
15885
|
-
return (samples[1].d - samples[0].d) / (samples[1].t - samples[0].t);
|
15653
|
+
// if (samples[1].t > samples[0].t) {
|
15654
|
+
// // Algorithm will still work, but not perfectly
|
15655
|
+
// consoleWarn('Samples provided to calculateImpulseVelocity in the wrong order')
|
15656
|
+
// }
|
15657
|
+
if (samples.length === 2) {
|
15658
|
+
// if 2 points, basic linear calculation
|
15659
|
+
if (samples[1].t === samples[0].t) {
|
15660
|
+
// consoleWarn(`Events have identical time stamps t=${samples[0].t}, setting velocity = 0`)
|
15661
|
+
return 0;
|
15662
|
+
}
|
15663
|
+
return (samples[1].d - samples[0].d) / (samples[1].t - samples[0].t);
|
15886
15664
|
}
|
15887
15665
|
// Guaranteed to have at least 3 points here
|
15888
15666
|
// start with the oldest sample and go forward in time
|
@@ -16126,6 +15904,7 @@
|
|
16126
15904
|
},
|
16127
15905
|
sticky: Boolean,
|
16128
15906
|
...makeBorderProps(),
|
15907
|
+
...makeComponentProps(),
|
16129
15908
|
...makeElevationProps(),
|
16130
15909
|
...makeLayoutItemProps(),
|
16131
15910
|
...makeRoundedProps(),
|
@@ -16214,7 +15993,6 @@
|
|
16214
15993
|
});
|
16215
15994
|
const {
|
16216
15995
|
layoutItemStyles,
|
16217
|
-
layoutRect,
|
16218
15996
|
layoutItemScrimStyles
|
16219
15997
|
} = useLayoutItem({
|
16220
15998
|
id: props.name,
|
@@ -16244,12 +16022,6 @@
|
|
16244
16022
|
opacity: dragProgress.value * 0.2,
|
16245
16023
|
transition: 'none'
|
16246
16024
|
} : undefined),
|
16247
|
-
...(layoutRect.value ? {
|
16248
|
-
left: convertToUnit(layoutRect.value.left),
|
16249
|
-
right: convertToUnit(layoutRect.value.right),
|
16250
|
-
top: convertToUnit(layoutRect.value.top),
|
16251
|
-
bottom: convertToUnit(layoutRect.value.bottom)
|
16252
|
-
} : undefined),
|
16253
16025
|
...layoutItemScrimStyles.value
|
16254
16026
|
}));
|
16255
16027
|
provideDefaults({
|
@@ -16277,8 +16049,8 @@
|
|
16277
16049
|
'v-navigation-drawer--temporary': isTemporary.value,
|
16278
16050
|
'v-navigation-drawer--active': isActive.value,
|
16279
16051
|
'v-navigation-drawer--sticky': isSticky.value
|
16280
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value],
|
16281
|
-
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value]
|
16052
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
16053
|
+
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value, props.style]
|
16282
16054
|
}, attrs), {
|
16283
16055
|
default: () => [hasImage && vue.createVNode("div", {
|
16284
16056
|
"key": "image",
|
@@ -16407,6 +16179,7 @@
|
|
16407
16179
|
},
|
16408
16180
|
showFirstLastPage: Boolean,
|
16409
16181
|
...makeBorderProps(),
|
16182
|
+
...makeComponentProps(),
|
16410
16183
|
...makeDensityProps(),
|
16411
16184
|
...makeElevationProps(),
|
16412
16185
|
...makeRoundedProps(),
|
@@ -16603,7 +16376,8 @@
|
|
16603
16376
|
}
|
16604
16377
|
useRender(() => vue.createVNode(props.tag, {
|
16605
16378
|
"ref": resizeRef,
|
16606
|
-
"class": ['v-pagination', themeClasses.value],
|
16379
|
+
"class": ['v-pagination', themeClasses.value, props.class],
|
16380
|
+
"style": props.style,
|
16607
16381
|
"role": "navigation",
|
16608
16382
|
"aria-label": t(props.ariaLabel),
|
16609
16383
|
"onKeydown": onKeydown,
|
@@ -16662,7 +16436,8 @@
|
|
16662
16436
|
scale: {
|
16663
16437
|
type: [Number, String],
|
16664
16438
|
default: 0.5
|
16665
|
-
}
|
16439
|
+
},
|
16440
|
+
...makeComponentProps()
|
16666
16441
|
},
|
16667
16442
|
setup(props, _ref) {
|
16668
16443
|
let {
|
@@ -16724,7 +16499,8 @@
|
|
16724
16499
|
useRender(() => vue.createVNode(VImg, {
|
16725
16500
|
"class": ['v-parallax', {
|
16726
16501
|
'v-parallax--active': isIntersecting.value
|
16727
|
-
}],
|
16502
|
+
}, props.class],
|
16503
|
+
"style": props.style,
|
16728
16504
|
"ref": root,
|
16729
16505
|
"cover": true,
|
16730
16506
|
"onLoadstart": onScroll,
|
@@ -16749,7 +16525,8 @@
|
|
16749
16525
|
slots
|
16750
16526
|
} = _ref;
|
16751
16527
|
useRender(() => vue.createVNode(VSelectionControl, vue.mergeProps(props, {
|
16752
|
-
"class":
|
16528
|
+
"class": ['v-radio', props.class],
|
16529
|
+
"style": props.style,
|
16753
16530
|
"type": "radio"
|
16754
16531
|
}), slots));
|
16755
16532
|
return {};
|
@@ -16803,7 +16580,8 @@
|
|
16803
16580
|
}
|
16804
16581
|
}) : props.label;
|
16805
16582
|
return vue.createVNode(VInput, vue.mergeProps({
|
16806
|
-
"class":
|
16583
|
+
"class": ['v-radio-group', props.class],
|
16584
|
+
"style": props.style
|
16807
16585
|
}, inputAttrs, inputProps, {
|
16808
16586
|
"modelValue": model.value,
|
16809
16587
|
"onUpdate:modelValue": $event => model.value = $event,
|
@@ -16941,7 +16719,8 @@
|
|
16941
16719
|
'v-slider--focused': isFocused.value,
|
16942
16720
|
'v-slider--pressed': mousePressed.value,
|
16943
16721
|
'v-slider--disabled': props.disabled
|
16944
|
-
}],
|
16722
|
+
}, props.class],
|
16723
|
+
"style": props.style,
|
16945
16724
|
"ref": inputRef
|
16946
16725
|
}, inputProps, {
|
16947
16726
|
"focused": isFocused.value
|
@@ -17084,6 +16863,7 @@
|
|
17084
16863
|
validator: v => ['top', 'bottom'].includes(v)
|
17085
16864
|
},
|
17086
16865
|
ripple: Boolean,
|
16866
|
+
...makeComponentProps(),
|
17087
16867
|
...makeDensityProps(),
|
17088
16868
|
...makeSizeProps(),
|
17089
16869
|
...makeTagProps(),
|
@@ -17201,7 +16981,8 @@
|
|
17201
16981
|
"class": ['v-rating', {
|
17202
16982
|
'v-rating--hover': props.hover,
|
17203
16983
|
'v-rating--readonly': props.readonly
|
17204
|
-
}, themeClasses.value]
|
16984
|
+
}, themeClasses.value, props.class],
|
16985
|
+
"style": props.style
|
17205
16986
|
}, {
|
17206
16987
|
default: () => [vue.createVNode(VRatingItem, {
|
17207
16988
|
"value": 0,
|
@@ -17301,6 +17082,7 @@
|
|
17301
17082
|
type: [Boolean, String],
|
17302
17083
|
validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
|
17303
17084
|
},
|
17085
|
+
...makeComponentProps(),
|
17304
17086
|
...makeTagProps(),
|
17305
17087
|
...makeGroupProps({
|
17306
17088
|
selectedClass: 'v-slide-group-item--active'
|
@@ -17464,7 +17246,7 @@
|
|
17464
17246
|
function focus(location) {
|
17465
17247
|
if (!contentRef.value) return;
|
17466
17248
|
if (!location) {
|
17467
|
-
const focusable =
|
17249
|
+
const focusable = focusableChildren(contentRef.value);
|
17468
17250
|
focusable[0]?.focus();
|
17469
17251
|
} else if (location === 'next') {
|
17470
17252
|
const el = contentRef.value.querySelector(':focus')?.nextElementSibling;
|
@@ -17541,7 +17323,8 @@
|
|
17541
17323
|
'v-slide-group--vertical': !isHorizontal.value,
|
17542
17324
|
'v-slide-group--has-affixes': hasAffixes.value,
|
17543
17325
|
'v-slide-group--is-overflowing': isOverflowing.value
|
17544
|
-
}],
|
17326
|
+
}, props.class],
|
17327
|
+
"style": props.style,
|
17545
17328
|
"tabindex": isFocused.value || group.selected.value.length ? -1 : 0,
|
17546
17329
|
"onFocus": onFocus
|
17547
17330
|
}, {
|
@@ -17691,7 +17474,8 @@
|
|
17691
17474
|
'v-snackbar--active': isActive.value,
|
17692
17475
|
'v-snackbar--multi-line': props.multiLine && !props.vertical,
|
17693
17476
|
'v-snackbar--vertical': props.vertical
|
17694
|
-
}, positionClasses.value]
|
17477
|
+
}, positionClasses.value, props.class],
|
17478
|
+
"style": props.style
|
17695
17479
|
}, overlayProps, {
|
17696
17480
|
"modelValue": isActive.value,
|
17697
17481
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
@@ -17791,7 +17575,8 @@
|
|
17791
17575
|
'v-switch--inset': props.inset
|
17792
17576
|
}, {
|
17793
17577
|
'v-switch--indeterminate': indeterminate.value
|
17794
|
-
}, loaderClasses.value]
|
17578
|
+
}, loaderClasses.value, props.class],
|
17579
|
+
"style": props.style
|
17795
17580
|
}, inputAttrs, inputProps, {
|
17796
17581
|
"id": id.value,
|
17797
17582
|
"focused": isFocused.value
|
@@ -17860,6 +17645,7 @@
|
|
17860
17645
|
color: String,
|
17861
17646
|
height: [Number, String],
|
17862
17647
|
window: Boolean,
|
17648
|
+
...makeComponentProps(),
|
17863
17649
|
...makeElevationProps(),
|
17864
17650
|
...makeLayoutItemProps(),
|
17865
17651
|
...makeRoundedProps(),
|
@@ -17901,8 +17687,8 @@
|
|
17901
17687
|
useRender(() => vue.createVNode(props.tag, {
|
17902
17688
|
"class": ['v-system-bar', {
|
17903
17689
|
'v-system-bar--window': props.window
|
17904
|
-
}, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value],
|
17905
|
-
"style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value]
|
17690
|
+
}, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
17691
|
+
"style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, props.style]
|
17906
17692
|
}, slots));
|
17907
17693
|
return {};
|
17908
17694
|
}
|
@@ -17975,10 +17761,10 @@
|
|
17975
17761
|
useRender(() => {
|
17976
17762
|
const [btnProps] = VBtn.filterProps(props);
|
17977
17763
|
return vue.createVNode(VBtn, vue.mergeProps({
|
17978
|
-
"_as": "VTab",
|
17979
17764
|
"symbol": VTabsSymbol,
|
17980
17765
|
"ref": rootEl,
|
17981
|
-
"class": ['v-tab'],
|
17766
|
+
"class": ['v-tab', props.class],
|
17767
|
+
"style": props.style,
|
17982
17768
|
"tabindex": isSelected.value ? 0 : -1,
|
17983
17769
|
"role": "tab",
|
17984
17770
|
"aria-selected": String(isSelected.value),
|
@@ -18073,10 +17859,10 @@
|
|
18073
17859
|
'v-tabs--fixed-tabs': props.fixedTabs,
|
18074
17860
|
'v-tabs--grow': props.grow,
|
18075
17861
|
'v-tabs--stacked': props.stacked
|
18076
|
-
}, densityClasses.value, backgroundColorClasses.value],
|
17862
|
+
}, densityClasses.value, backgroundColorClasses.value, props.class],
|
18077
17863
|
"style": [{
|
18078
17864
|
'--v-tabs-height': convertToUnit(props.height)
|
18079
|
-
}, backgroundColorStyles.value],
|
17865
|
+
}, backgroundColorStyles.value, props.style],
|
18080
17866
|
"role": "tablist",
|
18081
17867
|
"symbol": VTabsSymbol
|
18082
17868
|
}), {
|
@@ -18096,6 +17882,7 @@
|
|
18096
17882
|
fixedFooter: Boolean,
|
18097
17883
|
height: [Number, String],
|
18098
17884
|
hover: Boolean,
|
17885
|
+
...makeComponentProps(),
|
18099
17886
|
...makeDensityProps(),
|
18100
17887
|
...makeTagProps(),
|
18101
17888
|
...makeThemeProps()
|
@@ -18118,7 +17905,8 @@
|
|
18118
17905
|
'v-table--has-top': !!slots.top,
|
18119
17906
|
'v-table--has-bottom': !!slots.bottom,
|
18120
17907
|
'v-table--hover': props.hover
|
18121
|
-
}, themeClasses.value, densityClasses.value]
|
17908
|
+
}, themeClasses.value, densityClasses.value, props.class],
|
17909
|
+
"style": props.style
|
18122
17910
|
}, {
|
18123
17911
|
default: () => [slots.top?.(), slots.default ? vue.createVNode("div", {
|
18124
17912
|
"class": "v-table__wrapper",
|
@@ -18197,7 +17985,7 @@
|
|
18197
17985
|
const vFieldRef = vue.ref();
|
18198
17986
|
const controlHeight = vue.ref('');
|
18199
17987
|
const textareaRef = vue.ref();
|
18200
|
-
const isActive = vue.computed(() => isFocused.value || props.
|
17988
|
+
const isActive = vue.computed(() => props.persistentPlaceholder || isFocused.value || props.active);
|
18201
17989
|
function onFocus() {
|
18202
17990
|
if (textareaRef.value !== document.activeElement) {
|
18203
17991
|
textareaRef.value?.focus();
|
@@ -18283,7 +18071,8 @@
|
|
18283
18071
|
'v-textarea--auto-grow': props.autoGrow,
|
18284
18072
|
'v-textarea--no-resize': props.noResize || props.autoGrow,
|
18285
18073
|
'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant)
|
18286
|
-
}]
|
18074
|
+
}, props.class],
|
18075
|
+
"style": props.style
|
18287
18076
|
}, rootAttrs, inputProps, {
|
18288
18077
|
"focused": isFocused.value
|
18289
18078
|
}), {
|
@@ -18367,6 +18156,7 @@
|
|
18367
18156
|
name: 'VThemeProvider',
|
18368
18157
|
props: {
|
18369
18158
|
withBackground: Boolean,
|
18159
|
+
...makeComponentProps(),
|
18370
18160
|
...makeThemeProps(),
|
18371
18161
|
...makeTagProps()
|
18372
18162
|
},
|
@@ -18380,7 +18170,8 @@
|
|
18380
18170
|
return () => {
|
18381
18171
|
if (!props.withBackground) return slots.default?.();
|
18382
18172
|
return vue.createVNode(props.tag, {
|
18383
|
-
"class": ['v-theme-provider', themeClasses.value]
|
18173
|
+
"class": ['v-theme-provider', themeClasses.value, props.class],
|
18174
|
+
"style": props.style
|
18384
18175
|
}, {
|
18385
18176
|
default: () => [slots.default?.()]
|
18386
18177
|
});
|
@@ -18425,6 +18216,7 @@
|
|
18425
18216
|
type: String,
|
18426
18217
|
validator: v => ['start', 'end', 'both'].includes(v)
|
18427
18218
|
},
|
18219
|
+
...makeComponentProps(),
|
18428
18220
|
...makeDensityProps(),
|
18429
18221
|
...makeTagProps(),
|
18430
18222
|
...makeThemeProps()
|
@@ -18468,10 +18260,10 @@
|
|
18468
18260
|
useRender(() => vue.createVNode(props.tag, {
|
18469
18261
|
"class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {
|
18470
18262
|
'v-timeline--inset-line': !!props.lineInset
|
18471
|
-
}, themeClasses.value, densityClasses.value, sideClasses.value],
|
18472
|
-
"style": {
|
18263
|
+
}, themeClasses.value, densityClasses.value, sideClasses.value, props.class],
|
18264
|
+
"style": [{
|
18473
18265
|
'--v-timeline-line-thickness': convertToUnit(props.lineThickness)
|
18474
|
-
}
|
18266
|
+
}, props.style]
|
18475
18267
|
}, slots));
|
18476
18268
|
return {};
|
18477
18269
|
}
|
@@ -18486,6 +18278,7 @@
|
|
18486
18278
|
icon: IconValue,
|
18487
18279
|
iconColor: String,
|
18488
18280
|
lineColor: String,
|
18281
|
+
...makeComponentProps(),
|
18489
18282
|
...makeRoundedProps(),
|
18490
18283
|
...makeSizeProps(),
|
18491
18284
|
...makeElevationProps()
|
@@ -18515,7 +18308,8 @@
|
|
18515
18308
|
useRender(() => vue.createVNode("div", {
|
18516
18309
|
"class": ['v-timeline-divider', {
|
18517
18310
|
'v-timeline-divider--fill-dot': props.fillDot
|
18518
|
-
}]
|
18311
|
+
}, props.class],
|
18312
|
+
"style": props.style
|
18519
18313
|
}, [vue.createVNode("div", {
|
18520
18314
|
"class": ['v-timeline-divider__before', lineColorClasses.value],
|
18521
18315
|
"style": lineColorStyles.value
|
@@ -18565,11 +18359,12 @@
|
|
18565
18359
|
icon: IconValue,
|
18566
18360
|
iconColor: String,
|
18567
18361
|
lineInset: [Number, String],
|
18568
|
-
...
|
18362
|
+
...makeComponentProps(),
|
18363
|
+
...makeDimensionProps(),
|
18569
18364
|
...makeElevationProps(),
|
18365
|
+
...makeRoundedProps(),
|
18570
18366
|
...makeSizeProps(),
|
18571
|
-
...makeTagProps()
|
18572
|
-
...makeDimensionProps()
|
18367
|
+
...makeTagProps()
|
18573
18368
|
},
|
18574
18369
|
setup(props, _ref) {
|
18575
18370
|
let {
|
@@ -18589,11 +18384,11 @@
|
|
18589
18384
|
useRender(() => vue.createVNode("div", {
|
18590
18385
|
"class": ['v-timeline-item', {
|
18591
18386
|
'v-timeline-item--fill-dot': props.fillDot
|
18592
|
-
}],
|
18593
|
-
"style": {
|
18387
|
+
}, props.class],
|
18388
|
+
"style": [{
|
18594
18389
|
'--v-timeline-dot-size': convertToUnit(dotSize.value),
|
18595
18390
|
'--v-timeline-line-inset': props.lineInset ? `calc(var(--v-timeline-dot-size) / 2 + ${convertToUnit(props.lineInset)})` : convertToUnit(0)
|
18596
|
-
}
|
18391
|
+
}, props.style]
|
18597
18392
|
}, [vue.createVNode("div", {
|
18598
18393
|
"class": "v-timeline-item__body",
|
18599
18394
|
"style": dimensionStyles.value
|
@@ -18669,7 +18464,8 @@
|
|
18669
18464
|
const [overlayProps] = VOverlay.filterProps(props);
|
18670
18465
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
18671
18466
|
"ref": overlay,
|
18672
|
-
"class": ['v-tooltip'],
|
18467
|
+
"class": ['v-tooltip', props.class],
|
18468
|
+
"style": props.style,
|
18673
18469
|
"id": id.value
|
18674
18470
|
}, overlayProps, {
|
18675
18471
|
"modelValue": isActive.value,
|
@@ -18717,7 +18513,8 @@
|
|
18717
18513
|
const VVirtualScrollItem = genericComponent()({
|
18718
18514
|
name: 'VVirtualScrollItem',
|
18719
18515
|
props: {
|
18720
|
-
dynamicHeight: Boolean
|
18516
|
+
dynamicHeight: Boolean,
|
18517
|
+
...makeComponentProps()
|
18721
18518
|
},
|
18722
18519
|
emits: {
|
18723
18520
|
'update:height': height => true
|
@@ -18744,7 +18541,8 @@
|
|
18744
18541
|
vue.onUpdated(updateHeight);
|
18745
18542
|
useRender(() => vue.createVNode("div", {
|
18746
18543
|
"ref": props.dynamicHeight ? resizeRef : undefined,
|
18747
|
-
"class":
|
18544
|
+
"class": ['v-virtual-scroll__item', props.class],
|
18545
|
+
"style": props.style
|
18748
18546
|
}, [slots.default?.()]));
|
18749
18547
|
}
|
18750
18548
|
});
|
@@ -18761,7 +18559,7 @@
|
|
18761
18559
|
default: () => []
|
18762
18560
|
},
|
18763
18561
|
itemHeight: [Number, String],
|
18764
|
-
|
18562
|
+
...makeComponentProps(),
|
18765
18563
|
...makeDimensionProps()
|
18766
18564
|
},
|
18767
18565
|
setup(props, _ref) {
|
@@ -18788,7 +18586,7 @@
|
|
18788
18586
|
const sizeMap = new Map();
|
18789
18587
|
let sizes = createRange(props.items.length).map(() => itemHeight.value);
|
18790
18588
|
const visibleItems = vue.computed(() => {
|
18791
|
-
return
|
18589
|
+
return Math.max(12, Math.ceil((contentRect.value?.height ?? display.height.value) / itemHeight.value * 1.7 + 1));
|
18792
18590
|
});
|
18793
18591
|
function handleItemResize(index, height) {
|
18794
18592
|
itemHeight.value = Math.max(itemHeight.value, height);
|
@@ -18799,20 +18597,13 @@
|
|
18799
18597
|
return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0);
|
18800
18598
|
}
|
18801
18599
|
function calculateMidPointIndex(scrollTop) {
|
18802
|
-
|
18803
|
-
let
|
18804
|
-
|
18805
|
-
|
18806
|
-
|
18807
|
-
if (middleOffset === scrollTop) {
|
18808
|
-
return middle;
|
18809
|
-
} else if (middleOffset < scrollTop) {
|
18810
|
-
start = middle + 1;
|
18811
|
-
} else if (middleOffset > scrollTop) {
|
18812
|
-
end = middle - 1;
|
18813
|
-
}
|
18600
|
+
const end = props.items.length;
|
18601
|
+
let middle = 0;
|
18602
|
+
let middleOffset = 0;
|
18603
|
+
while (middleOffset < scrollTop && middle < end) {
|
18604
|
+
middleOffset += sizes[middle++] || itemHeight.value;
|
18814
18605
|
}
|
18815
|
-
return
|
18606
|
+
return middle - 1;
|
18816
18607
|
}
|
18817
18608
|
let lastScrollTop = 0;
|
18818
18609
|
function handleScroll() {
|
@@ -18834,8 +18625,12 @@
|
|
18834
18625
|
const offset = calculateOffset(index);
|
18835
18626
|
rootEl.value.scrollTop = offset;
|
18836
18627
|
}
|
18628
|
+
const items = vue.computed(() => props.items.map((item, index) => ({
|
18629
|
+
raw: item,
|
18630
|
+
index
|
18631
|
+
})));
|
18837
18632
|
const last = vue.computed(() => Math.min(props.items.length, first.value + visibleItems.value));
|
18838
|
-
const computedItems = vue.computed(() =>
|
18633
|
+
const computedItems = vue.computed(() => items.value.slice(first.value, last.value));
|
18839
18634
|
const paddingTop = vue.computed(() => calculateOffset(first.value));
|
18840
18635
|
const paddingBottom = vue.computed(() => calculateOffset(props.items.length) - calculateOffset(last.value));
|
18841
18636
|
const {
|
@@ -18860,23 +18655,23 @@
|
|
18860
18655
|
});
|
18861
18656
|
useRender(() => vue.createVNode("div", {
|
18862
18657
|
"ref": rootEl,
|
18863
|
-
"class":
|
18658
|
+
"class": ['v-virtual-scroll', props.class],
|
18864
18659
|
"onScroll": handleScroll,
|
18865
|
-
"style": dimensionStyles.value
|
18660
|
+
"style": [dimensionStyles.value, props.style]
|
18866
18661
|
}, [vue.createVNode("div", {
|
18867
18662
|
"class": "v-virtual-scroll__container",
|
18868
18663
|
"style": {
|
18869
18664
|
paddingTop: convertToUnit(paddingTop.value),
|
18870
18665
|
paddingBottom: convertToUnit(paddingBottom.value)
|
18871
18666
|
}
|
18872
|
-
}, [computedItems.value.map(
|
18873
|
-
"key": index,
|
18667
|
+
}, [computedItems.value.map(item => vue.createVNode(VVirtualScrollItem, {
|
18668
|
+
"key": item.index,
|
18874
18669
|
"dynamicHeight": !props.itemHeight,
|
18875
|
-
"onUpdate:height": height => handleItemResize(index
|
18670
|
+
"onUpdate:height": height => handleItemResize(item.index, height)
|
18876
18671
|
}, {
|
18877
18672
|
default: () => [slots.default?.({
|
18878
|
-
item,
|
18879
|
-
index: index
|
18673
|
+
item: item.raw,
|
18674
|
+
index: item.index
|
18880
18675
|
})]
|
18881
18676
|
}))])]));
|
18882
18677
|
return {
|
@@ -19024,130 +18819,542 @@
|
|
19024
18819
|
|
19025
18820
|
// Types
|
19026
18821
|
|
19027
|
-
function mounted$2(el, binding) {
|
19028
|
-
const modifiers = binding.modifiers || {};
|
19029
|
-
const value = binding.value;
|
19030
|
-
const {
|
19031
|
-
once,
|
19032
|
-
immediate,
|
19033
|
-
...modifierKeys
|
19034
|
-
} = modifiers;
|
19035
|
-
const defaultValue = !Object.keys(modifierKeys).length;
|
19036
|
-
const {
|
19037
|
-
handler,
|
19038
|
-
options
|
19039
|
-
} = typeof value === 'object' ? value : {
|
19040
|
-
handler: value,
|
19041
|
-
options: {
|
19042
|
-
attributes: modifierKeys?.attr ?? defaultValue,
|
19043
|
-
characterData: modifierKeys?.char ?? defaultValue,
|
19044
|
-
childList: modifierKeys?.child ?? defaultValue,
|
19045
|
-
subtree: modifierKeys?.sub ?? defaultValue
|
18822
|
+
function mounted$2(el, binding) {
|
18823
|
+
const modifiers = binding.modifiers || {};
|
18824
|
+
const value = binding.value;
|
18825
|
+
const {
|
18826
|
+
once,
|
18827
|
+
immediate,
|
18828
|
+
...modifierKeys
|
18829
|
+
} = modifiers;
|
18830
|
+
const defaultValue = !Object.keys(modifierKeys).length;
|
18831
|
+
const {
|
18832
|
+
handler,
|
18833
|
+
options
|
18834
|
+
} = typeof value === 'object' ? value : {
|
18835
|
+
handler: value,
|
18836
|
+
options: {
|
18837
|
+
attributes: modifierKeys?.attr ?? defaultValue,
|
18838
|
+
characterData: modifierKeys?.char ?? defaultValue,
|
18839
|
+
childList: modifierKeys?.child ?? defaultValue,
|
18840
|
+
subtree: modifierKeys?.sub ?? defaultValue
|
18841
|
+
}
|
18842
|
+
};
|
18843
|
+
const observer = new MutationObserver(function () {
|
18844
|
+
let mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
18845
|
+
let observer = arguments.length > 1 ? arguments[1] : undefined;
|
18846
|
+
handler?.(mutations, observer);
|
18847
|
+
if (once) unmounted$2(el, binding);
|
18848
|
+
});
|
18849
|
+
if (immediate) handler?.([], observer);
|
18850
|
+
el._mutate = Object(el._mutate);
|
18851
|
+
el._mutate[binding.instance.$.uid] = {
|
18852
|
+
observer
|
18853
|
+
};
|
18854
|
+
observer.observe(el, options);
|
18855
|
+
}
|
18856
|
+
function unmounted$2(el, binding) {
|
18857
|
+
if (!el._mutate?.[binding.instance.$.uid]) return;
|
18858
|
+
el._mutate[binding.instance.$.uid].observer.disconnect();
|
18859
|
+
delete el._mutate[binding.instance.$.uid];
|
18860
|
+
}
|
18861
|
+
const Mutate = {
|
18862
|
+
mounted: mounted$2,
|
18863
|
+
unmounted: unmounted$2
|
18864
|
+
};
|
18865
|
+
|
18866
|
+
function mounted$1(el, binding) {
|
18867
|
+
const handler = binding.value;
|
18868
|
+
const options = {
|
18869
|
+
passive: !binding.modifiers?.active
|
18870
|
+
};
|
18871
|
+
window.addEventListener('resize', handler, options);
|
18872
|
+
el._onResize = Object(el._onResize);
|
18873
|
+
el._onResize[binding.instance.$.uid] = {
|
18874
|
+
handler,
|
18875
|
+
options
|
18876
|
+
};
|
18877
|
+
if (!binding.modifiers?.quiet) {
|
18878
|
+
handler();
|
18879
|
+
}
|
18880
|
+
}
|
18881
|
+
function unmounted$1(el, binding) {
|
18882
|
+
if (!el._onResize?.[binding.instance.$.uid]) return;
|
18883
|
+
const {
|
18884
|
+
handler,
|
18885
|
+
options
|
18886
|
+
} = el._onResize[binding.instance.$.uid];
|
18887
|
+
window.removeEventListener('resize', handler, options);
|
18888
|
+
delete el._onResize[binding.instance.$.uid];
|
18889
|
+
}
|
18890
|
+
const Resize = {
|
18891
|
+
mounted: mounted$1,
|
18892
|
+
unmounted: unmounted$1
|
18893
|
+
};
|
18894
|
+
|
18895
|
+
function mounted(el, binding) {
|
18896
|
+
const {
|
18897
|
+
self = false
|
18898
|
+
} = binding.modifiers ?? {};
|
18899
|
+
const value = binding.value;
|
18900
|
+
const options = typeof value === 'object' && value.options || {
|
18901
|
+
passive: true
|
18902
|
+
};
|
18903
|
+
const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler;
|
18904
|
+
const target = self ? el : binding.arg ? document.querySelector(binding.arg) : window;
|
18905
|
+
if (!target) return;
|
18906
|
+
target.addEventListener('scroll', handler, options);
|
18907
|
+
el._onScroll = Object(el._onScroll);
|
18908
|
+
el._onScroll[binding.instance.$.uid] = {
|
18909
|
+
handler,
|
18910
|
+
options,
|
18911
|
+
// Don't reference self
|
18912
|
+
target: self ? undefined : target
|
18913
|
+
};
|
18914
|
+
}
|
18915
|
+
function unmounted(el, binding) {
|
18916
|
+
if (!el._onScroll?.[binding.instance.$.uid]) return;
|
18917
|
+
const {
|
18918
|
+
handler,
|
18919
|
+
options,
|
18920
|
+
target = el
|
18921
|
+
} = el._onScroll[binding.instance.$.uid];
|
18922
|
+
target.removeEventListener('scroll', handler, options);
|
18923
|
+
delete el._onScroll[binding.instance.$.uid];
|
18924
|
+
}
|
18925
|
+
function updated(el, binding) {
|
18926
|
+
if (binding.value === binding.oldValue) return;
|
18927
|
+
unmounted(el, binding);
|
18928
|
+
mounted(el, binding);
|
18929
|
+
}
|
18930
|
+
const Scroll = {
|
18931
|
+
mounted,
|
18932
|
+
unmounted,
|
18933
|
+
updated
|
18934
|
+
};
|
18935
|
+
|
18936
|
+
var directives = /*#__PURE__*/Object.freeze({
|
18937
|
+
__proto__: null,
|
18938
|
+
ClickOutside: ClickOutside,
|
18939
|
+
Intersect: Intersect,
|
18940
|
+
Mutate: Mutate,
|
18941
|
+
Resize: Resize,
|
18942
|
+
Ripple: Ripple,
|
18943
|
+
Scroll: Scroll,
|
18944
|
+
Touch: Touch
|
18945
|
+
});
|
18946
|
+
|
18947
|
+
// Utilities
|
18948
|
+
|
18949
|
+
// Types
|
18950
|
+
|
18951
|
+
function getWeekArray(date) {
|
18952
|
+
let currentWeek = [];
|
18953
|
+
const weeks = [];
|
18954
|
+
const firstDayOfMonth = startOfMonth(date);
|
18955
|
+
const lastDayOfMonth = endOfMonth(date);
|
18956
|
+
for (let i = 0; i < firstDayOfMonth.getDay(); i++) {
|
18957
|
+
currentWeek.push(null);
|
18958
|
+
}
|
18959
|
+
for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {
|
18960
|
+
const day = new Date(date.getFullYear(), date.getMonth(), i);
|
18961
|
+
|
18962
|
+
// Add the day to the current week
|
18963
|
+
currentWeek.push(day);
|
18964
|
+
|
18965
|
+
// If the current week has 7 days, add it to the weeks array and start a new week
|
18966
|
+
if (currentWeek.length === 7) {
|
18967
|
+
weeks.push(currentWeek);
|
18968
|
+
currentWeek = [];
|
19046
18969
|
}
|
19047
|
-
}
|
19048
|
-
|
19049
|
-
|
19050
|
-
|
19051
|
-
|
19052
|
-
|
18970
|
+
}
|
18971
|
+
for (let i = currentWeek.length; i < 7; i++) {
|
18972
|
+
currentWeek.push(null);
|
18973
|
+
}
|
18974
|
+
weeks.push(currentWeek);
|
18975
|
+
return weeks;
|
18976
|
+
}
|
18977
|
+
function startOfMonth(date) {
|
18978
|
+
return new Date(date.getFullYear(), date.getMonth(), 1);
|
18979
|
+
}
|
18980
|
+
function endOfMonth(date) {
|
18981
|
+
return new Date(date.getFullYear(), date.getMonth() + 1, 0);
|
18982
|
+
}
|
18983
|
+
function date(value) {
|
18984
|
+
if (value == null) return null;
|
18985
|
+
if (value instanceof Date) return value;
|
18986
|
+
if (typeof value === 'string') {
|
18987
|
+
const parsed = Date.parse(value);
|
18988
|
+
if (!isNaN(parsed)) return new Date(parsed);
|
18989
|
+
}
|
18990
|
+
return null;
|
18991
|
+
}
|
18992
|
+
const firstDay = {
|
18993
|
+
'001': 1,
|
18994
|
+
AD: 1,
|
18995
|
+
AE: 6,
|
18996
|
+
AF: 6,
|
18997
|
+
AG: 0,
|
18998
|
+
AI: 1,
|
18999
|
+
AL: 1,
|
19000
|
+
AM: 1,
|
19001
|
+
AN: 1,
|
19002
|
+
AR: 1,
|
19003
|
+
AS: 0,
|
19004
|
+
AT: 1,
|
19005
|
+
AU: 0,
|
19006
|
+
AX: 1,
|
19007
|
+
AZ: 1,
|
19008
|
+
BA: 1,
|
19009
|
+
BD: 0,
|
19010
|
+
BE: 1,
|
19011
|
+
BG: 1,
|
19012
|
+
BH: 6,
|
19013
|
+
BM: 1,
|
19014
|
+
BN: 1,
|
19015
|
+
BR: 0,
|
19016
|
+
BS: 0,
|
19017
|
+
BT: 0,
|
19018
|
+
BW: 0,
|
19019
|
+
BY: 1,
|
19020
|
+
BZ: 0,
|
19021
|
+
CA: 0,
|
19022
|
+
CH: 1,
|
19023
|
+
CL: 1,
|
19024
|
+
CM: 1,
|
19025
|
+
CN: 0,
|
19026
|
+
CO: 0,
|
19027
|
+
CR: 1,
|
19028
|
+
CY: 1,
|
19029
|
+
CZ: 1,
|
19030
|
+
DE: 1,
|
19031
|
+
DJ: 6,
|
19032
|
+
DK: 1,
|
19033
|
+
DM: 0,
|
19034
|
+
DO: 0,
|
19035
|
+
DZ: 6,
|
19036
|
+
EC: 1,
|
19037
|
+
EE: 1,
|
19038
|
+
EG: 6,
|
19039
|
+
ES: 1,
|
19040
|
+
ET: 0,
|
19041
|
+
FI: 1,
|
19042
|
+
FJ: 1,
|
19043
|
+
FO: 1,
|
19044
|
+
FR: 1,
|
19045
|
+
GB: 1,
|
19046
|
+
'GB-alt-variant': 0,
|
19047
|
+
GE: 1,
|
19048
|
+
GF: 1,
|
19049
|
+
GP: 1,
|
19050
|
+
GR: 1,
|
19051
|
+
GT: 0,
|
19052
|
+
GU: 0,
|
19053
|
+
HK: 0,
|
19054
|
+
HN: 0,
|
19055
|
+
HR: 1,
|
19056
|
+
HU: 1,
|
19057
|
+
ID: 0,
|
19058
|
+
IE: 1,
|
19059
|
+
IL: 0,
|
19060
|
+
IN: 0,
|
19061
|
+
IQ: 6,
|
19062
|
+
IR: 6,
|
19063
|
+
IS: 1,
|
19064
|
+
IT: 1,
|
19065
|
+
JM: 0,
|
19066
|
+
JO: 6,
|
19067
|
+
JP: 0,
|
19068
|
+
KE: 0,
|
19069
|
+
KG: 1,
|
19070
|
+
KH: 0,
|
19071
|
+
KR: 0,
|
19072
|
+
KW: 6,
|
19073
|
+
KZ: 1,
|
19074
|
+
LA: 0,
|
19075
|
+
LB: 1,
|
19076
|
+
LI: 1,
|
19077
|
+
LK: 1,
|
19078
|
+
LT: 1,
|
19079
|
+
LU: 1,
|
19080
|
+
LV: 1,
|
19081
|
+
LY: 6,
|
19082
|
+
MC: 1,
|
19083
|
+
MD: 1,
|
19084
|
+
ME: 1,
|
19085
|
+
MH: 0,
|
19086
|
+
MK: 1,
|
19087
|
+
MM: 0,
|
19088
|
+
MN: 1,
|
19089
|
+
MO: 0,
|
19090
|
+
MQ: 1,
|
19091
|
+
MT: 0,
|
19092
|
+
MV: 5,
|
19093
|
+
MX: 0,
|
19094
|
+
MY: 1,
|
19095
|
+
MZ: 0,
|
19096
|
+
NI: 0,
|
19097
|
+
NL: 1,
|
19098
|
+
NO: 1,
|
19099
|
+
NP: 0,
|
19100
|
+
NZ: 1,
|
19101
|
+
OM: 6,
|
19102
|
+
PA: 0,
|
19103
|
+
PE: 0,
|
19104
|
+
PH: 0,
|
19105
|
+
PK: 0,
|
19106
|
+
PL: 1,
|
19107
|
+
PR: 0,
|
19108
|
+
PT: 0,
|
19109
|
+
PY: 0,
|
19110
|
+
QA: 6,
|
19111
|
+
RE: 1,
|
19112
|
+
RO: 1,
|
19113
|
+
RS: 1,
|
19114
|
+
RU: 1,
|
19115
|
+
SA: 0,
|
19116
|
+
SD: 6,
|
19117
|
+
SE: 1,
|
19118
|
+
SG: 0,
|
19119
|
+
SI: 1,
|
19120
|
+
SK: 1,
|
19121
|
+
SM: 1,
|
19122
|
+
SV: 0,
|
19123
|
+
SY: 6,
|
19124
|
+
TH: 0,
|
19125
|
+
TJ: 1,
|
19126
|
+
TM: 1,
|
19127
|
+
TR: 1,
|
19128
|
+
TT: 0,
|
19129
|
+
TW: 0,
|
19130
|
+
UA: 1,
|
19131
|
+
UM: 0,
|
19132
|
+
US: 0,
|
19133
|
+
UY: 1,
|
19134
|
+
UZ: 1,
|
19135
|
+
VA: 1,
|
19136
|
+
VE: 0,
|
19137
|
+
VI: 0,
|
19138
|
+
VN: 1,
|
19139
|
+
WS: 0,
|
19140
|
+
XK: 1,
|
19141
|
+
YE: 0,
|
19142
|
+
ZA: 0,
|
19143
|
+
ZW: 0
|
19144
|
+
};
|
19145
|
+
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
19146
|
+
function getWeekdays(locale) {
|
19147
|
+
const daysFromSunday = firstDay[locale.slice(-2).toUpperCase()];
|
19148
|
+
return createRange(7).map(i => {
|
19149
|
+
const weekday = new Date(sundayJanuarySecond2000);
|
19150
|
+
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
19151
|
+
return new Intl.DateTimeFormat(locale, {
|
19152
|
+
weekday: 'long'
|
19153
|
+
}).format(weekday);
|
19053
19154
|
});
|
19054
|
-
if (immediate) handler?.([], observer);
|
19055
|
-
el._mutate = Object(el._mutate);
|
19056
|
-
el._mutate[binding.instance.$.uid] = {
|
19057
|
-
observer
|
19058
|
-
};
|
19059
|
-
observer.observe(el, options);
|
19060
19155
|
}
|
19061
|
-
function
|
19062
|
-
|
19063
|
-
|
19064
|
-
|
19156
|
+
function format(value, formatString, locale) {
|
19157
|
+
const date = new Date(value);
|
19158
|
+
let options = {};
|
19159
|
+
switch (formatString) {
|
19160
|
+
case 'fullDateWithWeekday':
|
19161
|
+
options = {
|
19162
|
+
weekday: 'long',
|
19163
|
+
day: 'numeric',
|
19164
|
+
month: 'long',
|
19165
|
+
year: 'numeric'
|
19166
|
+
};
|
19167
|
+
break;
|
19168
|
+
case 'normalDateWithWeekday':
|
19169
|
+
options = {
|
19170
|
+
weekday: 'short',
|
19171
|
+
day: 'numeric',
|
19172
|
+
month: 'short',
|
19173
|
+
year: 'numeric'
|
19174
|
+
};
|
19175
|
+
break;
|
19176
|
+
case 'keyboardDate':
|
19177
|
+
options = {};
|
19178
|
+
break;
|
19179
|
+
case 'monthAndDate':
|
19180
|
+
options = {
|
19181
|
+
month: 'long',
|
19182
|
+
day: 'numeric'
|
19183
|
+
};
|
19184
|
+
break;
|
19185
|
+
case 'monthAndYear':
|
19186
|
+
options = {
|
19187
|
+
month: 'long',
|
19188
|
+
year: 'numeric'
|
19189
|
+
};
|
19190
|
+
break;
|
19191
|
+
default:
|
19192
|
+
options = {
|
19193
|
+
timeZone: 'UTC',
|
19194
|
+
timeZoneName: 'short'
|
19195
|
+
};
|
19196
|
+
}
|
19197
|
+
return new Intl.DateTimeFormat(locale, options).format(date);
|
19198
|
+
}
|
19199
|
+
function addDays(date, amount) {
|
19200
|
+
const d = new Date(date);
|
19201
|
+
d.setDate(d.getDate() + amount);
|
19202
|
+
return d;
|
19203
|
+
}
|
19204
|
+
function addMonths(date, amount) {
|
19205
|
+
const d = new Date(date);
|
19206
|
+
d.setMonth(d.getMonth() + amount);
|
19207
|
+
return d;
|
19208
|
+
}
|
19209
|
+
function getYear(date) {
|
19210
|
+
return date.getFullYear();
|
19211
|
+
}
|
19212
|
+
function getMonth(date) {
|
19213
|
+
return date.getMonth();
|
19214
|
+
}
|
19215
|
+
function startOfYear(date) {
|
19216
|
+
return new Date(date.getFullYear(), 0, 1);
|
19217
|
+
}
|
19218
|
+
function endOfYear(date) {
|
19219
|
+
return new Date(date.getFullYear(), 11, 31);
|
19220
|
+
}
|
19221
|
+
function getMondayOfFirstWeekOfYear(year) {
|
19222
|
+
return new Date(year, 0, 1);
|
19065
19223
|
}
|
19066
|
-
const Mutate = {
|
19067
|
-
mounted: mounted$2,
|
19068
|
-
unmounted: unmounted$2
|
19069
|
-
};
|
19070
19224
|
|
19071
|
-
|
19072
|
-
|
19073
|
-
|
19074
|
-
|
19075
|
-
|
19076
|
-
|
19077
|
-
|
19078
|
-
|
19079
|
-
|
19080
|
-
|
19081
|
-
|
19082
|
-
|
19083
|
-
|
19225
|
+
// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
|
19226
|
+
function getWeek(date) {
|
19227
|
+
let year = date.getFullYear();
|
19228
|
+
let d1w1 = getMondayOfFirstWeekOfYear(year);
|
19229
|
+
if (date < d1w1) {
|
19230
|
+
year = year - 1;
|
19231
|
+
d1w1 = getMondayOfFirstWeekOfYear(year);
|
19232
|
+
} else {
|
19233
|
+
const tv = getMondayOfFirstWeekOfYear(year + 1);
|
19234
|
+
if (date >= tv) {
|
19235
|
+
year = year + 1;
|
19236
|
+
d1w1 = tv;
|
19237
|
+
}
|
19084
19238
|
}
|
19239
|
+
const diffTime = Math.abs(date.getTime() - d1w1.getTime());
|
19240
|
+
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
19241
|
+
return Math.floor(diffDays / 7) + 1;
|
19085
19242
|
}
|
19086
|
-
function
|
19087
|
-
|
19088
|
-
const {
|
19089
|
-
handler,
|
19090
|
-
options
|
19091
|
-
} = el._onResize[binding.instance.$.uid];
|
19092
|
-
window.removeEventListener('resize', handler, options);
|
19093
|
-
delete el._onResize[binding.instance.$.uid];
|
19243
|
+
function isWithinRange(date, range) {
|
19244
|
+
return isAfter(date, range[0]) && isBefore(date, range[1]);
|
19094
19245
|
}
|
19095
|
-
|
19096
|
-
|
19097
|
-
|
19098
|
-
};
|
19099
|
-
|
19100
|
-
function mounted(el, binding) {
|
19101
|
-
const {
|
19102
|
-
self = false
|
19103
|
-
} = binding.modifiers ?? {};
|
19104
|
-
const value = binding.value;
|
19105
|
-
const options = typeof value === 'object' && value.options || {
|
19106
|
-
passive: true
|
19107
|
-
};
|
19108
|
-
const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler;
|
19109
|
-
const target = self ? el : binding.arg ? document.querySelector(binding.arg) : window;
|
19110
|
-
if (!target) return;
|
19111
|
-
target.addEventListener('scroll', handler, options);
|
19112
|
-
el._onScroll = Object(el._onScroll);
|
19113
|
-
el._onScroll[binding.instance.$.uid] = {
|
19114
|
-
handler,
|
19115
|
-
options,
|
19116
|
-
// Don't reference self
|
19117
|
-
target: self ? undefined : target
|
19118
|
-
};
|
19246
|
+
function isValid(date) {
|
19247
|
+
const d = new Date(date);
|
19248
|
+
return d instanceof Date && !isNaN(d.getTime());
|
19119
19249
|
}
|
19120
|
-
function
|
19121
|
-
|
19122
|
-
const {
|
19123
|
-
handler,
|
19124
|
-
options,
|
19125
|
-
target = el
|
19126
|
-
} = el._onScroll[binding.instance.$.uid];
|
19127
|
-
target.removeEventListener('scroll', handler, options);
|
19128
|
-
delete el._onScroll[binding.instance.$.uid];
|
19250
|
+
function isAfter(date, comparing) {
|
19251
|
+
return date.getTime() > comparing.getTime();
|
19129
19252
|
}
|
19130
|
-
function
|
19131
|
-
|
19132
|
-
|
19133
|
-
|
19253
|
+
function isBefore(date, comparing) {
|
19254
|
+
return date.getTime() < comparing.getTime();
|
19255
|
+
}
|
19256
|
+
function isEqual(date, comparing) {
|
19257
|
+
return date.getTime() === comparing.getTime();
|
19258
|
+
}
|
19259
|
+
function isSameDay(date, comparing) {
|
19260
|
+
return date.getDate() === comparing.getDate() && date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
19261
|
+
}
|
19262
|
+
function isSameMonth(date, comparing) {
|
19263
|
+
return date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
19264
|
+
}
|
19265
|
+
function getDiff(date, comparing, unit) {
|
19266
|
+
const d = new Date(date);
|
19267
|
+
const c = new Date(comparing);
|
19268
|
+
if (unit === 'month') {
|
19269
|
+
return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12;
|
19270
|
+
}
|
19271
|
+
return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24));
|
19272
|
+
}
|
19273
|
+
function setYear(date, year) {
|
19274
|
+
const d = new Date(date);
|
19275
|
+
d.setFullYear(year);
|
19276
|
+
return d;
|
19277
|
+
}
|
19278
|
+
class VuetifyDateAdapter {
|
19279
|
+
constructor() {
|
19280
|
+
let locale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'en';
|
19281
|
+
this.locale = locale;
|
19282
|
+
}
|
19283
|
+
date(value) {
|
19284
|
+
return date(value);
|
19285
|
+
}
|
19286
|
+
addDays(date, amount) {
|
19287
|
+
return addDays(date, amount);
|
19288
|
+
}
|
19289
|
+
addMonths(date, amount) {
|
19290
|
+
return addMonths(date, amount);
|
19291
|
+
}
|
19292
|
+
getWeekArray(date) {
|
19293
|
+
return getWeekArray(date);
|
19294
|
+
}
|
19295
|
+
startOfMonth(date) {
|
19296
|
+
return startOfMonth(date);
|
19297
|
+
}
|
19298
|
+
endOfMonth(date) {
|
19299
|
+
return endOfMonth(date);
|
19300
|
+
}
|
19301
|
+
format(date, formatString) {
|
19302
|
+
return format(date, formatString, this.locale);
|
19303
|
+
}
|
19304
|
+
isEqual(date, comparing) {
|
19305
|
+
return isEqual(date, comparing);
|
19306
|
+
}
|
19307
|
+
isValid(date) {
|
19308
|
+
return isValid(date);
|
19309
|
+
}
|
19310
|
+
isWithinRange(date, range) {
|
19311
|
+
return isWithinRange(date, range);
|
19312
|
+
}
|
19313
|
+
isAfter(date, comparing) {
|
19314
|
+
return isAfter(date, comparing);
|
19315
|
+
}
|
19316
|
+
isSameDay(date, comparing) {
|
19317
|
+
return isSameDay(date, comparing);
|
19318
|
+
}
|
19319
|
+
isSameMonth(date, comparing) {
|
19320
|
+
return isSameMonth(date, comparing);
|
19321
|
+
}
|
19322
|
+
setYear(date, year) {
|
19323
|
+
return setYear(date, year);
|
19324
|
+
}
|
19325
|
+
getDiff(date, comparing, unit) {
|
19326
|
+
return getDiff(date, comparing, unit);
|
19327
|
+
}
|
19328
|
+
getWeek(date) {
|
19329
|
+
return getWeek(date);
|
19330
|
+
}
|
19331
|
+
getWeekdays() {
|
19332
|
+
return getWeekdays(this.locale);
|
19333
|
+
}
|
19334
|
+
getYear(date) {
|
19335
|
+
return getYear(date);
|
19336
|
+
}
|
19337
|
+
getMonth(date) {
|
19338
|
+
return getMonth(date);
|
19339
|
+
}
|
19340
|
+
startOfYear(date) {
|
19341
|
+
return startOfYear(date);
|
19342
|
+
}
|
19343
|
+
endOfYear(date) {
|
19344
|
+
return endOfYear(date);
|
19345
|
+
}
|
19134
19346
|
}
|
19135
|
-
const Scroll = {
|
19136
|
-
mounted,
|
19137
|
-
unmounted,
|
19138
|
-
updated
|
19139
|
-
};
|
19140
19347
|
|
19141
|
-
|
19142
|
-
|
19143
|
-
|
19144
|
-
|
19145
|
-
|
19146
|
-
|
19147
|
-
|
19148
|
-
|
19149
|
-
|
19150
|
-
}
|
19348
|
+
// Composables
|
19349
|
+
|
19350
|
+
// Types
|
19351
|
+
|
19352
|
+
const DateAdapterSymbol = Symbol.for('vuetify:date-adapter');
|
19353
|
+
function createDate(options) {
|
19354
|
+
return options ?? {
|
19355
|
+
adapter: VuetifyDateAdapter
|
19356
|
+
};
|
19357
|
+
}
|
19151
19358
|
|
19152
19359
|
// Composables
|
19153
19360
|
function createVuetify$1() {
|
@@ -19234,7 +19441,7 @@
|
|
19234
19441
|
date
|
19235
19442
|
};
|
19236
19443
|
}
|
19237
|
-
const version$1 = "4.0.0-dev-
|
19444
|
+
const version$1 = "4.0.0-dev-20230511.0";
|
19238
19445
|
createVuetify$1.version = version$1;
|
19239
19446
|
|
19240
19447
|
// Vue's inject() can only be used in setup
|
@@ -19254,13 +19461,13 @@
|
|
19254
19461
|
...options
|
19255
19462
|
});
|
19256
19463
|
};
|
19257
|
-
const version = "4.0.0-dev-
|
19464
|
+
const version = "4.0.0-dev-20230511.0";
|
19258
19465
|
createVuetify.version = version;
|
19259
19466
|
|
19260
19467
|
exports.components = components;
|
19261
19468
|
exports.createVuetify = createVuetify;
|
19262
19469
|
exports.directives = directives;
|
19263
|
-
exports.
|
19470
|
+
exports.useDefaults = useDefaults;
|
19264
19471
|
exports.useDisplay = useDisplay;
|
19265
19472
|
exports.useLayout = useLayout;
|
19266
19473
|
exports.useLocale = useLocale;
|