@vuetify/nightly 4.0.0-dev-20230422.0 → 4.0.0-dev-20230427.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 +11 -2
- package/dist/_component-variables-labs.sass +1 -0
- package/dist/json/attributes.json +274 -198
- package/dist/json/importMap-labs.json +4 -0
- package/dist/json/importMap.json +60 -60
- package/dist/json/tags.json +25 -1
- package/dist/json/web-types.json +624 -344
- package/dist/vuetify-labs.css +110 -86
- package/dist/vuetify-labs.d.ts +5976 -8072
- package/dist/vuetify-labs.esm.js +1499 -1093
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +1498 -1092
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +21 -22
- package/dist/vuetify.d.ts +5999 -7524
- package/dist/vuetify.esm.js +1255 -1066
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +1254 -1065
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +744 -739
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.ts +1 -1
- package/lib/blueprints/md1.d.ts +1 -1
- package/lib/blueprints/md2.d.ts +1 -1
- package/lib/blueprints/md3.d.ts +1 -1
- package/lib/components/VAlert/VAlert.mjs +6 -4
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/index.d.ts +57 -55
- package/lib/components/VApp/VApp.mjs +4 -2
- package/lib/components/VApp/VApp.mjs.map +1 -1
- package/lib/components/VApp/index.d.ts +22 -13
- package/lib/components/VAppBar/VAppBar.mjs +3 -3
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarNavIcon.mjs +7 -4
- package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.ts +87 -92
- package/lib/components/VAutocomplete/VAutocomplete.mjs +2 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.ts +225 -403
- package/lib/components/VAvatar/VAvatar.mjs +4 -2
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/index.d.ts +23 -14
- package/lib/components/VBadge/VBadge.mjs +6 -5
- package/lib/components/VBadge/VBadge.mjs.map +1 -1
- package/lib/components/VBadge/index.d.ts +27 -22
- package/lib/components/VBanner/VBanner.mjs +6 -4
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/VBannerActions.mjs +5 -2
- package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
- package/lib/components/VBanner/index.d.ts +92 -66
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +4 -2
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBottomNavigation/index.d.ts +22 -13
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +35 -18
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +6 -3
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +4 -2
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.ts +134 -93
- package/lib/components/VBtn/VBtn.mjs +5 -3
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/index.d.ts +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 +22 -13
- package/lib/components/VBtnToggle/VBtnToggle.mjs +4 -2
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VBtnToggle/index.d.ts +30 -21
- package/lib/components/VCard/VCard.mjs +5 -3
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCardActions.mjs +7 -4
- package/lib/components/VCard/VCardActions.mjs.map +1 -1
- package/lib/components/VCard/VCardItem.mjs +5 -2
- package/lib/components/VCard/VCardItem.mjs.map +1 -1
- package/lib/components/VCard/index.d.ts +250 -141
- package/lib/components/VCarousel/VCarousel.mjs +3 -3
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/VCarouselItem.mjs +6 -3
- package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
- package/lib/components/VCarousel/index.d.ts +78 -141
- package/lib/components/VCheckbox/VCheckbox.mjs +3 -2
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +2 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.ts +69 -103
- package/lib/components/VChip/VChip.mjs +7 -8
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/index.d.ts +27 -30
- package/lib/components/VChipGroup/VChipGroup.mjs +4 -1
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VChipGroup/index.d.ts +22 -13
- package/lib/components/VCode/index.d.ts +30 -17
- package/lib/components/VColorPicker/VColorPicker.mjs +3 -3
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +5 -2
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs +6 -3
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +6 -3
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs +7 -5
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VColorPicker/index.d.ts +34 -1
- package/lib/components/VCombobox/VCombobox.mjs +2 -1
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +225 -403
- package/lib/components/VCounter/VCounter.mjs +4 -1
- package/lib/components/VCounter/VCounter.mjs.map +1 -1
- package/lib/components/VCounter/index.d.ts +22 -145
- package/lib/components/VDefaultsProvider/index.d.ts +0 -12
- package/lib/components/VDialog/VDialog.mjs +4 -3
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/index.d.ts +104 -282
- package/lib/components/VDivider/VDivider.mjs +4 -2
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VDivider/index.d.ts +22 -13
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +4 -2
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +4 -1
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +4 -2
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs +4 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.ts +109 -81
- package/lib/components/VField/VField.css +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 +119 -70
- package/lib/components/VFileInput/VFileInput.mjs +2 -1
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.ts +99 -150
- package/lib/components/VFooter/VFooter.mjs +4 -2
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VFooter/index.d.ts +22 -13
- package/lib/components/VForm/VForm.mjs +5 -2
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VForm/index.d.ts +30 -17
- package/lib/components/VGrid/VCol.mjs +4 -1
- package/lib/components/VGrid/VCol.mjs.map +1 -1
- package/lib/components/VGrid/VContainer.mjs +4 -1
- package/lib/components/VGrid/VContainer.mjs.map +1 -1
- package/lib/components/VGrid/VRow.mjs +4 -1
- package/lib/components/VGrid/VRow.mjs.map +1 -1
- package/lib/components/VGrid/index.d.ts +104 -60
- package/lib/components/VHover/index.d.ts +20 -44
- package/lib/components/VIcon/VIcon.mjs +4 -2
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/index.d.ts +23 -26
- package/lib/components/VImg/VImg.mjs +5 -3
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/index.d.ts +26 -29
- package/lib/components/VInput/VInput.mjs +4 -1
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/index.d.ts +31 -34
- package/lib/components/VItemGroup/VItemGroup.mjs +4 -1
- package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
- package/lib/components/VItemGroup/index.d.ts +30 -33
- package/lib/components/VKbd/index.d.ts +30 -17
- package/lib/components/VLabel/VLabel.mjs +4 -1
- package/lib/components/VLabel/VLabel.mjs.map +1 -1
- package/lib/components/VLabel/index.d.ts +22 -13
- package/lib/components/VLayout/VLayout.mjs +8 -4
- package/lib/components/VLayout/VLayout.mjs.map +1 -1
- package/lib/components/VLayout/VLayoutItem.mjs +4 -2
- package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
- package/lib/components/VLayout/index.d.ts +44 -26
- package/lib/components/VLazy/VLazy.mjs +4 -2
- package/lib/components/VLazy/VLazy.mjs.map +1 -1
- package/lib/components/VLazy/index.d.ts +22 -13
- package/lib/components/VList/VList.mjs +7 -24
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +5 -2
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +4 -2
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItemAction.mjs +4 -1
- package/lib/components/VList/VListItemAction.mjs.map +1 -1
- package/lib/components/VList/VListItemMedia.mjs +4 -1
- package/lib/components/VList/VListItemMedia.mjs.map +1 -1
- package/lib/components/VList/VListSubheader.mjs +5 -3
- package/lib/components/VList/VListSubheader.mjs.map +1 -1
- package/lib/components/VList/index.d.ts +932 -826
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs +5 -2
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
- package/lib/components/VLocaleProvider/index.d.ts +30 -17
- package/lib/components/VMain/VMain.mjs +4 -2
- package/lib/components/VMain/VMain.mjs.map +1 -1
- package/lib/components/VMain/index.d.ts +30 -17
- package/lib/components/VMenu/VMenu.mjs +2 -1
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.ts +104 -282
- package/lib/components/VMessages/VMessages.mjs +4 -2
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VMessages/index.d.ts +22 -145
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +4 -2
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/index.d.ts +26 -29
- package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
- package/lib/components/VNoSsr/index.d.ts +3 -13
- package/lib/components/VOverlay/VOverlay.mjs +5 -3
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.ts +38 -45
- package/lib/components/VPagination/VPagination.mjs +4 -1
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/index.d.ts +23 -30
- package/lib/components/VParallax/VParallax.mjs +5 -2
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VParallax/index.d.ts +34 -33
- package/lib/components/VProgressCircular/VProgressCircular.mjs +4 -2
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressCircular/index.d.ts +22 -13
- package/lib/components/VProgressLinear/VProgressLinear.mjs +6 -4
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/index.d.ts +42 -45
- package/lib/components/VRadio/VRadio.mjs +2 -1
- package/lib/components/VRadio/VRadio.mjs.map +1 -1
- package/lib/components/VRadio/index.d.ts +27 -38
- package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.d.ts +39 -62
- package/lib/components/VRangeSlider/VRangeSlider.mjs +2 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.ts +27 -38
- package/lib/components/VRating/VRating.mjs +4 -1
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/index.d.ts +23 -18
- package/lib/components/VResponsive/VResponsive.mjs +4 -2
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VResponsive/index.d.ts +43 -31
- package/lib/components/VSelect/VSelect.mjs +2 -1
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +194 -552
- package/lib/components/VSelectionControl/VSelectionControl.mjs +6 -2
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.ts +76 -46
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +4 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/index.d.ts +23 -14
- package/lib/components/VSheet/VSheet.mjs +4 -2
- package/lib/components/VSheet/VSheet.mjs.map +1 -1
- package/lib/components/VSheet/index.d.ts +22 -13
- package/lib/components/VSlideGroup/VSlideGroup.mjs +6 -3
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.ts +59 -90
- package/lib/components/VSlider/VSlider.mjs +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 +27 -38
- package/lib/components/VSnackbar/VSnackbar.mjs +2 -1
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/index.d.ts +92 -142
- package/lib/components/VSwitch/VSwitch.mjs +2 -1
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/index.d.ts +39 -66
- package/lib/components/VSystemBar/VSystemBar.mjs +4 -2
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VSystemBar/index.d.ts +22 -13
- package/lib/components/VTable/VTable.mjs +4 -1
- package/lib/components/VTable/VTable.mjs.map +1 -1
- package/lib/components/VTable/index.d.ts +26 -29
- package/lib/components/VTabs/VTab.mjs +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 +45 -27
- package/lib/components/VTextField/VTextField.mjs +2 -1
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/index.d.ts +208 -269
- package/lib/components/VTextarea/VTextarea.mjs +2 -1
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/index.d.ts +79 -122
- package/lib/components/VThemeProvider/VThemeProvider.mjs +6 -3
- package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
- package/lib/components/VThemeProvider/index.d.ts +22 -13
- package/lib/components/VTimeline/VTimeline.mjs +5 -3
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineDivider.mjs +4 -1
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs +8 -6
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VTimeline/index.d.ts +67 -57
- package/lib/components/VToolbar/VToolbar.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 +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 +104 -150
- package/lib/components/VValidation/index.d.ts +0 -12
- 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 +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 +61 -79
- package/lib/components/index.d.ts +5229 -6754
- package/lib/components/transitions/index.d.ts +0 -192
- package/lib/composables/component.mjs +11 -0
- package/lib/composables/component.mjs.map +1 -0
- package/lib/composables/defaults.mjs +51 -5
- package/lib/composables/defaults.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/intersectionObserver.mjs +2 -2
- package/lib/composables/intersectionObserver.mjs.map +1 -1
- package/lib/composables/loader.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 +1 -1
- package/lib/iconsets/fa.d.ts +1 -1
- package/lib/iconsets/fa4.d.ts +1 -1
- package/lib/iconsets/md.d.ts +1 -1
- package/lib/iconsets/mdi-svg.d.ts +1 -1
- package/lib/iconsets/mdi.d.ts +1 -1
- package/lib/index.d.ts +24 -24
- package/lib/labs/VDataTable/VDataTable.mjs +1 -1
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableHeaders.mjs +34 -20
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRow.mjs +2 -4
- package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +2 -2
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.ts +61 -933
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.css +26 -0
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +215 -0
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -0
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.sass +25 -0
- package/lib/labs/VInfiniteScroll/_variables.scss +3 -0
- package/lib/labs/VInfiniteScroll/index.d.ts +321 -0
- package/lib/labs/VInfiniteScroll/index.mjs +2 -0
- package/lib/labs/VInfiniteScroll/index.mjs.map +1 -0
- package/lib/labs/VSkeletonLoader/index.d.ts +0 -12
- package/lib/labs/components.d.ts +398 -969
- package/lib/labs/components.mjs +1 -0
- package/lib/labs/components.mjs.map +1 -1
- package/lib/labs/date/DateAdapter.mjs +2 -0
- package/lib/labs/date/DateAdapter.mjs.map +1 -0
- package/lib/labs/date/adapters/vuetify.d.ts +52 -0
- package/lib/{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.ts +40 -0
- package/lib/labs/date/index.mjs +2 -0
- package/lib/labs/date/index.mjs.map +1 -0
- package/lib/labs/index.mjs +3 -2
- package/lib/labs/index.mjs.map +1 -1
- package/lib/locale/af.mjs +5 -1
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs +5 -1
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs +5 -1
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs +5 -1
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +5 -1
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs +5 -1
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +5 -1
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs +5 -1
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs +5 -1
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs +5 -1
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs +5 -1
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +5 -1
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs +5 -1
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs +5 -1
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs +5 -1
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +5 -1
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs +5 -1
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs +5 -1
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs +5 -1
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs +5 -1
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.ts +168 -0
- package/lib/locale/it.mjs +5 -1
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs +5 -1
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/ko.mjs +5 -1
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +5 -1
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +5 -1
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +5 -1
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +5 -1
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +5 -1
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +5 -1
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +5 -1
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +5 -1
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +5 -1
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +5 -1
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +5 -1
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +5 -1
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +5 -1
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +5 -1
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +5 -1
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +5 -1
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +5 -1
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +5 -1
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +5 -1
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/lib/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 +28 -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 +2 -1
- 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/composables/date.mjs.map +0 -1
package/dist/vuetify-labs.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v4.0.0-dev-
|
2
|
+
* Vuetify v4.0.0-dev-20230427.0
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -171,11 +171,11 @@
|
|
171
171
|
function keys(o) {
|
172
172
|
return Object.keys(o);
|
173
173
|
}
|
174
|
-
function pick(obj, paths) {
|
174
|
+
function pick(obj, paths, exclude) {
|
175
175
|
const found = Object.create(null);
|
176
176
|
const rest = Object.create(null);
|
177
177
|
for (const key in obj) {
|
178
|
-
if (paths.some(path => path instanceof RegExp ? path.test(key) : path === key)) {
|
178
|
+
if (paths.some(path => path instanceof RegExp ? path.test(key) : path === key) && !exclude?.some(path => path === key)) {
|
179
179
|
found[key] = obj[key];
|
180
180
|
} else {
|
181
181
|
rest[key] = obj[key];
|
@@ -360,6 +360,32 @@
|
|
360
360
|
handler(...args);
|
361
361
|
}
|
362
362
|
}
|
363
|
+
function focusableChildren(el) {
|
364
|
+
const targets = ['button', '[href]', 'input:not([type="hidden"])', 'select', 'textarea', '[tabindex]'].map(s => `${s}:not([tabindex="-1"]):not([disabled])`).join(', ');
|
365
|
+
return [...el.querySelectorAll(targets)];
|
366
|
+
}
|
367
|
+
function focusChild(el, location) {
|
368
|
+
const focusable = focusableChildren(el);
|
369
|
+
const idx = focusable.indexOf(document.activeElement);
|
370
|
+
if (!location) {
|
371
|
+
if (!el.contains(document.activeElement)) {
|
372
|
+
focusable[0]?.focus();
|
373
|
+
}
|
374
|
+
} else if (location === 'first') {
|
375
|
+
focusable[0]?.focus();
|
376
|
+
} else if (location === 'last') {
|
377
|
+
focusable.at(-1)?.focus();
|
378
|
+
} else {
|
379
|
+
let _el;
|
380
|
+
let idxx = idx;
|
381
|
+
const inc = location === 'next' ? 1 : -1;
|
382
|
+
do {
|
383
|
+
idxx += inc;
|
384
|
+
_el = focusable[idxx];
|
385
|
+
} while ((!_el || _el.offsetParent == null) && idxx < focusable.length && idxx >= 0);
|
386
|
+
if (_el) _el.focus();else focusChild(el, location === 'next' ? 'first' : 'last');
|
387
|
+
}
|
388
|
+
}
|
363
389
|
|
364
390
|
const block = ['top', 'bottom'];
|
365
391
|
const inline = ['start', 'end', 'left', 'right'];
|
@@ -860,44 +886,6 @@
|
|
860
886
|
return (light + 0.05) / (dark + 0.05);
|
861
887
|
}
|
862
888
|
|
863
|
-
// Utilities
|
864
|
-
function getCurrentInstance(name, message) {
|
865
|
-
const vm = vue.getCurrentInstance();
|
866
|
-
if (!vm) {
|
867
|
-
throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);
|
868
|
-
}
|
869
|
-
return vm;
|
870
|
-
}
|
871
|
-
function getCurrentInstanceName() {
|
872
|
-
let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';
|
873
|
-
const vm = getCurrentInstance(name).type;
|
874
|
-
return toKebabCase(vm?.aliasName || vm?.name);
|
875
|
-
}
|
876
|
-
let _uid = 0;
|
877
|
-
let _map = new WeakMap();
|
878
|
-
function getUid() {
|
879
|
-
const vm = getCurrentInstance('getUid');
|
880
|
-
if (_map.has(vm)) return _map.get(vm);else {
|
881
|
-
const uid = _uid++;
|
882
|
-
_map.set(vm, uid);
|
883
|
-
return uid;
|
884
|
-
}
|
885
|
-
}
|
886
|
-
getUid.reset = () => {
|
887
|
-
_uid = 0;
|
888
|
-
_map = new WeakMap();
|
889
|
-
};
|
890
|
-
|
891
|
-
function injectSelf(key) {
|
892
|
-
const {
|
893
|
-
provides
|
894
|
-
} = getCurrentInstance('injectSelf');
|
895
|
-
if (provides && key in provides) {
|
896
|
-
// TS doesn't allow symbol as index type
|
897
|
-
return provides[key];
|
898
|
-
}
|
899
|
-
}
|
900
|
-
|
901
889
|
/**
|
902
890
|
* Creates a factory function for props definitions.
|
903
891
|
* This is used to define props in a composable then override
|
@@ -951,17 +939,54 @@
|
|
951
939
|
|
952
940
|
// Types
|
953
941
|
|
942
|
+
// Composables
|
943
|
+
const makeComponentProps = propsFactory({
|
944
|
+
class: [String, Array],
|
945
|
+
style: {
|
946
|
+
type: [String, Array, Object],
|
947
|
+
default: null
|
948
|
+
}
|
949
|
+
}, 'component');
|
950
|
+
|
951
|
+
function useToggleScope(source, fn) {
|
952
|
+
let scope;
|
953
|
+
function start() {
|
954
|
+
scope = vue.effectScope();
|
955
|
+
scope.run(() => fn.length ? fn(() => {
|
956
|
+
scope?.stop();
|
957
|
+
start();
|
958
|
+
}) : fn());
|
959
|
+
}
|
960
|
+
vue.watch(source, active => {
|
961
|
+
if (active && !scope) {
|
962
|
+
start();
|
963
|
+
} else if (!active) {
|
964
|
+
scope?.stop();
|
965
|
+
scope = undefined;
|
966
|
+
}
|
967
|
+
}, {
|
968
|
+
immediate: true
|
969
|
+
});
|
970
|
+
vue.onScopeDispose(() => {
|
971
|
+
scope?.stop();
|
972
|
+
});
|
973
|
+
}
|
974
|
+
|
975
|
+
// Composables
|
976
|
+
|
977
|
+
// Types
|
978
|
+
|
954
979
|
const DefaultsSymbol = Symbol.for('vuetify:defaults');
|
955
980
|
function createDefaults(options) {
|
956
981
|
return vue.ref(options);
|
957
982
|
}
|
958
|
-
function
|
983
|
+
function injectDefaults() {
|
959
984
|
const defaults = vue.inject(DefaultsSymbol);
|
960
985
|
if (!defaults) throw new Error('[Vuetify] Could not find defaults instance');
|
961
986
|
return defaults;
|
962
987
|
}
|
963
988
|
function provideDefaults(defaults, options) {
|
964
|
-
const injectedDefaults =
|
989
|
+
const injectedDefaults = injectDefaults();
|
965
990
|
const providedDefaults = vue.ref(defaults);
|
966
991
|
const newDefaults = vue.computed(() => {
|
967
992
|
const disabled = vue.unref(options?.disabled);
|
@@ -988,41 +1013,56 @@
|
|
988
1013
|
vue.provide(DefaultsSymbol, newDefaults);
|
989
1014
|
return newDefaults;
|
990
1015
|
}
|
991
|
-
|
992
|
-
|
993
|
-
|
994
|
-
|
995
|
-
|
996
|
-
|
997
|
-
|
998
|
-
|
999
|
-
|
1000
|
-
}
|
1001
|
-
vue.
|
1002
|
-
|
1003
|
-
|
1004
|
-
|
1005
|
-
|
1006
|
-
|
1016
|
+
function propIsDefined(vnode, prop) {
|
1017
|
+
return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';
|
1018
|
+
}
|
1019
|
+
function useDefaults(props, name) {
|
1020
|
+
let defaults = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : injectDefaults();
|
1021
|
+
const vm = getCurrentInstance('useDefaults');
|
1022
|
+
name = name ?? vm.type.name ?? vm.type.__name;
|
1023
|
+
if (!name) {
|
1024
|
+
throw new Error('[Vuetify] Could not determine component name');
|
1025
|
+
}
|
1026
|
+
const componentDefaults = vue.computed(() => defaults.value[props._as ?? name]);
|
1027
|
+
const _props = new Proxy(props, {
|
1028
|
+
get(target, prop) {
|
1029
|
+
const propValue = Reflect.get(target, prop);
|
1030
|
+
if (prop === 'class' || prop === 'style') {
|
1031
|
+
return [componentDefaults.value?.[prop], propValue].filter(v => v != null);
|
1032
|
+
} else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
|
1033
|
+
return componentDefaults.value?.[prop] ?? defaults.value.global?.[prop] ?? propValue;
|
1034
|
+
}
|
1035
|
+
return propValue;
|
1007
1036
|
}
|
1008
|
-
}, {
|
1009
|
-
immediate: true
|
1010
1037
|
});
|
1011
|
-
vue.
|
1012
|
-
|
1038
|
+
const _subcomponentDefaults = vue.shallowRef();
|
1039
|
+
vue.watchEffect(() => {
|
1040
|
+
if (componentDefaults.value) {
|
1041
|
+
const subComponents = Object.entries(componentDefaults.value).filter(_ref => {
|
1042
|
+
let [key] = _ref;
|
1043
|
+
return key.startsWith(key[0].toUpperCase());
|
1044
|
+
});
|
1045
|
+
if (subComponents.length) _subcomponentDefaults.value = Object.fromEntries(subComponents);
|
1046
|
+
}
|
1013
1047
|
});
|
1048
|
+
function provideSubDefaults() {
|
1049
|
+
// If subcomponent defaults are provided, override any
|
1050
|
+
// subcomponents provided by the component's setup function.
|
1051
|
+
// This uses injectSelf so must be done after the original setup to work.
|
1052
|
+
useToggleScope(_subcomponentDefaults, () => {
|
1053
|
+
provideDefaults(mergeDeep(injectSelf(DefaultsSymbol)?.value ?? {}, _subcomponentDefaults.value));
|
1054
|
+
});
|
1055
|
+
}
|
1056
|
+
return {
|
1057
|
+
props: _props,
|
1058
|
+
provideSubDefaults
|
1059
|
+
};
|
1014
1060
|
}
|
1015
1061
|
|
1016
1062
|
// Utils
|
1017
1063
|
|
1018
1064
|
// Types
|
1019
1065
|
|
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
1066
|
// Implementation
|
1027
1067
|
function defineComponent(options) {
|
1028
1068
|
options._setup = options._setup ?? options.setup;
|
@@ -1034,43 +1074,20 @@
|
|
1034
1074
|
options.props = propsFactory(options.props ?? {}, toKebabCase(options.name))();
|
1035
1075
|
const propKeys = Object.keys(options.props);
|
1036
1076
|
options.filterProps = function filterProps(props) {
|
1037
|
-
return pick(props, propKeys);
|
1077
|
+
return pick(props, propKeys, ['class', 'style']);
|
1038
1078
|
};
|
1039
1079
|
options.props._as = String;
|
1040
1080
|
options.setup = function setup(props, ctx) {
|
1041
|
-
const defaults =
|
1081
|
+
const defaults = injectDefaults();
|
1042
1082
|
|
1043
1083
|
// Skip props proxy if defaults are not provided
|
1044
1084
|
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
|
-
});
|
1085
|
+
const {
|
1086
|
+
props: _props,
|
1087
|
+
provideSubDefaults
|
1088
|
+
} = useDefaults(props, props._as ?? options.name, defaults);
|
1066
1089
|
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
|
-
});
|
1090
|
+
provideSubDefaults();
|
1074
1091
|
return setupBindings;
|
1075
1092
|
};
|
1076
1093
|
}
|
@@ -1095,15 +1112,19 @@
|
|
1095
1112
|
tag: {
|
1096
1113
|
type: String,
|
1097
1114
|
default: tag
|
1098
|
-
}
|
1115
|
+
},
|
1116
|
+
...makeComponentProps()
|
1099
1117
|
},
|
1100
1118
|
setup(props, _ref) {
|
1101
1119
|
let {
|
1102
1120
|
slots
|
1103
1121
|
} = _ref;
|
1104
|
-
return () =>
|
1105
|
-
|
1106
|
-
|
1122
|
+
return () => {
|
1123
|
+
return vue.h(props.tag, {
|
1124
|
+
class: [klass, props.class],
|
1125
|
+
style: props.style
|
1126
|
+
}, slots.default?.());
|
1127
|
+
};
|
1107
1128
|
}
|
1108
1129
|
});
|
1109
1130
|
}
|
@@ -1136,6 +1157,34 @@
|
|
1136
1157
|
const deceleratedEasing = 'cubic-bezier(0.0, 0, 0.2, 1)'; // Entering
|
1137
1158
|
const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)'; // Leaving
|
1138
1159
|
|
1160
|
+
// Utilities
|
1161
|
+
function getCurrentInstance(name, message) {
|
1162
|
+
const vm = vue.getCurrentInstance();
|
1163
|
+
if (!vm) {
|
1164
|
+
throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);
|
1165
|
+
}
|
1166
|
+
return vm;
|
1167
|
+
}
|
1168
|
+
function getCurrentInstanceName() {
|
1169
|
+
let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';
|
1170
|
+
const vm = getCurrentInstance(name).type;
|
1171
|
+
return toKebabCase(vm?.aliasName || vm?.name);
|
1172
|
+
}
|
1173
|
+
let _uid = 0;
|
1174
|
+
let _map = new WeakMap();
|
1175
|
+
function getUid() {
|
1176
|
+
const vm = getCurrentInstance('getUid');
|
1177
|
+
if (_map.has(vm)) return _map.get(vm);else {
|
1178
|
+
const uid = _uid++;
|
1179
|
+
_map.set(vm, uid);
|
1180
|
+
return uid;
|
1181
|
+
}
|
1182
|
+
}
|
1183
|
+
getUid.reset = () => {
|
1184
|
+
_uid = 0;
|
1185
|
+
_map = new WeakMap();
|
1186
|
+
};
|
1187
|
+
|
1139
1188
|
function getScrollParent(el) {
|
1140
1189
|
while (el) {
|
1141
1190
|
if (hasScrollbar(el)) return el;
|
@@ -1159,6 +1208,16 @@
|
|
1159
1208
|
return style.overflowY === 'scroll' || style.overflowY === 'auto' && el.scrollHeight > el.clientHeight;
|
1160
1209
|
}
|
1161
1210
|
|
1211
|
+
function injectSelf(key) {
|
1212
|
+
const {
|
1213
|
+
provides
|
1214
|
+
} = getCurrentInstance('injectSelf');
|
1215
|
+
if (provides && key in provides) {
|
1216
|
+
// TS doesn't allow symbol as index type
|
1217
|
+
return provides[key];
|
1218
|
+
}
|
1219
|
+
}
|
1220
|
+
|
1162
1221
|
function isFixedPosition(el) {
|
1163
1222
|
while (el) {
|
1164
1223
|
if (window.getComputedStyle(el).position === 'fixed') {
|
@@ -1939,7 +1998,11 @@
|
|
1939
1998
|
item: 'Rating {0} of {1}'
|
1940
1999
|
}
|
1941
2000
|
},
|
1942
|
-
loading: 'Loading...'
|
2001
|
+
loading: 'Loading...',
|
2002
|
+
infiniteScroll: {
|
2003
|
+
loadMore: 'Load more',
|
2004
|
+
empty: 'No more'
|
2005
|
+
}
|
1943
2006
|
};
|
1944
2007
|
|
1945
2008
|
const LANG_PREFIX = '$vuetify.';
|
@@ -2137,6 +2200,7 @@
|
|
2137
2200
|
const VApp = genericComponent()({
|
2138
2201
|
name: 'VApp',
|
2139
2202
|
props: {
|
2203
|
+
...makeComponentProps(),
|
2140
2204
|
...makeLayoutProps({
|
2141
2205
|
fullHeight: true
|
2142
2206
|
}),
|
@@ -2159,8 +2223,8 @@
|
|
2159
2223
|
} = useRtl();
|
2160
2224
|
useRender(() => vue.createVNode("div", {
|
2161
2225
|
"ref": layoutRef,
|
2162
|
-
"class": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value],
|
2163
|
-
"style": layoutStyles.value
|
2226
|
+
"class": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value, props.class],
|
2227
|
+
"style": [layoutStyles.value, props.style]
|
2164
2228
|
}, [vue.createVNode("div", {
|
2165
2229
|
"class": "v-application__wrap"
|
2166
2230
|
}, [slots.default?.()])]));
|
@@ -2585,6 +2649,7 @@
|
|
2585
2649
|
props: {
|
2586
2650
|
aspectRatio: [String, Number],
|
2587
2651
|
contentClass: String,
|
2652
|
+
...makeComponentProps(),
|
2588
2653
|
...makeDimensionProps()
|
2589
2654
|
},
|
2590
2655
|
setup(props, _ref) {
|
@@ -2598,8 +2663,8 @@
|
|
2598
2663
|
dimensionStyles
|
2599
2664
|
} = useDimension(props);
|
2600
2665
|
useRender(() => vue.createVNode("div", {
|
2601
|
-
"class":
|
2602
|
-
"style": dimensionStyles.value
|
2666
|
+
"class": ['v-responsive', props.class],
|
2667
|
+
"style": [dimensionStyles.value, props.style]
|
2603
2668
|
}, [vue.createVNode("div", {
|
2604
2669
|
"class": "v-responsive__sizer",
|
2605
2670
|
"style": aspectStyles.value
|
@@ -2717,6 +2782,7 @@
|
|
2717
2782
|
},
|
2718
2783
|
srcset: String,
|
2719
2784
|
width: [String, Number],
|
2785
|
+
...makeComponentProps(),
|
2720
2786
|
...makeTransitionProps()
|
2721
2787
|
},
|
2722
2788
|
emits: {
|
@@ -2904,10 +2970,10 @@
|
|
2904
2970
|
useRender(() => vue.withDirectives(vue.createVNode(VResponsive, {
|
2905
2971
|
"class": ['v-img', {
|
2906
2972
|
'v-img--booting': !isBooted.value
|
2907
|
-
}],
|
2908
|
-
"style": {
|
2973
|
+
}, props.class],
|
2974
|
+
"style": [{
|
2909
2975
|
width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width)
|
2910
|
-
},
|
2976
|
+
}, props.style],
|
2911
2977
|
"aspectRatio": aspectRatio.value,
|
2912
2978
|
"aria-label": props.alt,
|
2913
2979
|
"role": props.alt ? 'img' : undefined
|
@@ -2942,10 +3008,9 @@
|
|
2942
3008
|
}
|
2943
3009
|
}, 'tag');
|
2944
3010
|
|
2945
|
-
// Types
|
2946
|
-
|
2947
3011
|
const makeVToolbarTitleProps = propsFactory({
|
2948
3012
|
text: String,
|
3013
|
+
...makeComponentProps(),
|
2949
3014
|
...makeTagProps()
|
2950
3015
|
}, 'v-toolbar-title');
|
2951
3016
|
const VToolbarTitle = genericComponent()({
|
@@ -2958,7 +3023,8 @@
|
|
2958
3023
|
useRender(() => {
|
2959
3024
|
const hasText = !!(slots.default || slots.text || props.text);
|
2960
3025
|
return vue.createVNode(props.tag, {
|
2961
|
-
"class":
|
3026
|
+
"class": ['v-toolbar-title', props.class],
|
3027
|
+
"style": props.style
|
2962
3028
|
}, {
|
2963
3029
|
default: () => [hasText && vue.createVNode("div", {
|
2964
3030
|
"class": "v-toolbar-title__placeholder"
|
@@ -3139,6 +3205,7 @@
|
|
3139
3205
|
image: String,
|
3140
3206
|
title: String,
|
3141
3207
|
...makeBorderProps(),
|
3208
|
+
...makeComponentProps(),
|
3142
3209
|
...makeElevationProps(),
|
3143
3210
|
...makeRoundedProps(),
|
3144
3211
|
...makeTagProps({
|
@@ -3189,8 +3256,8 @@
|
|
3189
3256
|
'v-toolbar--flat': props.flat,
|
3190
3257
|
'v-toolbar--floating': props.floating,
|
3191
3258
|
[`v-toolbar--density-${props.density}`]: true
|
3192
|
-
}, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value],
|
3193
|
-
"style": [backgroundColorStyles.value]
|
3259
|
+
}, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
3260
|
+
"style": [backgroundColorStyles.value, props.style]
|
3194
3261
|
}, {
|
3195
3262
|
default: () => [hasImage && vue.createVNode("div", {
|
3196
3263
|
"key": "image",
|
@@ -3475,13 +3542,13 @@
|
|
3475
3542
|
"ref": vToolbarRef,
|
3476
3543
|
"class": ['v-app-bar', {
|
3477
3544
|
'v-app-bar--bottom': props.location === 'bottom'
|
3478
|
-
}],
|
3479
|
-
"style": {
|
3545
|
+
}, props.class],
|
3546
|
+
"style": [{
|
3480
3547
|
...layoutItemStyles.value,
|
3481
3548
|
'--v-toolbar-image-opacity': opacity.value,
|
3482
3549
|
height: undefined,
|
3483
3550
|
...ssrBootStyles.value
|
3484
|
-
}
|
3551
|
+
}, props.style]
|
3485
3552
|
}, toolbarProps, {
|
3486
3553
|
"collapse": isCollapsed.value,
|
3487
3554
|
"flat": isFlat.value
|
@@ -3568,6 +3635,7 @@
|
|
3568
3635
|
const makeVBtnGroupProps = propsFactory({
|
3569
3636
|
divided: Boolean,
|
3570
3637
|
...makeBorderProps(),
|
3638
|
+
...makeComponentProps(),
|
3571
3639
|
...makeDensityProps(),
|
3572
3640
|
...makeElevationProps(),
|
3573
3641
|
...makeRoundedProps(),
|
@@ -3610,7 +3678,8 @@
|
|
3610
3678
|
return vue.createVNode(props.tag, {
|
3611
3679
|
"class": ['v-btn-group', {
|
3612
3680
|
'v-btn-group--divided': props.divided
|
3613
|
-
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value]
|
3681
|
+
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
3682
|
+
"style": props.style
|
3614
3683
|
}, slots);
|
3615
3684
|
});
|
3616
3685
|
}
|
@@ -3843,8 +3912,10 @@
|
|
3843
3912
|
useRender(() => {
|
3844
3913
|
const [btnGroupProps] = VBtnGroup.filterProps(props);
|
3845
3914
|
return vue.createVNode(VBtnGroup, vue.mergeProps({
|
3846
|
-
"class":
|
3847
|
-
}, btnGroupProps
|
3915
|
+
"class": ['v-btn-toggle', props.class]
|
3916
|
+
}, btnGroupProps, {
|
3917
|
+
"style": props.style
|
3918
|
+
}), {
|
3848
3919
|
default: () => [slots.default?.({
|
3849
3920
|
isSelected,
|
3850
3921
|
next,
|
@@ -3915,7 +3986,7 @@
|
|
3915
3986
|
|
3916
3987
|
// Types
|
3917
3988
|
|
3918
|
-
const IconValue = [String, Function, Object];
|
3989
|
+
const IconValue = [String, Function, Object, Array];
|
3919
3990
|
const IconSymbol = Symbol.for('vuetify:icons');
|
3920
3991
|
const makeIconProps = propsFactory({
|
3921
3992
|
icon: {
|
@@ -3935,8 +4006,9 @@
|
|
3935
4006
|
slots
|
3936
4007
|
} = _ref;
|
3937
4008
|
return () => {
|
4009
|
+
const Icon = props.icon;
|
3938
4010
|
return vue.createVNode(props.tag, null, {
|
3939
|
-
default: () => [props.icon ? vue.createVNode(
|
4011
|
+
default: () => [props.icon ? vue.createVNode(Icon, null, null) : slots.default?.()]
|
3940
4012
|
});
|
3941
4013
|
};
|
3942
4014
|
}
|
@@ -3959,7 +4031,12 @@
|
|
3959
4031
|
"viewBox": "0 0 24 24",
|
3960
4032
|
"role": "img",
|
3961
4033
|
"aria-hidden": "true"
|
3962
|
-
}, [vue.createVNode("path", {
|
4034
|
+
}, [Array.isArray(props.icon) ? props.icon.map(path => Array.isArray(path) ? vue.createVNode("path", {
|
4035
|
+
"d": path[0],
|
4036
|
+
"fill-opacity": path[1]
|
4037
|
+
}, null) : vue.createVNode("path", {
|
4038
|
+
"d": path
|
4039
|
+
}, null)) : vue.createVNode("path", {
|
3963
4040
|
"d": props.icon
|
3964
4041
|
}, null)])]
|
3965
4042
|
});
|
@@ -4024,7 +4101,12 @@
|
|
4024
4101
|
}
|
4025
4102
|
}
|
4026
4103
|
if (!icon) throw new Error(`Could not find aliased icon "${iconAlias}"`);
|
4027
|
-
if (
|
4104
|
+
if (Array.isArray(icon)) {
|
4105
|
+
return {
|
4106
|
+
component: VSvgIcon,
|
4107
|
+
icon
|
4108
|
+
};
|
4109
|
+
} else if (typeof icon !== 'string') {
|
4028
4110
|
return {
|
4029
4111
|
component: VComponentIcon,
|
4030
4112
|
icon
|
@@ -4081,6 +4163,7 @@
|
|
4081
4163
|
start: Boolean,
|
4082
4164
|
end: Boolean,
|
4083
4165
|
icon: IconValue,
|
4166
|
+
...makeComponentProps(),
|
4084
4167
|
...makeSizeProps(),
|
4085
4168
|
...makeTagProps({
|
4086
4169
|
tag: 'i'
|
@@ -4123,12 +4206,12 @@
|
|
4123
4206
|
'v-icon--clickable': !!attrs.onClick,
|
4124
4207
|
'v-icon--start': props.start,
|
4125
4208
|
'v-icon--end': props.end
|
4126
|
-
}],
|
4209
|
+
}, props.class],
|
4127
4210
|
"style": [!sizeClasses.value ? {
|
4128
4211
|
fontSize: convertToUnit(props.size),
|
4129
4212
|
height: convertToUnit(props.size),
|
4130
4213
|
width: convertToUnit(props.size)
|
4131
|
-
} : undefined, textColorStyles.value],
|
4214
|
+
} : undefined, textColorStyles.value, props.style],
|
4132
4215
|
"role": attrs.onClick ? 'button' : undefined,
|
4133
4216
|
"aria-hidden": !attrs.onClick
|
4134
4217
|
}, {
|
@@ -4139,14 +4222,14 @@
|
|
4139
4222
|
});
|
4140
4223
|
|
4141
4224
|
// Utilities
|
4142
|
-
function useIntersectionObserver(callback) {
|
4225
|
+
function useIntersectionObserver(callback, options) {
|
4143
4226
|
const intersectionRef = vue.ref();
|
4144
4227
|
const isIntersecting = vue.ref(false);
|
4145
4228
|
if (SUPPORTS_INTERSECTION) {
|
4146
4229
|
const observer = new IntersectionObserver(entries => {
|
4147
4230
|
callback?.(entries, observer);
|
4148
4231
|
isIntersecting.value = !!entries.find(entry => entry.isIntersecting);
|
4149
|
-
});
|
4232
|
+
}, options);
|
4150
4233
|
vue.onBeforeUnmount(() => {
|
4151
4234
|
observer.disconnect();
|
4152
4235
|
});
|
@@ -4186,6 +4269,7 @@
|
|
4186
4269
|
type: [Number, String],
|
4187
4270
|
default: 4
|
4188
4271
|
},
|
4272
|
+
...makeComponentProps(),
|
4189
4273
|
...makeSizeProps(),
|
4190
4274
|
...makeTagProps({
|
4191
4275
|
tag: 'div'
|
@@ -4241,8 +4325,8 @@
|
|
4241
4325
|
'v-progress-circular--indeterminate': !!props.indeterminate,
|
4242
4326
|
'v-progress-circular--visible': isIntersecting.value,
|
4243
4327
|
'v-progress-circular--disable-shrink': props.indeterminate === 'disable-shrink'
|
4244
|
-
}, themeClasses.value, sizeClasses.value, textColorClasses.value],
|
4245
|
-
"style": [sizeStyles.value, textColorStyles.value],
|
4328
|
+
}, themeClasses.value, sizeClasses.value, textColorClasses.value, props.class],
|
4329
|
+
"style": [sizeStyles.value, textColorStyles.value, props.style],
|
4246
4330
|
"role": "progressbar",
|
4247
4331
|
"aria-valuemin": "0",
|
4248
4332
|
"aria-valuemax": "100",
|
@@ -4661,6 +4745,7 @@
|
|
4661
4745
|
stream: Boolean,
|
4662
4746
|
striped: Boolean,
|
4663
4747
|
roundedBar: Boolean,
|
4748
|
+
...makeComponentProps(),
|
4664
4749
|
...makeLocationProps({
|
4665
4750
|
location: 'top'
|
4666
4751
|
}),
|
@@ -4732,14 +4817,14 @@
|
|
4732
4817
|
'v-progress-linear--rounded': props.rounded,
|
4733
4818
|
'v-progress-linear--rounded-bar': props.roundedBar,
|
4734
4819
|
'v-progress-linear--striped': props.striped
|
4735
|
-
}, roundedClasses.value, themeClasses.value],
|
4736
|
-
"style": {
|
4820
|
+
}, roundedClasses.value, themeClasses.value, props.class],
|
4821
|
+
"style": [{
|
4737
4822
|
bottom: props.location === 'bottom' ? 0 : undefined,
|
4738
4823
|
top: props.location === 'top' ? 0 : undefined,
|
4739
4824
|
height: props.active ? convertToUnit(height.value) : 0,
|
4740
4825
|
'--v-progress-linear-height': convertToUnit(height.value),
|
4741
4826
|
...locationStyles.value
|
4742
|
-
},
|
4827
|
+
}, props.style],
|
4743
4828
|
"role": "progressbar",
|
4744
4829
|
"aria-hidden": props.active ? 'false' : 'true',
|
4745
4830
|
"aria-valuemin": "0",
|
@@ -4950,7 +5035,7 @@
|
|
4950
5035
|
},
|
4951
5036
|
text: String,
|
4952
5037
|
...makeBorderProps(),
|
4953
|
-
...
|
5038
|
+
...makeComponentProps(),
|
4954
5039
|
...makeDensityProps(),
|
4955
5040
|
...makeDimensionProps(),
|
4956
5041
|
...makeElevationProps(),
|
@@ -4958,6 +5043,7 @@
|
|
4958
5043
|
...makeLoaderProps(),
|
4959
5044
|
...makeLocationProps(),
|
4960
5045
|
...makePositionProps(),
|
5046
|
+
...makeRoundedProps(),
|
4961
5047
|
...makeRouterProps(),
|
4962
5048
|
...makeSizeProps(),
|
4963
5049
|
...makeTagProps({
|
@@ -5055,8 +5141,8 @@
|
|
5055
5141
|
'v-btn--icon': !!props.icon,
|
5056
5142
|
'v-btn--loading': props.loading,
|
5057
5143
|
'v-btn--stacked': props.stacked
|
5058
|
-
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value],
|
5059
|
-
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value],
|
5144
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
5145
|
+
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],
|
5060
5146
|
"disabled": isDisabled.value || undefined,
|
5061
5147
|
"href": link.href.value,
|
5062
5148
|
"onClick": e => {
|
@@ -5133,15 +5219,17 @@
|
|
5133
5219
|
icon: {
|
5134
5220
|
type: IconValue,
|
5135
5221
|
default: '$menu'
|
5136
|
-
}
|
5222
|
+
},
|
5223
|
+
...makeComponentProps()
|
5137
5224
|
},
|
5138
5225
|
setup(props, _ref) {
|
5139
5226
|
let {
|
5140
5227
|
slots
|
5141
5228
|
} = _ref;
|
5142
5229
|
useRender(() => vue.createVNode(VBtn, {
|
5143
|
-
"class":
|
5144
|
-
"icon": props.icon
|
5230
|
+
"class": ['v-app-bar-nav-icon', props.class],
|
5231
|
+
"icon": props.icon,
|
5232
|
+
"style": props.style
|
5145
5233
|
}, slots));
|
5146
5234
|
return {};
|
5147
5235
|
}
|
@@ -5149,9 +5237,12 @@
|
|
5149
5237
|
|
5150
5238
|
const VToolbarItems = genericComponent()({
|
5151
5239
|
name: 'VToolbarItems',
|
5152
|
-
props:
|
5153
|
-
|
5154
|
-
|
5240
|
+
props: {
|
5241
|
+
...makeComponentProps(),
|
5242
|
+
...makeVariantProps({
|
5243
|
+
variant: 'text'
|
5244
|
+
})
|
5245
|
+
},
|
5155
5246
|
setup(props, _ref) {
|
5156
5247
|
let {
|
5157
5248
|
slots
|
@@ -5164,7 +5255,8 @@
|
|
5164
5255
|
}
|
5165
5256
|
});
|
5166
5257
|
useRender(() => vue.createVNode("div", {
|
5167
|
-
"class":
|
5258
|
+
"class": ['v-toolbar-items', props.class],
|
5259
|
+
"style": props.style
|
5168
5260
|
}, [slots.default?.()]));
|
5169
5261
|
return {};
|
5170
5262
|
}
|
@@ -5226,6 +5318,7 @@
|
|
5226
5318
|
type: String,
|
5227
5319
|
validator: val => allowedTypes.includes(val)
|
5228
5320
|
},
|
5321
|
+
...makeComponentProps(),
|
5229
5322
|
...makeDensityProps(),
|
5230
5323
|
...makeDimensionProps(),
|
5231
5324
|
...makeElevationProps(),
|
@@ -5308,8 +5401,8 @@
|
|
5308
5401
|
[`v-alert--border-${props.border === true ? 'start' : props.border}`]: true
|
5309
5402
|
}, {
|
5310
5403
|
'v-alert--prominent': props.prominent
|
5311
|
-
}, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value],
|
5312
|
-
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value],
|
5404
|
+
}, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
5405
|
+
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
|
5313
5406
|
"role": "alert"
|
5314
5407
|
}, {
|
5315
5408
|
default: () => [genOverlays(false, 'v-alert'), props.border && vue.createVNode("div", {
|
@@ -5403,6 +5496,7 @@
|
|
5403
5496
|
props: {
|
5404
5497
|
text: String,
|
5405
5498
|
clickable: Boolean,
|
5499
|
+
...makeComponentProps(),
|
5406
5500
|
...makeThemeProps()
|
5407
5501
|
},
|
5408
5502
|
setup(props, _ref) {
|
@@ -5412,7 +5506,8 @@
|
|
5412
5506
|
useRender(() => vue.createVNode("label", {
|
5413
5507
|
"class": ['v-label', {
|
5414
5508
|
'v-label--clickable': props.clickable
|
5415
|
-
}]
|
5509
|
+
}, props.class],
|
5510
|
+
"style": props.style
|
5416
5511
|
}, [props.text, slots.default?.()]));
|
5417
5512
|
return {};
|
5418
5513
|
}
|
@@ -5421,7 +5516,8 @@
|
|
5421
5516
|
const VFieldLabel = genericComponent()({
|
5422
5517
|
name: 'VFieldLabel',
|
5423
5518
|
props: {
|
5424
|
-
floating: Boolean
|
5519
|
+
floating: Boolean,
|
5520
|
+
...makeComponentProps()
|
5425
5521
|
},
|
5426
5522
|
setup(props, _ref) {
|
5427
5523
|
let {
|
@@ -5430,7 +5526,8 @@
|
|
5430
5526
|
useRender(() => vue.createVNode(VLabel, {
|
5431
5527
|
"class": ['v-field-label', {
|
5432
5528
|
'v-field-label--floating': props.floating
|
5433
|
-
}],
|
5529
|
+
}, props.class],
|
5530
|
+
"style": props.style,
|
5434
5531
|
"aria-hidden": props.floating || undefined
|
5435
5532
|
}, slots));
|
5436
5533
|
return {};
|
@@ -5481,6 +5578,7 @@
|
|
5481
5578
|
},
|
5482
5579
|
active: Boolean,
|
5483
5580
|
color: String,
|
5581
|
+
baseColor: String,
|
5484
5582
|
dirty: Boolean,
|
5485
5583
|
disabled: Boolean,
|
5486
5584
|
error: Boolean,
|
@@ -5498,9 +5596,10 @@
|
|
5498
5596
|
'onClick:clear': EventProp(),
|
5499
5597
|
'onClick:appendInner': EventProp(),
|
5500
5598
|
'onClick:prependInner': EventProp(),
|
5501
|
-
...
|
5599
|
+
...makeComponentProps(),
|
5502
5600
|
...makeLoaderProps(),
|
5503
|
-
...makeRoundedProps()
|
5601
|
+
...makeRoundedProps(),
|
5602
|
+
...makeThemeProps()
|
5504
5603
|
}, 'v-field');
|
5505
5604
|
const VField = genericComponent()({
|
5506
5605
|
name: 'VField',
|
@@ -5554,7 +5653,7 @@
|
|
5554
5653
|
textColorClasses,
|
5555
5654
|
textColorStyles
|
5556
5655
|
} = useTextColor(vue.computed(() => {
|
5557
|
-
return
|
5656
|
+
return props.error || props.disabled ? undefined : isActive.value && isFocused.value ? props.color : props.baseColor;
|
5558
5657
|
}));
|
5559
5658
|
vue.watch(isActive, val => {
|
5560
5659
|
if (hasLabel.value) {
|
@@ -5631,8 +5730,8 @@
|
|
5631
5730
|
'v-field--single-line': props.singleLine,
|
5632
5731
|
'v-field--no-label': !label,
|
5633
5732
|
[`v-field--variant-${props.variant}`]: true
|
5634
|
-
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value],
|
5635
|
-
"style": [backgroundColorStyles.value, textColorStyles.value],
|
5733
|
+
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, props.class],
|
5734
|
+
"style": [backgroundColorStyles.value, textColorStyles.value, props.style],
|
5636
5735
|
"onClick": onClick
|
5637
5736
|
}, attrs), [vue.createVNode("div", {
|
5638
5737
|
"class": "v-field__overlay"
|
@@ -5720,7 +5819,7 @@
|
|
5720
5819
|
});
|
5721
5820
|
// TODO: this is kinda slow, might be better to implicitly inherit props instead
|
5722
5821
|
function filterFieldProps(attrs) {
|
5723
|
-
const keys = Object.keys(VField.props).filter(k => !isOn(k));
|
5822
|
+
const keys = Object.keys(VField.props).filter(k => !isOn(k) && k !== 'class' && k !== 'style');
|
5724
5823
|
return pick(attrs, keys);
|
5725
5824
|
}
|
5726
5825
|
|
@@ -5735,6 +5834,7 @@
|
|
5735
5834
|
type: [Array, String],
|
5736
5835
|
default: () => []
|
5737
5836
|
},
|
5837
|
+
...makeComponentProps(),
|
5738
5838
|
...makeTransitionProps({
|
5739
5839
|
transition: {
|
5740
5840
|
component: VSlideYTransition,
|
@@ -5755,8 +5855,8 @@
|
|
5755
5855
|
useRender(() => vue.createVNode(MaybeTransition, {
|
5756
5856
|
"transition": props.transition,
|
5757
5857
|
"tag": "div",
|
5758
|
-
"class": ['v-messages', textColorClasses.value],
|
5759
|
-
"style": textColorStyles.value,
|
5858
|
+
"class": ['v-messages', textColorClasses.value, props.class],
|
5859
|
+
"style": [textColorStyles.value, props.style],
|
5760
5860
|
"role": "alert",
|
5761
5861
|
"aria-live": "polite"
|
5762
5862
|
}, {
|
@@ -6052,6 +6152,7 @@
|
|
6052
6152
|
},
|
6053
6153
|
'onClick:prepend': EventProp(),
|
6054
6154
|
'onClick:append': EventProp(),
|
6155
|
+
...makeComponentProps(),
|
6055
6156
|
...makeDensityProps(),
|
6056
6157
|
...makeValidationProps()
|
6057
6158
|
}, 'v-input');
|
@@ -6119,7 +6220,8 @@
|
|
6119
6220
|
const hasMessages = messages.value.length > 0;
|
6120
6221
|
const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);
|
6121
6222
|
return vue.createVNode("div", {
|
6122
|
-
"class": ['v-input', `v-input--${props.direction}`, densityClasses.value, validationClasses.value]
|
6223
|
+
"class": ['v-input', `v-input--${props.direction}`, densityClasses.value, validationClasses.value, props.class],
|
6224
|
+
"style": props.style
|
6123
6225
|
}, [hasPrepend && vue.createVNode("div", {
|
6124
6226
|
"key": "prepend",
|
6125
6227
|
"class": "v-input__prepend"
|
@@ -6162,6 +6264,7 @@
|
|
6162
6264
|
type: [Number, String],
|
6163
6265
|
default: 0
|
6164
6266
|
},
|
6267
|
+
...makeComponentProps(),
|
6165
6268
|
...makeTransitionProps({
|
6166
6269
|
transition: {
|
6167
6270
|
component: VSlideYTransition
|
@@ -6179,7 +6282,8 @@
|
|
6179
6282
|
"transition": props.transition
|
6180
6283
|
}, {
|
6181
6284
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
6182
|
-
"class":
|
6285
|
+
"class": ['v-counter', props.class],
|
6286
|
+
"style": props.style
|
6183
6287
|
}, [slots.default ? slots.default({
|
6184
6288
|
counter: counter.value,
|
6185
6289
|
max: props.max,
|
@@ -6382,7 +6486,8 @@
|
|
6382
6486
|
'v-text-field--prefixed': props.prefix,
|
6383
6487
|
'v-text-field--suffixed': props.suffix,
|
6384
6488
|
'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant)
|
6385
|
-
}]
|
6489
|
+
}, props.class],
|
6490
|
+
"style": props.style
|
6386
6491
|
}, rootAttrs, inputProps, {
|
6387
6492
|
"focused": isFocused.value
|
6388
6493
|
}), {
|
@@ -6498,6 +6603,7 @@
|
|
6498
6603
|
type: String,
|
6499
6604
|
default: 'VSelectionControl'
|
6500
6605
|
},
|
6606
|
+
...makeComponentProps(),
|
6501
6607
|
...makeSelectionControlGroupProps()
|
6502
6608
|
},
|
6503
6609
|
emits: {
|
@@ -6545,7 +6651,8 @@
|
|
6545
6651
|
useRender(() => vue.createVNode("div", {
|
6546
6652
|
"class": ['v-selection-control-group', {
|
6547
6653
|
'v-selection-control-group--inline': props.inline
|
6548
|
-
}],
|
6654
|
+
}, props.class],
|
6655
|
+
"style": props.style,
|
6549
6656
|
"role": props.type === 'radio' ? 'radiogroup' : undefined
|
6550
6657
|
}, [slots.default?.()]));
|
6551
6658
|
return {};
|
@@ -6559,6 +6666,7 @@
|
|
6559
6666
|
trueValue: null,
|
6560
6667
|
falseValue: null,
|
6561
6668
|
value: null,
|
6669
|
+
...makeComponentProps(),
|
6562
6670
|
...makeSelectionControlGroupProps()
|
6563
6671
|
}, 'v-selection-control');
|
6564
6672
|
function useSelectionControl(props) {
|
@@ -6673,8 +6781,10 @@
|
|
6673
6781
|
'v-selection-control--focused': isFocused.value,
|
6674
6782
|
'v-selection-control--focus-visible': isFocusVisible.value,
|
6675
6783
|
'v-selection-control--inline': props.inline
|
6676
|
-
}, densityClasses.value]
|
6677
|
-
}, rootAttrs
|
6784
|
+
}, densityClasses.value, props.class]
|
6785
|
+
}, rootAttrs, {
|
6786
|
+
"style": props.style
|
6787
|
+
}), [vue.createVNode("div", {
|
6678
6788
|
"class": ['v-selection-control__wrapper', textColorClasses.value],
|
6679
6789
|
"style": textColorStyles.value
|
6680
6790
|
}, [slots.default?.(), vue.withDirectives(vue.createVNode("div", {
|
@@ -6756,7 +6866,8 @@
|
|
6756
6866
|
useRender(() => vue.createVNode(VSelectionControl, vue.mergeProps(props, {
|
6757
6867
|
"modelValue": model.value,
|
6758
6868
|
"onUpdate:modelValue": [$event => model.value = $event, onChange],
|
6759
|
-
"class":
|
6869
|
+
"class": ['v-checkbox-btn', props.class],
|
6870
|
+
"style": props.style,
|
6760
6871
|
"type": "checkbox",
|
6761
6872
|
"inline": true,
|
6762
6873
|
"falseIcon": falseIcon.value,
|
@@ -6796,10 +6907,11 @@
|
|
6796
6907
|
const [inputProps, _1] = VInput.filterProps(props);
|
6797
6908
|
const [checkboxProps, _2] = VCheckboxBtn.filterProps(props);
|
6798
6909
|
return vue.createVNode(VInput, vue.mergeProps({
|
6799
|
-
"class":
|
6910
|
+
"class": ['v-checkbox', props.class]
|
6800
6911
|
}, inputAttrs, inputProps, {
|
6801
6912
|
"id": id.value,
|
6802
|
-
"focused": isFocused.value
|
6913
|
+
"focused": isFocused.value,
|
6914
|
+
"style": props.style
|
6803
6915
|
}), {
|
6804
6916
|
...slots,
|
6805
6917
|
default: _ref2 => {
|
@@ -6830,6 +6942,7 @@
|
|
6830
6942
|
end: Boolean,
|
6831
6943
|
icon: IconValue,
|
6832
6944
|
image: String,
|
6945
|
+
...makeComponentProps(),
|
6833
6946
|
...makeDensityProps(),
|
6834
6947
|
...makeRoundedProps(),
|
6835
6948
|
...makeSizeProps(),
|
@@ -6868,8 +6981,8 @@
|
|
6868
6981
|
"class": ['v-avatar', {
|
6869
6982
|
'v-avatar--start': props.start,
|
6870
6983
|
'v-avatar--end': props.end
|
6871
|
-
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value],
|
6872
|
-
"style": [colorStyles.value, sizeStyles.value]
|
6984
|
+
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
6985
|
+
"style": [colorStyles.value, sizeStyles.value, props.style]
|
6873
6986
|
}, {
|
6874
6987
|
default: () => [props.image ? vue.createVNode(VImg, {
|
6875
6988
|
"key": "image",
|
@@ -6897,6 +7010,7 @@
|
|
6897
7010
|
type: Function,
|
6898
7011
|
default: deepEqual
|
6899
7012
|
},
|
7013
|
+
...makeComponentProps(),
|
6900
7014
|
...makeGroupProps({
|
6901
7015
|
selectedClass: 'v-chip--selected'
|
6902
7016
|
}),
|
@@ -6934,7 +7048,8 @@
|
|
6934
7048
|
useRender(() => vue.createVNode(props.tag, {
|
6935
7049
|
"class": ['v-chip-group', {
|
6936
7050
|
'v-chip-group--column': props.column
|
6937
|
-
}, themeClasses.value]
|
7051
|
+
}, themeClasses.value, props.class],
|
7052
|
+
"style": props.style
|
6938
7053
|
}, {
|
6939
7054
|
default: () => [slots.default?.({
|
6940
7055
|
isSelected,
|
@@ -6948,8 +7063,6 @@
|
|
6948
7063
|
}
|
6949
7064
|
});
|
6950
7065
|
|
6951
|
-
// Types
|
6952
|
-
|
6953
7066
|
const VChip = genericComponent()({
|
6954
7067
|
name: 'VChip',
|
6955
7068
|
directives: {
|
@@ -6994,6 +7107,7 @@
|
|
6994
7107
|
onClick: EventProp(),
|
6995
7108
|
onClickOnce: EventProp(),
|
6996
7109
|
...makeBorderProps(),
|
7110
|
+
...makeComponentProps(),
|
6997
7111
|
...makeDensityProps(),
|
6998
7112
|
...makeElevationProps(),
|
6999
7113
|
...makeGroupItemProps(),
|
@@ -7086,8 +7200,8 @@
|
|
7086
7200
|
'v-chip--link': isClickable.value,
|
7087
7201
|
'v-chip--filter': hasFilter,
|
7088
7202
|
'v-chip--pill': props.pill
|
7089
|
-
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value],
|
7090
|
-
"style": [hasColor ? colorStyles.value : undefined],
|
7203
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value, props.class],
|
7204
|
+
"style": [hasColor ? colorStyles.value : undefined, props.style],
|
7091
7205
|
"disabled": props.disabled || undefined,
|
7092
7206
|
"draggable": props.draggable,
|
7093
7207
|
"href": link.href.value,
|
@@ -7196,6 +7310,7 @@
|
|
7196
7310
|
length: [Number, String],
|
7197
7311
|
thickness: [Number, String],
|
7198
7312
|
vertical: Boolean,
|
7313
|
+
...makeComponentProps(),
|
7199
7314
|
...makeThemeProps()
|
7200
7315
|
},
|
7201
7316
|
setup(props, _ref) {
|
@@ -7224,8 +7339,8 @@
|
|
7224
7339
|
'v-divider': true,
|
7225
7340
|
'v-divider--inset': props.inset,
|
7226
7341
|
'v-divider--vertical': props.vertical
|
7227
|
-
}, themeClasses.value, textColorClasses.value],
|
7228
|
-
"style": [dividerStyles.value, textColorStyles.value],
|
7342
|
+
}, themeClasses.value, textColorClasses.value, props.class],
|
7343
|
+
"style": [dividerStyles.value, textColorStyles.value, props.style],
|
7229
7344
|
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
7230
7345
|
"role": `${attrs.role || 'separator'}`
|
7231
7346
|
}, null));
|
@@ -7724,6 +7839,7 @@
|
|
7724
7839
|
fluid: Boolean,
|
7725
7840
|
subgroup: Boolean,
|
7726
7841
|
value: null,
|
7842
|
+
...makeComponentProps(),
|
7727
7843
|
...makeTagProps()
|
7728
7844
|
}, 'v-list-group');
|
7729
7845
|
const VListGroup = genericComponent()({
|
@@ -7772,7 +7888,8 @@
|
|
7772
7888
|
'v-list-group--fluid': props.fluid,
|
7773
7889
|
'v-list-group--subgroup': props.subgroup,
|
7774
7890
|
'v-list-group--open': isOpen.value
|
7775
|
-
}]
|
7891
|
+
}, props.class],
|
7892
|
+
"style": props.style
|
7776
7893
|
}, {
|
7777
7894
|
default: () => [slots.activator && vue.createVNode(VDefaultsProvider, {
|
7778
7895
|
"defaults": activatorDefaults.value
|
@@ -7839,6 +7956,7 @@
|
|
7839
7956
|
onClick: EventProp(),
|
7840
7957
|
onClickOnce: EventProp(),
|
7841
7958
|
...makeBorderProps(),
|
7959
|
+
...makeComponentProps(),
|
7842
7960
|
...makeDensityProps(),
|
7843
7961
|
...makeDimensionProps(),
|
7844
7962
|
...makeElevationProps(),
|
@@ -7949,8 +8067,8 @@
|
|
7949
8067
|
'v-list-item--nav': props.nav,
|
7950
8068
|
'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,
|
7951
8069
|
[`${props.activeClass}`]: props.activeClass && isActive.value
|
7952
|
-
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value],
|
7953
|
-
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value],
|
8070
|
+
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
8071
|
+
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, props.style],
|
7954
8072
|
"href": link.href.value,
|
7955
8073
|
"tabindex": isClickable.value ? 0 : undefined,
|
7956
8074
|
"onClick": onClick,
|
@@ -8043,6 +8161,7 @@
|
|
8043
8161
|
inset: Boolean,
|
8044
8162
|
sticky: Boolean,
|
8045
8163
|
title: String,
|
8164
|
+
...makeComponentProps(),
|
8046
8165
|
...makeTagProps()
|
8047
8166
|
},
|
8048
8167
|
setup(props, _ref) {
|
@@ -8059,10 +8178,10 @@
|
|
8059
8178
|
"class": ['v-list-subheader', {
|
8060
8179
|
'v-list-subheader--inset': props.inset,
|
8061
8180
|
'v-list-subheader--sticky': props.sticky
|
8062
|
-
}, textColorClasses.value],
|
8063
|
-
"style": {
|
8181
|
+
}, textColorClasses.value, props.class],
|
8182
|
+
"style": [{
|
8064
8183
|
textColorStyles
|
8065
|
-
}
|
8184
|
+
}, props.style]
|
8066
8185
|
}, {
|
8067
8186
|
default: () => [hasText && vue.createVNode("div", {
|
8068
8187
|
"class": "v-list-subheader__text"
|
@@ -8282,6 +8401,7 @@
|
|
8282
8401
|
openStrategy: 'list'
|
8283
8402
|
}),
|
8284
8403
|
...makeBorderProps(),
|
8404
|
+
...makeComponentProps(),
|
8285
8405
|
...makeDensityProps(),
|
8286
8406
|
...makeDimensionProps(),
|
8287
8407
|
...makeElevationProps(),
|
@@ -8383,27 +8503,8 @@
|
|
8383
8503
|
e.preventDefault();
|
8384
8504
|
}
|
8385
8505
|
function focus(location) {
|
8386
|
-
if (
|
8387
|
-
|
8388
|
-
const focusable = [...contentRef.value.querySelectorAll(targets)].filter(el => !el.hasAttribute('disabled'));
|
8389
|
-
const idx = focusable.indexOf(document.activeElement);
|
8390
|
-
if (!location) {
|
8391
|
-
if (!contentRef.value.contains(document.activeElement)) {
|
8392
|
-
focusable[0]?.focus();
|
8393
|
-
}
|
8394
|
-
} else if (location === 'first') {
|
8395
|
-
focusable[0]?.focus();
|
8396
|
-
} else if (location === 'last') {
|
8397
|
-
focusable.at(-1)?.focus();
|
8398
|
-
} else {
|
8399
|
-
let el;
|
8400
|
-
let idxx = idx;
|
8401
|
-
const inc = location === 'next' ? 1 : -1;
|
8402
|
-
do {
|
8403
|
-
idxx += inc;
|
8404
|
-
el = focusable[idxx];
|
8405
|
-
} while ((!el || el.offsetParent == null) && idxx < focusable.length && idxx >= 0);
|
8406
|
-
if (el) el.focus();else focus(location === 'next' ? 'first' : 'last');
|
8506
|
+
if (contentRef.value) {
|
8507
|
+
return focusChild(contentRef.value, location);
|
8407
8508
|
}
|
8408
8509
|
}
|
8409
8510
|
useRender(() => {
|
@@ -8412,8 +8513,8 @@
|
|
8412
8513
|
"class": ['v-list', {
|
8413
8514
|
'v-list--disabled': props.disabled,
|
8414
8515
|
'v-list--nav': props.nav
|
8415
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value],
|
8416
|
-
"style": [backgroundColorStyles.value, dimensionStyles.value],
|
8516
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class],
|
8517
|
+
"style": [backgroundColorStyles.value, dimensionStyles.value, props.style],
|
8417
8518
|
"role": "listbox",
|
8418
8519
|
"aria-activedescendant": undefined,
|
8419
8520
|
"onFocusin": onFocusin,
|
@@ -8441,6 +8542,7 @@
|
|
8441
8542
|
props: {
|
8442
8543
|
start: Boolean,
|
8443
8544
|
end: Boolean,
|
8545
|
+
...makeComponentProps(),
|
8444
8546
|
...makeTagProps()
|
8445
8547
|
},
|
8446
8548
|
setup(props, _ref) {
|
@@ -8451,7 +8553,8 @@
|
|
8451
8553
|
"class": ['v-list-item-action', {
|
8452
8554
|
'v-list-item-action--start': props.start,
|
8453
8555
|
'v-list-item-action--end': props.end
|
8454
|
-
}]
|
8556
|
+
}, props.class],
|
8557
|
+
"style": props.style
|
8455
8558
|
}, slots));
|
8456
8559
|
return {};
|
8457
8560
|
}
|
@@ -8462,6 +8565,7 @@
|
|
8462
8565
|
props: {
|
8463
8566
|
start: Boolean,
|
8464
8567
|
end: Boolean,
|
8568
|
+
...makeComponentProps(),
|
8465
8569
|
...makeTagProps()
|
8466
8570
|
},
|
8467
8571
|
setup(props, _ref) {
|
@@ -8473,7 +8577,8 @@
|
|
8473
8577
|
"class": ['v-list-item-media', {
|
8474
8578
|
'v-list-item-media--start': props.start,
|
8475
8579
|
'v-list-item-media--end': props.end
|
8476
|
-
}]
|
8580
|
+
}, props.class],
|
8581
|
+
"style": props.style
|
8477
8582
|
}, slots);
|
8478
8583
|
});
|
8479
8584
|
return {};
|
@@ -9714,6 +9819,7 @@
|
|
9714
9819
|
default: 2000
|
9715
9820
|
},
|
9716
9821
|
...makeActivatorProps(),
|
9822
|
+
...makeComponentProps(),
|
9717
9823
|
...makeDimensionProps(),
|
9718
9824
|
...makeLazyProps(),
|
9719
9825
|
...makeLocationStrategyProps(),
|
@@ -9881,10 +9987,10 @@
|
|
9881
9987
|
'v-overlay--absolute': props.absolute || props.contained,
|
9882
9988
|
'v-overlay--active': isActive.value,
|
9883
9989
|
'v-overlay--contained': props.contained
|
9884
|
-
}, themeClasses.value, rtlClasses.value],
|
9990
|
+
}, themeClasses.value, rtlClasses.value, props.class],
|
9885
9991
|
"style": [stackStyles.value, {
|
9886
9992
|
top: convertToUnit(top.value)
|
9887
|
-
}],
|
9993
|
+
}, props.style],
|
9888
9994
|
"ref": root
|
9889
9995
|
}, scopeId, attrs), [vue.createVNode(Scrim, vue.mergeProps({
|
9890
9996
|
"color": scrimColor,
|
@@ -9990,7 +10096,8 @@
|
|
9990
10096
|
const [overlayProps] = VOverlay.filterProps(props);
|
9991
10097
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
9992
10098
|
"ref": overlay,
|
9993
|
-
"class": ['v-menu']
|
10099
|
+
"class": ['v-menu', props.class],
|
10100
|
+
"style": props.style
|
9994
10101
|
}, overlayProps, {
|
9995
10102
|
"modelValue": isActive.value,
|
9996
10103
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
@@ -10209,7 +10316,8 @@
|
|
10209
10316
|
'v-select--chips': !!props.chips,
|
10210
10317
|
[`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,
|
10211
10318
|
'v-select--selected': model.value.length
|
10212
|
-
}],
|
10319
|
+
}, props.class],
|
10320
|
+
"style": props.style,
|
10213
10321
|
"appendInnerIcon": props.menuIcon,
|
10214
10322
|
"readonly": true,
|
10215
10323
|
"placeholder": placeholder,
|
@@ -10652,7 +10760,8 @@
|
|
10652
10760
|
'v-autocomplete--selecting-index': selectionIndex.value > -1,
|
10653
10761
|
[`v-autocomplete--${props.multiple ? 'multiple' : 'single'}`]: true,
|
10654
10762
|
'v-autocomplete--selection-slot': !!slots.selection
|
10655
|
-
}],
|
10763
|
+
}, props.class],
|
10764
|
+
"style": props.style,
|
10656
10765
|
"appendInnerIcon": props.menuIcon,
|
10657
10766
|
"readonly": props.readonly,
|
10658
10767
|
"placeholder": isDirty ? undefined : props.placeholder,
|
@@ -10766,8 +10875,6 @@
|
|
10766
10875
|
}
|
10767
10876
|
});
|
10768
10877
|
|
10769
|
-
// Types
|
10770
|
-
|
10771
10878
|
const VBadge = genericComponent()({
|
10772
10879
|
name: 'VBadge',
|
10773
10880
|
inheritAttrs: false,
|
@@ -10791,6 +10898,7 @@
|
|
10791
10898
|
offsetX: [Number, String],
|
10792
10899
|
offsetY: [Number, String],
|
10793
10900
|
textColor: String,
|
10901
|
+
...makeComponentProps(),
|
10794
10902
|
...makeLocationProps({
|
10795
10903
|
location: 'top end'
|
10796
10904
|
}),
|
@@ -10835,8 +10943,10 @@
|
|
10835
10943
|
'v-badge--dot': props.dot,
|
10836
10944
|
'v-badge--floating': props.floating,
|
10837
10945
|
'v-badge--inline': props.inline
|
10838
|
-
}]
|
10839
|
-
}, attrs
|
10946
|
+
}, props.class]
|
10947
|
+
}, attrs, {
|
10948
|
+
"style": props.style
|
10949
|
+
}), {
|
10840
10950
|
default: () => [vue.createVNode("div", {
|
10841
10951
|
"class": "v-badge__wrapper"
|
10842
10952
|
}, [ctx.slots.default?.(), vue.createVNode(MaybeTransition, {
|
@@ -10863,7 +10973,8 @@
|
|
10863
10973
|
name: 'VBannerActions',
|
10864
10974
|
props: {
|
10865
10975
|
color: String,
|
10866
|
-
density: String
|
10976
|
+
density: String,
|
10977
|
+
...makeComponentProps()
|
10867
10978
|
},
|
10868
10979
|
setup(props, _ref) {
|
10869
10980
|
let {
|
@@ -10877,7 +10988,8 @@
|
|
10877
10988
|
}
|
10878
10989
|
});
|
10879
10990
|
useRender(() => vue.createVNode("div", {
|
10880
|
-
"class":
|
10991
|
+
"class": ['v-banner-actions', props.class],
|
10992
|
+
"style": props.style
|
10881
10993
|
}, [slots.default?.()]));
|
10882
10994
|
return {};
|
10883
10995
|
}
|
@@ -10898,6 +11010,7 @@
|
|
10898
11010
|
sticky: Boolean,
|
10899
11011
|
text: String,
|
10900
11012
|
...makeBorderProps(),
|
11013
|
+
...makeComponentProps(),
|
10901
11014
|
...makeDensityProps(),
|
10902
11015
|
...makeDimensionProps(),
|
10903
11016
|
...makeElevationProps(),
|
@@ -10955,8 +11068,8 @@
|
|
10955
11068
|
'v-banner--stacked': props.stacked || mobile.value,
|
10956
11069
|
'v-banner--sticky': props.sticky,
|
10957
11070
|
[`v-banner--${props.lines}-line`]: !!props.lines
|
10958
|
-
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value],
|
10959
|
-
"style": [dimensionStyles.value, locationStyles.value],
|
11071
|
+
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
11072
|
+
"style": [dimensionStyles.value, locationStyles.value, props.style],
|
10960
11073
|
"role": "banner"
|
10961
11074
|
}, {
|
10962
11075
|
default: () => [hasPrepend && vue.createVNode("div", {
|
@@ -11012,6 +11125,7 @@
|
|
11012
11125
|
default: true
|
11013
11126
|
},
|
11014
11127
|
...makeBorderProps(),
|
11128
|
+
...makeComponentProps(),
|
11015
11129
|
...makeDensityProps(),
|
11016
11130
|
...makeElevationProps(),
|
11017
11131
|
...makeRoundedProps(),
|
@@ -11086,11 +11200,11 @@
|
|
11086
11200
|
'v-bottom-navigation--active': isActive.value,
|
11087
11201
|
'v-bottom-navigation--grow': props.grow,
|
11088
11202
|
'v-bottom-navigation--shift': props.mode === 'shift'
|
11089
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value],
|
11203
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
11090
11204
|
"style": [backgroundColorStyles.value, layoutItemStyles.value, {
|
11091
11205
|
height: convertToUnit(height.value),
|
11092
11206
|
transform: `translateY(${convertToUnit(!isActive.value ? 100 : 0, '%')})`
|
11093
|
-
}, ssrBootStyles.value]
|
11207
|
+
}, ssrBootStyles.value, props.style]
|
11094
11208
|
}, {
|
11095
11209
|
default: () => [slots.default && vue.createVNode("div", {
|
11096
11210
|
"class": "v-bottom-navigation__content"
|
@@ -11104,14 +11218,16 @@
|
|
11104
11218
|
const VBreadcrumbsDivider = genericComponent()({
|
11105
11219
|
name: 'VBreadcrumbsDivider',
|
11106
11220
|
props: {
|
11107
|
-
divider: [Number, String]
|
11221
|
+
divider: [Number, String],
|
11222
|
+
...makeComponentProps()
|
11108
11223
|
},
|
11109
11224
|
setup(props, _ref) {
|
11110
11225
|
let {
|
11111
11226
|
slots
|
11112
11227
|
} = _ref;
|
11113
11228
|
useRender(() => vue.createVNode("li", {
|
11114
|
-
"class":
|
11229
|
+
"class": ['v-breadcrumbs-divider', props.class],
|
11230
|
+
"style": props.style
|
11115
11231
|
}, [slots?.default?.() ?? props.divider]));
|
11116
11232
|
return {};
|
11117
11233
|
}
|
@@ -11126,6 +11242,7 @@
|
|
11126
11242
|
color: String,
|
11127
11243
|
disabled: Boolean,
|
11128
11244
|
title: String,
|
11245
|
+
...makeComponentProps(),
|
11129
11246
|
...makeRouterProps(),
|
11130
11247
|
...makeTagProps({
|
11131
11248
|
tag: 'li'
|
@@ -11151,8 +11268,8 @@
|
|
11151
11268
|
'v-breadcrumbs-item--disabled': props.disabled,
|
11152
11269
|
'v-breadcrumbs-item--link': link.isLink.value,
|
11153
11270
|
[`${props.activeClass}`]: isActive.value && props.activeClass
|
11154
|
-
}, textColorClasses.value],
|
11155
|
-
"style": [textColorStyles.value],
|
11271
|
+
}, textColorClasses.value, props.class],
|
11272
|
+
"style": [textColorStyles.value, props.style],
|
11156
11273
|
"href": link.href.value,
|
11157
11274
|
"aria-current": isActive.value ? 'page' : undefined,
|
11158
11275
|
"onClick": link.navigate
|
@@ -11183,6 +11300,7 @@
|
|
11183
11300
|
type: Array,
|
11184
11301
|
default: () => []
|
11185
11302
|
},
|
11303
|
+
...makeComponentProps(),
|
11186
11304
|
...makeDensityProps(),
|
11187
11305
|
...makeRoundedProps(),
|
11188
11306
|
...makeTagProps({
|
@@ -11214,11 +11332,22 @@
|
|
11214
11332
|
disabled: vue.toRef(props, 'disabled')
|
11215
11333
|
}
|
11216
11334
|
});
|
11335
|
+
const items = vue.computed(() => props.items.map(item => {
|
11336
|
+
return typeof item === 'string' ? {
|
11337
|
+
item: {
|
11338
|
+
title: item
|
11339
|
+
},
|
11340
|
+
raw: item
|
11341
|
+
} : {
|
11342
|
+
item,
|
11343
|
+
raw: item
|
11344
|
+
};
|
11345
|
+
}));
|
11217
11346
|
useRender(() => {
|
11218
11347
|
const hasPrepend = !!(slots.prepend || props.icon);
|
11219
11348
|
return vue.createVNode(props.tag, {
|
11220
|
-
"class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value],
|
11221
|
-
"style": backgroundColorStyles.value
|
11349
|
+
"class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value, props.class],
|
11350
|
+
"style": [backgroundColorStyles.value, props.style]
|
11222
11351
|
}, {
|
11223
11352
|
default: () => [hasPrepend && vue.createVNode("div", {
|
11224
11353
|
"key": "prepend",
|
@@ -11236,33 +11365,36 @@
|
|
11236
11365
|
start: true
|
11237
11366
|
}
|
11238
11367
|
}
|
11239
|
-
}, slots.prepend)]),
|
11240
|
-
|
11241
|
-
"disabled": index >= array.length - 1
|
11242
|
-
}, typeof item === 'string' ? {
|
11243
|
-
title: item
|
11244
|
-
} : item), {
|
11245
|
-
default: slots.title ? () => slots.title?.({
|
11246
|
-
item,
|
11247
|
-
index
|
11248
|
-
}) : undefined
|
11249
|
-
}), index < array.length - 1 && vue.createVNode(VBreadcrumbsDivider, null, {
|
11250
|
-
default: slots.divider ? () => slots.divider?.({
|
11368
|
+
}, slots.prepend)]), items.value.map((_ref2, index, array) => {
|
11369
|
+
let {
|
11251
11370
|
item,
|
11252
|
-
|
11253
|
-
}
|
11254
|
-
|
11371
|
+
raw
|
11372
|
+
} = _ref2;
|
11373
|
+
return vue.createVNode(vue.Fragment, null, [vue.createVNode(VBreadcrumbsItem, vue.mergeProps({
|
11374
|
+
"key": item.title,
|
11375
|
+
"disabled": index >= array.length - 1
|
11376
|
+
}, item), {
|
11377
|
+
default: slots.title ? () => slots.title?.({
|
11378
|
+
item: raw,
|
11379
|
+
index
|
11380
|
+
}) : undefined
|
11381
|
+
}), index < array.length - 1 && vue.createVNode(VBreadcrumbsDivider, null, {
|
11382
|
+
default: slots.divider ? () => slots.divider?.({
|
11383
|
+
item: raw,
|
11384
|
+
index
|
11385
|
+
}) : undefined
|
11386
|
+
})]);
|
11387
|
+
}), slots.default?.()]
|
11255
11388
|
});
|
11256
11389
|
});
|
11257
11390
|
return {};
|
11258
11391
|
}
|
11259
11392
|
});
|
11260
11393
|
|
11261
|
-
|
11262
|
-
|
11263
|
-
const VCardActions = defineComponent({
|
11394
|
+
const VCardActions = genericComponent()({
|
11264
11395
|
name: 'VCardActions',
|
11265
|
-
|
11396
|
+
props: makeComponentProps(),
|
11397
|
+
setup(props, _ref) {
|
11266
11398
|
let {
|
11267
11399
|
slots
|
11268
11400
|
} = _ref;
|
@@ -11272,7 +11404,8 @@
|
|
11272
11404
|
}
|
11273
11405
|
});
|
11274
11406
|
useRender(() => vue.createVNode("div", {
|
11275
|
-
"class":
|
11407
|
+
"class": ['v-card-actions', props.class],
|
11408
|
+
"style": props.style
|
11276
11409
|
}, [slots.default?.()]));
|
11277
11410
|
return {};
|
11278
11411
|
}
|
@@ -11282,8 +11415,6 @@
|
|
11282
11415
|
|
11283
11416
|
const VCardTitle = createSimpleFunctional('v-card-title');
|
11284
11417
|
|
11285
|
-
// Types
|
11286
|
-
|
11287
11418
|
const VCardItem = genericComponent()({
|
11288
11419
|
name: 'VCardItem',
|
11289
11420
|
props: {
|
@@ -11293,6 +11424,7 @@
|
|
11293
11424
|
prependIcon: IconValue,
|
11294
11425
|
subtitle: String,
|
11295
11426
|
title: String,
|
11427
|
+
...makeComponentProps(),
|
11296
11428
|
...makeDensityProps()
|
11297
11429
|
},
|
11298
11430
|
setup(props, _ref) {
|
@@ -11307,7 +11439,8 @@
|
|
11307
11439
|
const hasTitle = !!(props.title || slots.title);
|
11308
11440
|
const hasSubtitle = !!(props.subtitle || slots.subtitle);
|
11309
11441
|
return vue.createVNode("div", {
|
11310
|
-
"class":
|
11442
|
+
"class": ['v-card-item', props.class],
|
11443
|
+
"style": props.style
|
11311
11444
|
}, [hasPrepend && vue.createVNode("div", {
|
11312
11445
|
"key": "prepend",
|
11313
11446
|
"class": "v-card-item__prepend"
|
@@ -11389,8 +11522,8 @@
|
|
11389
11522
|
subtitle: String,
|
11390
11523
|
text: String,
|
11391
11524
|
title: String,
|
11392
|
-
...makeThemeProps(),
|
11393
11525
|
...makeBorderProps(),
|
11526
|
+
...makeComponentProps(),
|
11394
11527
|
...makeDensityProps(),
|
11395
11528
|
...makeDimensionProps(),
|
11396
11529
|
...makeElevationProps(),
|
@@ -11400,6 +11533,7 @@
|
|
11400
11533
|
...makeRoundedProps(),
|
11401
11534
|
...makeRouterProps(),
|
11402
11535
|
...makeTagProps(),
|
11536
|
+
...makeThemeProps(),
|
11403
11537
|
...makeVariantProps({
|
11404
11538
|
variant: 'elevated'
|
11405
11539
|
})
|
@@ -11460,8 +11594,8 @@
|
|
11460
11594
|
'v-card--flat': props.flat,
|
11461
11595
|
'v-card--hover': props.hover && !(props.disabled || props.flat),
|
11462
11596
|
'v-card--link': isClickable.value
|
11463
|
-
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value],
|
11464
|
-
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value],
|
11597
|
+
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
11598
|
+
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
|
11465
11599
|
"href": link.href.value,
|
11466
11600
|
"onClick": isClickable.value && link.navigate,
|
11467
11601
|
"tabindex": props.disabled ? -1 : undefined
|
@@ -11657,6 +11791,7 @@
|
|
11657
11791
|
mandatory: {
|
11658
11792
|
default: 'force'
|
11659
11793
|
},
|
11794
|
+
...makeComponentProps(),
|
11660
11795
|
...makeTagProps(),
|
11661
11796
|
...makeThemeProps()
|
11662
11797
|
}, 'v-window');
|
@@ -11772,7 +11907,8 @@
|
|
11772
11907
|
"ref": rootRef,
|
11773
11908
|
"class": ['v-window', {
|
11774
11909
|
'v-window--show-arrows-on-hover': props.showArrows === 'hover'
|
11775
|
-
}, themeClasses.value]
|
11910
|
+
}, themeClasses.value, props.class],
|
11911
|
+
"style": props.style
|
11776
11912
|
}, {
|
11777
11913
|
default: () => [vue.createVNode("div", {
|
11778
11914
|
"class": "v-window__container",
|
@@ -11857,10 +11993,10 @@
|
|
11857
11993
|
"class": ['v-carousel', {
|
11858
11994
|
'v-carousel--hide-delimiter-background': props.hideDelimiterBackground,
|
11859
11995
|
'v-carousel--vertical-delimiters': props.verticalDelimiters
|
11860
|
-
}],
|
11861
|
-
"style": {
|
11996
|
+
}, props.class],
|
11997
|
+
"style": [{
|
11862
11998
|
height: convertToUnit(props.height)
|
11863
|
-
},
|
11999
|
+
}, props.style],
|
11864
12000
|
"continuous": true,
|
11865
12001
|
"mandatory": "force",
|
11866
12002
|
"showArrows": props.showArrows
|
@@ -11926,6 +12062,7 @@
|
|
11926
12062
|
type: [Boolean, String],
|
11927
12063
|
default: undefined
|
11928
12064
|
},
|
12065
|
+
...makeComponentProps(),
|
11929
12066
|
...makeGroupItemProps(),
|
11930
12067
|
...makeLazyProps()
|
11931
12068
|
},
|
@@ -12012,7 +12149,8 @@
|
|
12012
12149
|
"disabled": !isBooted.value
|
12013
12150
|
}, {
|
12014
12151
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
12015
|
-
"class": ['v-window-item', groupItem.selectedClass.value]
|
12152
|
+
"class": ['v-window-item', groupItem.selectedClass.value, props.class],
|
12153
|
+
"style": props.style
|
12016
12154
|
}, [hasContent.value && slots.default?.()]), [[vue.vShow, groupItem.isSelected.value]])]
|
12017
12155
|
}));
|
12018
12156
|
return {};
|
@@ -12025,7 +12163,8 @@
|
|
12025
12163
|
name: 'VCarouselItem',
|
12026
12164
|
inheritAttrs: false,
|
12027
12165
|
props: {
|
12028
|
-
value: null
|
12166
|
+
value: null,
|
12167
|
+
...makeComponentProps()
|
12029
12168
|
},
|
12030
12169
|
setup(props, _ref) {
|
12031
12170
|
let {
|
@@ -12033,7 +12172,8 @@
|
|
12033
12172
|
attrs
|
12034
12173
|
} = _ref;
|
12035
12174
|
useRender(() => vue.createVNode(VWindowItem, {
|
12036
|
-
"class":
|
12175
|
+
"class": ['v-carousel-item', props.class],
|
12176
|
+
"style": props.style,
|
12037
12177
|
"value": props.value
|
12038
12178
|
}, {
|
12039
12179
|
default: () => [vue.createVNode(VImg, attrs, slots)]
|
@@ -12046,6 +12186,7 @@
|
|
12046
12186
|
const makeVSheetProps = propsFactory({
|
12047
12187
|
color: String,
|
12048
12188
|
...makeBorderProps(),
|
12189
|
+
...makeComponentProps(),
|
12049
12190
|
...makeDimensionProps(),
|
12050
12191
|
...makeElevationProps(),
|
12051
12192
|
...makeLocationProps(),
|
@@ -12089,8 +12230,8 @@
|
|
12089
12230
|
roundedClasses
|
12090
12231
|
} = useRounded(props);
|
12091
12232
|
useRender(() => vue.createVNode(props.tag, {
|
12092
|
-
"class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value],
|
12093
|
-
"style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value]
|
12233
|
+
"class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class],
|
12234
|
+
"style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style]
|
12094
12235
|
}, slots));
|
12095
12236
|
return {};
|
12096
12237
|
}
|
@@ -12116,7 +12257,8 @@
|
|
12116
12257
|
width: {
|
12117
12258
|
type: [Number, String],
|
12118
12259
|
default: 300
|
12119
|
-
}
|
12260
|
+
},
|
12261
|
+
...makeComponentProps()
|
12120
12262
|
},
|
12121
12263
|
emits: {
|
12122
12264
|
'update:color': color => true,
|
@@ -12261,7 +12403,8 @@
|
|
12261
12403
|
vue.onMounted(() => updateCanvas());
|
12262
12404
|
useRender(() => vue.createVNode("div", {
|
12263
12405
|
"ref": resizeRef,
|
12264
|
-
"class":
|
12406
|
+
"class": ['v-color-picker-canvas', props.class],
|
12407
|
+
"style": props.style,
|
12265
12408
|
"onClick": handleClick,
|
12266
12409
|
"onMousedown": handleMouseDown,
|
12267
12410
|
"onTouchstart": handleMouseDown
|
@@ -12494,7 +12637,8 @@
|
|
12494
12637
|
type: Array,
|
12495
12638
|
default: () => Object.keys(modes),
|
12496
12639
|
validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))
|
12497
|
-
}
|
12640
|
+
},
|
12641
|
+
...makeComponentProps()
|
12498
12642
|
},
|
12499
12643
|
emits: {
|
12500
12644
|
'update:color': color => true,
|
@@ -12534,7 +12678,8 @@
|
|
12534
12678
|
});
|
12535
12679
|
});
|
12536
12680
|
useRender(() => vue.createVNode("div", {
|
12537
|
-
"class":
|
12681
|
+
"class": ['v-color-picker-edit', props.class],
|
12682
|
+
"style": props.style
|
12538
12683
|
}, [inputs.value?.map(props => vue.createVNode(VColorPickerInput, props, null)), enabledModes.value.length > 1 && vue.createVNode(VBtn, {
|
12539
12684
|
"icon": "$unfold",
|
12540
12685
|
"size": "x-small",
|
@@ -12853,7 +12998,8 @@
|
|
12853
12998
|
ripple: {
|
12854
12999
|
type: Boolean,
|
12855
13000
|
default: true
|
12856
|
-
}
|
13001
|
+
},
|
13002
|
+
...makeComponentProps()
|
12857
13003
|
},
|
12858
13004
|
emits: {
|
12859
13005
|
'update:modelValue': v => true
|
@@ -12931,11 +13077,11 @@
|
|
12931
13077
|
"class": ['v-slider-thumb', {
|
12932
13078
|
'v-slider-thumb--focused': props.focused,
|
12933
13079
|
'v-slider-thumb--pressed': props.focused && mousePressed.value
|
12934
|
-
}],
|
12935
|
-
"style": {
|
13080
|
+
}, props.class],
|
13081
|
+
"style": [{
|
12936
13082
|
'--v-slider-thumb-position': positionPercentage,
|
12937
13083
|
'--v-slider-thumb-size': convertToUnit(thumbSize.value)
|
12938
|
-
},
|
13084
|
+
}, props.style],
|
12939
13085
|
"role": "slider",
|
12940
13086
|
"tabindex": disabled.value ? -1 : 0,
|
12941
13087
|
"aria-valuemin": props.min,
|
@@ -12981,7 +13127,8 @@
|
|
12981
13127
|
stop: {
|
12982
13128
|
type: Number,
|
12983
13129
|
required: true
|
12984
|
-
}
|
13130
|
+
},
|
13131
|
+
...makeComponentProps()
|
12985
13132
|
},
|
12986
13133
|
emits: {},
|
12987
13134
|
setup(props, _ref) {
|
@@ -13056,12 +13203,12 @@
|
|
13056
13203
|
});
|
13057
13204
|
useRender(() => {
|
13058
13205
|
return vue.createVNode("div", {
|
13059
|
-
"class": ['v-slider-track', roundedClasses.value],
|
13060
|
-
"style": {
|
13206
|
+
"class": ['v-slider-track', roundedClasses.value, props.class],
|
13207
|
+
"style": [{
|
13061
13208
|
'--v-slider-track-size': convertToUnit(trackSize.value),
|
13062
13209
|
'--v-slider-tick-size': convertToUnit(tickSize.value),
|
13063
13210
|
direction: !vertical.value ? horizontalDirection.value : undefined
|
13064
|
-
}
|
13211
|
+
}, props.style]
|
13065
13212
|
}, [vue.createVNode("div", {
|
13066
13213
|
"class": ['v-slider-track__background', trackColorClasses.value, {
|
13067
13214
|
'v-slider-track__background--opacity': !!color.value || !trackFillColor.value
|
@@ -13164,7 +13311,8 @@
|
|
13164
13311
|
'v-slider--focused': isFocused.value,
|
13165
13312
|
'v-slider--pressed': mousePressed.value,
|
13166
13313
|
'v-slider--disabled': props.disabled
|
13167
|
-
}]
|
13314
|
+
}, props.class],
|
13315
|
+
"style": props.style
|
13168
13316
|
}, inputProps, {
|
13169
13317
|
"focused": isFocused.value
|
13170
13318
|
}), {
|
@@ -13227,7 +13375,8 @@
|
|
13227
13375
|
type: Object
|
13228
13376
|
},
|
13229
13377
|
disabled: Boolean,
|
13230
|
-
hideAlpha: Boolean
|
13378
|
+
hideAlpha: Boolean,
|
13379
|
+
...makeComponentProps()
|
13231
13380
|
},
|
13232
13381
|
emits: {
|
13233
13382
|
'update:color': color => true
|
@@ -13239,7 +13388,8 @@
|
|
13239
13388
|
useRender(() => vue.createVNode("div", {
|
13240
13389
|
"class": ['v-color-picker-preview', {
|
13241
13390
|
'v-color-picker-preview--hide-alpha': props.hideAlpha
|
13242
|
-
}]
|
13391
|
+
}, props.class],
|
13392
|
+
"style": props.style
|
13243
13393
|
}, [vue.createVNode("div", {
|
13244
13394
|
"class": "v-color-picker-preview__dot"
|
13245
13395
|
}, [vue.createVNode("div", {
|
@@ -13620,7 +13770,8 @@
|
|
13620
13770
|
},
|
13621
13771
|
disabled: Boolean,
|
13622
13772
|
color: Object,
|
13623
|
-
maxHeight: [Number, String]
|
13773
|
+
maxHeight: [Number, String],
|
13774
|
+
...makeComponentProps()
|
13624
13775
|
},
|
13625
13776
|
emits: {
|
13626
13777
|
'update:color': color => true
|
@@ -13630,10 +13781,10 @@
|
|
13630
13781
|
emit
|
13631
13782
|
} = _ref;
|
13632
13783
|
useRender(() => vue.createVNode("div", {
|
13633
|
-
"class":
|
13634
|
-
"style": {
|
13784
|
+
"class": ['v-color-picker-swatches', props.class],
|
13785
|
+
"style": [{
|
13635
13786
|
maxHeight: convertToUnit(props.maxHeight)
|
13636
|
-
}
|
13787
|
+
}, props.style]
|
13637
13788
|
}, [vue.createVNode("div", null, [props.swatches.map(swatch => vue.createVNode("div", {
|
13638
13789
|
"class": "v-color-picker-swatches__swatch"
|
13639
13790
|
}, [swatch.map(color => {
|
@@ -13737,13 +13888,13 @@
|
|
13737
13888
|
"rounded": props.rounded,
|
13738
13889
|
"elevation": props.elevation,
|
13739
13890
|
"theme": props.theme,
|
13740
|
-
"class": ['v-color-picker'],
|
13741
|
-
"style": {
|
13891
|
+
"class": ['v-color-picker', props.class],
|
13892
|
+
"style": [{
|
13742
13893
|
'--v-color-picker-color-hsv': HSVtoCSS({
|
13743
13894
|
...(currentColor.value ?? nullColor),
|
13744
13895
|
a: 1
|
13745
13896
|
})
|
13746
|
-
}
|
13897
|
+
}, props.style]
|
13747
13898
|
}, sheetProps, {
|
13748
13899
|
"maxWidth": props.width
|
13749
13900
|
}), {
|
@@ -14054,7 +14205,8 @@
|
|
14054
14205
|
'v-combobox--chips': !!props.chips,
|
14055
14206
|
'v-combobox--selecting-index': selectionIndex.value > -1,
|
14056
14207
|
[`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true
|
14057
|
-
}],
|
14208
|
+
}, props.class],
|
14209
|
+
"style": props.style,
|
14058
14210
|
"appendInnerIcon": props.items.length ? props.menuIcon : undefined,
|
14059
14211
|
"readonly": props.readonly,
|
14060
14212
|
"placeholder": isDirty ? undefined : props.placeholder,
|
@@ -14211,7 +14363,7 @@
|
|
14211
14363
|
![document, overlay.value.contentEl].includes(after) &&
|
14212
14364
|
// It isn't inside the dialog body
|
14213
14365
|
!overlay.value.contentEl.contains(after)) {
|
14214
|
-
const focusable =
|
14366
|
+
const focusable = focusableChildren(overlay.value.contentEl);
|
14215
14367
|
if (!focusable.length) return;
|
14216
14368
|
const firstElement = focusable[0];
|
14217
14369
|
const lastElement = focusable[focusable.length - 1];
|
@@ -14252,7 +14404,8 @@
|
|
14252
14404
|
"class": ['v-dialog', {
|
14253
14405
|
'v-dialog--fullscreen': props.fullscreen,
|
14254
14406
|
'v-dialog--scrollable': props.scrollable
|
14255
|
-
}]
|
14407
|
+
}, props.class],
|
14408
|
+
"style": props.style
|
14256
14409
|
}, overlayProps, {
|
14257
14410
|
"modelValue": isActive.value,
|
14258
14411
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
@@ -14291,6 +14444,7 @@
|
|
14291
14444
|
validator: v => allowedVariants.includes(v)
|
14292
14445
|
},
|
14293
14446
|
readonly: Boolean,
|
14447
|
+
...makeComponentProps(),
|
14294
14448
|
...makeGroupProps(),
|
14295
14449
|
...makeTagProps(),
|
14296
14450
|
...makeThemeProps()
|
@@ -14316,7 +14470,8 @@
|
|
14316
14470
|
}
|
14317
14471
|
});
|
14318
14472
|
useRender(() => vue.createVNode(props.tag, {
|
14319
|
-
"class": ['v-expansion-panels', themeClasses.value, variantClass.value]
|
14473
|
+
"class": ['v-expansion-panels', themeClasses.value, variantClass.value, props.class],
|
14474
|
+
"style": props.style
|
14320
14475
|
}, slots));
|
14321
14476
|
return {};
|
14322
14477
|
}
|
@@ -14345,6 +14500,7 @@
|
|
14345
14500
|
Ripple
|
14346
14501
|
},
|
14347
14502
|
props: {
|
14503
|
+
...makeComponentProps(),
|
14348
14504
|
...makeVExpansionPanelTitleProps()
|
14349
14505
|
},
|
14350
14506
|
setup(props, _ref) {
|
@@ -14367,8 +14523,8 @@
|
|
14367
14523
|
useRender(() => vue.withDirectives(vue.createVNode("button", {
|
14368
14524
|
"class": ['v-expansion-panel-title', {
|
14369
14525
|
'v-expansion-panel-title--active': expansionPanel.isSelected.value
|
14370
|
-
}, backgroundColorClasses.value],
|
14371
|
-
"style": backgroundColorStyles.value,
|
14526
|
+
}, backgroundColorClasses.value, props.class],
|
14527
|
+
"style": [backgroundColorStyles.value, props.style],
|
14372
14528
|
"type": "button",
|
14373
14529
|
"tabindex": expansionPanel.disabled.value ? -1 : undefined,
|
14374
14530
|
"disabled": expansionPanel.disabled.value,
|
@@ -14388,6 +14544,7 @@
|
|
14388
14544
|
const VExpansionPanelText = genericComponent()({
|
14389
14545
|
name: 'VExpansionPanelText',
|
14390
14546
|
props: {
|
14547
|
+
...makeComponentProps(),
|
14391
14548
|
...makeLazyProps()
|
14392
14549
|
},
|
14393
14550
|
setup(props, _ref) {
|
@@ -14404,7 +14561,8 @@
|
|
14404
14561
|
"onAfterLeave": onAfterLeave
|
14405
14562
|
}, {
|
14406
14563
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
14407
|
-
"class":
|
14564
|
+
"class": ['v-expansion-panel-text', props.class],
|
14565
|
+
"style": props.style
|
14408
14566
|
}, [slots.default && hasContent.value && vue.createVNode("div", {
|
14409
14567
|
"class": "v-expansion-panel-text__wrapper"
|
14410
14568
|
}, [slots.default?.()])]), [[vue.vShow, expansionPanel.isSelected.value]])]
|
@@ -14419,6 +14577,7 @@
|
|
14419
14577
|
title: String,
|
14420
14578
|
text: String,
|
14421
14579
|
bgColor: String,
|
14580
|
+
...makeComponentProps(),
|
14422
14581
|
...makeElevationProps(),
|
14423
14582
|
...makeGroupItemProps(),
|
14424
14583
|
...makeLazyProps(),
|
@@ -14467,8 +14626,8 @@
|
|
14467
14626
|
'v-expansion-panel--before-active': isBeforeSelected.value,
|
14468
14627
|
'v-expansion-panel--after-active': isAfterSelected.value,
|
14469
14628
|
'v-expansion-panel--disabled': isDisabled.value
|
14470
|
-
}, roundedClasses.value, backgroundColorClasses.value],
|
14471
|
-
"style": backgroundColorStyles.value,
|
14629
|
+
}, roundedClasses.value, backgroundColorClasses.value, props.class],
|
14630
|
+
"style": [backgroundColorStyles.value, props.style],
|
14472
14631
|
"aria-expanded": groupItem.isSelected.value
|
14473
14632
|
}, {
|
14474
14633
|
default: () => [vue.createVNode("div", {
|
@@ -14618,7 +14777,8 @@
|
|
14618
14777
|
"ref": vInputRef,
|
14619
14778
|
"modelValue": model.value,
|
14620
14779
|
"onUpdate:modelValue": $event => model.value = $event,
|
14621
|
-
"class":
|
14780
|
+
"class": ['v-file-input', props.class],
|
14781
|
+
"style": props.style,
|
14622
14782
|
"onClick:prepend": onClickPrepend
|
14623
14783
|
}, rootAttrs, inputProps, {
|
14624
14784
|
"focused": isFocused.value
|
@@ -14710,6 +14870,7 @@
|
|
14710
14870
|
default: 'auto'
|
14711
14871
|
},
|
14712
14872
|
...makeBorderProps(),
|
14873
|
+
...makeComponentProps(),
|
14713
14874
|
...makeElevationProps(),
|
14714
14875
|
...makeLayoutItemProps(),
|
14715
14876
|
...makeRoundedProps(),
|
@@ -14759,8 +14920,8 @@
|
|
14759
14920
|
});
|
14760
14921
|
useRender(() => vue.createVNode(props.tag, {
|
14761
14922
|
"ref": resizeRef,
|
14762
|
-
"class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value],
|
14763
|
-
"style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : undefined]
|
14923
|
+
"class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
14924
|
+
"style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : undefined, props.style]
|
14764
14925
|
}, slots));
|
14765
14926
|
return {};
|
14766
14927
|
}
|
@@ -14771,6 +14932,7 @@
|
|
14771
14932
|
const VForm = genericComponent()({
|
14772
14933
|
name: 'VForm',
|
14773
14934
|
props: {
|
14935
|
+
...makeComponentProps(),
|
14774
14936
|
...makeFormProps()
|
14775
14937
|
},
|
14776
14938
|
emits: {
|
@@ -14809,7 +14971,8 @@
|
|
14809
14971
|
}
|
14810
14972
|
useRender(() => vue.createVNode("form", {
|
14811
14973
|
"ref": formRef,
|
14812
|
-
"class":
|
14974
|
+
"class": ['v-form', props.class],
|
14975
|
+
"style": props.style,
|
14813
14976
|
"novalidate": true,
|
14814
14977
|
"onReset": onReset,
|
14815
14978
|
"onSubmit": onSubmit
|
@@ -14825,6 +14988,7 @@
|
|
14825
14988
|
type: Boolean,
|
14826
14989
|
default: false
|
14827
14990
|
},
|
14991
|
+
...makeComponentProps(),
|
14828
14992
|
...makeTagProps()
|
14829
14993
|
},
|
14830
14994
|
setup(props, _ref) {
|
@@ -14834,7 +14998,8 @@
|
|
14834
14998
|
useRender(() => vue.createVNode(props.tag, {
|
14835
14999
|
"class": ['v-container', {
|
14836
15000
|
'v-container--fluid': props.fluid
|
14837
|
-
}]
|
15001
|
+
}, props.class],
|
15002
|
+
"style": props.style
|
14838
15003
|
}, slots));
|
14839
15004
|
return {};
|
14840
15005
|
}
|
@@ -14925,6 +15090,7 @@
|
|
14925
15090
|
default: null,
|
14926
15091
|
validator: str => ALIGN_SELF_VALUES.includes(str)
|
14927
15092
|
},
|
15093
|
+
...makeComponentProps(),
|
14928
15094
|
...makeTagProps()
|
14929
15095
|
},
|
14930
15096
|
setup(props, _ref) {
|
@@ -14955,7 +15121,8 @@
|
|
14955
15121
|
return classList;
|
14956
15122
|
});
|
14957
15123
|
return () => vue.h(props.tag, {
|
14958
|
-
class: classes.value
|
15124
|
+
class: [classes.value, props.class],
|
15125
|
+
style: props.style
|
14959
15126
|
}, slots.default?.());
|
14960
15127
|
}
|
14961
15128
|
});
|
@@ -15041,6 +15208,7 @@
|
|
15041
15208
|
validator: alignContentValidator
|
15042
15209
|
},
|
15043
15210
|
...alignContentProps,
|
15211
|
+
...makeComponentProps(),
|
15044
15212
|
...makeTagProps()
|
15045
15213
|
},
|
15046
15214
|
setup(props, _ref) {
|
@@ -15069,7 +15237,8 @@
|
|
15069
15237
|
return classList;
|
15070
15238
|
});
|
15071
15239
|
return () => vue.h(props.tag, {
|
15072
|
-
class: ['v-row', classes.value]
|
15240
|
+
class: ['v-row', classes.value, props.class],
|
15241
|
+
style: props.style
|
15073
15242
|
}, slots.default?.());
|
15074
15243
|
}
|
15075
15244
|
});
|
@@ -15113,6 +15282,7 @@
|
|
15113
15282
|
const VItemGroup = genericComponent()({
|
15114
15283
|
name: 'VItemGroup',
|
15115
15284
|
props: {
|
15285
|
+
...makeComponentProps(),
|
15116
15286
|
...makeGroupProps({
|
15117
15287
|
selectedClass: 'v-item--selected'
|
15118
15288
|
}),
|
@@ -15137,7 +15307,8 @@
|
|
15137
15307
|
selected
|
15138
15308
|
} = useGroup(props, VItemGroupSymbol);
|
15139
15309
|
return () => vue.createVNode(props.tag, {
|
15140
|
-
"class": ['v-item-group', themeClasses.value]
|
15310
|
+
"class": ['v-item-group', themeClasses.value, props.class],
|
15311
|
+
"style": props.style
|
15141
15312
|
}, {
|
15142
15313
|
default: () => [slots.default?.({
|
15143
15314
|
isSelected,
|
@@ -15187,7 +15358,10 @@
|
|
15187
15358
|
|
15188
15359
|
const VLayout = genericComponent()({
|
15189
15360
|
name: 'VLayout',
|
15190
|
-
props:
|
15361
|
+
props: {
|
15362
|
+
...makeComponentProps(),
|
15363
|
+
...makeLayoutProps()
|
15364
|
+
},
|
15191
15365
|
setup(props, _ref) {
|
15192
15366
|
let {
|
15193
15367
|
slots
|
@@ -15201,8 +15375,8 @@
|
|
15201
15375
|
} = createLayout(props);
|
15202
15376
|
useRender(() => vue.createVNode("div", {
|
15203
15377
|
"ref": layoutRef,
|
15204
|
-
"class": layoutClasses.value,
|
15205
|
-
"style": layoutStyles.value
|
15378
|
+
"class": [layoutClasses.value, props.class],
|
15379
|
+
"style": [layoutStyles.value, props.style]
|
15206
15380
|
}, [slots.default?.()]));
|
15207
15381
|
return {
|
15208
15382
|
getLayoutItem,
|
@@ -15225,6 +15399,7 @@
|
|
15225
15399
|
default: 300
|
15226
15400
|
},
|
15227
15401
|
modelValue: Boolean,
|
15402
|
+
...makeComponentProps(),
|
15228
15403
|
...makeLayoutItemProps()
|
15229
15404
|
},
|
15230
15405
|
setup(props, _ref) {
|
@@ -15243,8 +15418,8 @@
|
|
15243
15418
|
absolute: vue.toRef(props, 'absolute')
|
15244
15419
|
});
|
15245
15420
|
return () => vue.createVNode("div", {
|
15246
|
-
"class": ['v-layout-item'],
|
15247
|
-
"style": layoutItemStyles.value
|
15421
|
+
"class": ['v-layout-item', props.class],
|
15422
|
+
"style": [layoutItemStyles.value, props.style]
|
15248
15423
|
}, [slots.default?.()]);
|
15249
15424
|
}
|
15250
15425
|
});
|
@@ -15268,6 +15443,7 @@
|
|
15268
15443
|
threshold: undefined
|
15269
15444
|
})
|
15270
15445
|
},
|
15446
|
+
...makeComponentProps(),
|
15271
15447
|
...makeDimensionProps(),
|
15272
15448
|
...makeTagProps(),
|
15273
15449
|
...makeTransitionProps({
|
@@ -15290,8 +15466,8 @@
|
|
15290
15466
|
isActive.value = isIntersecting;
|
15291
15467
|
}
|
15292
15468
|
useRender(() => vue.withDirectives(vue.createVNode(props.tag, {
|
15293
|
-
"class":
|
15294
|
-
"style": dimensionStyles.value
|
15469
|
+
"class": ['v-lazy', props.class],
|
15470
|
+
"style": [dimensionStyles.value, props.style]
|
15295
15471
|
}, {
|
15296
15472
|
default: () => [isActive.value && vue.createVNode(MaybeTransition, {
|
15297
15473
|
"transition": props.transition,
|
@@ -15316,7 +15492,8 @@
|
|
15316
15492
|
rtl: {
|
15317
15493
|
type: Boolean,
|
15318
15494
|
default: undefined
|
15319
|
-
}
|
15495
|
+
},
|
15496
|
+
...makeComponentProps()
|
15320
15497
|
},
|
15321
15498
|
setup(props, _ref) {
|
15322
15499
|
let {
|
@@ -15326,7 +15503,8 @@
|
|
15326
15503
|
rtlClasses
|
15327
15504
|
} = provideLocale(props);
|
15328
15505
|
useRender(() => vue.createVNode("div", {
|
15329
|
-
"class": ['v-locale-provider', rtlClasses.value]
|
15506
|
+
"class": ['v-locale-provider', rtlClasses.value, props.class],
|
15507
|
+
"style": props.style
|
15330
15508
|
}, [slots.default?.()]));
|
15331
15509
|
return {};
|
15332
15510
|
}
|
@@ -15336,6 +15514,7 @@
|
|
15336
15514
|
name: 'VMain',
|
15337
15515
|
props: {
|
15338
15516
|
scrollable: Boolean,
|
15517
|
+
...makeComponentProps(),
|
15339
15518
|
...makeTagProps({
|
15340
15519
|
tag: 'main'
|
15341
15520
|
})
|
@@ -15353,8 +15532,8 @@
|
|
15353
15532
|
useRender(() => vue.createVNode(props.tag, {
|
15354
15533
|
"class": ['v-main', {
|
15355
15534
|
'v-main--scrollable': props.scrollable
|
15356
|
-
}],
|
15357
|
-
"style": [mainStyles.value, ssrBootStyles.value]
|
15535
|
+
}, props.class],
|
15536
|
+
"style": [mainStyles.value, ssrBootStyles.value, props.style]
|
15358
15537
|
}, {
|
15359
15538
|
default: () => [props.scrollable ? vue.createVNode("div", {
|
15360
15539
|
"class": "v-main__scroller"
|
@@ -15364,593 +15543,167 @@
|
|
15364
15543
|
}
|
15365
15544
|
});
|
15366
15545
|
|
15367
|
-
|
15368
|
-
|
15369
|
-
|
15370
|
-
|
15371
|
-
|
15372
|
-
|
15373
|
-
const
|
15374
|
-
const
|
15375
|
-
const
|
15376
|
-
|
15377
|
-
|
15546
|
+
function useSticky(_ref) {
|
15547
|
+
let {
|
15548
|
+
rootEl,
|
15549
|
+
isSticky,
|
15550
|
+
layoutItemStyles
|
15551
|
+
} = _ref;
|
15552
|
+
const isStuck = vue.ref(false);
|
15553
|
+
const stuckPosition = vue.ref(0);
|
15554
|
+
const stickyStyles = vue.computed(() => {
|
15555
|
+
const side = typeof isStuck.value === 'boolean' ? 'top' : isStuck.value;
|
15556
|
+
return [isSticky.value ? {
|
15557
|
+
top: 'auto',
|
15558
|
+
bottom: 'auto',
|
15559
|
+
height: undefined
|
15560
|
+
} : undefined, isStuck.value ? {
|
15561
|
+
[side]: convertToUnit(stuckPosition.value)
|
15562
|
+
} : {
|
15563
|
+
top: layoutItemStyles.value.top
|
15564
|
+
}];
|
15565
|
+
});
|
15566
|
+
vue.onMounted(() => {
|
15567
|
+
vue.watch(isSticky, val => {
|
15568
|
+
if (val) {
|
15569
|
+
window.addEventListener('scroll', onScroll, {
|
15570
|
+
passive: true
|
15571
|
+
});
|
15572
|
+
} else {
|
15573
|
+
window.removeEventListener('scroll', onScroll);
|
15574
|
+
}
|
15575
|
+
}, {
|
15576
|
+
immediate: true
|
15577
|
+
});
|
15578
|
+
});
|
15579
|
+
vue.onBeforeUnmount(() => {
|
15580
|
+
document.removeEventListener('scroll', onScroll);
|
15581
|
+
});
|
15582
|
+
let lastScrollTop = 0;
|
15583
|
+
function onScroll() {
|
15584
|
+
const direction = lastScrollTop > window.scrollY ? 'up' : 'down';
|
15585
|
+
const rect = rootEl.value.getBoundingClientRect();
|
15586
|
+
const layoutTop = parseFloat(layoutItemStyles.value.top ?? 0);
|
15587
|
+
const top = window.scrollY - Math.max(0, stuckPosition.value - layoutTop);
|
15588
|
+
const bottom = rect.height + Math.max(stuckPosition.value, layoutTop) - window.scrollY - window.innerHeight;
|
15589
|
+
if (rect.height < window.innerHeight - layoutTop) {
|
15590
|
+
isStuck.value = 'top';
|
15591
|
+
stuckPosition.value = layoutTop;
|
15592
|
+
} else if (direction === 'up' && isStuck.value === 'bottom' || direction === 'down' && isStuck.value === 'top') {
|
15593
|
+
stuckPosition.value = window.scrollY + rect.top;
|
15594
|
+
isStuck.value = true;
|
15595
|
+
} else if (direction === 'down' && bottom <= 0) {
|
15596
|
+
stuckPosition.value = 0;
|
15597
|
+
isStuck.value = 'bottom';
|
15598
|
+
} else if (direction === 'up' && top <= 0) {
|
15599
|
+
stuckPosition.value = rect.top + top;
|
15600
|
+
isStuck.value = 'top';
|
15601
|
+
}
|
15602
|
+
lastScrollTop = window.scrollY;
|
15378
15603
|
}
|
15379
|
-
|
15380
|
-
|
15604
|
+
return {
|
15605
|
+
isStuck,
|
15606
|
+
stickyStyles
|
15607
|
+
};
|
15608
|
+
}
|
15381
15609
|
|
15382
|
-
|
15383
|
-
|
15610
|
+
const HORIZON = 100; // ms
|
15611
|
+
const HISTORY = 20; // number of samples to keep
|
15384
15612
|
|
15385
|
-
|
15386
|
-
|
15387
|
-
|
15388
|
-
|
15613
|
+
/** @see https://android.googlesource.com/platform/frameworks/native/+/master/libs/input/VelocityTracker.cpp */
|
15614
|
+
function kineticEnergyToVelocity(work) {
|
15615
|
+
const sqrt2 = 1.41421356237;
|
15616
|
+
return (work < 0 ? -1.0 : 1.0) * Math.sqrt(Math.abs(work)) * sqrt2;
|
15617
|
+
}
|
15618
|
+
|
15619
|
+
/**
|
15620
|
+
* Returns pointer velocity in px/s
|
15621
|
+
*/
|
15622
|
+
function calculateImpulseVelocity(samples) {
|
15623
|
+
// The input should be in reversed time order (most recent sample at index i=0)
|
15624
|
+
if (samples.length < 2) {
|
15625
|
+
// if 0 or 1 points, velocity is zero
|
15626
|
+
return 0;
|
15627
|
+
}
|
15628
|
+
// if (samples[1].t > samples[0].t) {
|
15629
|
+
// // Algorithm will still work, but not perfectly
|
15630
|
+
// consoleWarn('Samples provided to calculateImpulseVelocity in the wrong order')
|
15631
|
+
// }
|
15632
|
+
if (samples.length === 2) {
|
15633
|
+
// if 2 points, basic linear calculation
|
15634
|
+
if (samples[1].t === samples[0].t) {
|
15635
|
+
// consoleWarn(`Events have identical time stamps t=${samples[0].t}, setting velocity = 0`)
|
15636
|
+
return 0;
|
15389
15637
|
}
|
15638
|
+
return (samples[1].d - samples[0].d) / (samples[1].t - samples[0].t);
|
15390
15639
|
}
|
15391
|
-
|
15392
|
-
|
15640
|
+
// Guaranteed to have at least 3 points here
|
15641
|
+
// start with the oldest sample and go forward in time
|
15642
|
+
let work = 0;
|
15643
|
+
for (let i = samples.length - 1; i > 0; i--) {
|
15644
|
+
if (samples[i].t === samples[i - 1].t) {
|
15645
|
+
// consoleWarn(`Events have identical time stamps t=${samples[i].t}, skipping sample`)
|
15646
|
+
continue;
|
15647
|
+
}
|
15648
|
+
const vprev = kineticEnergyToVelocity(work); // v[i-1]
|
15649
|
+
const vcurr = (samples[i].d - samples[i - 1].d) / (samples[i].t - samples[i - 1].t); // v[i]
|
15650
|
+
work += (vcurr - vprev) * Math.abs(vcurr);
|
15651
|
+
if (i === samples.length - 1) {
|
15652
|
+
work *= 0.5;
|
15653
|
+
}
|
15393
15654
|
}
|
15394
|
-
|
15395
|
-
return weeks;
|
15396
|
-
}
|
15397
|
-
function startOfMonth(date) {
|
15398
|
-
return new Date(date.getFullYear(), date.getMonth(), 1);
|
15399
|
-
}
|
15400
|
-
function endOfMonth(date) {
|
15401
|
-
return new Date(date.getFullYear(), date.getMonth() + 1, 0);
|
15655
|
+
return kineticEnergyToVelocity(work) * 1000;
|
15402
15656
|
}
|
15403
|
-
function
|
15404
|
-
|
15405
|
-
|
15406
|
-
|
15407
|
-
|
15408
|
-
|
15657
|
+
function useVelocity() {
|
15658
|
+
const touches = {};
|
15659
|
+
function addMovement(e) {
|
15660
|
+
Array.from(e.changedTouches).forEach(touch => {
|
15661
|
+
const samples = touches[touch.identifier] ?? (touches[touch.identifier] = new CircularBuffer(HISTORY));
|
15662
|
+
samples.push([e.timeStamp, touch]);
|
15663
|
+
});
|
15409
15664
|
}
|
15410
|
-
|
15411
|
-
|
15412
|
-
|
15413
|
-
|
15414
|
-
|
15415
|
-
|
15416
|
-
|
15417
|
-
|
15418
|
-
|
15419
|
-
|
15420
|
-
|
15421
|
-
|
15422
|
-
|
15423
|
-
|
15424
|
-
|
15425
|
-
|
15426
|
-
|
15427
|
-
|
15428
|
-
|
15429
|
-
|
15430
|
-
|
15431
|
-
|
15432
|
-
|
15433
|
-
|
15434
|
-
|
15435
|
-
|
15436
|
-
|
15437
|
-
|
15438
|
-
|
15439
|
-
|
15440
|
-
|
15441
|
-
|
15442
|
-
|
15443
|
-
|
15444
|
-
|
15445
|
-
|
15446
|
-
|
15447
|
-
|
15448
|
-
|
15449
|
-
|
15450
|
-
|
15451
|
-
|
15452
|
-
DK: 1,
|
15453
|
-
DM: 0,
|
15454
|
-
DO: 0,
|
15455
|
-
DZ: 6,
|
15456
|
-
EC: 1,
|
15457
|
-
EE: 1,
|
15458
|
-
EG: 6,
|
15459
|
-
ES: 1,
|
15460
|
-
ET: 0,
|
15461
|
-
FI: 1,
|
15462
|
-
FJ: 1,
|
15463
|
-
FO: 1,
|
15464
|
-
FR: 1,
|
15465
|
-
GB: 1,
|
15466
|
-
'GB-alt-variant': 0,
|
15467
|
-
GE: 1,
|
15468
|
-
GF: 1,
|
15469
|
-
GP: 1,
|
15470
|
-
GR: 1,
|
15471
|
-
GT: 0,
|
15472
|
-
GU: 0,
|
15473
|
-
HK: 0,
|
15474
|
-
HN: 0,
|
15475
|
-
HR: 1,
|
15476
|
-
HU: 1,
|
15477
|
-
ID: 0,
|
15478
|
-
IE: 1,
|
15479
|
-
IL: 0,
|
15480
|
-
IN: 0,
|
15481
|
-
IQ: 6,
|
15482
|
-
IR: 6,
|
15483
|
-
IS: 1,
|
15484
|
-
IT: 1,
|
15485
|
-
JM: 0,
|
15486
|
-
JO: 6,
|
15487
|
-
JP: 0,
|
15488
|
-
KE: 0,
|
15489
|
-
KG: 1,
|
15490
|
-
KH: 0,
|
15491
|
-
KR: 0,
|
15492
|
-
KW: 6,
|
15493
|
-
KZ: 1,
|
15494
|
-
LA: 0,
|
15495
|
-
LB: 1,
|
15496
|
-
LI: 1,
|
15497
|
-
LK: 1,
|
15498
|
-
LT: 1,
|
15499
|
-
LU: 1,
|
15500
|
-
LV: 1,
|
15501
|
-
LY: 6,
|
15502
|
-
MC: 1,
|
15503
|
-
MD: 1,
|
15504
|
-
ME: 1,
|
15505
|
-
MH: 0,
|
15506
|
-
MK: 1,
|
15507
|
-
MM: 0,
|
15508
|
-
MN: 1,
|
15509
|
-
MO: 0,
|
15510
|
-
MQ: 1,
|
15511
|
-
MT: 0,
|
15512
|
-
MV: 5,
|
15513
|
-
MX: 0,
|
15514
|
-
MY: 1,
|
15515
|
-
MZ: 0,
|
15516
|
-
NI: 0,
|
15517
|
-
NL: 1,
|
15518
|
-
NO: 1,
|
15519
|
-
NP: 0,
|
15520
|
-
NZ: 1,
|
15521
|
-
OM: 6,
|
15522
|
-
PA: 0,
|
15523
|
-
PE: 0,
|
15524
|
-
PH: 0,
|
15525
|
-
PK: 0,
|
15526
|
-
PL: 1,
|
15527
|
-
PR: 0,
|
15528
|
-
PT: 0,
|
15529
|
-
PY: 0,
|
15530
|
-
QA: 6,
|
15531
|
-
RE: 1,
|
15532
|
-
RO: 1,
|
15533
|
-
RS: 1,
|
15534
|
-
RU: 1,
|
15535
|
-
SA: 0,
|
15536
|
-
SD: 6,
|
15537
|
-
SE: 1,
|
15538
|
-
SG: 0,
|
15539
|
-
SI: 1,
|
15540
|
-
SK: 1,
|
15541
|
-
SM: 1,
|
15542
|
-
SV: 0,
|
15543
|
-
SY: 6,
|
15544
|
-
TH: 0,
|
15545
|
-
TJ: 1,
|
15546
|
-
TM: 1,
|
15547
|
-
TR: 1,
|
15548
|
-
TT: 0,
|
15549
|
-
TW: 0,
|
15550
|
-
UA: 1,
|
15551
|
-
UM: 0,
|
15552
|
-
US: 0,
|
15553
|
-
UY: 1,
|
15554
|
-
UZ: 1,
|
15555
|
-
VA: 1,
|
15556
|
-
VE: 0,
|
15557
|
-
VI: 0,
|
15558
|
-
VN: 1,
|
15559
|
-
WS: 0,
|
15560
|
-
XK: 1,
|
15561
|
-
YE: 0,
|
15562
|
-
ZA: 0,
|
15563
|
-
ZW: 0
|
15564
|
-
};
|
15565
|
-
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
15566
|
-
function getWeekdays(locale) {
|
15567
|
-
const daysFromSunday = firstDay[locale.slice(-2).toUpperCase()];
|
15568
|
-
return createRange(7).map(i => {
|
15569
|
-
const weekday = new Date(sundayJanuarySecond2000);
|
15570
|
-
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
15571
|
-
return new Intl.DateTimeFormat(locale, {
|
15572
|
-
weekday: 'long'
|
15573
|
-
}).format(weekday);
|
15574
|
-
});
|
15575
|
-
}
|
15576
|
-
function format(value, formatString, locale) {
|
15577
|
-
const date = new Date(value);
|
15578
|
-
let options = {};
|
15579
|
-
switch (formatString) {
|
15580
|
-
case 'fullDateWithWeekday':
|
15581
|
-
options = {
|
15582
|
-
weekday: 'long',
|
15583
|
-
day: 'numeric',
|
15584
|
-
month: 'long',
|
15585
|
-
year: 'numeric'
|
15586
|
-
};
|
15587
|
-
break;
|
15588
|
-
case 'normalDateWithWeekday':
|
15589
|
-
options = {
|
15590
|
-
weekday: 'short',
|
15591
|
-
day: 'numeric',
|
15592
|
-
month: 'short',
|
15593
|
-
year: 'numeric'
|
15594
|
-
};
|
15595
|
-
break;
|
15596
|
-
case 'keyboardDate':
|
15597
|
-
options = {};
|
15598
|
-
break;
|
15599
|
-
case 'monthAndDate':
|
15600
|
-
options = {
|
15601
|
-
month: 'long',
|
15602
|
-
day: 'numeric'
|
15603
|
-
};
|
15604
|
-
break;
|
15605
|
-
case 'monthAndYear':
|
15606
|
-
options = {
|
15607
|
-
month: 'long',
|
15608
|
-
year: 'numeric'
|
15609
|
-
};
|
15610
|
-
break;
|
15611
|
-
default:
|
15612
|
-
options = {
|
15613
|
-
timeZone: 'UTC',
|
15614
|
-
timeZoneName: 'short'
|
15615
|
-
};
|
15616
|
-
}
|
15617
|
-
return new Intl.DateTimeFormat(locale, options).format(date);
|
15618
|
-
}
|
15619
|
-
function addDays(date, amount) {
|
15620
|
-
const d = new Date(date);
|
15621
|
-
d.setDate(d.getDate() + amount);
|
15622
|
-
return d;
|
15623
|
-
}
|
15624
|
-
function addMonths(date, amount) {
|
15625
|
-
const d = new Date(date);
|
15626
|
-
d.setMonth(d.getMonth() + amount);
|
15627
|
-
return d;
|
15628
|
-
}
|
15629
|
-
function getYear(date) {
|
15630
|
-
return date.getFullYear();
|
15631
|
-
}
|
15632
|
-
function getMonth(date) {
|
15633
|
-
return date.getMonth();
|
15634
|
-
}
|
15635
|
-
function startOfYear(date) {
|
15636
|
-
return new Date(date.getFullYear(), 0, 1);
|
15637
|
-
}
|
15638
|
-
function endOfYear(date) {
|
15639
|
-
return new Date(date.getFullYear(), 11, 31);
|
15640
|
-
}
|
15641
|
-
function getMondayOfFirstWeekOfYear(year) {
|
15642
|
-
return new Date(year, 0, 1);
|
15643
|
-
}
|
15644
|
-
|
15645
|
-
// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
|
15646
|
-
function getWeek(date) {
|
15647
|
-
let year = date.getFullYear();
|
15648
|
-
let d1w1 = getMondayOfFirstWeekOfYear(year);
|
15649
|
-
if (date < d1w1) {
|
15650
|
-
year = year - 1;
|
15651
|
-
d1w1 = getMondayOfFirstWeekOfYear(year);
|
15652
|
-
} else {
|
15653
|
-
const tv = getMondayOfFirstWeekOfYear(year + 1);
|
15654
|
-
if (date >= tv) {
|
15655
|
-
year = year + 1;
|
15656
|
-
d1w1 = tv;
|
15657
|
-
}
|
15658
|
-
}
|
15659
|
-
const diffTime = Math.abs(date.getTime() - d1w1.getTime());
|
15660
|
-
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
15661
|
-
return Math.floor(diffDays / 7) + 1;
|
15662
|
-
}
|
15663
|
-
function isWithinRange(date, range) {
|
15664
|
-
return isAfter(date, range[0]) && isBefore(date, range[1]);
|
15665
|
-
}
|
15666
|
-
function isValid(date) {
|
15667
|
-
const d = new Date(date);
|
15668
|
-
return d instanceof Date && !isNaN(d.getTime());
|
15669
|
-
}
|
15670
|
-
function isAfter(date, comparing) {
|
15671
|
-
return date.getTime() > comparing.getTime();
|
15672
|
-
}
|
15673
|
-
function isBefore(date, comparing) {
|
15674
|
-
return date.getTime() < comparing.getTime();
|
15675
|
-
}
|
15676
|
-
function isEqual(date, comparing) {
|
15677
|
-
return date.getTime() === comparing.getTime();
|
15678
|
-
}
|
15679
|
-
function isSameDay(date, comparing) {
|
15680
|
-
return date.getDate() === comparing.getDate() && date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
15681
|
-
}
|
15682
|
-
function isSameMonth(date, comparing) {
|
15683
|
-
return date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
15684
|
-
}
|
15685
|
-
function getDiff(date, comparing, unit) {
|
15686
|
-
const d = new Date(date);
|
15687
|
-
const c = new Date(comparing);
|
15688
|
-
if (unit === 'month') {
|
15689
|
-
return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12;
|
15690
|
-
}
|
15691
|
-
return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24));
|
15692
|
-
}
|
15693
|
-
function setYear(date, year) {
|
15694
|
-
const d = new Date(date);
|
15695
|
-
d.setFullYear(year);
|
15696
|
-
return d;
|
15697
|
-
}
|
15698
|
-
class VuetifyDateAdapter {
|
15699
|
-
constructor() {
|
15700
|
-
let locale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'en';
|
15701
|
-
this.locale = locale;
|
15702
|
-
}
|
15703
|
-
date(value) {
|
15704
|
-
return date(value);
|
15705
|
-
}
|
15706
|
-
addDays(date, amount) {
|
15707
|
-
return addDays(date, amount);
|
15708
|
-
}
|
15709
|
-
addMonths(date, amount) {
|
15710
|
-
return addMonths(date, amount);
|
15711
|
-
}
|
15712
|
-
getWeekArray(date) {
|
15713
|
-
return getWeekArray(date);
|
15714
|
-
}
|
15715
|
-
startOfMonth(date) {
|
15716
|
-
return startOfMonth(date);
|
15717
|
-
}
|
15718
|
-
endOfMonth(date) {
|
15719
|
-
return endOfMonth(date);
|
15720
|
-
}
|
15721
|
-
format(date, formatString) {
|
15722
|
-
return format(date, formatString, this.locale);
|
15723
|
-
}
|
15724
|
-
isEqual(date, comparing) {
|
15725
|
-
return isEqual(date, comparing);
|
15726
|
-
}
|
15727
|
-
isValid(date) {
|
15728
|
-
return isValid(date);
|
15729
|
-
}
|
15730
|
-
isWithinRange(date, range) {
|
15731
|
-
return isWithinRange(date, range);
|
15732
|
-
}
|
15733
|
-
isAfter(date, comparing) {
|
15734
|
-
return isAfter(date, comparing);
|
15735
|
-
}
|
15736
|
-
isSameDay(date, comparing) {
|
15737
|
-
return isSameDay(date, comparing);
|
15738
|
-
}
|
15739
|
-
isSameMonth(date, comparing) {
|
15740
|
-
return isSameMonth(date, comparing);
|
15741
|
-
}
|
15742
|
-
setYear(date, year) {
|
15743
|
-
return setYear(date, year);
|
15744
|
-
}
|
15745
|
-
getDiff(date, comparing, unit) {
|
15746
|
-
return getDiff(date, comparing, unit);
|
15747
|
-
}
|
15748
|
-
getWeek(date) {
|
15749
|
-
return getWeek(date);
|
15750
|
-
}
|
15751
|
-
getWeekdays() {
|
15752
|
-
return getWeekdays(this.locale);
|
15753
|
-
}
|
15754
|
-
getYear(date) {
|
15755
|
-
return getYear(date);
|
15756
|
-
}
|
15757
|
-
getMonth(date) {
|
15758
|
-
return getMonth(date);
|
15759
|
-
}
|
15760
|
-
startOfYear(date) {
|
15761
|
-
return startOfYear(date);
|
15762
|
-
}
|
15763
|
-
endOfYear(date) {
|
15764
|
-
return endOfYear(date);
|
15765
|
-
}
|
15766
|
-
}
|
15767
|
-
|
15768
|
-
// Composables
|
15769
|
-
|
15770
|
-
// Types
|
15771
|
-
|
15772
|
-
const DateAdapterSymbol = Symbol.for('vuetify:date-adapter');
|
15773
|
-
function createDate(options) {
|
15774
|
-
return options ?? {
|
15775
|
-
adapter: VuetifyDateAdapter
|
15776
|
-
};
|
15777
|
-
}
|
15778
|
-
function useDate(props) {
|
15779
|
-
const date = vue.inject(DateAdapterSymbol);
|
15780
|
-
const locale = useLocale();
|
15781
|
-
if (!date) throw new Error('[Vuetify] Could not find injected date');
|
15782
|
-
|
15783
|
-
// eslint-disable-next-line new-cap
|
15784
|
-
const instance = new date.adapter(locale.current.value);
|
15785
|
-
vue.watch(locale.current, val => {
|
15786
|
-
instance.locale = val;
|
15787
|
-
}, {
|
15788
|
-
immediate: true
|
15789
|
-
});
|
15790
|
-
return instance;
|
15791
|
-
}
|
15792
|
-
|
15793
|
-
function useSticky(_ref) {
|
15794
|
-
let {
|
15795
|
-
rootEl,
|
15796
|
-
isSticky,
|
15797
|
-
layoutItemStyles
|
15798
|
-
} = _ref;
|
15799
|
-
const isStuck = vue.ref(false);
|
15800
|
-
const stuckPosition = vue.ref(0);
|
15801
|
-
const stickyStyles = vue.computed(() => {
|
15802
|
-
const side = typeof isStuck.value === 'boolean' ? 'top' : isStuck.value;
|
15803
|
-
return [isSticky.value ? {
|
15804
|
-
top: 'auto',
|
15805
|
-
bottom: 'auto',
|
15806
|
-
height: undefined
|
15807
|
-
} : undefined, isStuck.value ? {
|
15808
|
-
[side]: convertToUnit(stuckPosition.value)
|
15809
|
-
} : {
|
15810
|
-
top: layoutItemStyles.value.top
|
15811
|
-
}];
|
15812
|
-
});
|
15813
|
-
vue.onMounted(() => {
|
15814
|
-
vue.watch(isSticky, val => {
|
15815
|
-
if (val) {
|
15816
|
-
window.addEventListener('scroll', onScroll, {
|
15817
|
-
passive: true
|
15818
|
-
});
|
15819
|
-
} else {
|
15820
|
-
window.removeEventListener('scroll', onScroll);
|
15821
|
-
}
|
15822
|
-
}, {
|
15823
|
-
immediate: true
|
15824
|
-
});
|
15825
|
-
});
|
15826
|
-
vue.onBeforeUnmount(() => {
|
15827
|
-
document.removeEventListener('scroll', onScroll);
|
15828
|
-
});
|
15829
|
-
let lastScrollTop = 0;
|
15830
|
-
function onScroll() {
|
15831
|
-
const direction = lastScrollTop > window.scrollY ? 'up' : 'down';
|
15832
|
-
const rect = rootEl.value.getBoundingClientRect();
|
15833
|
-
const layoutTop = parseFloat(layoutItemStyles.value.top ?? 0);
|
15834
|
-
const top = window.scrollY - Math.max(0, stuckPosition.value - layoutTop);
|
15835
|
-
const bottom = rect.height + Math.max(stuckPosition.value, layoutTop) - window.scrollY - window.innerHeight;
|
15836
|
-
if (rect.height < window.innerHeight - layoutTop) {
|
15837
|
-
isStuck.value = 'top';
|
15838
|
-
stuckPosition.value = layoutTop;
|
15839
|
-
} else if (direction === 'up' && isStuck.value === 'bottom' || direction === 'down' && isStuck.value === 'top') {
|
15840
|
-
stuckPosition.value = window.scrollY + rect.top;
|
15841
|
-
isStuck.value = true;
|
15842
|
-
} else if (direction === 'down' && bottom <= 0) {
|
15843
|
-
stuckPosition.value = 0;
|
15844
|
-
isStuck.value = 'bottom';
|
15845
|
-
} else if (direction === 'up' && top <= 0) {
|
15846
|
-
stuckPosition.value = rect.top + top;
|
15847
|
-
isStuck.value = 'top';
|
15848
|
-
}
|
15849
|
-
lastScrollTop = window.scrollY;
|
15850
|
-
}
|
15851
|
-
return {
|
15852
|
-
isStuck,
|
15853
|
-
stickyStyles
|
15854
|
-
};
|
15855
|
-
}
|
15856
|
-
|
15857
|
-
const HORIZON = 100; // ms
|
15858
|
-
const HISTORY = 20; // number of samples to keep
|
15859
|
-
|
15860
|
-
/** @see https://android.googlesource.com/platform/frameworks/native/+/master/libs/input/VelocityTracker.cpp */
|
15861
|
-
function kineticEnergyToVelocity(work) {
|
15862
|
-
const sqrt2 = 1.41421356237;
|
15863
|
-
return (work < 0 ? -1.0 : 1.0) * Math.sqrt(Math.abs(work)) * sqrt2;
|
15864
|
-
}
|
15865
|
-
|
15866
|
-
/**
|
15867
|
-
* Returns pointer velocity in px/s
|
15868
|
-
*/
|
15869
|
-
function calculateImpulseVelocity(samples) {
|
15870
|
-
// The input should be in reversed time order (most recent sample at index i=0)
|
15871
|
-
if (samples.length < 2) {
|
15872
|
-
// if 0 or 1 points, velocity is zero
|
15873
|
-
return 0;
|
15874
|
-
}
|
15875
|
-
// if (samples[1].t > samples[0].t) {
|
15876
|
-
// // Algorithm will still work, but not perfectly
|
15877
|
-
// consoleWarn('Samples provided to calculateImpulseVelocity in the wrong order')
|
15878
|
-
// }
|
15879
|
-
if (samples.length === 2) {
|
15880
|
-
// if 2 points, basic linear calculation
|
15881
|
-
if (samples[1].t === samples[0].t) {
|
15882
|
-
// consoleWarn(`Events have identical time stamps t=${samples[0].t}, setting velocity = 0`)
|
15883
|
-
return 0;
|
15884
|
-
}
|
15885
|
-
return (samples[1].d - samples[0].d) / (samples[1].t - samples[0].t);
|
15886
|
-
}
|
15887
|
-
// Guaranteed to have at least 3 points here
|
15888
|
-
// start with the oldest sample and go forward in time
|
15889
|
-
let work = 0;
|
15890
|
-
for (let i = samples.length - 1; i > 0; i--) {
|
15891
|
-
if (samples[i].t === samples[i - 1].t) {
|
15892
|
-
// consoleWarn(`Events have identical time stamps t=${samples[i].t}, skipping sample`)
|
15893
|
-
continue;
|
15894
|
-
}
|
15895
|
-
const vprev = kineticEnergyToVelocity(work); // v[i-1]
|
15896
|
-
const vcurr = (samples[i].d - samples[i - 1].d) / (samples[i].t - samples[i - 1].t); // v[i]
|
15897
|
-
work += (vcurr - vprev) * Math.abs(vcurr);
|
15898
|
-
if (i === samples.length - 1) {
|
15899
|
-
work *= 0.5;
|
15900
|
-
}
|
15901
|
-
}
|
15902
|
-
return kineticEnergyToVelocity(work) * 1000;
|
15903
|
-
}
|
15904
|
-
function useVelocity() {
|
15905
|
-
const touches = {};
|
15906
|
-
function addMovement(e) {
|
15907
|
-
Array.from(e.changedTouches).forEach(touch => {
|
15908
|
-
const samples = touches[touch.identifier] ?? (touches[touch.identifier] = new CircularBuffer(HISTORY));
|
15909
|
-
samples.push([e.timeStamp, touch]);
|
15910
|
-
});
|
15911
|
-
}
|
15912
|
-
function endTouch(e) {
|
15913
|
-
Array.from(e.changedTouches).forEach(touch => {
|
15914
|
-
delete touches[touch.identifier];
|
15915
|
-
});
|
15916
|
-
}
|
15917
|
-
function getVelocity(id) {
|
15918
|
-
const samples = touches[id]?.values().reverse();
|
15919
|
-
if (!samples) {
|
15920
|
-
throw new Error(`No samples for touch id ${id}`);
|
15921
|
-
}
|
15922
|
-
const newest = samples[0];
|
15923
|
-
const x = [];
|
15924
|
-
const y = [];
|
15925
|
-
for (const val of samples) {
|
15926
|
-
if (newest[0] - val[0] > HORIZON) break;
|
15927
|
-
x.push({
|
15928
|
-
t: val[0],
|
15929
|
-
d: val[1].clientX
|
15930
|
-
});
|
15931
|
-
y.push({
|
15932
|
-
t: val[0],
|
15933
|
-
d: val[1].clientY
|
15934
|
-
});
|
15935
|
-
}
|
15936
|
-
return {
|
15937
|
-
x: calculateImpulseVelocity(x),
|
15938
|
-
y: calculateImpulseVelocity(y),
|
15939
|
-
get direction() {
|
15940
|
-
const {
|
15941
|
-
x,
|
15942
|
-
y
|
15943
|
-
} = this;
|
15944
|
-
const [absX, absY] = [Math.abs(x), Math.abs(y)];
|
15945
|
-
return absX > absY && x >= 0 ? 'right' : absX > absY && x <= 0 ? 'left' : absY > absX && y >= 0 ? 'down' : absY > absX && y <= 0 ? 'up' : oops$1();
|
15946
|
-
}
|
15947
|
-
};
|
15948
|
-
}
|
15949
|
-
return {
|
15950
|
-
addMovement,
|
15951
|
-
endTouch,
|
15952
|
-
getVelocity
|
15953
|
-
};
|
15665
|
+
function endTouch(e) {
|
15666
|
+
Array.from(e.changedTouches).forEach(touch => {
|
15667
|
+
delete touches[touch.identifier];
|
15668
|
+
});
|
15669
|
+
}
|
15670
|
+
function getVelocity(id) {
|
15671
|
+
const samples = touches[id]?.values().reverse();
|
15672
|
+
if (!samples) {
|
15673
|
+
throw new Error(`No samples for touch id ${id}`);
|
15674
|
+
}
|
15675
|
+
const newest = samples[0];
|
15676
|
+
const x = [];
|
15677
|
+
const y = [];
|
15678
|
+
for (const val of samples) {
|
15679
|
+
if (newest[0] - val[0] > HORIZON) break;
|
15680
|
+
x.push({
|
15681
|
+
t: val[0],
|
15682
|
+
d: val[1].clientX
|
15683
|
+
});
|
15684
|
+
y.push({
|
15685
|
+
t: val[0],
|
15686
|
+
d: val[1].clientY
|
15687
|
+
});
|
15688
|
+
}
|
15689
|
+
return {
|
15690
|
+
x: calculateImpulseVelocity(x),
|
15691
|
+
y: calculateImpulseVelocity(y),
|
15692
|
+
get direction() {
|
15693
|
+
const {
|
15694
|
+
x,
|
15695
|
+
y
|
15696
|
+
} = this;
|
15697
|
+
const [absX, absY] = [Math.abs(x), Math.abs(y)];
|
15698
|
+
return absX > absY && x >= 0 ? 'right' : absX > absY && x <= 0 ? 'left' : absY > absX && y >= 0 ? 'down' : absY > absX && y <= 0 ? 'up' : oops$1();
|
15699
|
+
}
|
15700
|
+
};
|
15701
|
+
}
|
15702
|
+
return {
|
15703
|
+
addMovement,
|
15704
|
+
endTouch,
|
15705
|
+
getVelocity
|
15706
|
+
};
|
15954
15707
|
}
|
15955
15708
|
function oops$1() {
|
15956
15709
|
throw new Error();
|
@@ -16126,6 +15879,7 @@
|
|
16126
15879
|
},
|
16127
15880
|
sticky: Boolean,
|
16128
15881
|
...makeBorderProps(),
|
15882
|
+
...makeComponentProps(),
|
16129
15883
|
...makeElevationProps(),
|
16130
15884
|
...makeLayoutItemProps(),
|
16131
15885
|
...makeRoundedProps(),
|
@@ -16277,8 +16031,8 @@
|
|
16277
16031
|
'v-navigation-drawer--temporary': isTemporary.value,
|
16278
16032
|
'v-navigation-drawer--active': isActive.value,
|
16279
16033
|
'v-navigation-drawer--sticky': isSticky.value
|
16280
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value],
|
16281
|
-
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value]
|
16034
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
16035
|
+
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value, props.style]
|
16282
16036
|
}, attrs), {
|
16283
16037
|
default: () => [hasImage && vue.createVNode("div", {
|
16284
16038
|
"key": "image",
|
@@ -16407,6 +16161,7 @@
|
|
16407
16161
|
},
|
16408
16162
|
showFirstLastPage: Boolean,
|
16409
16163
|
...makeBorderProps(),
|
16164
|
+
...makeComponentProps(),
|
16410
16165
|
...makeDensityProps(),
|
16411
16166
|
...makeElevationProps(),
|
16412
16167
|
...makeRoundedProps(),
|
@@ -16603,7 +16358,8 @@
|
|
16603
16358
|
}
|
16604
16359
|
useRender(() => vue.createVNode(props.tag, {
|
16605
16360
|
"ref": resizeRef,
|
16606
|
-
"class": ['v-pagination', themeClasses.value],
|
16361
|
+
"class": ['v-pagination', themeClasses.value, props.class],
|
16362
|
+
"style": props.style,
|
16607
16363
|
"role": "navigation",
|
16608
16364
|
"aria-label": t(props.ariaLabel),
|
16609
16365
|
"onKeydown": onKeydown,
|
@@ -16662,7 +16418,8 @@
|
|
16662
16418
|
scale: {
|
16663
16419
|
type: [Number, String],
|
16664
16420
|
default: 0.5
|
16665
|
-
}
|
16421
|
+
},
|
16422
|
+
...makeComponentProps()
|
16666
16423
|
},
|
16667
16424
|
setup(props, _ref) {
|
16668
16425
|
let {
|
@@ -16724,7 +16481,8 @@
|
|
16724
16481
|
useRender(() => vue.createVNode(VImg, {
|
16725
16482
|
"class": ['v-parallax', {
|
16726
16483
|
'v-parallax--active': isIntersecting.value
|
16727
|
-
}],
|
16484
|
+
}, props.class],
|
16485
|
+
"style": props.style,
|
16728
16486
|
"ref": root,
|
16729
16487
|
"cover": true,
|
16730
16488
|
"onLoadstart": onScroll,
|
@@ -16749,7 +16507,8 @@
|
|
16749
16507
|
slots
|
16750
16508
|
} = _ref;
|
16751
16509
|
useRender(() => vue.createVNode(VSelectionControl, vue.mergeProps(props, {
|
16752
|
-
"class":
|
16510
|
+
"class": ['v-radio', props.class],
|
16511
|
+
"style": props.style,
|
16753
16512
|
"type": "radio"
|
16754
16513
|
}), slots));
|
16755
16514
|
return {};
|
@@ -16803,7 +16562,8 @@
|
|
16803
16562
|
}
|
16804
16563
|
}) : props.label;
|
16805
16564
|
return vue.createVNode(VInput, vue.mergeProps({
|
16806
|
-
"class":
|
16565
|
+
"class": ['v-radio-group', props.class],
|
16566
|
+
"style": props.style
|
16807
16567
|
}, inputAttrs, inputProps, {
|
16808
16568
|
"modelValue": model.value,
|
16809
16569
|
"onUpdate:modelValue": $event => model.value = $event,
|
@@ -16941,7 +16701,8 @@
|
|
16941
16701
|
'v-slider--focused': isFocused.value,
|
16942
16702
|
'v-slider--pressed': mousePressed.value,
|
16943
16703
|
'v-slider--disabled': props.disabled
|
16944
|
-
}],
|
16704
|
+
}, props.class],
|
16705
|
+
"style": props.style,
|
16945
16706
|
"ref": inputRef
|
16946
16707
|
}, inputProps, {
|
16947
16708
|
"focused": isFocused.value
|
@@ -17084,6 +16845,7 @@
|
|
17084
16845
|
validator: v => ['top', 'bottom'].includes(v)
|
17085
16846
|
},
|
17086
16847
|
ripple: Boolean,
|
16848
|
+
...makeComponentProps(),
|
17087
16849
|
...makeDensityProps(),
|
17088
16850
|
...makeSizeProps(),
|
17089
16851
|
...makeTagProps(),
|
@@ -17201,7 +16963,8 @@
|
|
17201
16963
|
"class": ['v-rating', {
|
17202
16964
|
'v-rating--hover': props.hover,
|
17203
16965
|
'v-rating--readonly': props.readonly
|
17204
|
-
}, themeClasses.value]
|
16966
|
+
}, themeClasses.value, props.class],
|
16967
|
+
"style": props.style
|
17205
16968
|
}, {
|
17206
16969
|
default: () => [vue.createVNode(VRatingItem, {
|
17207
16970
|
"value": 0,
|
@@ -17301,6 +17064,7 @@
|
|
17301
17064
|
type: [Boolean, String],
|
17302
17065
|
validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
|
17303
17066
|
},
|
17067
|
+
...makeComponentProps(),
|
17304
17068
|
...makeTagProps(),
|
17305
17069
|
...makeGroupProps({
|
17306
17070
|
selectedClass: 'v-slide-group-item--active'
|
@@ -17464,7 +17228,7 @@
|
|
17464
17228
|
function focus(location) {
|
17465
17229
|
if (!contentRef.value) return;
|
17466
17230
|
if (!location) {
|
17467
|
-
const focusable =
|
17231
|
+
const focusable = focusableChildren(contentRef.value);
|
17468
17232
|
focusable[0]?.focus();
|
17469
17233
|
} else if (location === 'next') {
|
17470
17234
|
const el = contentRef.value.querySelector(':focus')?.nextElementSibling;
|
@@ -17541,7 +17305,8 @@
|
|
17541
17305
|
'v-slide-group--vertical': !isHorizontal.value,
|
17542
17306
|
'v-slide-group--has-affixes': hasAffixes.value,
|
17543
17307
|
'v-slide-group--is-overflowing': isOverflowing.value
|
17544
|
-
}],
|
17308
|
+
}, props.class],
|
17309
|
+
"style": props.style,
|
17545
17310
|
"tabindex": isFocused.value || group.selected.value.length ? -1 : 0,
|
17546
17311
|
"onFocus": onFocus
|
17547
17312
|
}, {
|
@@ -17691,7 +17456,8 @@
|
|
17691
17456
|
'v-snackbar--active': isActive.value,
|
17692
17457
|
'v-snackbar--multi-line': props.multiLine && !props.vertical,
|
17693
17458
|
'v-snackbar--vertical': props.vertical
|
17694
|
-
}, positionClasses.value]
|
17459
|
+
}, positionClasses.value, props.class],
|
17460
|
+
"style": props.style
|
17695
17461
|
}, overlayProps, {
|
17696
17462
|
"modelValue": isActive.value,
|
17697
17463
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
@@ -17791,7 +17557,8 @@
|
|
17791
17557
|
'v-switch--inset': props.inset
|
17792
17558
|
}, {
|
17793
17559
|
'v-switch--indeterminate': indeterminate.value
|
17794
|
-
}, loaderClasses.value]
|
17560
|
+
}, loaderClasses.value, props.class],
|
17561
|
+
"style": props.style
|
17795
17562
|
}, inputAttrs, inputProps, {
|
17796
17563
|
"id": id.value,
|
17797
17564
|
"focused": isFocused.value
|
@@ -17860,6 +17627,7 @@
|
|
17860
17627
|
color: String,
|
17861
17628
|
height: [Number, String],
|
17862
17629
|
window: Boolean,
|
17630
|
+
...makeComponentProps(),
|
17863
17631
|
...makeElevationProps(),
|
17864
17632
|
...makeLayoutItemProps(),
|
17865
17633
|
...makeRoundedProps(),
|
@@ -17901,8 +17669,8 @@
|
|
17901
17669
|
useRender(() => vue.createVNode(props.tag, {
|
17902
17670
|
"class": ['v-system-bar', {
|
17903
17671
|
'v-system-bar--window': props.window
|
17904
|
-
}, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value],
|
17905
|
-
"style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value]
|
17672
|
+
}, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
17673
|
+
"style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, props.style]
|
17906
17674
|
}, slots));
|
17907
17675
|
return {};
|
17908
17676
|
}
|
@@ -17975,10 +17743,10 @@
|
|
17975
17743
|
useRender(() => {
|
17976
17744
|
const [btnProps] = VBtn.filterProps(props);
|
17977
17745
|
return vue.createVNode(VBtn, vue.mergeProps({
|
17978
|
-
"_as": "VTab",
|
17979
17746
|
"symbol": VTabsSymbol,
|
17980
17747
|
"ref": rootEl,
|
17981
|
-
"class": ['v-tab'],
|
17748
|
+
"class": ['v-tab', props.class],
|
17749
|
+
"style": props.style,
|
17982
17750
|
"tabindex": isSelected.value ? 0 : -1,
|
17983
17751
|
"role": "tab",
|
17984
17752
|
"aria-selected": String(isSelected.value),
|
@@ -18073,10 +17841,10 @@
|
|
18073
17841
|
'v-tabs--fixed-tabs': props.fixedTabs,
|
18074
17842
|
'v-tabs--grow': props.grow,
|
18075
17843
|
'v-tabs--stacked': props.stacked
|
18076
|
-
}, densityClasses.value, backgroundColorClasses.value],
|
17844
|
+
}, densityClasses.value, backgroundColorClasses.value, props.class],
|
18077
17845
|
"style": [{
|
18078
17846
|
'--v-tabs-height': convertToUnit(props.height)
|
18079
|
-
}, backgroundColorStyles.value],
|
17847
|
+
}, backgroundColorStyles.value, props.style],
|
18080
17848
|
"role": "tablist",
|
18081
17849
|
"symbol": VTabsSymbol
|
18082
17850
|
}), {
|
@@ -18096,6 +17864,7 @@
|
|
18096
17864
|
fixedFooter: Boolean,
|
18097
17865
|
height: [Number, String],
|
18098
17866
|
hover: Boolean,
|
17867
|
+
...makeComponentProps(),
|
18099
17868
|
...makeDensityProps(),
|
18100
17869
|
...makeTagProps(),
|
18101
17870
|
...makeThemeProps()
|
@@ -18118,7 +17887,8 @@
|
|
18118
17887
|
'v-table--has-top': !!slots.top,
|
18119
17888
|
'v-table--has-bottom': !!slots.bottom,
|
18120
17889
|
'v-table--hover': props.hover
|
18121
|
-
}, themeClasses.value, densityClasses.value]
|
17890
|
+
}, themeClasses.value, densityClasses.value, props.class],
|
17891
|
+
"style": props.style
|
18122
17892
|
}, {
|
18123
17893
|
default: () => [slots.top?.(), slots.default ? vue.createVNode("div", {
|
18124
17894
|
"class": "v-table__wrapper",
|
@@ -18283,7 +18053,8 @@
|
|
18283
18053
|
'v-textarea--auto-grow': props.autoGrow,
|
18284
18054
|
'v-textarea--no-resize': props.noResize || props.autoGrow,
|
18285
18055
|
'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant)
|
18286
|
-
}]
|
18056
|
+
}, props.class],
|
18057
|
+
"style": props.style
|
18287
18058
|
}, rootAttrs, inputProps, {
|
18288
18059
|
"focused": isFocused.value
|
18289
18060
|
}), {
|
@@ -18367,6 +18138,7 @@
|
|
18367
18138
|
name: 'VThemeProvider',
|
18368
18139
|
props: {
|
18369
18140
|
withBackground: Boolean,
|
18141
|
+
...makeComponentProps(),
|
18370
18142
|
...makeThemeProps(),
|
18371
18143
|
...makeTagProps()
|
18372
18144
|
},
|
@@ -18380,7 +18152,8 @@
|
|
18380
18152
|
return () => {
|
18381
18153
|
if (!props.withBackground) return slots.default?.();
|
18382
18154
|
return vue.createVNode(props.tag, {
|
18383
|
-
"class": ['v-theme-provider', themeClasses.value]
|
18155
|
+
"class": ['v-theme-provider', themeClasses.value, props.class],
|
18156
|
+
"style": props.style
|
18384
18157
|
}, {
|
18385
18158
|
default: () => [slots.default?.()]
|
18386
18159
|
});
|
@@ -18425,6 +18198,7 @@
|
|
18425
18198
|
type: String,
|
18426
18199
|
validator: v => ['start', 'end', 'both'].includes(v)
|
18427
18200
|
},
|
18201
|
+
...makeComponentProps(),
|
18428
18202
|
...makeDensityProps(),
|
18429
18203
|
...makeTagProps(),
|
18430
18204
|
...makeThemeProps()
|
@@ -18468,10 +18242,10 @@
|
|
18468
18242
|
useRender(() => vue.createVNode(props.tag, {
|
18469
18243
|
"class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {
|
18470
18244
|
'v-timeline--inset-line': !!props.lineInset
|
18471
|
-
}, themeClasses.value, densityClasses.value, sideClasses.value],
|
18472
|
-
"style": {
|
18245
|
+
}, themeClasses.value, densityClasses.value, sideClasses.value, props.class],
|
18246
|
+
"style": [{
|
18473
18247
|
'--v-timeline-line-thickness': convertToUnit(props.lineThickness)
|
18474
|
-
}
|
18248
|
+
}, props.style]
|
18475
18249
|
}, slots));
|
18476
18250
|
return {};
|
18477
18251
|
}
|
@@ -18486,6 +18260,7 @@
|
|
18486
18260
|
icon: IconValue,
|
18487
18261
|
iconColor: String,
|
18488
18262
|
lineColor: String,
|
18263
|
+
...makeComponentProps(),
|
18489
18264
|
...makeRoundedProps(),
|
18490
18265
|
...makeSizeProps(),
|
18491
18266
|
...makeElevationProps()
|
@@ -18515,7 +18290,8 @@
|
|
18515
18290
|
useRender(() => vue.createVNode("div", {
|
18516
18291
|
"class": ['v-timeline-divider', {
|
18517
18292
|
'v-timeline-divider--fill-dot': props.fillDot
|
18518
|
-
}]
|
18293
|
+
}, props.class],
|
18294
|
+
"style": props.style
|
18519
18295
|
}, [vue.createVNode("div", {
|
18520
18296
|
"class": ['v-timeline-divider__before', lineColorClasses.value],
|
18521
18297
|
"style": lineColorStyles.value
|
@@ -18565,11 +18341,12 @@
|
|
18565
18341
|
icon: IconValue,
|
18566
18342
|
iconColor: String,
|
18567
18343
|
lineInset: [Number, String],
|
18568
|
-
...
|
18344
|
+
...makeComponentProps(),
|
18345
|
+
...makeDimensionProps(),
|
18569
18346
|
...makeElevationProps(),
|
18347
|
+
...makeRoundedProps(),
|
18570
18348
|
...makeSizeProps(),
|
18571
|
-
...makeTagProps()
|
18572
|
-
...makeDimensionProps()
|
18349
|
+
...makeTagProps()
|
18573
18350
|
},
|
18574
18351
|
setup(props, _ref) {
|
18575
18352
|
let {
|
@@ -18589,11 +18366,11 @@
|
|
18589
18366
|
useRender(() => vue.createVNode("div", {
|
18590
18367
|
"class": ['v-timeline-item', {
|
18591
18368
|
'v-timeline-item--fill-dot': props.fillDot
|
18592
|
-
}],
|
18593
|
-
"style": {
|
18369
|
+
}, props.class],
|
18370
|
+
"style": [{
|
18594
18371
|
'--v-timeline-dot-size': convertToUnit(dotSize.value),
|
18595
18372
|
'--v-timeline-line-inset': props.lineInset ? `calc(var(--v-timeline-dot-size) / 2 + ${convertToUnit(props.lineInset)})` : convertToUnit(0)
|
18596
|
-
}
|
18373
|
+
}, props.style]
|
18597
18374
|
}, [vue.createVNode("div", {
|
18598
18375
|
"class": "v-timeline-item__body",
|
18599
18376
|
"style": dimensionStyles.value
|
@@ -18669,7 +18446,8 @@
|
|
18669
18446
|
const [overlayProps] = VOverlay.filterProps(props);
|
18670
18447
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
18671
18448
|
"ref": overlay,
|
18672
|
-
"class": ['v-tooltip'],
|
18449
|
+
"class": ['v-tooltip', props.class],
|
18450
|
+
"style": props.style,
|
18673
18451
|
"id": id.value
|
18674
18452
|
}, overlayProps, {
|
18675
18453
|
"modelValue": isActive.value,
|
@@ -18717,7 +18495,8 @@
|
|
18717
18495
|
const VVirtualScrollItem = genericComponent()({
|
18718
18496
|
name: 'VVirtualScrollItem',
|
18719
18497
|
props: {
|
18720
|
-
dynamicHeight: Boolean
|
18498
|
+
dynamicHeight: Boolean,
|
18499
|
+
...makeComponentProps()
|
18721
18500
|
},
|
18722
18501
|
emits: {
|
18723
18502
|
'update:height': height => true
|
@@ -18744,7 +18523,8 @@
|
|
18744
18523
|
vue.onUpdated(updateHeight);
|
18745
18524
|
useRender(() => vue.createVNode("div", {
|
18746
18525
|
"ref": props.dynamicHeight ? resizeRef : undefined,
|
18747
|
-
"class":
|
18526
|
+
"class": ['v-virtual-scroll__item', props.class],
|
18527
|
+
"style": props.style
|
18748
18528
|
}, [slots.default?.()]));
|
18749
18529
|
}
|
18750
18530
|
});
|
@@ -18761,7 +18541,7 @@
|
|
18761
18541
|
default: () => []
|
18762
18542
|
},
|
18763
18543
|
itemHeight: [Number, String],
|
18764
|
-
|
18544
|
+
...makeComponentProps(),
|
18765
18545
|
...makeDimensionProps()
|
18766
18546
|
},
|
18767
18547
|
setup(props, _ref) {
|
@@ -18788,7 +18568,7 @@
|
|
18788
18568
|
const sizeMap = new Map();
|
18789
18569
|
let sizes = createRange(props.items.length).map(() => itemHeight.value);
|
18790
18570
|
const visibleItems = vue.computed(() => {
|
18791
|
-
return
|
18571
|
+
return Math.max(12, Math.ceil((contentRect.value?.height ?? display.height.value) / itemHeight.value * 1.7 + 1));
|
18792
18572
|
});
|
18793
18573
|
function handleItemResize(index, height) {
|
18794
18574
|
itemHeight.value = Math.max(itemHeight.value, height);
|
@@ -18799,20 +18579,13 @@
|
|
18799
18579
|
return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0);
|
18800
18580
|
}
|
18801
18581
|
function calculateMidPointIndex(scrollTop) {
|
18802
|
-
|
18803
|
-
let
|
18804
|
-
|
18805
|
-
|
18806
|
-
|
18807
|
-
if (middleOffset === scrollTop) {
|
18808
|
-
return middle;
|
18809
|
-
} else if (middleOffset < scrollTop) {
|
18810
|
-
start = middle + 1;
|
18811
|
-
} else if (middleOffset > scrollTop) {
|
18812
|
-
end = middle - 1;
|
18813
|
-
}
|
18582
|
+
const end = props.items.length;
|
18583
|
+
let middle = 0;
|
18584
|
+
let middleOffset = 0;
|
18585
|
+
while (middleOffset < scrollTop && middle < end) {
|
18586
|
+
middleOffset += sizes[middle++] || itemHeight.value;
|
18814
18587
|
}
|
18815
|
-
return
|
18588
|
+
return middle - 1;
|
18816
18589
|
}
|
18817
18590
|
let lastScrollTop = 0;
|
18818
18591
|
function handleScroll() {
|
@@ -18834,8 +18607,12 @@
|
|
18834
18607
|
const offset = calculateOffset(index);
|
18835
18608
|
rootEl.value.scrollTop = offset;
|
18836
18609
|
}
|
18610
|
+
const items = vue.computed(() => props.items.map((item, index) => ({
|
18611
|
+
raw: item,
|
18612
|
+
index
|
18613
|
+
})));
|
18837
18614
|
const last = vue.computed(() => Math.min(props.items.length, first.value + visibleItems.value));
|
18838
|
-
const computedItems = vue.computed(() =>
|
18615
|
+
const computedItems = vue.computed(() => items.value.slice(first.value, last.value));
|
18839
18616
|
const paddingTop = vue.computed(() => calculateOffset(first.value));
|
18840
18617
|
const paddingBottom = vue.computed(() => calculateOffset(props.items.length) - calculateOffset(last.value));
|
18841
18618
|
const {
|
@@ -18860,23 +18637,23 @@
|
|
18860
18637
|
});
|
18861
18638
|
useRender(() => vue.createVNode("div", {
|
18862
18639
|
"ref": rootEl,
|
18863
|
-
"class":
|
18640
|
+
"class": ['v-virtual-scroll', props.class],
|
18864
18641
|
"onScroll": handleScroll,
|
18865
|
-
"style": dimensionStyles.value
|
18642
|
+
"style": [dimensionStyles.value, props.style]
|
18866
18643
|
}, [vue.createVNode("div", {
|
18867
18644
|
"class": "v-virtual-scroll__container",
|
18868
18645
|
"style": {
|
18869
18646
|
paddingTop: convertToUnit(paddingTop.value),
|
18870
18647
|
paddingBottom: convertToUnit(paddingBottom.value)
|
18871
18648
|
}
|
18872
|
-
}, [computedItems.value.map(
|
18873
|
-
"key": index,
|
18649
|
+
}, [computedItems.value.map(item => vue.createVNode(VVirtualScrollItem, {
|
18650
|
+
"key": item.index,
|
18874
18651
|
"dynamicHeight": !props.itemHeight,
|
18875
|
-
"onUpdate:height": height => handleItemResize(index
|
18652
|
+
"onUpdate:height": height => handleItemResize(item.index, height)
|
18876
18653
|
}, {
|
18877
18654
|
default: () => [slots.default?.({
|
18878
|
-
item,
|
18879
|
-
index: index
|
18655
|
+
item: item.raw,
|
18656
|
+
index: item.index
|
18880
18657
|
})]
|
18881
18658
|
}))])]));
|
18882
18659
|
return {
|
@@ -19310,6 +19087,17 @@
|
|
19310
19087
|
backgroundColorClasses,
|
19311
19088
|
backgroundColorStyles
|
19312
19089
|
} = useBackgroundColor(props, 'color');
|
19090
|
+
const slotProps = vue.computed(() => ({
|
19091
|
+
headers: headers.value,
|
19092
|
+
columns: columns.value,
|
19093
|
+
toggleSort,
|
19094
|
+
sortBy: sortBy.value,
|
19095
|
+
someSelected: someSelected.value,
|
19096
|
+
allSelected: allSelected.value,
|
19097
|
+
selectAll,
|
19098
|
+
getSortIcon,
|
19099
|
+
getFixedStyles
|
19100
|
+
}));
|
19313
19101
|
const VDataTableHeaderCell = _ref2 => {
|
19314
19102
|
let {
|
19315
19103
|
column,
|
@@ -19337,14 +19125,14 @@
|
|
19337
19125
|
"noPadding": noPadding
|
19338
19126
|
}, {
|
19339
19127
|
default: () => {
|
19340
|
-
const
|
19341
|
-
const
|
19128
|
+
const columnSlotName = `column.${column.key}`;
|
19129
|
+
const columnSlotProps = {
|
19342
19130
|
column,
|
19343
19131
|
selectAll
|
19344
19132
|
};
|
19345
|
-
if (slots[
|
19133
|
+
if (slots[columnSlotName]) return slots[columnSlotName](columnSlotProps);
|
19346
19134
|
if (column.key === 'data-table-select') {
|
19347
|
-
return slots['column.data-table-select']?.(
|
19135
|
+
return slots['column.data-table-select']?.(columnSlotProps) ?? vue.createVNode(VCheckboxBtn, {
|
19348
19136
|
"modelValue": allSelected.value,
|
19349
19137
|
"indeterminate": someSelected.value && !allSelected.value,
|
19350
19138
|
"onUpdate:modelValue": selectAll
|
@@ -19364,22 +19152,24 @@
|
|
19364
19152
|
}
|
19365
19153
|
});
|
19366
19154
|
};
|
19367
|
-
useRender(() =>
|
19368
|
-
"
|
19369
|
-
|
19370
|
-
|
19371
|
-
|
19372
|
-
"
|
19373
|
-
|
19374
|
-
"
|
19375
|
-
|
19376
|
-
|
19377
|
-
|
19378
|
-
|
19379
|
-
|
19380
|
-
|
19381
|
-
|
19382
|
-
|
19155
|
+
useRender(() => {
|
19156
|
+
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, {
|
19157
|
+
"column": column,
|
19158
|
+
"x": x,
|
19159
|
+
"y": y
|
19160
|
+
}, null))])), props.loading && vue.createVNode("tr", {
|
19161
|
+
"class": "v-data-table__progress"
|
19162
|
+
}, [vue.createVNode("th", {
|
19163
|
+
"colspan": columns.value.length
|
19164
|
+
}, [vue.createVNode(LoaderSlot, {
|
19165
|
+
"name": "v-data-table-headers",
|
19166
|
+
"active": true,
|
19167
|
+
"color": typeof props.loading === 'boolean' ? undefined : props.loading,
|
19168
|
+
"indeterminate": true
|
19169
|
+
}, {
|
19170
|
+
default: slots.loader
|
19171
|
+
})])])]);
|
19172
|
+
});
|
19383
19173
|
}
|
19384
19174
|
});
|
19385
19175
|
|
@@ -19678,9 +19468,7 @@
|
|
19678
19468
|
'v-data-table__tr--clickable': !!props.onClick
|
19679
19469
|
}],
|
19680
19470
|
"onClick": props.onClick
|
19681
|
-
}, [
|
19682
|
-
"key": "no-data"
|
19683
|
-
}, slots), props.item && columns.value.map((column, i) => vue.createVNode(VDataTableColumn, {
|
19471
|
+
}, [props.item && columns.value.map((column, i) => vue.createVNode(VDataTableColumn, {
|
19684
19472
|
"align": column.align,
|
19685
19473
|
"fixed": column.fixed,
|
19686
19474
|
"fixedOffset": column.fixedOffset,
|
@@ -19770,13 +19558,13 @@
|
|
19770
19558
|
useRender(() => {
|
19771
19559
|
if (props.loading && slots.loading) {
|
19772
19560
|
return vue.createVNode("tr", {
|
19773
|
-
"class": "v-data-table-rows-
|
19561
|
+
"class": "v-data-table-rows-loading",
|
19774
19562
|
"key": "loading"
|
19775
19563
|
}, [vue.createVNode("td", {
|
19776
19564
|
"colspan": columns.value.length
|
19777
19565
|
}, [slots.loading()])]);
|
19778
19566
|
}
|
19779
|
-
if (!props.loading && !props.items.length && !props.hideNoData
|
19567
|
+
if (!props.loading && !props.items.length && !props.hideNoData) {
|
19780
19568
|
return vue.createVNode("tr", {
|
19781
19569
|
"class": "v-data-table-rows-no-data",
|
19782
19570
|
"key": "no-data"
|
@@ -20255,7 +20043,7 @@
|
|
20255
20043
|
top: slots.top,
|
20256
20044
|
default: slots.default ?? (() => vue.createVNode(vue.Fragment, null, [slots.colgroup?.({
|
20257
20045
|
columns
|
20258
|
-
}), vue.createVNode("thead", null, [
|
20046
|
+
}), vue.createVNode("thead", null, [vue.createVNode(VDataTableHeaders, {
|
20259
20047
|
"sticky": props.fixedHeader,
|
20260
20048
|
"multiSort": props.multiSort
|
20261
20049
|
}, slots)]), slots.thead?.(), vue.createVNode("tbody", null, [slots.body ? slots.body() : vue.createVNode(VDataTableRows, {
|
@@ -20621,7 +20409,7 @@
|
|
20621
20409
|
}), vue.createVNode("thead", {
|
20622
20410
|
"class": "v-data-table__thead",
|
20623
20411
|
"role": "rowgroup"
|
20624
|
-
}, [
|
20412
|
+
}, [vue.createVNode(VDataTableHeaders, {
|
20625
20413
|
"sticky": props.fixedHeader,
|
20626
20414
|
"loading": props.loading,
|
20627
20415
|
"color": props.color
|
@@ -20641,6 +20429,211 @@
|
|
20641
20429
|
|
20642
20430
|
// Types
|
20643
20431
|
|
20432
|
+
const VInfiniteScrollIntersect = defineComponent({
|
20433
|
+
name: 'VInfiniteScrollIntersect',
|
20434
|
+
props: {
|
20435
|
+
side: {
|
20436
|
+
type: String,
|
20437
|
+
required: true
|
20438
|
+
},
|
20439
|
+
rootRef: null,
|
20440
|
+
rootMargin: String
|
20441
|
+
},
|
20442
|
+
emits: {
|
20443
|
+
intersect: side => true
|
20444
|
+
},
|
20445
|
+
setup(props, _ref) {
|
20446
|
+
let {
|
20447
|
+
emit
|
20448
|
+
} = _ref;
|
20449
|
+
const {
|
20450
|
+
intersectionRef,
|
20451
|
+
isIntersecting
|
20452
|
+
} = useIntersectionObserver(entries => {}, props.rootMargin ? {
|
20453
|
+
root: props.rootRef,
|
20454
|
+
rootMargin: props.rootMargin
|
20455
|
+
} : undefined);
|
20456
|
+
vue.watch(isIntersecting, async val => {
|
20457
|
+
if (val) emit('intersect', props.side);
|
20458
|
+
});
|
20459
|
+
useRender(() => vue.createVNode("div", {
|
20460
|
+
"class": "v-infinite-scroll-intersect",
|
20461
|
+
"ref": intersectionRef
|
20462
|
+
}, [vue.createTextVNode("\xA0")]));
|
20463
|
+
return {};
|
20464
|
+
}
|
20465
|
+
});
|
20466
|
+
const VInfiniteScroll = genericComponent()({
|
20467
|
+
name: 'VInfiniteScroll',
|
20468
|
+
props: {
|
20469
|
+
color: String,
|
20470
|
+
direction: {
|
20471
|
+
type: String,
|
20472
|
+
default: 'vertical',
|
20473
|
+
validator: v => ['vertical', 'horizontal'].includes(v)
|
20474
|
+
},
|
20475
|
+
side: {
|
20476
|
+
type: String,
|
20477
|
+
default: 'end',
|
20478
|
+
validator: v => ['start', 'end', 'both'].includes(v)
|
20479
|
+
},
|
20480
|
+
mode: {
|
20481
|
+
type: String,
|
20482
|
+
default: 'intersect',
|
20483
|
+
validator: v => ['intersect', 'manual'].includes(v)
|
20484
|
+
},
|
20485
|
+
margin: [Number, String],
|
20486
|
+
loadMoreText: {
|
20487
|
+
type: String,
|
20488
|
+
default: '$vuetify.infiniteScroll.loadMore'
|
20489
|
+
},
|
20490
|
+
emptyText: {
|
20491
|
+
type: String,
|
20492
|
+
default: '$vuetify.infiniteScroll.empty'
|
20493
|
+
},
|
20494
|
+
...makeDimensionProps()
|
20495
|
+
},
|
20496
|
+
emits: {
|
20497
|
+
load: options => true
|
20498
|
+
},
|
20499
|
+
setup(props, _ref2) {
|
20500
|
+
let {
|
20501
|
+
slots,
|
20502
|
+
emit
|
20503
|
+
} = _ref2;
|
20504
|
+
const rootEl = vue.ref();
|
20505
|
+
const startStatus = vue.ref('ok');
|
20506
|
+
const endStatus = vue.ref('ok');
|
20507
|
+
const margin = vue.computed(() => convertToUnit(props.margin));
|
20508
|
+
function setScrollAmount(amount) {
|
20509
|
+
if (!rootEl.value) return;
|
20510
|
+
const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';
|
20511
|
+
rootEl.value[property] = amount;
|
20512
|
+
}
|
20513
|
+
function getScrollAmount() {
|
20514
|
+
if (!rootEl.value) return 0;
|
20515
|
+
const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';
|
20516
|
+
return rootEl.value[property];
|
20517
|
+
}
|
20518
|
+
function getScrollSize() {
|
20519
|
+
if (!rootEl.value) return 0;
|
20520
|
+
const property = props.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth';
|
20521
|
+
return rootEl.value[property];
|
20522
|
+
}
|
20523
|
+
function getContainerSize() {
|
20524
|
+
if (!rootEl.value) return 0;
|
20525
|
+
const property = props.direction === 'vertical' ? 'clientHeight' : 'clientWidth';
|
20526
|
+
return rootEl.value[property];
|
20527
|
+
}
|
20528
|
+
vue.onMounted(() => {
|
20529
|
+
if (!rootEl.value) return;
|
20530
|
+
if (props.side === 'start') {
|
20531
|
+
setScrollAmount(getScrollSize());
|
20532
|
+
} else if (props.side === 'both') {
|
20533
|
+
setScrollAmount(getScrollSize() / 2 - getContainerSize() / 2);
|
20534
|
+
}
|
20535
|
+
});
|
20536
|
+
function setStatus(side, status) {
|
20537
|
+
if (side === 'start') {
|
20538
|
+
startStatus.value = status;
|
20539
|
+
} else if (side === 'end') {
|
20540
|
+
endStatus.value = status;
|
20541
|
+
}
|
20542
|
+
}
|
20543
|
+
function getStatus(side) {
|
20544
|
+
return side === 'start' ? startStatus.value : endStatus.value;
|
20545
|
+
}
|
20546
|
+
let previousScrollSize = 0;
|
20547
|
+
function handleIntersect(side) {
|
20548
|
+
const status = getStatus(side);
|
20549
|
+
if (!rootEl.value || status === 'loading') return;
|
20550
|
+
previousScrollSize = getScrollSize();
|
20551
|
+
setStatus(side, 'loading');
|
20552
|
+
function done(status) {
|
20553
|
+
setStatus(side, status);
|
20554
|
+
vue.nextTick(() => {
|
20555
|
+
if (status === 'ok' && side === 'start') {
|
20556
|
+
setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount());
|
20557
|
+
}
|
20558
|
+
});
|
20559
|
+
}
|
20560
|
+
emit('load', {
|
20561
|
+
side,
|
20562
|
+
done
|
20563
|
+
});
|
20564
|
+
}
|
20565
|
+
const {
|
20566
|
+
t
|
20567
|
+
} = useLocale();
|
20568
|
+
function renderSide(side, status) {
|
20569
|
+
if (props.side !== side && props.side !== 'both') return;
|
20570
|
+
const onClick = () => handleIntersect(side);
|
20571
|
+
const slotProps = {
|
20572
|
+
side,
|
20573
|
+
props: {
|
20574
|
+
onClick,
|
20575
|
+
color: props.color
|
20576
|
+
}
|
20577
|
+
};
|
20578
|
+
if (status === 'error') return slots.error?.(slotProps);
|
20579
|
+
if (status === 'empty') return slots.empty?.(slotProps) ?? vue.createVNode("div", null, [t(props.emptyText)]);
|
20580
|
+
if (props.mode === 'manual') {
|
20581
|
+
if (status === 'loading') {
|
20582
|
+
return slots.loading?.(slotProps) ?? vue.createVNode(VProgressCircular, {
|
20583
|
+
"indeterminate": true,
|
20584
|
+
"color": props.color
|
20585
|
+
}, null);
|
20586
|
+
}
|
20587
|
+
return slots['load-more']?.(slotProps) ?? vue.createVNode(VBtn, {
|
20588
|
+
"variant": "outlined",
|
20589
|
+
"color": props.color,
|
20590
|
+
"onClick": onClick
|
20591
|
+
}, {
|
20592
|
+
default: () => [t(props.loadMoreText)]
|
20593
|
+
});
|
20594
|
+
}
|
20595
|
+
return slots.loading?.(slotProps) ?? vue.createVNode(VProgressCircular, {
|
20596
|
+
"indeterminate": true,
|
20597
|
+
"color": props.color
|
20598
|
+
}, null);
|
20599
|
+
}
|
20600
|
+
const {
|
20601
|
+
dimensionStyles
|
20602
|
+
} = useDimension(props);
|
20603
|
+
useRender(() => {
|
20604
|
+
const hasStartIntersect = props.side === 'start' || props.side === 'both';
|
20605
|
+
const hasEndIntersect = props.side === 'end' || props.side === 'both';
|
20606
|
+
const intersectMode = props.mode === 'intersect';
|
20607
|
+
return vue.createVNode("div", {
|
20608
|
+
"ref": rootEl,
|
20609
|
+
"class": ['v-infinite-scroll', `v-infinite-scroll--${props.direction}`, {
|
20610
|
+
'v-infinite-scroll--start': hasStartIntersect,
|
20611
|
+
'v-infinite-scroll--end': hasEndIntersect
|
20612
|
+
}],
|
20613
|
+
"style": dimensionStyles.value
|
20614
|
+
}, [vue.createVNode("div", {
|
20615
|
+
"class": "v-infinite-scroll__side"
|
20616
|
+
}, [renderSide('start', startStatus.value)]), rootEl.value && hasStartIntersect && intersectMode && vue.createVNode(VInfiniteScrollIntersect, {
|
20617
|
+
"key": "start",
|
20618
|
+
"side": "start",
|
20619
|
+
"onIntersect": handleIntersect,
|
20620
|
+
"rootRef": rootEl.value,
|
20621
|
+
"rootMargin": margin.value
|
20622
|
+
}, null), slots.default?.(), rootEl.value && hasEndIntersect && intersectMode && vue.createVNode(VInfiniteScrollIntersect, {
|
20623
|
+
"key": "end",
|
20624
|
+
"side": "end",
|
20625
|
+
"onIntersect": handleIntersect,
|
20626
|
+
"rootRef": rootEl.value,
|
20627
|
+
"rootMargin": margin.value
|
20628
|
+
}, null), vue.createVNode("div", {
|
20629
|
+
"class": "v-infinite-scroll__side"
|
20630
|
+
}, [renderSide('end', endStatus.value)])]);
|
20631
|
+
});
|
20632
|
+
}
|
20633
|
+
});
|
20634
|
+
|
20635
|
+
// Types
|
20636
|
+
|
20644
20637
|
const rootTypes = {
|
20645
20638
|
actions: 'button@2',
|
20646
20639
|
article: 'heading, paragraph',
|
@@ -20840,6 +20833,7 @@
|
|
20840
20833
|
VHover: VHover,
|
20841
20834
|
VIcon: VIcon,
|
20842
20835
|
VImg: VImg,
|
20836
|
+
VInfiniteScroll: VInfiniteScroll,
|
20843
20837
|
VInput: VInput,
|
20844
20838
|
VItem: VItem,
|
20845
20839
|
VItemGroup: VItemGroup,
|
@@ -20917,130 +20911,542 @@
|
|
20917
20911
|
|
20918
20912
|
// Types
|
20919
20913
|
|
20920
|
-
function mounted$2(el, binding) {
|
20921
|
-
const modifiers = binding.modifiers || {};
|
20922
|
-
const value = binding.value;
|
20923
|
-
const {
|
20924
|
-
once,
|
20925
|
-
immediate,
|
20926
|
-
...modifierKeys
|
20927
|
-
} = modifiers;
|
20928
|
-
const defaultValue = !Object.keys(modifierKeys).length;
|
20929
|
-
const {
|
20930
|
-
handler,
|
20931
|
-
options
|
20932
|
-
} = typeof value === 'object' ? value : {
|
20933
|
-
handler: value,
|
20934
|
-
options: {
|
20935
|
-
attributes: modifierKeys?.attr ?? defaultValue,
|
20936
|
-
characterData: modifierKeys?.char ?? defaultValue,
|
20937
|
-
childList: modifierKeys?.child ?? defaultValue,
|
20938
|
-
subtree: modifierKeys?.sub ?? defaultValue
|
20914
|
+
function mounted$2(el, binding) {
|
20915
|
+
const modifiers = binding.modifiers || {};
|
20916
|
+
const value = binding.value;
|
20917
|
+
const {
|
20918
|
+
once,
|
20919
|
+
immediate,
|
20920
|
+
...modifierKeys
|
20921
|
+
} = modifiers;
|
20922
|
+
const defaultValue = !Object.keys(modifierKeys).length;
|
20923
|
+
const {
|
20924
|
+
handler,
|
20925
|
+
options
|
20926
|
+
} = typeof value === 'object' ? value : {
|
20927
|
+
handler: value,
|
20928
|
+
options: {
|
20929
|
+
attributes: modifierKeys?.attr ?? defaultValue,
|
20930
|
+
characterData: modifierKeys?.char ?? defaultValue,
|
20931
|
+
childList: modifierKeys?.child ?? defaultValue,
|
20932
|
+
subtree: modifierKeys?.sub ?? defaultValue
|
20933
|
+
}
|
20934
|
+
};
|
20935
|
+
const observer = new MutationObserver(function () {
|
20936
|
+
let mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
20937
|
+
let observer = arguments.length > 1 ? arguments[1] : undefined;
|
20938
|
+
handler?.(mutations, observer);
|
20939
|
+
if (once) unmounted$2(el, binding);
|
20940
|
+
});
|
20941
|
+
if (immediate) handler?.([], observer);
|
20942
|
+
el._mutate = Object(el._mutate);
|
20943
|
+
el._mutate[binding.instance.$.uid] = {
|
20944
|
+
observer
|
20945
|
+
};
|
20946
|
+
observer.observe(el, options);
|
20947
|
+
}
|
20948
|
+
function unmounted$2(el, binding) {
|
20949
|
+
if (!el._mutate?.[binding.instance.$.uid]) return;
|
20950
|
+
el._mutate[binding.instance.$.uid].observer.disconnect();
|
20951
|
+
delete el._mutate[binding.instance.$.uid];
|
20952
|
+
}
|
20953
|
+
const Mutate = {
|
20954
|
+
mounted: mounted$2,
|
20955
|
+
unmounted: unmounted$2
|
20956
|
+
};
|
20957
|
+
|
20958
|
+
function mounted$1(el, binding) {
|
20959
|
+
const handler = binding.value;
|
20960
|
+
const options = {
|
20961
|
+
passive: !binding.modifiers?.active
|
20962
|
+
};
|
20963
|
+
window.addEventListener('resize', handler, options);
|
20964
|
+
el._onResize = Object(el._onResize);
|
20965
|
+
el._onResize[binding.instance.$.uid] = {
|
20966
|
+
handler,
|
20967
|
+
options
|
20968
|
+
};
|
20969
|
+
if (!binding.modifiers?.quiet) {
|
20970
|
+
handler();
|
20971
|
+
}
|
20972
|
+
}
|
20973
|
+
function unmounted$1(el, binding) {
|
20974
|
+
if (!el._onResize?.[binding.instance.$.uid]) return;
|
20975
|
+
const {
|
20976
|
+
handler,
|
20977
|
+
options
|
20978
|
+
} = el._onResize[binding.instance.$.uid];
|
20979
|
+
window.removeEventListener('resize', handler, options);
|
20980
|
+
delete el._onResize[binding.instance.$.uid];
|
20981
|
+
}
|
20982
|
+
const Resize = {
|
20983
|
+
mounted: mounted$1,
|
20984
|
+
unmounted: unmounted$1
|
20985
|
+
};
|
20986
|
+
|
20987
|
+
function mounted(el, binding) {
|
20988
|
+
const {
|
20989
|
+
self = false
|
20990
|
+
} = binding.modifiers ?? {};
|
20991
|
+
const value = binding.value;
|
20992
|
+
const options = typeof value === 'object' && value.options || {
|
20993
|
+
passive: true
|
20994
|
+
};
|
20995
|
+
const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler;
|
20996
|
+
const target = self ? el : binding.arg ? document.querySelector(binding.arg) : window;
|
20997
|
+
if (!target) return;
|
20998
|
+
target.addEventListener('scroll', handler, options);
|
20999
|
+
el._onScroll = Object(el._onScroll);
|
21000
|
+
el._onScroll[binding.instance.$.uid] = {
|
21001
|
+
handler,
|
21002
|
+
options,
|
21003
|
+
// Don't reference self
|
21004
|
+
target: self ? undefined : target
|
21005
|
+
};
|
21006
|
+
}
|
21007
|
+
function unmounted(el, binding) {
|
21008
|
+
if (!el._onScroll?.[binding.instance.$.uid]) return;
|
21009
|
+
const {
|
21010
|
+
handler,
|
21011
|
+
options,
|
21012
|
+
target = el
|
21013
|
+
} = el._onScroll[binding.instance.$.uid];
|
21014
|
+
target.removeEventListener('scroll', handler, options);
|
21015
|
+
delete el._onScroll[binding.instance.$.uid];
|
21016
|
+
}
|
21017
|
+
function updated(el, binding) {
|
21018
|
+
if (binding.value === binding.oldValue) return;
|
21019
|
+
unmounted(el, binding);
|
21020
|
+
mounted(el, binding);
|
21021
|
+
}
|
21022
|
+
const Scroll = {
|
21023
|
+
mounted,
|
21024
|
+
unmounted,
|
21025
|
+
updated
|
21026
|
+
};
|
21027
|
+
|
21028
|
+
var directives = /*#__PURE__*/Object.freeze({
|
21029
|
+
__proto__: null,
|
21030
|
+
ClickOutside: ClickOutside,
|
21031
|
+
Intersect: Intersect,
|
21032
|
+
Mutate: Mutate,
|
21033
|
+
Resize: Resize,
|
21034
|
+
Ripple: Ripple,
|
21035
|
+
Scroll: Scroll,
|
21036
|
+
Touch: Touch
|
21037
|
+
});
|
21038
|
+
|
21039
|
+
// Utilities
|
21040
|
+
|
21041
|
+
// Types
|
21042
|
+
|
21043
|
+
function getWeekArray(date) {
|
21044
|
+
let currentWeek = [];
|
21045
|
+
const weeks = [];
|
21046
|
+
const firstDayOfMonth = startOfMonth(date);
|
21047
|
+
const lastDayOfMonth = endOfMonth(date);
|
21048
|
+
for (let i = 0; i < firstDayOfMonth.getDay(); i++) {
|
21049
|
+
currentWeek.push(null);
|
21050
|
+
}
|
21051
|
+
for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {
|
21052
|
+
const day = new Date(date.getFullYear(), date.getMonth(), i);
|
21053
|
+
|
21054
|
+
// Add the day to the current week
|
21055
|
+
currentWeek.push(day);
|
21056
|
+
|
21057
|
+
// If the current week has 7 days, add it to the weeks array and start a new week
|
21058
|
+
if (currentWeek.length === 7) {
|
21059
|
+
weeks.push(currentWeek);
|
21060
|
+
currentWeek = [];
|
20939
21061
|
}
|
20940
|
-
}
|
20941
|
-
|
20942
|
-
|
20943
|
-
|
20944
|
-
|
20945
|
-
|
21062
|
+
}
|
21063
|
+
for (let i = currentWeek.length; i < 7; i++) {
|
21064
|
+
currentWeek.push(null);
|
21065
|
+
}
|
21066
|
+
weeks.push(currentWeek);
|
21067
|
+
return weeks;
|
21068
|
+
}
|
21069
|
+
function startOfMonth(date) {
|
21070
|
+
return new Date(date.getFullYear(), date.getMonth(), 1);
|
21071
|
+
}
|
21072
|
+
function endOfMonth(date) {
|
21073
|
+
return new Date(date.getFullYear(), date.getMonth() + 1, 0);
|
21074
|
+
}
|
21075
|
+
function date(value) {
|
21076
|
+
if (value == null) return null;
|
21077
|
+
if (value instanceof Date) return value;
|
21078
|
+
if (typeof value === 'string') {
|
21079
|
+
const parsed = Date.parse(value);
|
21080
|
+
if (!isNaN(parsed)) return new Date(parsed);
|
21081
|
+
}
|
21082
|
+
return null;
|
21083
|
+
}
|
21084
|
+
const firstDay = {
|
21085
|
+
'001': 1,
|
21086
|
+
AD: 1,
|
21087
|
+
AE: 6,
|
21088
|
+
AF: 6,
|
21089
|
+
AG: 0,
|
21090
|
+
AI: 1,
|
21091
|
+
AL: 1,
|
21092
|
+
AM: 1,
|
21093
|
+
AN: 1,
|
21094
|
+
AR: 1,
|
21095
|
+
AS: 0,
|
21096
|
+
AT: 1,
|
21097
|
+
AU: 0,
|
21098
|
+
AX: 1,
|
21099
|
+
AZ: 1,
|
21100
|
+
BA: 1,
|
21101
|
+
BD: 0,
|
21102
|
+
BE: 1,
|
21103
|
+
BG: 1,
|
21104
|
+
BH: 6,
|
21105
|
+
BM: 1,
|
21106
|
+
BN: 1,
|
21107
|
+
BR: 0,
|
21108
|
+
BS: 0,
|
21109
|
+
BT: 0,
|
21110
|
+
BW: 0,
|
21111
|
+
BY: 1,
|
21112
|
+
BZ: 0,
|
21113
|
+
CA: 0,
|
21114
|
+
CH: 1,
|
21115
|
+
CL: 1,
|
21116
|
+
CM: 1,
|
21117
|
+
CN: 0,
|
21118
|
+
CO: 0,
|
21119
|
+
CR: 1,
|
21120
|
+
CY: 1,
|
21121
|
+
CZ: 1,
|
21122
|
+
DE: 1,
|
21123
|
+
DJ: 6,
|
21124
|
+
DK: 1,
|
21125
|
+
DM: 0,
|
21126
|
+
DO: 0,
|
21127
|
+
DZ: 6,
|
21128
|
+
EC: 1,
|
21129
|
+
EE: 1,
|
21130
|
+
EG: 6,
|
21131
|
+
ES: 1,
|
21132
|
+
ET: 0,
|
21133
|
+
FI: 1,
|
21134
|
+
FJ: 1,
|
21135
|
+
FO: 1,
|
21136
|
+
FR: 1,
|
21137
|
+
GB: 1,
|
21138
|
+
'GB-alt-variant': 0,
|
21139
|
+
GE: 1,
|
21140
|
+
GF: 1,
|
21141
|
+
GP: 1,
|
21142
|
+
GR: 1,
|
21143
|
+
GT: 0,
|
21144
|
+
GU: 0,
|
21145
|
+
HK: 0,
|
21146
|
+
HN: 0,
|
21147
|
+
HR: 1,
|
21148
|
+
HU: 1,
|
21149
|
+
ID: 0,
|
21150
|
+
IE: 1,
|
21151
|
+
IL: 0,
|
21152
|
+
IN: 0,
|
21153
|
+
IQ: 6,
|
21154
|
+
IR: 6,
|
21155
|
+
IS: 1,
|
21156
|
+
IT: 1,
|
21157
|
+
JM: 0,
|
21158
|
+
JO: 6,
|
21159
|
+
JP: 0,
|
21160
|
+
KE: 0,
|
21161
|
+
KG: 1,
|
21162
|
+
KH: 0,
|
21163
|
+
KR: 0,
|
21164
|
+
KW: 6,
|
21165
|
+
KZ: 1,
|
21166
|
+
LA: 0,
|
21167
|
+
LB: 1,
|
21168
|
+
LI: 1,
|
21169
|
+
LK: 1,
|
21170
|
+
LT: 1,
|
21171
|
+
LU: 1,
|
21172
|
+
LV: 1,
|
21173
|
+
LY: 6,
|
21174
|
+
MC: 1,
|
21175
|
+
MD: 1,
|
21176
|
+
ME: 1,
|
21177
|
+
MH: 0,
|
21178
|
+
MK: 1,
|
21179
|
+
MM: 0,
|
21180
|
+
MN: 1,
|
21181
|
+
MO: 0,
|
21182
|
+
MQ: 1,
|
21183
|
+
MT: 0,
|
21184
|
+
MV: 5,
|
21185
|
+
MX: 0,
|
21186
|
+
MY: 1,
|
21187
|
+
MZ: 0,
|
21188
|
+
NI: 0,
|
21189
|
+
NL: 1,
|
21190
|
+
NO: 1,
|
21191
|
+
NP: 0,
|
21192
|
+
NZ: 1,
|
21193
|
+
OM: 6,
|
21194
|
+
PA: 0,
|
21195
|
+
PE: 0,
|
21196
|
+
PH: 0,
|
21197
|
+
PK: 0,
|
21198
|
+
PL: 1,
|
21199
|
+
PR: 0,
|
21200
|
+
PT: 0,
|
21201
|
+
PY: 0,
|
21202
|
+
QA: 6,
|
21203
|
+
RE: 1,
|
21204
|
+
RO: 1,
|
21205
|
+
RS: 1,
|
21206
|
+
RU: 1,
|
21207
|
+
SA: 0,
|
21208
|
+
SD: 6,
|
21209
|
+
SE: 1,
|
21210
|
+
SG: 0,
|
21211
|
+
SI: 1,
|
21212
|
+
SK: 1,
|
21213
|
+
SM: 1,
|
21214
|
+
SV: 0,
|
21215
|
+
SY: 6,
|
21216
|
+
TH: 0,
|
21217
|
+
TJ: 1,
|
21218
|
+
TM: 1,
|
21219
|
+
TR: 1,
|
21220
|
+
TT: 0,
|
21221
|
+
TW: 0,
|
21222
|
+
UA: 1,
|
21223
|
+
UM: 0,
|
21224
|
+
US: 0,
|
21225
|
+
UY: 1,
|
21226
|
+
UZ: 1,
|
21227
|
+
VA: 1,
|
21228
|
+
VE: 0,
|
21229
|
+
VI: 0,
|
21230
|
+
VN: 1,
|
21231
|
+
WS: 0,
|
21232
|
+
XK: 1,
|
21233
|
+
YE: 0,
|
21234
|
+
ZA: 0,
|
21235
|
+
ZW: 0
|
21236
|
+
};
|
21237
|
+
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
21238
|
+
function getWeekdays(locale) {
|
21239
|
+
const daysFromSunday = firstDay[locale.slice(-2).toUpperCase()];
|
21240
|
+
return createRange(7).map(i => {
|
21241
|
+
const weekday = new Date(sundayJanuarySecond2000);
|
21242
|
+
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
21243
|
+
return new Intl.DateTimeFormat(locale, {
|
21244
|
+
weekday: 'long'
|
21245
|
+
}).format(weekday);
|
20946
21246
|
});
|
20947
|
-
if (immediate) handler?.([], observer);
|
20948
|
-
el._mutate = Object(el._mutate);
|
20949
|
-
el._mutate[binding.instance.$.uid] = {
|
20950
|
-
observer
|
20951
|
-
};
|
20952
|
-
observer.observe(el, options);
|
20953
21247
|
}
|
20954
|
-
function
|
20955
|
-
|
20956
|
-
|
20957
|
-
|
21248
|
+
function format(value, formatString, locale) {
|
21249
|
+
const date = new Date(value);
|
21250
|
+
let options = {};
|
21251
|
+
switch (formatString) {
|
21252
|
+
case 'fullDateWithWeekday':
|
21253
|
+
options = {
|
21254
|
+
weekday: 'long',
|
21255
|
+
day: 'numeric',
|
21256
|
+
month: 'long',
|
21257
|
+
year: 'numeric'
|
21258
|
+
};
|
21259
|
+
break;
|
21260
|
+
case 'normalDateWithWeekday':
|
21261
|
+
options = {
|
21262
|
+
weekday: 'short',
|
21263
|
+
day: 'numeric',
|
21264
|
+
month: 'short',
|
21265
|
+
year: 'numeric'
|
21266
|
+
};
|
21267
|
+
break;
|
21268
|
+
case 'keyboardDate':
|
21269
|
+
options = {};
|
21270
|
+
break;
|
21271
|
+
case 'monthAndDate':
|
21272
|
+
options = {
|
21273
|
+
month: 'long',
|
21274
|
+
day: 'numeric'
|
21275
|
+
};
|
21276
|
+
break;
|
21277
|
+
case 'monthAndYear':
|
21278
|
+
options = {
|
21279
|
+
month: 'long',
|
21280
|
+
year: 'numeric'
|
21281
|
+
};
|
21282
|
+
break;
|
21283
|
+
default:
|
21284
|
+
options = {
|
21285
|
+
timeZone: 'UTC',
|
21286
|
+
timeZoneName: 'short'
|
21287
|
+
};
|
21288
|
+
}
|
21289
|
+
return new Intl.DateTimeFormat(locale, options).format(date);
|
21290
|
+
}
|
21291
|
+
function addDays(date, amount) {
|
21292
|
+
const d = new Date(date);
|
21293
|
+
d.setDate(d.getDate() + amount);
|
21294
|
+
return d;
|
21295
|
+
}
|
21296
|
+
function addMonths(date, amount) {
|
21297
|
+
const d = new Date(date);
|
21298
|
+
d.setMonth(d.getMonth() + amount);
|
21299
|
+
return d;
|
21300
|
+
}
|
21301
|
+
function getYear(date) {
|
21302
|
+
return date.getFullYear();
|
21303
|
+
}
|
21304
|
+
function getMonth(date) {
|
21305
|
+
return date.getMonth();
|
21306
|
+
}
|
21307
|
+
function startOfYear(date) {
|
21308
|
+
return new Date(date.getFullYear(), 0, 1);
|
21309
|
+
}
|
21310
|
+
function endOfYear(date) {
|
21311
|
+
return new Date(date.getFullYear(), 11, 31);
|
21312
|
+
}
|
21313
|
+
function getMondayOfFirstWeekOfYear(year) {
|
21314
|
+
return new Date(year, 0, 1);
|
20958
21315
|
}
|
20959
|
-
const Mutate = {
|
20960
|
-
mounted: mounted$2,
|
20961
|
-
unmounted: unmounted$2
|
20962
|
-
};
|
20963
21316
|
|
20964
|
-
|
20965
|
-
|
20966
|
-
|
20967
|
-
|
20968
|
-
|
20969
|
-
|
20970
|
-
|
20971
|
-
|
20972
|
-
|
20973
|
-
|
20974
|
-
|
20975
|
-
|
20976
|
-
|
21317
|
+
// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
|
21318
|
+
function getWeek(date) {
|
21319
|
+
let year = date.getFullYear();
|
21320
|
+
let d1w1 = getMondayOfFirstWeekOfYear(year);
|
21321
|
+
if (date < d1w1) {
|
21322
|
+
year = year - 1;
|
21323
|
+
d1w1 = getMondayOfFirstWeekOfYear(year);
|
21324
|
+
} else {
|
21325
|
+
const tv = getMondayOfFirstWeekOfYear(year + 1);
|
21326
|
+
if (date >= tv) {
|
21327
|
+
year = year + 1;
|
21328
|
+
d1w1 = tv;
|
21329
|
+
}
|
20977
21330
|
}
|
21331
|
+
const diffTime = Math.abs(date.getTime() - d1w1.getTime());
|
21332
|
+
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
21333
|
+
return Math.floor(diffDays / 7) + 1;
|
20978
21334
|
}
|
20979
|
-
function
|
20980
|
-
|
20981
|
-
const {
|
20982
|
-
handler,
|
20983
|
-
options
|
20984
|
-
} = el._onResize[binding.instance.$.uid];
|
20985
|
-
window.removeEventListener('resize', handler, options);
|
20986
|
-
delete el._onResize[binding.instance.$.uid];
|
21335
|
+
function isWithinRange(date, range) {
|
21336
|
+
return isAfter(date, range[0]) && isBefore(date, range[1]);
|
20987
21337
|
}
|
20988
|
-
|
20989
|
-
|
20990
|
-
|
20991
|
-
};
|
20992
|
-
|
20993
|
-
function mounted(el, binding) {
|
20994
|
-
const {
|
20995
|
-
self = false
|
20996
|
-
} = binding.modifiers ?? {};
|
20997
|
-
const value = binding.value;
|
20998
|
-
const options = typeof value === 'object' && value.options || {
|
20999
|
-
passive: true
|
21000
|
-
};
|
21001
|
-
const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler;
|
21002
|
-
const target = self ? el : binding.arg ? document.querySelector(binding.arg) : window;
|
21003
|
-
if (!target) return;
|
21004
|
-
target.addEventListener('scroll', handler, options);
|
21005
|
-
el._onScroll = Object(el._onScroll);
|
21006
|
-
el._onScroll[binding.instance.$.uid] = {
|
21007
|
-
handler,
|
21008
|
-
options,
|
21009
|
-
// Don't reference self
|
21010
|
-
target: self ? undefined : target
|
21011
|
-
};
|
21338
|
+
function isValid(date) {
|
21339
|
+
const d = new Date(date);
|
21340
|
+
return d instanceof Date && !isNaN(d.getTime());
|
21012
21341
|
}
|
21013
|
-
function
|
21014
|
-
|
21015
|
-
const {
|
21016
|
-
handler,
|
21017
|
-
options,
|
21018
|
-
target = el
|
21019
|
-
} = el._onScroll[binding.instance.$.uid];
|
21020
|
-
target.removeEventListener('scroll', handler, options);
|
21021
|
-
delete el._onScroll[binding.instance.$.uid];
|
21342
|
+
function isAfter(date, comparing) {
|
21343
|
+
return date.getTime() > comparing.getTime();
|
21022
21344
|
}
|
21023
|
-
function
|
21024
|
-
|
21025
|
-
|
21026
|
-
|
21345
|
+
function isBefore(date, comparing) {
|
21346
|
+
return date.getTime() < comparing.getTime();
|
21347
|
+
}
|
21348
|
+
function isEqual(date, comparing) {
|
21349
|
+
return date.getTime() === comparing.getTime();
|
21350
|
+
}
|
21351
|
+
function isSameDay(date, comparing) {
|
21352
|
+
return date.getDate() === comparing.getDate() && date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
21353
|
+
}
|
21354
|
+
function isSameMonth(date, comparing) {
|
21355
|
+
return date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
21356
|
+
}
|
21357
|
+
function getDiff(date, comparing, unit) {
|
21358
|
+
const d = new Date(date);
|
21359
|
+
const c = new Date(comparing);
|
21360
|
+
if (unit === 'month') {
|
21361
|
+
return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12;
|
21362
|
+
}
|
21363
|
+
return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24));
|
21364
|
+
}
|
21365
|
+
function setYear(date, year) {
|
21366
|
+
const d = new Date(date);
|
21367
|
+
d.setFullYear(year);
|
21368
|
+
return d;
|
21369
|
+
}
|
21370
|
+
class VuetifyDateAdapter {
|
21371
|
+
constructor() {
|
21372
|
+
let locale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'en';
|
21373
|
+
this.locale = locale;
|
21374
|
+
}
|
21375
|
+
date(value) {
|
21376
|
+
return date(value);
|
21377
|
+
}
|
21378
|
+
addDays(date, amount) {
|
21379
|
+
return addDays(date, amount);
|
21380
|
+
}
|
21381
|
+
addMonths(date, amount) {
|
21382
|
+
return addMonths(date, amount);
|
21383
|
+
}
|
21384
|
+
getWeekArray(date) {
|
21385
|
+
return getWeekArray(date);
|
21386
|
+
}
|
21387
|
+
startOfMonth(date) {
|
21388
|
+
return startOfMonth(date);
|
21389
|
+
}
|
21390
|
+
endOfMonth(date) {
|
21391
|
+
return endOfMonth(date);
|
21392
|
+
}
|
21393
|
+
format(date, formatString) {
|
21394
|
+
return format(date, formatString, this.locale);
|
21395
|
+
}
|
21396
|
+
isEqual(date, comparing) {
|
21397
|
+
return isEqual(date, comparing);
|
21398
|
+
}
|
21399
|
+
isValid(date) {
|
21400
|
+
return isValid(date);
|
21401
|
+
}
|
21402
|
+
isWithinRange(date, range) {
|
21403
|
+
return isWithinRange(date, range);
|
21404
|
+
}
|
21405
|
+
isAfter(date, comparing) {
|
21406
|
+
return isAfter(date, comparing);
|
21407
|
+
}
|
21408
|
+
isSameDay(date, comparing) {
|
21409
|
+
return isSameDay(date, comparing);
|
21410
|
+
}
|
21411
|
+
isSameMonth(date, comparing) {
|
21412
|
+
return isSameMonth(date, comparing);
|
21413
|
+
}
|
21414
|
+
setYear(date, year) {
|
21415
|
+
return setYear(date, year);
|
21416
|
+
}
|
21417
|
+
getDiff(date, comparing, unit) {
|
21418
|
+
return getDiff(date, comparing, unit);
|
21419
|
+
}
|
21420
|
+
getWeek(date) {
|
21421
|
+
return getWeek(date);
|
21422
|
+
}
|
21423
|
+
getWeekdays() {
|
21424
|
+
return getWeekdays(this.locale);
|
21425
|
+
}
|
21426
|
+
getYear(date) {
|
21427
|
+
return getYear(date);
|
21428
|
+
}
|
21429
|
+
getMonth(date) {
|
21430
|
+
return getMonth(date);
|
21431
|
+
}
|
21432
|
+
startOfYear(date) {
|
21433
|
+
return startOfYear(date);
|
21434
|
+
}
|
21435
|
+
endOfYear(date) {
|
21436
|
+
return endOfYear(date);
|
21437
|
+
}
|
21027
21438
|
}
|
21028
|
-
const Scroll = {
|
21029
|
-
mounted,
|
21030
|
-
unmounted,
|
21031
|
-
updated
|
21032
|
-
};
|
21033
21439
|
|
21034
|
-
|
21035
|
-
|
21036
|
-
|
21037
|
-
|
21038
|
-
|
21039
|
-
|
21040
|
-
|
21041
|
-
|
21042
|
-
|
21043
|
-
}
|
21440
|
+
// Composables
|
21441
|
+
|
21442
|
+
// Types
|
21443
|
+
|
21444
|
+
const DateAdapterSymbol = Symbol.for('vuetify:date-adapter');
|
21445
|
+
function createDate(options) {
|
21446
|
+
return options ?? {
|
21447
|
+
adapter: VuetifyDateAdapter
|
21448
|
+
};
|
21449
|
+
}
|
21044
21450
|
|
21045
21451
|
// Composables
|
21046
21452
|
function createVuetify$1() {
|
@@ -21127,7 +21533,7 @@
|
|
21127
21533
|
date
|
21128
21534
|
};
|
21129
21535
|
}
|
21130
|
-
const version$1 = "4.0.0-dev-
|
21536
|
+
const version$1 = "4.0.0-dev-20230427.0";
|
21131
21537
|
createVuetify$1.version = version$1;
|
21132
21538
|
|
21133
21539
|
// Vue's inject() can only be used in setup
|
@@ -21139,7 +21545,7 @@
|
|
21139
21545
|
}
|
21140
21546
|
}
|
21141
21547
|
|
21142
|
-
const version = "4.0.0-dev-
|
21548
|
+
const version = "4.0.0-dev-20230427.0";
|
21143
21549
|
|
21144
21550
|
const createVuetify = function () {
|
21145
21551
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
@@ -21153,7 +21559,7 @@
|
|
21153
21559
|
exports.components = components;
|
21154
21560
|
exports.createVuetify = createVuetify;
|
21155
21561
|
exports.directives = directives;
|
21156
|
-
exports.
|
21562
|
+
exports.useDefaults = useDefaults;
|
21157
21563
|
exports.useDisplay = useDisplay;
|
21158
21564
|
exports.useLayout = useLayout;
|
21159
21565
|
exports.useLocale = useLocale;
|