@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-labs.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
|
}
|
@@ -1095,15 +1128,19 @@
|
|
1095
1128
|
tag: {
|
1096
1129
|
type: String,
|
1097
1130
|
default: tag
|
1098
|
-
}
|
1131
|
+
},
|
1132
|
+
...makeComponentProps()
|
1099
1133
|
},
|
1100
1134
|
setup(props, _ref) {
|
1101
1135
|
let {
|
1102
1136
|
slots
|
1103
1137
|
} = _ref;
|
1104
|
-
return () =>
|
1105
|
-
|
1106
|
-
|
1138
|
+
return () => {
|
1139
|
+
return vue.h(props.tag, {
|
1140
|
+
class: [klass, props.class],
|
1141
|
+
style: props.style
|
1142
|
+
}, slots.default?.());
|
1143
|
+
};
|
1107
1144
|
}
|
1108
1145
|
});
|
1109
1146
|
}
|
@@ -1136,6 +1173,34 @@
|
|
1136
1173
|
const deceleratedEasing = 'cubic-bezier(0.0, 0, 0.2, 1)'; // Entering
|
1137
1174
|
const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)'; // Leaving
|
1138
1175
|
|
1176
|
+
// Utilities
|
1177
|
+
function getCurrentInstance(name, message) {
|
1178
|
+
const vm = vue.getCurrentInstance();
|
1179
|
+
if (!vm) {
|
1180
|
+
throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);
|
1181
|
+
}
|
1182
|
+
return vm;
|
1183
|
+
}
|
1184
|
+
function getCurrentInstanceName() {
|
1185
|
+
let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';
|
1186
|
+
const vm = getCurrentInstance(name).type;
|
1187
|
+
return toKebabCase(vm?.aliasName || vm?.name);
|
1188
|
+
}
|
1189
|
+
let _uid = 0;
|
1190
|
+
let _map = new WeakMap();
|
1191
|
+
function getUid() {
|
1192
|
+
const vm = getCurrentInstance('getUid');
|
1193
|
+
if (_map.has(vm)) return _map.get(vm);else {
|
1194
|
+
const uid = _uid++;
|
1195
|
+
_map.set(vm, uid);
|
1196
|
+
return uid;
|
1197
|
+
}
|
1198
|
+
}
|
1199
|
+
getUid.reset = () => {
|
1200
|
+
_uid = 0;
|
1201
|
+
_map = new WeakMap();
|
1202
|
+
};
|
1203
|
+
|
1139
1204
|
function getScrollParent(el) {
|
1140
1205
|
while (el) {
|
1141
1206
|
if (hasScrollbar(el)) return el;
|
@@ -1159,6 +1224,16 @@
|
|
1159
1224
|
return style.overflowY === 'scroll' || style.overflowY === 'auto' && el.scrollHeight > el.clientHeight;
|
1160
1225
|
}
|
1161
1226
|
|
1227
|
+
function injectSelf(key) {
|
1228
|
+
const {
|
1229
|
+
provides
|
1230
|
+
} = getCurrentInstance('injectSelf');
|
1231
|
+
if (provides && key in provides) {
|
1232
|
+
// TS doesn't allow symbol as index type
|
1233
|
+
return provides[key];
|
1234
|
+
}
|
1235
|
+
}
|
1236
|
+
|
1162
1237
|
function isFixedPosition(el) {
|
1163
1238
|
while (el) {
|
1164
1239
|
if (window.getComputedStyle(el).position === 'fixed') {
|
@@ -1663,7 +1738,7 @@
|
|
1663
1738
|
for (const variation of ['lighten', 'darken']) {
|
1664
1739
|
const fn = variation === 'lighten' ? lighten : darken;
|
1665
1740
|
for (const amount of createRange(parsedOptions.variations[variation], 1)) {
|
1666
|
-
theme.colors[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor
|
1741
|
+
theme.colors[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor(color), amount));
|
1667
1742
|
}
|
1668
1743
|
}
|
1669
1744
|
}
|
@@ -1671,9 +1746,9 @@
|
|
1671
1746
|
for (const color of Object.keys(theme.colors)) {
|
1672
1747
|
if (/^on-[a-z]/.test(color) || theme.colors[`on-${color}`]) continue;
|
1673
1748
|
const onColor = `on-${color}`;
|
1674
|
-
const colorVal = parseColor
|
1675
|
-
const blackContrast = Math.abs(APCAcontrast(parseColor
|
1676
|
-
const whiteContrast = Math.abs(APCAcontrast(parseColor
|
1749
|
+
const colorVal = parseColor(theme.colors[color]);
|
1750
|
+
const blackContrast = Math.abs(APCAcontrast(parseColor(0), colorVal));
|
1751
|
+
const whiteContrast = Math.abs(APCAcontrast(parseColor(0xffffff), colorVal));
|
1677
1752
|
|
1678
1753
|
// TODO: warn about poor color selections
|
1679
1754
|
// const contrastAsText = Math.abs(APCAcontrast(colorVal, colorToInt(theme.colors.background)))
|
@@ -1805,14 +1880,14 @@
|
|
1805
1880
|
const darkOverlay = theme.dark ? 1 : 2;
|
1806
1881
|
const variables = [];
|
1807
1882
|
for (const [key, value] of Object.entries(theme.colors)) {
|
1808
|
-
const rgb = parseColor
|
1883
|
+
const rgb = parseColor(value);
|
1809
1884
|
variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
|
1810
1885
|
if (!key.startsWith('on-')) {
|
1811
1886
|
variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
|
1812
1887
|
}
|
1813
1888
|
}
|
1814
1889
|
for (const [key, value] of Object.entries(theme.variables)) {
|
1815
|
-
const color = typeof value === 'string' && value.startsWith('#') ? parseColor
|
1890
|
+
const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
|
1816
1891
|
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
1817
1892
|
variables.push(`--v-${key}: ${rgb ?? value}`);
|
1818
1893
|
}
|
@@ -2141,6 +2216,7 @@
|
|
2141
2216
|
const VApp = genericComponent()({
|
2142
2217
|
name: 'VApp',
|
2143
2218
|
props: {
|
2219
|
+
...makeComponentProps(),
|
2144
2220
|
...makeLayoutProps({
|
2145
2221
|
fullHeight: true
|
2146
2222
|
}),
|
@@ -2163,8 +2239,8 @@
|
|
2163
2239
|
} = useRtl();
|
2164
2240
|
useRender(() => vue.createVNode("div", {
|
2165
2241
|
"ref": layoutRef,
|
2166
|
-
"class": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value],
|
2167
|
-
"style": layoutStyles.value
|
2242
|
+
"class": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value, props.class],
|
2243
|
+
"style": [layoutStyles.value, props.style]
|
2168
2244
|
}, [vue.createVNode("div", {
|
2169
2245
|
"class": "v-application__wrap"
|
2170
2246
|
}, [slots.default?.()])]));
|
@@ -2584,13 +2660,16 @@
|
|
2584
2660
|
})
|
2585
2661
|
};
|
2586
2662
|
}
|
2663
|
+
const makeVResponsiveProps = propsFactory({
|
2664
|
+
aspectRatio: [String, Number],
|
2665
|
+
contentClass: String,
|
2666
|
+
inline: Boolean,
|
2667
|
+
...makeComponentProps(),
|
2668
|
+
...makeDimensionProps()
|
2669
|
+
}, 'v-responsive');
|
2587
2670
|
const VResponsive = genericComponent()({
|
2588
2671
|
name: 'VResponsive',
|
2589
|
-
props:
|
2590
|
-
aspectRatio: [String, Number],
|
2591
|
-
contentClass: String,
|
2592
|
-
...makeDimensionProps()
|
2593
|
-
},
|
2672
|
+
props: makeVResponsiveProps(),
|
2594
2673
|
setup(props, _ref) {
|
2595
2674
|
let {
|
2596
2675
|
slots
|
@@ -2602,8 +2681,10 @@
|
|
2602
2681
|
dimensionStyles
|
2603
2682
|
} = useDimension(props);
|
2604
2683
|
useRender(() => vue.createVNode("div", {
|
2605
|
-
"class":
|
2606
|
-
|
2684
|
+
"class": ['v-responsive', {
|
2685
|
+
'v-responsive--inline': props.inline
|
2686
|
+
}, props.class],
|
2687
|
+
"style": [dimensionStyles.value, props.style]
|
2607
2688
|
}, [vue.createVNode("div", {
|
2608
2689
|
"class": "v-responsive__sizer",
|
2609
2690
|
"style": aspectStyles.value
|
@@ -2698,7 +2779,6 @@
|
|
2698
2779
|
intersect: Intersect
|
2699
2780
|
},
|
2700
2781
|
props: {
|
2701
|
-
aspectRatio: [String, Number],
|
2702
2782
|
alt: String,
|
2703
2783
|
cover: Boolean,
|
2704
2784
|
eager: Boolean,
|
@@ -2720,7 +2800,8 @@
|
|
2720
2800
|
default: ''
|
2721
2801
|
},
|
2722
2802
|
srcset: String,
|
2723
|
-
|
2803
|
+
...makeVResponsiveProps(),
|
2804
|
+
...makeComponentProps(),
|
2724
2805
|
...makeTransitionProps()
|
2725
2806
|
},
|
2726
2807
|
emits: {
|
@@ -2905,25 +2986,27 @@
|
|
2905
2986
|
}
|
2906
2987
|
});
|
2907
2988
|
}
|
2908
|
-
useRender(() =>
|
2909
|
-
|
2910
|
-
|
2911
|
-
|
2912
|
-
|
2913
|
-
|
2914
|
-
|
2915
|
-
|
2916
|
-
|
2917
|
-
|
2918
|
-
|
2919
|
-
|
2920
|
-
|
2921
|
-
|
2922
|
-
|
2923
|
-
|
2924
|
-
|
2925
|
-
|
2926
|
-
|
2989
|
+
useRender(() => {
|
2990
|
+
const [responsiveProps] = VResponsive.filterProps(props);
|
2991
|
+
return vue.withDirectives(vue.createVNode(VResponsive, vue.mergeProps({
|
2992
|
+
"class": ['v-img', {
|
2993
|
+
'v-img--booting': !isBooted.value
|
2994
|
+
}, props.class],
|
2995
|
+
"style": props.style
|
2996
|
+
}, responsiveProps, {
|
2997
|
+
"aspectRatio": aspectRatio.value,
|
2998
|
+
"aria-label": props.alt,
|
2999
|
+
"role": props.alt ? 'img' : undefined
|
3000
|
+
}), {
|
3001
|
+
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)]),
|
3002
|
+
default: slots.default
|
3003
|
+
}), [[vue.resolveDirective("intersect"), {
|
3004
|
+
handler: init,
|
3005
|
+
options: props.options
|
3006
|
+
}, null, {
|
3007
|
+
once: true
|
3008
|
+
}]]);
|
3009
|
+
});
|
2927
3010
|
return {
|
2928
3011
|
currentSrc,
|
2929
3012
|
image,
|
@@ -2946,10 +3029,9 @@
|
|
2946
3029
|
}
|
2947
3030
|
}, 'tag');
|
2948
3031
|
|
2949
|
-
// Types
|
2950
|
-
|
2951
3032
|
const makeVToolbarTitleProps = propsFactory({
|
2952
3033
|
text: String,
|
3034
|
+
...makeComponentProps(),
|
2953
3035
|
...makeTagProps()
|
2954
3036
|
}, 'v-toolbar-title');
|
2955
3037
|
const VToolbarTitle = genericComponent()({
|
@@ -2962,7 +3044,8 @@
|
|
2962
3044
|
useRender(() => {
|
2963
3045
|
const hasText = !!(slots.default || slots.text || props.text);
|
2964
3046
|
return vue.createVNode(props.tag, {
|
2965
|
-
"class":
|
3047
|
+
"class": ['v-toolbar-title', props.class],
|
3048
|
+
"style": props.style
|
2966
3049
|
}, {
|
2967
3050
|
default: () => [hasText && vue.createVNode("div", {
|
2968
3051
|
"class": "v-toolbar-title__placeholder"
|
@@ -3143,6 +3226,7 @@
|
|
3143
3226
|
image: String,
|
3144
3227
|
title: String,
|
3145
3228
|
...makeBorderProps(),
|
3229
|
+
...makeComponentProps(),
|
3146
3230
|
...makeElevationProps(),
|
3147
3231
|
...makeRoundedProps(),
|
3148
3232
|
...makeTagProps({
|
@@ -3193,8 +3277,8 @@
|
|
3193
3277
|
'v-toolbar--flat': props.flat,
|
3194
3278
|
'v-toolbar--floating': props.floating,
|
3195
3279
|
[`v-toolbar--density-${props.density}`]: true
|
3196
|
-
}, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value],
|
3197
|
-
"style": [backgroundColorStyles.value]
|
3280
|
+
}, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
3281
|
+
"style": [backgroundColorStyles.value, props.style]
|
3198
3282
|
}, {
|
3199
3283
|
default: () => [hasImage && vue.createVNode("div", {
|
3200
3284
|
"key": "image",
|
@@ -3269,14 +3353,13 @@
|
|
3269
3353
|
type: String
|
3270
3354
|
},
|
3271
3355
|
scrollThreshold: {
|
3272
|
-
type: [String, Number]
|
3356
|
+
type: [String, Number],
|
3357
|
+
default: 300
|
3273
3358
|
}
|
3274
3359
|
}, 'scroll');
|
3275
3360
|
function useScroll(props) {
|
3276
3361
|
let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
3277
3362
|
const {
|
3278
|
-
thresholdMetCallback,
|
3279
|
-
scrollThreshold,
|
3280
3363
|
canScroll
|
3281
3364
|
} = args;
|
3282
3365
|
let previousScroll = 0;
|
@@ -3286,8 +3369,16 @@
|
|
3286
3369
|
const currentThreshold = vue.ref(0);
|
3287
3370
|
const isScrollActive = vue.ref(false);
|
3288
3371
|
const isScrollingUp = vue.ref(false);
|
3289
|
-
const
|
3290
|
-
return Number(props.scrollThreshold
|
3372
|
+
const scrollThreshold = vue.computed(() => {
|
3373
|
+
return Number(props.scrollThreshold);
|
3374
|
+
});
|
3375
|
+
|
3376
|
+
/**
|
3377
|
+
* 1: at top
|
3378
|
+
* 0: at threshold
|
3379
|
+
*/
|
3380
|
+
const scrollRatio = vue.computed(() => {
|
3381
|
+
return clamp((scrollThreshold.value - currentScroll.value) / scrollThreshold.value || 0);
|
3291
3382
|
});
|
3292
3383
|
const onScroll = () => {
|
3293
3384
|
const targetEl = target.value;
|
@@ -3295,7 +3386,7 @@
|
|
3295
3386
|
previousScroll = currentScroll.value;
|
3296
3387
|
currentScroll.value = 'window' in targetEl ? targetEl.pageYOffset : targetEl.scrollTop;
|
3297
3388
|
isScrollingUp.value = currentScroll.value < previousScroll;
|
3298
|
-
currentThreshold.value = Math.abs(currentScroll.value -
|
3389
|
+
currentThreshold.value = Math.abs(currentScroll.value - scrollThreshold.value);
|
3299
3390
|
};
|
3300
3391
|
vue.watch(isScrollingUp, () => {
|
3301
3392
|
savedScroll.value = savedScroll.value || currentScroll.value;
|
@@ -3307,7 +3398,7 @@
|
|
3307
3398
|
vue.watch(() => props.scrollTarget, scrollTarget => {
|
3308
3399
|
const newTarget = scrollTarget ? document.querySelector(scrollTarget) : window;
|
3309
3400
|
if (!newTarget) {
|
3310
|
-
consoleWarn(`Unable to locate element with identifier ${scrollTarget}
|
3401
|
+
consoleWarn(`Unable to locate element with identifier ${scrollTarget}`);
|
3311
3402
|
return;
|
3312
3403
|
}
|
3313
3404
|
if (newTarget === target.value) return;
|
@@ -3323,15 +3414,6 @@
|
|
3323
3414
|
vue.onBeforeUnmount(() => {
|
3324
3415
|
target.value?.removeEventListener('scroll', onScroll);
|
3325
3416
|
});
|
3326
|
-
thresholdMetCallback && vue.watch(() => Math.abs(currentScroll.value - savedScroll.value) > computedScrollThreshold.value, thresholdMet => {
|
3327
|
-
thresholdMet && thresholdMetCallback({
|
3328
|
-
currentThreshold: currentThreshold.value,
|
3329
|
-
isScrollingUp: isScrollingUp.value,
|
3330
|
-
savedScroll
|
3331
|
-
});
|
3332
|
-
}, {
|
3333
|
-
immediate: true
|
3334
|
-
});
|
3335
3417
|
|
3336
3418
|
// Do we need this? If yes - seems that
|
3337
3419
|
// there's no need to expose onScroll
|
@@ -3339,10 +3421,11 @@
|
|
3339
3421
|
immediate: true
|
3340
3422
|
});
|
3341
3423
|
return {
|
3342
|
-
|
3424
|
+
scrollThreshold,
|
3343
3425
|
currentScroll,
|
3344
3426
|
currentThreshold,
|
3345
3427
|
isScrollActive,
|
3428
|
+
scrollRatio,
|
3346
3429
|
// required only for testing
|
3347
3430
|
// probably can be removed
|
3348
3431
|
// later (2 chars chlng)
|
@@ -3425,15 +3508,14 @@
|
|
3425
3508
|
});
|
3426
3509
|
const {
|
3427
3510
|
currentScroll,
|
3428
|
-
|
3429
|
-
|
3430
|
-
|
3511
|
+
scrollThreshold,
|
3512
|
+
isScrollingUp,
|
3513
|
+
scrollRatio
|
3431
3514
|
} = useScroll(props, {
|
3432
3515
|
canScroll
|
3433
3516
|
});
|
3434
|
-
const isCollapsed = vue.computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ?
|
3435
|
-
const isFlat = vue.computed(() => props.flat || scrollBehavior.value.elevate &&
|
3436
|
-
const scrollRatio = vue.computed(() => Math.min((currentThreshold.value - currentScroll.value) / currentThreshold.value || 1, 1));
|
3517
|
+
const isCollapsed = vue.computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? scrollRatio.value > 0 : scrollRatio.value === 0));
|
3518
|
+
const isFlat = vue.computed(() => props.flat || scrollBehavior.value.elevate && (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0));
|
3437
3519
|
const opacity = vue.computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
|
3438
3520
|
const height = vue.computed(() => {
|
3439
3521
|
if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0;
|
@@ -3442,15 +3524,12 @@
|
|
3442
3524
|
return height + extensionHeight;
|
3443
3525
|
});
|
3444
3526
|
function setActive() {
|
3445
|
-
const val = currentScroll.value;
|
3446
3527
|
if (scrollBehavior.value.hide) {
|
3447
3528
|
if (scrollBehavior.value.inverted) {
|
3448
|
-
isActive.value =
|
3529
|
+
isActive.value = currentScroll.value > scrollThreshold.value;
|
3449
3530
|
} else {
|
3450
|
-
isActive.value = isScrollingUp.value ||
|
3531
|
+
isActive.value = isScrollingUp.value || currentScroll.value < scrollThreshold.value;
|
3451
3532
|
}
|
3452
|
-
} else if (scrollBehavior.value.inverted) {
|
3453
|
-
isActive.value = currentScroll.value === 0;
|
3454
3533
|
} else {
|
3455
3534
|
isActive.value = true;
|
3456
3535
|
}
|
@@ -3479,13 +3558,13 @@
|
|
3479
3558
|
"ref": vToolbarRef,
|
3480
3559
|
"class": ['v-app-bar', {
|
3481
3560
|
'v-app-bar--bottom': props.location === 'bottom'
|
3482
|
-
}],
|
3483
|
-
"style": {
|
3561
|
+
}, props.class],
|
3562
|
+
"style": [{
|
3484
3563
|
...layoutItemStyles.value,
|
3485
3564
|
'--v-toolbar-image-opacity': opacity.value,
|
3486
3565
|
height: undefined,
|
3487
3566
|
...ssrBootStyles.value
|
3488
|
-
}
|
3567
|
+
}, props.style]
|
3489
3568
|
}, toolbarProps, {
|
3490
3569
|
"collapse": isCollapsed.value,
|
3491
3570
|
"flat": isFlat.value
|
@@ -3572,6 +3651,7 @@
|
|
3572
3651
|
const makeVBtnGroupProps = propsFactory({
|
3573
3652
|
divided: Boolean,
|
3574
3653
|
...makeBorderProps(),
|
3654
|
+
...makeComponentProps(),
|
3575
3655
|
...makeDensityProps(),
|
3576
3656
|
...makeElevationProps(),
|
3577
3657
|
...makeRoundedProps(),
|
@@ -3614,7 +3694,8 @@
|
|
3614
3694
|
return vue.createVNode(props.tag, {
|
3615
3695
|
"class": ['v-btn-group', {
|
3616
3696
|
'v-btn-group--divided': props.divided
|
3617
|
-
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value]
|
3697
|
+
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
3698
|
+
"style": props.style
|
3618
3699
|
}, slots);
|
3619
3700
|
});
|
3620
3701
|
}
|
@@ -3847,8 +3928,10 @@
|
|
3847
3928
|
useRender(() => {
|
3848
3929
|
const [btnGroupProps] = VBtnGroup.filterProps(props);
|
3849
3930
|
return vue.createVNode(VBtnGroup, vue.mergeProps({
|
3850
|
-
"class":
|
3851
|
-
}, btnGroupProps
|
3931
|
+
"class": ['v-btn-toggle', props.class]
|
3932
|
+
}, btnGroupProps, {
|
3933
|
+
"style": props.style
|
3934
|
+
}), {
|
3852
3935
|
default: () => [slots.default?.({
|
3853
3936
|
isSelected,
|
3854
3937
|
next,
|
@@ -3919,7 +4002,7 @@
|
|
3919
4002
|
|
3920
4003
|
// Types
|
3921
4004
|
|
3922
|
-
const IconValue = [String, Function, Object];
|
4005
|
+
const IconValue = [String, Function, Object, Array];
|
3923
4006
|
const IconSymbol = Symbol.for('vuetify:icons');
|
3924
4007
|
const makeIconProps = propsFactory({
|
3925
4008
|
icon: {
|
@@ -3939,8 +4022,9 @@
|
|
3939
4022
|
slots
|
3940
4023
|
} = _ref;
|
3941
4024
|
return () => {
|
4025
|
+
const Icon = props.icon;
|
3942
4026
|
return vue.createVNode(props.tag, null, {
|
3943
|
-
default: () => [props.icon ? vue.createVNode(
|
4027
|
+
default: () => [props.icon ? vue.createVNode(Icon, null, null) : slots.default?.()]
|
3944
4028
|
});
|
3945
4029
|
};
|
3946
4030
|
}
|
@@ -3963,7 +4047,12 @@
|
|
3963
4047
|
"viewBox": "0 0 24 24",
|
3964
4048
|
"role": "img",
|
3965
4049
|
"aria-hidden": "true"
|
3966
|
-
}, [vue.createVNode("path", {
|
4050
|
+
}, [Array.isArray(props.icon) ? props.icon.map(path => Array.isArray(path) ? vue.createVNode("path", {
|
4051
|
+
"d": path[0],
|
4052
|
+
"fill-opacity": path[1]
|
4053
|
+
}, null) : vue.createVNode("path", {
|
4054
|
+
"d": path
|
4055
|
+
}, null)) : vue.createVNode("path", {
|
3967
4056
|
"d": props.icon
|
3968
4057
|
}, null)])]
|
3969
4058
|
});
|
@@ -4028,7 +4117,12 @@
|
|
4028
4117
|
}
|
4029
4118
|
}
|
4030
4119
|
if (!icon) throw new Error(`Could not find aliased icon "${iconAlias}"`);
|
4031
|
-
if (
|
4120
|
+
if (Array.isArray(icon)) {
|
4121
|
+
return {
|
4122
|
+
component: VSvgIcon,
|
4123
|
+
icon
|
4124
|
+
};
|
4125
|
+
} else if (typeof icon !== 'string') {
|
4032
4126
|
return {
|
4033
4127
|
component: VComponentIcon,
|
4034
4128
|
icon
|
@@ -4085,6 +4179,7 @@
|
|
4085
4179
|
start: Boolean,
|
4086
4180
|
end: Boolean,
|
4087
4181
|
icon: IconValue,
|
4182
|
+
...makeComponentProps(),
|
4088
4183
|
...makeSizeProps(),
|
4089
4184
|
...makeTagProps({
|
4090
4185
|
tag: 'i'
|
@@ -4127,12 +4222,12 @@
|
|
4127
4222
|
'v-icon--clickable': !!attrs.onClick,
|
4128
4223
|
'v-icon--start': props.start,
|
4129
4224
|
'v-icon--end': props.end
|
4130
|
-
}],
|
4225
|
+
}, props.class],
|
4131
4226
|
"style": [!sizeClasses.value ? {
|
4132
4227
|
fontSize: convertToUnit(props.size),
|
4133
4228
|
height: convertToUnit(props.size),
|
4134
4229
|
width: convertToUnit(props.size)
|
4135
|
-
} : undefined, textColorStyles.value],
|
4230
|
+
} : undefined, textColorStyles.value, props.style],
|
4136
4231
|
"role": attrs.onClick ? 'button' : undefined,
|
4137
4232
|
"aria-hidden": !attrs.onClick
|
4138
4233
|
}, {
|
@@ -4190,6 +4285,7 @@
|
|
4190
4285
|
type: [Number, String],
|
4191
4286
|
default: 4
|
4192
4287
|
},
|
4288
|
+
...makeComponentProps(),
|
4193
4289
|
...makeSizeProps(),
|
4194
4290
|
...makeTagProps({
|
4195
4291
|
tag: 'div'
|
@@ -4245,8 +4341,8 @@
|
|
4245
4341
|
'v-progress-circular--indeterminate': !!props.indeterminate,
|
4246
4342
|
'v-progress-circular--visible': isIntersecting.value,
|
4247
4343
|
'v-progress-circular--disable-shrink': props.indeterminate === 'disable-shrink'
|
4248
|
-
}, themeClasses.value, sizeClasses.value, textColorClasses.value],
|
4249
|
-
"style": [sizeStyles.value, textColorStyles.value],
|
4344
|
+
}, themeClasses.value, sizeClasses.value, textColorClasses.value, props.class],
|
4345
|
+
"style": [sizeStyles.value, textColorStyles.value, props.style],
|
4250
4346
|
"role": "progressbar",
|
4251
4347
|
"aria-valuemin": "0",
|
4252
4348
|
"aria-valuemax": "100",
|
@@ -4665,6 +4761,7 @@
|
|
4665
4761
|
stream: Boolean,
|
4666
4762
|
striped: Boolean,
|
4667
4763
|
roundedBar: Boolean,
|
4764
|
+
...makeComponentProps(),
|
4668
4765
|
...makeLocationProps({
|
4669
4766
|
location: 'top'
|
4670
4767
|
}),
|
@@ -4736,14 +4833,14 @@
|
|
4736
4833
|
'v-progress-linear--rounded': props.rounded,
|
4737
4834
|
'v-progress-linear--rounded-bar': props.roundedBar,
|
4738
4835
|
'v-progress-linear--striped': props.striped
|
4739
|
-
}, roundedClasses.value, themeClasses.value],
|
4740
|
-
"style": {
|
4836
|
+
}, roundedClasses.value, themeClasses.value, props.class],
|
4837
|
+
"style": [{
|
4741
4838
|
bottom: props.location === 'bottom' ? 0 : undefined,
|
4742
4839
|
top: props.location === 'top' ? 0 : undefined,
|
4743
4840
|
height: props.active ? convertToUnit(height.value) : 0,
|
4744
4841
|
'--v-progress-linear-height': convertToUnit(height.value),
|
4745
4842
|
...locationStyles.value
|
4746
|
-
},
|
4843
|
+
}, props.style],
|
4747
4844
|
"role": "progressbar",
|
4748
4845
|
"aria-hidden": props.active ? 'false' : 'true',
|
4749
4846
|
"aria-valuemin": "0",
|
@@ -4954,7 +5051,7 @@
|
|
4954
5051
|
},
|
4955
5052
|
text: String,
|
4956
5053
|
...makeBorderProps(),
|
4957
|
-
...
|
5054
|
+
...makeComponentProps(),
|
4958
5055
|
...makeDensityProps(),
|
4959
5056
|
...makeDimensionProps(),
|
4960
5057
|
...makeElevationProps(),
|
@@ -4962,6 +5059,7 @@
|
|
4962
5059
|
...makeLoaderProps(),
|
4963
5060
|
...makeLocationProps(),
|
4964
5061
|
...makePositionProps(),
|
5062
|
+
...makeRoundedProps(),
|
4965
5063
|
...makeRouterProps(),
|
4966
5064
|
...makeSizeProps(),
|
4967
5065
|
...makeTagProps({
|
@@ -4971,7 +5069,7 @@
|
|
4971
5069
|
...makeVariantProps({
|
4972
5070
|
variant: 'elevated'
|
4973
5071
|
})
|
4974
|
-
}, '
|
5072
|
+
}, 'v-btn');
|
4975
5073
|
const VBtn = genericComponent()({
|
4976
5074
|
name: 'VBtn',
|
4977
5075
|
directives: {
|
@@ -5041,6 +5139,11 @@
|
|
5041
5139
|
if (props.value === undefined) return undefined;
|
5042
5140
|
return Object(props.value) === props.value ? JSON.stringify(props.value, null, 0) : props.value;
|
5043
5141
|
});
|
5142
|
+
function onClick(e) {
|
5143
|
+
if (isDisabled.value) return;
|
5144
|
+
link.navigate?.(e);
|
5145
|
+
group?.toggle();
|
5146
|
+
}
|
5044
5147
|
useSelectLink(link, group?.select);
|
5045
5148
|
useRender(() => {
|
5046
5149
|
const Tag = link.isLink.value ? 'a' : props.tag;
|
@@ -5059,15 +5162,11 @@
|
|
5059
5162
|
'v-btn--icon': !!props.icon,
|
5060
5163
|
'v-btn--loading': props.loading,
|
5061
5164
|
'v-btn--stacked': props.stacked
|
5062
|
-
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value],
|
5063
|
-
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value],
|
5165
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
5166
|
+
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],
|
5064
5167
|
"disabled": isDisabled.value || undefined,
|
5065
5168
|
"href": link.href.value,
|
5066
|
-
"onClick":
|
5067
|
-
if (isDisabled.value) return;
|
5068
|
-
link.navigate?.(e);
|
5069
|
-
group?.toggle();
|
5070
|
-
},
|
5169
|
+
"onClick": onClick,
|
5071
5170
|
"value": valueAttr.value
|
5072
5171
|
}, {
|
5073
5172
|
default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && vue.createVNode("span", {
|
@@ -5133,29 +5232,29 @@
|
|
5133
5232
|
|
5134
5233
|
const VAppBarNavIcon = genericComponent()({
|
5135
5234
|
name: 'VAppBarNavIcon',
|
5136
|
-
props: {
|
5137
|
-
icon:
|
5138
|
-
|
5139
|
-
|
5140
|
-
}
|
5141
|
-
},
|
5235
|
+
props: makeVBtnProps({
|
5236
|
+
icon: '$menu',
|
5237
|
+
variant: 'text'
|
5238
|
+
}),
|
5142
5239
|
setup(props, _ref) {
|
5143
5240
|
let {
|
5144
5241
|
slots
|
5145
5242
|
} = _ref;
|
5146
|
-
useRender(() => vue.createVNode(VBtn, {
|
5147
|
-
"class":
|
5148
|
-
|
5149
|
-
}, slots));
|
5243
|
+
useRender(() => vue.createVNode(VBtn, vue.mergeProps(props, {
|
5244
|
+
"class": ['v-app-bar-nav-icon']
|
5245
|
+
}), slots));
|
5150
5246
|
return {};
|
5151
5247
|
}
|
5152
5248
|
});
|
5153
5249
|
|
5154
5250
|
const VToolbarItems = genericComponent()({
|
5155
5251
|
name: 'VToolbarItems',
|
5156
|
-
props:
|
5157
|
-
|
5158
|
-
|
5252
|
+
props: {
|
5253
|
+
...makeComponentProps(),
|
5254
|
+
...makeVariantProps({
|
5255
|
+
variant: 'text'
|
5256
|
+
})
|
5257
|
+
},
|
5159
5258
|
setup(props, _ref) {
|
5160
5259
|
let {
|
5161
5260
|
slots
|
@@ -5168,7 +5267,8 @@
|
|
5168
5267
|
}
|
5169
5268
|
});
|
5170
5269
|
useRender(() => vue.createVNode("div", {
|
5171
|
-
"class":
|
5270
|
+
"class": ['v-toolbar-items', props.class],
|
5271
|
+
"style": props.style
|
5172
5272
|
}, [slots.default?.()]));
|
5173
5273
|
return {};
|
5174
5274
|
}
|
@@ -5230,6 +5330,7 @@
|
|
5230
5330
|
type: String,
|
5231
5331
|
validator: val => allowedTypes.includes(val)
|
5232
5332
|
},
|
5333
|
+
...makeComponentProps(),
|
5233
5334
|
...makeDensityProps(),
|
5234
5335
|
...makeDimensionProps(),
|
5235
5336
|
...makeElevationProps(),
|
@@ -5312,8 +5413,8 @@
|
|
5312
5413
|
[`v-alert--border-${props.border === true ? 'start' : props.border}`]: true
|
5313
5414
|
}, {
|
5314
5415
|
'v-alert--prominent': props.prominent
|
5315
|
-
}, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value],
|
5316
|
-
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value],
|
5416
|
+
}, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
5417
|
+
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
|
5317
5418
|
"role": "alert"
|
5318
5419
|
}, {
|
5319
5420
|
default: () => [genOverlays(false, 'v-alert'), props.border && vue.createVNode("div", {
|
@@ -5407,6 +5508,7 @@
|
|
5407
5508
|
props: {
|
5408
5509
|
text: String,
|
5409
5510
|
clickable: Boolean,
|
5511
|
+
...makeComponentProps(),
|
5410
5512
|
...makeThemeProps()
|
5411
5513
|
},
|
5412
5514
|
setup(props, _ref) {
|
@@ -5416,7 +5518,8 @@
|
|
5416
5518
|
useRender(() => vue.createVNode("label", {
|
5417
5519
|
"class": ['v-label', {
|
5418
5520
|
'v-label--clickable': props.clickable
|
5419
|
-
}]
|
5521
|
+
}, props.class],
|
5522
|
+
"style": props.style
|
5420
5523
|
}, [props.text, slots.default?.()]));
|
5421
5524
|
return {};
|
5422
5525
|
}
|
@@ -5425,7 +5528,8 @@
|
|
5425
5528
|
const VFieldLabel = genericComponent()({
|
5426
5529
|
name: 'VFieldLabel',
|
5427
5530
|
props: {
|
5428
|
-
floating: Boolean
|
5531
|
+
floating: Boolean,
|
5532
|
+
...makeComponentProps()
|
5429
5533
|
},
|
5430
5534
|
setup(props, _ref) {
|
5431
5535
|
let {
|
@@ -5434,7 +5538,8 @@
|
|
5434
5538
|
useRender(() => vue.createVNode(VLabel, {
|
5435
5539
|
"class": ['v-field-label', {
|
5436
5540
|
'v-field-label--floating': props.floating
|
5437
|
-
}],
|
5541
|
+
}, props.class],
|
5542
|
+
"style": props.style,
|
5438
5543
|
"aria-hidden": props.floating || undefined
|
5439
5544
|
}, slots));
|
5440
5545
|
return {};
|
@@ -5485,6 +5590,7 @@
|
|
5485
5590
|
},
|
5486
5591
|
active: Boolean,
|
5487
5592
|
color: String,
|
5593
|
+
baseColor: String,
|
5488
5594
|
dirty: Boolean,
|
5489
5595
|
disabled: Boolean,
|
5490
5596
|
error: Boolean,
|
@@ -5502,9 +5608,10 @@
|
|
5502
5608
|
'onClick:clear': EventProp(),
|
5503
5609
|
'onClick:appendInner': EventProp(),
|
5504
5610
|
'onClick:prependInner': EventProp(),
|
5505
|
-
...
|
5611
|
+
...makeComponentProps(),
|
5506
5612
|
...makeLoaderProps(),
|
5507
|
-
...makeRoundedProps()
|
5613
|
+
...makeRoundedProps(),
|
5614
|
+
...makeThemeProps()
|
5508
5615
|
}, 'v-field');
|
5509
5616
|
const VField = genericComponent()({
|
5510
5617
|
name: 'VField',
|
@@ -5558,7 +5665,7 @@
|
|
5558
5665
|
textColorClasses,
|
5559
5666
|
textColorStyles
|
5560
5667
|
} = useTextColor(vue.computed(() => {
|
5561
|
-
return
|
5668
|
+
return props.error || props.disabled ? undefined : isActive.value && isFocused.value ? props.color : props.baseColor;
|
5562
5669
|
}));
|
5563
5670
|
vue.watch(isActive, val => {
|
5564
5671
|
if (hasLabel.value) {
|
@@ -5635,8 +5742,8 @@
|
|
5635
5742
|
'v-field--single-line': props.singleLine,
|
5636
5743
|
'v-field--no-label': !label,
|
5637
5744
|
[`v-field--variant-${props.variant}`]: true
|
5638
|
-
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value],
|
5639
|
-
"style": [backgroundColorStyles.value, textColorStyles.value],
|
5745
|
+
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, props.class],
|
5746
|
+
"style": [backgroundColorStyles.value, textColorStyles.value, props.style],
|
5640
5747
|
"onClick": onClick
|
5641
5748
|
}, attrs), [vue.createVNode("div", {
|
5642
5749
|
"class": "v-field__overlay"
|
@@ -5724,7 +5831,7 @@
|
|
5724
5831
|
});
|
5725
5832
|
// TODO: this is kinda slow, might be better to implicitly inherit props instead
|
5726
5833
|
function filterFieldProps(attrs) {
|
5727
|
-
const keys = Object.keys(VField.props).filter(k => !isOn(k));
|
5834
|
+
const keys = Object.keys(VField.props).filter(k => !isOn(k) && k !== 'class' && k !== 'style');
|
5728
5835
|
return pick(attrs, keys);
|
5729
5836
|
}
|
5730
5837
|
|
@@ -5739,6 +5846,7 @@
|
|
5739
5846
|
type: [Array, String],
|
5740
5847
|
default: () => []
|
5741
5848
|
},
|
5849
|
+
...makeComponentProps(),
|
5742
5850
|
...makeTransitionProps({
|
5743
5851
|
transition: {
|
5744
5852
|
component: VSlideYTransition,
|
@@ -5759,8 +5867,8 @@
|
|
5759
5867
|
useRender(() => vue.createVNode(MaybeTransition, {
|
5760
5868
|
"transition": props.transition,
|
5761
5869
|
"tag": "div",
|
5762
|
-
"class": ['v-messages', textColorClasses.value],
|
5763
|
-
"style": textColorStyles.value,
|
5870
|
+
"class": ['v-messages', textColorClasses.value, props.class],
|
5871
|
+
"style": [textColorStyles.value, props.style],
|
5764
5872
|
"role": "alert",
|
5765
5873
|
"aria-live": "polite"
|
5766
5874
|
}, {
|
@@ -6056,6 +6164,7 @@
|
|
6056
6164
|
},
|
6057
6165
|
'onClick:prepend': EventProp(),
|
6058
6166
|
'onClick:append': EventProp(),
|
6167
|
+
...makeComponentProps(),
|
6059
6168
|
...makeDensityProps(),
|
6060
6169
|
...makeValidationProps()
|
6061
6170
|
}, 'v-input');
|
@@ -6123,7 +6232,8 @@
|
|
6123
6232
|
const hasMessages = messages.value.length > 0;
|
6124
6233
|
const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);
|
6125
6234
|
return vue.createVNode("div", {
|
6126
|
-
"class": ['v-input', `v-input--${props.direction}`, densityClasses.value, validationClasses.value]
|
6235
|
+
"class": ['v-input', `v-input--${props.direction}`, densityClasses.value, validationClasses.value, props.class],
|
6236
|
+
"style": props.style
|
6127
6237
|
}, [hasPrepend && vue.createVNode("div", {
|
6128
6238
|
"key": "prepend",
|
6129
6239
|
"class": "v-input__prepend"
|
@@ -6166,6 +6276,7 @@
|
|
6166
6276
|
type: [Number, String],
|
6167
6277
|
default: 0
|
6168
6278
|
},
|
6279
|
+
...makeComponentProps(),
|
6169
6280
|
...makeTransitionProps({
|
6170
6281
|
transition: {
|
6171
6282
|
component: VSlideYTransition
|
@@ -6183,7 +6294,8 @@
|
|
6183
6294
|
"transition": props.transition
|
6184
6295
|
}, {
|
6185
6296
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
6186
|
-
"class":
|
6297
|
+
"class": ['v-counter', props.class],
|
6298
|
+
"style": props.style
|
6187
6299
|
}, [slots.default ? slots.default({
|
6188
6300
|
counter: counter.value,
|
6189
6301
|
max: props.max,
|
@@ -6333,7 +6445,7 @@
|
|
6333
6445
|
const vInputRef = vue.ref();
|
6334
6446
|
const vFieldRef = vue.ref();
|
6335
6447
|
const inputRef = vue.ref();
|
6336
|
-
const isActive = vue.computed(() => activeTypes.includes(props.type) || props.persistentPlaceholder || isFocused.value);
|
6448
|
+
const isActive = vue.computed(() => activeTypes.includes(props.type) || props.persistentPlaceholder || isFocused.value || props.active);
|
6337
6449
|
function onFocus() {
|
6338
6450
|
if (inputRef.value !== document.activeElement) {
|
6339
6451
|
inputRef.value?.focus();
|
@@ -6386,7 +6498,8 @@
|
|
6386
6498
|
'v-text-field--prefixed': props.prefix,
|
6387
6499
|
'v-text-field--suffixed': props.suffix,
|
6388
6500
|
'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant)
|
6389
|
-
}]
|
6501
|
+
}, props.class],
|
6502
|
+
"style": props.style
|
6390
6503
|
}, rootAttrs, inputProps, {
|
6391
6504
|
"focused": isFocused.value
|
6392
6505
|
}), {
|
@@ -6502,6 +6615,7 @@
|
|
6502
6615
|
type: String,
|
6503
6616
|
default: 'VSelectionControl'
|
6504
6617
|
},
|
6618
|
+
...makeComponentProps(),
|
6505
6619
|
...makeSelectionControlGroupProps()
|
6506
6620
|
},
|
6507
6621
|
emits: {
|
@@ -6549,7 +6663,8 @@
|
|
6549
6663
|
useRender(() => vue.createVNode("div", {
|
6550
6664
|
"class": ['v-selection-control-group', {
|
6551
6665
|
'v-selection-control-group--inline': props.inline
|
6552
|
-
}],
|
6666
|
+
}, props.class],
|
6667
|
+
"style": props.style,
|
6553
6668
|
"role": props.type === 'radio' ? 'radiogroup' : undefined
|
6554
6669
|
}, [slots.default?.()]));
|
6555
6670
|
return {};
|
@@ -6563,6 +6678,7 @@
|
|
6563
6678
|
trueValue: null,
|
6564
6679
|
falseValue: null,
|
6565
6680
|
value: null,
|
6681
|
+
...makeComponentProps(),
|
6566
6682
|
...makeSelectionControlGroupProps()
|
6567
6683
|
}, 'v-selection-control');
|
6568
6684
|
function useSelectionControl(props) {
|
@@ -6677,8 +6793,10 @@
|
|
6677
6793
|
'v-selection-control--focused': isFocused.value,
|
6678
6794
|
'v-selection-control--focus-visible': isFocusVisible.value,
|
6679
6795
|
'v-selection-control--inline': props.inline
|
6680
|
-
}, densityClasses.value]
|
6681
|
-
}, rootAttrs
|
6796
|
+
}, densityClasses.value, props.class]
|
6797
|
+
}, rootAttrs, {
|
6798
|
+
"style": props.style
|
6799
|
+
}), [vue.createVNode("div", {
|
6682
6800
|
"class": ['v-selection-control__wrapper', textColorClasses.value],
|
6683
6801
|
"style": textColorStyles.value
|
6684
6802
|
}, [slots.default?.(), vue.withDirectives(vue.createVNode("div", {
|
@@ -6760,9 +6878,9 @@
|
|
6760
6878
|
useRender(() => vue.createVNode(VSelectionControl, vue.mergeProps(props, {
|
6761
6879
|
"modelValue": model.value,
|
6762
6880
|
"onUpdate:modelValue": [$event => model.value = $event, onChange],
|
6763
|
-
"class":
|
6881
|
+
"class": ['v-checkbox-btn', props.class],
|
6882
|
+
"style": props.style,
|
6764
6883
|
"type": "checkbox",
|
6765
|
-
"inline": true,
|
6766
6884
|
"falseIcon": falseIcon.value,
|
6767
6885
|
"trueIcon": trueIcon.value,
|
6768
6886
|
"aria-checked": props.indeterminate ? 'mixed' : undefined
|
@@ -6800,10 +6918,11 @@
|
|
6800
6918
|
const [inputProps, _1] = VInput.filterProps(props);
|
6801
6919
|
const [checkboxProps, _2] = VCheckboxBtn.filterProps(props);
|
6802
6920
|
return vue.createVNode(VInput, vue.mergeProps({
|
6803
|
-
"class":
|
6921
|
+
"class": ['v-checkbox', props.class]
|
6804
6922
|
}, inputAttrs, inputProps, {
|
6805
6923
|
"id": id.value,
|
6806
|
-
"focused": isFocused.value
|
6924
|
+
"focused": isFocused.value,
|
6925
|
+
"style": props.style
|
6807
6926
|
}), {
|
6808
6927
|
...slots,
|
6809
6928
|
default: _ref2 => {
|
@@ -6834,6 +6953,7 @@
|
|
6834
6953
|
end: Boolean,
|
6835
6954
|
icon: IconValue,
|
6836
6955
|
image: String,
|
6956
|
+
...makeComponentProps(),
|
6837
6957
|
...makeDensityProps(),
|
6838
6958
|
...makeRoundedProps(),
|
6839
6959
|
...makeSizeProps(),
|
@@ -6872,8 +6992,8 @@
|
|
6872
6992
|
"class": ['v-avatar', {
|
6873
6993
|
'v-avatar--start': props.start,
|
6874
6994
|
'v-avatar--end': props.end
|
6875
|
-
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value],
|
6876
|
-
"style": [colorStyles.value, sizeStyles.value]
|
6995
|
+
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
6996
|
+
"style": [colorStyles.value, sizeStyles.value, props.style]
|
6877
6997
|
}, {
|
6878
6998
|
default: () => [props.image ? vue.createVNode(VImg, {
|
6879
6999
|
"key": "image",
|
@@ -6901,6 +7021,7 @@
|
|
6901
7021
|
type: Function,
|
6902
7022
|
default: deepEqual
|
6903
7023
|
},
|
7024
|
+
...makeComponentProps(),
|
6904
7025
|
...makeGroupProps({
|
6905
7026
|
selectedClass: 'v-chip--selected'
|
6906
7027
|
}),
|
@@ -6938,7 +7059,8 @@
|
|
6938
7059
|
useRender(() => vue.createVNode(props.tag, {
|
6939
7060
|
"class": ['v-chip-group', {
|
6940
7061
|
'v-chip-group--column': props.column
|
6941
|
-
}, themeClasses.value]
|
7062
|
+
}, themeClasses.value, props.class],
|
7063
|
+
"style": props.style
|
6942
7064
|
}, {
|
6943
7065
|
default: () => [slots.default?.({
|
6944
7066
|
isSelected,
|
@@ -6952,8 +7074,6 @@
|
|
6952
7074
|
}
|
6953
7075
|
});
|
6954
7076
|
|
6955
|
-
// Types
|
6956
|
-
|
6957
7077
|
const VChip = genericComponent()({
|
6958
7078
|
name: 'VChip',
|
6959
7079
|
directives: {
|
@@ -6998,6 +7118,7 @@
|
|
6998
7118
|
onClick: EventProp(),
|
6999
7119
|
onClickOnce: EventProp(),
|
7000
7120
|
...makeBorderProps(),
|
7121
|
+
...makeComponentProps(),
|
7001
7122
|
...makeDensityProps(),
|
7002
7123
|
...makeElevationProps(),
|
7003
7124
|
...makeGroupItemProps(),
|
@@ -7090,8 +7211,8 @@
|
|
7090
7211
|
'v-chip--link': isClickable.value,
|
7091
7212
|
'v-chip--filter': hasFilter,
|
7092
7213
|
'v-chip--pill': props.pill
|
7093
|
-
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value],
|
7094
|
-
"style": [hasColor ? colorStyles.value : undefined],
|
7214
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value, props.class],
|
7215
|
+
"style": [hasColor ? colorStyles.value : undefined, props.style],
|
7095
7216
|
"disabled": props.disabled || undefined,
|
7096
7217
|
"draggable": props.draggable,
|
7097
7218
|
"href": link.href.value,
|
@@ -7200,6 +7321,7 @@
|
|
7200
7321
|
length: [Number, String],
|
7201
7322
|
thickness: [Number, String],
|
7202
7323
|
vertical: Boolean,
|
7324
|
+
...makeComponentProps(),
|
7203
7325
|
...makeThemeProps()
|
7204
7326
|
},
|
7205
7327
|
setup(props, _ref) {
|
@@ -7228,8 +7350,8 @@
|
|
7228
7350
|
'v-divider': true,
|
7229
7351
|
'v-divider--inset': props.inset,
|
7230
7352
|
'v-divider--vertical': props.vertical
|
7231
|
-
}, themeClasses.value, textColorClasses.value],
|
7232
|
-
"style": [dividerStyles.value, textColorStyles.value],
|
7353
|
+
}, themeClasses.value, textColorClasses.value, props.class],
|
7354
|
+
"style": [dividerStyles.value, textColorStyles.value, props.style],
|
7233
7355
|
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
7234
7356
|
"role": `${attrs.role || 'separator'}`
|
7235
7357
|
}, null));
|
@@ -7713,7 +7835,9 @@
|
|
7713
7835
|
}
|
7714
7836
|
});
|
7715
7837
|
const makeVListGroupProps = propsFactory({
|
7838
|
+
/* @deprecated */
|
7716
7839
|
activeColor: String,
|
7840
|
+
baseColor: String,
|
7717
7841
|
color: String,
|
7718
7842
|
collapseIcon: {
|
7719
7843
|
type: IconValue,
|
@@ -7728,6 +7852,7 @@
|
|
7728
7852
|
fluid: Boolean,
|
7729
7853
|
subgroup: Boolean,
|
7730
7854
|
value: null,
|
7855
|
+
...makeComponentProps(),
|
7731
7856
|
...makeTagProps()
|
7732
7857
|
}, 'v-list-group');
|
7733
7858
|
const VListGroup = genericComponent()({
|
@@ -7763,6 +7888,7 @@
|
|
7763
7888
|
VListItem: {
|
7764
7889
|
active: isOpen.value,
|
7765
7890
|
activeColor: props.activeColor,
|
7891
|
+
baseColor: props.baseColor,
|
7766
7892
|
color: props.color,
|
7767
7893
|
prependIcon: props.prependIcon || props.subgroup && toggleIcon.value,
|
7768
7894
|
appendIcon: props.appendIcon || !props.subgroup && toggleIcon.value,
|
@@ -7776,7 +7902,8 @@
|
|
7776
7902
|
'v-list-group--fluid': props.fluid,
|
7777
7903
|
'v-list-group--subgroup': props.subgroup,
|
7778
7904
|
'v-list-group--open': isOpen.value
|
7779
|
-
}]
|
7905
|
+
}, props.class],
|
7906
|
+
"style": props.style
|
7780
7907
|
}, {
|
7781
7908
|
default: () => [slots.activator && vue.createVNode(VDefaultsProvider, {
|
7782
7909
|
"defaults": activatorDefaults.value
|
@@ -7821,9 +7948,11 @@
|
|
7821
7948
|
default: undefined
|
7822
7949
|
},
|
7823
7950
|
activeClass: String,
|
7951
|
+
/* @deprecated */
|
7824
7952
|
activeColor: String,
|
7825
7953
|
appendAvatar: String,
|
7826
7954
|
appendIcon: IconValue,
|
7955
|
+
baseColor: String,
|
7827
7956
|
disabled: Boolean,
|
7828
7957
|
lines: String,
|
7829
7958
|
link: {
|
@@ -7843,6 +7972,7 @@
|
|
7843
7972
|
onClick: EventProp(),
|
7844
7973
|
onClickOnce: EventProp(),
|
7845
7974
|
...makeBorderProps(),
|
7975
|
+
...makeComponentProps(),
|
7846
7976
|
...makeDensityProps(),
|
7847
7977
|
...makeDimensionProps(),
|
7848
7978
|
...makeElevationProps(),
|
@@ -7879,8 +8009,9 @@
|
|
7879
8009
|
const isLink = vue.computed(() => props.link !== false && link.isLink.value);
|
7880
8010
|
const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null && !!list));
|
7881
8011
|
const roundedProps = vue.computed(() => props.rounded || props.nav);
|
8012
|
+
const color = vue.computed(() => props.color ?? props.activeColor);
|
7882
8013
|
const variantProps = vue.computed(() => ({
|
7883
|
-
color: isActive.value ?
|
8014
|
+
color: isActive.value ? color.value ?? props.baseColor : props.baseColor,
|
7884
8015
|
variant: props.variant
|
7885
8016
|
}));
|
7886
8017
|
vue.watch(() => link.isActive?.value, val => {
|
@@ -7937,7 +8068,6 @@
|
|
7937
8068
|
}
|
7938
8069
|
useRender(() => {
|
7939
8070
|
const Tag = isLink.value ? 'a' : props.tag;
|
7940
|
-
const hasColor = !list || isSelected.value || isActive.value;
|
7941
8071
|
const hasTitle = slots.title || props.title;
|
7942
8072
|
const hasSubtitle = slots.subtitle || props.subtitle;
|
7943
8073
|
const hasAppendMedia = !!(props.appendAvatar || props.appendIcon);
|
@@ -7945,6 +8075,9 @@
|
|
7945
8075
|
const hasPrependMedia = !!(props.prependAvatar || props.prependIcon);
|
7946
8076
|
const hasPrepend = !!(hasPrependMedia || slots.prepend);
|
7947
8077
|
list?.updateHasPrepend(hasPrepend);
|
8078
|
+
if (props.activeColor) {
|
8079
|
+
deprecate('active-color', ['color', 'base-color']);
|
8080
|
+
}
|
7948
8081
|
return vue.withDirectives(vue.createVNode(Tag, {
|
7949
8082
|
"class": ['v-list-item', {
|
7950
8083
|
'v-list-item--active': isActive.value,
|
@@ -7953,8 +8086,8 @@
|
|
7953
8086
|
'v-list-item--nav': props.nav,
|
7954
8087
|
'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,
|
7955
8088
|
[`${props.activeClass}`]: props.activeClass && isActive.value
|
7956
|
-
}, themeClasses.value, borderClasses.value,
|
7957
|
-
"style": [
|
8089
|
+
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
8090
|
+
"style": [colorStyles.value, dimensionStyles.value, props.style],
|
7958
8091
|
"href": link.href.value,
|
7959
8092
|
"tabindex": isClickable.value ? 0 : undefined,
|
7960
8093
|
"onClick": onClick,
|
@@ -8047,6 +8180,7 @@
|
|
8047
8180
|
inset: Boolean,
|
8048
8181
|
sticky: Boolean,
|
8049
8182
|
title: String,
|
8183
|
+
...makeComponentProps(),
|
8050
8184
|
...makeTagProps()
|
8051
8185
|
},
|
8052
8186
|
setup(props, _ref) {
|
@@ -8063,10 +8197,10 @@
|
|
8063
8197
|
"class": ['v-list-subheader', {
|
8064
8198
|
'v-list-subheader--inset': props.inset,
|
8065
8199
|
'v-list-subheader--sticky': props.sticky
|
8066
|
-
}, textColorClasses.value],
|
8067
|
-
"style": {
|
8200
|
+
}, textColorClasses.value, props.class],
|
8201
|
+
"style": [{
|
8068
8202
|
textColorStyles
|
8069
|
-
}
|
8203
|
+
}, props.style]
|
8070
8204
|
}, {
|
8071
8205
|
default: () => [hasText && vue.createVNode("div", {
|
8072
8206
|
"class": "v-list-subheader__text"
|
@@ -8272,6 +8406,8 @@
|
|
8272
8406
|
const VList = genericComponent()({
|
8273
8407
|
name: 'VList',
|
8274
8408
|
props: {
|
8409
|
+
baseColor: String,
|
8410
|
+
/* @deprecated */
|
8275
8411
|
activeColor: String,
|
8276
8412
|
activeClass: String,
|
8277
8413
|
bgColor: String,
|
@@ -8286,6 +8422,7 @@
|
|
8286
8422
|
openStrategy: 'list'
|
8287
8423
|
}),
|
8288
8424
|
...makeBorderProps(),
|
8425
|
+
...makeComponentProps(),
|
8289
8426
|
...makeDensityProps(),
|
8290
8427
|
...makeDimensionProps(),
|
8291
8428
|
...makeElevationProps(),
|
@@ -8342,16 +8479,19 @@
|
|
8342
8479
|
} = useNested(props);
|
8343
8480
|
const lineClasses = vue.computed(() => props.lines ? `v-list--${props.lines}-line` : undefined);
|
8344
8481
|
const activeColor = vue.toRef(props, 'activeColor');
|
8482
|
+
const baseColor = vue.toRef(props, 'baseColor');
|
8345
8483
|
const color = vue.toRef(props, 'color');
|
8346
8484
|
createList();
|
8347
8485
|
provideDefaults({
|
8348
8486
|
VListGroup: {
|
8349
8487
|
activeColor,
|
8488
|
+
baseColor,
|
8350
8489
|
color
|
8351
8490
|
},
|
8352
8491
|
VListItem: {
|
8353
8492
|
activeClass: vue.toRef(props, 'activeClass'),
|
8354
8493
|
activeColor,
|
8494
|
+
baseColor,
|
8355
8495
|
color,
|
8356
8496
|
density: vue.toRef(props, 'density'),
|
8357
8497
|
disabled: vue.toRef(props, 'disabled'),
|
@@ -8387,27 +8527,8 @@
|
|
8387
8527
|
e.preventDefault();
|
8388
8528
|
}
|
8389
8529
|
function focus(location) {
|
8390
|
-
if (
|
8391
|
-
|
8392
|
-
const focusable = [...contentRef.value.querySelectorAll(targets)].filter(el => !el.hasAttribute('disabled'));
|
8393
|
-
const idx = focusable.indexOf(document.activeElement);
|
8394
|
-
if (!location) {
|
8395
|
-
if (!contentRef.value.contains(document.activeElement)) {
|
8396
|
-
focusable[0]?.focus();
|
8397
|
-
}
|
8398
|
-
} else if (location === 'first') {
|
8399
|
-
focusable[0]?.focus();
|
8400
|
-
} else if (location === 'last') {
|
8401
|
-
focusable.at(-1)?.focus();
|
8402
|
-
} else {
|
8403
|
-
let el;
|
8404
|
-
let idxx = idx;
|
8405
|
-
const inc = location === 'next' ? 1 : -1;
|
8406
|
-
do {
|
8407
|
-
idxx += inc;
|
8408
|
-
el = focusable[idxx];
|
8409
|
-
} while ((!el || el.offsetParent == null) && idxx < focusable.length && idxx >= 0);
|
8410
|
-
if (el) el.focus();else focus(location === 'next' ? 'first' : 'last');
|
8530
|
+
if (contentRef.value) {
|
8531
|
+
return focusChild(contentRef.value, location);
|
8411
8532
|
}
|
8412
8533
|
}
|
8413
8534
|
useRender(() => {
|
@@ -8416,8 +8537,8 @@
|
|
8416
8537
|
"class": ['v-list', {
|
8417
8538
|
'v-list--disabled': props.disabled,
|
8418
8539
|
'v-list--nav': props.nav
|
8419
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value],
|
8420
|
-
"style": [backgroundColorStyles.value, dimensionStyles.value],
|
8540
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class],
|
8541
|
+
"style": [backgroundColorStyles.value, dimensionStyles.value, props.style],
|
8421
8542
|
"role": "listbox",
|
8422
8543
|
"aria-activedescendant": undefined,
|
8423
8544
|
"onFocusin": onFocusin,
|
@@ -8445,6 +8566,7 @@
|
|
8445
8566
|
props: {
|
8446
8567
|
start: Boolean,
|
8447
8568
|
end: Boolean,
|
8569
|
+
...makeComponentProps(),
|
8448
8570
|
...makeTagProps()
|
8449
8571
|
},
|
8450
8572
|
setup(props, _ref) {
|
@@ -8455,7 +8577,8 @@
|
|
8455
8577
|
"class": ['v-list-item-action', {
|
8456
8578
|
'v-list-item-action--start': props.start,
|
8457
8579
|
'v-list-item-action--end': props.end
|
8458
|
-
}]
|
8580
|
+
}, props.class],
|
8581
|
+
"style": props.style
|
8459
8582
|
}, slots));
|
8460
8583
|
return {};
|
8461
8584
|
}
|
@@ -8466,6 +8589,7 @@
|
|
8466
8589
|
props: {
|
8467
8590
|
start: Boolean,
|
8468
8591
|
end: Boolean,
|
8592
|
+
...makeComponentProps(),
|
8469
8593
|
...makeTagProps()
|
8470
8594
|
},
|
8471
8595
|
setup(props, _ref) {
|
@@ -8477,7 +8601,8 @@
|
|
8477
8601
|
"class": ['v-list-item-media', {
|
8478
8602
|
'v-list-item-media--start': props.start,
|
8479
8603
|
'v-list-item-media--end': props.end
|
8480
|
-
}]
|
8604
|
+
}, props.class],
|
8605
|
+
"style": props.style
|
8481
8606
|
}, slots);
|
8482
8607
|
});
|
8483
8608
|
return {};
|
@@ -9387,14 +9512,14 @@
|
|
9387
9512
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultDisplayOptions;
|
9388
9513
|
return mergeDeep(defaultDisplayOptions, options);
|
9389
9514
|
};
|
9390
|
-
function getClientWidth(
|
9391
|
-
return IN_BROWSER && !
|
9515
|
+
function getClientWidth(ssr) {
|
9516
|
+
return IN_BROWSER && !ssr ? window.innerWidth : typeof ssr === 'object' && ssr.clientWidth || 0;
|
9392
9517
|
}
|
9393
|
-
function getClientHeight(
|
9394
|
-
return IN_BROWSER && !
|
9518
|
+
function getClientHeight(ssr) {
|
9519
|
+
return IN_BROWSER && !ssr ? window.innerHeight : typeof ssr === 'object' && ssr.clientHeight || 0;
|
9395
9520
|
}
|
9396
|
-
function getPlatform(
|
9397
|
-
const userAgent = IN_BROWSER && !
|
9521
|
+
function getPlatform(ssr) {
|
9522
|
+
const userAgent = IN_BROWSER && !ssr ? window.navigator.userAgent : 'ssr';
|
9398
9523
|
function match(regexp) {
|
9399
9524
|
return Boolean(userAgent.match(regexp));
|
9400
9525
|
}
|
@@ -9718,6 +9843,7 @@
|
|
9718
9843
|
default: 2000
|
9719
9844
|
},
|
9720
9845
|
...makeActivatorProps(),
|
9846
|
+
...makeComponentProps(),
|
9721
9847
|
...makeDimensionProps(),
|
9722
9848
|
...makeLazyProps(),
|
9723
9849
|
...makeLocationStrategyProps(),
|
@@ -9885,10 +10011,10 @@
|
|
9885
10011
|
'v-overlay--absolute': props.absolute || props.contained,
|
9886
10012
|
'v-overlay--active': isActive.value,
|
9887
10013
|
'v-overlay--contained': props.contained
|
9888
|
-
}, themeClasses.value, rtlClasses.value],
|
10014
|
+
}, themeClasses.value, rtlClasses.value, props.class],
|
9889
10015
|
"style": [stackStyles.value, {
|
9890
10016
|
top: convertToUnit(top.value)
|
9891
|
-
}],
|
10017
|
+
}, props.style],
|
9892
10018
|
"ref": root
|
9893
10019
|
}, scopeId, attrs), [vue.createVNode(Scrim, vue.mergeProps({
|
9894
10020
|
"color": scrimColor,
|
@@ -9994,7 +10120,8 @@
|
|
9994
10120
|
const [overlayProps] = VOverlay.filterProps(props);
|
9995
10121
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
9996
10122
|
"ref": overlay,
|
9997
|
-
"class": ['v-menu']
|
10123
|
+
"class": ['v-menu', props.class],
|
10124
|
+
"style": props.style
|
9998
10125
|
}, overlayProps, {
|
9999
10126
|
"modelValue": isActive.value,
|
10000
10127
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
@@ -10213,7 +10340,8 @@
|
|
10213
10340
|
'v-select--chips': !!props.chips,
|
10214
10341
|
[`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,
|
10215
10342
|
'v-select--selected': model.value.length
|
10216
|
-
}],
|
10343
|
+
}, props.class],
|
10344
|
+
"style": props.style,
|
10217
10345
|
"appendInnerIcon": props.menuIcon,
|
10218
10346
|
"readonly": true,
|
10219
10347
|
"placeholder": placeholder,
|
@@ -10264,11 +10392,13 @@
|
|
10264
10392
|
let {
|
10265
10393
|
isSelected
|
10266
10394
|
} = _ref2;
|
10267
|
-
return props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
10395
|
+
return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
10268
10396
|
"modelValue": isSelected,
|
10269
10397
|
"ripple": false,
|
10270
10398
|
"tabindex": "-1"
|
10271
|
-
}, null) : undefined
|
10399
|
+
}, null) : undefined, item.props.prependIcon && vue.createVNode(VIcon, {
|
10400
|
+
"icon": item.props.prependIcon
|
10401
|
+
}, null)]);
|
10272
10402
|
}
|
10273
10403
|
});
|
10274
10404
|
}), slots['append-item']?.()]
|
@@ -10281,6 +10411,10 @@
|
|
10281
10411
|
}
|
10282
10412
|
const slotProps = {
|
10283
10413
|
'onClick:close': onChipClose,
|
10414
|
+
onMousedown(e) {
|
10415
|
+
e.preventDefault();
|
10416
|
+
e.stopPropagation();
|
10417
|
+
},
|
10284
10418
|
modelValue: true,
|
10285
10419
|
'onUpdate:modelValue': undefined
|
10286
10420
|
};
|
@@ -10656,7 +10790,8 @@
|
|
10656
10790
|
'v-autocomplete--selecting-index': selectionIndex.value > -1,
|
10657
10791
|
[`v-autocomplete--${props.multiple ? 'multiple' : 'single'}`]: true,
|
10658
10792
|
'v-autocomplete--selection-slot': !!slots.selection
|
10659
|
-
}],
|
10793
|
+
}, props.class],
|
10794
|
+
"style": props.style,
|
10660
10795
|
"appendInnerIcon": props.menuIcon,
|
10661
10796
|
"readonly": props.readonly,
|
10662
10797
|
"placeholder": isDirty ? undefined : props.placeholder,
|
@@ -10702,11 +10837,13 @@
|
|
10702
10837
|
let {
|
10703
10838
|
isSelected
|
10704
10839
|
} = _ref2;
|
10705
|
-
return props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
10840
|
+
return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
10706
10841
|
"modelValue": isSelected,
|
10707
10842
|
"ripple": false,
|
10708
10843
|
"tabindex": "-1"
|
10709
|
-
}, null) : undefined
|
10844
|
+
}, null) : undefined, item.props.prependIcon && vue.createVNode(VIcon, {
|
10845
|
+
"icon": item.props.prependIcon
|
10846
|
+
}, null)]);
|
10710
10847
|
},
|
10711
10848
|
title: () => {
|
10712
10849
|
return isPristine.value ? item.title : highlightResult$1(item.title, getMatches(item)?.title, search.value?.length ?? 0);
|
@@ -10721,6 +10858,10 @@
|
|
10721
10858
|
}
|
10722
10859
|
const slotProps = {
|
10723
10860
|
'onClick:close': onChipClose,
|
10861
|
+
onMousedown(e) {
|
10862
|
+
e.preventDefault();
|
10863
|
+
e.stopPropagation();
|
10864
|
+
},
|
10724
10865
|
modelValue: true,
|
10725
10866
|
'onUpdate:modelValue': undefined
|
10726
10867
|
};
|
@@ -10770,8 +10911,6 @@
|
|
10770
10911
|
}
|
10771
10912
|
});
|
10772
10913
|
|
10773
|
-
// Types
|
10774
|
-
|
10775
10914
|
const VBadge = genericComponent()({
|
10776
10915
|
name: 'VBadge',
|
10777
10916
|
inheritAttrs: false,
|
@@ -10795,6 +10934,7 @@
|
|
10795
10934
|
offsetX: [Number, String],
|
10796
10935
|
offsetY: [Number, String],
|
10797
10936
|
textColor: String,
|
10937
|
+
...makeComponentProps(),
|
10798
10938
|
...makeLocationProps({
|
10799
10939
|
location: 'top end'
|
10800
10940
|
}),
|
@@ -10839,8 +10979,10 @@
|
|
10839
10979
|
'v-badge--dot': props.dot,
|
10840
10980
|
'v-badge--floating': props.floating,
|
10841
10981
|
'v-badge--inline': props.inline
|
10842
|
-
}]
|
10843
|
-
}, attrs
|
10982
|
+
}, props.class]
|
10983
|
+
}, attrs, {
|
10984
|
+
"style": props.style
|
10985
|
+
}), {
|
10844
10986
|
default: () => [vue.createVNode("div", {
|
10845
10987
|
"class": "v-badge__wrapper"
|
10846
10988
|
}, [ctx.slots.default?.(), vue.createVNode(MaybeTransition, {
|
@@ -10867,7 +11009,8 @@
|
|
10867
11009
|
name: 'VBannerActions',
|
10868
11010
|
props: {
|
10869
11011
|
color: String,
|
10870
|
-
density: String
|
11012
|
+
density: String,
|
11013
|
+
...makeComponentProps()
|
10871
11014
|
},
|
10872
11015
|
setup(props, _ref) {
|
10873
11016
|
let {
|
@@ -10881,7 +11024,8 @@
|
|
10881
11024
|
}
|
10882
11025
|
});
|
10883
11026
|
useRender(() => vue.createVNode("div", {
|
10884
|
-
"class":
|
11027
|
+
"class": ['v-banner-actions', props.class],
|
11028
|
+
"style": props.style
|
10885
11029
|
}, [slots.default?.()]));
|
10886
11030
|
return {};
|
10887
11031
|
}
|
@@ -10902,6 +11046,7 @@
|
|
10902
11046
|
sticky: Boolean,
|
10903
11047
|
text: String,
|
10904
11048
|
...makeBorderProps(),
|
11049
|
+
...makeComponentProps(),
|
10905
11050
|
...makeDensityProps(),
|
10906
11051
|
...makeDimensionProps(),
|
10907
11052
|
...makeElevationProps(),
|
@@ -10959,8 +11104,8 @@
|
|
10959
11104
|
'v-banner--stacked': props.stacked || mobile.value,
|
10960
11105
|
'v-banner--sticky': props.sticky,
|
10961
11106
|
[`v-banner--${props.lines}-line`]: !!props.lines
|
10962
|
-
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value],
|
10963
|
-
"style": [dimensionStyles.value, locationStyles.value],
|
11107
|
+
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
11108
|
+
"style": [dimensionStyles.value, locationStyles.value, props.style],
|
10964
11109
|
"role": "banner"
|
10965
11110
|
}, {
|
10966
11111
|
default: () => [hasPrepend && vue.createVNode("div", {
|
@@ -11016,6 +11161,7 @@
|
|
11016
11161
|
default: true
|
11017
11162
|
},
|
11018
11163
|
...makeBorderProps(),
|
11164
|
+
...makeComponentProps(),
|
11019
11165
|
...makeDensityProps(),
|
11020
11166
|
...makeElevationProps(),
|
11021
11167
|
...makeRoundedProps(),
|
@@ -11090,11 +11236,11 @@
|
|
11090
11236
|
'v-bottom-navigation--active': isActive.value,
|
11091
11237
|
'v-bottom-navigation--grow': props.grow,
|
11092
11238
|
'v-bottom-navigation--shift': props.mode === 'shift'
|
11093
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value],
|
11239
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
11094
11240
|
"style": [backgroundColorStyles.value, layoutItemStyles.value, {
|
11095
11241
|
height: convertToUnit(height.value),
|
11096
11242
|
transform: `translateY(${convertToUnit(!isActive.value ? 100 : 0, '%')})`
|
11097
|
-
}, ssrBootStyles.value]
|
11243
|
+
}, ssrBootStyles.value, props.style]
|
11098
11244
|
}, {
|
11099
11245
|
default: () => [slots.default && vue.createVNode("div", {
|
11100
11246
|
"class": "v-bottom-navigation__content"
|
@@ -11108,14 +11254,16 @@
|
|
11108
11254
|
const VBreadcrumbsDivider = genericComponent()({
|
11109
11255
|
name: 'VBreadcrumbsDivider',
|
11110
11256
|
props: {
|
11111
|
-
divider: [Number, String]
|
11257
|
+
divider: [Number, String],
|
11258
|
+
...makeComponentProps()
|
11112
11259
|
},
|
11113
11260
|
setup(props, _ref) {
|
11114
11261
|
let {
|
11115
11262
|
slots
|
11116
11263
|
} = _ref;
|
11117
11264
|
useRender(() => vue.createVNode("li", {
|
11118
|
-
"class":
|
11265
|
+
"class": ['v-breadcrumbs-divider', props.class],
|
11266
|
+
"style": props.style
|
11119
11267
|
}, [slots?.default?.() ?? props.divider]));
|
11120
11268
|
return {};
|
11121
11269
|
}
|
@@ -11130,6 +11278,7 @@
|
|
11130
11278
|
color: String,
|
11131
11279
|
disabled: Boolean,
|
11132
11280
|
title: String,
|
11281
|
+
...makeComponentProps(),
|
11133
11282
|
...makeRouterProps(),
|
11134
11283
|
...makeTagProps({
|
11135
11284
|
tag: 'li'
|
@@ -11155,8 +11304,8 @@
|
|
11155
11304
|
'v-breadcrumbs-item--disabled': props.disabled,
|
11156
11305
|
'v-breadcrumbs-item--link': link.isLink.value,
|
11157
11306
|
[`${props.activeClass}`]: isActive.value && props.activeClass
|
11158
|
-
}, textColorClasses.value],
|
11159
|
-
"style": [textColorStyles.value],
|
11307
|
+
}, textColorClasses.value, props.class],
|
11308
|
+
"style": [textColorStyles.value, props.style],
|
11160
11309
|
"href": link.href.value,
|
11161
11310
|
"aria-current": isActive.value ? 'page' : undefined,
|
11162
11311
|
"onClick": link.navigate
|
@@ -11187,6 +11336,7 @@
|
|
11187
11336
|
type: Array,
|
11188
11337
|
default: () => []
|
11189
11338
|
},
|
11339
|
+
...makeComponentProps(),
|
11190
11340
|
...makeDensityProps(),
|
11191
11341
|
...makeRoundedProps(),
|
11192
11342
|
...makeTagProps({
|
@@ -11218,11 +11368,22 @@
|
|
11218
11368
|
disabled: vue.toRef(props, 'disabled')
|
11219
11369
|
}
|
11220
11370
|
});
|
11371
|
+
const items = vue.computed(() => props.items.map(item => {
|
11372
|
+
return typeof item === 'string' ? {
|
11373
|
+
item: {
|
11374
|
+
title: item
|
11375
|
+
},
|
11376
|
+
raw: item
|
11377
|
+
} : {
|
11378
|
+
item,
|
11379
|
+
raw: item
|
11380
|
+
};
|
11381
|
+
}));
|
11221
11382
|
useRender(() => {
|
11222
11383
|
const hasPrepend = !!(slots.prepend || props.icon);
|
11223
11384
|
return vue.createVNode(props.tag, {
|
11224
|
-
"class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value],
|
11225
|
-
"style": backgroundColorStyles.value
|
11385
|
+
"class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value, props.class],
|
11386
|
+
"style": [backgroundColorStyles.value, props.style]
|
11226
11387
|
}, {
|
11227
11388
|
default: () => [hasPrepend && vue.createVNode("div", {
|
11228
11389
|
"key": "prepend",
|
@@ -11240,33 +11401,36 @@
|
|
11240
11401
|
start: true
|
11241
11402
|
}
|
11242
11403
|
}
|
11243
|
-
}, slots.prepend)]),
|
11244
|
-
|
11245
|
-
"disabled": index >= array.length - 1
|
11246
|
-
}, typeof item === 'string' ? {
|
11247
|
-
title: item
|
11248
|
-
} : item), {
|
11249
|
-
default: slots.title ? () => slots.title?.({
|
11250
|
-
item,
|
11251
|
-
index
|
11252
|
-
}) : undefined
|
11253
|
-
}), index < array.length - 1 && vue.createVNode(VBreadcrumbsDivider, null, {
|
11254
|
-
default: slots.divider ? () => slots.divider?.({
|
11404
|
+
}, slots.prepend)]), items.value.map((_ref2, index, array) => {
|
11405
|
+
let {
|
11255
11406
|
item,
|
11256
|
-
|
11257
|
-
}
|
11258
|
-
|
11407
|
+
raw
|
11408
|
+
} = _ref2;
|
11409
|
+
return vue.createVNode(vue.Fragment, null, [vue.createVNode(VBreadcrumbsItem, vue.mergeProps({
|
11410
|
+
"key": item.title,
|
11411
|
+
"disabled": index >= array.length - 1
|
11412
|
+
}, item), {
|
11413
|
+
default: slots.title ? () => slots.title?.({
|
11414
|
+
item: raw,
|
11415
|
+
index
|
11416
|
+
}) : undefined
|
11417
|
+
}), index < array.length - 1 && vue.createVNode(VBreadcrumbsDivider, null, {
|
11418
|
+
default: slots.divider ? () => slots.divider?.({
|
11419
|
+
item: raw,
|
11420
|
+
index
|
11421
|
+
}) : undefined
|
11422
|
+
})]);
|
11423
|
+
}), slots.default?.()]
|
11259
11424
|
});
|
11260
11425
|
});
|
11261
11426
|
return {};
|
11262
11427
|
}
|
11263
11428
|
});
|
11264
11429
|
|
11265
|
-
|
11266
|
-
|
11267
|
-
const VCardActions = defineComponent({
|
11430
|
+
const VCardActions = genericComponent()({
|
11268
11431
|
name: 'VCardActions',
|
11269
|
-
|
11432
|
+
props: makeComponentProps(),
|
11433
|
+
setup(props, _ref) {
|
11270
11434
|
let {
|
11271
11435
|
slots
|
11272
11436
|
} = _ref;
|
@@ -11276,7 +11440,8 @@
|
|
11276
11440
|
}
|
11277
11441
|
});
|
11278
11442
|
useRender(() => vue.createVNode("div", {
|
11279
|
-
"class":
|
11443
|
+
"class": ['v-card-actions', props.class],
|
11444
|
+
"style": props.style
|
11280
11445
|
}, [slots.default?.()]));
|
11281
11446
|
return {};
|
11282
11447
|
}
|
@@ -11286,8 +11451,6 @@
|
|
11286
11451
|
|
11287
11452
|
const VCardTitle = createSimpleFunctional('v-card-title');
|
11288
11453
|
|
11289
|
-
// Types
|
11290
|
-
|
11291
11454
|
const VCardItem = genericComponent()({
|
11292
11455
|
name: 'VCardItem',
|
11293
11456
|
props: {
|
@@ -11297,6 +11460,7 @@
|
|
11297
11460
|
prependIcon: IconValue,
|
11298
11461
|
subtitle: String,
|
11299
11462
|
title: String,
|
11463
|
+
...makeComponentProps(),
|
11300
11464
|
...makeDensityProps()
|
11301
11465
|
},
|
11302
11466
|
setup(props, _ref) {
|
@@ -11311,7 +11475,8 @@
|
|
11311
11475
|
const hasTitle = !!(props.title || slots.title);
|
11312
11476
|
const hasSubtitle = !!(props.subtitle || slots.subtitle);
|
11313
11477
|
return vue.createVNode("div", {
|
11314
|
-
"class":
|
11478
|
+
"class": ['v-card-item', props.class],
|
11479
|
+
"style": props.style
|
11315
11480
|
}, [hasPrepend && vue.createVNode("div", {
|
11316
11481
|
"key": "prepend",
|
11317
11482
|
"class": "v-card-item__prepend"
|
@@ -11393,8 +11558,8 @@
|
|
11393
11558
|
subtitle: String,
|
11394
11559
|
text: String,
|
11395
11560
|
title: String,
|
11396
|
-
...makeThemeProps(),
|
11397
11561
|
...makeBorderProps(),
|
11562
|
+
...makeComponentProps(),
|
11398
11563
|
...makeDensityProps(),
|
11399
11564
|
...makeDimensionProps(),
|
11400
11565
|
...makeElevationProps(),
|
@@ -11404,6 +11569,7 @@
|
|
11404
11569
|
...makeRoundedProps(),
|
11405
11570
|
...makeRouterProps(),
|
11406
11571
|
...makeTagProps(),
|
11572
|
+
...makeThemeProps(),
|
11407
11573
|
...makeVariantProps({
|
11408
11574
|
variant: 'elevated'
|
11409
11575
|
})
|
@@ -11464,8 +11630,8 @@
|
|
11464
11630
|
'v-card--flat': props.flat,
|
11465
11631
|
'v-card--hover': props.hover && !(props.disabled || props.flat),
|
11466
11632
|
'v-card--link': isClickable.value
|
11467
|
-
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value],
|
11468
|
-
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value],
|
11633
|
+
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
11634
|
+
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
|
11469
11635
|
"href": link.href.value,
|
11470
11636
|
"onClick": isClickable.value && link.navigate,
|
11471
11637
|
"tabindex": props.disabled ? -1 : undefined
|
@@ -11661,6 +11827,7 @@
|
|
11661
11827
|
mandatory: {
|
11662
11828
|
default: 'force'
|
11663
11829
|
},
|
11830
|
+
...makeComponentProps(),
|
11664
11831
|
...makeTagProps(),
|
11665
11832
|
...makeThemeProps()
|
11666
11833
|
}, 'v-window');
|
@@ -11776,7 +11943,8 @@
|
|
11776
11943
|
"ref": rootRef,
|
11777
11944
|
"class": ['v-window', {
|
11778
11945
|
'v-window--show-arrows-on-hover': props.showArrows === 'hover'
|
11779
|
-
}, themeClasses.value]
|
11946
|
+
}, themeClasses.value, props.class],
|
11947
|
+
"style": props.style
|
11780
11948
|
}, {
|
11781
11949
|
default: () => [vue.createVNode("div", {
|
11782
11950
|
"class": "v-window__container",
|
@@ -11861,10 +12029,10 @@
|
|
11861
12029
|
"class": ['v-carousel', {
|
11862
12030
|
'v-carousel--hide-delimiter-background': props.hideDelimiterBackground,
|
11863
12031
|
'v-carousel--vertical-delimiters': props.verticalDelimiters
|
11864
|
-
}],
|
11865
|
-
"style": {
|
12032
|
+
}, props.class],
|
12033
|
+
"style": [{
|
11866
12034
|
height: convertToUnit(props.height)
|
11867
|
-
},
|
12035
|
+
}, props.style],
|
11868
12036
|
"continuous": true,
|
11869
12037
|
"mandatory": "force",
|
11870
12038
|
"showArrows": props.showArrows
|
@@ -11930,6 +12098,7 @@
|
|
11930
12098
|
type: [Boolean, String],
|
11931
12099
|
default: undefined
|
11932
12100
|
},
|
12101
|
+
...makeComponentProps(),
|
11933
12102
|
...makeGroupItemProps(),
|
11934
12103
|
...makeLazyProps()
|
11935
12104
|
},
|
@@ -12016,7 +12185,8 @@
|
|
12016
12185
|
"disabled": !isBooted.value
|
12017
12186
|
}, {
|
12018
12187
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
12019
|
-
"class": ['v-window-item', groupItem.selectedClass.value]
|
12188
|
+
"class": ['v-window-item', groupItem.selectedClass.value, props.class],
|
12189
|
+
"style": props.style
|
12020
12190
|
}, [hasContent.value && slots.default?.()]), [[vue.vShow, groupItem.isSelected.value]])]
|
12021
12191
|
}));
|
12022
12192
|
return {};
|
@@ -12029,7 +12199,8 @@
|
|
12029
12199
|
name: 'VCarouselItem',
|
12030
12200
|
inheritAttrs: false,
|
12031
12201
|
props: {
|
12032
|
-
value: null
|
12202
|
+
value: null,
|
12203
|
+
...makeComponentProps()
|
12033
12204
|
},
|
12034
12205
|
setup(props, _ref) {
|
12035
12206
|
let {
|
@@ -12037,7 +12208,8 @@
|
|
12037
12208
|
attrs
|
12038
12209
|
} = _ref;
|
12039
12210
|
useRender(() => vue.createVNode(VWindowItem, {
|
12040
|
-
"class":
|
12211
|
+
"class": ['v-carousel-item', props.class],
|
12212
|
+
"style": props.style,
|
12041
12213
|
"value": props.value
|
12042
12214
|
}, {
|
12043
12215
|
default: () => [vue.createVNode(VImg, attrs, slots)]
|
@@ -12050,6 +12222,7 @@
|
|
12050
12222
|
const makeVSheetProps = propsFactory({
|
12051
12223
|
color: String,
|
12052
12224
|
...makeBorderProps(),
|
12225
|
+
...makeComponentProps(),
|
12053
12226
|
...makeDimensionProps(),
|
12054
12227
|
...makeElevationProps(),
|
12055
12228
|
...makeLocationProps(),
|
@@ -12093,8 +12266,8 @@
|
|
12093
12266
|
roundedClasses
|
12094
12267
|
} = useRounded(props);
|
12095
12268
|
useRender(() => vue.createVNode(props.tag, {
|
12096
|
-
"class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value],
|
12097
|
-
"style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value]
|
12269
|
+
"class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class],
|
12270
|
+
"style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style]
|
12098
12271
|
}, slots));
|
12099
12272
|
return {};
|
12100
12273
|
}
|
@@ -12120,7 +12293,8 @@
|
|
12120
12293
|
width: {
|
12121
12294
|
type: [Number, String],
|
12122
12295
|
default: 300
|
12123
|
-
}
|
12296
|
+
},
|
12297
|
+
...makeComponentProps()
|
12124
12298
|
},
|
12125
12299
|
emits: {
|
12126
12300
|
'update:color': color => true,
|
@@ -12265,7 +12439,8 @@
|
|
12265
12439
|
vue.onMounted(() => updateCanvas());
|
12266
12440
|
useRender(() => vue.createVNode("div", {
|
12267
12441
|
"ref": resizeRef,
|
12268
|
-
"class":
|
12442
|
+
"class": ['v-color-picker-canvas', props.class],
|
12443
|
+
"style": props.style,
|
12269
12444
|
"onClick": handleClick,
|
12270
12445
|
"onMousedown": handleMouseDown,
|
12271
12446
|
"onTouchstart": handleMouseDown
|
@@ -12287,27 +12462,6 @@
|
|
12287
12462
|
|
12288
12463
|
// Types
|
12289
12464
|
|
12290
|
-
function has(obj, key) {
|
12291
|
-
return key.every(k => obj.hasOwnProperty(k));
|
12292
|
-
}
|
12293
|
-
function parseColor(color) {
|
12294
|
-
if (!color) return null;
|
12295
|
-
let hsva = null;
|
12296
|
-
if (typeof color === 'string') {
|
12297
|
-
const hex = parseHex(color);
|
12298
|
-
hsva = HexToHSV(hex);
|
12299
|
-
}
|
12300
|
-
if (typeof color === 'object') {
|
12301
|
-
if (has(color, ['r', 'g', 'b'])) {
|
12302
|
-
hsva = RGBtoHSV(color);
|
12303
|
-
} else if (has(color, ['h', 's', 'l'])) {
|
12304
|
-
hsva = HSLtoHSV(color);
|
12305
|
-
} else if (has(color, ['h', 's', 'v'])) {
|
12306
|
-
hsva = color;
|
12307
|
-
}
|
12308
|
-
}
|
12309
|
-
return hsva;
|
12310
|
-
}
|
12311
12465
|
function stripAlpha(color, stripAlpha) {
|
12312
12466
|
if (stripAlpha) {
|
12313
12467
|
const {
|
@@ -12498,7 +12652,8 @@
|
|
12498
12652
|
type: Array,
|
12499
12653
|
default: () => Object.keys(modes),
|
12500
12654
|
validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))
|
12501
|
-
}
|
12655
|
+
},
|
12656
|
+
...makeComponentProps()
|
12502
12657
|
},
|
12503
12658
|
emits: {
|
12504
12659
|
'update:color': color => true,
|
@@ -12538,7 +12693,8 @@
|
|
12538
12693
|
});
|
12539
12694
|
});
|
12540
12695
|
useRender(() => vue.createVNode("div", {
|
12541
|
-
"class":
|
12696
|
+
"class": ['v-color-picker-edit', props.class],
|
12697
|
+
"style": props.style
|
12542
12698
|
}, [inputs.value?.map(props => vue.createVNode(VColorPickerInput, props, null)), enabledModes.value.length > 1 && vue.createVNode(VBtn, {
|
12543
12699
|
"icon": "$unfold",
|
12544
12700
|
"size": "x-small",
|
@@ -12857,7 +13013,8 @@
|
|
12857
13013
|
ripple: {
|
12858
13014
|
type: Boolean,
|
12859
13015
|
default: true
|
12860
|
-
}
|
13016
|
+
},
|
13017
|
+
...makeComponentProps()
|
12861
13018
|
},
|
12862
13019
|
emits: {
|
12863
13020
|
'update:modelValue': v => true
|
@@ -12935,11 +13092,11 @@
|
|
12935
13092
|
"class": ['v-slider-thumb', {
|
12936
13093
|
'v-slider-thumb--focused': props.focused,
|
12937
13094
|
'v-slider-thumb--pressed': props.focused && mousePressed.value
|
12938
|
-
}],
|
12939
|
-
"style": {
|
13095
|
+
}, props.class],
|
13096
|
+
"style": [{
|
12940
13097
|
'--v-slider-thumb-position': positionPercentage,
|
12941
13098
|
'--v-slider-thumb-size': convertToUnit(thumbSize.value)
|
12942
|
-
},
|
13099
|
+
}, props.style],
|
12943
13100
|
"role": "slider",
|
12944
13101
|
"tabindex": disabled.value ? -1 : 0,
|
12945
13102
|
"aria-valuemin": props.min,
|
@@ -12985,7 +13142,8 @@
|
|
12985
13142
|
stop: {
|
12986
13143
|
type: Number,
|
12987
13144
|
required: true
|
12988
|
-
}
|
13145
|
+
},
|
13146
|
+
...makeComponentProps()
|
12989
13147
|
},
|
12990
13148
|
emits: {},
|
12991
13149
|
setup(props, _ref) {
|
@@ -13060,12 +13218,12 @@
|
|
13060
13218
|
});
|
13061
13219
|
useRender(() => {
|
13062
13220
|
return vue.createVNode("div", {
|
13063
|
-
"class": ['v-slider-track', roundedClasses.value],
|
13064
|
-
"style": {
|
13221
|
+
"class": ['v-slider-track', roundedClasses.value, props.class],
|
13222
|
+
"style": [{
|
13065
13223
|
'--v-slider-track-size': convertToUnit(trackSize.value),
|
13066
13224
|
'--v-slider-tick-size': convertToUnit(tickSize.value),
|
13067
13225
|
direction: !vertical.value ? horizontalDirection.value : undefined
|
13068
|
-
}
|
13226
|
+
}, props.style]
|
13069
13227
|
}, [vue.createVNode("div", {
|
13070
13228
|
"class": ['v-slider-track__background', trackColorClasses.value, {
|
13071
13229
|
'v-slider-track__background--opacity': !!color.value || !trackFillColor.value
|
@@ -13168,7 +13326,8 @@
|
|
13168
13326
|
'v-slider--focused': isFocused.value,
|
13169
13327
|
'v-slider--pressed': mousePressed.value,
|
13170
13328
|
'v-slider--disabled': props.disabled
|
13171
|
-
}]
|
13329
|
+
}, props.class],
|
13330
|
+
"style": props.style
|
13172
13331
|
}, inputProps, {
|
13173
13332
|
"focused": isFocused.value
|
13174
13333
|
}), {
|
@@ -13231,7 +13390,8 @@
|
|
13231
13390
|
type: Object
|
13232
13391
|
},
|
13233
13392
|
disabled: Boolean,
|
13234
|
-
hideAlpha: Boolean
|
13393
|
+
hideAlpha: Boolean,
|
13394
|
+
...makeComponentProps()
|
13235
13395
|
},
|
13236
13396
|
emits: {
|
13237
13397
|
'update:color': color => true
|
@@ -13243,7 +13403,8 @@
|
|
13243
13403
|
useRender(() => vue.createVNode("div", {
|
13244
13404
|
"class": ['v-color-picker-preview', {
|
13245
13405
|
'v-color-picker-preview--hide-alpha': props.hideAlpha
|
13246
|
-
}]
|
13406
|
+
}, props.class],
|
13407
|
+
"style": props.style
|
13247
13408
|
}, [vue.createVNode("div", {
|
13248
13409
|
"class": "v-color-picker-preview__dot"
|
13249
13410
|
}, [vue.createVNode("div", {
|
@@ -13624,7 +13785,8 @@
|
|
13624
13785
|
},
|
13625
13786
|
disabled: Boolean,
|
13626
13787
|
color: Object,
|
13627
|
-
maxHeight: [Number, String]
|
13788
|
+
maxHeight: [Number, String],
|
13789
|
+
...makeComponentProps()
|
13628
13790
|
},
|
13629
13791
|
emits: {
|
13630
13792
|
'update:color': color => true
|
@@ -13634,20 +13796,22 @@
|
|
13634
13796
|
emit
|
13635
13797
|
} = _ref;
|
13636
13798
|
useRender(() => vue.createVNode("div", {
|
13637
|
-
"class":
|
13638
|
-
"style": {
|
13799
|
+
"class": ['v-color-picker-swatches', props.class],
|
13800
|
+
"style": [{
|
13639
13801
|
maxHeight: convertToUnit(props.maxHeight)
|
13640
|
-
}
|
13802
|
+
}, props.style]
|
13641
13803
|
}, [vue.createVNode("div", null, [props.swatches.map(swatch => vue.createVNode("div", {
|
13642
13804
|
"class": "v-color-picker-swatches__swatch"
|
13643
13805
|
}, [swatch.map(color => {
|
13644
|
-
const
|
13806
|
+
const rgba = parseColor(color);
|
13807
|
+
const hsva = RGBtoHSV(rgba);
|
13808
|
+
const background = RGBtoCSS(rgba);
|
13645
13809
|
return vue.createVNode("div", {
|
13646
13810
|
"class": "v-color-picker-swatches__color",
|
13647
13811
|
"onClick": () => hsva && emit('update:color', hsva)
|
13648
13812
|
}, [vue.createVNode("div", {
|
13649
13813
|
"style": {
|
13650
|
-
background
|
13814
|
+
background
|
13651
13815
|
}
|
13652
13816
|
}, [props.color && deepEqual(props.color, hsva) ? vue.createVNode(VIcon, {
|
13653
13817
|
"size": "x-small",
|
@@ -13707,8 +13871,13 @@
|
|
13707
13871
|
const mode = useProxiedModel(props, 'mode');
|
13708
13872
|
const lastPickedColor = vue.ref(null);
|
13709
13873
|
const currentColor = useProxiedModel(props, 'modelValue', undefined, v => {
|
13710
|
-
let c
|
13711
|
-
|
13874
|
+
let c;
|
13875
|
+
try {
|
13876
|
+
c = RGBtoHSV(parseColor(v));
|
13877
|
+
} catch (err) {
|
13878
|
+
consoleWarn(err);
|
13879
|
+
return null;
|
13880
|
+
}
|
13712
13881
|
if (lastPickedColor.value) {
|
13713
13882
|
c = {
|
13714
13883
|
...c,
|
@@ -13741,13 +13910,13 @@
|
|
13741
13910
|
"rounded": props.rounded,
|
13742
13911
|
"elevation": props.elevation,
|
13743
13912
|
"theme": props.theme,
|
13744
|
-
"class": ['v-color-picker'],
|
13745
|
-
"style": {
|
13913
|
+
"class": ['v-color-picker', props.class],
|
13914
|
+
"style": [{
|
13746
13915
|
'--v-color-picker-color-hsv': HSVtoCSS({
|
13747
13916
|
...(currentColor.value ?? nullColor),
|
13748
13917
|
a: 1
|
13749
13918
|
})
|
13750
|
-
}
|
13919
|
+
}, props.style]
|
13751
13920
|
}, sheetProps, {
|
13752
13921
|
"maxWidth": props.width
|
13753
13922
|
}), {
|
@@ -14058,7 +14227,8 @@
|
|
14058
14227
|
'v-combobox--chips': !!props.chips,
|
14059
14228
|
'v-combobox--selecting-index': selectionIndex.value > -1,
|
14060
14229
|
[`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true
|
14061
|
-
}],
|
14230
|
+
}, props.class],
|
14231
|
+
"style": props.style,
|
14062
14232
|
"appendInnerIcon": props.items.length ? props.menuIcon : undefined,
|
14063
14233
|
"readonly": props.readonly,
|
14064
14234
|
"placeholder": isDirty ? undefined : props.placeholder,
|
@@ -14104,11 +14274,13 @@
|
|
14104
14274
|
let {
|
14105
14275
|
isSelected
|
14106
14276
|
} = _ref2;
|
14107
|
-
return props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
14277
|
+
return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
14108
14278
|
"modelValue": isSelected,
|
14109
14279
|
"ripple": false,
|
14110
14280
|
"tabindex": "-1"
|
14111
|
-
}, null) : undefined
|
14281
|
+
}, null) : undefined, item.props.prependIcon && vue.createVNode(VIcon, {
|
14282
|
+
"icon": item.props.prependIcon
|
14283
|
+
}, null)]);
|
14112
14284
|
},
|
14113
14285
|
title: () => {
|
14114
14286
|
return isPristine.value ? item.title : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0);
|
@@ -14123,6 +14295,10 @@
|
|
14123
14295
|
}
|
14124
14296
|
const slotProps = {
|
14125
14297
|
'onClick:close': onChipClose,
|
14298
|
+
onMousedown(e) {
|
14299
|
+
e.preventDefault();
|
14300
|
+
e.stopPropagation();
|
14301
|
+
},
|
14126
14302
|
modelValue: true,
|
14127
14303
|
'onUpdate:modelValue': undefined
|
14128
14304
|
};
|
@@ -14215,7 +14391,7 @@
|
|
14215
14391
|
![document, overlay.value.contentEl].includes(after) &&
|
14216
14392
|
// It isn't inside the dialog body
|
14217
14393
|
!overlay.value.contentEl.contains(after)) {
|
14218
|
-
const focusable =
|
14394
|
+
const focusable = focusableChildren(overlay.value.contentEl);
|
14219
14395
|
if (!focusable.length) return;
|
14220
14396
|
const firstElement = focusable[0];
|
14221
14397
|
const lastElement = focusable[focusable.length - 1];
|
@@ -14256,7 +14432,8 @@
|
|
14256
14432
|
"class": ['v-dialog', {
|
14257
14433
|
'v-dialog--fullscreen': props.fullscreen,
|
14258
14434
|
'v-dialog--scrollable': props.scrollable
|
14259
|
-
}]
|
14435
|
+
}, props.class],
|
14436
|
+
"style": props.style
|
14260
14437
|
}, overlayProps, {
|
14261
14438
|
"modelValue": isActive.value,
|
14262
14439
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
@@ -14295,6 +14472,7 @@
|
|
14295
14472
|
validator: v => allowedVariants.includes(v)
|
14296
14473
|
},
|
14297
14474
|
readonly: Boolean,
|
14475
|
+
...makeComponentProps(),
|
14298
14476
|
...makeGroupProps(),
|
14299
14477
|
...makeTagProps(),
|
14300
14478
|
...makeThemeProps()
|
@@ -14320,7 +14498,8 @@
|
|
14320
14498
|
}
|
14321
14499
|
});
|
14322
14500
|
useRender(() => vue.createVNode(props.tag, {
|
14323
|
-
"class": ['v-expansion-panels', themeClasses.value, variantClass.value]
|
14501
|
+
"class": ['v-expansion-panels', themeClasses.value, variantClass.value, props.class],
|
14502
|
+
"style": props.style
|
14324
14503
|
}, slots));
|
14325
14504
|
return {};
|
14326
14505
|
}
|
@@ -14349,6 +14528,7 @@
|
|
14349
14528
|
Ripple
|
14350
14529
|
},
|
14351
14530
|
props: {
|
14531
|
+
...makeComponentProps(),
|
14352
14532
|
...makeVExpansionPanelTitleProps()
|
14353
14533
|
},
|
14354
14534
|
setup(props, _ref) {
|
@@ -14371,8 +14551,8 @@
|
|
14371
14551
|
useRender(() => vue.withDirectives(vue.createVNode("button", {
|
14372
14552
|
"class": ['v-expansion-panel-title', {
|
14373
14553
|
'v-expansion-panel-title--active': expansionPanel.isSelected.value
|
14374
|
-
}, backgroundColorClasses.value],
|
14375
|
-
"style": backgroundColorStyles.value,
|
14554
|
+
}, backgroundColorClasses.value, props.class],
|
14555
|
+
"style": [backgroundColorStyles.value, props.style],
|
14376
14556
|
"type": "button",
|
14377
14557
|
"tabindex": expansionPanel.disabled.value ? -1 : undefined,
|
14378
14558
|
"disabled": expansionPanel.disabled.value,
|
@@ -14392,6 +14572,7 @@
|
|
14392
14572
|
const VExpansionPanelText = genericComponent()({
|
14393
14573
|
name: 'VExpansionPanelText',
|
14394
14574
|
props: {
|
14575
|
+
...makeComponentProps(),
|
14395
14576
|
...makeLazyProps()
|
14396
14577
|
},
|
14397
14578
|
setup(props, _ref) {
|
@@ -14408,7 +14589,8 @@
|
|
14408
14589
|
"onAfterLeave": onAfterLeave
|
14409
14590
|
}, {
|
14410
14591
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
14411
|
-
"class":
|
14592
|
+
"class": ['v-expansion-panel-text', props.class],
|
14593
|
+
"style": props.style
|
14412
14594
|
}, [slots.default && hasContent.value && vue.createVNode("div", {
|
14413
14595
|
"class": "v-expansion-panel-text__wrapper"
|
14414
14596
|
}, [slots.default?.()])]), [[vue.vShow, expansionPanel.isSelected.value]])]
|
@@ -14423,6 +14605,7 @@
|
|
14423
14605
|
title: String,
|
14424
14606
|
text: String,
|
14425
14607
|
bgColor: String,
|
14608
|
+
...makeComponentProps(),
|
14426
14609
|
...makeElevationProps(),
|
14427
14610
|
...makeGroupItemProps(),
|
14428
14611
|
...makeLazyProps(),
|
@@ -14471,8 +14654,8 @@
|
|
14471
14654
|
'v-expansion-panel--before-active': isBeforeSelected.value,
|
14472
14655
|
'v-expansion-panel--after-active': isAfterSelected.value,
|
14473
14656
|
'v-expansion-panel--disabled': isDisabled.value
|
14474
|
-
}, roundedClasses.value, backgroundColorClasses.value],
|
14475
|
-
"style": backgroundColorStyles.value,
|
14657
|
+
}, roundedClasses.value, backgroundColorClasses.value, props.class],
|
14658
|
+
"style": [backgroundColorStyles.value, props.style],
|
14476
14659
|
"aria-expanded": groupItem.isSelected.value
|
14477
14660
|
}, {
|
14478
14661
|
default: () => [vue.createVNode("div", {
|
@@ -14579,6 +14762,7 @@
|
|
14579
14762
|
const vInputRef = vue.ref();
|
14580
14763
|
const vFieldRef = vue.ref();
|
14581
14764
|
const inputRef = vue.ref();
|
14765
|
+
const isActive = vue.computed(() => isFocused.value || props.active);
|
14582
14766
|
function onFocus() {
|
14583
14767
|
if (inputRef.value !== document.activeElement) {
|
14584
14768
|
inputRef.value?.focus();
|
@@ -14622,7 +14806,8 @@
|
|
14622
14806
|
"ref": vInputRef,
|
14623
14807
|
"modelValue": model.value,
|
14624
14808
|
"onUpdate:modelValue": $event => model.value = $event,
|
14625
|
-
"class":
|
14809
|
+
"class": ['v-file-input', props.class],
|
14810
|
+
"style": props.style,
|
14626
14811
|
"onClick:prepend": onClickPrepend
|
14627
14812
|
}, rootAttrs, inputProps, {
|
14628
14813
|
"focused": isFocused.value
|
@@ -14646,7 +14831,7 @@
|
|
14646
14831
|
"onClick:appendInner": props['onClick:appendInner']
|
14647
14832
|
}, fieldProps, {
|
14648
14833
|
"id": id.value,
|
14649
|
-
"active":
|
14834
|
+
"active": isActive.value || isDirty.value,
|
14650
14835
|
"dirty": isDirty.value,
|
14651
14836
|
"disabled": isDisabled.value,
|
14652
14837
|
"focused": isFocused.value,
|
@@ -14714,6 +14899,7 @@
|
|
14714
14899
|
default: 'auto'
|
14715
14900
|
},
|
14716
14901
|
...makeBorderProps(),
|
14902
|
+
...makeComponentProps(),
|
14717
14903
|
...makeElevationProps(),
|
14718
14904
|
...makeLayoutItemProps(),
|
14719
14905
|
...makeRoundedProps(),
|
@@ -14763,8 +14949,8 @@
|
|
14763
14949
|
});
|
14764
14950
|
useRender(() => vue.createVNode(props.tag, {
|
14765
14951
|
"ref": resizeRef,
|
14766
|
-
"class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value],
|
14767
|
-
"style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : undefined]
|
14952
|
+
"class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
14953
|
+
"style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : undefined, props.style]
|
14768
14954
|
}, slots));
|
14769
14955
|
return {};
|
14770
14956
|
}
|
@@ -14775,6 +14961,7 @@
|
|
14775
14961
|
const VForm = genericComponent()({
|
14776
14962
|
name: 'VForm',
|
14777
14963
|
props: {
|
14964
|
+
...makeComponentProps(),
|
14778
14965
|
...makeFormProps()
|
14779
14966
|
},
|
14780
14967
|
emits: {
|
@@ -14813,7 +15000,8 @@
|
|
14813
15000
|
}
|
14814
15001
|
useRender(() => vue.createVNode("form", {
|
14815
15002
|
"ref": formRef,
|
14816
|
-
"class":
|
15003
|
+
"class": ['v-form', props.class],
|
15004
|
+
"style": props.style,
|
14817
15005
|
"novalidate": true,
|
14818
15006
|
"onReset": onReset,
|
14819
15007
|
"onSubmit": onSubmit
|
@@ -14829,6 +15017,7 @@
|
|
14829
15017
|
type: Boolean,
|
14830
15018
|
default: false
|
14831
15019
|
},
|
15020
|
+
...makeComponentProps(),
|
14832
15021
|
...makeTagProps()
|
14833
15022
|
},
|
14834
15023
|
setup(props, _ref) {
|
@@ -14838,7 +15027,8 @@
|
|
14838
15027
|
useRender(() => vue.createVNode(props.tag, {
|
14839
15028
|
"class": ['v-container', {
|
14840
15029
|
'v-container--fluid': props.fluid
|
14841
|
-
}]
|
15030
|
+
}, props.class],
|
15031
|
+
"style": props.style
|
14842
15032
|
}, slots));
|
14843
15033
|
return {};
|
14844
15034
|
}
|
@@ -14929,6 +15119,7 @@
|
|
14929
15119
|
default: null,
|
14930
15120
|
validator: str => ALIGN_SELF_VALUES.includes(str)
|
14931
15121
|
},
|
15122
|
+
...makeComponentProps(),
|
14932
15123
|
...makeTagProps()
|
14933
15124
|
},
|
14934
15125
|
setup(props, _ref) {
|
@@ -14959,7 +15150,8 @@
|
|
14959
15150
|
return classList;
|
14960
15151
|
});
|
14961
15152
|
return () => vue.h(props.tag, {
|
14962
|
-
class: classes.value
|
15153
|
+
class: [classes.value, props.class],
|
15154
|
+
style: props.style
|
14963
15155
|
}, slots.default?.());
|
14964
15156
|
}
|
14965
15157
|
});
|
@@ -15045,6 +15237,7 @@
|
|
15045
15237
|
validator: alignContentValidator
|
15046
15238
|
},
|
15047
15239
|
...alignContentProps,
|
15240
|
+
...makeComponentProps(),
|
15048
15241
|
...makeTagProps()
|
15049
15242
|
},
|
15050
15243
|
setup(props, _ref) {
|
@@ -15073,7 +15266,8 @@
|
|
15073
15266
|
return classList;
|
15074
15267
|
});
|
15075
15268
|
return () => vue.h(props.tag, {
|
15076
|
-
class: ['v-row', classes.value]
|
15269
|
+
class: ['v-row', classes.value, props.class],
|
15270
|
+
style: props.style
|
15077
15271
|
}, slots.default?.());
|
15078
15272
|
}
|
15079
15273
|
});
|
@@ -15117,6 +15311,7 @@
|
|
15117
15311
|
const VItemGroup = genericComponent()({
|
15118
15312
|
name: 'VItemGroup',
|
15119
15313
|
props: {
|
15314
|
+
...makeComponentProps(),
|
15120
15315
|
...makeGroupProps({
|
15121
15316
|
selectedClass: 'v-item--selected'
|
15122
15317
|
}),
|
@@ -15141,7 +15336,8 @@
|
|
15141
15336
|
selected
|
15142
15337
|
} = useGroup(props, VItemGroupSymbol);
|
15143
15338
|
return () => vue.createVNode(props.tag, {
|
15144
|
-
"class": ['v-item-group', themeClasses.value]
|
15339
|
+
"class": ['v-item-group', themeClasses.value, props.class],
|
15340
|
+
"style": props.style
|
15145
15341
|
}, {
|
15146
15342
|
default: () => [slots.default?.({
|
15147
15343
|
isSelected,
|
@@ -15191,7 +15387,10 @@
|
|
15191
15387
|
|
15192
15388
|
const VLayout = genericComponent()({
|
15193
15389
|
name: 'VLayout',
|
15194
|
-
props:
|
15390
|
+
props: {
|
15391
|
+
...makeComponentProps(),
|
15392
|
+
...makeLayoutProps()
|
15393
|
+
},
|
15195
15394
|
setup(props, _ref) {
|
15196
15395
|
let {
|
15197
15396
|
slots
|
@@ -15205,8 +15404,8 @@
|
|
15205
15404
|
} = createLayout(props);
|
15206
15405
|
useRender(() => vue.createVNode("div", {
|
15207
15406
|
"ref": layoutRef,
|
15208
|
-
"class": layoutClasses.value,
|
15209
|
-
"style": layoutStyles.value
|
15407
|
+
"class": [layoutClasses.value, props.class],
|
15408
|
+
"style": [layoutStyles.value, props.style]
|
15210
15409
|
}, [slots.default?.()]));
|
15211
15410
|
return {
|
15212
15411
|
getLayoutItem,
|
@@ -15229,6 +15428,7 @@
|
|
15229
15428
|
default: 300
|
15230
15429
|
},
|
15231
15430
|
modelValue: Boolean,
|
15431
|
+
...makeComponentProps(),
|
15232
15432
|
...makeLayoutItemProps()
|
15233
15433
|
},
|
15234
15434
|
setup(props, _ref) {
|
@@ -15247,8 +15447,8 @@
|
|
15247
15447
|
absolute: vue.toRef(props, 'absolute')
|
15248
15448
|
});
|
15249
15449
|
return () => vue.createVNode("div", {
|
15250
|
-
"class": ['v-layout-item'],
|
15251
|
-
"style": layoutItemStyles.value
|
15450
|
+
"class": ['v-layout-item', props.class],
|
15451
|
+
"style": [layoutItemStyles.value, props.style]
|
15252
15452
|
}, [slots.default?.()]);
|
15253
15453
|
}
|
15254
15454
|
});
|
@@ -15272,6 +15472,7 @@
|
|
15272
15472
|
threshold: undefined
|
15273
15473
|
})
|
15274
15474
|
},
|
15475
|
+
...makeComponentProps(),
|
15275
15476
|
...makeDimensionProps(),
|
15276
15477
|
...makeTagProps(),
|
15277
15478
|
...makeTransitionProps({
|
@@ -15294,8 +15495,8 @@
|
|
15294
15495
|
isActive.value = isIntersecting;
|
15295
15496
|
}
|
15296
15497
|
useRender(() => vue.withDirectives(vue.createVNode(props.tag, {
|
15297
|
-
"class":
|
15298
|
-
"style": dimensionStyles.value
|
15498
|
+
"class": ['v-lazy', props.class],
|
15499
|
+
"style": [dimensionStyles.value, props.style]
|
15299
15500
|
}, {
|
15300
15501
|
default: () => [isActive.value && vue.createVNode(MaybeTransition, {
|
15301
15502
|
"transition": props.transition,
|
@@ -15320,7 +15521,8 @@
|
|
15320
15521
|
rtl: {
|
15321
15522
|
type: Boolean,
|
15322
15523
|
default: undefined
|
15323
|
-
}
|
15524
|
+
},
|
15525
|
+
...makeComponentProps()
|
15324
15526
|
},
|
15325
15527
|
setup(props, _ref) {
|
15326
15528
|
let {
|
@@ -15330,7 +15532,8 @@
|
|
15330
15532
|
rtlClasses
|
15331
15533
|
} = provideLocale(props);
|
15332
15534
|
useRender(() => vue.createVNode("div", {
|
15333
|
-
"class": ['v-locale-provider', rtlClasses.value]
|
15535
|
+
"class": ['v-locale-provider', rtlClasses.value, props.class],
|
15536
|
+
"style": props.style
|
15334
15537
|
}, [slots.default?.()]));
|
15335
15538
|
return {};
|
15336
15539
|
}
|
@@ -15340,6 +15543,7 @@
|
|
15340
15543
|
name: 'VMain',
|
15341
15544
|
props: {
|
15342
15545
|
scrollable: Boolean,
|
15546
|
+
...makeComponentProps(),
|
15343
15547
|
...makeTagProps({
|
15344
15548
|
tag: 'main'
|
15345
15549
|
})
|
@@ -15357,8 +15561,8 @@
|
|
15357
15561
|
useRender(() => vue.createVNode(props.tag, {
|
15358
15562
|
"class": ['v-main', {
|
15359
15563
|
'v-main--scrollable': props.scrollable
|
15360
|
-
}],
|
15361
|
-
"style": [mainStyles.value, ssrBootStyles.value]
|
15564
|
+
}, props.class],
|
15565
|
+
"style": [mainStyles.value, ssrBootStyles.value, props.style]
|
15362
15566
|
}, {
|
15363
15567
|
default: () => [props.scrollable ? vue.createVNode("div", {
|
15364
15568
|
"class": "v-main__scroller"
|
@@ -15368,525 +15572,99 @@
|
|
15368
15572
|
}
|
15369
15573
|
});
|
15370
15574
|
|
15371
|
-
|
15372
|
-
|
15373
|
-
|
15374
|
-
|
15375
|
-
|
15376
|
-
|
15377
|
-
const
|
15378
|
-
const
|
15379
|
-
const
|
15380
|
-
|
15381
|
-
|
15575
|
+
function useSticky(_ref) {
|
15576
|
+
let {
|
15577
|
+
rootEl,
|
15578
|
+
isSticky,
|
15579
|
+
layoutItemStyles
|
15580
|
+
} = _ref;
|
15581
|
+
const isStuck = vue.ref(false);
|
15582
|
+
const stuckPosition = vue.ref(0);
|
15583
|
+
const stickyStyles = vue.computed(() => {
|
15584
|
+
const side = typeof isStuck.value === 'boolean' ? 'top' : isStuck.value;
|
15585
|
+
return [isSticky.value ? {
|
15586
|
+
top: 'auto',
|
15587
|
+
bottom: 'auto',
|
15588
|
+
height: undefined
|
15589
|
+
} : undefined, isStuck.value ? {
|
15590
|
+
[side]: convertToUnit(stuckPosition.value)
|
15591
|
+
} : {
|
15592
|
+
top: layoutItemStyles.value.top
|
15593
|
+
}];
|
15594
|
+
});
|
15595
|
+
vue.onMounted(() => {
|
15596
|
+
vue.watch(isSticky, val => {
|
15597
|
+
if (val) {
|
15598
|
+
window.addEventListener('scroll', onScroll, {
|
15599
|
+
passive: true
|
15600
|
+
});
|
15601
|
+
} else {
|
15602
|
+
window.removeEventListener('scroll', onScroll);
|
15603
|
+
}
|
15604
|
+
}, {
|
15605
|
+
immediate: true
|
15606
|
+
});
|
15607
|
+
});
|
15608
|
+
vue.onBeforeUnmount(() => {
|
15609
|
+
document.removeEventListener('scroll', onScroll);
|
15610
|
+
});
|
15611
|
+
let lastScrollTop = 0;
|
15612
|
+
function onScroll() {
|
15613
|
+
const direction = lastScrollTop > window.scrollY ? 'up' : 'down';
|
15614
|
+
const rect = rootEl.value.getBoundingClientRect();
|
15615
|
+
const layoutTop = parseFloat(layoutItemStyles.value.top ?? 0);
|
15616
|
+
const top = window.scrollY - Math.max(0, stuckPosition.value - layoutTop);
|
15617
|
+
const bottom = rect.height + Math.max(stuckPosition.value, layoutTop) - window.scrollY - window.innerHeight;
|
15618
|
+
if (rect.height < window.innerHeight - layoutTop) {
|
15619
|
+
isStuck.value = 'top';
|
15620
|
+
stuckPosition.value = layoutTop;
|
15621
|
+
} else if (direction === 'up' && isStuck.value === 'bottom' || direction === 'down' && isStuck.value === 'top') {
|
15622
|
+
stuckPosition.value = window.scrollY + rect.top;
|
15623
|
+
isStuck.value = true;
|
15624
|
+
} else if (direction === 'down' && bottom <= 0) {
|
15625
|
+
stuckPosition.value = 0;
|
15626
|
+
isStuck.value = 'bottom';
|
15627
|
+
} else if (direction === 'up' && top <= 0) {
|
15628
|
+
stuckPosition.value = rect.top + top;
|
15629
|
+
isStuck.value = 'top';
|
15630
|
+
}
|
15631
|
+
lastScrollTop = window.scrollY;
|
15382
15632
|
}
|
15383
|
-
|
15384
|
-
|
15633
|
+
return {
|
15634
|
+
isStuck,
|
15635
|
+
stickyStyles
|
15636
|
+
};
|
15637
|
+
}
|
15385
15638
|
|
15386
|
-
|
15387
|
-
|
15639
|
+
const HORIZON = 100; // ms
|
15640
|
+
const HISTORY = 20; // number of samples to keep
|
15388
15641
|
|
15389
|
-
|
15390
|
-
|
15391
|
-
|
15392
|
-
|
15393
|
-
|
15642
|
+
/** @see https://android.googlesource.com/platform/frameworks/native/+/master/libs/input/VelocityTracker.cpp */
|
15643
|
+
function kineticEnergyToVelocity(work) {
|
15644
|
+
const sqrt2 = 1.41421356237;
|
15645
|
+
return (work < 0 ? -1.0 : 1.0) * Math.sqrt(Math.abs(work)) * sqrt2;
|
15646
|
+
}
|
15647
|
+
|
15648
|
+
/**
|
15649
|
+
* Returns pointer velocity in px/s
|
15650
|
+
*/
|
15651
|
+
function calculateImpulseVelocity(samples) {
|
15652
|
+
// The input should be in reversed time order (most recent sample at index i=0)
|
15653
|
+
if (samples.length < 2) {
|
15654
|
+
// if 0 or 1 points, velocity is zero
|
15655
|
+
return 0;
|
15394
15656
|
}
|
15395
|
-
|
15396
|
-
|
15397
|
-
|
15398
|
-
|
15399
|
-
|
15400
|
-
|
15401
|
-
|
15402
|
-
|
15403
|
-
|
15404
|
-
|
15405
|
-
|
15406
|
-
}
|
15407
|
-
function date(value) {
|
15408
|
-
if (value == null) return null;
|
15409
|
-
if (value instanceof Date) return value;
|
15410
|
-
if (typeof value === 'string') {
|
15411
|
-
const parsed = Date.parse(value);
|
15412
|
-
if (!isNaN(parsed)) return new Date(parsed);
|
15413
|
-
}
|
15414
|
-
return null;
|
15415
|
-
}
|
15416
|
-
const firstDay = {
|
15417
|
-
'001': 1,
|
15418
|
-
AD: 1,
|
15419
|
-
AE: 6,
|
15420
|
-
AF: 6,
|
15421
|
-
AG: 0,
|
15422
|
-
AI: 1,
|
15423
|
-
AL: 1,
|
15424
|
-
AM: 1,
|
15425
|
-
AN: 1,
|
15426
|
-
AR: 1,
|
15427
|
-
AS: 0,
|
15428
|
-
AT: 1,
|
15429
|
-
AU: 0,
|
15430
|
-
AX: 1,
|
15431
|
-
AZ: 1,
|
15432
|
-
BA: 1,
|
15433
|
-
BD: 0,
|
15434
|
-
BE: 1,
|
15435
|
-
BG: 1,
|
15436
|
-
BH: 6,
|
15437
|
-
BM: 1,
|
15438
|
-
BN: 1,
|
15439
|
-
BR: 0,
|
15440
|
-
BS: 0,
|
15441
|
-
BT: 0,
|
15442
|
-
BW: 0,
|
15443
|
-
BY: 1,
|
15444
|
-
BZ: 0,
|
15445
|
-
CA: 0,
|
15446
|
-
CH: 1,
|
15447
|
-
CL: 1,
|
15448
|
-
CM: 1,
|
15449
|
-
CN: 0,
|
15450
|
-
CO: 0,
|
15451
|
-
CR: 1,
|
15452
|
-
CY: 1,
|
15453
|
-
CZ: 1,
|
15454
|
-
DE: 1,
|
15455
|
-
DJ: 6,
|
15456
|
-
DK: 1,
|
15457
|
-
DM: 0,
|
15458
|
-
DO: 0,
|
15459
|
-
DZ: 6,
|
15460
|
-
EC: 1,
|
15461
|
-
EE: 1,
|
15462
|
-
EG: 6,
|
15463
|
-
ES: 1,
|
15464
|
-
ET: 0,
|
15465
|
-
FI: 1,
|
15466
|
-
FJ: 1,
|
15467
|
-
FO: 1,
|
15468
|
-
FR: 1,
|
15469
|
-
GB: 1,
|
15470
|
-
'GB-alt-variant': 0,
|
15471
|
-
GE: 1,
|
15472
|
-
GF: 1,
|
15473
|
-
GP: 1,
|
15474
|
-
GR: 1,
|
15475
|
-
GT: 0,
|
15476
|
-
GU: 0,
|
15477
|
-
HK: 0,
|
15478
|
-
HN: 0,
|
15479
|
-
HR: 1,
|
15480
|
-
HU: 1,
|
15481
|
-
ID: 0,
|
15482
|
-
IE: 1,
|
15483
|
-
IL: 0,
|
15484
|
-
IN: 0,
|
15485
|
-
IQ: 6,
|
15486
|
-
IR: 6,
|
15487
|
-
IS: 1,
|
15488
|
-
IT: 1,
|
15489
|
-
JM: 0,
|
15490
|
-
JO: 6,
|
15491
|
-
JP: 0,
|
15492
|
-
KE: 0,
|
15493
|
-
KG: 1,
|
15494
|
-
KH: 0,
|
15495
|
-
KR: 0,
|
15496
|
-
KW: 6,
|
15497
|
-
KZ: 1,
|
15498
|
-
LA: 0,
|
15499
|
-
LB: 1,
|
15500
|
-
LI: 1,
|
15501
|
-
LK: 1,
|
15502
|
-
LT: 1,
|
15503
|
-
LU: 1,
|
15504
|
-
LV: 1,
|
15505
|
-
LY: 6,
|
15506
|
-
MC: 1,
|
15507
|
-
MD: 1,
|
15508
|
-
ME: 1,
|
15509
|
-
MH: 0,
|
15510
|
-
MK: 1,
|
15511
|
-
MM: 0,
|
15512
|
-
MN: 1,
|
15513
|
-
MO: 0,
|
15514
|
-
MQ: 1,
|
15515
|
-
MT: 0,
|
15516
|
-
MV: 5,
|
15517
|
-
MX: 0,
|
15518
|
-
MY: 1,
|
15519
|
-
MZ: 0,
|
15520
|
-
NI: 0,
|
15521
|
-
NL: 1,
|
15522
|
-
NO: 1,
|
15523
|
-
NP: 0,
|
15524
|
-
NZ: 1,
|
15525
|
-
OM: 6,
|
15526
|
-
PA: 0,
|
15527
|
-
PE: 0,
|
15528
|
-
PH: 0,
|
15529
|
-
PK: 0,
|
15530
|
-
PL: 1,
|
15531
|
-
PR: 0,
|
15532
|
-
PT: 0,
|
15533
|
-
PY: 0,
|
15534
|
-
QA: 6,
|
15535
|
-
RE: 1,
|
15536
|
-
RO: 1,
|
15537
|
-
RS: 1,
|
15538
|
-
RU: 1,
|
15539
|
-
SA: 0,
|
15540
|
-
SD: 6,
|
15541
|
-
SE: 1,
|
15542
|
-
SG: 0,
|
15543
|
-
SI: 1,
|
15544
|
-
SK: 1,
|
15545
|
-
SM: 1,
|
15546
|
-
SV: 0,
|
15547
|
-
SY: 6,
|
15548
|
-
TH: 0,
|
15549
|
-
TJ: 1,
|
15550
|
-
TM: 1,
|
15551
|
-
TR: 1,
|
15552
|
-
TT: 0,
|
15553
|
-
TW: 0,
|
15554
|
-
UA: 1,
|
15555
|
-
UM: 0,
|
15556
|
-
US: 0,
|
15557
|
-
UY: 1,
|
15558
|
-
UZ: 1,
|
15559
|
-
VA: 1,
|
15560
|
-
VE: 0,
|
15561
|
-
VI: 0,
|
15562
|
-
VN: 1,
|
15563
|
-
WS: 0,
|
15564
|
-
XK: 1,
|
15565
|
-
YE: 0,
|
15566
|
-
ZA: 0,
|
15567
|
-
ZW: 0
|
15568
|
-
};
|
15569
|
-
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
15570
|
-
function getWeekdays(locale) {
|
15571
|
-
const daysFromSunday = firstDay[locale.slice(-2).toUpperCase()];
|
15572
|
-
return createRange(7).map(i => {
|
15573
|
-
const weekday = new Date(sundayJanuarySecond2000);
|
15574
|
-
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
15575
|
-
return new Intl.DateTimeFormat(locale, {
|
15576
|
-
weekday: 'long'
|
15577
|
-
}).format(weekday);
|
15578
|
-
});
|
15579
|
-
}
|
15580
|
-
function format(value, formatString, locale) {
|
15581
|
-
const date = new Date(value);
|
15582
|
-
let options = {};
|
15583
|
-
switch (formatString) {
|
15584
|
-
case 'fullDateWithWeekday':
|
15585
|
-
options = {
|
15586
|
-
weekday: 'long',
|
15587
|
-
day: 'numeric',
|
15588
|
-
month: 'long',
|
15589
|
-
year: 'numeric'
|
15590
|
-
};
|
15591
|
-
break;
|
15592
|
-
case 'normalDateWithWeekday':
|
15593
|
-
options = {
|
15594
|
-
weekday: 'short',
|
15595
|
-
day: 'numeric',
|
15596
|
-
month: 'short',
|
15597
|
-
year: 'numeric'
|
15598
|
-
};
|
15599
|
-
break;
|
15600
|
-
case 'keyboardDate':
|
15601
|
-
options = {};
|
15602
|
-
break;
|
15603
|
-
case 'monthAndDate':
|
15604
|
-
options = {
|
15605
|
-
month: 'long',
|
15606
|
-
day: 'numeric'
|
15607
|
-
};
|
15608
|
-
break;
|
15609
|
-
case 'monthAndYear':
|
15610
|
-
options = {
|
15611
|
-
month: 'long',
|
15612
|
-
year: 'numeric'
|
15613
|
-
};
|
15614
|
-
break;
|
15615
|
-
default:
|
15616
|
-
options = {
|
15617
|
-
timeZone: 'UTC',
|
15618
|
-
timeZoneName: 'short'
|
15619
|
-
};
|
15620
|
-
}
|
15621
|
-
return new Intl.DateTimeFormat(locale, options).format(date);
|
15622
|
-
}
|
15623
|
-
function addDays(date, amount) {
|
15624
|
-
const d = new Date(date);
|
15625
|
-
d.setDate(d.getDate() + amount);
|
15626
|
-
return d;
|
15627
|
-
}
|
15628
|
-
function addMonths(date, amount) {
|
15629
|
-
const d = new Date(date);
|
15630
|
-
d.setMonth(d.getMonth() + amount);
|
15631
|
-
return d;
|
15632
|
-
}
|
15633
|
-
function getYear(date) {
|
15634
|
-
return date.getFullYear();
|
15635
|
-
}
|
15636
|
-
function getMonth(date) {
|
15637
|
-
return date.getMonth();
|
15638
|
-
}
|
15639
|
-
function startOfYear(date) {
|
15640
|
-
return new Date(date.getFullYear(), 0, 1);
|
15641
|
-
}
|
15642
|
-
function endOfYear(date) {
|
15643
|
-
return new Date(date.getFullYear(), 11, 31);
|
15644
|
-
}
|
15645
|
-
function getMondayOfFirstWeekOfYear(year) {
|
15646
|
-
return new Date(year, 0, 1);
|
15647
|
-
}
|
15648
|
-
|
15649
|
-
// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
|
15650
|
-
function getWeek(date) {
|
15651
|
-
let year = date.getFullYear();
|
15652
|
-
let d1w1 = getMondayOfFirstWeekOfYear(year);
|
15653
|
-
if (date < d1w1) {
|
15654
|
-
year = year - 1;
|
15655
|
-
d1w1 = getMondayOfFirstWeekOfYear(year);
|
15656
|
-
} else {
|
15657
|
-
const tv = getMondayOfFirstWeekOfYear(year + 1);
|
15658
|
-
if (date >= tv) {
|
15659
|
-
year = year + 1;
|
15660
|
-
d1w1 = tv;
|
15661
|
-
}
|
15662
|
-
}
|
15663
|
-
const diffTime = Math.abs(date.getTime() - d1w1.getTime());
|
15664
|
-
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
15665
|
-
return Math.floor(diffDays / 7) + 1;
|
15666
|
-
}
|
15667
|
-
function isWithinRange(date, range) {
|
15668
|
-
return isAfter(date, range[0]) && isBefore(date, range[1]);
|
15669
|
-
}
|
15670
|
-
function isValid(date) {
|
15671
|
-
const d = new Date(date);
|
15672
|
-
return d instanceof Date && !isNaN(d.getTime());
|
15673
|
-
}
|
15674
|
-
function isAfter(date, comparing) {
|
15675
|
-
return date.getTime() > comparing.getTime();
|
15676
|
-
}
|
15677
|
-
function isBefore(date, comparing) {
|
15678
|
-
return date.getTime() < comparing.getTime();
|
15679
|
-
}
|
15680
|
-
function isEqual(date, comparing) {
|
15681
|
-
return date.getTime() === comparing.getTime();
|
15682
|
-
}
|
15683
|
-
function isSameDay(date, comparing) {
|
15684
|
-
return date.getDate() === comparing.getDate() && date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
15685
|
-
}
|
15686
|
-
function isSameMonth(date, comparing) {
|
15687
|
-
return date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
15688
|
-
}
|
15689
|
-
function getDiff(date, comparing, unit) {
|
15690
|
-
const d = new Date(date);
|
15691
|
-
const c = new Date(comparing);
|
15692
|
-
if (unit === 'month') {
|
15693
|
-
return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12;
|
15694
|
-
}
|
15695
|
-
return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24));
|
15696
|
-
}
|
15697
|
-
function setYear(date, year) {
|
15698
|
-
const d = new Date(date);
|
15699
|
-
d.setFullYear(year);
|
15700
|
-
return d;
|
15701
|
-
}
|
15702
|
-
class VuetifyDateAdapter {
|
15703
|
-
constructor() {
|
15704
|
-
let locale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'en';
|
15705
|
-
this.locale = locale;
|
15706
|
-
}
|
15707
|
-
date(value) {
|
15708
|
-
return date(value);
|
15709
|
-
}
|
15710
|
-
addDays(date, amount) {
|
15711
|
-
return addDays(date, amount);
|
15712
|
-
}
|
15713
|
-
addMonths(date, amount) {
|
15714
|
-
return addMonths(date, amount);
|
15715
|
-
}
|
15716
|
-
getWeekArray(date) {
|
15717
|
-
return getWeekArray(date);
|
15718
|
-
}
|
15719
|
-
startOfMonth(date) {
|
15720
|
-
return startOfMonth(date);
|
15721
|
-
}
|
15722
|
-
endOfMonth(date) {
|
15723
|
-
return endOfMonth(date);
|
15724
|
-
}
|
15725
|
-
format(date, formatString) {
|
15726
|
-
return format(date, formatString, this.locale);
|
15727
|
-
}
|
15728
|
-
isEqual(date, comparing) {
|
15729
|
-
return isEqual(date, comparing);
|
15730
|
-
}
|
15731
|
-
isValid(date) {
|
15732
|
-
return isValid(date);
|
15733
|
-
}
|
15734
|
-
isWithinRange(date, range) {
|
15735
|
-
return isWithinRange(date, range);
|
15736
|
-
}
|
15737
|
-
isAfter(date, comparing) {
|
15738
|
-
return isAfter(date, comparing);
|
15739
|
-
}
|
15740
|
-
isSameDay(date, comparing) {
|
15741
|
-
return isSameDay(date, comparing);
|
15742
|
-
}
|
15743
|
-
isSameMonth(date, comparing) {
|
15744
|
-
return isSameMonth(date, comparing);
|
15745
|
-
}
|
15746
|
-
setYear(date, year) {
|
15747
|
-
return setYear(date, year);
|
15748
|
-
}
|
15749
|
-
getDiff(date, comparing, unit) {
|
15750
|
-
return getDiff(date, comparing, unit);
|
15751
|
-
}
|
15752
|
-
getWeek(date) {
|
15753
|
-
return getWeek(date);
|
15754
|
-
}
|
15755
|
-
getWeekdays() {
|
15756
|
-
return getWeekdays(this.locale);
|
15757
|
-
}
|
15758
|
-
getYear(date) {
|
15759
|
-
return getYear(date);
|
15760
|
-
}
|
15761
|
-
getMonth(date) {
|
15762
|
-
return getMonth(date);
|
15763
|
-
}
|
15764
|
-
startOfYear(date) {
|
15765
|
-
return startOfYear(date);
|
15766
|
-
}
|
15767
|
-
endOfYear(date) {
|
15768
|
-
return endOfYear(date);
|
15769
|
-
}
|
15770
|
-
}
|
15771
|
-
|
15772
|
-
// Composables
|
15773
|
-
|
15774
|
-
// Types
|
15775
|
-
|
15776
|
-
const DateAdapterSymbol = Symbol.for('vuetify:date-adapter');
|
15777
|
-
function createDate(options) {
|
15778
|
-
return options ?? {
|
15779
|
-
adapter: VuetifyDateAdapter
|
15780
|
-
};
|
15781
|
-
}
|
15782
|
-
function useDate(props) {
|
15783
|
-
const date = vue.inject(DateAdapterSymbol);
|
15784
|
-
const locale = useLocale();
|
15785
|
-
if (!date) throw new Error('[Vuetify] Could not find injected date');
|
15786
|
-
|
15787
|
-
// eslint-disable-next-line new-cap
|
15788
|
-
const instance = new date.adapter(locale.current.value);
|
15789
|
-
vue.watch(locale.current, val => {
|
15790
|
-
instance.locale = val;
|
15791
|
-
}, {
|
15792
|
-
immediate: true
|
15793
|
-
});
|
15794
|
-
return instance;
|
15795
|
-
}
|
15796
|
-
|
15797
|
-
function useSticky(_ref) {
|
15798
|
-
let {
|
15799
|
-
rootEl,
|
15800
|
-
isSticky,
|
15801
|
-
layoutItemStyles
|
15802
|
-
} = _ref;
|
15803
|
-
const isStuck = vue.ref(false);
|
15804
|
-
const stuckPosition = vue.ref(0);
|
15805
|
-
const stickyStyles = vue.computed(() => {
|
15806
|
-
const side = typeof isStuck.value === 'boolean' ? 'top' : isStuck.value;
|
15807
|
-
return [isSticky.value ? {
|
15808
|
-
top: 'auto',
|
15809
|
-
bottom: 'auto',
|
15810
|
-
height: undefined
|
15811
|
-
} : undefined, isStuck.value ? {
|
15812
|
-
[side]: convertToUnit(stuckPosition.value)
|
15813
|
-
} : {
|
15814
|
-
top: layoutItemStyles.value.top
|
15815
|
-
}];
|
15816
|
-
});
|
15817
|
-
vue.onMounted(() => {
|
15818
|
-
vue.watch(isSticky, val => {
|
15819
|
-
if (val) {
|
15820
|
-
window.addEventListener('scroll', onScroll, {
|
15821
|
-
passive: true
|
15822
|
-
});
|
15823
|
-
} else {
|
15824
|
-
window.removeEventListener('scroll', onScroll);
|
15825
|
-
}
|
15826
|
-
}, {
|
15827
|
-
immediate: true
|
15828
|
-
});
|
15829
|
-
});
|
15830
|
-
vue.onBeforeUnmount(() => {
|
15831
|
-
document.removeEventListener('scroll', onScroll);
|
15832
|
-
});
|
15833
|
-
let lastScrollTop = 0;
|
15834
|
-
function onScroll() {
|
15835
|
-
const direction = lastScrollTop > window.scrollY ? 'up' : 'down';
|
15836
|
-
const rect = rootEl.value.getBoundingClientRect();
|
15837
|
-
const layoutTop = parseFloat(layoutItemStyles.value.top ?? 0);
|
15838
|
-
const top = window.scrollY - Math.max(0, stuckPosition.value - layoutTop);
|
15839
|
-
const bottom = rect.height + Math.max(stuckPosition.value, layoutTop) - window.scrollY - window.innerHeight;
|
15840
|
-
if (rect.height < window.innerHeight - layoutTop) {
|
15841
|
-
isStuck.value = 'top';
|
15842
|
-
stuckPosition.value = layoutTop;
|
15843
|
-
} else if (direction === 'up' && isStuck.value === 'bottom' || direction === 'down' && isStuck.value === 'top') {
|
15844
|
-
stuckPosition.value = window.scrollY + rect.top;
|
15845
|
-
isStuck.value = true;
|
15846
|
-
} else if (direction === 'down' && bottom <= 0) {
|
15847
|
-
stuckPosition.value = 0;
|
15848
|
-
isStuck.value = 'bottom';
|
15849
|
-
} else if (direction === 'up' && top <= 0) {
|
15850
|
-
stuckPosition.value = rect.top + top;
|
15851
|
-
isStuck.value = 'top';
|
15852
|
-
}
|
15853
|
-
lastScrollTop = window.scrollY;
|
15854
|
-
}
|
15855
|
-
return {
|
15856
|
-
isStuck,
|
15857
|
-
stickyStyles
|
15858
|
-
};
|
15859
|
-
}
|
15860
|
-
|
15861
|
-
const HORIZON = 100; // ms
|
15862
|
-
const HISTORY = 20; // number of samples to keep
|
15863
|
-
|
15864
|
-
/** @see https://android.googlesource.com/platform/frameworks/native/+/master/libs/input/VelocityTracker.cpp */
|
15865
|
-
function kineticEnergyToVelocity(work) {
|
15866
|
-
const sqrt2 = 1.41421356237;
|
15867
|
-
return (work < 0 ? -1.0 : 1.0) * Math.sqrt(Math.abs(work)) * sqrt2;
|
15868
|
-
}
|
15869
|
-
|
15870
|
-
/**
|
15871
|
-
* Returns pointer velocity in px/s
|
15872
|
-
*/
|
15873
|
-
function calculateImpulseVelocity(samples) {
|
15874
|
-
// The input should be in reversed time order (most recent sample at index i=0)
|
15875
|
-
if (samples.length < 2) {
|
15876
|
-
// if 0 or 1 points, velocity is zero
|
15877
|
-
return 0;
|
15878
|
-
}
|
15879
|
-
// if (samples[1].t > samples[0].t) {
|
15880
|
-
// // Algorithm will still work, but not perfectly
|
15881
|
-
// consoleWarn('Samples provided to calculateImpulseVelocity in the wrong order')
|
15882
|
-
// }
|
15883
|
-
if (samples.length === 2) {
|
15884
|
-
// if 2 points, basic linear calculation
|
15885
|
-
if (samples[1].t === samples[0].t) {
|
15886
|
-
// consoleWarn(`Events have identical time stamps t=${samples[0].t}, setting velocity = 0`)
|
15887
|
-
return 0;
|
15888
|
-
}
|
15889
|
-
return (samples[1].d - samples[0].d) / (samples[1].t - samples[0].t);
|
15657
|
+
// if (samples[1].t > samples[0].t) {
|
15658
|
+
// // Algorithm will still work, but not perfectly
|
15659
|
+
// consoleWarn('Samples provided to calculateImpulseVelocity in the wrong order')
|
15660
|
+
// }
|
15661
|
+
if (samples.length === 2) {
|
15662
|
+
// if 2 points, basic linear calculation
|
15663
|
+
if (samples[1].t === samples[0].t) {
|
15664
|
+
// consoleWarn(`Events have identical time stamps t=${samples[0].t}, setting velocity = 0`)
|
15665
|
+
return 0;
|
15666
|
+
}
|
15667
|
+
return (samples[1].d - samples[0].d) / (samples[1].t - samples[0].t);
|
15890
15668
|
}
|
15891
15669
|
// Guaranteed to have at least 3 points here
|
15892
15670
|
// start with the oldest sample and go forward in time
|
@@ -16130,6 +15908,7 @@
|
|
16130
15908
|
},
|
16131
15909
|
sticky: Boolean,
|
16132
15910
|
...makeBorderProps(),
|
15911
|
+
...makeComponentProps(),
|
16133
15912
|
...makeElevationProps(),
|
16134
15913
|
...makeLayoutItemProps(),
|
16135
15914
|
...makeRoundedProps(),
|
@@ -16218,7 +15997,6 @@
|
|
16218
15997
|
});
|
16219
15998
|
const {
|
16220
15999
|
layoutItemStyles,
|
16221
|
-
layoutRect,
|
16222
16000
|
layoutItemScrimStyles
|
16223
16001
|
} = useLayoutItem({
|
16224
16002
|
id: props.name,
|
@@ -16248,12 +16026,6 @@
|
|
16248
16026
|
opacity: dragProgress.value * 0.2,
|
16249
16027
|
transition: 'none'
|
16250
16028
|
} : undefined),
|
16251
|
-
...(layoutRect.value ? {
|
16252
|
-
left: convertToUnit(layoutRect.value.left),
|
16253
|
-
right: convertToUnit(layoutRect.value.right),
|
16254
|
-
top: convertToUnit(layoutRect.value.top),
|
16255
|
-
bottom: convertToUnit(layoutRect.value.bottom)
|
16256
|
-
} : undefined),
|
16257
16029
|
...layoutItemScrimStyles.value
|
16258
16030
|
}));
|
16259
16031
|
provideDefaults({
|
@@ -16281,8 +16053,8 @@
|
|
16281
16053
|
'v-navigation-drawer--temporary': isTemporary.value,
|
16282
16054
|
'v-navigation-drawer--active': isActive.value,
|
16283
16055
|
'v-navigation-drawer--sticky': isSticky.value
|
16284
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value],
|
16285
|
-
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value]
|
16056
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
16057
|
+
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value, props.style]
|
16286
16058
|
}, attrs), {
|
16287
16059
|
default: () => [hasImage && vue.createVNode("div", {
|
16288
16060
|
"key": "image",
|
@@ -16411,6 +16183,7 @@
|
|
16411
16183
|
},
|
16412
16184
|
showFirstLastPage: Boolean,
|
16413
16185
|
...makeBorderProps(),
|
16186
|
+
...makeComponentProps(),
|
16414
16187
|
...makeDensityProps(),
|
16415
16188
|
...makeElevationProps(),
|
16416
16189
|
...makeRoundedProps(),
|
@@ -16607,7 +16380,8 @@
|
|
16607
16380
|
}
|
16608
16381
|
useRender(() => vue.createVNode(props.tag, {
|
16609
16382
|
"ref": resizeRef,
|
16610
|
-
"class": ['v-pagination', themeClasses.value],
|
16383
|
+
"class": ['v-pagination', themeClasses.value, props.class],
|
16384
|
+
"style": props.style,
|
16611
16385
|
"role": "navigation",
|
16612
16386
|
"aria-label": t(props.ariaLabel),
|
16613
16387
|
"onKeydown": onKeydown,
|
@@ -16666,7 +16440,8 @@
|
|
16666
16440
|
scale: {
|
16667
16441
|
type: [Number, String],
|
16668
16442
|
default: 0.5
|
16669
|
-
}
|
16443
|
+
},
|
16444
|
+
...makeComponentProps()
|
16670
16445
|
},
|
16671
16446
|
setup(props, _ref) {
|
16672
16447
|
let {
|
@@ -16728,7 +16503,8 @@
|
|
16728
16503
|
useRender(() => vue.createVNode(VImg, {
|
16729
16504
|
"class": ['v-parallax', {
|
16730
16505
|
'v-parallax--active': isIntersecting.value
|
16731
|
-
}],
|
16506
|
+
}, props.class],
|
16507
|
+
"style": props.style,
|
16732
16508
|
"ref": root,
|
16733
16509
|
"cover": true,
|
16734
16510
|
"onLoadstart": onScroll,
|
@@ -16753,7 +16529,8 @@
|
|
16753
16529
|
slots
|
16754
16530
|
} = _ref;
|
16755
16531
|
useRender(() => vue.createVNode(VSelectionControl, vue.mergeProps(props, {
|
16756
|
-
"class":
|
16532
|
+
"class": ['v-radio', props.class],
|
16533
|
+
"style": props.style,
|
16757
16534
|
"type": "radio"
|
16758
16535
|
}), slots));
|
16759
16536
|
return {};
|
@@ -16807,7 +16584,8 @@
|
|
16807
16584
|
}
|
16808
16585
|
}) : props.label;
|
16809
16586
|
return vue.createVNode(VInput, vue.mergeProps({
|
16810
|
-
"class":
|
16587
|
+
"class": ['v-radio-group', props.class],
|
16588
|
+
"style": props.style
|
16811
16589
|
}, inputAttrs, inputProps, {
|
16812
16590
|
"modelValue": model.value,
|
16813
16591
|
"onUpdate:modelValue": $event => model.value = $event,
|
@@ -16945,7 +16723,8 @@
|
|
16945
16723
|
'v-slider--focused': isFocused.value,
|
16946
16724
|
'v-slider--pressed': mousePressed.value,
|
16947
16725
|
'v-slider--disabled': props.disabled
|
16948
|
-
}],
|
16726
|
+
}, props.class],
|
16727
|
+
"style": props.style,
|
16949
16728
|
"ref": inputRef
|
16950
16729
|
}, inputProps, {
|
16951
16730
|
"focused": isFocused.value
|
@@ -17088,6 +16867,7 @@
|
|
17088
16867
|
validator: v => ['top', 'bottom'].includes(v)
|
17089
16868
|
},
|
17090
16869
|
ripple: Boolean,
|
16870
|
+
...makeComponentProps(),
|
17091
16871
|
...makeDensityProps(),
|
17092
16872
|
...makeSizeProps(),
|
17093
16873
|
...makeTagProps(),
|
@@ -17205,7 +16985,8 @@
|
|
17205
16985
|
"class": ['v-rating', {
|
17206
16986
|
'v-rating--hover': props.hover,
|
17207
16987
|
'v-rating--readonly': props.readonly
|
17208
|
-
}, themeClasses.value]
|
16988
|
+
}, themeClasses.value, props.class],
|
16989
|
+
"style": props.style
|
17209
16990
|
}, {
|
17210
16991
|
default: () => [vue.createVNode(VRatingItem, {
|
17211
16992
|
"value": 0,
|
@@ -17305,6 +17086,7 @@
|
|
17305
17086
|
type: [Boolean, String],
|
17306
17087
|
validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
|
17307
17088
|
},
|
17089
|
+
...makeComponentProps(),
|
17308
17090
|
...makeTagProps(),
|
17309
17091
|
...makeGroupProps({
|
17310
17092
|
selectedClass: 'v-slide-group-item--active'
|
@@ -17468,7 +17250,7 @@
|
|
17468
17250
|
function focus(location) {
|
17469
17251
|
if (!contentRef.value) return;
|
17470
17252
|
if (!location) {
|
17471
|
-
const focusable =
|
17253
|
+
const focusable = focusableChildren(contentRef.value);
|
17472
17254
|
focusable[0]?.focus();
|
17473
17255
|
} else if (location === 'next') {
|
17474
17256
|
const el = contentRef.value.querySelector(':focus')?.nextElementSibling;
|
@@ -17545,7 +17327,8 @@
|
|
17545
17327
|
'v-slide-group--vertical': !isHorizontal.value,
|
17546
17328
|
'v-slide-group--has-affixes': hasAffixes.value,
|
17547
17329
|
'v-slide-group--is-overflowing': isOverflowing.value
|
17548
|
-
}],
|
17330
|
+
}, props.class],
|
17331
|
+
"style": props.style,
|
17549
17332
|
"tabindex": isFocused.value || group.selected.value.length ? -1 : 0,
|
17550
17333
|
"onFocus": onFocus
|
17551
17334
|
}, {
|
@@ -17695,7 +17478,8 @@
|
|
17695
17478
|
'v-snackbar--active': isActive.value,
|
17696
17479
|
'v-snackbar--multi-line': props.multiLine && !props.vertical,
|
17697
17480
|
'v-snackbar--vertical': props.vertical
|
17698
|
-
}, positionClasses.value]
|
17481
|
+
}, positionClasses.value, props.class],
|
17482
|
+
"style": props.style
|
17699
17483
|
}, overlayProps, {
|
17700
17484
|
"modelValue": isActive.value,
|
17701
17485
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
@@ -17795,7 +17579,8 @@
|
|
17795
17579
|
'v-switch--inset': props.inset
|
17796
17580
|
}, {
|
17797
17581
|
'v-switch--indeterminate': indeterminate.value
|
17798
|
-
}, loaderClasses.value]
|
17582
|
+
}, loaderClasses.value, props.class],
|
17583
|
+
"style": props.style
|
17799
17584
|
}, inputAttrs, inputProps, {
|
17800
17585
|
"id": id.value,
|
17801
17586
|
"focused": isFocused.value
|
@@ -17864,6 +17649,7 @@
|
|
17864
17649
|
color: String,
|
17865
17650
|
height: [Number, String],
|
17866
17651
|
window: Boolean,
|
17652
|
+
...makeComponentProps(),
|
17867
17653
|
...makeElevationProps(),
|
17868
17654
|
...makeLayoutItemProps(),
|
17869
17655
|
...makeRoundedProps(),
|
@@ -17905,8 +17691,8 @@
|
|
17905
17691
|
useRender(() => vue.createVNode(props.tag, {
|
17906
17692
|
"class": ['v-system-bar', {
|
17907
17693
|
'v-system-bar--window': props.window
|
17908
|
-
}, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value],
|
17909
|
-
"style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value]
|
17694
|
+
}, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
17695
|
+
"style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, props.style]
|
17910
17696
|
}, slots));
|
17911
17697
|
return {};
|
17912
17698
|
}
|
@@ -17979,10 +17765,10 @@
|
|
17979
17765
|
useRender(() => {
|
17980
17766
|
const [btnProps] = VBtn.filterProps(props);
|
17981
17767
|
return vue.createVNode(VBtn, vue.mergeProps({
|
17982
|
-
"_as": "VTab",
|
17983
17768
|
"symbol": VTabsSymbol,
|
17984
17769
|
"ref": rootEl,
|
17985
|
-
"class": ['v-tab'],
|
17770
|
+
"class": ['v-tab', props.class],
|
17771
|
+
"style": props.style,
|
17986
17772
|
"tabindex": isSelected.value ? 0 : -1,
|
17987
17773
|
"role": "tab",
|
17988
17774
|
"aria-selected": String(isSelected.value),
|
@@ -18077,10 +17863,10 @@
|
|
18077
17863
|
'v-tabs--fixed-tabs': props.fixedTabs,
|
18078
17864
|
'v-tabs--grow': props.grow,
|
18079
17865
|
'v-tabs--stacked': props.stacked
|
18080
|
-
}, densityClasses.value, backgroundColorClasses.value],
|
17866
|
+
}, densityClasses.value, backgroundColorClasses.value, props.class],
|
18081
17867
|
"style": [{
|
18082
17868
|
'--v-tabs-height': convertToUnit(props.height)
|
18083
|
-
}, backgroundColorStyles.value],
|
17869
|
+
}, backgroundColorStyles.value, props.style],
|
18084
17870
|
"role": "tablist",
|
18085
17871
|
"symbol": VTabsSymbol
|
18086
17872
|
}), {
|
@@ -18100,6 +17886,7 @@
|
|
18100
17886
|
fixedFooter: Boolean,
|
18101
17887
|
height: [Number, String],
|
18102
17888
|
hover: Boolean,
|
17889
|
+
...makeComponentProps(),
|
18103
17890
|
...makeDensityProps(),
|
18104
17891
|
...makeTagProps(),
|
18105
17892
|
...makeThemeProps()
|
@@ -18122,7 +17909,8 @@
|
|
18122
17909
|
'v-table--has-top': !!slots.top,
|
18123
17910
|
'v-table--has-bottom': !!slots.bottom,
|
18124
17911
|
'v-table--hover': props.hover
|
18125
|
-
}, themeClasses.value, densityClasses.value]
|
17912
|
+
}, themeClasses.value, densityClasses.value, props.class],
|
17913
|
+
"style": props.style
|
18126
17914
|
}, {
|
18127
17915
|
default: () => [slots.top?.(), slots.default ? vue.createVNode("div", {
|
18128
17916
|
"class": "v-table__wrapper",
|
@@ -18201,7 +17989,7 @@
|
|
18201
17989
|
const vFieldRef = vue.ref();
|
18202
17990
|
const controlHeight = vue.ref('');
|
18203
17991
|
const textareaRef = vue.ref();
|
18204
|
-
const isActive = vue.computed(() => isFocused.value || props.
|
17992
|
+
const isActive = vue.computed(() => props.persistentPlaceholder || isFocused.value || props.active);
|
18205
17993
|
function onFocus() {
|
18206
17994
|
if (textareaRef.value !== document.activeElement) {
|
18207
17995
|
textareaRef.value?.focus();
|
@@ -18287,7 +18075,8 @@
|
|
18287
18075
|
'v-textarea--auto-grow': props.autoGrow,
|
18288
18076
|
'v-textarea--no-resize': props.noResize || props.autoGrow,
|
18289
18077
|
'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant)
|
18290
|
-
}]
|
18078
|
+
}, props.class],
|
18079
|
+
"style": props.style
|
18291
18080
|
}, rootAttrs, inputProps, {
|
18292
18081
|
"focused": isFocused.value
|
18293
18082
|
}), {
|
@@ -18371,6 +18160,7 @@
|
|
18371
18160
|
name: 'VThemeProvider',
|
18372
18161
|
props: {
|
18373
18162
|
withBackground: Boolean,
|
18163
|
+
...makeComponentProps(),
|
18374
18164
|
...makeThemeProps(),
|
18375
18165
|
...makeTagProps()
|
18376
18166
|
},
|
@@ -18384,7 +18174,8 @@
|
|
18384
18174
|
return () => {
|
18385
18175
|
if (!props.withBackground) return slots.default?.();
|
18386
18176
|
return vue.createVNode(props.tag, {
|
18387
|
-
"class": ['v-theme-provider', themeClasses.value]
|
18177
|
+
"class": ['v-theme-provider', themeClasses.value, props.class],
|
18178
|
+
"style": props.style
|
18388
18179
|
}, {
|
18389
18180
|
default: () => [slots.default?.()]
|
18390
18181
|
});
|
@@ -18429,6 +18220,7 @@
|
|
18429
18220
|
type: String,
|
18430
18221
|
validator: v => ['start', 'end', 'both'].includes(v)
|
18431
18222
|
},
|
18223
|
+
...makeComponentProps(),
|
18432
18224
|
...makeDensityProps(),
|
18433
18225
|
...makeTagProps(),
|
18434
18226
|
...makeThemeProps()
|
@@ -18472,10 +18264,10 @@
|
|
18472
18264
|
useRender(() => vue.createVNode(props.tag, {
|
18473
18265
|
"class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {
|
18474
18266
|
'v-timeline--inset-line': !!props.lineInset
|
18475
|
-
}, themeClasses.value, densityClasses.value, sideClasses.value],
|
18476
|
-
"style": {
|
18267
|
+
}, themeClasses.value, densityClasses.value, sideClasses.value, props.class],
|
18268
|
+
"style": [{
|
18477
18269
|
'--v-timeline-line-thickness': convertToUnit(props.lineThickness)
|
18478
|
-
}
|
18270
|
+
}, props.style]
|
18479
18271
|
}, slots));
|
18480
18272
|
return {};
|
18481
18273
|
}
|
@@ -18490,6 +18282,7 @@
|
|
18490
18282
|
icon: IconValue,
|
18491
18283
|
iconColor: String,
|
18492
18284
|
lineColor: String,
|
18285
|
+
...makeComponentProps(),
|
18493
18286
|
...makeRoundedProps(),
|
18494
18287
|
...makeSizeProps(),
|
18495
18288
|
...makeElevationProps()
|
@@ -18519,7 +18312,8 @@
|
|
18519
18312
|
useRender(() => vue.createVNode("div", {
|
18520
18313
|
"class": ['v-timeline-divider', {
|
18521
18314
|
'v-timeline-divider--fill-dot': props.fillDot
|
18522
|
-
}]
|
18315
|
+
}, props.class],
|
18316
|
+
"style": props.style
|
18523
18317
|
}, [vue.createVNode("div", {
|
18524
18318
|
"class": ['v-timeline-divider__before', lineColorClasses.value],
|
18525
18319
|
"style": lineColorStyles.value
|
@@ -18569,11 +18363,12 @@
|
|
18569
18363
|
icon: IconValue,
|
18570
18364
|
iconColor: String,
|
18571
18365
|
lineInset: [Number, String],
|
18572
|
-
...
|
18366
|
+
...makeComponentProps(),
|
18367
|
+
...makeDimensionProps(),
|
18573
18368
|
...makeElevationProps(),
|
18369
|
+
...makeRoundedProps(),
|
18574
18370
|
...makeSizeProps(),
|
18575
|
-
...makeTagProps()
|
18576
|
-
...makeDimensionProps()
|
18371
|
+
...makeTagProps()
|
18577
18372
|
},
|
18578
18373
|
setup(props, _ref) {
|
18579
18374
|
let {
|
@@ -18593,11 +18388,11 @@
|
|
18593
18388
|
useRender(() => vue.createVNode("div", {
|
18594
18389
|
"class": ['v-timeline-item', {
|
18595
18390
|
'v-timeline-item--fill-dot': props.fillDot
|
18596
|
-
}],
|
18597
|
-
"style": {
|
18391
|
+
}, props.class],
|
18392
|
+
"style": [{
|
18598
18393
|
'--v-timeline-dot-size': convertToUnit(dotSize.value),
|
18599
18394
|
'--v-timeline-line-inset': props.lineInset ? `calc(var(--v-timeline-dot-size) / 2 + ${convertToUnit(props.lineInset)})` : convertToUnit(0)
|
18600
|
-
}
|
18395
|
+
}, props.style]
|
18601
18396
|
}, [vue.createVNode("div", {
|
18602
18397
|
"class": "v-timeline-item__body",
|
18603
18398
|
"style": dimensionStyles.value
|
@@ -18673,7 +18468,8 @@
|
|
18673
18468
|
const [overlayProps] = VOverlay.filterProps(props);
|
18674
18469
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
18675
18470
|
"ref": overlay,
|
18676
|
-
"class": ['v-tooltip'],
|
18471
|
+
"class": ['v-tooltip', props.class],
|
18472
|
+
"style": props.style,
|
18677
18473
|
"id": id.value
|
18678
18474
|
}, overlayProps, {
|
18679
18475
|
"modelValue": isActive.value,
|
@@ -18721,7 +18517,8 @@
|
|
18721
18517
|
const VVirtualScrollItem = genericComponent()({
|
18722
18518
|
name: 'VVirtualScrollItem',
|
18723
18519
|
props: {
|
18724
|
-
dynamicHeight: Boolean
|
18520
|
+
dynamicHeight: Boolean,
|
18521
|
+
...makeComponentProps()
|
18725
18522
|
},
|
18726
18523
|
emits: {
|
18727
18524
|
'update:height': height => true
|
@@ -18748,7 +18545,8 @@
|
|
18748
18545
|
vue.onUpdated(updateHeight);
|
18749
18546
|
useRender(() => vue.createVNode("div", {
|
18750
18547
|
"ref": props.dynamicHeight ? resizeRef : undefined,
|
18751
|
-
"class":
|
18548
|
+
"class": ['v-virtual-scroll__item', props.class],
|
18549
|
+
"style": props.style
|
18752
18550
|
}, [slots.default?.()]));
|
18753
18551
|
}
|
18754
18552
|
});
|
@@ -18765,7 +18563,7 @@
|
|
18765
18563
|
default: () => []
|
18766
18564
|
},
|
18767
18565
|
itemHeight: [Number, String],
|
18768
|
-
|
18566
|
+
...makeComponentProps(),
|
18769
18567
|
...makeDimensionProps()
|
18770
18568
|
},
|
18771
18569
|
setup(props, _ref) {
|
@@ -18792,7 +18590,7 @@
|
|
18792
18590
|
const sizeMap = new Map();
|
18793
18591
|
let sizes = createRange(props.items.length).map(() => itemHeight.value);
|
18794
18592
|
const visibleItems = vue.computed(() => {
|
18795
|
-
return
|
18593
|
+
return Math.max(12, Math.ceil((contentRect.value?.height ?? display.height.value) / itemHeight.value * 1.7 + 1));
|
18796
18594
|
});
|
18797
18595
|
function handleItemResize(index, height) {
|
18798
18596
|
itemHeight.value = Math.max(itemHeight.value, height);
|
@@ -18803,20 +18601,13 @@
|
|
18803
18601
|
return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0);
|
18804
18602
|
}
|
18805
18603
|
function calculateMidPointIndex(scrollTop) {
|
18806
|
-
|
18807
|
-
let
|
18808
|
-
|
18809
|
-
|
18810
|
-
|
18811
|
-
if (middleOffset === scrollTop) {
|
18812
|
-
return middle;
|
18813
|
-
} else if (middleOffset < scrollTop) {
|
18814
|
-
start = middle + 1;
|
18815
|
-
} else if (middleOffset > scrollTop) {
|
18816
|
-
end = middle - 1;
|
18817
|
-
}
|
18604
|
+
const end = props.items.length;
|
18605
|
+
let middle = 0;
|
18606
|
+
let middleOffset = 0;
|
18607
|
+
while (middleOffset < scrollTop && middle < end) {
|
18608
|
+
middleOffset += sizes[middle++] || itemHeight.value;
|
18818
18609
|
}
|
18819
|
-
return
|
18610
|
+
return middle - 1;
|
18820
18611
|
}
|
18821
18612
|
let lastScrollTop = 0;
|
18822
18613
|
function handleScroll() {
|
@@ -18838,8 +18629,12 @@
|
|
18838
18629
|
const offset = calculateOffset(index);
|
18839
18630
|
rootEl.value.scrollTop = offset;
|
18840
18631
|
}
|
18632
|
+
const items = vue.computed(() => props.items.map((item, index) => ({
|
18633
|
+
raw: item,
|
18634
|
+
index
|
18635
|
+
})));
|
18841
18636
|
const last = vue.computed(() => Math.min(props.items.length, first.value + visibleItems.value));
|
18842
|
-
const computedItems = vue.computed(() =>
|
18637
|
+
const computedItems = vue.computed(() => items.value.slice(first.value, last.value));
|
18843
18638
|
const paddingTop = vue.computed(() => calculateOffset(first.value));
|
18844
18639
|
const paddingBottom = vue.computed(() => calculateOffset(props.items.length) - calculateOffset(last.value));
|
18845
18640
|
const {
|
@@ -18864,23 +18659,23 @@
|
|
18864
18659
|
});
|
18865
18660
|
useRender(() => vue.createVNode("div", {
|
18866
18661
|
"ref": rootEl,
|
18867
|
-
"class":
|
18662
|
+
"class": ['v-virtual-scroll', props.class],
|
18868
18663
|
"onScroll": handleScroll,
|
18869
|
-
"style": dimensionStyles.value
|
18664
|
+
"style": [dimensionStyles.value, props.style]
|
18870
18665
|
}, [vue.createVNode("div", {
|
18871
18666
|
"class": "v-virtual-scroll__container",
|
18872
18667
|
"style": {
|
18873
18668
|
paddingTop: convertToUnit(paddingTop.value),
|
18874
18669
|
paddingBottom: convertToUnit(paddingBottom.value)
|
18875
18670
|
}
|
18876
|
-
}, [computedItems.value.map(
|
18877
|
-
"key": index,
|
18671
|
+
}, [computedItems.value.map(item => vue.createVNode(VVirtualScrollItem, {
|
18672
|
+
"key": item.index,
|
18878
18673
|
"dynamicHeight": !props.itemHeight,
|
18879
|
-
"onUpdate:height": height => handleItemResize(index
|
18674
|
+
"onUpdate:height": height => handleItemResize(item.index, height)
|
18880
18675
|
}, {
|
18881
18676
|
default: () => [slots.default?.({
|
18882
|
-
item,
|
18883
|
-
index: index
|
18677
|
+
item: item.raw,
|
18678
|
+
index: item.index
|
18884
18679
|
})]
|
18885
18680
|
}))])]));
|
18886
18681
|
return {
|
@@ -19314,6 +19109,17 @@
|
|
19314
19109
|
backgroundColorClasses,
|
19315
19110
|
backgroundColorStyles
|
19316
19111
|
} = useBackgroundColor(props, 'color');
|
19112
|
+
const slotProps = vue.computed(() => ({
|
19113
|
+
headers: headers.value,
|
19114
|
+
columns: columns.value,
|
19115
|
+
toggleSort,
|
19116
|
+
sortBy: sortBy.value,
|
19117
|
+
someSelected: someSelected.value,
|
19118
|
+
allSelected: allSelected.value,
|
19119
|
+
selectAll,
|
19120
|
+
getSortIcon,
|
19121
|
+
getFixedStyles
|
19122
|
+
}));
|
19317
19123
|
const VDataTableHeaderCell = _ref2 => {
|
19318
19124
|
let {
|
19319
19125
|
column,
|
@@ -19341,14 +19147,14 @@
|
|
19341
19147
|
"noPadding": noPadding
|
19342
19148
|
}, {
|
19343
19149
|
default: () => {
|
19344
|
-
const
|
19345
|
-
const
|
19150
|
+
const columnSlotName = `column.${column.key}`;
|
19151
|
+
const columnSlotProps = {
|
19346
19152
|
column,
|
19347
19153
|
selectAll
|
19348
19154
|
};
|
19349
|
-
if (slots[
|
19155
|
+
if (slots[columnSlotName]) return slots[columnSlotName](columnSlotProps);
|
19350
19156
|
if (column.key === 'data-table-select') {
|
19351
|
-
return slots['column.data-table-select']?.(
|
19157
|
+
return slots['column.data-table-select']?.(columnSlotProps) ?? vue.createVNode(VCheckboxBtn, {
|
19352
19158
|
"modelValue": allSelected.value,
|
19353
19159
|
"indeterminate": someSelected.value && !allSelected.value,
|
19354
19160
|
"onUpdate:modelValue": selectAll
|
@@ -19368,22 +19174,24 @@
|
|
19368
19174
|
}
|
19369
19175
|
});
|
19370
19176
|
};
|
19371
|
-
useRender(() =>
|
19372
|
-
"
|
19373
|
-
|
19374
|
-
|
19375
|
-
|
19376
|
-
"
|
19377
|
-
|
19378
|
-
"
|
19379
|
-
|
19380
|
-
|
19381
|
-
|
19382
|
-
|
19383
|
-
|
19384
|
-
|
19385
|
-
|
19386
|
-
|
19177
|
+
useRender(() => {
|
19178
|
+
return vue.createVNode(vue.Fragment, null, [slots.headers ? slots.headers(slotProps.value) : headers.value.map((row, y) => vue.createVNode("tr", null, [row.map((column, x) => vue.createVNode(VDataTableHeaderCell, {
|
19179
|
+
"column": column,
|
19180
|
+
"x": x,
|
19181
|
+
"y": y
|
19182
|
+
}, null))])), props.loading && vue.createVNode("tr", {
|
19183
|
+
"class": "v-data-table__progress"
|
19184
|
+
}, [vue.createVNode("th", {
|
19185
|
+
"colspan": columns.value.length
|
19186
|
+
}, [vue.createVNode(LoaderSlot, {
|
19187
|
+
"name": "v-data-table-headers",
|
19188
|
+
"active": true,
|
19189
|
+
"color": typeof props.loading === 'boolean' ? undefined : props.loading,
|
19190
|
+
"indeterminate": true
|
19191
|
+
}, {
|
19192
|
+
default: slots.loader
|
19193
|
+
})])])]);
|
19194
|
+
});
|
19387
19195
|
}
|
19388
19196
|
});
|
19389
19197
|
|
@@ -19682,9 +19490,7 @@
|
|
19682
19490
|
'v-data-table__tr--clickable': !!props.onClick
|
19683
19491
|
}],
|
19684
19492
|
"onClick": props.onClick
|
19685
|
-
}, [
|
19686
|
-
"key": "no-data"
|
19687
|
-
}, slots), props.item && columns.value.map((column, i) => vue.createVNode(VDataTableColumn, {
|
19493
|
+
}, [props.item && columns.value.map((column, i) => vue.createVNode(VDataTableColumn, {
|
19688
19494
|
"align": column.align,
|
19689
19495
|
"fixed": column.fixed,
|
19690
19496
|
"fixedOffset": column.fixedOffset,
|
@@ -19774,13 +19580,13 @@
|
|
19774
19580
|
useRender(() => {
|
19775
19581
|
if (props.loading && slots.loading) {
|
19776
19582
|
return vue.createVNode("tr", {
|
19777
|
-
"class": "v-data-table-rows-
|
19583
|
+
"class": "v-data-table-rows-loading",
|
19778
19584
|
"key": "loading"
|
19779
19585
|
}, [vue.createVNode("td", {
|
19780
19586
|
"colspan": columns.value.length
|
19781
19587
|
}, [slots.loading()])]);
|
19782
19588
|
}
|
19783
|
-
if (!props.loading && !props.items.length && !props.hideNoData
|
19589
|
+
if (!props.loading && !props.items.length && !props.hideNoData) {
|
19784
19590
|
return vue.createVNode("tr", {
|
19785
19591
|
"class": "v-data-table-rows-no-data",
|
19786
19592
|
"key": "no-data"
|
@@ -19874,6 +19680,11 @@
|
|
19874
19680
|
if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1;
|
19875
19681
|
return Math.ceil(itemsLength.value / itemsPerPage.value);
|
19876
19682
|
});
|
19683
|
+
vue.watchEffect(() => {
|
19684
|
+
if (page.value > pageCount.value) {
|
19685
|
+
page.value = pageCount.value;
|
19686
|
+
}
|
19687
|
+
});
|
19877
19688
|
function setItemsPerPage(value) {
|
19878
19689
|
itemsPerPage.value = value;
|
19879
19690
|
page.value = 1;
|
@@ -20137,6 +19948,11 @@
|
|
20137
19948
|
width: [String, Number],
|
20138
19949
|
fixedHeader: Boolean,
|
20139
19950
|
fixedFooter: Boolean,
|
19951
|
+
loading: [Boolean, String],
|
19952
|
+
loadingText: {
|
19953
|
+
type: String,
|
19954
|
+
default: '$vuetify.dataIterator.loadingText'
|
19955
|
+
},
|
20140
19956
|
'onClick:row': Function,
|
20141
19957
|
search: String
|
20142
19958
|
}, 'v-data-table');
|
@@ -20244,12 +20060,15 @@
|
|
20244
20060
|
provideDefaults({
|
20245
20061
|
VDataTableRows: {
|
20246
20062
|
hideNoData: vue.toRef(props, 'hideNoData'),
|
20247
|
-
noDataText: vue.toRef(props, 'noDataText')
|
20063
|
+
noDataText: vue.toRef(props, 'noDataText'),
|
20064
|
+
loading: vue.toRef(props, 'loading'),
|
20065
|
+
loadingText: vue.toRef(props, 'loadingText')
|
20248
20066
|
}
|
20249
20067
|
});
|
20250
20068
|
useRender(() => vue.createVNode(VTable, {
|
20251
20069
|
"class": ['v-data-table', {
|
20252
|
-
'v-data-table--show-select': props.showSelect
|
20070
|
+
'v-data-table--show-select': props.showSelect,
|
20071
|
+
'v-data-table--loading': props.loading
|
20253
20072
|
}],
|
20254
20073
|
"fixedHeader": props.fixedHeader,
|
20255
20074
|
"fixedFooter": props.fixedFooter,
|
@@ -20259,8 +20078,9 @@
|
|
20259
20078
|
top: slots.top,
|
20260
20079
|
default: slots.default ?? (() => vue.createVNode(vue.Fragment, null, [slots.colgroup?.({
|
20261
20080
|
columns
|
20262
|
-
}), vue.createVNode("thead", null, [
|
20081
|
+
}), vue.createVNode("thead", null, [vue.createVNode(VDataTableHeaders, {
|
20263
20082
|
"sticky": props.fixedHeader,
|
20083
|
+
"loading": props.loading,
|
20264
20084
|
"multiSort": props.multiSort
|
20265
20085
|
}, slots)]), slots.thead?.(), vue.createVNode("tbody", null, [slots.body ? slots.body() : vue.createVNode(VDataTableRows, {
|
20266
20086
|
"items": paginatedItems.value,
|
@@ -20450,11 +20270,15 @@
|
|
20450
20270
|
provideDefaults({
|
20451
20271
|
VDataTableRows: {
|
20452
20272
|
hideNoData: vue.toRef(props, 'hideNoData'),
|
20453
|
-
noDataText: vue.toRef(props, 'noDataText')
|
20273
|
+
noDataText: vue.toRef(props, 'noDataText'),
|
20274
|
+
loading: vue.toRef(props, 'loading'),
|
20275
|
+
loadingText: vue.toRef(props, 'loadingText')
|
20454
20276
|
}
|
20455
20277
|
});
|
20456
20278
|
useRender(() => vue.createVNode(VTable, {
|
20457
|
-
"class":
|
20279
|
+
"class": ['v-data-table', {
|
20280
|
+
'v-data-table--loading': props.loading
|
20281
|
+
}],
|
20458
20282
|
"style": {
|
20459
20283
|
'--v-table-row-height': convertToUnit(itemHeight.value)
|
20460
20284
|
},
|
@@ -20473,6 +20297,7 @@
|
|
20473
20297
|
}
|
20474
20298
|
}, [vue.createVNode("table", null, [vue.createVNode("thead", null, [vue.createVNode(VDataTableHeaders, {
|
20475
20299
|
"sticky": props.fixedHeader,
|
20300
|
+
"loading": props.loading,
|
20476
20301
|
"multiSort": props.multiSort
|
20477
20302
|
}, slots)]), vue.createVNode("tbody", null, [vue.createVNode("tr", {
|
20478
20303
|
"style": {
|
@@ -20511,11 +20336,6 @@
|
|
20511
20336
|
name: 'VDataTableServer',
|
20512
20337
|
props: {
|
20513
20338
|
color: String,
|
20514
|
-
loading: [Boolean, String],
|
20515
|
-
loadingText: {
|
20516
|
-
type: String,
|
20517
|
-
default: '$vuetify.dataIterator.loadingText'
|
20518
|
-
},
|
20519
20339
|
itemsLength: {
|
20520
20340
|
type: [Number, String],
|
20521
20341
|
required: true
|
@@ -20625,7 +20445,7 @@
|
|
20625
20445
|
}), vue.createVNode("thead", {
|
20626
20446
|
"class": "v-data-table__thead",
|
20627
20447
|
"role": "rowgroup"
|
20628
|
-
}, [
|
20448
|
+
}, [vue.createVNode(VDataTableHeaders, {
|
20629
20449
|
"sticky": props.fixedHeader,
|
20630
20450
|
"loading": props.loading,
|
20631
20451
|
"color": props.color
|
@@ -21127,130 +20947,542 @@
|
|
21127
20947
|
|
21128
20948
|
// Types
|
21129
20949
|
|
21130
|
-
function mounted$2(el, binding) {
|
21131
|
-
const modifiers = binding.modifiers || {};
|
21132
|
-
const value = binding.value;
|
21133
|
-
const {
|
21134
|
-
once,
|
21135
|
-
immediate,
|
21136
|
-
...modifierKeys
|
21137
|
-
} = modifiers;
|
21138
|
-
const defaultValue = !Object.keys(modifierKeys).length;
|
21139
|
-
const {
|
21140
|
-
handler,
|
21141
|
-
options
|
21142
|
-
} = typeof value === 'object' ? value : {
|
21143
|
-
handler: value,
|
21144
|
-
options: {
|
21145
|
-
attributes: modifierKeys?.attr ?? defaultValue,
|
21146
|
-
characterData: modifierKeys?.char ?? defaultValue,
|
21147
|
-
childList: modifierKeys?.child ?? defaultValue,
|
21148
|
-
subtree: modifierKeys?.sub ?? defaultValue
|
20950
|
+
function mounted$2(el, binding) {
|
20951
|
+
const modifiers = binding.modifiers || {};
|
20952
|
+
const value = binding.value;
|
20953
|
+
const {
|
20954
|
+
once,
|
20955
|
+
immediate,
|
20956
|
+
...modifierKeys
|
20957
|
+
} = modifiers;
|
20958
|
+
const defaultValue = !Object.keys(modifierKeys).length;
|
20959
|
+
const {
|
20960
|
+
handler,
|
20961
|
+
options
|
20962
|
+
} = typeof value === 'object' ? value : {
|
20963
|
+
handler: value,
|
20964
|
+
options: {
|
20965
|
+
attributes: modifierKeys?.attr ?? defaultValue,
|
20966
|
+
characterData: modifierKeys?.char ?? defaultValue,
|
20967
|
+
childList: modifierKeys?.child ?? defaultValue,
|
20968
|
+
subtree: modifierKeys?.sub ?? defaultValue
|
20969
|
+
}
|
20970
|
+
};
|
20971
|
+
const observer = new MutationObserver(function () {
|
20972
|
+
let mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
20973
|
+
let observer = arguments.length > 1 ? arguments[1] : undefined;
|
20974
|
+
handler?.(mutations, observer);
|
20975
|
+
if (once) unmounted$2(el, binding);
|
20976
|
+
});
|
20977
|
+
if (immediate) handler?.([], observer);
|
20978
|
+
el._mutate = Object(el._mutate);
|
20979
|
+
el._mutate[binding.instance.$.uid] = {
|
20980
|
+
observer
|
20981
|
+
};
|
20982
|
+
observer.observe(el, options);
|
20983
|
+
}
|
20984
|
+
function unmounted$2(el, binding) {
|
20985
|
+
if (!el._mutate?.[binding.instance.$.uid]) return;
|
20986
|
+
el._mutate[binding.instance.$.uid].observer.disconnect();
|
20987
|
+
delete el._mutate[binding.instance.$.uid];
|
20988
|
+
}
|
20989
|
+
const Mutate = {
|
20990
|
+
mounted: mounted$2,
|
20991
|
+
unmounted: unmounted$2
|
20992
|
+
};
|
20993
|
+
|
20994
|
+
function mounted$1(el, binding) {
|
20995
|
+
const handler = binding.value;
|
20996
|
+
const options = {
|
20997
|
+
passive: !binding.modifiers?.active
|
20998
|
+
};
|
20999
|
+
window.addEventListener('resize', handler, options);
|
21000
|
+
el._onResize = Object(el._onResize);
|
21001
|
+
el._onResize[binding.instance.$.uid] = {
|
21002
|
+
handler,
|
21003
|
+
options
|
21004
|
+
};
|
21005
|
+
if (!binding.modifiers?.quiet) {
|
21006
|
+
handler();
|
21007
|
+
}
|
21008
|
+
}
|
21009
|
+
function unmounted$1(el, binding) {
|
21010
|
+
if (!el._onResize?.[binding.instance.$.uid]) return;
|
21011
|
+
const {
|
21012
|
+
handler,
|
21013
|
+
options
|
21014
|
+
} = el._onResize[binding.instance.$.uid];
|
21015
|
+
window.removeEventListener('resize', handler, options);
|
21016
|
+
delete el._onResize[binding.instance.$.uid];
|
21017
|
+
}
|
21018
|
+
const Resize = {
|
21019
|
+
mounted: mounted$1,
|
21020
|
+
unmounted: unmounted$1
|
21021
|
+
};
|
21022
|
+
|
21023
|
+
function mounted(el, binding) {
|
21024
|
+
const {
|
21025
|
+
self = false
|
21026
|
+
} = binding.modifiers ?? {};
|
21027
|
+
const value = binding.value;
|
21028
|
+
const options = typeof value === 'object' && value.options || {
|
21029
|
+
passive: true
|
21030
|
+
};
|
21031
|
+
const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler;
|
21032
|
+
const target = self ? el : binding.arg ? document.querySelector(binding.arg) : window;
|
21033
|
+
if (!target) return;
|
21034
|
+
target.addEventListener('scroll', handler, options);
|
21035
|
+
el._onScroll = Object(el._onScroll);
|
21036
|
+
el._onScroll[binding.instance.$.uid] = {
|
21037
|
+
handler,
|
21038
|
+
options,
|
21039
|
+
// Don't reference self
|
21040
|
+
target: self ? undefined : target
|
21041
|
+
};
|
21042
|
+
}
|
21043
|
+
function unmounted(el, binding) {
|
21044
|
+
if (!el._onScroll?.[binding.instance.$.uid]) return;
|
21045
|
+
const {
|
21046
|
+
handler,
|
21047
|
+
options,
|
21048
|
+
target = el
|
21049
|
+
} = el._onScroll[binding.instance.$.uid];
|
21050
|
+
target.removeEventListener('scroll', handler, options);
|
21051
|
+
delete el._onScroll[binding.instance.$.uid];
|
21052
|
+
}
|
21053
|
+
function updated(el, binding) {
|
21054
|
+
if (binding.value === binding.oldValue) return;
|
21055
|
+
unmounted(el, binding);
|
21056
|
+
mounted(el, binding);
|
21057
|
+
}
|
21058
|
+
const Scroll = {
|
21059
|
+
mounted,
|
21060
|
+
unmounted,
|
21061
|
+
updated
|
21062
|
+
};
|
21063
|
+
|
21064
|
+
var directives = /*#__PURE__*/Object.freeze({
|
21065
|
+
__proto__: null,
|
21066
|
+
ClickOutside: ClickOutside,
|
21067
|
+
Intersect: Intersect,
|
21068
|
+
Mutate: Mutate,
|
21069
|
+
Resize: Resize,
|
21070
|
+
Ripple: Ripple,
|
21071
|
+
Scroll: Scroll,
|
21072
|
+
Touch: Touch
|
21073
|
+
});
|
21074
|
+
|
21075
|
+
// Utilities
|
21076
|
+
|
21077
|
+
// Types
|
21078
|
+
|
21079
|
+
function getWeekArray(date) {
|
21080
|
+
let currentWeek = [];
|
21081
|
+
const weeks = [];
|
21082
|
+
const firstDayOfMonth = startOfMonth(date);
|
21083
|
+
const lastDayOfMonth = endOfMonth(date);
|
21084
|
+
for (let i = 0; i < firstDayOfMonth.getDay(); i++) {
|
21085
|
+
currentWeek.push(null);
|
21086
|
+
}
|
21087
|
+
for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {
|
21088
|
+
const day = new Date(date.getFullYear(), date.getMonth(), i);
|
21089
|
+
|
21090
|
+
// Add the day to the current week
|
21091
|
+
currentWeek.push(day);
|
21092
|
+
|
21093
|
+
// If the current week has 7 days, add it to the weeks array and start a new week
|
21094
|
+
if (currentWeek.length === 7) {
|
21095
|
+
weeks.push(currentWeek);
|
21096
|
+
currentWeek = [];
|
21149
21097
|
}
|
21150
|
-
}
|
21151
|
-
|
21152
|
-
|
21153
|
-
|
21154
|
-
|
21155
|
-
|
21098
|
+
}
|
21099
|
+
for (let i = currentWeek.length; i < 7; i++) {
|
21100
|
+
currentWeek.push(null);
|
21101
|
+
}
|
21102
|
+
weeks.push(currentWeek);
|
21103
|
+
return weeks;
|
21104
|
+
}
|
21105
|
+
function startOfMonth(date) {
|
21106
|
+
return new Date(date.getFullYear(), date.getMonth(), 1);
|
21107
|
+
}
|
21108
|
+
function endOfMonth(date) {
|
21109
|
+
return new Date(date.getFullYear(), date.getMonth() + 1, 0);
|
21110
|
+
}
|
21111
|
+
function date(value) {
|
21112
|
+
if (value == null) return null;
|
21113
|
+
if (value instanceof Date) return value;
|
21114
|
+
if (typeof value === 'string') {
|
21115
|
+
const parsed = Date.parse(value);
|
21116
|
+
if (!isNaN(parsed)) return new Date(parsed);
|
21117
|
+
}
|
21118
|
+
return null;
|
21119
|
+
}
|
21120
|
+
const firstDay = {
|
21121
|
+
'001': 1,
|
21122
|
+
AD: 1,
|
21123
|
+
AE: 6,
|
21124
|
+
AF: 6,
|
21125
|
+
AG: 0,
|
21126
|
+
AI: 1,
|
21127
|
+
AL: 1,
|
21128
|
+
AM: 1,
|
21129
|
+
AN: 1,
|
21130
|
+
AR: 1,
|
21131
|
+
AS: 0,
|
21132
|
+
AT: 1,
|
21133
|
+
AU: 0,
|
21134
|
+
AX: 1,
|
21135
|
+
AZ: 1,
|
21136
|
+
BA: 1,
|
21137
|
+
BD: 0,
|
21138
|
+
BE: 1,
|
21139
|
+
BG: 1,
|
21140
|
+
BH: 6,
|
21141
|
+
BM: 1,
|
21142
|
+
BN: 1,
|
21143
|
+
BR: 0,
|
21144
|
+
BS: 0,
|
21145
|
+
BT: 0,
|
21146
|
+
BW: 0,
|
21147
|
+
BY: 1,
|
21148
|
+
BZ: 0,
|
21149
|
+
CA: 0,
|
21150
|
+
CH: 1,
|
21151
|
+
CL: 1,
|
21152
|
+
CM: 1,
|
21153
|
+
CN: 0,
|
21154
|
+
CO: 0,
|
21155
|
+
CR: 1,
|
21156
|
+
CY: 1,
|
21157
|
+
CZ: 1,
|
21158
|
+
DE: 1,
|
21159
|
+
DJ: 6,
|
21160
|
+
DK: 1,
|
21161
|
+
DM: 0,
|
21162
|
+
DO: 0,
|
21163
|
+
DZ: 6,
|
21164
|
+
EC: 1,
|
21165
|
+
EE: 1,
|
21166
|
+
EG: 6,
|
21167
|
+
ES: 1,
|
21168
|
+
ET: 0,
|
21169
|
+
FI: 1,
|
21170
|
+
FJ: 1,
|
21171
|
+
FO: 1,
|
21172
|
+
FR: 1,
|
21173
|
+
GB: 1,
|
21174
|
+
'GB-alt-variant': 0,
|
21175
|
+
GE: 1,
|
21176
|
+
GF: 1,
|
21177
|
+
GP: 1,
|
21178
|
+
GR: 1,
|
21179
|
+
GT: 0,
|
21180
|
+
GU: 0,
|
21181
|
+
HK: 0,
|
21182
|
+
HN: 0,
|
21183
|
+
HR: 1,
|
21184
|
+
HU: 1,
|
21185
|
+
ID: 0,
|
21186
|
+
IE: 1,
|
21187
|
+
IL: 0,
|
21188
|
+
IN: 0,
|
21189
|
+
IQ: 6,
|
21190
|
+
IR: 6,
|
21191
|
+
IS: 1,
|
21192
|
+
IT: 1,
|
21193
|
+
JM: 0,
|
21194
|
+
JO: 6,
|
21195
|
+
JP: 0,
|
21196
|
+
KE: 0,
|
21197
|
+
KG: 1,
|
21198
|
+
KH: 0,
|
21199
|
+
KR: 0,
|
21200
|
+
KW: 6,
|
21201
|
+
KZ: 1,
|
21202
|
+
LA: 0,
|
21203
|
+
LB: 1,
|
21204
|
+
LI: 1,
|
21205
|
+
LK: 1,
|
21206
|
+
LT: 1,
|
21207
|
+
LU: 1,
|
21208
|
+
LV: 1,
|
21209
|
+
LY: 6,
|
21210
|
+
MC: 1,
|
21211
|
+
MD: 1,
|
21212
|
+
ME: 1,
|
21213
|
+
MH: 0,
|
21214
|
+
MK: 1,
|
21215
|
+
MM: 0,
|
21216
|
+
MN: 1,
|
21217
|
+
MO: 0,
|
21218
|
+
MQ: 1,
|
21219
|
+
MT: 0,
|
21220
|
+
MV: 5,
|
21221
|
+
MX: 0,
|
21222
|
+
MY: 1,
|
21223
|
+
MZ: 0,
|
21224
|
+
NI: 0,
|
21225
|
+
NL: 1,
|
21226
|
+
NO: 1,
|
21227
|
+
NP: 0,
|
21228
|
+
NZ: 1,
|
21229
|
+
OM: 6,
|
21230
|
+
PA: 0,
|
21231
|
+
PE: 0,
|
21232
|
+
PH: 0,
|
21233
|
+
PK: 0,
|
21234
|
+
PL: 1,
|
21235
|
+
PR: 0,
|
21236
|
+
PT: 0,
|
21237
|
+
PY: 0,
|
21238
|
+
QA: 6,
|
21239
|
+
RE: 1,
|
21240
|
+
RO: 1,
|
21241
|
+
RS: 1,
|
21242
|
+
RU: 1,
|
21243
|
+
SA: 0,
|
21244
|
+
SD: 6,
|
21245
|
+
SE: 1,
|
21246
|
+
SG: 0,
|
21247
|
+
SI: 1,
|
21248
|
+
SK: 1,
|
21249
|
+
SM: 1,
|
21250
|
+
SV: 0,
|
21251
|
+
SY: 6,
|
21252
|
+
TH: 0,
|
21253
|
+
TJ: 1,
|
21254
|
+
TM: 1,
|
21255
|
+
TR: 1,
|
21256
|
+
TT: 0,
|
21257
|
+
TW: 0,
|
21258
|
+
UA: 1,
|
21259
|
+
UM: 0,
|
21260
|
+
US: 0,
|
21261
|
+
UY: 1,
|
21262
|
+
UZ: 1,
|
21263
|
+
VA: 1,
|
21264
|
+
VE: 0,
|
21265
|
+
VI: 0,
|
21266
|
+
VN: 1,
|
21267
|
+
WS: 0,
|
21268
|
+
XK: 1,
|
21269
|
+
YE: 0,
|
21270
|
+
ZA: 0,
|
21271
|
+
ZW: 0
|
21272
|
+
};
|
21273
|
+
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
21274
|
+
function getWeekdays(locale) {
|
21275
|
+
const daysFromSunday = firstDay[locale.slice(-2).toUpperCase()];
|
21276
|
+
return createRange(7).map(i => {
|
21277
|
+
const weekday = new Date(sundayJanuarySecond2000);
|
21278
|
+
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
21279
|
+
return new Intl.DateTimeFormat(locale, {
|
21280
|
+
weekday: 'long'
|
21281
|
+
}).format(weekday);
|
21156
21282
|
});
|
21157
|
-
if (immediate) handler?.([], observer);
|
21158
|
-
el._mutate = Object(el._mutate);
|
21159
|
-
el._mutate[binding.instance.$.uid] = {
|
21160
|
-
observer
|
21161
|
-
};
|
21162
|
-
observer.observe(el, options);
|
21163
21283
|
}
|
21164
|
-
function
|
21165
|
-
|
21166
|
-
|
21167
|
-
|
21284
|
+
function format(value, formatString, locale) {
|
21285
|
+
const date = new Date(value);
|
21286
|
+
let options = {};
|
21287
|
+
switch (formatString) {
|
21288
|
+
case 'fullDateWithWeekday':
|
21289
|
+
options = {
|
21290
|
+
weekday: 'long',
|
21291
|
+
day: 'numeric',
|
21292
|
+
month: 'long',
|
21293
|
+
year: 'numeric'
|
21294
|
+
};
|
21295
|
+
break;
|
21296
|
+
case 'normalDateWithWeekday':
|
21297
|
+
options = {
|
21298
|
+
weekday: 'short',
|
21299
|
+
day: 'numeric',
|
21300
|
+
month: 'short',
|
21301
|
+
year: 'numeric'
|
21302
|
+
};
|
21303
|
+
break;
|
21304
|
+
case 'keyboardDate':
|
21305
|
+
options = {};
|
21306
|
+
break;
|
21307
|
+
case 'monthAndDate':
|
21308
|
+
options = {
|
21309
|
+
month: 'long',
|
21310
|
+
day: 'numeric'
|
21311
|
+
};
|
21312
|
+
break;
|
21313
|
+
case 'monthAndYear':
|
21314
|
+
options = {
|
21315
|
+
month: 'long',
|
21316
|
+
year: 'numeric'
|
21317
|
+
};
|
21318
|
+
break;
|
21319
|
+
default:
|
21320
|
+
options = {
|
21321
|
+
timeZone: 'UTC',
|
21322
|
+
timeZoneName: 'short'
|
21323
|
+
};
|
21324
|
+
}
|
21325
|
+
return new Intl.DateTimeFormat(locale, options).format(date);
|
21326
|
+
}
|
21327
|
+
function addDays(date, amount) {
|
21328
|
+
const d = new Date(date);
|
21329
|
+
d.setDate(d.getDate() + amount);
|
21330
|
+
return d;
|
21331
|
+
}
|
21332
|
+
function addMonths(date, amount) {
|
21333
|
+
const d = new Date(date);
|
21334
|
+
d.setMonth(d.getMonth() + amount);
|
21335
|
+
return d;
|
21336
|
+
}
|
21337
|
+
function getYear(date) {
|
21338
|
+
return date.getFullYear();
|
21339
|
+
}
|
21340
|
+
function getMonth(date) {
|
21341
|
+
return date.getMonth();
|
21342
|
+
}
|
21343
|
+
function startOfYear(date) {
|
21344
|
+
return new Date(date.getFullYear(), 0, 1);
|
21345
|
+
}
|
21346
|
+
function endOfYear(date) {
|
21347
|
+
return new Date(date.getFullYear(), 11, 31);
|
21348
|
+
}
|
21349
|
+
function getMondayOfFirstWeekOfYear(year) {
|
21350
|
+
return new Date(year, 0, 1);
|
21168
21351
|
}
|
21169
|
-
const Mutate = {
|
21170
|
-
mounted: mounted$2,
|
21171
|
-
unmounted: unmounted$2
|
21172
|
-
};
|
21173
21352
|
|
21174
|
-
|
21175
|
-
|
21176
|
-
|
21177
|
-
|
21178
|
-
|
21179
|
-
|
21180
|
-
|
21181
|
-
|
21182
|
-
|
21183
|
-
|
21184
|
-
|
21185
|
-
|
21186
|
-
|
21353
|
+
// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
|
21354
|
+
function getWeek(date) {
|
21355
|
+
let year = date.getFullYear();
|
21356
|
+
let d1w1 = getMondayOfFirstWeekOfYear(year);
|
21357
|
+
if (date < d1w1) {
|
21358
|
+
year = year - 1;
|
21359
|
+
d1w1 = getMondayOfFirstWeekOfYear(year);
|
21360
|
+
} else {
|
21361
|
+
const tv = getMondayOfFirstWeekOfYear(year + 1);
|
21362
|
+
if (date >= tv) {
|
21363
|
+
year = year + 1;
|
21364
|
+
d1w1 = tv;
|
21365
|
+
}
|
21187
21366
|
}
|
21367
|
+
const diffTime = Math.abs(date.getTime() - d1w1.getTime());
|
21368
|
+
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
21369
|
+
return Math.floor(diffDays / 7) + 1;
|
21188
21370
|
}
|
21189
|
-
function
|
21190
|
-
|
21191
|
-
const {
|
21192
|
-
handler,
|
21193
|
-
options
|
21194
|
-
} = el._onResize[binding.instance.$.uid];
|
21195
|
-
window.removeEventListener('resize', handler, options);
|
21196
|
-
delete el._onResize[binding.instance.$.uid];
|
21371
|
+
function isWithinRange(date, range) {
|
21372
|
+
return isAfter(date, range[0]) && isBefore(date, range[1]);
|
21197
21373
|
}
|
21198
|
-
|
21199
|
-
|
21200
|
-
|
21201
|
-
};
|
21202
|
-
|
21203
|
-
function mounted(el, binding) {
|
21204
|
-
const {
|
21205
|
-
self = false
|
21206
|
-
} = binding.modifiers ?? {};
|
21207
|
-
const value = binding.value;
|
21208
|
-
const options = typeof value === 'object' && value.options || {
|
21209
|
-
passive: true
|
21210
|
-
};
|
21211
|
-
const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler;
|
21212
|
-
const target = self ? el : binding.arg ? document.querySelector(binding.arg) : window;
|
21213
|
-
if (!target) return;
|
21214
|
-
target.addEventListener('scroll', handler, options);
|
21215
|
-
el._onScroll = Object(el._onScroll);
|
21216
|
-
el._onScroll[binding.instance.$.uid] = {
|
21217
|
-
handler,
|
21218
|
-
options,
|
21219
|
-
// Don't reference self
|
21220
|
-
target: self ? undefined : target
|
21221
|
-
};
|
21374
|
+
function isValid(date) {
|
21375
|
+
const d = new Date(date);
|
21376
|
+
return d instanceof Date && !isNaN(d.getTime());
|
21222
21377
|
}
|
21223
|
-
function
|
21224
|
-
|
21225
|
-
const {
|
21226
|
-
handler,
|
21227
|
-
options,
|
21228
|
-
target = el
|
21229
|
-
} = el._onScroll[binding.instance.$.uid];
|
21230
|
-
target.removeEventListener('scroll', handler, options);
|
21231
|
-
delete el._onScroll[binding.instance.$.uid];
|
21378
|
+
function isAfter(date, comparing) {
|
21379
|
+
return date.getTime() > comparing.getTime();
|
21232
21380
|
}
|
21233
|
-
function
|
21234
|
-
|
21235
|
-
|
21236
|
-
|
21381
|
+
function isBefore(date, comparing) {
|
21382
|
+
return date.getTime() < comparing.getTime();
|
21383
|
+
}
|
21384
|
+
function isEqual(date, comparing) {
|
21385
|
+
return date.getTime() === comparing.getTime();
|
21386
|
+
}
|
21387
|
+
function isSameDay(date, comparing) {
|
21388
|
+
return date.getDate() === comparing.getDate() && date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
21389
|
+
}
|
21390
|
+
function isSameMonth(date, comparing) {
|
21391
|
+
return date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
21392
|
+
}
|
21393
|
+
function getDiff(date, comparing, unit) {
|
21394
|
+
const d = new Date(date);
|
21395
|
+
const c = new Date(comparing);
|
21396
|
+
if (unit === 'month') {
|
21397
|
+
return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12;
|
21398
|
+
}
|
21399
|
+
return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24));
|
21400
|
+
}
|
21401
|
+
function setYear(date, year) {
|
21402
|
+
const d = new Date(date);
|
21403
|
+
d.setFullYear(year);
|
21404
|
+
return d;
|
21405
|
+
}
|
21406
|
+
class VuetifyDateAdapter {
|
21407
|
+
constructor() {
|
21408
|
+
let locale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'en';
|
21409
|
+
this.locale = locale;
|
21410
|
+
}
|
21411
|
+
date(value) {
|
21412
|
+
return date(value);
|
21413
|
+
}
|
21414
|
+
addDays(date, amount) {
|
21415
|
+
return addDays(date, amount);
|
21416
|
+
}
|
21417
|
+
addMonths(date, amount) {
|
21418
|
+
return addMonths(date, amount);
|
21419
|
+
}
|
21420
|
+
getWeekArray(date) {
|
21421
|
+
return getWeekArray(date);
|
21422
|
+
}
|
21423
|
+
startOfMonth(date) {
|
21424
|
+
return startOfMonth(date);
|
21425
|
+
}
|
21426
|
+
endOfMonth(date) {
|
21427
|
+
return endOfMonth(date);
|
21428
|
+
}
|
21429
|
+
format(date, formatString) {
|
21430
|
+
return format(date, formatString, this.locale);
|
21431
|
+
}
|
21432
|
+
isEqual(date, comparing) {
|
21433
|
+
return isEqual(date, comparing);
|
21434
|
+
}
|
21435
|
+
isValid(date) {
|
21436
|
+
return isValid(date);
|
21437
|
+
}
|
21438
|
+
isWithinRange(date, range) {
|
21439
|
+
return isWithinRange(date, range);
|
21440
|
+
}
|
21441
|
+
isAfter(date, comparing) {
|
21442
|
+
return isAfter(date, comparing);
|
21443
|
+
}
|
21444
|
+
isSameDay(date, comparing) {
|
21445
|
+
return isSameDay(date, comparing);
|
21446
|
+
}
|
21447
|
+
isSameMonth(date, comparing) {
|
21448
|
+
return isSameMonth(date, comparing);
|
21449
|
+
}
|
21450
|
+
setYear(date, year) {
|
21451
|
+
return setYear(date, year);
|
21452
|
+
}
|
21453
|
+
getDiff(date, comparing, unit) {
|
21454
|
+
return getDiff(date, comparing, unit);
|
21455
|
+
}
|
21456
|
+
getWeek(date) {
|
21457
|
+
return getWeek(date);
|
21458
|
+
}
|
21459
|
+
getWeekdays() {
|
21460
|
+
return getWeekdays(this.locale);
|
21461
|
+
}
|
21462
|
+
getYear(date) {
|
21463
|
+
return getYear(date);
|
21464
|
+
}
|
21465
|
+
getMonth(date) {
|
21466
|
+
return getMonth(date);
|
21467
|
+
}
|
21468
|
+
startOfYear(date) {
|
21469
|
+
return startOfYear(date);
|
21470
|
+
}
|
21471
|
+
endOfYear(date) {
|
21472
|
+
return endOfYear(date);
|
21473
|
+
}
|
21237
21474
|
}
|
21238
|
-
const Scroll = {
|
21239
|
-
mounted,
|
21240
|
-
unmounted,
|
21241
|
-
updated
|
21242
|
-
};
|
21243
21475
|
|
21244
|
-
|
21245
|
-
|
21246
|
-
|
21247
|
-
|
21248
|
-
|
21249
|
-
|
21250
|
-
|
21251
|
-
|
21252
|
-
|
21253
|
-
}
|
21476
|
+
// Composables
|
21477
|
+
|
21478
|
+
// Types
|
21479
|
+
|
21480
|
+
const DateAdapterSymbol = Symbol.for('vuetify:date-adapter');
|
21481
|
+
function createDate(options) {
|
21482
|
+
return options ?? {
|
21483
|
+
adapter: VuetifyDateAdapter
|
21484
|
+
};
|
21485
|
+
}
|
21254
21486
|
|
21255
21487
|
// Composables
|
21256
21488
|
function createVuetify$1() {
|
@@ -21337,7 +21569,7 @@
|
|
21337
21569
|
date
|
21338
21570
|
};
|
21339
21571
|
}
|
21340
|
-
const version$1 = "4.0.0-dev-
|
21572
|
+
const version$1 = "4.0.0-dev-20230511.0";
|
21341
21573
|
createVuetify$1.version = version$1;
|
21342
21574
|
|
21343
21575
|
// Vue's inject() can only be used in setup
|
@@ -21349,7 +21581,7 @@
|
|
21349
21581
|
}
|
21350
21582
|
}
|
21351
21583
|
|
21352
|
-
const version = "4.0.0-dev-
|
21584
|
+
const version = "4.0.0-dev-20230511.0";
|
21353
21585
|
|
21354
21586
|
const createVuetify = function () {
|
21355
21587
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
@@ -21363,7 +21595,7 @@
|
|
21363
21595
|
exports.components = components;
|
21364
21596
|
exports.createVuetify = createVuetify;
|
21365
21597
|
exports.directives = directives;
|
21366
|
-
exports.
|
21598
|
+
exports.useDefaults = useDefaults;
|
21367
21599
|
exports.useDisplay = useDisplay;
|
21368
21600
|
exports.useLayout = useLayout;
|
21369
21601
|
exports.useLocale = useLocale;
|