vuetify 3.6.0-alpha.2 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_component-variables-labs.sass +2 -1
- package/dist/json/attributes.json +731 -63
- package/dist/json/importMap-labs.json +32 -20
- package/dist/json/importMap.json +138 -138
- package/dist/json/tags.json +184 -2
- package/dist/json/web-types.json +13002 -10923
- package/dist/vuetify-labs.css +2039 -1927
- package/dist/vuetify-labs.d.ts +3575 -1079
- package/dist/vuetify-labs.esm.js +1047 -390
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +1046 -389
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +3026 -2941
- package/dist/vuetify.d.ts +927 -306
- package/dist/vuetify.esm.js +625 -363
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +624 -362
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +728 -714
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.sass +128 -127
- package/lib/components/VApp/VApp.sass +15 -13
- package/lib/components/VAppBar/VAppBar.sass +9 -8
- package/lib/components/VAppBar/index.d.mts +10 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +8 -10
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +94 -93
- package/lib/components/VAutocomplete/index.d.mts +36 -0
- package/lib/components/VAvatar/VAvatar.sass +26 -25
- package/lib/components/VBadge/VBadge.sass +61 -60
- package/lib/components/VBanner/VBanner.css +1 -1
- package/lib/components/VBanner/VBanner.sass +92 -91
- package/lib/components/VBanner/index.d.mts +15 -0
- package/lib/components/VBottomNavigation/VBottomNavigation.sass +50 -49
- package/lib/components/VBottomSheet/VBottomSheet.sass +28 -26
- package/lib/components/VBottomSheet/index.d.mts +14 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbs.css +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.sass +41 -40
- package/lib/components/VBtn/VBtn.css +3 -0
- package/lib/components/VBtn/VBtn.mjs +3 -1
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +204 -200
- package/lib/components/VBtn/index.d.mts +10 -0
- package/lib/components/VBtnGroup/VBtnGroup.sass +47 -46
- package/lib/components/VBtnToggle/VBtnToggle.sass +4 -3
- package/lib/components/VBtnToggle/index.d.mts +1 -0
- package/lib/components/VCard/VCard.css +3 -3
- package/lib/components/VCard/VCard.sass +181 -180
- package/lib/components/VCarousel/VCarousel.sass +50 -49
- package/lib/components/VCarousel/VCarouselItem.mjs +1 -1
- package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
- package/lib/components/VCarousel/index.d.mts +1 -0
- package/lib/components/VCheckbox/VCheckbox.sass +6 -5
- package/lib/components/VChip/VChip.css +1 -1
- package/lib/components/VChip/VChip.sass +78 -76
- package/lib/components/VChipGroup/VChipGroup.sass +20 -18
- package/lib/components/VChipGroup/index.d.mts +16 -0
- package/lib/components/VCode/VCode.sass +10 -8
- package/lib/components/VColorPicker/VColorPicker.sass +18 -17
- package/lib/components/VColorPicker/VColorPickerCanvas.sass +21 -20
- package/lib/components/VColorPicker/VColorPickerEdit.sass +24 -23
- package/lib/components/VColorPicker/VColorPickerPreview.sass +54 -53
- package/lib/components/VColorPicker/VColorPickerSwatches.sass +29 -28
- package/lib/components/VCombobox/VCombobox.mjs +8 -10
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +94 -93
- package/lib/components/VCombobox/index.d.mts +36 -0
- package/lib/components/VCounter/VCounter.sass +7 -5
- package/lib/components/VDataIterator/index.d.mts +2 -0
- package/lib/components/VDataTable/VDataTable.css +36 -1
- package/lib/components/VDataTable/VDataTable.sass +137 -103
- package/lib/components/VDataTable/VDataTableFooter.css +5 -9
- package/lib/components/VDataTable/VDataTableFooter.sass +26 -25
- package/lib/components/VDataTable/VDataTableHeaders.mjs +66 -7
- package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableRow.mjs +45 -10
- package/lib/components/VDataTable/VDataTableRow.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableRows.mjs +8 -2
- package/lib/components/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/components/VDataTable/_variables.scss +9 -3
- package/lib/components/VDataTable/index.d.mts +263 -217
- package/lib/components/VDataTable/types.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.mjs +12 -2
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.sass +6 -5
- package/lib/components/VDatePicker/VDatePickerControls.sass +56 -55
- package/lib/components/VDatePicker/VDatePickerHeader.sass +58 -56
- package/lib/components/VDatePicker/VDatePickerMonth.sass +53 -51
- package/lib/components/VDatePicker/VDatePickerMonths.sass +18 -16
- package/lib/components/VDatePicker/VDatePickerYears.sass +14 -12
- package/lib/components/VDialog/VDialog.css +7 -3
- package/lib/components/VDialog/VDialog.mjs +6 -2
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +71 -68
- package/lib/components/VDialog/__test__/VDialog.spec.cy.mjs +39 -0
- package/lib/components/VDialog/__test__/VDialog.spec.cy.mjs.map +1 -0
- package/lib/components/VDialog/_variables.scss +4 -3
- package/lib/components/VDialog/index.d.mts +60 -10
- package/lib/components/VDivider/VDivider.sass +49 -48
- package/lib/components/VExpansionPanel/VExpansionPanel.sass +172 -171
- package/lib/components/VField/VField.sass +451 -450
- package/lib/components/VFileInput/VFileInput.mjs +1 -1
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.sass +30 -31
- package/lib/components/VFileInput/index.d.mts +17 -5
- package/lib/components/VFooter/VFooter.sass +17 -16
- package/lib/components/VGrid/VGrid.sass +42 -40
- package/lib/components/VIcon/VIcon.sass +34 -32
- package/lib/components/VImg/VImg.sass +24 -23
- package/lib/components/VInfiniteScroll/VInfiniteScroll.sass +21 -19
- package/lib/components/VInput/VInput.mjs +6 -1
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/VInput.sass +103 -102
- package/lib/components/VInput/index.d.mts +6 -0
- package/lib/components/VItemGroup/VItemGroup.sass +7 -5
- package/lib/components/VKbd/VKbd.sass +10 -9
- package/lib/components/VLabel/VLabel.sass +14 -13
- package/lib/components/VLayout/VLayout.mjs +6 -1
- package/lib/components/VLayout/VLayout.mjs.map +1 -1
- package/lib/components/VLayout/VLayout.sass +10 -7
- package/lib/components/VLayout/VLayoutItem.sass +7 -5
- package/lib/components/VLayout/index.d.mts +36 -0
- package/lib/components/VList/VList.mjs +2 -1
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VList.sass +81 -80
- package/lib/components/VList/VListItem.css +1 -1
- package/lib/components/VList/VListItem.sass +260 -259
- package/lib/components/VLocaleProvider/VLocaleProvider.sass +5 -2
- package/lib/components/VMain/VMain.sass +22 -21
- package/lib/components/VMenu/VMenu.sass +14 -13
- package/lib/components/VMenu/index.d.mts +56 -0
- package/lib/components/VMessages/VMessages.sass +16 -15
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +4 -0
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +14 -5
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +90 -84
- package/lib/components/VNavigationDrawer/index.d.mts +24 -0
- package/lib/components/VNavigationDrawer/touch.mjs +16 -2
- package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.sass +51 -50
- package/lib/components/VOverlay/VOverlay.mjs +2 -2
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.sass +57 -55
- package/lib/components/VOverlay/index.d.mts +27 -13
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.sass +14 -12
- package/lib/components/VParallax/VParallax.sass +8 -5
- package/lib/components/VProgressCircular/VProgressCircular.sass +85 -83
- package/lib/components/VProgressLinear/VProgressLinear.mjs +11 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.sass +170 -169
- package/lib/components/VProgressLinear/index.d.mts +21 -0
- package/lib/components/VRadioGroup/VRadioGroup.sass +12 -10
- package/lib/components/VRangeSlider/index.d.mts +6 -0
- package/lib/components/VRating/VRating.sass +46 -44
- package/lib/components/VResponsive/VResponsive.sass +21 -19
- package/lib/components/VSelect/VSelect.mjs +5 -1
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.sass +50 -49
- package/lib/components/VSelect/index.d.mts +36 -0
- package/lib/components/VSelectionControl/VSelectionControl.sass +87 -86
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +9 -7
- package/lib/components/VSheet/VSheet.sass +10 -9
- package/lib/components/VSkeletonLoader/VSkeletonLoader.sass +174 -173
- package/lib/components/VSlideGroup/VSlideGroup.css +14 -1
- package/lib/components/VSlideGroup/VSlideGroup.mjs +110 -93
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.sass +54 -40
- package/lib/components/VSlideGroup/helpers.mjs +48 -28
- package/lib/components/VSlideGroup/helpers.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.mts +16 -0
- package/lib/components/VSlider/VSlider.sass +49 -48
- package/lib/components/VSlider/VSliderThumb.sass +129 -128
- package/lib/components/VSlider/VSliderTrack.sass +120 -119
- package/lib/components/VSlider/index.d.mts +6 -0
- package/lib/components/VSnackbar/VSnackbar.css +18 -1
- package/lib/components/VSnackbar/VSnackbar.mjs +34 -9
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.sass +103 -83
- package/lib/components/VSnackbar/index.d.mts +42 -0
- package/lib/components/VStepper/VStepper.sass +37 -36
- package/lib/components/VStepper/VStepperItem.sass +69 -67
- package/lib/components/VSwitch/VSwitch.css +14 -2
- package/lib/components/VSwitch/VSwitch.sass +119 -112
- package/lib/components/VSystemBar/VSystemBar.css +1 -1
- package/lib/components/VSystemBar/VSystemBar.sass +24 -23
- package/lib/components/VTable/VTable.sass +140 -139
- package/lib/components/VTabs/VTab.sass +27 -25
- package/lib/components/VTabs/VTabs.sass +38 -37
- package/lib/components/VTabs/index.d.mts +49 -6
- package/lib/components/VTextField/VTextField.sass +58 -56
- package/lib/components/VTextField/index.d.mts +15 -3
- package/lib/components/VTextarea/VTextarea.sass +43 -42
- package/lib/components/VTextarea/index.d.mts +15 -3
- package/lib/components/VThemeProvider/VThemeProvider.sass +6 -3
- package/lib/components/VTimeline/VTimeline.sass +308 -307
- package/lib/components/VToolbar/VToolbar.sass +90 -89
- package/lib/components/VTooltip/VTooltip.sass +23 -21
- package/lib/components/VTooltip/index.d.mts +56 -0
- package/lib/components/VVirtualScroll/VVirtualScroll.sass +10 -7
- package/lib/components/VWindow/VWindow.css +1 -0
- package/lib/components/VWindow/VWindow.sass +74 -70
- package/lib/components/VWindow/index.d.mts +1 -0
- package/lib/components/index.d.mts +870 -253
- package/lib/composables/directiveComponent.mjs +4 -2
- package/lib/composables/directiveComponent.mjs.map +1 -1
- package/lib/composables/display.mjs +5 -0
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/goto.mjs +40 -3
- package/lib/composables/goto.mjs.map +1 -1
- package/lib/composables/group.mjs +10 -1
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/layout.mjs +3 -1
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/directives/ripple/VRipple.sass +35 -33
- package/lib/entry-bundler.mjs +1 -1
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.mts +58 -54
- package/lib/labs/VCalendar/VCalendar.sass +160 -158
- package/lib/labs/VCalendar/VCalendarDay.sass +26 -23
- package/lib/labs/VCalendar/VCalendarHeader.sass +12 -10
- package/lib/labs/VCalendar/VCalendarInterval.sass +36 -34
- package/lib/labs/VCalendar/VCalendarIntervalEvent.sass +9 -6
- package/lib/labs/VCalendar/VCalendarMonthDay.sass +59 -57
- package/lib/labs/VDateInput/VDateInput.mjs +129 -0
- package/lib/labs/VDateInput/VDateInput.mjs.map +1 -0
- package/lib/labs/VDateInput/index.d.mts +1068 -0
- package/lib/labs/VDateInput/index.mjs +2 -0
- package/lib/labs/VDateInput/index.mjs.map +1 -0
- package/lib/labs/VEmptyState/VEmptyState.css +3 -3
- package/lib/labs/VEmptyState/VEmptyState.sass +59 -57
- package/lib/labs/VFab/VFab.css +1 -0
- package/lib/labs/VFab/VFab.mjs +3 -2
- package/lib/labs/VFab/VFab.mjs.map +1 -1
- package/lib/labs/VFab/VFab.sass +62 -60
- package/lib/labs/VFab/index.d.mts +19 -0
- package/lib/labs/VNumberInput/VNumberInput.mjs +79 -24
- package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
- package/lib/labs/VNumberInput/VNumberInput.sass +42 -40
- package/lib/labs/VNumberInput/index.d.mts +56 -29
- package/lib/labs/VPicker/VPicker.sass +49 -48
- package/lib/labs/VPullToRefresh/VPullToRefresh.css +27 -0
- package/lib/labs/VPullToRefresh/VPullToRefresh.mjs +117 -0
- package/lib/labs/VPullToRefresh/VPullToRefresh.mjs.map +1 -0
- package/lib/labs/VPullToRefresh/VPullToRefresh.sass +23 -0
- package/lib/labs/VPullToRefresh/index.d.mts +189 -0
- package/lib/labs/VPullToRefresh/index.mjs +2 -0
- package/lib/labs/VPullToRefresh/index.mjs.map +1 -0
- package/lib/labs/VSnackbarQueue/VSnackbarQueue.mjs +112 -0
- package/lib/labs/VSnackbarQueue/VSnackbarQueue.mjs.map +1 -0
- package/lib/labs/VSnackbarQueue/index.d.mts +2763 -0
- package/lib/labs/VSnackbarQueue/index.mjs +2 -0
- package/lib/labs/VSnackbarQueue/index.mjs.map +1 -0
- package/lib/labs/VSpeedDial/VSpeedDial.mjs +8 -2
- package/lib/labs/VSpeedDial/VSpeedDial.mjs.map +1 -1
- package/lib/labs/VSpeedDial/VSpeedDial.sass +23 -20
- package/lib/labs/VSpeedDial/index.d.mts +28 -2
- package/lib/labs/VTimePicker/VTimePicker.sass +9 -8
- package/lib/labs/VTimePicker/VTimePickerClock.mjs +1 -3
- package/lib/labs/VTimePicker/VTimePickerClock.mjs.map +1 -1
- package/lib/labs/VTimePicker/VTimePickerClock.sass +114 -113
- package/lib/labs/VTimePicker/VTimePickerControls.sass +90 -90
- package/lib/labs/VTimePicker/_variables.scss +1 -1
- package/lib/labs/VTimePicker/index.d.mts +6 -13
- package/lib/labs/VTreeview/VTreeviewItem.sass +14 -12
- package/lib/labs/VTreeview/{variables.scss → _variables.scss} +0 -2
- package/lib/labs/components.d.mts +5587 -1641
- package/lib/labs/components.mjs +3 -0
- package/lib/labs/components.mjs.map +1 -1
- package/lib/locale/af.mjs +1 -0
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs +1 -0
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs +1 -0
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs +1 -0
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +1 -0
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs +1 -0
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +1 -0
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs +1 -0
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs +1 -0
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs +1 -0
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs +1 -0
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +1 -0
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs +1 -0
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs +1 -0
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs +1 -0
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +1 -0
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs +1 -0
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs +1 -0
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs +1 -0
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs +1 -0
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.mts +43 -0
- package/lib/locale/it.mjs +1 -0
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs +1 -0
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/km.mjs +1 -0
- package/lib/locale/km.mjs.map +1 -1
- package/lib/locale/ko.mjs +9 -8
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +1 -0
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +1 -0
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +1 -0
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +1 -0
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +1 -0
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +1 -0
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +1 -0
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +1 -0
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +1 -0
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +1 -0
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +1 -0
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +1 -0
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +1 -0
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +1 -0
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +1 -0
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +1 -0
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +1 -0
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +1 -0
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +1 -0
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/lib/styles/elements/_blockquote.sass +6 -4
- package/lib/styles/elements/_global.sass +20 -18
- package/lib/styles/generic/_animations.scss +13 -9
- package/lib/styles/generic/_colors.scss +36 -35
- package/lib/styles/generic/_index.scss +1 -0
- package/lib/styles/generic/_layers.scss +7 -0
- package/lib/styles/generic/_reset.scss +235 -232
- package/lib/styles/generic/_rtl.scss +10 -6
- package/lib/styles/generic/_transitions.scss +244 -241
- package/lib/styles/main.css +78 -78
- package/lib/styles/settings/_variables.scss +22 -14
- package/lib/styles/tools/_index.sass +1 -0
- package/lib/styles/tools/_layer.scss +11 -0
- package/lib/styles/utilities/_display.sass +7 -5
- package/lib/styles/utilities/_elevation.scss +8 -6
- package/lib/styles/utilities/_index.sass +28 -29
- package/lib/styles/utilities/_screenreaders.sass +13 -11
- package/package.json +2 -2
package/dist/vuetify.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.6.0
|
|
2
|
+
* Vuetify v3.6.0
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -2223,10 +2223,12 @@
|
|
|
2223
2223
|
const isHorizontal = position.value === 'left' || position.value === 'right';
|
|
2224
2224
|
const isOppositeHorizontal = position.value === 'right';
|
|
2225
2225
|
const isOppositeVertical = position.value === 'bottom';
|
|
2226
|
+
const size = elementSize.value ?? layoutSize.value;
|
|
2227
|
+
const unit = size === 0 ? '%' : 'px';
|
|
2226
2228
|
const styles = {
|
|
2227
2229
|
[position.value]: 0,
|
|
2228
2230
|
zIndex: zIndex.value,
|
|
2229
|
-
transform: `translate${isHorizontal ? 'X' : 'Y'}(${(active.value ? 0 : -(
|
|
2231
|
+
transform: `translate${isHorizontal ? 'X' : 'Y'}(${(active.value ? 0 : -(size === 0 ? 100 : size)) * (isOppositeHorizontal || isOppositeVertical ? -1 : 1)}${unit})`,
|
|
2230
2232
|
position: absolute.value || rootZIndex.value !== ROOT_ZINDEX ? 'absolute' : 'fixed',
|
|
2231
2233
|
...(transitionsEnabled.value ? undefined : {
|
|
2232
2234
|
transition: 'none'
|
|
@@ -2366,6 +2368,7 @@
|
|
|
2366
2368
|
badge: 'Badge',
|
|
2367
2369
|
open: 'Open',
|
|
2368
2370
|
close: 'Close',
|
|
2371
|
+
dismiss: 'Dismiss',
|
|
2369
2372
|
confirmEdit: {
|
|
2370
2373
|
ok: 'OK',
|
|
2371
2374
|
cancel: 'Cancel'
|
|
@@ -4596,6 +4599,7 @@
|
|
|
4596
4599
|
const index = children.indexOf(vm);
|
|
4597
4600
|
if (vue.unref(unwrapped.value) == null) {
|
|
4598
4601
|
unwrapped.value = index;
|
|
4602
|
+
unwrapped.useIndexAsValue = true;
|
|
4599
4603
|
}
|
|
4600
4604
|
if (index > -1) {
|
|
4601
4605
|
items.splice(index, 0, unwrapped);
|
|
@@ -4628,6 +4632,14 @@
|
|
|
4628
4632
|
vue.onBeforeUnmount(() => {
|
|
4629
4633
|
isUnmounted = true;
|
|
4630
4634
|
});
|
|
4635
|
+
vue.onUpdated(() => {
|
|
4636
|
+
// #19655 update the items that use the index as the value.
|
|
4637
|
+
for (let i = 0; i < items.length; i++) {
|
|
4638
|
+
if (items[i].useIndexAsValue) {
|
|
4639
|
+
items[i].value = i;
|
|
4640
|
+
}
|
|
4641
|
+
}
|
|
4642
|
+
});
|
|
4631
4643
|
function select(id, value) {
|
|
4632
4644
|
const item = items.find(item => item.id === id);
|
|
4633
4645
|
if (value && item?.disabled) return;
|
|
@@ -5010,6 +5022,65 @@
|
|
|
5010
5022
|
}
|
|
5011
5023
|
});
|
|
5012
5024
|
|
|
5025
|
+
// Composables
|
|
5026
|
+
|
|
5027
|
+
// Types
|
|
5028
|
+
|
|
5029
|
+
const oppositeMap = {
|
|
5030
|
+
center: 'center',
|
|
5031
|
+
top: 'bottom',
|
|
5032
|
+
bottom: 'top',
|
|
5033
|
+
left: 'right',
|
|
5034
|
+
right: 'left'
|
|
5035
|
+
};
|
|
5036
|
+
const makeLocationProps = propsFactory({
|
|
5037
|
+
location: String
|
|
5038
|
+
}, 'location');
|
|
5039
|
+
function useLocation(props) {
|
|
5040
|
+
let opposite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
5041
|
+
let offset = arguments.length > 2 ? arguments[2] : undefined;
|
|
5042
|
+
const {
|
|
5043
|
+
isRtl
|
|
5044
|
+
} = useRtl();
|
|
5045
|
+
const locationStyles = vue.computed(() => {
|
|
5046
|
+
if (!props.location) return {};
|
|
5047
|
+
const {
|
|
5048
|
+
side,
|
|
5049
|
+
align
|
|
5050
|
+
} = parseAnchor(props.location.split(' ').length > 1 ? props.location : `${props.location} center`, isRtl.value);
|
|
5051
|
+
function getOffset(side) {
|
|
5052
|
+
return offset ? offset(side) : 0;
|
|
5053
|
+
}
|
|
5054
|
+
const styles = {};
|
|
5055
|
+
if (side !== 'center') {
|
|
5056
|
+
if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`;else styles[side] = 0;
|
|
5057
|
+
}
|
|
5058
|
+
if (align !== 'center') {
|
|
5059
|
+
if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`;else styles[align] = 0;
|
|
5060
|
+
} else {
|
|
5061
|
+
if (side === 'center') styles.top = styles.left = '50%';else {
|
|
5062
|
+
styles[{
|
|
5063
|
+
top: 'left',
|
|
5064
|
+
bottom: 'left',
|
|
5065
|
+
left: 'top',
|
|
5066
|
+
right: 'top'
|
|
5067
|
+
}[side]] = '50%';
|
|
5068
|
+
}
|
|
5069
|
+
styles.transform = {
|
|
5070
|
+
top: 'translateX(-50%)',
|
|
5071
|
+
bottom: 'translateX(-50%)',
|
|
5072
|
+
left: 'translateY(-50%)',
|
|
5073
|
+
right: 'translateY(-50%)',
|
|
5074
|
+
center: 'translate(-50%, -50%)'
|
|
5075
|
+
}[side];
|
|
5076
|
+
}
|
|
5077
|
+
return styles;
|
|
5078
|
+
});
|
|
5079
|
+
return {
|
|
5080
|
+
locationStyles
|
|
5081
|
+
};
|
|
5082
|
+
}
|
|
5083
|
+
|
|
5013
5084
|
const makeVProgressLinearProps = propsFactory({
|
|
5014
5085
|
absolute: Boolean,
|
|
5015
5086
|
active: {
|
|
@@ -5045,6 +5116,9 @@
|
|
|
5045
5116
|
striped: Boolean,
|
|
5046
5117
|
roundedBar: Boolean,
|
|
5047
5118
|
...makeComponentProps(),
|
|
5119
|
+
...makeLocationProps({
|
|
5120
|
+
location: 'top'
|
|
5121
|
+
}),
|
|
5048
5122
|
...makeRoundedProps(),
|
|
5049
5123
|
...makeTagProps(),
|
|
5050
5124
|
...makeThemeProps()
|
|
@@ -5067,6 +5141,9 @@
|
|
|
5067
5141
|
const {
|
|
5068
5142
|
themeClasses
|
|
5069
5143
|
} = provideTheme(props);
|
|
5144
|
+
const {
|
|
5145
|
+
locationStyles
|
|
5146
|
+
} = useLocation(props);
|
|
5070
5147
|
const {
|
|
5071
5148
|
textColorClasses,
|
|
5072
5149
|
textColorStyles
|
|
@@ -5117,8 +5194,11 @@
|
|
|
5117
5194
|
'v-progress-linear--striped': props.striped
|
|
5118
5195
|
}, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class],
|
|
5119
5196
|
"style": [{
|
|
5197
|
+
bottom: props.location === 'bottom' ? 0 : undefined,
|
|
5198
|
+
top: props.location === 'top' ? 0 : undefined,
|
|
5120
5199
|
height: props.active ? convertToUnit(height.value) : 0,
|
|
5121
|
-
'--v-progress-linear-height': convertToUnit(height.value)
|
|
5200
|
+
'--v-progress-linear-height': convertToUnit(height.value),
|
|
5201
|
+
...(props.absolute ? locationStyles.value : {})
|
|
5122
5202
|
}, props.style],
|
|
5123
5203
|
"role": "progressbar",
|
|
5124
5204
|
"aria-hidden": props.active ? 'false' : 'true',
|
|
@@ -5210,65 +5290,6 @@
|
|
|
5210
5290
|
}, null)]);
|
|
5211
5291
|
}
|
|
5212
5292
|
|
|
5213
|
-
// Composables
|
|
5214
|
-
|
|
5215
|
-
// Types
|
|
5216
|
-
|
|
5217
|
-
const oppositeMap = {
|
|
5218
|
-
center: 'center',
|
|
5219
|
-
top: 'bottom',
|
|
5220
|
-
bottom: 'top',
|
|
5221
|
-
left: 'right',
|
|
5222
|
-
right: 'left'
|
|
5223
|
-
};
|
|
5224
|
-
const makeLocationProps = propsFactory({
|
|
5225
|
-
location: String
|
|
5226
|
-
}, 'location');
|
|
5227
|
-
function useLocation(props) {
|
|
5228
|
-
let opposite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
5229
|
-
let offset = arguments.length > 2 ? arguments[2] : undefined;
|
|
5230
|
-
const {
|
|
5231
|
-
isRtl
|
|
5232
|
-
} = useRtl();
|
|
5233
|
-
const locationStyles = vue.computed(() => {
|
|
5234
|
-
if (!props.location) return {};
|
|
5235
|
-
const {
|
|
5236
|
-
side,
|
|
5237
|
-
align
|
|
5238
|
-
} = parseAnchor(props.location.split(' ').length > 1 ? props.location : `${props.location} center`, isRtl.value);
|
|
5239
|
-
function getOffset(side) {
|
|
5240
|
-
return offset ? offset(side) : 0;
|
|
5241
|
-
}
|
|
5242
|
-
const styles = {};
|
|
5243
|
-
if (side !== 'center') {
|
|
5244
|
-
if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`;else styles[side] = 0;
|
|
5245
|
-
}
|
|
5246
|
-
if (align !== 'center') {
|
|
5247
|
-
if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`;else styles[align] = 0;
|
|
5248
|
-
} else {
|
|
5249
|
-
if (side === 'center') styles.top = styles.left = '50%';else {
|
|
5250
|
-
styles[{
|
|
5251
|
-
top: 'left',
|
|
5252
|
-
bottom: 'left',
|
|
5253
|
-
left: 'top',
|
|
5254
|
-
right: 'top'
|
|
5255
|
-
}[side]] = '50%';
|
|
5256
|
-
}
|
|
5257
|
-
styles.transform = {
|
|
5258
|
-
top: 'translateX(-50%)',
|
|
5259
|
-
bottom: 'translateX(-50%)',
|
|
5260
|
-
left: 'translateY(-50%)',
|
|
5261
|
-
right: 'translateY(-50%)',
|
|
5262
|
-
center: 'translate(-50%, -50%)'
|
|
5263
|
-
}[side];
|
|
5264
|
-
}
|
|
5265
|
-
return styles;
|
|
5266
|
-
});
|
|
5267
|
-
return {
|
|
5268
|
-
locationStyles
|
|
5269
|
-
};
|
|
5270
|
-
}
|
|
5271
|
-
|
|
5272
5293
|
// Utilities
|
|
5273
5294
|
|
|
5274
5295
|
// Types
|
|
@@ -5696,6 +5717,7 @@
|
|
|
5696
5717
|
prependIcon: IconValue,
|
|
5697
5718
|
appendIcon: IconValue,
|
|
5698
5719
|
block: Boolean,
|
|
5720
|
+
readonly: Boolean,
|
|
5699
5721
|
slim: Boolean,
|
|
5700
5722
|
stacked: Boolean,
|
|
5701
5723
|
ripple: {
|
|
@@ -5817,6 +5839,7 @@
|
|
|
5817
5839
|
'v-btn--flat': props.flat,
|
|
5818
5840
|
'v-btn--icon': !!props.icon,
|
|
5819
5841
|
'v-btn--loading': props.loading,
|
|
5842
|
+
'v-btn--readonly': props.readonly,
|
|
5820
5843
|
'v-btn--slim': props.slim,
|
|
5821
5844
|
'v-btn--stacked': props.stacked
|
|
5822
5845
|
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
|
@@ -5824,7 +5847,7 @@
|
|
|
5824
5847
|
"aria-busy": props.loading ? true : undefined,
|
|
5825
5848
|
"disabled": isDisabled.value || undefined,
|
|
5826
5849
|
"href": link.href.value,
|
|
5827
|
-
"tabindex": props.loading ? -1 : undefined,
|
|
5850
|
+
"tabindex": props.loading || props.readonly ? -1 : undefined,
|
|
5828
5851
|
"onClick": onClick,
|
|
5829
5852
|
"value": valueAttr.value
|
|
5830
5853
|
}, {
|
|
@@ -6995,6 +7018,7 @@
|
|
|
6995
7018
|
...makeComponentProps(),
|
|
6996
7019
|
...makeDensityProps(),
|
|
6997
7020
|
...only(makeDimensionProps(), ['maxWidth', 'minWidth', 'width']),
|
|
7021
|
+
...makeThemeProps(),
|
|
6998
7022
|
...makeValidationProps()
|
|
6999
7023
|
}, 'VInput');
|
|
7000
7024
|
const VInput = genericComponent()({
|
|
@@ -7017,6 +7041,9 @@
|
|
|
7017
7041
|
const {
|
|
7018
7042
|
dimensionStyles
|
|
7019
7043
|
} = useDimension(props);
|
|
7044
|
+
const {
|
|
7045
|
+
themeClasses
|
|
7046
|
+
} = provideTheme(props);
|
|
7020
7047
|
const {
|
|
7021
7048
|
rtlClasses
|
|
7022
7049
|
} = useRtl();
|
|
@@ -7070,7 +7097,7 @@
|
|
|
7070
7097
|
"class": ['v-input', `v-input--${props.direction}`, {
|
|
7071
7098
|
'v-input--center-affix': props.centerAffix,
|
|
7072
7099
|
'v-input--hide-spin-buttons': props.hideSpinButtons
|
|
7073
|
-
}, densityClasses.value, rtlClasses.value, validationClasses.value, props.class],
|
|
7100
|
+
}, densityClasses.value, themeClasses.value, rtlClasses.value, validationClasses.value, props.class],
|
|
7074
7101
|
"style": [dimensionStyles.value, props.style]
|
|
7075
7102
|
}, [hasPrepend && vue.createVNode("div", {
|
|
7076
7103
|
"key": "prepend",
|
|
@@ -7297,6 +7324,10 @@
|
|
|
7297
7324
|
};
|
|
7298
7325
|
}
|
|
7299
7326
|
const makeDisplayProps = propsFactory({
|
|
7327
|
+
mobile: {
|
|
7328
|
+
type: Boolean,
|
|
7329
|
+
default: null
|
|
7330
|
+
},
|
|
7300
7331
|
mobileBreakpoint: [Number, String]
|
|
7301
7332
|
}, 'display');
|
|
7302
7333
|
function useDisplay() {
|
|
@@ -7305,6 +7336,7 @@
|
|
|
7305
7336
|
const display = vue.inject(DisplaySymbol);
|
|
7306
7337
|
if (!display) throw new Error('Could not find Vuetify display injection');
|
|
7307
7338
|
const mobile = vue.computed(() => {
|
|
7339
|
+
if (props.mobile != null) return props.mobile;
|
|
7308
7340
|
if (!props.mobileBreakpoint) return display.mobile.value;
|
|
7309
7341
|
const breakpointValue = typeof props.mobileBreakpoint === 'number' ? props.mobileBreakpoint : display.thresholds.value[props.mobileBreakpoint];
|
|
7310
7342
|
return display.width.value < breakpointValue;
|
|
@@ -7322,45 +7354,205 @@
|
|
|
7322
7354
|
};
|
|
7323
7355
|
}
|
|
7324
7356
|
|
|
7325
|
-
|
|
7326
|
-
|
|
7327
|
-
|
|
7328
|
-
|
|
7357
|
+
// Utilities
|
|
7358
|
+
|
|
7359
|
+
// Types
|
|
7360
|
+
|
|
7361
|
+
const GoToSymbol = Symbol.for('vuetify:goto');
|
|
7362
|
+
function genDefaults() {
|
|
7363
|
+
return {
|
|
7364
|
+
container: undefined,
|
|
7365
|
+
duration: 300,
|
|
7366
|
+
layout: false,
|
|
7367
|
+
offset: 0,
|
|
7368
|
+
easing: 'easeInOutCubic',
|
|
7369
|
+
patterns: {
|
|
7370
|
+
linear: t => t,
|
|
7371
|
+
easeInQuad: t => t ** 2,
|
|
7372
|
+
easeOutQuad: t => t * (2 - t),
|
|
7373
|
+
easeInOutQuad: t => t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t,
|
|
7374
|
+
easeInCubic: t => t ** 3,
|
|
7375
|
+
easeOutCubic: t => --t ** 3 + 1,
|
|
7376
|
+
easeInOutCubic: t => t < 0.5 ? 4 * t ** 3 : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,
|
|
7377
|
+
easeInQuart: t => t ** 4,
|
|
7378
|
+
easeOutQuart: t => 1 - --t ** 4,
|
|
7379
|
+
easeInOutQuart: t => t < 0.5 ? 8 * t ** 4 : 1 - 8 * --t ** 4,
|
|
7380
|
+
easeInQuint: t => t ** 5,
|
|
7381
|
+
easeOutQuint: t => 1 + --t ** 5,
|
|
7382
|
+
easeInOutQuint: t => t < 0.5 ? 16 * t ** 5 : 1 + 16 * --t ** 5
|
|
7383
|
+
}
|
|
7384
|
+
};
|
|
7385
|
+
}
|
|
7386
|
+
function getContainer(el) {
|
|
7387
|
+
return getTarget$1(el) ?? (document.scrollingElement || document.body);
|
|
7388
|
+
}
|
|
7389
|
+
function getTarget$1(el) {
|
|
7390
|
+
return typeof el === 'string' ? document.querySelector(el) : refElement(el);
|
|
7391
|
+
}
|
|
7392
|
+
function getOffset$2(target, horizontal, rtl) {
|
|
7393
|
+
if (typeof target === 'number') return horizontal && rtl ? -target : target;
|
|
7394
|
+
let el = getTarget$1(target);
|
|
7395
|
+
let totalOffset = 0;
|
|
7396
|
+
while (el) {
|
|
7397
|
+
totalOffset += horizontal ? el.offsetLeft : el.offsetTop;
|
|
7398
|
+
el = el.offsetParent;
|
|
7399
|
+
}
|
|
7400
|
+
return totalOffset;
|
|
7401
|
+
}
|
|
7402
|
+
function createGoTo(options, locale) {
|
|
7403
|
+
return {
|
|
7404
|
+
rtl: locale.isRtl,
|
|
7405
|
+
options: mergeDeep(genDefaults(), options)
|
|
7406
|
+
};
|
|
7407
|
+
}
|
|
7408
|
+
async function scrollTo(_target, _options, horizontal, goTo) {
|
|
7409
|
+
const property = horizontal ? 'scrollLeft' : 'scrollTop';
|
|
7410
|
+
const options = mergeDeep(goTo?.options ?? genDefaults(), _options);
|
|
7411
|
+
const rtl = goTo?.rtl.value;
|
|
7412
|
+
const target = (typeof _target === 'number' ? _target : getTarget$1(_target)) ?? 0;
|
|
7413
|
+
const container = options.container === 'parent' && target instanceof HTMLElement ? target.parentElement : getContainer(options.container);
|
|
7414
|
+
const ease = typeof options.easing === 'function' ? options.easing : options.patterns[options.easing];
|
|
7415
|
+
if (!ease) throw new TypeError(`Easing function "${options.easing}" not found.`);
|
|
7416
|
+
let targetLocation;
|
|
7417
|
+
if (typeof target === 'number') {
|
|
7418
|
+
targetLocation = getOffset$2(target, horizontal, rtl);
|
|
7419
|
+
} else {
|
|
7420
|
+
targetLocation = getOffset$2(target, horizontal, rtl) - getOffset$2(container, horizontal, rtl);
|
|
7421
|
+
if (options.layout) {
|
|
7422
|
+
const styles = window.getComputedStyle(target);
|
|
7423
|
+
const layoutOffset = styles.getPropertyValue('--v-layout-top');
|
|
7424
|
+
if (layoutOffset) targetLocation -= parseInt(layoutOffset, 10);
|
|
7425
|
+
}
|
|
7426
|
+
}
|
|
7427
|
+
targetLocation += options.offset;
|
|
7428
|
+
targetLocation = clampTarget(container, targetLocation, !!rtl, !!horizontal);
|
|
7429
|
+
const startLocation = container[property] ?? 0;
|
|
7430
|
+
if (targetLocation === startLocation) return Promise.resolve(targetLocation);
|
|
7431
|
+
const startTime = performance.now();
|
|
7432
|
+
return new Promise(resolve => requestAnimationFrame(function step(currentTime) {
|
|
7433
|
+
const timeElapsed = currentTime - startTime;
|
|
7434
|
+
const progress = timeElapsed / options.duration;
|
|
7435
|
+
const location = Math.floor(startLocation + (targetLocation - startLocation) * ease(clamp(progress, 0, 1)));
|
|
7436
|
+
container[property] = location;
|
|
7437
|
+
|
|
7438
|
+
// Allow for some jitter if target time has elapsed
|
|
7439
|
+
if (progress >= 1 && Math.abs(location - container[property]) < 10) {
|
|
7440
|
+
return resolve(targetLocation);
|
|
7441
|
+
} else if (progress > 2) {
|
|
7442
|
+
// The target might not be reachable
|
|
7443
|
+
consoleWarn('Scroll target is not reachable');
|
|
7444
|
+
return resolve(container[property]);
|
|
7445
|
+
}
|
|
7446
|
+
requestAnimationFrame(step);
|
|
7447
|
+
}));
|
|
7448
|
+
}
|
|
7449
|
+
function useGoTo() {
|
|
7450
|
+
let _options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7451
|
+
const goToInstance = vue.inject(GoToSymbol);
|
|
7452
|
+
const {
|
|
7453
|
+
isRtl
|
|
7454
|
+
} = useRtl();
|
|
7455
|
+
if (!goToInstance) throw new Error('[Vuetify] Could not find injected goto instance');
|
|
7456
|
+
const goTo = {
|
|
7457
|
+
...goToInstance,
|
|
7458
|
+
// can be set via VLocaleProvider
|
|
7459
|
+
rtl: vue.computed(() => goToInstance.rtl.value || isRtl.value)
|
|
7460
|
+
};
|
|
7461
|
+
async function go(target, options) {
|
|
7462
|
+
return scrollTo(target, mergeDeep(_options, options), false, goTo);
|
|
7463
|
+
}
|
|
7464
|
+
go.horizontal = async (target, options) => {
|
|
7465
|
+
return scrollTo(target, mergeDeep(_options, options), true, goTo);
|
|
7466
|
+
};
|
|
7467
|
+
return go;
|
|
7468
|
+
}
|
|
7469
|
+
|
|
7470
|
+
/**
|
|
7471
|
+
* Clamp target value to achieve a smooth scroll animation
|
|
7472
|
+
* when the value goes outside the scroll container size
|
|
7473
|
+
*/
|
|
7474
|
+
function clampTarget(container, value, rtl, horizontal) {
|
|
7475
|
+
const {
|
|
7476
|
+
scrollWidth,
|
|
7477
|
+
scrollHeight
|
|
7478
|
+
} = container;
|
|
7479
|
+
const [containerWidth, containerHeight] = container === document.scrollingElement ? [window.innerWidth, window.innerHeight] : [container.offsetWidth, container.offsetHeight];
|
|
7480
|
+
let min;
|
|
7481
|
+
let max;
|
|
7482
|
+
if (horizontal) {
|
|
7483
|
+
if (rtl) {
|
|
7484
|
+
min = -(scrollWidth - containerWidth);
|
|
7485
|
+
max = 0;
|
|
7486
|
+
} else {
|
|
7487
|
+
min = 0;
|
|
7488
|
+
max = scrollWidth - containerWidth;
|
|
7489
|
+
}
|
|
7490
|
+
} else {
|
|
7491
|
+
min = 0;
|
|
7492
|
+
max = scrollHeight + -containerHeight;
|
|
7493
|
+
}
|
|
7494
|
+
return Math.max(Math.min(value, max), min);
|
|
7329
7495
|
}
|
|
7330
|
-
|
|
7496
|
+
|
|
7497
|
+
function calculateUpdatedTarget(_ref) {
|
|
7331
7498
|
let {
|
|
7332
7499
|
selectedElement,
|
|
7333
|
-
|
|
7334
|
-
contentSize,
|
|
7500
|
+
containerElement,
|
|
7335
7501
|
isRtl,
|
|
7336
|
-
currentScrollOffset,
|
|
7337
7502
|
isHorizontal
|
|
7338
7503
|
} = _ref;
|
|
7339
|
-
const
|
|
7340
|
-
const
|
|
7341
|
-
const
|
|
7342
|
-
const
|
|
7343
|
-
const
|
|
7344
|
-
|
|
7345
|
-
|
|
7346
|
-
|
|
7347
|
-
|
|
7348
|
-
|
|
7349
|
-
|
|
7350
|
-
|
|
7351
|
-
|
|
7352
|
-
function calculateCenteredOffset(_ref2) {
|
|
7504
|
+
const containerSize = getOffsetSize(isHorizontal, containerElement);
|
|
7505
|
+
const scrollPosition = getScrollPosition(isHorizontal, isRtl, containerElement);
|
|
7506
|
+
const childrenSize = getOffsetSize(isHorizontal, selectedElement);
|
|
7507
|
+
const childrenStartPosition = getOffsetPosition(isHorizontal, selectedElement);
|
|
7508
|
+
const additionalOffset = childrenSize * 0.4;
|
|
7509
|
+
if (scrollPosition > childrenStartPosition) {
|
|
7510
|
+
return childrenStartPosition - additionalOffset;
|
|
7511
|
+
} else if (scrollPosition + containerSize < childrenStartPosition + childrenSize) {
|
|
7512
|
+
return childrenStartPosition - containerSize + childrenSize + additionalOffset;
|
|
7513
|
+
}
|
|
7514
|
+
return scrollPosition;
|
|
7515
|
+
}
|
|
7516
|
+
function calculateCenteredTarget(_ref2) {
|
|
7353
7517
|
let {
|
|
7354
7518
|
selectedElement,
|
|
7355
|
-
|
|
7356
|
-
contentSize,
|
|
7357
|
-
isRtl,
|
|
7519
|
+
containerElement,
|
|
7358
7520
|
isHorizontal
|
|
7359
7521
|
} = _ref2;
|
|
7360
|
-
const
|
|
7361
|
-
const
|
|
7362
|
-
const
|
|
7363
|
-
return
|
|
7522
|
+
const containerOffsetSize = getOffsetSize(isHorizontal, containerElement);
|
|
7523
|
+
const childrenOffsetPosition = getOffsetPosition(isHorizontal, selectedElement);
|
|
7524
|
+
const childrenOffsetSize = getOffsetSize(isHorizontal, selectedElement);
|
|
7525
|
+
return childrenOffsetPosition - containerOffsetSize / 2 + childrenOffsetSize / 2;
|
|
7526
|
+
}
|
|
7527
|
+
function getScrollSize(isHorizontal, element) {
|
|
7528
|
+
const key = isHorizontal ? 'scrollWidth' : 'scrollHeight';
|
|
7529
|
+
return element?.[key] || 0;
|
|
7530
|
+
}
|
|
7531
|
+
function getClientSize(isHorizontal, element) {
|
|
7532
|
+
const key = isHorizontal ? 'clientWidth' : 'clientHeight';
|
|
7533
|
+
return element?.[key] || 0;
|
|
7534
|
+
}
|
|
7535
|
+
function getScrollPosition(isHorizontal, rtl, element) {
|
|
7536
|
+
if (!element) {
|
|
7537
|
+
return 0;
|
|
7538
|
+
}
|
|
7539
|
+
const {
|
|
7540
|
+
scrollLeft,
|
|
7541
|
+
offsetWidth,
|
|
7542
|
+
scrollWidth
|
|
7543
|
+
} = element;
|
|
7544
|
+
if (isHorizontal) {
|
|
7545
|
+
return rtl ? scrollWidth - offsetWidth + scrollLeft : scrollLeft;
|
|
7546
|
+
}
|
|
7547
|
+
return element.scrollTop;
|
|
7548
|
+
}
|
|
7549
|
+
function getOffsetSize(isHorizontal, element) {
|
|
7550
|
+
const key = isHorizontal ? 'offsetWidth' : 'offsetHeight';
|
|
7551
|
+
return element?.[key] || 0;
|
|
7552
|
+
}
|
|
7553
|
+
function getOffsetPosition(isHorizontal, element) {
|
|
7554
|
+
const key = isHorizontal ? 'offsetLeft' : 'offsetTop';
|
|
7555
|
+
return element?.[key] || 0;
|
|
7364
7556
|
}
|
|
7365
7557
|
|
|
7366
7558
|
// Types
|
|
@@ -7426,6 +7618,14 @@
|
|
|
7426
7618
|
resizeRef: contentRef,
|
|
7427
7619
|
contentRect
|
|
7428
7620
|
} = useResizeObserver();
|
|
7621
|
+
const goTo = useGoTo();
|
|
7622
|
+
const goToOptions = vue.computed(() => {
|
|
7623
|
+
return {
|
|
7624
|
+
container: containerRef.value,
|
|
7625
|
+
duration: 200,
|
|
7626
|
+
easing: 'easeOutQuart'
|
|
7627
|
+
};
|
|
7628
|
+
});
|
|
7429
7629
|
const firstSelectedIndex = vue.computed(() => {
|
|
7430
7630
|
if (!group.selected.value.length) return -1;
|
|
7431
7631
|
return group.items.value.findIndex(item => item.id === group.selected.value[0]);
|
|
@@ -7448,60 +7648,58 @@
|
|
|
7448
7648
|
if (firstSelectedIndex.value >= 0 && contentRef.value) {
|
|
7449
7649
|
// TODO: Is this too naive? Should we store element references in group composable?
|
|
7450
7650
|
const selectedElement = contentRef.value.children[lastSelectedIndex.value];
|
|
7451
|
-
|
|
7452
|
-
scrollOffset.value = 0;
|
|
7453
|
-
} else if (props.centerActive) {
|
|
7454
|
-
scrollOffset.value = calculateCenteredOffset({
|
|
7455
|
-
selectedElement,
|
|
7456
|
-
containerSize: containerSize.value,
|
|
7457
|
-
contentSize: contentSize.value,
|
|
7458
|
-
isRtl: isRtl.value,
|
|
7459
|
-
isHorizontal: isHorizontal.value
|
|
7460
|
-
});
|
|
7461
|
-
} else if (isOverflowing.value) {
|
|
7462
|
-
scrollOffset.value = calculateUpdatedOffset({
|
|
7463
|
-
selectedElement,
|
|
7464
|
-
containerSize: containerSize.value,
|
|
7465
|
-
contentSize: contentSize.value,
|
|
7466
|
-
isRtl: isRtl.value,
|
|
7467
|
-
currentScrollOffset: scrollOffset.value,
|
|
7468
|
-
isHorizontal: isHorizontal.value
|
|
7469
|
-
});
|
|
7470
|
-
}
|
|
7651
|
+
scrollToChildren(selectedElement, props.centerActive);
|
|
7471
7652
|
}
|
|
7472
7653
|
});
|
|
7473
7654
|
});
|
|
7474
7655
|
}
|
|
7475
|
-
const
|
|
7476
|
-
|
|
7477
|
-
|
|
7478
|
-
|
|
7479
|
-
|
|
7480
|
-
|
|
7481
|
-
|
|
7482
|
-
|
|
7483
|
-
|
|
7484
|
-
|
|
7485
|
-
|
|
7486
|
-
|
|
7487
|
-
|
|
7488
|
-
|
|
7489
|
-
|
|
7490
|
-
|
|
7491
|
-
|
|
7492
|
-
|
|
7493
|
-
|
|
7494
|
-
|
|
7495
|
-
|
|
7496
|
-
|
|
7497
|
-
|
|
7498
|
-
|
|
7656
|
+
const isFocused = vue.shallowRef(false);
|
|
7657
|
+
function scrollToChildren(children, center) {
|
|
7658
|
+
let target = 0;
|
|
7659
|
+
if (center) {
|
|
7660
|
+
target = calculateCenteredTarget({
|
|
7661
|
+
containerElement: containerRef.value,
|
|
7662
|
+
isHorizontal: isHorizontal.value,
|
|
7663
|
+
selectedElement: children
|
|
7664
|
+
});
|
|
7665
|
+
} else {
|
|
7666
|
+
target = calculateUpdatedTarget({
|
|
7667
|
+
containerElement: containerRef.value,
|
|
7668
|
+
isHorizontal: isHorizontal.value,
|
|
7669
|
+
isRtl: isRtl.value,
|
|
7670
|
+
selectedElement: children
|
|
7671
|
+
});
|
|
7672
|
+
}
|
|
7673
|
+
scrollToPosition(target);
|
|
7674
|
+
}
|
|
7675
|
+
function scrollToPosition(newPosition) {
|
|
7676
|
+
if (!IN_BROWSER || !containerRef.value) return;
|
|
7677
|
+
const offsetSize = getOffsetSize(isHorizontal.value, containerRef.value);
|
|
7678
|
+
const scrollPosition = getScrollPosition(isHorizontal.value, isRtl.value, containerRef.value);
|
|
7679
|
+
const scrollSize = getScrollSize(isHorizontal.value, containerRef.value);
|
|
7680
|
+
if (scrollSize <= offsetSize ||
|
|
7681
|
+
// Prevent scrolling by only a couple of pixels, which doesn't look smooth
|
|
7682
|
+
Math.abs(newPosition - scrollPosition) < 16) return;
|
|
7683
|
+
if (isHorizontal.value && isRtl.value && containerRef.value) {
|
|
7684
|
+
const {
|
|
7685
|
+
scrollWidth,
|
|
7686
|
+
offsetWidth: containerWidth
|
|
7687
|
+
} = containerRef.value;
|
|
7688
|
+
newPosition = scrollWidth - containerWidth - newPosition;
|
|
7689
|
+
}
|
|
7690
|
+
if (isHorizontal.value) {
|
|
7691
|
+
goTo.horizontal(newPosition, goToOptions.value);
|
|
7692
|
+
} else {
|
|
7693
|
+
goTo(newPosition, goToOptions.value);
|
|
7694
|
+
}
|
|
7499
7695
|
}
|
|
7500
|
-
function onScroll() {
|
|
7501
|
-
|
|
7502
|
-
|
|
7696
|
+
function onScroll(e) {
|
|
7697
|
+
const {
|
|
7698
|
+
scrollTop,
|
|
7699
|
+
scrollLeft
|
|
7700
|
+
} = e.target;
|
|
7701
|
+
scrollOffset.value = isHorizontal.value ? scrollLeft : scrollTop;
|
|
7503
7702
|
}
|
|
7504
|
-
const isFocused = vue.shallowRef(false);
|
|
7505
7703
|
function onFocusin(e) {
|
|
7506
7704
|
isFocused.value = true;
|
|
7507
7705
|
if (!isOverflowing.value || !contentRef.value) return;
|
|
@@ -7511,14 +7709,7 @@
|
|
|
7511
7709
|
for (const el of e.composedPath()) {
|
|
7512
7710
|
for (const item of contentRef.value.children) {
|
|
7513
7711
|
if (item === el) {
|
|
7514
|
-
|
|
7515
|
-
selectedElement: item,
|
|
7516
|
-
containerSize: containerSize.value,
|
|
7517
|
-
contentSize: contentSize.value,
|
|
7518
|
-
isRtl: isRtl.value,
|
|
7519
|
-
currentScrollOffset: scrollOffset.value,
|
|
7520
|
-
isHorizontal: isHorizontal.value
|
|
7521
|
-
});
|
|
7712
|
+
scrollToChildren(item);
|
|
7522
7713
|
return;
|
|
7523
7714
|
}
|
|
7524
7715
|
}
|
|
@@ -7527,66 +7718,79 @@
|
|
|
7527
7718
|
function onFocusout(e) {
|
|
7528
7719
|
isFocused.value = false;
|
|
7529
7720
|
}
|
|
7721
|
+
|
|
7722
|
+
// Affix clicks produce onFocus that we have to ignore to avoid extra scrollToChildren
|
|
7723
|
+
let ignoreFocusEvent = false;
|
|
7530
7724
|
function onFocus(e) {
|
|
7531
|
-
if (!isFocused.value && !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget))) focus();
|
|
7725
|
+
if (!ignoreFocusEvent && !isFocused.value && !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget))) focus();
|
|
7726
|
+
ignoreFocusEvent = false;
|
|
7727
|
+
}
|
|
7728
|
+
function onFocusAffixes() {
|
|
7729
|
+
ignoreFocusEvent = true;
|
|
7532
7730
|
}
|
|
7533
7731
|
function onKeydown(e) {
|
|
7534
7732
|
if (!contentRef.value) return;
|
|
7733
|
+
function toFocus(location) {
|
|
7734
|
+
e.preventDefault();
|
|
7735
|
+
focus(location);
|
|
7736
|
+
}
|
|
7535
7737
|
if (isHorizontal.value) {
|
|
7536
7738
|
if (e.key === 'ArrowRight') {
|
|
7537
|
-
|
|
7739
|
+
toFocus(isRtl.value ? 'prev' : 'next');
|
|
7538
7740
|
} else if (e.key === 'ArrowLeft') {
|
|
7539
|
-
|
|
7741
|
+
toFocus(isRtl.value ? 'next' : 'prev');
|
|
7540
7742
|
}
|
|
7541
7743
|
} else {
|
|
7542
7744
|
if (e.key === 'ArrowDown') {
|
|
7543
|
-
|
|
7745
|
+
toFocus('next');
|
|
7544
7746
|
} else if (e.key === 'ArrowUp') {
|
|
7545
|
-
|
|
7747
|
+
toFocus('prev');
|
|
7546
7748
|
}
|
|
7547
7749
|
}
|
|
7548
7750
|
if (e.key === 'Home') {
|
|
7549
|
-
|
|
7751
|
+
toFocus('first');
|
|
7550
7752
|
} else if (e.key === 'End') {
|
|
7551
|
-
|
|
7753
|
+
toFocus('last');
|
|
7552
7754
|
}
|
|
7553
7755
|
}
|
|
7554
7756
|
function focus(location) {
|
|
7555
7757
|
if (!contentRef.value) return;
|
|
7758
|
+
let el;
|
|
7556
7759
|
if (!location) {
|
|
7557
7760
|
const focusable = focusableChildren(contentRef.value);
|
|
7558
|
-
focusable[0]
|
|
7761
|
+
el = focusable[0];
|
|
7559
7762
|
} else if (location === 'next') {
|
|
7560
|
-
|
|
7561
|
-
if (el)
|
|
7763
|
+
el = contentRef.value.querySelector(':focus')?.nextElementSibling;
|
|
7764
|
+
if (!el) return focus('first');
|
|
7562
7765
|
} else if (location === 'prev') {
|
|
7563
|
-
|
|
7564
|
-
if (el)
|
|
7766
|
+
el = contentRef.value.querySelector(':focus')?.previousElementSibling;
|
|
7767
|
+
if (!el) return focus('last');
|
|
7565
7768
|
} else if (location === 'first') {
|
|
7566
|
-
contentRef.value.firstElementChild
|
|
7769
|
+
el = contentRef.value.firstElementChild;
|
|
7567
7770
|
} else if (location === 'last') {
|
|
7568
|
-
contentRef.value.lastElementChild
|
|
7771
|
+
el = contentRef.value.lastElementChild;
|
|
7772
|
+
}
|
|
7773
|
+
if (el) {
|
|
7774
|
+
el.focus({
|
|
7775
|
+
preventScroll: true
|
|
7776
|
+
});
|
|
7569
7777
|
}
|
|
7570
7778
|
}
|
|
7571
7779
|
function scrollTo(location) {
|
|
7572
|
-
const
|
|
7573
|
-
|
|
7574
|
-
|
|
7575
|
-
const contentStyles = vue.computed(() => {
|
|
7576
|
-
// This adds friction when scrolling the 'wrong' way when at max offset
|
|
7577
|
-
let scrollAmount = scrollOffset.value > contentSize.value - containerSize.value ? -(contentSize.value - containerSize.value) + bias(contentSize.value - containerSize.value - scrollOffset.value) : -scrollOffset.value;
|
|
7780
|
+
const direction = isHorizontal.value && isRtl.value ? -1 : 1;
|
|
7781
|
+
const offsetStep = (location === 'prev' ? -direction : direction) * containerSize.value;
|
|
7782
|
+
let newPosition = scrollOffset.value + offsetStep;
|
|
7578
7783
|
|
|
7579
|
-
//
|
|
7580
|
-
if (
|
|
7581
|
-
|
|
7784
|
+
// TODO: improve it
|
|
7785
|
+
if (isHorizontal.value && isRtl.value && containerRef.value) {
|
|
7786
|
+
const {
|
|
7787
|
+
scrollWidth,
|
|
7788
|
+
offsetWidth: containerWidth
|
|
7789
|
+
} = containerRef.value;
|
|
7790
|
+
newPosition += scrollWidth - containerWidth;
|
|
7582
7791
|
}
|
|
7583
|
-
|
|
7584
|
-
|
|
7585
|
-
transform: `translate${isHorizontal.value ? 'X' : 'Y'}(${sign * scrollAmount}px)`,
|
|
7586
|
-
transition: disableTransition.value ? 'none' : '',
|
|
7587
|
-
willChange: disableTransition.value ? 'transform' : ''
|
|
7588
|
-
};
|
|
7589
|
-
});
|
|
7792
|
+
scrollToPosition(newPosition);
|
|
7793
|
+
}
|
|
7590
7794
|
const slotProps = vue.computed(() => ({
|
|
7591
7795
|
next: group.next,
|
|
7592
7796
|
prev: group.prev,
|
|
@@ -7620,11 +7824,17 @@
|
|
|
7620
7824
|
}
|
|
7621
7825
|
});
|
|
7622
7826
|
const hasPrev = vue.computed(() => {
|
|
7623
|
-
|
|
7827
|
+
// 1 pixel in reserve, may be lost after rounding
|
|
7828
|
+
return Math.abs(scrollOffset.value) > 1;
|
|
7624
7829
|
});
|
|
7625
7830
|
const hasNext = vue.computed(() => {
|
|
7626
|
-
|
|
7627
|
-
|
|
7831
|
+
if (!containerRef.value) return false;
|
|
7832
|
+
const scrollSize = getScrollSize(isHorizontal.value, containerRef.value);
|
|
7833
|
+
const clientSize = getClientSize(isHorizontal.value, containerRef.value);
|
|
7834
|
+
const scrollSizeMax = scrollSize - clientSize;
|
|
7835
|
+
|
|
7836
|
+
// 1 pixel in reserve, may be lost after rounding
|
|
7837
|
+
return scrollSizeMax - Math.abs(scrollOffset.value) > 1;
|
|
7628
7838
|
});
|
|
7629
7839
|
useRender(() => vue.createVNode(props.tag, {
|
|
7630
7840
|
"class": ['v-slide-group', {
|
|
@@ -7641,6 +7851,7 @@
|
|
|
7641
7851
|
"class": ['v-slide-group__prev', {
|
|
7642
7852
|
'v-slide-group__prev--disabled': !hasPrev.value
|
|
7643
7853
|
}],
|
|
7854
|
+
"onMousedown": onFocusAffixes,
|
|
7644
7855
|
"onClick": () => hasPrev.value && scrollTo('prev')
|
|
7645
7856
|
}, [slots.prev?.(slotProps.value) ?? vue.createVNode(VFadeTransition, null, {
|
|
7646
7857
|
default: () => [vue.createVNode(VIcon, {
|
|
@@ -7654,10 +7865,6 @@
|
|
|
7654
7865
|
}, [vue.createVNode("div", {
|
|
7655
7866
|
"ref": contentRef,
|
|
7656
7867
|
"class": "v-slide-group__content",
|
|
7657
|
-
"style": contentStyles.value,
|
|
7658
|
-
"onTouchstartPassive": onTouchstart,
|
|
7659
|
-
"onTouchmovePassive": onTouchmove,
|
|
7660
|
-
"onTouchendPassive": onTouchend,
|
|
7661
7868
|
"onFocusin": onFocusin,
|
|
7662
7869
|
"onFocusout": onFocusout,
|
|
7663
7870
|
"onKeydown": onKeydown
|
|
@@ -7666,6 +7873,7 @@
|
|
|
7666
7873
|
"class": ['v-slide-group__next', {
|
|
7667
7874
|
'v-slide-group__next--disabled': !hasNext.value
|
|
7668
7875
|
}],
|
|
7876
|
+
"onMousedown": onFocusAffixes,
|
|
7669
7877
|
"onClick": () => hasNext.value && scrollTo('next')
|
|
7670
7878
|
}, [slots.next?.(slotProps.value) ?? vue.createVNode(VFadeTransition, null, {
|
|
7671
7879
|
default: () => [vue.createVNode(VIcon, {
|
|
@@ -9460,7 +9668,8 @@
|
|
|
9460
9668
|
if (!isFocused.value && !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget))) focus();
|
|
9461
9669
|
}
|
|
9462
9670
|
function onKeydown(e) {
|
|
9463
|
-
|
|
9671
|
+
const target = e.target;
|
|
9672
|
+
if (!contentRef.value || ['INPUT', 'TEXTAREA'].includes(target.tagName)) return;
|
|
9464
9673
|
if (e.key === 'ArrowDown') {
|
|
9465
9674
|
focus('next');
|
|
9466
9675
|
} else if (e.key === 'ArrowUp') {
|
|
@@ -9580,7 +9789,7 @@
|
|
|
9580
9789
|
}
|
|
9581
9790
|
|
|
9582
9791
|
/** Get the difference between two points */
|
|
9583
|
-
function getOffset$
|
|
9792
|
+
function getOffset$1(a, b) {
|
|
9584
9793
|
return {
|
|
9585
9794
|
x: a.x - b.x,
|
|
9586
9795
|
y: a.y - b.y
|
|
@@ -9827,7 +10036,7 @@
|
|
|
9827
10036
|
let {
|
|
9828
10037
|
x,
|
|
9829
10038
|
y
|
|
9830
|
-
} = getOffset$
|
|
10039
|
+
} = getOffset$1(targetPoint, contentPoint);
|
|
9831
10040
|
switch (_placement.anchor.side) {
|
|
9832
10041
|
case 'top':
|
|
9833
10042
|
y -= offset.value[0];
|
|
@@ -10365,7 +10574,7 @@
|
|
|
10365
10574
|
const target = vue.computed(() => {
|
|
10366
10575
|
if (props.target === 'cursor' && cursorTarget.value) return cursorTarget.value;
|
|
10367
10576
|
if (targetRef.value) return refElement(targetRef.value);
|
|
10368
|
-
return getTarget
|
|
10577
|
+
return getTarget(props.target, vm) || activatorEl.value;
|
|
10369
10578
|
});
|
|
10370
10579
|
const targetEl = vue.computed(() => {
|
|
10371
10580
|
return Array.isArray(target.value) ? undefined : target.value;
|
|
@@ -10437,14 +10646,14 @@
|
|
|
10437
10646
|
}
|
|
10438
10647
|
function getActivator() {
|
|
10439
10648
|
let selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : props.activator;
|
|
10440
|
-
const activator = getTarget
|
|
10649
|
+
const activator = getTarget(selector, vm);
|
|
10441
10650
|
|
|
10442
10651
|
// The activator should only be a valid element (Ignore comments and text nodes)
|
|
10443
10652
|
activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator : undefined;
|
|
10444
10653
|
return activatorEl.value;
|
|
10445
10654
|
}
|
|
10446
10655
|
}
|
|
10447
|
-
function getTarget
|
|
10656
|
+
function getTarget(selector, vm) {
|
|
10448
10657
|
if (!selector) return;
|
|
10449
10658
|
let target;
|
|
10450
10659
|
if (selector === 'parent') {
|
|
@@ -10897,9 +11106,9 @@
|
|
|
10897
11106
|
}
|
|
10898
11107
|
useRender(() => vue.createVNode(vue.Fragment, null, [slots.activator?.({
|
|
10899
11108
|
isActive: isActive.value,
|
|
11109
|
+
targetRef,
|
|
10900
11110
|
props: vue.mergeProps({
|
|
10901
|
-
ref: activatorRef
|
|
10902
|
-
targetRef
|
|
11111
|
+
ref: activatorRef
|
|
10903
11112
|
}, activatorEvents.value, props.activatorProps)
|
|
10904
11113
|
}), isMounted.value && hasContent.value && vue.createVNode(vue.Teleport, {
|
|
10905
11114
|
"disabled": !teleportTarget.value,
|
|
@@ -12378,6 +12587,10 @@
|
|
|
12378
12587
|
const item = items.value.find(item => item.title.toLowerCase().startsWith(keyboardLookupPrefix));
|
|
12379
12588
|
if (item !== undefined) {
|
|
12380
12589
|
model.value = [item];
|
|
12590
|
+
const index = displayItems.value.indexOf(item);
|
|
12591
|
+
IN_BROWSER && window.requestAnimationFrame(() => {
|
|
12592
|
+
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
|
12593
|
+
});
|
|
12381
12594
|
}
|
|
12382
12595
|
}
|
|
12383
12596
|
|
|
@@ -12426,7 +12639,7 @@
|
|
|
12426
12639
|
vTextFieldRef.value.value = '';
|
|
12427
12640
|
}
|
|
12428
12641
|
}
|
|
12429
|
-
vue.watch(
|
|
12642
|
+
vue.watch(menu, () => {
|
|
12430
12643
|
if (!props.hideSelected && menu.value && model.value.length) {
|
|
12431
12644
|
const index = displayItems.value.findIndex(item => model.value.some(s => props.valueComparator(s.value, item.value)));
|
|
12432
12645
|
IN_BROWSER && window.requestAnimationFrame(() => {
|
|
@@ -12880,16 +13093,14 @@
|
|
|
12880
13093
|
listRef.value?.focus('next');
|
|
12881
13094
|
}
|
|
12882
13095
|
if (['Backspace', 'Delete'].includes(e.key)) {
|
|
12883
|
-
if (!props.multiple && hasSelectionSlot.value && model.value.length > 0) return select(model.value[0], false);
|
|
12884
|
-
if (selectionIndex.value
|
|
12885
|
-
|
|
12886
|
-
|
|
12887
|
-
|
|
12888
|
-
|
|
13096
|
+
if (!props.multiple && hasSelectionSlot.value && model.value.length > 0 && !search.value) return select(model.value[0], false);
|
|
13097
|
+
if (~selectionIndex.value) {
|
|
13098
|
+
const originalSelectionIndex = selectionIndex.value;
|
|
13099
|
+
select(model.value[selectionIndex.value], false);
|
|
13100
|
+
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
|
13101
|
+
} else if (e.key === 'Backspace' && !search.value) {
|
|
13102
|
+
selectionIndex.value = length - 1;
|
|
12889
13103
|
}
|
|
12890
|
-
const originalSelectionIndex = selectionIndex.value;
|
|
12891
|
-
select(model.value[selectionIndex.value], false);
|
|
12892
|
-
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
|
12893
13104
|
}
|
|
12894
13105
|
if (!props.multiple) return;
|
|
12895
13106
|
if (e.key === 'ArrowLeft') {
|
|
@@ -12937,7 +13148,7 @@
|
|
|
12937
13148
|
listHasFocus.value = false;
|
|
12938
13149
|
}
|
|
12939
13150
|
function onUpdateModelValue(v) {
|
|
12940
|
-
if (v == null || v === '' && !props.multiple) model.value = [];
|
|
13151
|
+
if (v == null || v === '' && !props.multiple && !hasSelectionSlot.value) model.value = [];
|
|
12941
13152
|
}
|
|
12942
13153
|
const isSelecting = vue.shallowRef(false);
|
|
12943
13154
|
|
|
@@ -13577,12 +13788,12 @@
|
|
|
13577
13788
|
name: 'VDialog',
|
|
13578
13789
|
props: makeVDialogProps(),
|
|
13579
13790
|
emits: {
|
|
13580
|
-
'click:outside': e => true,
|
|
13581
13791
|
'update:modelValue': value => true,
|
|
13582
13792
|
afterLeave: () => true
|
|
13583
13793
|
},
|
|
13584
13794
|
setup(props, _ref) {
|
|
13585
13795
|
let {
|
|
13796
|
+
emit,
|
|
13586
13797
|
slots
|
|
13587
13798
|
} = _ref;
|
|
13588
13799
|
const isActive = useProxiedModel(props, 'modelValue');
|
|
@@ -13625,6 +13836,9 @@
|
|
|
13625
13836
|
});
|
|
13626
13837
|
}
|
|
13627
13838
|
}
|
|
13839
|
+
function onAfterLeave() {
|
|
13840
|
+
emit('afterLeave');
|
|
13841
|
+
}
|
|
13628
13842
|
vue.watch(isActive, async val => {
|
|
13629
13843
|
if (!val) {
|
|
13630
13844
|
await vue.nextTick();
|
|
@@ -13656,7 +13870,8 @@
|
|
|
13656
13870
|
"activatorProps": activatorProps,
|
|
13657
13871
|
"contentProps": contentProps,
|
|
13658
13872
|
"role": "dialog",
|
|
13659
|
-
"onAfterEnter": onAfterEnter
|
|
13873
|
+
"onAfterEnter": onAfterEnter,
|
|
13874
|
+
"onAfterLeave": onAfterLeave
|
|
13660
13875
|
}, scopeId), {
|
|
13661
13876
|
activator: slots.activator,
|
|
13662
13877
|
default: function () {
|
|
@@ -14744,7 +14959,7 @@
|
|
|
14744
14959
|
const imgProps = VImg.filterProps(props);
|
|
14745
14960
|
const windowItemProps = VWindowItem.filterProps(props);
|
|
14746
14961
|
return vue.createVNode(VWindowItem, vue.mergeProps({
|
|
14747
|
-
"class":
|
|
14962
|
+
"class": ['v-carousel-item', props.class]
|
|
14748
14963
|
}, windowItemProps), {
|
|
14749
14964
|
default: () => [vue.createVNode(VImg, vue.mergeProps(attrs, imgProps), slots)]
|
|
14750
14965
|
});
|
|
@@ -15193,7 +15408,7 @@
|
|
|
15193
15408
|
// Types
|
|
15194
15409
|
|
|
15195
15410
|
const VSliderSymbol = Symbol.for('vuetify:v-slider');
|
|
15196
|
-
function getOffset
|
|
15411
|
+
function getOffset(e, el, direction) {
|
|
15197
15412
|
const vertical = direction === 'vertical';
|
|
15198
15413
|
const rect = el.getBoundingClientRect();
|
|
15199
15414
|
const touch = 'touches' in e ? e.touches[0] : e;
|
|
@@ -15352,7 +15567,7 @@
|
|
|
15352
15567
|
activeThumbRef.value.focus();
|
|
15353
15568
|
mousePressed.value = true;
|
|
15354
15569
|
if (activeThumbRef.value.contains(e.target)) {
|
|
15355
|
-
startOffset.value = getOffset
|
|
15570
|
+
startOffset.value = getOffset(e, activeThumbRef.value, props.direction);
|
|
15356
15571
|
} else {
|
|
15357
15572
|
startOffset.value = 0;
|
|
15358
15573
|
onSliderMove({
|
|
@@ -16749,16 +16964,14 @@
|
|
|
16749
16964
|
if (hasSelectionSlot.value) _search.value = '';
|
|
16750
16965
|
}
|
|
16751
16966
|
if (['Backspace', 'Delete'].includes(e.key)) {
|
|
16752
|
-
if (!props.multiple && hasSelectionSlot.value && model.value.length > 0) return select(model.value[0], false);
|
|
16753
|
-
if (selectionIndex.value
|
|
16754
|
-
|
|
16755
|
-
|
|
16756
|
-
|
|
16757
|
-
|
|
16967
|
+
if (!props.multiple && hasSelectionSlot.value && model.value.length > 0 && !search.value) return select(model.value[0], false);
|
|
16968
|
+
if (~selectionIndex.value) {
|
|
16969
|
+
const originalSelectionIndex = selectionIndex.value;
|
|
16970
|
+
select(model.value[selectionIndex.value], false);
|
|
16971
|
+
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
|
16972
|
+
} else if (e.key === 'Backspace' && !search.value) {
|
|
16973
|
+
selectionIndex.value = length - 1;
|
|
16758
16974
|
}
|
|
16759
|
-
const originalSelectionIndex = selectionIndex.value;
|
|
16760
|
-
select(model.value[selectionIndex.value], false);
|
|
16761
|
-
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
|
16762
16975
|
}
|
|
16763
16976
|
if (!props.multiple) return;
|
|
16764
16977
|
if (e.key === 'ArrowLeft') {
|
|
@@ -16827,7 +17040,7 @@
|
|
|
16827
17040
|
listHasFocus.value = false;
|
|
16828
17041
|
}
|
|
16829
17042
|
function onUpdateModelValue(v) {
|
|
16830
|
-
if (v == null || v === '' && !props.multiple) model.value = [];
|
|
17043
|
+
if (v == null || v === '' && !props.multiple && !hasSelectionSlot.value) model.value = [];
|
|
16831
17044
|
}
|
|
16832
17045
|
vue.watch(isFocused, (val, oldVal) => {
|
|
16833
17046
|
if (val || val === oldVal) return;
|
|
@@ -18399,110 +18612,6 @@
|
|
|
18399
18612
|
return Math.floor(diffDays / 7) + 1;
|
|
18400
18613
|
}
|
|
18401
18614
|
|
|
18402
|
-
// Utilities
|
|
18403
|
-
|
|
18404
|
-
// Types
|
|
18405
|
-
|
|
18406
|
-
const GoToSymbol = Symbol.for('vuetify:goto');
|
|
18407
|
-
function genDefaults() {
|
|
18408
|
-
return {
|
|
18409
|
-
container: undefined,
|
|
18410
|
-
duration: 300,
|
|
18411
|
-
layout: false,
|
|
18412
|
-
offset: 0,
|
|
18413
|
-
easing: 'easeInOutCubic',
|
|
18414
|
-
patterns: {
|
|
18415
|
-
linear: t => t,
|
|
18416
|
-
easeInQuad: t => t ** 2,
|
|
18417
|
-
easeOutQuad: t => t * (2 - t),
|
|
18418
|
-
easeInOutQuad: t => t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t,
|
|
18419
|
-
easeInCubic: t => t ** 3,
|
|
18420
|
-
easeOutCubic: t => --t ** 3 + 1,
|
|
18421
|
-
easeInOutCubic: t => t < 0.5 ? 4 * t ** 3 : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,
|
|
18422
|
-
easeInQuart: t => t ** 4,
|
|
18423
|
-
easeOutQuart: t => 1 - --t ** 4,
|
|
18424
|
-
easeInOutQuart: t => t < 0.5 ? 8 * t ** 4 : 1 - 8 * --t ** 4,
|
|
18425
|
-
easeInQuint: t => t ** 5,
|
|
18426
|
-
easeOutQuint: t => 1 + --t ** 5,
|
|
18427
|
-
easeInOutQuint: t => t < 0.5 ? 16 * t ** 5 : 1 + 16 * --t ** 5
|
|
18428
|
-
}
|
|
18429
|
-
};
|
|
18430
|
-
}
|
|
18431
|
-
function getContainer(el) {
|
|
18432
|
-
return getTarget(el) ?? (document.scrollingElement || document.body);
|
|
18433
|
-
}
|
|
18434
|
-
function getTarget(el) {
|
|
18435
|
-
return typeof el === 'string' ? document.querySelector(el) : refElement(el);
|
|
18436
|
-
}
|
|
18437
|
-
function getOffset(target, horizontal, rtl) {
|
|
18438
|
-
if (typeof target === 'number') return horizontal && rtl ? -target : target;
|
|
18439
|
-
let el = getTarget(target);
|
|
18440
|
-
let totalOffset = 0;
|
|
18441
|
-
while (el) {
|
|
18442
|
-
totalOffset += horizontal ? el.offsetLeft : el.offsetTop;
|
|
18443
|
-
el = el.offsetParent;
|
|
18444
|
-
}
|
|
18445
|
-
return totalOffset;
|
|
18446
|
-
}
|
|
18447
|
-
function createGoTo(options, locale) {
|
|
18448
|
-
return {
|
|
18449
|
-
rtl: locale.isRtl,
|
|
18450
|
-
options: mergeDeep(genDefaults(), options)
|
|
18451
|
-
};
|
|
18452
|
-
}
|
|
18453
|
-
async function scrollTo(_target, _options, horizontal, goTo) {
|
|
18454
|
-
const property = horizontal ? 'scrollLeft' : 'scrollTop';
|
|
18455
|
-
const options = mergeDeep(goTo?.options ?? genDefaults(), _options);
|
|
18456
|
-
const rtl = goTo?.rtl.value;
|
|
18457
|
-
const target = (typeof _target === 'number' ? _target : getTarget(_target)) ?? 0;
|
|
18458
|
-
const container = options.container === 'parent' && target instanceof HTMLElement ? target.parentElement : getContainer(options.container);
|
|
18459
|
-
const ease = typeof options.easing === 'function' ? options.easing : options.patterns[options.easing];
|
|
18460
|
-
if (!ease) throw new TypeError(`Easing function "${options.easing}" not found.`);
|
|
18461
|
-
let targetLocation;
|
|
18462
|
-
if (typeof target === 'number') {
|
|
18463
|
-
targetLocation = getOffset(target, horizontal, rtl);
|
|
18464
|
-
} else {
|
|
18465
|
-
targetLocation = getOffset(target, horizontal, rtl) - getOffset(container, horizontal, rtl);
|
|
18466
|
-
if (options.layout) {
|
|
18467
|
-
const styles = window.getComputedStyle(target);
|
|
18468
|
-
const layoutOffset = styles.getPropertyValue('--v-layout-top');
|
|
18469
|
-
if (layoutOffset) targetLocation -= parseInt(layoutOffset, 10);
|
|
18470
|
-
}
|
|
18471
|
-
}
|
|
18472
|
-
targetLocation += options.offset;
|
|
18473
|
-
const startLocation = container[property] ?? 0;
|
|
18474
|
-
if (targetLocation === startLocation) return Promise.resolve(targetLocation);
|
|
18475
|
-
const startTime = performance.now();
|
|
18476
|
-
return new Promise(resolve => requestAnimationFrame(function step(currentTime) {
|
|
18477
|
-
const timeElapsed = currentTime - startTime;
|
|
18478
|
-
const progress = timeElapsed / options.duration;
|
|
18479
|
-
const location = Math.floor(startLocation + (targetLocation - startLocation) * ease(clamp(progress, 0, 1)));
|
|
18480
|
-
container[property] = location;
|
|
18481
|
-
|
|
18482
|
-
// Allow for some jitter if target time has elapsed
|
|
18483
|
-
if (progress >= 1 && Math.abs(location - container[property]) < 10) {
|
|
18484
|
-
return resolve(targetLocation);
|
|
18485
|
-
} else if (progress > 2) {
|
|
18486
|
-
// The target might not be reachable
|
|
18487
|
-
consoleWarn('Scroll target is not reachable');
|
|
18488
|
-
return resolve(container[property]);
|
|
18489
|
-
}
|
|
18490
|
-
requestAnimationFrame(step);
|
|
18491
|
-
}));
|
|
18492
|
-
}
|
|
18493
|
-
function useGoTo() {
|
|
18494
|
-
let _options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
18495
|
-
const goTo = vue.inject(GoToSymbol);
|
|
18496
|
-
if (!goTo) throw new Error('[Vuetify] Could not find injected goto instance');
|
|
18497
|
-
async function go(target, options) {
|
|
18498
|
-
return scrollTo(target, mergeDeep(_options, options), false, goTo);
|
|
18499
|
-
}
|
|
18500
|
-
go.horizontal = async (target, options) => {
|
|
18501
|
-
return scrollTo(target, mergeDeep(_options, options), true, goTo);
|
|
18502
|
-
};
|
|
18503
|
-
return go;
|
|
18504
|
-
}
|
|
18505
|
-
|
|
18506
18615
|
// Composables
|
|
18507
18616
|
|
|
18508
18617
|
// Types
|
|
@@ -19653,6 +19762,7 @@
|
|
|
19653
19762
|
headerProps: {
|
|
19654
19763
|
type: Object
|
|
19655
19764
|
},
|
|
19765
|
+
...makeDisplayProps(),
|
|
19656
19766
|
...makeLoaderProps()
|
|
19657
19767
|
}, 'VDataTableHeaders');
|
|
19658
19768
|
const VDataTableHeaders = genericComponent()({
|
|
@@ -19662,6 +19772,9 @@
|
|
|
19662
19772
|
let {
|
|
19663
19773
|
slots
|
|
19664
19774
|
} = _ref;
|
|
19775
|
+
const {
|
|
19776
|
+
t
|
|
19777
|
+
} = useLocale();
|
|
19665
19778
|
const {
|
|
19666
19779
|
toggleSort,
|
|
19667
19780
|
sortBy,
|
|
@@ -19697,6 +19810,10 @@
|
|
|
19697
19810
|
backgroundColorClasses,
|
|
19698
19811
|
backgroundColorStyles
|
|
19699
19812
|
} = useBackgroundColor(props, 'color');
|
|
19813
|
+
const {
|
|
19814
|
+
displayClasses,
|
|
19815
|
+
mobile
|
|
19816
|
+
} = useDisplay(props);
|
|
19700
19817
|
const slotProps = vue.computed(() => ({
|
|
19701
19818
|
headers: headers.value,
|
|
19702
19819
|
columns: columns.value,
|
|
@@ -19708,6 +19825,9 @@
|
|
|
19708
19825
|
selectAll,
|
|
19709
19826
|
getSortIcon
|
|
19710
19827
|
}));
|
|
19828
|
+
const headerCellClasses = vue.computed(() => ['v-data-table__th', {
|
|
19829
|
+
'v-data-table__th--sticky': props.sticky
|
|
19830
|
+
}, displayClasses.value, loaderClasses.value]);
|
|
19711
19831
|
const VDataTableHeaderCell = _ref2 => {
|
|
19712
19832
|
let {
|
|
19713
19833
|
column,
|
|
@@ -19719,12 +19839,11 @@
|
|
|
19719
19839
|
return vue.createVNode(VDataTableColumn, vue.mergeProps({
|
|
19720
19840
|
"tag": "th",
|
|
19721
19841
|
"align": column.align,
|
|
19722
|
-
"class": [
|
|
19842
|
+
"class": [{
|
|
19723
19843
|
'v-data-table__th--sortable': column.sortable,
|
|
19724
19844
|
'v-data-table__th--sorted': isSorted(column),
|
|
19725
|
-
'v-data-table__th--fixed': column.fixed
|
|
19726
|
-
|
|
19727
|
-
}, loaderClasses.value],
|
|
19845
|
+
'v-data-table__th--fixed': column.fixed
|
|
19846
|
+
}, ...headerCellClasses.value],
|
|
19728
19847
|
"style": {
|
|
19729
19848
|
width: convertToUnit(column.width),
|
|
19730
19849
|
minWidth: convertToUnit(column.minWidth),
|
|
@@ -19773,8 +19892,53 @@
|
|
|
19773
19892
|
}
|
|
19774
19893
|
});
|
|
19775
19894
|
};
|
|
19895
|
+
const VDataTableMobileHeaderCell = () => {
|
|
19896
|
+
const headerProps = vue.mergeProps(props.headerProps ?? {} ?? {});
|
|
19897
|
+
const displayItems = vue.computed(() => {
|
|
19898
|
+
return columns.value.filter(column => column?.sortable);
|
|
19899
|
+
});
|
|
19900
|
+
const appendIcon = vue.computed(() => {
|
|
19901
|
+
return allSelected.value ? '$checkboxOn' : someSelected.value ? '$checkboxIndeterminate' : '$checkboxOff';
|
|
19902
|
+
});
|
|
19903
|
+
return vue.createVNode(VDataTableColumn, vue.mergeProps({
|
|
19904
|
+
"tag": "th",
|
|
19905
|
+
"class": [...headerCellClasses.value],
|
|
19906
|
+
"colspan": headers.value.length + 1
|
|
19907
|
+
}, headerProps), {
|
|
19908
|
+
default: () => [vue.createVNode("div", {
|
|
19909
|
+
"class": "v-data-table-header__content"
|
|
19910
|
+
}, [vue.createVNode(VSelect, {
|
|
19911
|
+
"chips": true,
|
|
19912
|
+
"class": "v-data-table__td-sort-select",
|
|
19913
|
+
"clearable": true,
|
|
19914
|
+
"density": "default",
|
|
19915
|
+
"items": displayItems.value,
|
|
19916
|
+
"label": t('$vuetify.dataTable.sortBy'),
|
|
19917
|
+
"multiple": props.multiSort,
|
|
19918
|
+
"variant": "underlined",
|
|
19919
|
+
"onClick:clear": () => sortBy.value = [],
|
|
19920
|
+
"appendIcon": appendIcon.value,
|
|
19921
|
+
"onClick:append": () => selectAll(!allSelected.value)
|
|
19922
|
+
}, {
|
|
19923
|
+
...slots,
|
|
19924
|
+
chip: props => vue.createVNode(VChip, {
|
|
19925
|
+
"onClick": props.item.raw?.sortable ? () => toggleSort(props.item.raw) : undefined,
|
|
19926
|
+
"onMousedown": e => {
|
|
19927
|
+
e.preventDefault();
|
|
19928
|
+
e.stopPropagation();
|
|
19929
|
+
}
|
|
19930
|
+
}, {
|
|
19931
|
+
default: () => [props.item.title, vue.createVNode(VIcon, {
|
|
19932
|
+
"class": ['v-data-table__td-sort-icon', isSorted(props.item.raw) && 'v-data-table__td-sort-icon-active'],
|
|
19933
|
+
"icon": getSortIcon(props.item.raw),
|
|
19934
|
+
"size": "small"
|
|
19935
|
+
}, null)]
|
|
19936
|
+
})
|
|
19937
|
+
})])]
|
|
19938
|
+
});
|
|
19939
|
+
};
|
|
19776
19940
|
useRender(() => {
|
|
19777
|
-
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, {
|
|
19941
|
+
return mobile.value ? vue.createVNode("tr", null, [vue.createVNode(VDataTableMobileHeaderCell, null, null)]) : 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, {
|
|
19778
19942
|
"column": column,
|
|
19779
19943
|
"x": x,
|
|
19780
19944
|
"y": y
|
|
@@ -19882,7 +20046,8 @@
|
|
|
19882
20046
|
cellProps: [Object, Function],
|
|
19883
20047
|
onClick: EventProp(),
|
|
19884
20048
|
onContextmenu: EventProp(),
|
|
19885
|
-
onDblclick: EventProp()
|
|
20049
|
+
onDblclick: EventProp(),
|
|
20050
|
+
...makeDisplayProps()
|
|
19886
20051
|
}, 'VDataTableRow');
|
|
19887
20052
|
const VDataTableRow = genericComponent()({
|
|
19888
20053
|
name: 'VDataTableRow',
|
|
@@ -19891,27 +20056,40 @@
|
|
|
19891
20056
|
let {
|
|
19892
20057
|
slots
|
|
19893
20058
|
} = _ref;
|
|
20059
|
+
const {
|
|
20060
|
+
displayClasses,
|
|
20061
|
+
mobile
|
|
20062
|
+
} = useDisplay(props, 'v-data-table__tr');
|
|
19894
20063
|
const {
|
|
19895
20064
|
isSelected,
|
|
19896
|
-
toggleSelect
|
|
20065
|
+
toggleSelect,
|
|
20066
|
+
someSelected,
|
|
20067
|
+
allSelected,
|
|
20068
|
+
selectAll
|
|
19897
20069
|
} = useSelection();
|
|
19898
20070
|
const {
|
|
19899
20071
|
isExpanded,
|
|
19900
20072
|
toggleExpand
|
|
19901
20073
|
} = useExpanded();
|
|
20074
|
+
const {
|
|
20075
|
+
toggleSort,
|
|
20076
|
+
sortBy,
|
|
20077
|
+
isSorted
|
|
20078
|
+
} = useSort();
|
|
19902
20079
|
const {
|
|
19903
20080
|
columns
|
|
19904
20081
|
} = useHeaders();
|
|
19905
20082
|
useRender(() => vue.createVNode("tr", {
|
|
19906
20083
|
"class": ['v-data-table__tr', {
|
|
19907
20084
|
'v-data-table__tr--clickable': !!(props.onClick || props.onContextmenu || props.onDblclick)
|
|
19908
|
-
}],
|
|
20085
|
+
}, displayClasses.value],
|
|
19909
20086
|
"onClick": props.onClick,
|
|
19910
20087
|
"onContextmenu": props.onContextmenu,
|
|
19911
20088
|
"onDblclick": props.onDblclick
|
|
19912
20089
|
}, [props.item && columns.value.map((column, i) => {
|
|
19913
20090
|
const item = props.item;
|
|
19914
20091
|
const slotName = `item.${column.key}`;
|
|
20092
|
+
const headerSlotName = `header.${column.key}`;
|
|
19915
20093
|
const slotProps = {
|
|
19916
20094
|
index: props.index,
|
|
19917
20095
|
item: item.raw,
|
|
@@ -19923,6 +20101,16 @@
|
|
|
19923
20101
|
isExpanded,
|
|
19924
20102
|
toggleExpand
|
|
19925
20103
|
};
|
|
20104
|
+
const columnSlotProps = {
|
|
20105
|
+
column,
|
|
20106
|
+
selectAll,
|
|
20107
|
+
isSorted,
|
|
20108
|
+
toggleSort,
|
|
20109
|
+
sortBy: sortBy.value,
|
|
20110
|
+
someSelected: someSelected.value,
|
|
20111
|
+
allSelected: allSelected.value,
|
|
20112
|
+
getSortIcon: () => ''
|
|
20113
|
+
};
|
|
19926
20114
|
const cellProps = typeof props.cellProps === 'function' ? props.cellProps({
|
|
19927
20115
|
index: slotProps.index,
|
|
19928
20116
|
item: slotProps.item,
|
|
@@ -19938,16 +20126,20 @@
|
|
|
19938
20126
|
}) : column.cellProps;
|
|
19939
20127
|
return vue.createVNode(VDataTableColumn, vue.mergeProps({
|
|
19940
20128
|
"align": column.align,
|
|
20129
|
+
"class": {
|
|
20130
|
+
'v-data-table__td--expanded-row': column.key === 'data-table-expand',
|
|
20131
|
+
'v-data-table__td--select-row': column.key === 'data-table-select'
|
|
20132
|
+
},
|
|
19941
20133
|
"fixed": column.fixed,
|
|
19942
20134
|
"fixedOffset": column.fixedOffset,
|
|
19943
20135
|
"lastFixed": column.lastFixed,
|
|
20136
|
+
"maxWidth": !mobile.value ? column.maxWidth : undefined,
|
|
19944
20137
|
"noPadding": column.key === 'data-table-select' || column.key === 'data-table-expand',
|
|
19945
|
-
"
|
|
19946
|
-
"
|
|
19947
|
-
"nowrap": column.nowrap
|
|
20138
|
+
"nowrap": column.nowrap,
|
|
20139
|
+
"width": !mobile.value ? column.width : undefined
|
|
19948
20140
|
}, cellProps, columnCellProps), {
|
|
19949
20141
|
default: () => {
|
|
19950
|
-
if (slots[slotName]) return slots[slotName](slotProps);
|
|
20142
|
+
if (slots[slotName] && !mobile.value) return slots[slotName]?.(slotProps);
|
|
19951
20143
|
if (column.key === 'data-table-select') {
|
|
19952
20144
|
return slots['item.data-table-select']?.(slotProps) ?? vue.createVNode(VCheckboxBtn, {
|
|
19953
20145
|
"disabled": !item.selectable,
|
|
@@ -19963,7 +20155,12 @@
|
|
|
19963
20155
|
"onClick": vue.withModifiers(() => toggleExpand(item), ['stop'])
|
|
19964
20156
|
}, null);
|
|
19965
20157
|
}
|
|
19966
|
-
|
|
20158
|
+
const displayValue = vue.toDisplayString(slotProps.value);
|
|
20159
|
+
return !mobile.value ? displayValue : vue.createVNode(vue.Fragment, null, [vue.createVNode("div", {
|
|
20160
|
+
"class": "v-data-table__td-title"
|
|
20161
|
+
}, [slots[headerSlotName]?.(columnSlotProps) ?? column.title]), vue.createVNode("div", {
|
|
20162
|
+
"class": "v-data-table__td-value"
|
|
20163
|
+
}, [slots[slotName]?.(slotProps) ?? displayValue])]);
|
|
19967
20164
|
}
|
|
19968
20165
|
});
|
|
19969
20166
|
})]));
|
|
@@ -19988,7 +20185,8 @@
|
|
|
19988
20185
|
default: '$vuetify.noDataText'
|
|
19989
20186
|
},
|
|
19990
20187
|
rowProps: [Object, Function],
|
|
19991
|
-
cellProps: [Object, Function]
|
|
20188
|
+
cellProps: [Object, Function],
|
|
20189
|
+
...makeDisplayProps()
|
|
19992
20190
|
}, 'VDataTableRows');
|
|
19993
20191
|
const VDataTableRows = genericComponent()({
|
|
19994
20192
|
name: 'VDataTableRows',
|
|
@@ -20018,6 +20216,9 @@
|
|
|
20018
20216
|
const {
|
|
20019
20217
|
t
|
|
20020
20218
|
} = useLocale();
|
|
20219
|
+
const {
|
|
20220
|
+
mobile
|
|
20221
|
+
} = useDisplay(props);
|
|
20021
20222
|
useRender(() => {
|
|
20022
20223
|
if (props.loading && (!props.items.length || slots.loading)) {
|
|
20023
20224
|
return vue.createVNode("tr", {
|
|
@@ -20072,7 +20273,8 @@
|
|
|
20072
20273
|
} : undefined,
|
|
20073
20274
|
index,
|
|
20074
20275
|
item,
|
|
20075
|
-
cellProps: props.cellProps
|
|
20276
|
+
cellProps: props.cellProps,
|
|
20277
|
+
mobile: mobile.value
|
|
20076
20278
|
}, getPrefixedEventHandlers(attrs, ':row', () => slotProps), typeof props.rowProps === 'function' ? props.rowProps({
|
|
20077
20279
|
item: slotProps.item,
|
|
20078
20280
|
index: slotProps.index,
|
|
@@ -21899,8 +22101,18 @@
|
|
|
21899
22101
|
emit('update:year', value);
|
|
21900
22102
|
}
|
|
21901
22103
|
vue.watch(model, (val, oldVal) => {
|
|
21902
|
-
const before = adapter.date(wrapInArray(
|
|
21903
|
-
const after = adapter.date(wrapInArray(
|
|
22104
|
+
const before = adapter.date(wrapInArray(oldVal)[oldVal.length - 1]);
|
|
22105
|
+
const after = adapter.date(wrapInArray(val)[val.length - 1]);
|
|
22106
|
+
const newMonth = adapter.getMonth(after);
|
|
22107
|
+
const newYear = adapter.getYear(after);
|
|
22108
|
+
if (newMonth !== month.value) {
|
|
22109
|
+
month.value = newMonth;
|
|
22110
|
+
onUpdateMonth(month.value);
|
|
22111
|
+
}
|
|
22112
|
+
if (newYear !== year.value) {
|
|
22113
|
+
year.value = newYear;
|
|
22114
|
+
onUpdateYear(year.value);
|
|
22115
|
+
}
|
|
21904
22116
|
isReversing.value = adapter.isBefore(before, after);
|
|
21905
22117
|
});
|
|
21906
22118
|
useRender(() => {
|
|
@@ -22243,7 +22455,7 @@
|
|
|
22243
22455
|
}),
|
|
22244
22456
|
modelValue: {
|
|
22245
22457
|
type: [Array, Object],
|
|
22246
|
-
default:
|
|
22458
|
+
default: props => props.multiple ? [] : null,
|
|
22247
22459
|
validator: val => {
|
|
22248
22460
|
return wrapInArray(val).every(v => v != null && typeof v === 'object');
|
|
22249
22461
|
}
|
|
@@ -22902,6 +23114,7 @@
|
|
|
22902
23114
|
|
|
22903
23115
|
const makeVLayoutProps = propsFactory({
|
|
22904
23116
|
...makeComponentProps(),
|
|
23117
|
+
...makeDimensionProps(),
|
|
22905
23118
|
...makeLayoutProps()
|
|
22906
23119
|
}, 'VLayout');
|
|
22907
23120
|
const VLayout = genericComponent()({
|
|
@@ -22918,10 +23131,13 @@
|
|
|
22918
23131
|
items,
|
|
22919
23132
|
layoutRef
|
|
22920
23133
|
} = createLayout(props);
|
|
23134
|
+
const {
|
|
23135
|
+
dimensionStyles
|
|
23136
|
+
} = useDimension(props);
|
|
22921
23137
|
useRender(() => vue.createVNode("div", {
|
|
22922
23138
|
"ref": layoutRef,
|
|
22923
23139
|
"class": [layoutClasses.value, props.class],
|
|
22924
|
-
"style": [layoutStyles.value, props.style]
|
|
23140
|
+
"style": [dimensionStyles.value, layoutStyles.value, props.style]
|
|
22925
23141
|
}, [vue.createVNode(vue.Suspense, null, {
|
|
22926
23142
|
default: () => [vue.createVNode(vue.Fragment, null, [slots.default?.()])]
|
|
22927
23143
|
})]));
|
|
@@ -23284,6 +23500,7 @@
|
|
|
23284
23500
|
|
|
23285
23501
|
function useTouch(_ref) {
|
|
23286
23502
|
let {
|
|
23503
|
+
el,
|
|
23287
23504
|
isActive,
|
|
23288
23505
|
isTemporary,
|
|
23289
23506
|
width,
|
|
@@ -23333,10 +23550,10 @@
|
|
|
23333
23550
|
const inTouchZone = position.value === 'left' ? touchX < touchZone : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone : position.value === 'top' ? touchY < touchZone : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone : oops();
|
|
23334
23551
|
const inElement = isActive.value && (position.value === 'left' ? touchX < width.value : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value : position.value === 'top' ? touchY < width.value : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value : oops());
|
|
23335
23552
|
if (inTouchZone || inElement || isActive.value && isTemporary.value) {
|
|
23336
|
-
maybeDragging = true;
|
|
23337
23553
|
start = [touchX, touchY];
|
|
23338
23554
|
offset.value = getOffset(isHorizontal.value ? touchX : touchY, isActive.value);
|
|
23339
23555
|
dragProgress.value = getProgress(isHorizontal.value ? touchX : touchY);
|
|
23556
|
+
maybeDragging = offset.value > -20 && offset.value < 80;
|
|
23340
23557
|
endTouch(e);
|
|
23341
23558
|
addMovement(e);
|
|
23342
23559
|
}
|
|
@@ -23396,6 +23613,18 @@
|
|
|
23396
23613
|
transition: 'none'
|
|
23397
23614
|
} : undefined;
|
|
23398
23615
|
});
|
|
23616
|
+
useToggleScope(isDragging, () => {
|
|
23617
|
+
const transform = el.value?.style.transform ?? null;
|
|
23618
|
+
const transition = el.value?.style.transition ?? null;
|
|
23619
|
+
vue.watchEffect(() => {
|
|
23620
|
+
el.value?.style.setProperty('transform', dragStyles.value?.transform || 'none');
|
|
23621
|
+
el.value?.style.setProperty('transition', dragStyles.value?.transition || null);
|
|
23622
|
+
});
|
|
23623
|
+
vue.onScopeDispose(() => {
|
|
23624
|
+
el.value?.style.setProperty('transform', transform);
|
|
23625
|
+
el.value?.style.setProperty('transition', transition);
|
|
23626
|
+
});
|
|
23627
|
+
});
|
|
23399
23628
|
return {
|
|
23400
23629
|
isDragging,
|
|
23401
23630
|
dragProgress,
|
|
@@ -23434,6 +23663,7 @@
|
|
|
23434
23663
|
},
|
|
23435
23664
|
image: String,
|
|
23436
23665
|
temporary: Boolean,
|
|
23666
|
+
persistent: Boolean,
|
|
23437
23667
|
touchless: Boolean,
|
|
23438
23668
|
width: {
|
|
23439
23669
|
type: [Number, String],
|
|
@@ -23515,6 +23745,7 @@
|
|
|
23515
23745
|
const location = vue.computed(() => {
|
|
23516
23746
|
return toPhysical(props.location, isRtl.value);
|
|
23517
23747
|
});
|
|
23748
|
+
const isPersistent = vue.computed(() => props.persistent);
|
|
23518
23749
|
const isTemporary = vue.computed(() => !props.permanent && (mobile.value || props.temporary));
|
|
23519
23750
|
const isSticky = vue.computed(() => props.sticky && !isTemporary.value && location.value !== 'bottom');
|
|
23520
23751
|
useToggleScope(() => props.expandOnHover && props.rail != null, () => {
|
|
@@ -23534,9 +23765,9 @@
|
|
|
23534
23765
|
}
|
|
23535
23766
|
const {
|
|
23536
23767
|
isDragging,
|
|
23537
|
-
dragProgress
|
|
23538
|
-
dragStyles
|
|
23768
|
+
dragProgress
|
|
23539
23769
|
} = useTouch({
|
|
23770
|
+
el: rootEl,
|
|
23540
23771
|
isActive,
|
|
23541
23772
|
isTemporary,
|
|
23542
23773
|
width,
|
|
@@ -23547,6 +23778,7 @@
|
|
|
23547
23778
|
const size = isTemporary.value ? 0 : props.rail && props.expandOnHover ? Number(props.railWidth) : width.value;
|
|
23548
23779
|
return isDragging.value ? size * dragProgress.value : size;
|
|
23549
23780
|
});
|
|
23781
|
+
const elementSize = vue.computed(() => ['top', 'bottom'].includes(props.location) ? 0 : width.value);
|
|
23550
23782
|
const {
|
|
23551
23783
|
layoutItemStyles,
|
|
23552
23784
|
layoutItemScrimStyles,
|
|
@@ -23556,7 +23788,7 @@
|
|
|
23556
23788
|
order: vue.computed(() => parseInt(props.order, 10)),
|
|
23557
23789
|
position: location,
|
|
23558
23790
|
layoutSize,
|
|
23559
|
-
elementSize
|
|
23791
|
+
elementSize,
|
|
23560
23792
|
active: vue.computed(() => isActive.value || isDragging.value),
|
|
23561
23793
|
disableTransitions: vue.computed(() => isDragging.value),
|
|
23562
23794
|
absolute: vue.computed(() =>
|
|
@@ -23598,10 +23830,13 @@
|
|
|
23598
23830
|
'v-navigation-drawer--is-hovering': isHovering.value,
|
|
23599
23831
|
'v-navigation-drawer--rail': props.rail,
|
|
23600
23832
|
'v-navigation-drawer--temporary': isTemporary.value,
|
|
23833
|
+
'v-navigation-drawer--persistent': isPersistent.value,
|
|
23601
23834
|
'v-navigation-drawer--active': isActive.value,
|
|
23602
23835
|
'v-navigation-drawer--sticky': isSticky.value
|
|
23603
23836
|
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, displayClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
23604
|
-
"style": [backgroundColorStyles.value, layoutItemStyles.value,
|
|
23837
|
+
"style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, stickyStyles.value, props.style, ['top', 'bottom'].includes(location.value) ? {
|
|
23838
|
+
height: 'auto'
|
|
23839
|
+
} : {}]
|
|
23605
23840
|
}, scopeId, attrs), {
|
|
23606
23841
|
default: () => [hasImage && vue.createVNode("div", {
|
|
23607
23842
|
"key": "image",
|
|
@@ -23636,7 +23871,10 @@
|
|
|
23636
23871
|
default: () => [isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && vue.createVNode("div", vue.mergeProps({
|
|
23637
23872
|
"class": ['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value],
|
|
23638
23873
|
"style": [scrimStyles.value, scrimColor.backgroundColorStyles.value],
|
|
23639
|
-
"onClick": () =>
|
|
23874
|
+
"onClick": () => {
|
|
23875
|
+
if (isPersistent.value) return;
|
|
23876
|
+
isActive.value = false;
|
|
23877
|
+
}
|
|
23640
23878
|
}, scopeId), null)]
|
|
23641
23879
|
})]);
|
|
23642
23880
|
});
|
|
@@ -24117,8 +24355,8 @@
|
|
|
24117
24355
|
} = useRtl();
|
|
24118
24356
|
function getActiveThumb(e) {
|
|
24119
24357
|
if (!startThumbRef.value || !stopThumbRef.value) return;
|
|
24120
|
-
const startOffset = getOffset
|
|
24121
|
-
const stopOffset = getOffset
|
|
24358
|
+
const startOffset = getOffset(e, startThumbRef.value.$el, props.direction);
|
|
24359
|
+
const stopOffset = getOffset(e, stopThumbRef.value.$el, props.direction);
|
|
24122
24360
|
const a = Math.abs(startOffset);
|
|
24123
24361
|
const b = Math.abs(stopOffset);
|
|
24124
24362
|
return a < b || a === b && startOffset < 0 ? startThumbRef.value.$el : stopThumbRef.value.$el;
|
|
@@ -24713,9 +24951,6 @@
|
|
|
24713
24951
|
slots
|
|
24714
24952
|
} = _ref;
|
|
24715
24953
|
const isActive = useProxiedModel(props, 'modelValue');
|
|
24716
|
-
const {
|
|
24717
|
-
locationStyles
|
|
24718
|
-
} = useLocation(props);
|
|
24719
24954
|
const {
|
|
24720
24955
|
positionClasses
|
|
24721
24956
|
} = usePosition(props);
|
|
@@ -24737,6 +24972,15 @@
|
|
|
24737
24972
|
const overlay = vue.ref();
|
|
24738
24973
|
const timerRef = vue.ref();
|
|
24739
24974
|
const isHovering = vue.shallowRef(false);
|
|
24975
|
+
const startY = vue.shallowRef(0);
|
|
24976
|
+
const mainStyles = vue.ref();
|
|
24977
|
+
const hasLayout = vue.inject(VuetifyLayoutKey, undefined);
|
|
24978
|
+
useToggleScope(() => !!hasLayout, () => {
|
|
24979
|
+
const layout = useLayout();
|
|
24980
|
+
vue.watchEffect(() => {
|
|
24981
|
+
mainStyles.value = layout.mainStyles.value;
|
|
24982
|
+
});
|
|
24983
|
+
});
|
|
24740
24984
|
vue.watch(isActive, startTimeout);
|
|
24741
24985
|
vue.watch(() => props.timeout, startTimeout);
|
|
24742
24986
|
vue.onMounted(() => {
|
|
@@ -24766,6 +25010,20 @@
|
|
|
24766
25010
|
isHovering.value = false;
|
|
24767
25011
|
startTimeout();
|
|
24768
25012
|
}
|
|
25013
|
+
function onTouchstart(event) {
|
|
25014
|
+
startY.value = event.touches[0].clientY;
|
|
25015
|
+
}
|
|
25016
|
+
function onTouchend(event) {
|
|
25017
|
+
if (Math.abs(startY.value - event.changedTouches[0].clientY) > 50) {
|
|
25018
|
+
isActive.value = false;
|
|
25019
|
+
}
|
|
25020
|
+
}
|
|
25021
|
+
const locationClasses = vue.computed(() => {
|
|
25022
|
+
return props.location.split(' ').reduce((acc, loc) => {
|
|
25023
|
+
acc[`v-snackbar--${loc}`] = true;
|
|
25024
|
+
return acc;
|
|
25025
|
+
}, {});
|
|
25026
|
+
});
|
|
24769
25027
|
useRender(() => {
|
|
24770
25028
|
const overlayProps = VOverlay.filterProps(props);
|
|
24771
25029
|
const hasContent = !!(slots.default || slots.text || props.text);
|
|
@@ -24776,14 +25034,14 @@
|
|
|
24776
25034
|
'v-snackbar--multi-line': props.multiLine && !props.vertical,
|
|
24777
25035
|
'v-snackbar--timer': !!props.timer,
|
|
24778
25036
|
'v-snackbar--vertical': props.vertical
|
|
24779
|
-
}, positionClasses.value, props.class],
|
|
24780
|
-
"style": props.style
|
|
25037
|
+
}, locationClasses.value, positionClasses.value, props.class],
|
|
25038
|
+
"style": [mainStyles.value, props.style]
|
|
24781
25039
|
}, overlayProps, {
|
|
24782
25040
|
"modelValue": isActive.value,
|
|
24783
25041
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
24784
25042
|
"contentProps": vue.mergeProps({
|
|
24785
25043
|
class: ['v-snackbar__wrapper', themeClasses.value, colorClasses.value, roundedClasses.value, variantClasses.value],
|
|
24786
|
-
style: [
|
|
25044
|
+
style: [colorStyles.value],
|
|
24787
25045
|
onPointerenter,
|
|
24788
25046
|
onPointerleave
|
|
24789
25047
|
}, overlayProps.contentProps),
|
|
@@ -24791,7 +25049,9 @@
|
|
|
24791
25049
|
"noClickAnimation": true,
|
|
24792
25050
|
"scrim": false,
|
|
24793
25051
|
"scrollStrategy": "none",
|
|
24794
|
-
"_disableGlobalStack": true
|
|
25052
|
+
"_disableGlobalStack": true,
|
|
25053
|
+
"onTouchstartPassive": onTouchstart,
|
|
25054
|
+
"onTouchend": onTouchend
|
|
24795
25055
|
}, scopeId), {
|
|
24796
25056
|
default: () => [genOverlays(false, 'v-snackbar'), props.timer && !isHovering.value && vue.createVNode("div", {
|
|
24797
25057
|
"key": "timer",
|
|
@@ -26667,7 +26927,7 @@
|
|
|
26667
26927
|
function mountComponent(component, props) {
|
|
26668
26928
|
return function (el, binding, vnode) {
|
|
26669
26929
|
const _props = typeof props === 'function' ? props(binding) : props;
|
|
26670
|
-
const text = binding.value?.text ?? binding.value;
|
|
26930
|
+
const text = binding.value?.text ?? binding.value ?? _props?.text;
|
|
26671
26931
|
const value = isObject(binding.value) ? binding.value : {};
|
|
26672
26932
|
|
|
26673
26933
|
// Get the children from the props or directive value, or the element's children
|
|
@@ -26676,7 +26936,9 @@
|
|
|
26676
26936
|
// If vnode.ctx is the same as the instance, then we're bound to a plain element
|
|
26677
26937
|
// and need to find the nearest parent component instance to inherit provides from
|
|
26678
26938
|
const provides = (vnode.ctx === binding.instance.$ ? findComponentParent(vnode, binding.instance.$)?.provides : vnode.ctx?.provides) ?? binding.instance.$.provides;
|
|
26679
|
-
const node = vue.h(component, vue.mergeProps(_props, value),
|
|
26939
|
+
const node = vue.h(component, vue.mergeProps(_props, value), {
|
|
26940
|
+
default: () => children
|
|
26941
|
+
});
|
|
26680
26942
|
node.appContext = Object.assign(Object.create(null), binding.instance.$.appContext, {
|
|
26681
26943
|
provides
|
|
26682
26944
|
});
|
|
@@ -26835,7 +27097,7 @@
|
|
|
26835
27097
|
goTo
|
|
26836
27098
|
};
|
|
26837
27099
|
}
|
|
26838
|
-
const version$1 = "3.6.0
|
|
27100
|
+
const version$1 = "3.6.0";
|
|
26839
27101
|
createVuetify$1.version = version$1;
|
|
26840
27102
|
|
|
26841
27103
|
// Vue's inject() can only be used in setup
|
|
@@ -26860,7 +27122,7 @@
|
|
|
26860
27122
|
...options
|
|
26861
27123
|
});
|
|
26862
27124
|
};
|
|
26863
|
-
const version = "3.6.0
|
|
27125
|
+
const version = "3.6.0";
|
|
26864
27126
|
createVuetify.version = version;
|
|
26865
27127
|
|
|
26866
27128
|
exports.blueprints = index;
|