@vuetify/nightly 3.2.0-dev-20230214.0 → 3.2.0-dev-20230322.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -17
- package/dist/json/attributes.json +243 -59
- package/dist/json/tags.json +48 -2
- package/dist/json/web-types.json +1648 -279
- package/dist/vuetify-labs.css +666 -482
- package/dist/vuetify-labs.d.ts +59419 -13475
- package/dist/vuetify-labs.esm.js +797 -531
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +797 -531
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +524 -355
- package/dist/vuetify.d.ts +55670 -14368
- package/dist/vuetify.esm.js +607 -462
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +607 -462
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +793 -793
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.ts +6 -9
- package/lib/blueprints/md1.d.ts +6 -9
- package/lib/blueprints/md2.d.ts +6 -9
- package/lib/blueprints/md3.d.ts +6 -9
- package/lib/blueprints/md3.mjs +6 -0
- package/lib/blueprints/md3.mjs.map +1 -1
- package/lib/components/VAlert/VAlert.css +1 -1
- package/lib/components/VAlert/VAlert.mjs +29 -15
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/_variables.scss +1 -1
- package/lib/components/VAlert/index.d.ts +515 -65
- package/lib/components/VApp/VApp.css +1 -0
- package/lib/components/VApp/VApp.sass +1 -0
- package/lib/components/VApp/index.d.ts +161 -17
- package/lib/components/VAppBar/VAppBar.mjs +9 -4
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.ts +624 -82
- package/lib/components/VAutocomplete/VAutocomplete.mjs +23 -8
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.ts +1744 -113
- package/lib/components/VAvatar/index.d.ts +207 -25
- package/lib/components/VBadge/index.d.ts +286 -36
- package/lib/components/VBanner/VBanner.mjs +19 -12
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/index.d.ts +485 -67
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +6 -2
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBottomNavigation/index.d.ts +323 -36
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +11 -7
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.ts +346 -42
- package/lib/components/VBtn/VBtn.css +0 -5
- package/lib/components/VBtn/VBtn.mjs +65 -58
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +0 -7
- package/lib/components/VBtn/_variables.scss +0 -2
- package/lib/components/VBtn/index.d.ts +454 -59
- package/lib/components/VBtnGroup/VBtnGroup.mjs +1 -7
- package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
- package/lib/components/VBtnGroup/index.d.ts +187 -22
- package/lib/components/VBtnToggle/VBtnToggle.mjs +2 -2
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VBtnToggle/index.d.ts +248 -32
- package/lib/components/VCard/VCard.mjs +10 -6
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCardItem.mjs +27 -23
- package/lib/components/VCard/VCardItem.mjs.map +1 -1
- package/lib/components/VCard/index.d.ts +958 -132
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/index.d.ts +585 -87
- package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +1 -4
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.ts +841 -119
- package/lib/components/VChip/VChip.css +110 -90
- package/lib/components/VChip/VChip.mjs +70 -48
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/_mixins.scss +27 -23
- package/lib/components/VChip/index.d.ts +476 -66
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VChipGroup/index.d.ts +229 -28
- package/lib/components/VCode/index.d.ts +112 -13
- package/lib/components/VColorPicker/VColorPicker.mjs +9 -1
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.css +2 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +36 -18
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.sass +2 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs +4 -4
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +2 -2
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VColorPicker/index.d.ts +284 -20
- package/lib/components/VColorPicker/util/index.mjs +2 -5
- package/lib/components/VColorPicker/util/index.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +23 -8
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +1756 -113
- package/lib/components/VCounter/index.d.ts +1909 -78
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +4 -1
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
- package/lib/components/VDefaultsProvider/index.d.ts +136 -18
- package/lib/components/VDialog/VDialog.css +31 -24
- package/lib/components/VDialog/VDialog.mjs +2 -2
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +19 -12
- package/lib/components/VDialog/index.d.ts +2403 -124
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VDivider/index.d.ts +132 -19
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.ts +741 -104
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/index.d.ts +179 -23
- package/lib/components/VFileInput/VFileInput.mjs +1 -0
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.ts +1069 -93
- package/lib/components/VFooter/VFooter.css +2 -0
- package/lib/components/VFooter/VFooter.sass +2 -0
- package/lib/components/VFooter/_variables.scss +2 -0
- package/lib/components/VFooter/index.d.ts +206 -25
- package/lib/components/VForm/index.d.ts +207 -20
- package/lib/components/VGrid/VCol.mjs +6 -5
- package/lib/components/VGrid/VCol.mjs.map +1 -1
- package/lib/components/VGrid/VRow.mjs +4 -4
- package/lib/components/VGrid/VRow.mjs.map +1 -1
- package/lib/components/VGrid/index.d.ts +745 -64
- package/lib/components/VHover/index.d.ts +188 -29
- package/lib/components/VIcon/index.d.ts +500 -44
- package/lib/components/VImg/VImg.mjs +2 -2
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/index.d.ts +281 -40
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/index.d.ts +321 -47
- package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
- package/lib/components/VItemGroup/index.d.ts +313 -45
- package/lib/components/VKbd/VKbd.css +1 -0
- package/lib/components/VKbd/VKbd.sass +1 -0
- package/lib/components/VKbd/_variables.scss +1 -0
- package/lib/components/VKbd/index.d.ts +112 -13
- package/lib/components/VLabel/index.d.ts +115 -16
- package/lib/components/VLayout/index.d.ts +302 -35
- package/lib/components/VLazy/VLazy.mjs +4 -1
- package/lib/components/VLazy/VLazy.mjs.map +1 -1
- package/lib/components/VLazy/index.d.ts +222 -27
- package/lib/components/VList/VListChildren.mjs +2 -2
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +1 -4
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +23 -19
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListSubheader.mjs.map +1 -1
- package/lib/components/VList/index.d.ts +1500 -191
- package/lib/components/VLocaleProvider/index.d.ts +123 -16
- package/lib/components/VMain/index.d.ts +121 -14
- package/lib/components/VMenu/VMenu.css +4 -4
- package/lib/components/VMenu/VMenu.mjs +8 -7
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.sass +1 -1
- package/lib/components/VMenu/index.d.ts +2411 -121
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VMessages/index.d.ts +1934 -87
- package/lib/components/VNavigationDrawer/index.d.ts +382 -47
- package/lib/components/VNoSsr/index.d.ts +6 -0
- package/lib/components/VOverlay/VOverlay.css +2 -2
- package/lib/components/VOverlay/VOverlay.mjs +1 -4
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.sass +1 -1
- package/lib/components/VOverlay/_variables.scss +1 -1
- package/lib/components/VOverlay/index.d.ts +527 -75
- package/lib/components/VOverlay/scrollStrategies.mjs +2 -2
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/index.d.ts +504 -56
- package/lib/components/VParallax/VParallax.mjs +3 -3
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VParallax/index.d.ts +144 -19
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressCircular/index.d.ts +189 -22
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/index.d.ts +325 -42
- package/lib/components/VRadio/index.d.ts +318 -46
- package/lib/components/VRadioGroup/VRadioGroup.mjs +4 -6
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.d.ts +468 -66
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.ts +530 -66
- package/lib/components/VRating/VRating.css +0 -4
- package/lib/components/VRating/VRating.mjs +6 -35
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/VRating.sass +0 -5
- package/lib/components/VRating/index.d.ts +309 -38
- package/lib/components/VResponsive/index.d.ts +144 -21
- package/lib/components/VSelect/VSelect.mjs +23 -8
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +3150 -247
- package/lib/components/VSelectionControl/VSelectionControl.mjs +1 -4
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.ts +90 -10
- package/lib/components/VSelectionControlGroup/index.d.ts +245 -35
- package/lib/components/VSheet/VSheet.mjs +16 -12
- package/lib/components/VSheet/VSheet.mjs.map +1 -1
- package/lib/components/VSheet/index.d.ts +196 -27
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.ts +488 -70
- package/lib/components/VSlider/VSliderTrack.mjs +1 -0
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/index.d.ts +523 -65
- package/lib/components/VSlider/slider.mjs +5 -6
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.css +2 -9
- package/lib/components/VSnackbar/VSnackbar.mjs +10 -11
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.sass +3 -10
- package/lib/components/VSnackbar/index.d.ts +1255 -74
- package/lib/components/VSwitch/VSwitch.mjs +2 -2
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/index.d.ts +503 -75
- package/lib/components/VSystemBar/VSystemBar.css +5 -1
- package/lib/components/VSystemBar/VSystemBar.mjs +6 -2
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.sass +5 -1
- package/lib/components/VSystemBar/_variables.scss +4 -1
- package/lib/components/VSystemBar/index.d.ts +186 -23
- package/lib/components/VTable/VTable.mjs.map +1 -1
- package/lib/components/VTable/index.d.ts +193 -26
- package/lib/components/VTabs/VTab.mjs +7 -23
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/index.d.ts +628 -64
- package/lib/components/VTextField/VTextField.mjs +9 -5
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/index.d.ts +1447 -101
- package/lib/components/VTextarea/VTextarea.mjs +8 -1
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/index.d.ts +1043 -93
- package/lib/components/VThemeProvider/index.d.ts +127 -16
- package/lib/components/VTimeline/VTimelineDivider.mjs +18 -10
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VTimeline/index.d.ts +446 -60
- package/lib/components/VToolbar/VToolbar.mjs +10 -9
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
- package/lib/components/VToolbar/index.d.ts +552 -73
- package/lib/components/VTooltip/VTooltip.css +3 -3
- package/lib/components/VTooltip/VTooltip.mjs +4 -4
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/VTooltip.sass +1 -1
- package/lib/components/VTooltip/index.d.ts +1315 -73
- package/lib/components/VValidation/index.d.ts +204 -27
- package/lib/components/VWindow/index.d.ts +541 -75
- package/lib/components/index.d.ts +55694 -14389
- package/lib/components/transitions/createTransition.mjs +1 -1
- package/lib/components/transitions/createTransition.mjs.map +1 -1
- package/lib/components/transitions/index.d.ts +2144 -259
- package/lib/composables/defaults.mjs +5 -1
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/display.mjs +15 -10
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/loader.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs +2 -2
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/nested/selectStrategies.mjs +7 -1
- package/lib/composables/nested/selectStrategies.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs +1 -1
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/resizeObserver.mjs.map +1 -1
- package/lib/composables/stack.mjs +2 -2
- package/lib/composables/stack.mjs.map +1 -1
- package/lib/composables/theme.mjs +28 -23
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/variant.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.ts +6 -9
- package/lib/labs/VDataTable/VDataTable.css +15 -0
- package/lib/labs/VDataTable/VDataTable.mjs +45 -19
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTable.sass +9 -0
- package/lib/labs/VDataTable/VDataTableFooter.mjs +3 -2
- package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRow.mjs +8 -2
- package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +6 -7
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +41 -19
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +27 -14
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/expand.mjs +1 -1
- package/lib/labs/VDataTable/composables/expand.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/group.mjs +12 -1
- package/lib/labs/VDataTable/composables/group.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/options.mjs +4 -10
- package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/paginate.mjs +25 -4
- package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/select.mjs +1 -1
- package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/sort.mjs +19 -3
- package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.ts +4934 -317
- package/lib/labs/VVirtualScroll/VVirtualScroll.mjs +18 -5
- package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/labs/VVirtualScroll/index.d.ts +41 -7
- package/lib/labs/components.d.ts +4970 -324
- package/lib/locale/adapters/vue-i18n.d.ts +1 -1
- package/lib/locale/adapters/vue-i18n.mjs +1 -1
- package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
- package/lib/locale/index.mjs +1 -1
- package/lib/locale/index.mjs.map +1 -1
- package/lib/styles/elements/_global.sass +0 -4
- package/lib/styles/generic/_index.scss +0 -1
- package/lib/styles/generic/_transitions.scss +111 -9
- package/lib/styles/main.css +316 -167
- package/lib/styles/settings/_utilities.scss +7 -0
- package/lib/styles/tools/_sheet.sass +3 -6
- package/lib/styles/utilities/_display.sass +6 -5
- package/lib/styles/utilities/_elevation.scss +13 -0
- package/lib/styles/utilities/_index.sass +3 -2
- package/lib/styles/utilities/_screenreaders.sass +13 -11
- package/lib/util/animation.mjs +8 -1
- package/lib/util/animation.mjs.map +1 -1
- package/lib/util/colorUtils.mjs +4 -5
- package/lib/util/colorUtils.mjs.map +1 -1
- package/lib/util/defineComponent.mjs +15 -7
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/helpers.mjs +4 -0
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +15 -7
- package/lib/styles/generic/_elevation.scss +0 -10
package/dist/vuetify-labs.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.2.0-dev-
|
|
2
|
+
* Vuetify v3.2.0-dev-20230322.0
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -203,6 +203,10 @@ function clamp(value) {
|
|
|
203
203
|
let max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
204
204
|
return Math.max(min, Math.min(max, value));
|
|
205
205
|
}
|
|
206
|
+
function getDecimals(value) {
|
|
207
|
+
const trimmedStr = value.toString().trim();
|
|
208
|
+
return trimmedStr.includes('.') ? trimmedStr.length - trimmedStr.indexOf('.') - 1 : 0;
|
|
209
|
+
}
|
|
206
210
|
function padEnd(str, length) {
|
|
207
211
|
let char = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';
|
|
208
212
|
return str + char.repeat(Math.max(0, length - str.length));
|
|
@@ -485,7 +489,14 @@ function animate(el, keyframes, options) {
|
|
|
485
489
|
if (typeof el.animate === 'undefined') return {
|
|
486
490
|
finished: Promise.resolve()
|
|
487
491
|
};
|
|
488
|
-
|
|
492
|
+
let animation;
|
|
493
|
+
try {
|
|
494
|
+
animation = el.animate(keyframes, options);
|
|
495
|
+
} catch (err) {
|
|
496
|
+
return {
|
|
497
|
+
finished: Promise.resolve()
|
|
498
|
+
};
|
|
499
|
+
}
|
|
489
500
|
if (typeof animation.finished === 'undefined') {
|
|
490
501
|
animation.finished = new Promise(resolve => {
|
|
491
502
|
animation.onfinish = () => {
|
|
@@ -780,11 +791,12 @@ function RGBtoHex(_ref2) {
|
|
|
780
791
|
b,
|
|
781
792
|
a
|
|
782
793
|
} = _ref2;
|
|
783
|
-
return `#${[toHex(r), toHex(g), toHex(b), a !== undefined ? toHex(Math.round(a * 255)) : '
|
|
794
|
+
return `#${[toHex(r), toHex(g), toHex(b), a !== undefined ? toHex(Math.round(a * 255)) : ''].join('')}`;
|
|
784
795
|
}
|
|
785
796
|
function HexToRGB(hex) {
|
|
797
|
+
hex = parseHex(hex);
|
|
786
798
|
let [r, g, b, a] = chunk(hex, 2).map(c => parseInt(c, 16));
|
|
787
|
-
a = a === undefined ? a :
|
|
799
|
+
a = a === undefined ? a : a / 255;
|
|
788
800
|
return {
|
|
789
801
|
r,
|
|
790
802
|
g,
|
|
@@ -807,9 +819,7 @@ function parseHex(hex) {
|
|
|
807
819
|
if (hex.length === 3 || hex.length === 4) {
|
|
808
820
|
hex = hex.split('').map(x => x + x).join('');
|
|
809
821
|
}
|
|
810
|
-
if (hex.length
|
|
811
|
-
hex = padEnd(hex, 8, 'F');
|
|
812
|
-
} else {
|
|
822
|
+
if (hex.length !== 6) {
|
|
813
823
|
hex = padEnd(padEnd(hex, 6), 8, 'F');
|
|
814
824
|
}
|
|
815
825
|
return hex;
|
|
@@ -950,6 +960,8 @@ function provideDefaults(defaults, options) {
|
|
|
950
960
|
const injectedDefaults = useDefaults();
|
|
951
961
|
const providedDefaults = ref(defaults);
|
|
952
962
|
const newDefaults = computed(() => {
|
|
963
|
+
const disabled = unref(options?.disabled);
|
|
964
|
+
if (disabled) return injectedDefaults.value;
|
|
953
965
|
const scoped = unref(options?.scoped);
|
|
954
966
|
const reset = unref(options?.reset);
|
|
955
967
|
const root = unref(options?.root);
|
|
@@ -960,7 +972,9 @@ function provideDefaults(defaults, options) {
|
|
|
960
972
|
if (reset || root) {
|
|
961
973
|
const len = Number(reset || Infinity);
|
|
962
974
|
for (let i = 0; i <= len; i++) {
|
|
963
|
-
if (!properties
|
|
975
|
+
if (!properties || !('prev' in properties)) {
|
|
976
|
+
break;
|
|
977
|
+
}
|
|
964
978
|
properties = properties.prev;
|
|
965
979
|
}
|
|
966
980
|
return properties;
|
|
@@ -1002,15 +1016,22 @@ function useToggleScope(source, fn) {
|
|
|
1002
1016
|
function propIsDefined(vnode, prop) {
|
|
1003
1017
|
return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';
|
|
1004
1018
|
}
|
|
1005
|
-
|
|
1019
|
+
|
|
1020
|
+
// No props
|
|
1021
|
+
|
|
1022
|
+
// Implementation
|
|
1023
|
+
function defineComponent(options) {
|
|
1006
1024
|
options._setup = options._setup ?? options.setup;
|
|
1007
1025
|
if (!options.name) {
|
|
1008
1026
|
consoleWarn('The component is missing an explicit name, unable to generate default prop value');
|
|
1009
1027
|
return options;
|
|
1010
1028
|
}
|
|
1011
1029
|
if (options._setup) {
|
|
1012
|
-
options.props = options.props ?? {};
|
|
1013
|
-
|
|
1030
|
+
options.props = propsFactory(options.props ?? {}, toKebabCase(options.name))();
|
|
1031
|
+
const propKeys = Object.keys(options.props);
|
|
1032
|
+
options.filterProps = function filterProps(props) {
|
|
1033
|
+
return pick(props, propKeys);
|
|
1034
|
+
};
|
|
1014
1035
|
options.props._as = String;
|
|
1015
1036
|
options.setup = function setup(props, ctx) {
|
|
1016
1037
|
const defaults = useDefaults();
|
|
@@ -1021,10 +1042,11 @@ const defineComponent = function defineComponent(options) {
|
|
|
1021
1042
|
const componentDefaults = computed(() => defaults.value[props._as ?? options.name]);
|
|
1022
1043
|
const _props = new Proxy(props, {
|
|
1023
1044
|
get(target, prop) {
|
|
1045
|
+
const propValue = Reflect.get(target, prop);
|
|
1024
1046
|
if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
|
|
1025
|
-
return componentDefaults.value?.[prop] ?? defaults.value.global?.[prop] ??
|
|
1047
|
+
return componentDefaults.value?.[prop] ?? defaults.value.global?.[prop] ?? propValue;
|
|
1026
1048
|
}
|
|
1027
|
-
return
|
|
1049
|
+
return propValue;
|
|
1028
1050
|
}
|
|
1029
1051
|
});
|
|
1030
1052
|
const _subcomponentDefaults = shallowRef();
|
|
@@ -1049,7 +1071,7 @@ const defineComponent = function defineComponent(options) {
|
|
|
1049
1071
|
};
|
|
1050
1072
|
}
|
|
1051
1073
|
return options;
|
|
1052
|
-
}
|
|
1074
|
+
}
|
|
1053
1075
|
// Implementation
|
|
1054
1076
|
function genericComponent() {
|
|
1055
1077
|
let exposeDefaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
@@ -1670,17 +1692,9 @@ function createTheme(options) {
|
|
|
1670
1692
|
if (current.value.dark) {
|
|
1671
1693
|
createCssClass(lines, ':root', ['color-scheme: dark']);
|
|
1672
1694
|
}
|
|
1695
|
+
createCssClass(lines, ':root', genCssVariables(current.value));
|
|
1673
1696
|
for (const [themeName, theme] of Object.entries(computedThemes.value)) {
|
|
1674
|
-
|
|
1675
|
-
variables,
|
|
1676
|
-
dark
|
|
1677
|
-
} = theme;
|
|
1678
|
-
createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${dark ? 'dark' : 'normal'}`, ...genCssVariables(theme), ...Object.keys(variables).map(key => {
|
|
1679
|
-
const value = variables[key];
|
|
1680
|
-
const color = typeof value === 'string' && value.startsWith('#') ? parseColor$1(value) : undefined;
|
|
1681
|
-
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
|
1682
|
-
return `--v-${key}: ${rgb ?? value}`;
|
|
1683
|
-
})]);
|
|
1697
|
+
createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)]);
|
|
1684
1698
|
}
|
|
1685
1699
|
const bgLines = [];
|
|
1686
1700
|
const fgLines = [];
|
|
@@ -1697,22 +1711,30 @@ function createTheme(options) {
|
|
|
1697
1711
|
lines.push(...bgLines, ...fgLines);
|
|
1698
1712
|
return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
|
|
1699
1713
|
});
|
|
1714
|
+
function getHead() {
|
|
1715
|
+
return {
|
|
1716
|
+
style: [{
|
|
1717
|
+
children: styles.value,
|
|
1718
|
+
id: 'vuetify-theme-stylesheet',
|
|
1719
|
+
nonce: parsedOptions.cspNonce || false
|
|
1720
|
+
}]
|
|
1721
|
+
};
|
|
1722
|
+
}
|
|
1700
1723
|
function install(app) {
|
|
1701
1724
|
const head = app._context.provides.usehead;
|
|
1702
1725
|
if (head) {
|
|
1703
|
-
head.
|
|
1704
|
-
const
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
if (
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
}
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
watchEffect(() => head.updateDOM());
|
|
1726
|
+
if (head.push) {
|
|
1727
|
+
const entry = head.push(getHead);
|
|
1728
|
+
watch(styles, () => {
|
|
1729
|
+
entry.patch(getHead);
|
|
1730
|
+
});
|
|
1731
|
+
} else {
|
|
1732
|
+
if (IN_BROWSER) {
|
|
1733
|
+
head.addHeadObjs(computed(getHead));
|
|
1734
|
+
watchEffect(() => head.updateDOM());
|
|
1735
|
+
} else {
|
|
1736
|
+
head.addHeadObjs(getHead());
|
|
1737
|
+
}
|
|
1716
1738
|
}
|
|
1717
1739
|
} else {
|
|
1718
1740
|
let styleEl = IN_BROWSER ? document.getElementById('vuetify-theme-stylesheet') : null;
|
|
@@ -1785,6 +1807,11 @@ function genCssVariables(theme) {
|
|
|
1785
1807
|
variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
|
|
1786
1808
|
}
|
|
1787
1809
|
}
|
|
1810
|
+
for (const [key, value] of Object.entries(theme.variables)) {
|
|
1811
|
+
const color = typeof value === 'string' && value.startsWith('#') ? parseColor$1(value) : undefined;
|
|
1812
|
+
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
|
1813
|
+
variables.push(`--v-${key}: ${rgb ?? value}`);
|
|
1814
|
+
}
|
|
1788
1815
|
return variables;
|
|
1789
1816
|
}
|
|
1790
1817
|
|
|
@@ -1814,7 +1841,7 @@ function useProxiedModel(props, prop, defaultValue) {
|
|
|
1814
1841
|
});
|
|
1815
1842
|
const model = computed({
|
|
1816
1843
|
get() {
|
|
1817
|
-
return transformIn(
|
|
1844
|
+
return transformIn(isControlled.value ? props[prop] : internal.value);
|
|
1818
1845
|
},
|
|
1819
1846
|
set(internalValue) {
|
|
1820
1847
|
const newValue = transformOut(internalValue);
|
|
@@ -2014,7 +2041,7 @@ const defaultRtl = {
|
|
|
2014
2041
|
en: false,
|
|
2015
2042
|
es: false,
|
|
2016
2043
|
et: false,
|
|
2017
|
-
fa:
|
|
2044
|
+
fa: true,
|
|
2018
2045
|
fi: false,
|
|
2019
2046
|
fr: false,
|
|
2020
2047
|
hr: false,
|
|
@@ -2147,6 +2174,7 @@ const VDefaultsProvider = genericComponent(false)({
|
|
|
2147
2174
|
name: 'VDefaultsProvider',
|
|
2148
2175
|
props: {
|
|
2149
2176
|
defaults: Object,
|
|
2177
|
+
disabled: Boolean,
|
|
2150
2178
|
reset: [Number, String],
|
|
2151
2179
|
root: Boolean,
|
|
2152
2180
|
scoped: Boolean
|
|
@@ -2157,6 +2185,7 @@ const VDefaultsProvider = genericComponent(false)({
|
|
|
2157
2185
|
} = _ref;
|
|
2158
2186
|
const {
|
|
2159
2187
|
defaults,
|
|
2188
|
+
disabled,
|
|
2160
2189
|
reset,
|
|
2161
2190
|
root,
|
|
2162
2191
|
scoped
|
|
@@ -2164,7 +2193,8 @@ const VDefaultsProvider = genericComponent(false)({
|
|
|
2164
2193
|
provideDefaults(defaults, {
|
|
2165
2194
|
reset,
|
|
2166
2195
|
root,
|
|
2167
|
-
scoped
|
|
2196
|
+
scoped,
|
|
2197
|
+
disabled
|
|
2168
2198
|
});
|
|
2169
2199
|
return () => slots.default?.();
|
|
2170
2200
|
}
|
|
@@ -2175,7 +2205,7 @@ const VDefaultsProvider = genericComponent(false)({
|
|
|
2175
2205
|
// Types
|
|
2176
2206
|
|
|
2177
2207
|
function createCssTransition(name) {
|
|
2178
|
-
let origin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '
|
|
2208
|
+
let origin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'center center';
|
|
2179
2209
|
let mode = arguments.length > 2 ? arguments[2] : undefined;
|
|
2180
2210
|
return genericComponent()({
|
|
2181
2211
|
name,
|
|
@@ -2786,7 +2816,7 @@ const VImg = genericComponent()({
|
|
|
2786
2816
|
"class": ['v-img__img', containClasses.value],
|
|
2787
2817
|
"src": normalisedSrc.value.src,
|
|
2788
2818
|
"srcset": normalisedSrc.value.srcset,
|
|
2789
|
-
"alt":
|
|
2819
|
+
"alt": props.alt,
|
|
2790
2820
|
"sizes": props.sizes,
|
|
2791
2821
|
"ref": image,
|
|
2792
2822
|
"onLoad": onLoad,
|
|
@@ -2808,7 +2838,7 @@ const VImg = genericComponent()({
|
|
|
2808
2838
|
default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && createVNode("img", {
|
|
2809
2839
|
"class": ['v-img__img', 'v-img__img--preload', containClasses.value],
|
|
2810
2840
|
"src": normalisedSrc.value.lazySrc,
|
|
2811
|
-
"alt":
|
|
2841
|
+
"alt": props.alt
|
|
2812
2842
|
}, null)]
|
|
2813
2843
|
});
|
|
2814
2844
|
const __placeholder = () => {
|
|
@@ -3150,16 +3180,20 @@ const VToolbar = genericComponent()({
|
|
|
3150
3180
|
default: () => [hasImage && createVNode("div", {
|
|
3151
3181
|
"key": "image",
|
|
3152
3182
|
"class": "v-toolbar__image"
|
|
3153
|
-
}, [createVNode(
|
|
3183
|
+
}, [!slots.image ? createVNode(VImg, {
|
|
3184
|
+
"key": "image-img",
|
|
3185
|
+
"cover": true,
|
|
3186
|
+
"src": props.image
|
|
3187
|
+
}, null) : createVNode(VDefaultsProvider, {
|
|
3188
|
+
"key": "image-defaults",
|
|
3189
|
+
"disabled": !props.image,
|
|
3154
3190
|
"defaults": {
|
|
3155
3191
|
VImg: {
|
|
3156
3192
|
cover: true,
|
|
3157
3193
|
src: props.image
|
|
3158
3194
|
}
|
|
3159
3195
|
}
|
|
3160
|
-
}, {
|
|
3161
|
-
default: () => [slots.image ? slots.image?.() : createVNode(VImg, null, null)]
|
|
3162
|
-
})]), createVNode(VDefaultsProvider, {
|
|
3196
|
+
}, slots.image)]), createVNode(VDefaultsProvider, {
|
|
3163
3197
|
"defaults": {
|
|
3164
3198
|
VTabs: {
|
|
3165
3199
|
height: convertToUnit(contentHeight.value)
|
|
@@ -3205,8 +3239,24 @@ const VToolbar = genericComponent()({
|
|
|
3205
3239
|
};
|
|
3206
3240
|
}
|
|
3207
3241
|
});
|
|
3208
|
-
|
|
3209
|
-
|
|
3242
|
+
|
|
3243
|
+
// Utilities
|
|
3244
|
+
|
|
3245
|
+
// Composables
|
|
3246
|
+
function useSsrBoot() {
|
|
3247
|
+
const isBooted = ref(false);
|
|
3248
|
+
onMounted(() => {
|
|
3249
|
+
window.requestAnimationFrame(() => {
|
|
3250
|
+
isBooted.value = true;
|
|
3251
|
+
});
|
|
3252
|
+
});
|
|
3253
|
+
const ssrBootStyles = computed(() => !isBooted.value ? {
|
|
3254
|
+
transition: 'none !important'
|
|
3255
|
+
} : undefined);
|
|
3256
|
+
return {
|
|
3257
|
+
ssrBootStyles,
|
|
3258
|
+
isBooted: readonly(isBooted)
|
|
3259
|
+
};
|
|
3210
3260
|
}
|
|
3211
3261
|
|
|
3212
3262
|
// Types
|
|
@@ -3251,6 +3301,9 @@ const VAppBar = genericComponent()({
|
|
|
3251
3301
|
const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;
|
|
3252
3302
|
return height + extensionHeight;
|
|
3253
3303
|
});
|
|
3304
|
+
const {
|
|
3305
|
+
ssrBootStyles
|
|
3306
|
+
} = useSsrBoot();
|
|
3254
3307
|
const {
|
|
3255
3308
|
layoutItemStyles
|
|
3256
3309
|
} = useLayoutItem({
|
|
@@ -3263,7 +3316,7 @@ const VAppBar = genericComponent()({
|
|
|
3263
3316
|
absolute: toRef(props, 'absolute')
|
|
3264
3317
|
});
|
|
3265
3318
|
useRender(() => {
|
|
3266
|
-
const [toolbarProps] =
|
|
3319
|
+
const [toolbarProps] = VToolbar.filterProps(props);
|
|
3267
3320
|
return createVNode(VToolbar, mergeProps({
|
|
3268
3321
|
"ref": vToolbarRef,
|
|
3269
3322
|
"class": ['v-app-bar', {
|
|
@@ -3271,7 +3324,8 @@ const VAppBar = genericComponent()({
|
|
|
3271
3324
|
}],
|
|
3272
3325
|
"style": {
|
|
3273
3326
|
...layoutItemStyles.value,
|
|
3274
|
-
height: undefined
|
|
3327
|
+
height: undefined,
|
|
3328
|
+
...ssrBootStyles.value
|
|
3275
3329
|
}
|
|
3276
3330
|
}, toolbarProps), slots);
|
|
3277
3331
|
});
|
|
@@ -3353,8 +3407,6 @@ function useVariant(props) {
|
|
|
3353
3407
|
};
|
|
3354
3408
|
}
|
|
3355
3409
|
|
|
3356
|
-
// Types
|
|
3357
|
-
|
|
3358
3410
|
const makeVBtnGroupProps = propsFactory({
|
|
3359
3411
|
divided: Boolean,
|
|
3360
3412
|
...makeBorderProps(),
|
|
@@ -3405,9 +3457,6 @@ const VBtnGroup = genericComponent()({
|
|
|
3405
3457
|
});
|
|
3406
3458
|
}
|
|
3407
3459
|
});
|
|
3408
|
-
function filterVBtnGroupProps(props) {
|
|
3409
|
-
return pick(props, Object.keys(VBtnGroup.props));
|
|
3410
|
-
}
|
|
3411
3460
|
|
|
3412
3461
|
// Composables
|
|
3413
3462
|
|
|
@@ -3634,7 +3683,7 @@ const VBtnToggle = genericComponent()({
|
|
|
3634
3683
|
selected
|
|
3635
3684
|
} = useGroup(props, VBtnToggleSymbol);
|
|
3636
3685
|
useRender(() => {
|
|
3637
|
-
const [btnGroupProps] =
|
|
3686
|
+
const [btnGroupProps] = VBtnGroup.filterProps(props);
|
|
3638
3687
|
return createVNode(VBtnGroup, mergeProps({
|
|
3639
3688
|
"class": "v-btn-toggle"
|
|
3640
3689
|
}, btnGroupProps), {
|
|
@@ -4722,49 +4771,50 @@ function useSelectLink(link, select) {
|
|
|
4722
4771
|
|
|
4723
4772
|
// Types
|
|
4724
4773
|
|
|
4774
|
+
const makeVBtnProps = propsFactory({
|
|
4775
|
+
active: {
|
|
4776
|
+
type: Boolean,
|
|
4777
|
+
default: undefined
|
|
4778
|
+
},
|
|
4779
|
+
symbol: {
|
|
4780
|
+
type: null,
|
|
4781
|
+
default: VBtnToggleSymbol
|
|
4782
|
+
},
|
|
4783
|
+
flat: Boolean,
|
|
4784
|
+
icon: [Boolean, String, Function, Object],
|
|
4785
|
+
prependIcon: IconValue,
|
|
4786
|
+
appendIcon: IconValue,
|
|
4787
|
+
block: Boolean,
|
|
4788
|
+
stacked: Boolean,
|
|
4789
|
+
ripple: {
|
|
4790
|
+
type: Boolean,
|
|
4791
|
+
default: true
|
|
4792
|
+
},
|
|
4793
|
+
...makeBorderProps(),
|
|
4794
|
+
...makeRoundedProps(),
|
|
4795
|
+
...makeDensityProps(),
|
|
4796
|
+
...makeDimensionProps(),
|
|
4797
|
+
...makeElevationProps(),
|
|
4798
|
+
...makeGroupItemProps(),
|
|
4799
|
+
...makeLoaderProps(),
|
|
4800
|
+
...makeLocationProps(),
|
|
4801
|
+
...makePositionProps(),
|
|
4802
|
+
...makeRouterProps(),
|
|
4803
|
+
...makeSizeProps(),
|
|
4804
|
+
...makeTagProps({
|
|
4805
|
+
tag: 'button'
|
|
4806
|
+
}),
|
|
4807
|
+
...makeThemeProps(),
|
|
4808
|
+
...makeVariantProps({
|
|
4809
|
+
variant: 'elevated'
|
|
4810
|
+
})
|
|
4811
|
+
}, 'VBtn');
|
|
4725
4812
|
const VBtn = genericComponent()({
|
|
4726
4813
|
name: 'VBtn',
|
|
4727
4814
|
directives: {
|
|
4728
4815
|
Ripple
|
|
4729
4816
|
},
|
|
4730
|
-
props:
|
|
4731
|
-
active: {
|
|
4732
|
-
type: Boolean,
|
|
4733
|
-
default: undefined
|
|
4734
|
-
},
|
|
4735
|
-
symbol: {
|
|
4736
|
-
type: null,
|
|
4737
|
-
default: VBtnToggleSymbol
|
|
4738
|
-
},
|
|
4739
|
-
flat: Boolean,
|
|
4740
|
-
icon: [Boolean, String, Function, Object],
|
|
4741
|
-
prependIcon: IconValue,
|
|
4742
|
-
appendIcon: IconValue,
|
|
4743
|
-
block: Boolean,
|
|
4744
|
-
stacked: Boolean,
|
|
4745
|
-
ripple: {
|
|
4746
|
-
type: Boolean,
|
|
4747
|
-
default: true
|
|
4748
|
-
},
|
|
4749
|
-
...makeBorderProps(),
|
|
4750
|
-
...makeRoundedProps(),
|
|
4751
|
-
...makeDensityProps(),
|
|
4752
|
-
...makeDimensionProps(),
|
|
4753
|
-
...makeElevationProps(),
|
|
4754
|
-
...makeGroupItemProps(),
|
|
4755
|
-
...makeLoaderProps(),
|
|
4756
|
-
...makeLocationProps(),
|
|
4757
|
-
...makePositionProps(),
|
|
4758
|
-
...makeRouterProps(),
|
|
4759
|
-
...makeSizeProps(),
|
|
4760
|
-
...makeTagProps({
|
|
4761
|
-
tag: 'button'
|
|
4762
|
-
}),
|
|
4763
|
-
...makeThemeProps(),
|
|
4764
|
-
...makeVariantProps({
|
|
4765
|
-
variant: 'elevated'
|
|
4766
|
-
})
|
|
4767
|
-
},
|
|
4817
|
+
props: makeVBtnProps(),
|
|
4768
4818
|
emits: {
|
|
4769
4819
|
'group:selected': val => true
|
|
4770
4820
|
},
|
|
@@ -4857,43 +4907,49 @@ const VBtn = genericComponent()({
|
|
|
4857
4907
|
},
|
|
4858
4908
|
"value": valueAttr.value
|
|
4859
4909
|
}, {
|
|
4860
|
-
default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && createVNode(
|
|
4910
|
+
default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && createVNode("span", {
|
|
4861
4911
|
"key": "prepend",
|
|
4912
|
+
"class": "v-btn__prepend"
|
|
4913
|
+
}, [!slots.prepend ? createVNode(VIcon, {
|
|
4914
|
+
"key": "prepend-icon",
|
|
4915
|
+
"icon": props.prependIcon
|
|
4916
|
+
}, null) : createVNode(VDefaultsProvider, {
|
|
4917
|
+
"key": "prepend-defaults",
|
|
4918
|
+
"disabled": !props.prependIcon,
|
|
4862
4919
|
"defaults": {
|
|
4863
4920
|
VIcon: {
|
|
4864
4921
|
icon: props.prependIcon
|
|
4865
4922
|
}
|
|
4866
4923
|
}
|
|
4867
|
-
}, {
|
|
4868
|
-
default: () => [createVNode("span", {
|
|
4869
|
-
"class": "v-btn__prepend"
|
|
4870
|
-
}, [slots.prepend?.() ?? createVNode(VIcon, null, null)])]
|
|
4871
|
-
}), createVNode("span", {
|
|
4924
|
+
}, slots.prepend)]), createVNode("span", {
|
|
4872
4925
|
"class": "v-btn__content",
|
|
4873
4926
|
"data-no-activator": ""
|
|
4874
|
-
}, [createVNode(
|
|
4875
|
-
"key": "content",
|
|
4927
|
+
}, [!slots.default && hasIcon ? createVNode(VIcon, {
|
|
4928
|
+
"key": "content-icon",
|
|
4929
|
+
"icon": props.icon
|
|
4930
|
+
}, null) : createVNode(VDefaultsProvider, {
|
|
4931
|
+
"key": "content-defaults",
|
|
4932
|
+
"disabled": !hasIcon,
|
|
4876
4933
|
"defaults": {
|
|
4877
4934
|
VIcon: {
|
|
4878
|
-
icon:
|
|
4935
|
+
icon: props.icon
|
|
4879
4936
|
}
|
|
4880
4937
|
}
|
|
4881
|
-
}, {
|
|
4882
|
-
default: () => [slots.default?.() ?? (hasIcon && createVNode(VIcon, {
|
|
4883
|
-
"key": "icon"
|
|
4884
|
-
}, null))]
|
|
4885
|
-
})]), !props.icon && hasAppend && createVNode(VDefaultsProvider, {
|
|
4938
|
+
}, slots.default)]), !props.icon && hasAppend && createVNode("span", {
|
|
4886
4939
|
"key": "append",
|
|
4940
|
+
"class": "v-btn__append"
|
|
4941
|
+
}, [!slots.append ? createVNode(VIcon, {
|
|
4942
|
+
"key": "append-icon",
|
|
4943
|
+
"icon": props.appendIcon
|
|
4944
|
+
}, null) : createVNode(VDefaultsProvider, {
|
|
4945
|
+
"key": "append-defaults",
|
|
4946
|
+
"disabled": !props.appendIcon,
|
|
4887
4947
|
"defaults": {
|
|
4888
4948
|
VIcon: {
|
|
4889
4949
|
icon: props.appendIcon
|
|
4890
4950
|
}
|
|
4891
4951
|
}
|
|
4892
|
-
}, {
|
|
4893
|
-
default: () => [createVNode("span", {
|
|
4894
|
-
"class": "v-btn__append"
|
|
4895
|
-
}, [slots.append?.() ?? createVNode(VIcon, null, null)])]
|
|
4896
|
-
}), !!props.loading && createVNode("span", {
|
|
4952
|
+
}, slots.append)]), !!props.loading && createVNode("span", {
|
|
4897
4953
|
"key": "loader",
|
|
4898
4954
|
"class": "v-btn__loader"
|
|
4899
4955
|
}, [slots.loader?.() ?? createVNode(VProgressCircular, {
|
|
@@ -5022,10 +5078,12 @@ const VAlert = genericComponent()({
|
|
|
5022
5078
|
})
|
|
5023
5079
|
},
|
|
5024
5080
|
emits: {
|
|
5081
|
+
'click:close': e => true,
|
|
5025
5082
|
'update:modelValue': value => true
|
|
5026
5083
|
},
|
|
5027
5084
|
setup(props, _ref) {
|
|
5028
5085
|
let {
|
|
5086
|
+
emit,
|
|
5029
5087
|
slots
|
|
5030
5088
|
} = _ref;
|
|
5031
5089
|
const isActive = useProxiedModel(props, 'modelValue');
|
|
@@ -5075,6 +5133,7 @@ const VAlert = genericComponent()({
|
|
|
5075
5133
|
'aria-label': t(props.closeLabel),
|
|
5076
5134
|
onClick(e) {
|
|
5077
5135
|
isActive.value = false;
|
|
5136
|
+
emit('click:close', e);
|
|
5078
5137
|
}
|
|
5079
5138
|
}));
|
|
5080
5139
|
return () => {
|
|
@@ -5096,8 +5155,17 @@ const VAlert = genericComponent()({
|
|
|
5096
5155
|
"key": "border",
|
|
5097
5156
|
"class": ['v-alert__border', textColorClasses.value],
|
|
5098
5157
|
"style": textColorStyles.value
|
|
5099
|
-
}, null), hasPrepend && createVNode(
|
|
5158
|
+
}, null), hasPrepend && createVNode("div", {
|
|
5100
5159
|
"key": "prepend",
|
|
5160
|
+
"class": "v-alert__prepend"
|
|
5161
|
+
}, [!slots.prepend ? createVNode(VIcon, {
|
|
5162
|
+
"key": "prepend-icon",
|
|
5163
|
+
"density": props.density,
|
|
5164
|
+
"icon": icon.value,
|
|
5165
|
+
"size": props.prominent ? 44 : 28
|
|
5166
|
+
}, null) : createVNode(VDefaultsProvider, {
|
|
5167
|
+
"key": "prepend-defaults",
|
|
5168
|
+
"disabled": !icon.value,
|
|
5101
5169
|
"defaults": {
|
|
5102
5170
|
VIcon: {
|
|
5103
5171
|
density: props.density,
|
|
@@ -5105,21 +5173,25 @@ const VAlert = genericComponent()({
|
|
|
5105
5173
|
size: props.prominent ? 44 : 28
|
|
5106
5174
|
}
|
|
5107
5175
|
}
|
|
5108
|
-
}, {
|
|
5109
|
-
default: () => [createVNode("div", {
|
|
5110
|
-
"class": "v-alert__prepend"
|
|
5111
|
-
}, [slots.prepend ? slots.prepend() : icon.value && createVNode(VIcon, null, null)])]
|
|
5112
|
-
}), createVNode("div", {
|
|
5176
|
+
}, slots.prepend)]), createVNode("div", {
|
|
5113
5177
|
"class": "v-alert__content"
|
|
5114
5178
|
}, [hasTitle && createVNode(VAlertTitle, {
|
|
5115
5179
|
"key": "title"
|
|
5116
5180
|
}, {
|
|
5117
|
-
default: () => [slots.title
|
|
5118
|
-
}), hasText && (slots.text
|
|
5181
|
+
default: () => [slots.title?.() ?? props.title]
|
|
5182
|
+
}), hasText && (slots.text?.() ?? props.text), slots.default?.()]), slots.append && createVNode("div", {
|
|
5119
5183
|
"key": "append",
|
|
5120
5184
|
"class": "v-alert__append"
|
|
5121
|
-
}, [slots.append()]), hasClose && createVNode(
|
|
5185
|
+
}, [slots.append()]), hasClose && createVNode("div", {
|
|
5122
5186
|
"key": "close",
|
|
5187
|
+
"class": "v-alert__close"
|
|
5188
|
+
}, [!slots.close ? createVNode(VBtn, mergeProps({
|
|
5189
|
+
"key": "close-btn",
|
|
5190
|
+
"icon": props.closeIcon,
|
|
5191
|
+
"size": "x-small",
|
|
5192
|
+
"variant": "text"
|
|
5193
|
+
}, closeProps.value), null) : createVNode(VDefaultsProvider, {
|
|
5194
|
+
"key": "close-defaults",
|
|
5123
5195
|
"defaults": {
|
|
5124
5196
|
VBtn: {
|
|
5125
5197
|
icon: props.closeIcon,
|
|
@@ -5128,12 +5200,10 @@ const VAlert = genericComponent()({
|
|
|
5128
5200
|
}
|
|
5129
5201
|
}
|
|
5130
5202
|
}, {
|
|
5131
|
-
default: () => [
|
|
5132
|
-
"class": "v-alert__close"
|
|
5133
|
-
}, [slots.close?.({
|
|
5203
|
+
default: () => [slots.close?.({
|
|
5134
5204
|
props: closeProps.value
|
|
5135
|
-
})
|
|
5136
|
-
})]
|
|
5205
|
+
})]
|
|
5206
|
+
})])]
|
|
5137
5207
|
});
|
|
5138
5208
|
};
|
|
5139
5209
|
}
|
|
@@ -6096,7 +6166,13 @@ const VTextField = genericComponent()({
|
|
|
6096
6166
|
});
|
|
6097
6167
|
}
|
|
6098
6168
|
function onInput(e) {
|
|
6099
|
-
|
|
6169
|
+
const el = e.target;
|
|
6170
|
+
const caretPosition = [el.selectionStart, el.selectionEnd];
|
|
6171
|
+
model.value = el.value;
|
|
6172
|
+
nextTick(() => {
|
|
6173
|
+
el.selectionStart = caretPosition[0];
|
|
6174
|
+
el.selectionEnd = caretPosition[1];
|
|
6175
|
+
});
|
|
6100
6176
|
}
|
|
6101
6177
|
useRender(() => {
|
|
6102
6178
|
const hasCounter = !!(slots.counter || props.counter || props.counterValue);
|
|
@@ -6143,6 +6219,7 @@ const VTextField = genericComponent()({
|
|
|
6143
6219
|
"id": id.value,
|
|
6144
6220
|
"active": isActive.value || isDirty.value,
|
|
6145
6221
|
"dirty": isDirty.value || props.dirty,
|
|
6222
|
+
"disabled": isDisabled.value,
|
|
6146
6223
|
"focused": isFocused.value,
|
|
6147
6224
|
"error": isValid.value === false
|
|
6148
6225
|
}), {
|
|
@@ -6195,9 +6272,6 @@ const VTextField = genericComponent()({
|
|
|
6195
6272
|
return forwardRefs({}, vInputRef, vFieldRef, inputRef);
|
|
6196
6273
|
}
|
|
6197
6274
|
});
|
|
6198
|
-
function filterVTextFieldProps(props) {
|
|
6199
|
-
return pick(props, Object.keys(VTextField.props));
|
|
6200
|
-
}
|
|
6201
6275
|
|
|
6202
6276
|
// Types
|
|
6203
6277
|
|
|
@@ -6455,11 +6529,6 @@ const VSelectionControl = genericComponent()({
|
|
|
6455
6529
|
};
|
|
6456
6530
|
}
|
|
6457
6531
|
});
|
|
6458
|
-
function filterControlProps(props) {
|
|
6459
|
-
return pick(props, Object.keys(VSelectionControl.props));
|
|
6460
|
-
}
|
|
6461
|
-
|
|
6462
|
-
// Types
|
|
6463
6532
|
|
|
6464
6533
|
const makeVCheckboxBtnProps = propsFactory({
|
|
6465
6534
|
indeterminate: Boolean,
|
|
@@ -6509,9 +6578,6 @@ const VCheckboxBtn = genericComponent()({
|
|
|
6509
6578
|
return {};
|
|
6510
6579
|
}
|
|
6511
6580
|
});
|
|
6512
|
-
function filterCheckboxBtnProps(props) {
|
|
6513
|
-
return pick(props, Object.keys(VCheckboxBtn.props));
|
|
6514
|
-
}
|
|
6515
6581
|
|
|
6516
6582
|
// Types
|
|
6517
6583
|
|
|
@@ -6540,7 +6606,7 @@ const VCheckbox = genericComponent()({
|
|
|
6540
6606
|
useRender(() => {
|
|
6541
6607
|
const [inputAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
6542
6608
|
const [inputProps, _1] = filterInputProps(props);
|
|
6543
|
-
const [checkboxProps, _2] =
|
|
6609
|
+
const [checkboxProps, _2] = VCheckboxBtn.filterProps(props);
|
|
6544
6610
|
return createVNode(VInput, mergeProps({
|
|
6545
6611
|
"class": "v-checkbox"
|
|
6546
6612
|
}, inputAttrs, inputProps, {
|
|
@@ -6797,10 +6863,13 @@ const VChip = genericComponent()({
|
|
|
6797
6863
|
const link = useLink(props, attrs);
|
|
6798
6864
|
const isLink = computed(() => props.link !== false && link.isLink.value);
|
|
6799
6865
|
const isClickable = computed(() => !props.disabled && props.link !== false && (!!group || props.link || link.isClickable.value));
|
|
6800
|
-
|
|
6801
|
-
|
|
6802
|
-
|
|
6803
|
-
|
|
6866
|
+
const closeProps = computed(() => ({
|
|
6867
|
+
'aria-label': t(props.closeLabel),
|
|
6868
|
+
onClick(e) {
|
|
6869
|
+
isActive.value = false;
|
|
6870
|
+
emit('click:close', e);
|
|
6871
|
+
}
|
|
6872
|
+
}));
|
|
6804
6873
|
function onClick(e) {
|
|
6805
6874
|
emit('click', e);
|
|
6806
6875
|
if (!isClickable.value) return;
|
|
@@ -6815,10 +6884,12 @@ const VChip = genericComponent()({
|
|
|
6815
6884
|
}
|
|
6816
6885
|
return () => {
|
|
6817
6886
|
const Tag = link.isLink.value ? 'a' : props.tag;
|
|
6818
|
-
const
|
|
6887
|
+
const hasAppendMedia = !!(props.appendIcon || props.appendAvatar);
|
|
6888
|
+
const hasAppend = !!(hasAppendMedia || slots.append);
|
|
6819
6889
|
const hasClose = !!(slots.close || props.closable);
|
|
6820
6890
|
const hasFilter = !!(slots.filter || props.filter) && group;
|
|
6821
|
-
const
|
|
6891
|
+
const hasPrependMedia = !!(props.prependIcon || props.prependAvatar);
|
|
6892
|
+
const hasPrepend = !!(hasPrependMedia || slots.prepend);
|
|
6822
6893
|
const hasColor = !group || group.isSelected.value;
|
|
6823
6894
|
return isActive.value && withDirectives(createVNode(Tag, {
|
|
6824
6895
|
"class": ['v-chip', {
|
|
@@ -6836,77 +6907,94 @@ const VChip = genericComponent()({
|
|
|
6836
6907
|
"onClick": onClick,
|
|
6837
6908
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
|
6838
6909
|
}, {
|
|
6839
|
-
default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && createVNode(
|
|
6840
|
-
"key": "filter"
|
|
6841
|
-
"defaults": {
|
|
6842
|
-
VIcon: {
|
|
6843
|
-
icon: props.filterIcon
|
|
6844
|
-
}
|
|
6845
|
-
}
|
|
6910
|
+
default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && createVNode(VExpandXTransition, {
|
|
6911
|
+
"key": "filter"
|
|
6846
6912
|
}, {
|
|
6847
|
-
default: () => [createVNode(
|
|
6848
|
-
|
|
6849
|
-
|
|
6850
|
-
|
|
6851
|
-
|
|
6852
|
-
|
|
6913
|
+
default: () => [withDirectives(createVNode("div", {
|
|
6914
|
+
"class": "v-chip__filter"
|
|
6915
|
+
}, [!slots.filter ? createVNode(VIcon, {
|
|
6916
|
+
"key": "filter-icon",
|
|
6917
|
+
"icon": props.filterIcon
|
|
6918
|
+
}, null) : withDirectives(createVNode(VDefaultsProvider, {
|
|
6919
|
+
"key": "filter-defaults",
|
|
6920
|
+
"disabled": !props.filterIcon,
|
|
6921
|
+
"defaults": {
|
|
6922
|
+
VIcon: {
|
|
6923
|
+
icon: props.filterIcon
|
|
6924
|
+
}
|
|
6925
|
+
}
|
|
6926
|
+
}, null), [[resolveDirective("slot"), slots.filter, "default"]])]), [[vShow, group.isSelected.value]])]
|
|
6927
|
+
}), hasPrepend && createVNode("div", {
|
|
6853
6928
|
"key": "prepend",
|
|
6929
|
+
"class": "v-chip__prepend"
|
|
6930
|
+
}, [!slots.prepend ? createVNode(Fragment, null, [props.prependIcon && createVNode(VIcon, {
|
|
6931
|
+
"key": "prepend-icon",
|
|
6932
|
+
"icon": props.prependIcon,
|
|
6933
|
+
"start": true
|
|
6934
|
+
}, null), props.prependAvatar && createVNode(VAvatar, {
|
|
6935
|
+
"key": "prepend-avatar",
|
|
6936
|
+
"image": props.prependAvatar,
|
|
6937
|
+
"start": true
|
|
6938
|
+
}, null)]) : createVNode(VDefaultsProvider, {
|
|
6939
|
+
"key": "prepend-defaults",
|
|
6940
|
+
"disabled": !hasPrependMedia,
|
|
6854
6941
|
"defaults": {
|
|
6855
6942
|
VAvatar: {
|
|
6856
|
-
image: props.prependAvatar
|
|
6943
|
+
image: props.prependAvatar,
|
|
6944
|
+
start: true
|
|
6857
6945
|
},
|
|
6858
6946
|
VIcon: {
|
|
6859
|
-
icon: props.prependIcon
|
|
6947
|
+
icon: props.prependIcon,
|
|
6948
|
+
start: true
|
|
6860
6949
|
}
|
|
6861
6950
|
}
|
|
6862
|
-
}, {
|
|
6863
|
-
default: () => [slots.prepend ? createVNode("div", {
|
|
6864
|
-
"class": "v-chip__prepend"
|
|
6865
|
-
}, [slots.prepend()]) : props.prependAvatar ? createVNode(VAvatar, {
|
|
6866
|
-
"start": true
|
|
6867
|
-
}, null) : props.prependIcon ? createVNode(VIcon, {
|
|
6868
|
-
"start": true
|
|
6869
|
-
}, null) : undefined]
|
|
6870
|
-
}), slots.default?.({
|
|
6951
|
+
}, slots.prepend)]), slots.default?.({
|
|
6871
6952
|
isSelected: group?.isSelected.value,
|
|
6872
6953
|
selectedClass: group?.selectedClass.value,
|
|
6873
6954
|
select: group?.select,
|
|
6874
6955
|
toggle: group?.toggle,
|
|
6875
6956
|
value: group?.value.value,
|
|
6876
6957
|
disabled: props.disabled
|
|
6877
|
-
}) ?? props.text, hasAppend && createVNode(
|
|
6958
|
+
}) ?? props.text, hasAppend && createVNode("div", {
|
|
6878
6959
|
"key": "append",
|
|
6960
|
+
"class": "v-chip__append"
|
|
6961
|
+
}, [!slots.append ? createVNode(Fragment, null, [props.appendIcon && createVNode(VIcon, {
|
|
6962
|
+
"key": "append-icon",
|
|
6963
|
+
"end": true,
|
|
6964
|
+
"icon": props.appendIcon
|
|
6965
|
+
}, null), props.appendAvatar && createVNode(VAvatar, {
|
|
6966
|
+
"key": "append-avatar",
|
|
6967
|
+
"end": true,
|
|
6968
|
+
"image": props.appendAvatar
|
|
6969
|
+
}, null)]) : createVNode(VDefaultsProvider, {
|
|
6970
|
+
"key": "append-defaults",
|
|
6971
|
+
"disabled": !hasAppendMedia,
|
|
6879
6972
|
"defaults": {
|
|
6880
6973
|
VAvatar: {
|
|
6974
|
+
end: true,
|
|
6881
6975
|
image: props.appendAvatar
|
|
6882
6976
|
},
|
|
6883
6977
|
VIcon: {
|
|
6978
|
+
end: true,
|
|
6884
6979
|
icon: props.appendIcon
|
|
6885
6980
|
}
|
|
6886
6981
|
}
|
|
6887
|
-
}, {
|
|
6888
|
-
default: () => [slots.append ? createVNode("div", {
|
|
6889
|
-
"class": "v-chip__append"
|
|
6890
|
-
}, [slots.append()]) : props.appendAvatar ? createVNode(VAvatar, {
|
|
6891
|
-
"end": true
|
|
6892
|
-
}, null) : props.appendIcon ? createVNode(VIcon, {
|
|
6893
|
-
"end": true
|
|
6894
|
-
}, null) : undefined]
|
|
6895
|
-
}), hasClose && createVNode(VDefaultsProvider, {
|
|
6982
|
+
}, slots.append)]), hasClose && createVNode("div", mergeProps({
|
|
6896
6983
|
"key": "close",
|
|
6984
|
+
"class": "v-chip__close"
|
|
6985
|
+
}, closeProps.value), [!slots.close ? createVNode(VIcon, {
|
|
6986
|
+
"key": "close-icon",
|
|
6987
|
+
"icon": props.closeIcon,
|
|
6988
|
+
"size": "x-small"
|
|
6989
|
+
}, null) : createVNode(VDefaultsProvider, {
|
|
6990
|
+
"key": "close-defaults",
|
|
6897
6991
|
"defaults": {
|
|
6898
6992
|
VIcon: {
|
|
6899
6993
|
icon: props.closeIcon,
|
|
6900
6994
|
size: 'x-small'
|
|
6901
6995
|
}
|
|
6902
6996
|
}
|
|
6903
|
-
},
|
|
6904
|
-
default: () => [createVNode("div", {
|
|
6905
|
-
"class": "v-chip__close",
|
|
6906
|
-
"aria-label": t(props.closeLabel),
|
|
6907
|
-
"onClick": onCloseClick
|
|
6908
|
-
}, [slots.close ? slots.close() : createVNode(VIcon, null, null)])]
|
|
6909
|
-
})]
|
|
6997
|
+
}, slots.close)])]
|
|
6910
6998
|
}), [[resolveDirective("ripple"), isClickable.value && props.ripple, null]]);
|
|
6911
6999
|
};
|
|
6912
7000
|
}
|
|
@@ -7047,7 +7135,6 @@ const listOpenStrategy = {
|
|
|
7047
7135
|
};
|
|
7048
7136
|
|
|
7049
7137
|
/* eslint-disable sonarjs/no-identical-functions */
|
|
7050
|
-
|
|
7051
7138
|
const independentSelectStrategy = mandatory => {
|
|
7052
7139
|
const strategy = {
|
|
7053
7140
|
select: _ref => {
|
|
@@ -7056,6 +7143,8 @@ const independentSelectStrategy = mandatory => {
|
|
|
7056
7143
|
value,
|
|
7057
7144
|
selected
|
|
7058
7145
|
} = _ref;
|
|
7146
|
+
id = toRaw(id);
|
|
7147
|
+
|
|
7059
7148
|
// When mandatory and we're trying to deselect when id
|
|
7060
7149
|
// is the only currently selected item then do nothing
|
|
7061
7150
|
if (mandatory && !value) {
|
|
@@ -7100,6 +7189,7 @@ const independentSingleSelectStrategy = mandatory => {
|
|
|
7100
7189
|
id,
|
|
7101
7190
|
...rest
|
|
7102
7191
|
} = _ref3;
|
|
7192
|
+
id = toRaw(id);
|
|
7103
7193
|
const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)]]) : new Map();
|
|
7104
7194
|
return parentStrategy.select({
|
|
7105
7195
|
...rest,
|
|
@@ -7130,6 +7220,7 @@ const leafSelectStrategy = mandatory => {
|
|
|
7130
7220
|
children,
|
|
7131
7221
|
...rest
|
|
7132
7222
|
} = _ref4;
|
|
7223
|
+
id = toRaw(id);
|
|
7133
7224
|
if (children.has(id)) return selected;
|
|
7134
7225
|
return parentStrategy.select({
|
|
7135
7226
|
id,
|
|
@@ -7153,6 +7244,7 @@ const leafSingleSelectStrategy = mandatory => {
|
|
|
7153
7244
|
children,
|
|
7154
7245
|
...rest
|
|
7155
7246
|
} = _ref5;
|
|
7247
|
+
id = toRaw(id);
|
|
7156
7248
|
if (children.has(id)) return selected;
|
|
7157
7249
|
return parentStrategy.select({
|
|
7158
7250
|
id,
|
|
@@ -7176,6 +7268,7 @@ const classicSelectStrategy = mandatory => {
|
|
|
7176
7268
|
children,
|
|
7177
7269
|
parents
|
|
7178
7270
|
} = _ref6;
|
|
7271
|
+
id = toRaw(id);
|
|
7179
7272
|
const original = new Map(selected);
|
|
7180
7273
|
const items = [id];
|
|
7181
7274
|
while (items.length) {
|
|
@@ -7397,7 +7490,7 @@ const useNestedItem = (id, isGroup) => {
|
|
|
7397
7490
|
isOpen: computed(() => parent.root.opened.value.has(computedId.value)),
|
|
7398
7491
|
parent: computed(() => parent.root.parents.value.get(computedId.value)),
|
|
7399
7492
|
select: (selected, e) => parent.root.select(computedId.value, selected, e),
|
|
7400
|
-
isSelected: computed(() => parent.root.selected.value.get(computedId.value) === 'on'),
|
|
7493
|
+
isSelected: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'on'),
|
|
7401
7494
|
isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),
|
|
7402
7495
|
isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),
|
|
7403
7496
|
isGroupActivator: parent.isGroupActivator
|
|
@@ -7417,8 +7510,6 @@ const useNestedGroupActivator = () => {
|
|
|
7417
7510
|
});
|
|
7418
7511
|
};
|
|
7419
7512
|
|
|
7420
|
-
// Types
|
|
7421
|
-
|
|
7422
7513
|
const VListGroupActivator = defineComponent({
|
|
7423
7514
|
name: 'VListGroupActivator',
|
|
7424
7515
|
setup(_, _ref) {
|
|
@@ -7511,9 +7602,6 @@ const VListGroup = genericComponent()({
|
|
|
7511
7602
|
return {};
|
|
7512
7603
|
}
|
|
7513
7604
|
});
|
|
7514
|
-
function filterListGroupProps(props) {
|
|
7515
|
-
return pick(props, Object.keys(VListGroup.props));
|
|
7516
|
-
}
|
|
7517
7605
|
|
|
7518
7606
|
const VListItemSubtitle = createSimpleFunctional('v-list-item-subtitle');
|
|
7519
7607
|
|
|
@@ -7651,8 +7739,10 @@ const VListItem = genericComponent()({
|
|
|
7651
7739
|
const hasColor = !list || isSelected.value || isActive.value;
|
|
7652
7740
|
const hasTitle = slots.title || props.title;
|
|
7653
7741
|
const hasSubtitle = slots.subtitle || props.subtitle;
|
|
7654
|
-
const
|
|
7655
|
-
const
|
|
7742
|
+
const hasAppendMedia = !!(props.appendAvatar || props.appendIcon);
|
|
7743
|
+
const hasAppend = !!(hasAppendMedia || slots.append);
|
|
7744
|
+
const hasPrependMedia = !!(props.prependAvatar || props.prependIcon);
|
|
7745
|
+
const hasPrepend = !!(hasPrependMedia || slots.prepend);
|
|
7656
7746
|
list?.updateHasPrepend(hasPrepend);
|
|
7657
7747
|
return withDirectives(createVNode(Tag, {
|
|
7658
7748
|
"class": ['v-list-item', {
|
|
@@ -7672,7 +7762,7 @@ const VListItem = genericComponent()({
|
|
|
7672
7762
|
default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && createVNode("div", {
|
|
7673
7763
|
"key": "prepend",
|
|
7674
7764
|
"class": "v-list-item__prepend"
|
|
7675
|
-
}, [props.prependAvatar && createVNode(VAvatar, {
|
|
7765
|
+
}, [!slots.prepend ? createVNode(Fragment, null, [props.prependAvatar && createVNode(VAvatar, {
|
|
7676
7766
|
"key": "prepend-avatar",
|
|
7677
7767
|
"density": props.density,
|
|
7678
7768
|
"image": props.prependAvatar
|
|
@@ -7680,8 +7770,9 @@ const VListItem = genericComponent()({
|
|
|
7680
7770
|
"key": "prepend-icon",
|
|
7681
7771
|
"density": props.density,
|
|
7682
7772
|
"icon": props.prependIcon
|
|
7683
|
-
}, null)
|
|
7684
|
-
"key": "prepend",
|
|
7773
|
+
}, null)]) : createVNode(VDefaultsProvider, {
|
|
7774
|
+
"key": "prepend-defaults",
|
|
7775
|
+
"disabled": !hasPrependMedia,
|
|
7685
7776
|
"defaults": {
|
|
7686
7777
|
VAvatar: {
|
|
7687
7778
|
density: props.density,
|
|
@@ -7696,7 +7787,7 @@ const VListItem = genericComponent()({
|
|
|
7696
7787
|
}
|
|
7697
7788
|
}
|
|
7698
7789
|
}, {
|
|
7699
|
-
default: () => [slots.prepend(slotProps.value)]
|
|
7790
|
+
default: () => [slots.prepend?.(slotProps.value)]
|
|
7700
7791
|
})]), createVNode("div", {
|
|
7701
7792
|
"class": "v-list-item__content",
|
|
7702
7793
|
"data-no-activator": ""
|
|
@@ -7715,8 +7806,17 @@ const VListItem = genericComponent()({
|
|
|
7715
7806
|
}), slots.default?.(slotProps.value)]), hasAppend && createVNode("div", {
|
|
7716
7807
|
"key": "append",
|
|
7717
7808
|
"class": "v-list-item__append"
|
|
7718
|
-
}, [slots.append && createVNode(
|
|
7719
|
-
"key": "append",
|
|
7809
|
+
}, [!slots.append ? createVNode(Fragment, null, [props.appendIcon && createVNode(VIcon, {
|
|
7810
|
+
"key": "append-icon",
|
|
7811
|
+
"density": props.density,
|
|
7812
|
+
"icon": props.appendIcon
|
|
7813
|
+
}, null), props.appendAvatar && createVNode(VAvatar, {
|
|
7814
|
+
"key": "append-avatar",
|
|
7815
|
+
"density": props.density,
|
|
7816
|
+
"image": props.appendAvatar
|
|
7817
|
+
}, null)]) : createVNode(VDefaultsProvider, {
|
|
7818
|
+
"key": "append-defaults",
|
|
7819
|
+
"disabled": !hasAppendMedia,
|
|
7720
7820
|
"defaults": {
|
|
7721
7821
|
VAvatar: {
|
|
7722
7822
|
density: props.density,
|
|
@@ -7731,16 +7831,8 @@ const VListItem = genericComponent()({
|
|
|
7731
7831
|
}
|
|
7732
7832
|
}
|
|
7733
7833
|
}, {
|
|
7734
|
-
default: () => [slots.append(slotProps.value)]
|
|
7735
|
-
})
|
|
7736
|
-
"key": "append-icon",
|
|
7737
|
-
"density": props.density,
|
|
7738
|
-
"icon": props.appendIcon
|
|
7739
|
-
}, null), props.appendAvatar && createVNode(VAvatar, {
|
|
7740
|
-
"key": "append-avatar",
|
|
7741
|
-
"density": props.density,
|
|
7742
|
-
"image": props.appendAvatar
|
|
7743
|
-
}, null)])]
|
|
7834
|
+
default: () => [slots.append?.(slotProps.value)]
|
|
7835
|
+
})])]
|
|
7744
7836
|
}), [[resolveDirective("ripple"), isClickable.value && props.ripple]]);
|
|
7745
7837
|
});
|
|
7746
7838
|
return {};
|
|
@@ -7837,7 +7929,7 @@ const VListChildren = genericComponent()({
|
|
|
7837
7929
|
item
|
|
7838
7930
|
}) : undefined
|
|
7839
7931
|
};
|
|
7840
|
-
const [listGroupProps, _1] =
|
|
7932
|
+
const [listGroupProps, _1] = VListGroup.filterProps(itemProps);
|
|
7841
7933
|
return children ? createVNode(VListGroup, mergeProps({
|
|
7842
7934
|
"value": itemProps?.value
|
|
7843
7935
|
}, listGroupProps), {
|
|
@@ -8959,7 +9051,7 @@ function useScrollStrategies(props, data) {
|
|
|
8959
9051
|
if (!(data.isActive.value && props.scrollStrategy)) return;
|
|
8960
9052
|
scope = effectScope();
|
|
8961
9053
|
await nextTick();
|
|
8962
|
-
scope.run(() => {
|
|
9054
|
+
scope.active && scope.run(() => {
|
|
8963
9055
|
if (typeof props.scrollStrategy === 'function') {
|
|
8964
9056
|
props.scrollStrategy(data, props, scope);
|
|
8965
9057
|
} else {
|
|
@@ -9040,7 +9132,7 @@ function repositionScrollStrategy(data, props, scope) {
|
|
|
9040
9132
|
});
|
|
9041
9133
|
});
|
|
9042
9134
|
onScopeDispose(() => {
|
|
9043
|
-
cancelIdleCallback(ric);
|
|
9135
|
+
typeof cancelIdleCallback !== 'undefined' && cancelIdleCallback(ric);
|
|
9044
9136
|
cancelAnimationFrame(raf);
|
|
9045
9137
|
});
|
|
9046
9138
|
}
|
|
@@ -9064,6 +9156,8 @@ function bindScroll(el, onScroll) {
|
|
|
9064
9156
|
|
|
9065
9157
|
// Types
|
|
9066
9158
|
|
|
9159
|
+
const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl']; // no xs
|
|
9160
|
+
|
|
9067
9161
|
const DisplaySymbol = Symbol.for('vuetify:display');
|
|
9068
9162
|
const defaultDisplayOptions = {
|
|
9069
9163
|
mobileBreakpoint: 'lg',
|
|
@@ -9086,8 +9180,8 @@ function getClientWidth(isHydrate) {
|
|
|
9086
9180
|
function getClientHeight(isHydrate) {
|
|
9087
9181
|
return IN_BROWSER && !isHydrate ? window.innerHeight : 0;
|
|
9088
9182
|
}
|
|
9089
|
-
function getPlatform() {
|
|
9090
|
-
const userAgent = IN_BROWSER ? window.navigator.userAgent : 'ssr';
|
|
9183
|
+
function getPlatform(isHydrate) {
|
|
9184
|
+
const userAgent = IN_BROWSER && !isHydrate ? window.navigator.userAgent : 'ssr';
|
|
9091
9185
|
function match(regexp) {
|
|
9092
9186
|
return Boolean(userAgent.match(regexp));
|
|
9093
9187
|
}
|
|
@@ -9102,7 +9196,6 @@ function getPlatform() {
|
|
|
9102
9196
|
const win = match(/win/i);
|
|
9103
9197
|
const mac = match(/mac/i);
|
|
9104
9198
|
const linux = match(/linux/i);
|
|
9105
|
-
const ssr = match(/ssr/i);
|
|
9106
9199
|
return {
|
|
9107
9200
|
android,
|
|
9108
9201
|
ios,
|
|
@@ -9116,7 +9209,7 @@ function getPlatform() {
|
|
|
9116
9209
|
mac,
|
|
9117
9210
|
linux,
|
|
9118
9211
|
touch: SUPPORTS_TOUCH,
|
|
9119
|
-
ssr
|
|
9212
|
+
ssr: userAgent === 'ssr'
|
|
9120
9213
|
};
|
|
9121
9214
|
}
|
|
9122
9215
|
function createDisplay(options, ssr) {
|
|
@@ -9125,13 +9218,17 @@ function createDisplay(options, ssr) {
|
|
|
9125
9218
|
mobileBreakpoint
|
|
9126
9219
|
} = parseDisplayOptions(options);
|
|
9127
9220
|
const height = ref(getClientHeight(ssr));
|
|
9128
|
-
const platform = getPlatform();
|
|
9221
|
+
const platform = shallowRef(getPlatform(ssr));
|
|
9129
9222
|
const state = reactive({});
|
|
9130
9223
|
const width = ref(getClientWidth(ssr));
|
|
9131
|
-
function
|
|
9224
|
+
function updateSize() {
|
|
9132
9225
|
height.value = getClientHeight();
|
|
9133
9226
|
width.value = getClientWidth();
|
|
9134
9227
|
}
|
|
9228
|
+
function update() {
|
|
9229
|
+
updateSize();
|
|
9230
|
+
platform.value = getPlatform();
|
|
9231
|
+
}
|
|
9135
9232
|
|
|
9136
9233
|
// eslint-disable-next-line max-statements
|
|
9137
9234
|
watchEffect(() => {
|
|
@@ -9143,7 +9240,7 @@ function createDisplay(options, ssr) {
|
|
|
9143
9240
|
const xxl = width.value >= thresholds.xxl;
|
|
9144
9241
|
const name = xs ? 'xs' : sm ? 'sm' : md ? 'md' : lg ? 'lg' : xl ? 'xl' : 'xxl';
|
|
9145
9242
|
const breakpointValue = typeof mobileBreakpoint === 'number' ? mobileBreakpoint : thresholds[mobileBreakpoint];
|
|
9146
|
-
const mobile =
|
|
9243
|
+
const mobile = width.value < breakpointValue;
|
|
9147
9244
|
state.xs = xs;
|
|
9148
9245
|
state.sm = sm;
|
|
9149
9246
|
state.md = md;
|
|
@@ -9163,11 +9260,11 @@ function createDisplay(options, ssr) {
|
|
|
9163
9260
|
state.width = width.value;
|
|
9164
9261
|
state.mobile = mobile;
|
|
9165
9262
|
state.mobileBreakpoint = mobileBreakpoint;
|
|
9166
|
-
state.platform = platform;
|
|
9263
|
+
state.platform = platform.value;
|
|
9167
9264
|
state.thresholds = thresholds;
|
|
9168
9265
|
});
|
|
9169
9266
|
if (IN_BROWSER) {
|
|
9170
|
-
window.addEventListener('resize',
|
|
9267
|
+
window.addEventListener('resize', updateSize, {
|
|
9171
9268
|
passive: true
|
|
9172
9269
|
});
|
|
9173
9270
|
}
|
|
@@ -9232,7 +9329,7 @@ function useStack(isActive, zIndex, disableGlobalStack) {
|
|
|
9232
9329
|
parent?.activeChildren.add(vm.uid);
|
|
9233
9330
|
onScopeDispose(() => {
|
|
9234
9331
|
if (createStackEntry) {
|
|
9235
|
-
const idx = globalStack.findIndex(v => v[0] === vm.uid);
|
|
9332
|
+
const idx = toRaw(globalStack).findIndex(v => v[0] === vm.uid);
|
|
9236
9333
|
globalStack.splice(idx, 1);
|
|
9237
9334
|
}
|
|
9238
9335
|
parent?.activeChildren.delete(vm.uid);
|
|
@@ -9616,9 +9713,6 @@ const VOverlay = genericComponent()({
|
|
|
9616
9713
|
};
|
|
9617
9714
|
}
|
|
9618
9715
|
});
|
|
9619
|
-
function filterVOverlayProps(props) {
|
|
9620
|
-
return pick(props, Object.keys(VOverlay.props));
|
|
9621
|
-
}
|
|
9622
9716
|
|
|
9623
9717
|
// Types
|
|
9624
9718
|
|
|
@@ -9655,17 +9749,17 @@ const VMenu = genericComponent()({
|
|
|
9655
9749
|
const id = computed(() => props.id || `v-menu-${uid}`);
|
|
9656
9750
|
const overlay = ref();
|
|
9657
9751
|
const parent = inject$1(VMenuSymbol, null);
|
|
9658
|
-
|
|
9752
|
+
const openChildren = ref(0);
|
|
9659
9753
|
provide(VMenuSymbol, {
|
|
9660
9754
|
register() {
|
|
9661
|
-
++openChildren;
|
|
9755
|
+
++openChildren.value;
|
|
9662
9756
|
},
|
|
9663
9757
|
unregister() {
|
|
9664
|
-
--openChildren;
|
|
9758
|
+
--openChildren.value;
|
|
9665
9759
|
},
|
|
9666
9760
|
closeParents() {
|
|
9667
9761
|
setTimeout(() => {
|
|
9668
|
-
if (!openChildren) {
|
|
9762
|
+
if (!openChildren.value) {
|
|
9669
9763
|
isActive.value = false;
|
|
9670
9764
|
parent?.closeParents();
|
|
9671
9765
|
}
|
|
@@ -9684,7 +9778,7 @@ const VMenu = genericComponent()({
|
|
|
9684
9778
|
'aria-owns': id.value
|
|
9685
9779
|
}, props.activatorProps));
|
|
9686
9780
|
useRender(() => {
|
|
9687
|
-
const [overlayProps] =
|
|
9781
|
+
const [overlayProps] = VOverlay.filterProps(props);
|
|
9688
9782
|
return createVNode(VOverlay, mergeProps({
|
|
9689
9783
|
"ref": overlay,
|
|
9690
9784
|
"class": ['v-menu']
|
|
@@ -9709,7 +9803,8 @@ const VMenu = genericComponent()({
|
|
|
9709
9803
|
});
|
|
9710
9804
|
});
|
|
9711
9805
|
return forwardRefs({
|
|
9712
|
-
id
|
|
9806
|
+
id,
|
|
9807
|
+
ΨopenChildren: openChildren
|
|
9713
9808
|
}, overlay);
|
|
9714
9809
|
}
|
|
9715
9810
|
});
|
|
@@ -9769,7 +9864,15 @@ const VSelect = genericComponent()({
|
|
|
9769
9864
|
t
|
|
9770
9865
|
} = useLocale();
|
|
9771
9866
|
const vTextFieldRef = ref();
|
|
9772
|
-
const
|
|
9867
|
+
const vMenuRef = ref();
|
|
9868
|
+
const _menu = useProxiedModel(props, 'menu');
|
|
9869
|
+
const menu = computed({
|
|
9870
|
+
get: () => _menu.value,
|
|
9871
|
+
set: v => {
|
|
9872
|
+
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
|
|
9873
|
+
_menu.value = v;
|
|
9874
|
+
}
|
|
9875
|
+
});
|
|
9773
9876
|
const {
|
|
9774
9877
|
items,
|
|
9775
9878
|
transformIn,
|
|
@@ -9851,7 +9954,7 @@ const VSelect = genericComponent()({
|
|
|
9851
9954
|
useRender(() => {
|
|
9852
9955
|
const hasChips = !!(props.chips || slots.chip);
|
|
9853
9956
|
const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
|
|
9854
|
-
const [textFieldProps] =
|
|
9957
|
+
const [textFieldProps] = VTextField.filterProps(props);
|
|
9855
9958
|
return createVNode(VTextField, mergeProps({
|
|
9856
9959
|
"ref": vTextFieldRef
|
|
9857
9960
|
}, textFieldProps, {
|
|
@@ -9876,6 +9979,7 @@ const VSelect = genericComponent()({
|
|
|
9876
9979
|
}), {
|
|
9877
9980
|
...slots,
|
|
9878
9981
|
default: () => createVNode(Fragment, null, [createVNode(VMenu, mergeProps({
|
|
9982
|
+
"ref": vMenuRef,
|
|
9879
9983
|
"modelValue": menu.value,
|
|
9880
9984
|
"onUpdate:modelValue": $event => menu.value = $event,
|
|
9881
9985
|
"activator": "parent",
|
|
@@ -9936,7 +10040,13 @@ const VSelect = genericComponent()({
|
|
|
9936
10040
|
return createVNode("div", {
|
|
9937
10041
|
"key": item.value,
|
|
9938
10042
|
"class": "v-select__selection"
|
|
9939
|
-
}, [hasChips ? createVNode(
|
|
10043
|
+
}, [hasChips ? !slots.chip ? createVNode(VChip, mergeProps({
|
|
10044
|
+
"key": "chip",
|
|
10045
|
+
"closable": props.closableChips,
|
|
10046
|
+
"size": "small",
|
|
10047
|
+
"text": item.title
|
|
10048
|
+
}, slotProps), null) : createVNode(VDefaultsProvider, {
|
|
10049
|
+
"key": "chip-defaults",
|
|
9940
10050
|
"defaults": {
|
|
9941
10051
|
VChip: {
|
|
9942
10052
|
closable: props.closableChips,
|
|
@@ -9945,15 +10055,15 @@ const VSelect = genericComponent()({
|
|
|
9945
10055
|
}
|
|
9946
10056
|
}
|
|
9947
10057
|
}, {
|
|
9948
|
-
default: () => [slots.chip
|
|
10058
|
+
default: () => [slots.chip?.({
|
|
9949
10059
|
item,
|
|
9950
10060
|
index,
|
|
9951
10061
|
props: slotProps
|
|
9952
|
-
})
|
|
9953
|
-
}) : slots.selection
|
|
10062
|
+
})]
|
|
10063
|
+
}) : slots.selection?.({
|
|
9954
10064
|
item,
|
|
9955
10065
|
index
|
|
9956
|
-
})
|
|
10066
|
+
}) ?? createVNode("span", {
|
|
9957
10067
|
"class": "v-select__selection-text"
|
|
9958
10068
|
}, [item.title, props.multiple && index < selections.value.length - 1 && createVNode("span", {
|
|
9959
10069
|
"class": "v-select__selection-comma"
|
|
@@ -10114,7 +10224,15 @@ const VAutocomplete = genericComponent()({
|
|
|
10114
10224
|
const vTextFieldRef = ref();
|
|
10115
10225
|
const isFocused = ref(false);
|
|
10116
10226
|
const isPristine = ref(true);
|
|
10117
|
-
const
|
|
10227
|
+
const vMenuRef = ref();
|
|
10228
|
+
const _menu = useProxiedModel(props, 'menu');
|
|
10229
|
+
const menu = computed({
|
|
10230
|
+
get: () => _menu.value,
|
|
10231
|
+
set: v => {
|
|
10232
|
+
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
|
|
10233
|
+
_menu.value = v;
|
|
10234
|
+
}
|
|
10235
|
+
});
|
|
10118
10236
|
const {
|
|
10119
10237
|
items,
|
|
10120
10238
|
transformIn,
|
|
@@ -10229,7 +10347,7 @@ const VAutocomplete = genericComponent()({
|
|
|
10229
10347
|
useRender(() => {
|
|
10230
10348
|
const hasChips = !!(props.chips || slots.chip);
|
|
10231
10349
|
const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
|
|
10232
|
-
const [textFieldProps] =
|
|
10350
|
+
const [textFieldProps] = VTextField.filterProps(props);
|
|
10233
10351
|
return createVNode(VTextField, mergeProps({
|
|
10234
10352
|
"ref": vTextFieldRef
|
|
10235
10353
|
}, textFieldProps, {
|
|
@@ -10256,6 +10374,7 @@ const VAutocomplete = genericComponent()({
|
|
|
10256
10374
|
}), {
|
|
10257
10375
|
...slots,
|
|
10258
10376
|
default: () => createVNode(Fragment, null, [createVNode(VMenu, mergeProps({
|
|
10377
|
+
"ref": vMenuRef,
|
|
10259
10378
|
"modelValue": menu.value,
|
|
10260
10379
|
"onUpdate:modelValue": $event => menu.value = $event,
|
|
10261
10380
|
"activator": "parent",
|
|
@@ -10316,7 +10435,13 @@ const VAutocomplete = genericComponent()({
|
|
|
10316
10435
|
return createVNode("div", {
|
|
10317
10436
|
"key": item.value,
|
|
10318
10437
|
"class": "v-autocomplete__selection"
|
|
10319
|
-
}, [hasChips ? createVNode(
|
|
10438
|
+
}, [hasChips ? !slots.chip ? createVNode(VChip, mergeProps({
|
|
10439
|
+
"key": "chip",
|
|
10440
|
+
"closable": props.closableChips,
|
|
10441
|
+
"size": "small",
|
|
10442
|
+
"text": item.title
|
|
10443
|
+
}, slotProps), null) : createVNode(VDefaultsProvider, {
|
|
10444
|
+
"key": "chip-defaults",
|
|
10320
10445
|
"defaults": {
|
|
10321
10446
|
VChip: {
|
|
10322
10447
|
closable: props.closableChips,
|
|
@@ -10325,15 +10450,15 @@ const VAutocomplete = genericComponent()({
|
|
|
10325
10450
|
}
|
|
10326
10451
|
}
|
|
10327
10452
|
}, {
|
|
10328
|
-
default: () => [slots.chip
|
|
10453
|
+
default: () => [slots.chip?.({
|
|
10329
10454
|
item,
|
|
10330
10455
|
index,
|
|
10331
10456
|
props: slotProps
|
|
10332
|
-
})
|
|
10333
|
-
}) : slots.selection
|
|
10457
|
+
})]
|
|
10458
|
+
}) : slots.selection?.({
|
|
10334
10459
|
item,
|
|
10335
10460
|
index
|
|
10336
|
-
})
|
|
10461
|
+
}) ?? createVNode("span", {
|
|
10337
10462
|
"class": "v-autocomplete__selection-text"
|
|
10338
10463
|
}, [item.title, props.multiple && index < selections.value.length - 1 && createVNode("span", {
|
|
10339
10464
|
"class": "v-autocomplete__selection-comma"
|
|
@@ -10534,7 +10659,8 @@ const VBanner = genericComponent()({
|
|
|
10534
10659
|
});
|
|
10535
10660
|
useRender(() => {
|
|
10536
10661
|
const hasText = !!(props.text || slots.text);
|
|
10537
|
-
const
|
|
10662
|
+
const hasPrependMedia = !!(props.avatar || props.icon);
|
|
10663
|
+
const hasPrepend = !!(hasPrependMedia || slots.prepend);
|
|
10538
10664
|
return createVNode(props.tag, {
|
|
10539
10665
|
"class": ['v-banner', {
|
|
10540
10666
|
'v-banner--stacked': props.stacked || mobile.value,
|
|
@@ -10544,8 +10670,18 @@ const VBanner = genericComponent()({
|
|
|
10544
10670
|
"style": [dimensionStyles.value, locationStyles.value],
|
|
10545
10671
|
"role": "banner"
|
|
10546
10672
|
}, {
|
|
10547
|
-
default: () => [hasPrepend && createVNode(
|
|
10673
|
+
default: () => [hasPrepend && createVNode("div", {
|
|
10548
10674
|
"key": "prepend",
|
|
10675
|
+
"class": "v-banner__prepend"
|
|
10676
|
+
}, [!slots.prepend ? createVNode(VAvatar, {
|
|
10677
|
+
"key": "prepend-avatar",
|
|
10678
|
+
"color": color.value,
|
|
10679
|
+
"density": density.value,
|
|
10680
|
+
"icon": props.icon,
|
|
10681
|
+
"image": props.avatar
|
|
10682
|
+
}, null) : createVNode(VDefaultsProvider, {
|
|
10683
|
+
"key": "prepend-defaults",
|
|
10684
|
+
"disabled": !hasPrependMedia,
|
|
10549
10685
|
"defaults": {
|
|
10550
10686
|
VAvatar: {
|
|
10551
10687
|
color: color.value,
|
|
@@ -10554,19 +10690,15 @@ const VBanner = genericComponent()({
|
|
|
10554
10690
|
image: props.avatar
|
|
10555
10691
|
}
|
|
10556
10692
|
}
|
|
10557
|
-
}, {
|
|
10558
|
-
default: () => [createVNode("div", {
|
|
10559
|
-
"class": "v-banner__prepend"
|
|
10560
|
-
}, [slots.prepend ? slots.prepend() : (props.avatar || props.icon) && createVNode(VAvatar, null, null)])]
|
|
10561
|
-
}), createVNode("div", {
|
|
10693
|
+
}, slots.prepend)]), createVNode("div", {
|
|
10562
10694
|
"class": "v-banner__content"
|
|
10563
10695
|
}, [hasText && createVNode(VBannerText, {
|
|
10564
10696
|
"key": "text"
|
|
10565
10697
|
}, {
|
|
10566
|
-
default: () => [slots.text
|
|
10567
|
-
}), slots.default?.()]), slots.actions && createVNode(VBannerActions,
|
|
10568
|
-
|
|
10569
|
-
})]
|
|
10698
|
+
default: () => [slots.text?.() ?? props.text]
|
|
10699
|
+
}), slots.default?.()]), slots.actions && createVNode(VBannerActions, {
|
|
10700
|
+
"key": "actions"
|
|
10701
|
+
}, slots.actions)]
|
|
10570
10702
|
});
|
|
10571
10703
|
});
|
|
10572
10704
|
}
|
|
@@ -10632,6 +10764,9 @@ const VBottomNavigation = genericComponent()({
|
|
|
10632
10764
|
const {
|
|
10633
10765
|
roundedClasses
|
|
10634
10766
|
} = useRounded(props);
|
|
10767
|
+
const {
|
|
10768
|
+
ssrBootStyles
|
|
10769
|
+
} = useSsrBoot();
|
|
10635
10770
|
const height = computed(() => Number(props.height) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0));
|
|
10636
10771
|
const isActive = toRef(props, 'active');
|
|
10637
10772
|
const {
|
|
@@ -10666,7 +10801,7 @@ const VBottomNavigation = genericComponent()({
|
|
|
10666
10801
|
"style": [backgroundColorStyles.value, layoutItemStyles.value, {
|
|
10667
10802
|
height: convertToUnit(height.value),
|
|
10668
10803
|
transform: `translateY(${convertToUnit(!isActive.value ? 100 : 0, '%')})`
|
|
10669
|
-
}]
|
|
10804
|
+
}, ssrBootStyles.value]
|
|
10670
10805
|
}, {
|
|
10671
10806
|
default: () => [slots.default && createVNode("div", {
|
|
10672
10807
|
"class": "v-bottom-navigation__content"
|
|
@@ -10796,19 +10931,23 @@ const VBreadcrumbs = genericComponent()({
|
|
|
10796
10931
|
"class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value],
|
|
10797
10932
|
"style": backgroundColorStyles.value
|
|
10798
10933
|
}, {
|
|
10799
|
-
default: () => [hasPrepend && createVNode(
|
|
10934
|
+
default: () => [hasPrepend && createVNode("div", {
|
|
10800
10935
|
"key": "prepend",
|
|
10936
|
+
"class": "v-breadcrumbs__prepend"
|
|
10937
|
+
}, [!slots.prepend ? createVNode(VIcon, {
|
|
10938
|
+
"key": "prepend-icon",
|
|
10939
|
+
"start": true,
|
|
10940
|
+
"icon": props.icon
|
|
10941
|
+
}, null) : createVNode(VDefaultsProvider, {
|
|
10942
|
+
"key": "prepend-defaults",
|
|
10943
|
+
"disabled": !props.icon,
|
|
10801
10944
|
"defaults": {
|
|
10802
10945
|
VIcon: {
|
|
10803
10946
|
icon: props.icon,
|
|
10804
10947
|
start: true
|
|
10805
10948
|
}
|
|
10806
10949
|
}
|
|
10807
|
-
}, {
|
|
10808
|
-
default: () => [createVNode("div", {
|
|
10809
|
-
"class": "v-breadcrumbs__prepend"
|
|
10810
|
-
}, [slots.prepend ? slots.prepend() : props.icon && createVNode(VIcon, null, null)])]
|
|
10811
|
-
}), props.items.map((item, index, array) => createVNode(Fragment, null, [createVNode(VBreadcrumbsItem, mergeProps({
|
|
10950
|
+
}, slots.prepend)]), props.items.map((item, index, array) => createVNode(Fragment, null, [createVNode(VBreadcrumbsItem, mergeProps({
|
|
10812
10951
|
"key": index,
|
|
10813
10952
|
"disabled": index >= array.length - 1
|
|
10814
10953
|
}, typeof item === 'string' ? {
|
|
@@ -10872,30 +11011,33 @@ const VCardItem = genericComponent()({
|
|
|
10872
11011
|
slots
|
|
10873
11012
|
} = _ref;
|
|
10874
11013
|
useRender(() => {
|
|
10875
|
-
const
|
|
10876
|
-
const
|
|
11014
|
+
const hasPrependMedia = !!(props.prependAvatar || props.prependIcon);
|
|
11015
|
+
const hasPrepend = !!(hasPrependMedia || slots.prepend);
|
|
11016
|
+
const hasAppendMedia = !!(props.appendAvatar || props.appendIcon);
|
|
11017
|
+
const hasAppend = !!(hasAppendMedia || slots.append);
|
|
10877
11018
|
const hasTitle = !!(props.title || slots.title);
|
|
10878
11019
|
const hasSubtitle = !!(props.subtitle || slots.subtitle);
|
|
10879
11020
|
return createVNode("div", {
|
|
10880
11021
|
"class": "v-card-item"
|
|
10881
|
-
}, [hasPrepend && createVNode(
|
|
11022
|
+
}, [hasPrepend && createVNode("div", {
|
|
10882
11023
|
"key": "prepend",
|
|
11024
|
+
"class": "v-card-item__prepend"
|
|
11025
|
+
}, [!slots.prepend ? hasPrependMedia && createVNode(VAvatar, {
|
|
11026
|
+
"key": "prepend-avatar",
|
|
11027
|
+
"density": props.density,
|
|
11028
|
+
"icon": props.prependIcon,
|
|
11029
|
+
"image": props.prependAvatar
|
|
11030
|
+
}, null) : createVNode(VDefaultsProvider, {
|
|
11031
|
+
"key": "prepend-defaults",
|
|
11032
|
+
"disabled": !hasPrependMedia,
|
|
10883
11033
|
"defaults": {
|
|
10884
11034
|
VAvatar: {
|
|
10885
11035
|
density: props.density,
|
|
10886
11036
|
icon: props.prependIcon,
|
|
10887
11037
|
image: props.prependAvatar
|
|
10888
|
-
},
|
|
10889
|
-
VIcon: {
|
|
10890
|
-
density: props.density,
|
|
10891
|
-
icon: props.prependIcon
|
|
10892
11038
|
}
|
|
10893
11039
|
}
|
|
10894
|
-
}, {
|
|
10895
|
-
default: () => [createVNode("div", {
|
|
10896
|
-
"class": "v-card-item__prepend"
|
|
10897
|
-
}, [slots.prepend?.() ?? createVNode(VAvatar, null, null)])]
|
|
10898
|
-
}), createVNode("div", {
|
|
11040
|
+
}, slots.prepend)]), createVNode("div", {
|
|
10899
11041
|
"class": "v-card-item__content"
|
|
10900
11042
|
}, [hasTitle && createVNode(VCardTitle, {
|
|
10901
11043
|
"key": "title"
|
|
@@ -10905,24 +11047,25 @@ const VCardItem = genericComponent()({
|
|
|
10905
11047
|
"key": "subtitle"
|
|
10906
11048
|
}, {
|
|
10907
11049
|
default: () => [slots.subtitle?.() ?? props.subtitle]
|
|
10908
|
-
}), slots.default?.()]), hasAppend && createVNode(
|
|
11050
|
+
}), slots.default?.()]), hasAppend && createVNode("div", {
|
|
10909
11051
|
"key": "append",
|
|
11052
|
+
"class": "v-card-item__append"
|
|
11053
|
+
}, [!slots.append ? hasAppendMedia && createVNode(VAvatar, {
|
|
11054
|
+
"key": "append-avatar",
|
|
11055
|
+
"density": props.density,
|
|
11056
|
+
"icon": props.appendIcon,
|
|
11057
|
+
"image": props.appendAvatar
|
|
11058
|
+
}, null) : createVNode(VDefaultsProvider, {
|
|
11059
|
+
"key": "append-defaults",
|
|
11060
|
+
"disabled": !hasAppendMedia,
|
|
10910
11061
|
"defaults": {
|
|
10911
11062
|
VAvatar: {
|
|
10912
11063
|
density: props.density,
|
|
10913
11064
|
icon: props.appendIcon,
|
|
10914
11065
|
image: props.appendAvatar
|
|
10915
|
-
},
|
|
10916
|
-
VIcon: {
|
|
10917
|
-
density: props.density,
|
|
10918
|
-
icon: props.appendIcon
|
|
10919
11066
|
}
|
|
10920
11067
|
}
|
|
10921
|
-
},
|
|
10922
|
-
default: () => [createVNode("div", {
|
|
10923
|
-
"class": "v-card-item__append"
|
|
10924
|
-
}, [slots.append?.() ?? createVNode(VAvatar, null, null)])]
|
|
10925
|
-
})]);
|
|
11068
|
+
}, slots.append)])]);
|
|
10926
11069
|
});
|
|
10927
11070
|
return {};
|
|
10928
11071
|
}
|
|
@@ -11034,19 +11177,23 @@ const VCard = genericComponent()({
|
|
|
11034
11177
|
"onClick": isClickable.value && link.navigate,
|
|
11035
11178
|
"tabindex": props.disabled ? -1 : undefined
|
|
11036
11179
|
}, {
|
|
11037
|
-
default: () => [hasImage && createVNode(
|
|
11180
|
+
default: () => [hasImage && createVNode("div", {
|
|
11038
11181
|
"key": "image",
|
|
11182
|
+
"class": "v-card__image"
|
|
11183
|
+
}, [!slots.image ? createVNode(VImg, {
|
|
11184
|
+
"key": "image-img",
|
|
11185
|
+
"cover": true,
|
|
11186
|
+
"src": props.image
|
|
11187
|
+
}, null) : createVNode(VDefaultsProvider, {
|
|
11188
|
+
"key": "image-defaults",
|
|
11189
|
+
"disabled": !props.image,
|
|
11039
11190
|
"defaults": {
|
|
11040
11191
|
VImg: {
|
|
11041
11192
|
cover: true,
|
|
11042
11193
|
src: props.image
|
|
11043
11194
|
}
|
|
11044
11195
|
}
|
|
11045
|
-
}, {
|
|
11046
|
-
default: () => [createVNode("div", {
|
|
11047
|
-
"class": "v-card__image"
|
|
11048
|
-
}, [slots.image?.() ?? createVNode(VImg, null, null)])]
|
|
11049
|
-
}), createVNode(LoaderSlot, {
|
|
11196
|
+
}, slots.image)]), createVNode(LoaderSlot, {
|
|
11050
11197
|
"name": "v-card",
|
|
11051
11198
|
"active": !!props.loading,
|
|
11052
11199
|
"color": typeof props.loading === 'boolean' ? undefined : props.loading
|
|
@@ -11356,25 +11503,6 @@ const VWindow = genericComponent()({
|
|
|
11356
11503
|
}
|
|
11357
11504
|
});
|
|
11358
11505
|
|
|
11359
|
-
// Utilities
|
|
11360
|
-
|
|
11361
|
-
// Composables
|
|
11362
|
-
function useSsrBoot() {
|
|
11363
|
-
const isBooted = ref(false);
|
|
11364
|
-
onMounted(() => {
|
|
11365
|
-
window.requestAnimationFrame(() => {
|
|
11366
|
-
isBooted.value = true;
|
|
11367
|
-
});
|
|
11368
|
-
});
|
|
11369
|
-
const ssrBootStyles = computed(() => !isBooted.value ? {
|
|
11370
|
-
transition: 'none !important'
|
|
11371
|
-
} : undefined);
|
|
11372
|
-
return {
|
|
11373
|
-
ssrBootStyles,
|
|
11374
|
-
isBooted: readonly(isBooted)
|
|
11375
|
-
};
|
|
11376
|
-
}
|
|
11377
|
-
|
|
11378
11506
|
const VWindowItem = genericComponent()({
|
|
11379
11507
|
name: 'VWindowItem',
|
|
11380
11508
|
directives: {
|
|
@@ -11673,6 +11801,19 @@ const VColorPickerCanvas = defineComponent({
|
|
|
11673
11801
|
};
|
|
11674
11802
|
});
|
|
11675
11803
|
const canvasRef = ref();
|
|
11804
|
+
const canvasWidth = ref(parseFloat(props.width));
|
|
11805
|
+
const canvasHeight = ref(parseFloat(props.height));
|
|
11806
|
+
const {
|
|
11807
|
+
resizeRef
|
|
11808
|
+
} = useResizeObserver(entries => {
|
|
11809
|
+
if (!resizeRef.value?.offsetParent) return;
|
|
11810
|
+
const {
|
|
11811
|
+
width,
|
|
11812
|
+
height
|
|
11813
|
+
} = entries[0].contentRect;
|
|
11814
|
+
canvasWidth.value = width;
|
|
11815
|
+
canvasHeight.value = height;
|
|
11816
|
+
});
|
|
11676
11817
|
function updateDotPosition(x, y, rect) {
|
|
11677
11818
|
const {
|
|
11678
11819
|
left,
|
|
@@ -11717,18 +11858,14 @@ const VColorPickerCanvas = defineComponent({
|
|
|
11717
11858
|
return;
|
|
11718
11859
|
}
|
|
11719
11860
|
if (!canvasRef.value) return;
|
|
11720
|
-
const {
|
|
11721
|
-
width,
|
|
11722
|
-
height
|
|
11723
|
-
} = canvasRef.value.getBoundingClientRect();
|
|
11724
11861
|
const {
|
|
11725
11862
|
x,
|
|
11726
11863
|
y
|
|
11727
11864
|
} = dotPosition.value;
|
|
11728
11865
|
emit('update:color', {
|
|
11729
11866
|
h: props.color?.h ?? 0,
|
|
11730
|
-
s: clamp(x, 0,
|
|
11731
|
-
v: 1 - clamp(y, 0,
|
|
11867
|
+
s: clamp(x, 0, canvasWidth.value) / canvasWidth.value,
|
|
11868
|
+
v: 1 - clamp(y, 0, canvasHeight.value) / canvasHeight.value,
|
|
11732
11869
|
a: props.color?.a ?? 1
|
|
11733
11870
|
});
|
|
11734
11871
|
});
|
|
@@ -11751,16 +11888,27 @@ const VColorPickerCanvas = defineComponent({
|
|
|
11751
11888
|
watch(() => props.color?.h, updateCanvas, {
|
|
11752
11889
|
immediate: true
|
|
11753
11890
|
});
|
|
11891
|
+
watch(() => [canvasWidth.value, canvasHeight.value], (newVal, oldVal) => {
|
|
11892
|
+
updateCanvas();
|
|
11893
|
+
dotPosition.value = {
|
|
11894
|
+
x: dotPosition.value.x * newVal[0] / oldVal[0],
|
|
11895
|
+
y: dotPosition.value.y * newVal[1] / oldVal[1]
|
|
11896
|
+
};
|
|
11897
|
+
}, {
|
|
11898
|
+
flush: 'post'
|
|
11899
|
+
});
|
|
11754
11900
|
watch(() => props.color, () => {
|
|
11755
11901
|
if (isInteracting.value) {
|
|
11756
11902
|
isInteracting.value = false;
|
|
11757
11903
|
return;
|
|
11758
11904
|
}
|
|
11759
|
-
if (!props.color) return;
|
|
11760
11905
|
isOutsideUpdate.value = true;
|
|
11761
|
-
dotPosition.value = {
|
|
11762
|
-
x: props.color.s *
|
|
11763
|
-
y: (1 - props.color.v) *
|
|
11906
|
+
dotPosition.value = props.color ? {
|
|
11907
|
+
x: props.color.s * canvasWidth.value,
|
|
11908
|
+
y: (1 - props.color.v) * canvasHeight.value
|
|
11909
|
+
} : {
|
|
11910
|
+
x: 0,
|
|
11911
|
+
y: 0
|
|
11764
11912
|
};
|
|
11765
11913
|
}, {
|
|
11766
11914
|
deep: true,
|
|
@@ -11768,19 +11916,16 @@ const VColorPickerCanvas = defineComponent({
|
|
|
11768
11916
|
});
|
|
11769
11917
|
onMounted(() => updateCanvas());
|
|
11770
11918
|
useRender(() => createVNode("div", {
|
|
11919
|
+
"ref": resizeRef,
|
|
11771
11920
|
"class": "v-color-picker-canvas",
|
|
11772
|
-
"style": {
|
|
11773
|
-
width: convertToUnit(props.width),
|
|
11774
|
-
height: convertToUnit(props.height)
|
|
11775
|
-
},
|
|
11776
11921
|
"onClick": handleClick,
|
|
11777
11922
|
"onMousedown": handleMouseDown,
|
|
11778
11923
|
"onTouchstart": handleMouseDown
|
|
11779
11924
|
}, [createVNode("canvas", {
|
|
11780
11925
|
"ref": canvasRef,
|
|
11781
|
-
"width":
|
|
11782
|
-
"height":
|
|
11783
|
-
}, null), createVNode("div", {
|
|
11926
|
+
"width": canvasWidth.value,
|
|
11927
|
+
"height": canvasHeight.value
|
|
11928
|
+
}, null), props.color && createVNode("div", {
|
|
11784
11929
|
"class": ['v-color-picker-canvas__dot', {
|
|
11785
11930
|
'v-color-picker-canvas__dot--disabled': props.disabled
|
|
11786
11931
|
}],
|
|
@@ -11813,10 +11958,7 @@ function parseColor(color) {
|
|
|
11813
11958
|
hsva = color;
|
|
11814
11959
|
}
|
|
11815
11960
|
}
|
|
11816
|
-
return hsva
|
|
11817
|
-
...hsva,
|
|
11818
|
-
a: hsva.a ?? 1
|
|
11819
|
-
} : null;
|
|
11961
|
+
return hsva;
|
|
11820
11962
|
}
|
|
11821
11963
|
function stripAlpha(color, stripAlpha) {
|
|
11822
11964
|
if (stripAlpha) {
|
|
@@ -11836,7 +11978,7 @@ function extractColor(color, input) {
|
|
|
11836
11978
|
if (typeof input === 'object') {
|
|
11837
11979
|
let converted;
|
|
11838
11980
|
if (has(input, ['r', 'g', 'b'])) converted = HSVtoRGB(color);else if (has(input, ['h', 's', 'l'])) converted = HSVtoHSL(color);else if (has(input, ['h', 's', 'v'])) converted = color;
|
|
11839
|
-
return stripAlpha(converted, !has(input, ['a']));
|
|
11981
|
+
return stripAlpha(converted, !has(input, ['a']) && color.a === 1);
|
|
11840
11982
|
}
|
|
11841
11983
|
return color;
|
|
11842
11984
|
}
|
|
@@ -12027,7 +12169,7 @@ const VColorPickerEdit = defineComponent({
|
|
|
12027
12169
|
const inputs = computed(() => {
|
|
12028
12170
|
const mode = enabledModes.value.find(m => m.name === props.mode);
|
|
12029
12171
|
if (!mode) return [];
|
|
12030
|
-
const color = props.color ? mode.to(props.color) :
|
|
12172
|
+
const color = props.color ? mode.to(props.color) : null;
|
|
12031
12173
|
return mode.inputs?.map(_ref3 => {
|
|
12032
12174
|
let {
|
|
12033
12175
|
getValue,
|
|
@@ -12038,11 +12180,11 @@ const VColorPickerEdit = defineComponent({
|
|
|
12038
12180
|
...mode.inputProps,
|
|
12039
12181
|
...inputProps,
|
|
12040
12182
|
disabled: props.disabled,
|
|
12041
|
-
value: getValue(color),
|
|
12183
|
+
value: color && getValue(color),
|
|
12042
12184
|
onChange: e => {
|
|
12043
12185
|
const target = e.target;
|
|
12044
12186
|
if (!target) return;
|
|
12045
|
-
emit('update:color', mode.from(getColor(color, target.value)));
|
|
12187
|
+
emit('update:color', mode.from(getColor(color ?? nullColor, target.value)));
|
|
12046
12188
|
}
|
|
12047
12189
|
};
|
|
12048
12190
|
});
|
|
@@ -12153,10 +12295,7 @@ const useSlider = _ref => {
|
|
|
12153
12295
|
const min = computed(() => parseFloat(props.min));
|
|
12154
12296
|
const max = computed(() => parseFloat(props.max));
|
|
12155
12297
|
const step = computed(() => props.step > 0 ? parseFloat(props.step) : 0);
|
|
12156
|
-
const decimals = computed(() =>
|
|
12157
|
-
const trimmedStep = step.value.toString().trim();
|
|
12158
|
-
return trimmedStep.includes('.') ? trimmedStep.length - trimmedStep.indexOf('.') - 1 : 0;
|
|
12159
|
-
});
|
|
12298
|
+
const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
|
|
12160
12299
|
const thumbSize = computed(() => parseInt(props.thumbSize, 10));
|
|
12161
12300
|
const tickSize = computed(() => parseInt(props.tickSize, 10));
|
|
12162
12301
|
const trackSize = computed(() => parseInt(props.trackSize, 10));
|
|
@@ -12255,7 +12394,9 @@ const useSlider = _ref => {
|
|
|
12255
12394
|
const percentage = (val - min.value) / (max.value - min.value) * 100;
|
|
12256
12395
|
return clamp(isNaN(percentage) ? 0 : percentage, 0, 100);
|
|
12257
12396
|
};
|
|
12397
|
+
const showTicks = toRef(props, 'showTicks');
|
|
12258
12398
|
const parsedTicks = computed(() => {
|
|
12399
|
+
if (!showTicks.value) return [];
|
|
12259
12400
|
if (!props.ticks) {
|
|
12260
12401
|
return numTicks.value !== Infinity ? createRange(numTicks.value + 1).map(t => {
|
|
12261
12402
|
const value = min.value + t * step.value;
|
|
@@ -12304,7 +12445,7 @@ const useSlider = _ref => {
|
|
|
12304
12445
|
readonly: toRef(props, 'readonly'),
|
|
12305
12446
|
rounded: toRef(props, 'rounded'),
|
|
12306
12447
|
roundValue,
|
|
12307
|
-
showTicks
|
|
12448
|
+
showTicks,
|
|
12308
12449
|
startOffset,
|
|
12309
12450
|
step,
|
|
12310
12451
|
thumbSize,
|
|
@@ -12526,6 +12667,7 @@ const VSliderTrack = genericComponent()({
|
|
|
12526
12667
|
};
|
|
12527
12668
|
});
|
|
12528
12669
|
const computedTicks = computed(() => {
|
|
12670
|
+
if (!showTicks.value) return [];
|
|
12529
12671
|
const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value;
|
|
12530
12672
|
return ticks.map((tick, index) => {
|
|
12531
12673
|
const directionProperty = vertical.value ? 'bottom' : 'margin-inline-start';
|
|
@@ -12741,12 +12883,12 @@ const VColorPickerPreview = defineComponent({
|
|
|
12741
12883
|
"hideDetails": true
|
|
12742
12884
|
}, null), !props.hideAlpha && createVNode(VSlider, {
|
|
12743
12885
|
"class": "v-color-picker-preview__track v-color-picker-preview__alpha",
|
|
12744
|
-
"modelValue": props.color?.a,
|
|
12886
|
+
"modelValue": props.color?.a ?? 1,
|
|
12745
12887
|
"onUpdate:modelValue": a => emit('update:color', {
|
|
12746
12888
|
...(props.color ?? nullColor),
|
|
12747
12889
|
a
|
|
12748
12890
|
}),
|
|
12749
|
-
"step":
|
|
12891
|
+
"step": 1 / 256,
|
|
12750
12892
|
"min": 0,
|
|
12751
12893
|
"max": 1,
|
|
12752
12894
|
"disabled": props.disabled,
|
|
@@ -13131,18 +13273,21 @@ const VColorPickerSwatches = defineComponent({
|
|
|
13131
13273
|
}
|
|
13132
13274
|
});
|
|
13133
13275
|
|
|
13276
|
+
const makeVSheetProps = propsFactory({
|
|
13277
|
+
color: String,
|
|
13278
|
+
...makeBorderProps(),
|
|
13279
|
+
...makeDimensionProps(),
|
|
13280
|
+
...makeElevationProps(),
|
|
13281
|
+
...makeLocationProps(),
|
|
13282
|
+
...makePositionProps(),
|
|
13283
|
+
...makeRoundedProps(),
|
|
13284
|
+
...makeTagProps(),
|
|
13285
|
+
...makeThemeProps()
|
|
13286
|
+
}, 'v-sheet');
|
|
13134
13287
|
const VSheet = genericComponent()({
|
|
13135
13288
|
name: 'VSheet',
|
|
13136
13289
|
props: {
|
|
13137
|
-
|
|
13138
|
-
...makeBorderProps(),
|
|
13139
|
-
...makeDimensionProps(),
|
|
13140
|
-
...makeElevationProps(),
|
|
13141
|
-
...makeLocationProps(),
|
|
13142
|
-
...makePositionProps(),
|
|
13143
|
-
...makeRoundedProps(),
|
|
13144
|
-
...makeTagProps(),
|
|
13145
|
-
...makeThemeProps()
|
|
13290
|
+
...makeVSheetProps()
|
|
13146
13291
|
},
|
|
13147
13292
|
setup(props, _ref) {
|
|
13148
13293
|
let {
|
|
@@ -13173,10 +13318,11 @@ const VSheet = genericComponent()({
|
|
|
13173
13318
|
const {
|
|
13174
13319
|
roundedClasses
|
|
13175
13320
|
} = useRounded(props);
|
|
13176
|
-
|
|
13321
|
+
useRender(() => createVNode(props.tag, {
|
|
13177
13322
|
"class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value],
|
|
13178
13323
|
"style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value]
|
|
13179
|
-
}, slots);
|
|
13324
|
+
}, slots));
|
|
13325
|
+
return {};
|
|
13180
13326
|
}
|
|
13181
13327
|
});
|
|
13182
13328
|
|
|
@@ -13253,6 +13399,13 @@ const VColorPicker = defineComponent({
|
|
|
13253
13399
|
onMounted(() => {
|
|
13254
13400
|
if (!props.modes.includes(mode.value)) mode.value = props.modes[0];
|
|
13255
13401
|
});
|
|
13402
|
+
provideDefaults({
|
|
13403
|
+
VSlider: {
|
|
13404
|
+
color: undefined,
|
|
13405
|
+
trackColor: undefined,
|
|
13406
|
+
trackFillColor: undefined
|
|
13407
|
+
}
|
|
13408
|
+
});
|
|
13256
13409
|
useRender(() => createVNode(VSheet, {
|
|
13257
13410
|
"rounded": props.rounded,
|
|
13258
13411
|
"elevation": props.elevation,
|
|
@@ -13353,7 +13506,15 @@ const VCombobox = genericComponent()({
|
|
|
13353
13506
|
const vTextFieldRef = ref();
|
|
13354
13507
|
const isFocused = ref(false);
|
|
13355
13508
|
const isPristine = ref(true);
|
|
13356
|
-
const
|
|
13509
|
+
const vMenuRef = ref();
|
|
13510
|
+
const _menu = useProxiedModel(props, 'menu');
|
|
13511
|
+
const menu = computed({
|
|
13512
|
+
get: () => _menu.value,
|
|
13513
|
+
set: v => {
|
|
13514
|
+
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
|
|
13515
|
+
_menu.value = v;
|
|
13516
|
+
}
|
|
13517
|
+
});
|
|
13357
13518
|
const selectionIndex = ref(-1);
|
|
13358
13519
|
const color = computed(() => vTextFieldRef.value?.color);
|
|
13359
13520
|
const {
|
|
@@ -13536,7 +13697,7 @@ const VCombobox = genericComponent()({
|
|
|
13536
13697
|
useRender(() => {
|
|
13537
13698
|
const hasChips = !!(props.chips || slots.chip);
|
|
13538
13699
|
const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
|
|
13539
|
-
const [textFieldProps] =
|
|
13700
|
+
const [textFieldProps] = VTextField.filterProps(props);
|
|
13540
13701
|
return createVNode(VTextField, mergeProps({
|
|
13541
13702
|
"ref": vTextFieldRef
|
|
13542
13703
|
}, textFieldProps, {
|
|
@@ -13562,6 +13723,7 @@ const VCombobox = genericComponent()({
|
|
|
13562
13723
|
}), {
|
|
13563
13724
|
...slots,
|
|
13564
13725
|
default: () => createVNode(Fragment, null, [createVNode(VMenu, mergeProps({
|
|
13726
|
+
"ref": vMenuRef,
|
|
13565
13727
|
"modelValue": menu.value,
|
|
13566
13728
|
"onUpdate:modelValue": $event => menu.value = $event,
|
|
13567
13729
|
"activator": "parent",
|
|
@@ -13623,7 +13785,13 @@ const VCombobox = genericComponent()({
|
|
|
13623
13785
|
"key": item.value,
|
|
13624
13786
|
"class": ['v-combobox__selection', index === selectionIndex.value && ['v-combobox__selection--selected', textColorClasses.value]],
|
|
13625
13787
|
"style": index === selectionIndex.value ? textColorStyles.value : {}
|
|
13626
|
-
}, [hasChips ? createVNode(
|
|
13788
|
+
}, [hasChips ? !slots.chip ? createVNode(VChip, mergeProps({
|
|
13789
|
+
"key": "chip",
|
|
13790
|
+
"closable": props.closableChips,
|
|
13791
|
+
"size": "small",
|
|
13792
|
+
"text": item.title
|
|
13793
|
+
}, slotProps), null) : createVNode(VDefaultsProvider, {
|
|
13794
|
+
"key": "chip-defaults",
|
|
13627
13795
|
"defaults": {
|
|
13628
13796
|
VChip: {
|
|
13629
13797
|
closable: props.closableChips,
|
|
@@ -13632,15 +13800,15 @@ const VCombobox = genericComponent()({
|
|
|
13632
13800
|
}
|
|
13633
13801
|
}
|
|
13634
13802
|
}, {
|
|
13635
|
-
default: () => [slots.chip
|
|
13803
|
+
default: () => [slots.chip?.({
|
|
13636
13804
|
item,
|
|
13637
13805
|
index,
|
|
13638
13806
|
props: slotProps
|
|
13639
|
-
})
|
|
13640
|
-
}) : slots.selection
|
|
13807
|
+
})]
|
|
13808
|
+
}) : slots.selection?.({
|
|
13641
13809
|
item,
|
|
13642
13810
|
index
|
|
13643
|
-
})
|
|
13811
|
+
}) ?? createVNode("span", {
|
|
13644
13812
|
"class": "v-combobox__selection-text"
|
|
13645
13813
|
}, [item.title, props.multiple && index < selections.value.length - 1 && createVNode("span", {
|
|
13646
13814
|
"class": "v-combobox__selection-comma"
|
|
@@ -13737,7 +13905,7 @@ const VDialog = genericComponent()({
|
|
|
13737
13905
|
'aria-expanded': String(isActive.value)
|
|
13738
13906
|
}, props.activatorProps));
|
|
13739
13907
|
useRender(() => {
|
|
13740
|
-
const [overlayProps] =
|
|
13908
|
+
const [overlayProps] = VOverlay.filterProps(props);
|
|
13741
13909
|
return createVNode(VOverlay, mergeProps({
|
|
13742
13910
|
"ref": overlay,
|
|
13743
13911
|
"class": ['v-dialog', {
|
|
@@ -14141,6 +14309,7 @@ const VFileInput = genericComponent()({
|
|
|
14141
14309
|
"id": id.value,
|
|
14142
14310
|
"active": isDirty.value || isFocused.value,
|
|
14143
14311
|
"dirty": isDirty.value,
|
|
14312
|
+
"disabled": isDisabled.value,
|
|
14144
14313
|
"focused": isFocused.value,
|
|
14145
14314
|
"error": isValid.value === false
|
|
14146
14315
|
}), {
|
|
@@ -14340,10 +14509,8 @@ const VContainer = genericComponent()({
|
|
|
14340
14509
|
|
|
14341
14510
|
// Types
|
|
14342
14511
|
|
|
14343
|
-
const breakpoints$1 = ['sm', 'md', 'lg', 'xl', 'xxl']; // no xs
|
|
14344
|
-
|
|
14345
14512
|
const breakpointProps = (() => {
|
|
14346
|
-
return breakpoints
|
|
14513
|
+
return breakpoints.reduce((props, val) => {
|
|
14347
14514
|
props[val] = {
|
|
14348
14515
|
type: [Boolean, String, Number],
|
|
14349
14516
|
default: false
|
|
@@ -14352,8 +14519,9 @@ const breakpointProps = (() => {
|
|
|
14352
14519
|
}, {});
|
|
14353
14520
|
})();
|
|
14354
14521
|
const offsetProps = (() => {
|
|
14355
|
-
return breakpoints
|
|
14356
|
-
|
|
14522
|
+
return breakpoints.reduce((props, val) => {
|
|
14523
|
+
const offsetKey = 'offset' + capitalize(val);
|
|
14524
|
+
props[offsetKey] = {
|
|
14357
14525
|
type: [String, Number],
|
|
14358
14526
|
default: null
|
|
14359
14527
|
};
|
|
@@ -14361,8 +14529,9 @@ const offsetProps = (() => {
|
|
|
14361
14529
|
}, {});
|
|
14362
14530
|
})();
|
|
14363
14531
|
const orderProps = (() => {
|
|
14364
|
-
return breakpoints
|
|
14365
|
-
|
|
14532
|
+
return breakpoints.reduce((props, val) => {
|
|
14533
|
+
const orderKey = 'order' + capitalize(val);
|
|
14534
|
+
props[orderKey] = {
|
|
14366
14535
|
type: [String, Number],
|
|
14367
14536
|
default: null
|
|
14368
14537
|
};
|
|
@@ -14460,13 +14629,12 @@ const VCol = genericComponent()({
|
|
|
14460
14629
|
|
|
14461
14630
|
// Types
|
|
14462
14631
|
|
|
14463
|
-
const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl']; // no xs
|
|
14464
|
-
|
|
14465
14632
|
const ALIGNMENT = ['start', 'end', 'center'];
|
|
14466
14633
|
const SPACE = ['space-between', 'space-around', 'space-evenly'];
|
|
14467
14634
|
function makeRowProps(prefix, def) {
|
|
14468
14635
|
return breakpoints.reduce((props, val) => {
|
|
14469
|
-
|
|
14636
|
+
const prefixKey = prefix + capitalize(val);
|
|
14637
|
+
props[prefixKey] = def();
|
|
14470
14638
|
return props;
|
|
14471
14639
|
}, {});
|
|
14472
14640
|
}
|
|
@@ -14796,7 +14964,10 @@ const VLazy = genericComponent()({
|
|
|
14796
14964
|
}, {
|
|
14797
14965
|
default: () => [slots.default?.()]
|
|
14798
14966
|
})]
|
|
14799
|
-
}), [[resolveDirective("intersect"),
|
|
14967
|
+
}), [[resolveDirective("intersect"), {
|
|
14968
|
+
handler: onIntersect,
|
|
14969
|
+
options: props.options
|
|
14970
|
+
}, null]]));
|
|
14800
14971
|
return {};
|
|
14801
14972
|
}
|
|
14802
14973
|
});
|
|
@@ -15773,9 +15944,9 @@ const VParallax = genericComponent()({
|
|
|
15773
15944
|
frame = requestAnimationFrame(() => {
|
|
15774
15945
|
const el = (root.value?.$el).querySelector('.v-img__img');
|
|
15775
15946
|
if (!el) return;
|
|
15776
|
-
const scrollHeight = scrollParent
|
|
15777
|
-
const scrollPos = scrollParent
|
|
15778
|
-
const top = intersectionRef.value.
|
|
15947
|
+
const scrollHeight = scrollParent instanceof Document ? document.documentElement.clientHeight : scrollParent.clientHeight;
|
|
15948
|
+
const scrollPos = scrollParent instanceof Document ? window.scrollY : scrollParent.scrollTop;
|
|
15949
|
+
const top = intersectionRef.value.getBoundingClientRect().top + scrollPos;
|
|
15779
15950
|
const height = contentRect.value.height;
|
|
15780
15951
|
const center = top + (height - scrollHeight) / 2;
|
|
15781
15952
|
const translate = floor((scrollPos - center) * scale.value);
|
|
@@ -15857,10 +16028,7 @@ const VRadioGroup = genericComponent()({
|
|
|
15857
16028
|
useRender(() => {
|
|
15858
16029
|
const [inputAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
15859
16030
|
const [inputProps, _1] = filterInputProps(props);
|
|
15860
|
-
const [controlProps, _2] =
|
|
15861
|
-
...props,
|
|
15862
|
-
multiple: false
|
|
15863
|
-
});
|
|
16031
|
+
const [controlProps, _2] = VSelectionControl.filterProps(props);
|
|
15864
16032
|
const label = slots.label ? slots.label({
|
|
15865
16033
|
label: props.label,
|
|
15866
16034
|
props: {
|
|
@@ -15895,7 +16063,8 @@ const VRadioGroup = genericComponent()({
|
|
|
15895
16063
|
"type": props.type,
|
|
15896
16064
|
"disabled": isDisabled.value,
|
|
15897
16065
|
"readonly": isReadonly.value,
|
|
15898
|
-
"aria-labelledby": label ? id.value : undefined
|
|
16066
|
+
"aria-labelledby": label ? id.value : undefined,
|
|
16067
|
+
"multiple": false
|
|
15899
16068
|
}, controlAttrs, {
|
|
15900
16069
|
"modelValue": model.value,
|
|
15901
16070
|
"onUpdate:modelValue": $event => model.value = $event
|
|
@@ -16160,9 +16329,6 @@ const VRating = genericComponent()({
|
|
|
16160
16329
|
const range = computed(() => createRange(Number(props.length), 1));
|
|
16161
16330
|
const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]));
|
|
16162
16331
|
const hoverIndex = ref(-1);
|
|
16163
|
-
const focusIndex = ref(-1);
|
|
16164
|
-
const firstRef = ref();
|
|
16165
|
-
let isClicking = false;
|
|
16166
16332
|
const itemState = computed(() => increments.value.map(value => {
|
|
16167
16333
|
const isHovering = props.hover && hoverIndex.value > -1;
|
|
16168
16334
|
const isFilled = normalizedValue.value >= value;
|
|
@@ -16185,16 +16351,6 @@ const VRating = genericComponent()({
|
|
|
16185
16351
|
function onMouseleave() {
|
|
16186
16352
|
hoverIndex.value = -1;
|
|
16187
16353
|
}
|
|
16188
|
-
function onFocus() {
|
|
16189
|
-
if (value === 0 && normalizedValue.value === 0) {
|
|
16190
|
-
firstRef.value?.focus();
|
|
16191
|
-
} else {
|
|
16192
|
-
focusIndex.value = value;
|
|
16193
|
-
}
|
|
16194
|
-
}
|
|
16195
|
-
function onBlur() {
|
|
16196
|
-
if (!isClicking) focusIndex.value = -1;
|
|
16197
|
-
}
|
|
16198
16354
|
function onClick() {
|
|
16199
16355
|
if (props.disabled || props.readonly) return;
|
|
16200
16356
|
rating.value = normalizedValue.value === value && props.clearable ? 0 : value;
|
|
@@ -16202,17 +16358,9 @@ const VRating = genericComponent()({
|
|
|
16202
16358
|
return {
|
|
16203
16359
|
onMouseenter: props.hover ? onMouseenter : undefined,
|
|
16204
16360
|
onMouseleave: props.hover ? onMouseleave : undefined,
|
|
16205
|
-
onFocus,
|
|
16206
|
-
onBlur,
|
|
16207
16361
|
onClick
|
|
16208
16362
|
};
|
|
16209
16363
|
}));
|
|
16210
|
-
function onMousedown() {
|
|
16211
|
-
isClicking = true;
|
|
16212
|
-
}
|
|
16213
|
-
function onMouseup() {
|
|
16214
|
-
isClicking = false;
|
|
16215
|
-
}
|
|
16216
16364
|
const name = computed(() => props.name ?? `v-rating-${getUid()}`);
|
|
16217
16365
|
function VRatingItem(_ref2) {
|
|
16218
16366
|
let {
|
|
@@ -16223,8 +16371,6 @@ const VRating = genericComponent()({
|
|
|
16223
16371
|
const {
|
|
16224
16372
|
onMouseenter,
|
|
16225
16373
|
onMouseleave,
|
|
16226
|
-
onFocus,
|
|
16227
|
-
onBlur,
|
|
16228
16374
|
onClick
|
|
16229
16375
|
} = eventState.value[index + 1];
|
|
16230
16376
|
const id = `${name.value}-${String(value).replace('.', '-')}`;
|
|
@@ -16235,7 +16381,6 @@ const VRating = genericComponent()({
|
|
|
16235
16381
|
icon: itemState.value[index]?.icon,
|
|
16236
16382
|
ripple: props.ripple,
|
|
16237
16383
|
size: props.size,
|
|
16238
|
-
tag: 'span',
|
|
16239
16384
|
variant: 'plain'
|
|
16240
16385
|
};
|
|
16241
16386
|
return createVNode(Fragment, null, [createVNode("label", {
|
|
@@ -16244,17 +16389,17 @@ const VRating = genericComponent()({
|
|
|
16244
16389
|
'v-rating__item--half': props.halfIncrements && value % 1 > 0,
|
|
16245
16390
|
'v-rating__item--full': props.halfIncrements && value % 1 === 0
|
|
16246
16391
|
},
|
|
16247
|
-
"onMousedown": onMousedown,
|
|
16248
|
-
"onMouseup": onMouseup,
|
|
16249
16392
|
"onMouseenter": onMouseenter,
|
|
16250
|
-
"onMouseleave": onMouseleave
|
|
16393
|
+
"onMouseleave": onMouseleave,
|
|
16394
|
+
"onClick": onClick
|
|
16251
16395
|
}, [createVNode("span", {
|
|
16252
16396
|
"class": "v-rating__hidden"
|
|
16253
16397
|
}, [t(props.itemAriaLabel, value, props.length)]), !showStar ? undefined : slots.item ? slots.item({
|
|
16254
16398
|
...itemState.value[index],
|
|
16255
16399
|
props: btnProps,
|
|
16256
16400
|
value,
|
|
16257
|
-
index
|
|
16401
|
+
index,
|
|
16402
|
+
rating: normalizedValue.value
|
|
16258
16403
|
}) : createVNode(VBtn, btnProps, null)]), createVNode("input", {
|
|
16259
16404
|
"class": "v-rating__hidden",
|
|
16260
16405
|
"name": name.value,
|
|
@@ -16262,10 +16407,7 @@ const VRating = genericComponent()({
|
|
|
16262
16407
|
"type": "radio",
|
|
16263
16408
|
"value": value,
|
|
16264
16409
|
"checked": normalizedValue.value === value,
|
|
16265
|
-
"
|
|
16266
|
-
"onFocus": onFocus,
|
|
16267
|
-
"onBlur": onBlur,
|
|
16268
|
-
"ref": index === 0 ? firstRef : undefined,
|
|
16410
|
+
"tabindex": -1,
|
|
16269
16411
|
"readonly": props.readonly,
|
|
16270
16412
|
"disabled": props.disabled
|
|
16271
16413
|
}, null)]);
|
|
@@ -16294,9 +16436,7 @@ const VRating = genericComponent()({
|
|
|
16294
16436
|
index: i,
|
|
16295
16437
|
label: props.itemLabels?.[i]
|
|
16296
16438
|
}) : undefined, createVNode("div", {
|
|
16297
|
-
"class":
|
|
16298
|
-
'v-rating__item--focused': Math.ceil(focusIndex.value) === value
|
|
16299
|
-
}]
|
|
16439
|
+
"class": "v-rating__item"
|
|
16300
16440
|
}, [props.halfIncrements ? createVNode(Fragment, null, [createVNode(VRatingItem, {
|
|
16301
16441
|
"value": value - 0.5,
|
|
16302
16442
|
"index": i * 2
|
|
@@ -16765,7 +16905,7 @@ const VSnackbar = genericComponent()({
|
|
|
16765
16905
|
window.clearTimeout(activeTimeout);
|
|
16766
16906
|
}
|
|
16767
16907
|
useRender(() => {
|
|
16768
|
-
const [overlayProps] =
|
|
16908
|
+
const [overlayProps] = VOverlay.filterProps(props);
|
|
16769
16909
|
return createVNode(VOverlay, mergeProps({
|
|
16770
16910
|
"ref": overlay,
|
|
16771
16911
|
"class": ['v-snackbar', {
|
|
@@ -16777,19 +16917,18 @@ const VSnackbar = genericComponent()({
|
|
|
16777
16917
|
"modelValue": isActive.value,
|
|
16778
16918
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
16779
16919
|
"contentProps": mergeProps({
|
|
16780
|
-
|
|
16920
|
+
class: ['v-snackbar__wrapper', themeClasses.value, colorClasses.value, roundedClasses.value, variantClasses.value],
|
|
16921
|
+
style: [locationStyles.value, colorStyles.value],
|
|
16922
|
+
onPointerenter,
|
|
16923
|
+
onPointerleave: startTimeout
|
|
16781
16924
|
}, overlayProps.contentProps),
|
|
16782
16925
|
"persistent": true,
|
|
16783
16926
|
"noClickAnimation": true,
|
|
16784
16927
|
"scrim": false,
|
|
16785
|
-
"scrollStrategy": "none"
|
|
16928
|
+
"scrollStrategy": "none",
|
|
16929
|
+
"_disableGlobalStack": true
|
|
16786
16930
|
}, scopeId), {
|
|
16787
|
-
default: () => [createVNode("div", {
|
|
16788
|
-
"class": ['v-snackbar__wrapper', themeClasses.value, colorClasses.value, roundedClasses.value, variantClasses.value],
|
|
16789
|
-
"style": [colorStyles.value],
|
|
16790
|
-
"onPointerenter": onPointerenter,
|
|
16791
|
-
"onPointerleave": startTimeout
|
|
16792
|
-
}, [genOverlays(false, 'v-snackbar'), slots.default && createVNode("div", {
|
|
16931
|
+
default: () => [genOverlays(false, 'v-snackbar'), slots.default && createVNode("div", {
|
|
16793
16932
|
"class": "v-snackbar__content",
|
|
16794
16933
|
"role": "status",
|
|
16795
16934
|
"aria-live": "polite"
|
|
@@ -16804,7 +16943,7 @@ const VSnackbar = genericComponent()({
|
|
|
16804
16943
|
default: () => [createVNode("div", {
|
|
16805
16944
|
"class": "v-snackbar__actions"
|
|
16806
16945
|
}, [slots.actions()])]
|
|
16807
|
-
})]
|
|
16946
|
+
})],
|
|
16808
16947
|
activator: slots.activator
|
|
16809
16948
|
});
|
|
16810
16949
|
});
|
|
@@ -16861,7 +17000,7 @@ const VSwitch = genericComponent()({
|
|
|
16861
17000
|
useRender(() => {
|
|
16862
17001
|
const [inputAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
16863
17002
|
const [inputProps, _1] = filterInputProps(props);
|
|
16864
|
-
const [controlProps, _2] =
|
|
17003
|
+
const [controlProps, _2] = VSelectionControl.filterProps(props);
|
|
16865
17004
|
const control = ref();
|
|
16866
17005
|
function onClick() {
|
|
16867
17006
|
control.value?.input?.click();
|
|
@@ -16963,6 +17102,9 @@ const VSystemBar = genericComponent()({
|
|
|
16963
17102
|
const {
|
|
16964
17103
|
roundedClasses
|
|
16965
17104
|
} = useRounded(props);
|
|
17105
|
+
const {
|
|
17106
|
+
ssrBootStyles
|
|
17107
|
+
} = useSsrBoot();
|
|
16966
17108
|
const height = computed(() => props.height ?? (props.window ? 32 : 24));
|
|
16967
17109
|
const {
|
|
16968
17110
|
layoutItemStyles
|
|
@@ -16979,7 +17121,7 @@ const VSystemBar = genericComponent()({
|
|
|
16979
17121
|
"class": ['v-system-bar', {
|
|
16980
17122
|
'v-system-bar--window': props.window
|
|
16981
17123
|
}, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value],
|
|
16982
|
-
"style": [backgroundColorStyles.value, layoutItemStyles.value]
|
|
17124
|
+
"style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value]
|
|
16983
17125
|
}, slots));
|
|
16984
17126
|
return {};
|
|
16985
17127
|
}
|
|
@@ -16991,28 +17133,17 @@ const VTab = genericComponent()({
|
|
|
16991
17133
|
name: 'VTab',
|
|
16992
17134
|
props: {
|
|
16993
17135
|
fixed: Boolean,
|
|
16994
|
-
icon: [Boolean, String, Function, Object],
|
|
16995
|
-
prependIcon: IconValue,
|
|
16996
|
-
appendIcon: IconValue,
|
|
16997
|
-
stacked: Boolean,
|
|
16998
17136
|
title: String,
|
|
16999
|
-
ripple: {
|
|
17000
|
-
type: Boolean,
|
|
17001
|
-
default: true
|
|
17002
|
-
},
|
|
17003
|
-
color: String,
|
|
17004
17137
|
sliderColor: String,
|
|
17005
17138
|
hideSlider: Boolean,
|
|
17006
17139
|
direction: {
|
|
17007
17140
|
type: String,
|
|
17008
17141
|
default: 'horizontal'
|
|
17009
17142
|
},
|
|
17010
|
-
...
|
|
17011
|
-
|
|
17012
|
-
|
|
17013
|
-
|
|
17014
|
-
}),
|
|
17015
|
-
...makeThemeProps()
|
|
17143
|
+
...omit(makeVBtnProps({
|
|
17144
|
+
selectedClass: 'v-tab--selected',
|
|
17145
|
+
variant: 'text'
|
|
17146
|
+
}), ['active', 'block', 'flat', 'location', 'position', 'symbol'])
|
|
17016
17147
|
},
|
|
17017
17148
|
setup(props, _ref) {
|
|
17018
17149
|
let {
|
|
@@ -17062,7 +17193,7 @@ const VTab = genericComponent()({
|
|
|
17062
17193
|
}
|
|
17063
17194
|
}
|
|
17064
17195
|
useRender(() => {
|
|
17065
|
-
const [btnProps] =
|
|
17196
|
+
const [btnProps] = VBtn.filterProps(props);
|
|
17066
17197
|
return createVNode(VBtn, mergeProps({
|
|
17067
17198
|
"_as": "VTab",
|
|
17068
17199
|
"symbol": VTabsSymbol,
|
|
@@ -17074,7 +17205,6 @@ const VTab = genericComponent()({
|
|
|
17074
17205
|
"active": false,
|
|
17075
17206
|
"block": props.fixed,
|
|
17076
17207
|
"maxWidth": props.fixed ? 300 : undefined,
|
|
17077
|
-
"variant": "text",
|
|
17078
17208
|
"rounded": 0
|
|
17079
17209
|
}, btnProps, attrs, {
|
|
17080
17210
|
"onGroup:selected": updateSlider
|
|
@@ -17319,7 +17449,13 @@ const VTextarea = genericComponent()({
|
|
|
17319
17449
|
});
|
|
17320
17450
|
}
|
|
17321
17451
|
function onInput(e) {
|
|
17322
|
-
|
|
17452
|
+
const el = e.target;
|
|
17453
|
+
const caretPosition = [el.selectionStart, el.selectionEnd];
|
|
17454
|
+
model.value = el.value;
|
|
17455
|
+
nextTick(() => {
|
|
17456
|
+
el.selectionStart = caretPosition[0];
|
|
17457
|
+
el.selectionEnd = caretPosition[1];
|
|
17458
|
+
});
|
|
17323
17459
|
}
|
|
17324
17460
|
const sizerRef = ref();
|
|
17325
17461
|
function calculateInputHeight() {
|
|
@@ -17403,6 +17539,7 @@ const VTextarea = genericComponent()({
|
|
|
17403
17539
|
}, fieldProps, {
|
|
17404
17540
|
"active": isActive.value || isDirty.value,
|
|
17405
17541
|
"dirty": isDirty.value || props.dirty,
|
|
17542
|
+
"disabled": isDisabled.value,
|
|
17406
17543
|
"focused": isFocused.value,
|
|
17407
17544
|
"error": isValid.value === false
|
|
17408
17545
|
}), {
|
|
@@ -17605,13 +17742,6 @@ const VTimelineDivider = genericComponent()({
|
|
|
17605
17742
|
backgroundColorClasses: lineColorClasses,
|
|
17606
17743
|
backgroundColorStyles: lineColorStyles
|
|
17607
17744
|
} = useBackgroundColor(toRef(props, 'lineColor'));
|
|
17608
|
-
provideDefaults({
|
|
17609
|
-
VIcon: {
|
|
17610
|
-
color: toRef(props, 'iconColor'),
|
|
17611
|
-
icon: toRef(props, 'icon'),
|
|
17612
|
-
size: toRef(props, 'size')
|
|
17613
|
-
}
|
|
17614
|
-
});
|
|
17615
17745
|
useRender(() => createVNode("div", {
|
|
17616
17746
|
"class": ['v-timeline-divider', {
|
|
17617
17747
|
'v-timeline-divider--fill-dot': props.fillDot
|
|
@@ -17626,7 +17756,22 @@ const VTimelineDivider = genericComponent()({
|
|
|
17626
17756
|
}, [createVNode("div", {
|
|
17627
17757
|
"class": ['v-timeline-divider__inner-dot', backgroundColorClasses.value, roundedClasses.value],
|
|
17628
17758
|
"style": backgroundColorStyles.value
|
|
17629
|
-
}, [slots.default
|
|
17759
|
+
}, [!slots.default ? createVNode(VIcon, {
|
|
17760
|
+
"key": "icon",
|
|
17761
|
+
"color": props.iconColor,
|
|
17762
|
+
"icon": props.icon,
|
|
17763
|
+
"size": props.size
|
|
17764
|
+
}, null) : createVNode(VDefaultsProvider, {
|
|
17765
|
+
"key": "icon-defaults",
|
|
17766
|
+
"disabled": !props.icon,
|
|
17767
|
+
"defaults": {
|
|
17768
|
+
VIcon: {
|
|
17769
|
+
color: props.iconColor,
|
|
17770
|
+
icon: props.icon,
|
|
17771
|
+
size: props.size
|
|
17772
|
+
}
|
|
17773
|
+
}
|
|
17774
|
+
}, slots.default)])]), createVNode("div", {
|
|
17630
17775
|
"class": ['v-timeline-divider__after', lineColorClasses.value],
|
|
17631
17776
|
"style": lineColorStyles.value
|
|
17632
17777
|
}, null)]));
|
|
@@ -17712,6 +17857,7 @@ const VTooltip = genericComponent()({
|
|
|
17712
17857
|
closeOnBack: false,
|
|
17713
17858
|
location: 'end',
|
|
17714
17859
|
locationStrategy: 'connected',
|
|
17860
|
+
eager: true,
|
|
17715
17861
|
minWidth: 0,
|
|
17716
17862
|
offset: 10,
|
|
17717
17863
|
openOnClick: false,
|
|
@@ -17720,7 +17866,7 @@ const VTooltip = genericComponent()({
|
|
|
17720
17866
|
scrim: false,
|
|
17721
17867
|
scrollStrategy: 'reposition',
|
|
17722
17868
|
transition: false
|
|
17723
|
-
}), ['absolute', 'persistent'
|
|
17869
|
+
}), ['absolute', 'persistent'])
|
|
17724
17870
|
},
|
|
17725
17871
|
emits: {
|
|
17726
17872
|
'update:modelValue': value => true
|
|
@@ -17750,7 +17896,7 @@ const VTooltip = genericComponent()({
|
|
|
17750
17896
|
'aria-describedby': id.value
|
|
17751
17897
|
}, props.activatorProps));
|
|
17752
17898
|
useRender(() => {
|
|
17753
|
-
const [overlayProps] =
|
|
17899
|
+
const [overlayProps] = VOverlay.filterProps(props);
|
|
17754
17900
|
return createVNode(VOverlay, mergeProps({
|
|
17755
17901
|
"ref": overlay,
|
|
17756
17902
|
"class": ['v-tooltip'],
|
|
@@ -17764,7 +17910,6 @@ const VTooltip = genericComponent()({
|
|
|
17764
17910
|
"origin": origin.value,
|
|
17765
17911
|
"persistent": true,
|
|
17766
17912
|
"role": "tooltip",
|
|
17767
|
-
"eager": true,
|
|
17768
17913
|
"activatorProps": activatorProps.value,
|
|
17769
17914
|
"_disableGlobalStack": true
|
|
17770
17915
|
}, scopeId), {
|
|
@@ -17997,7 +18142,7 @@ const makeDataTableSelectProps = propsFactory({
|
|
|
17997
18142
|
}
|
|
17998
18143
|
}, 'v-data-table-select');
|
|
17999
18144
|
const VDataTableSelectionSymbol = Symbol.for('vuetify:data-table-selection');
|
|
18000
|
-
function
|
|
18145
|
+
function provideSelection(props, allItems) {
|
|
18001
18146
|
const selected = useProxiedModel(props, 'modelValue', props.modelValue, v => {
|
|
18002
18147
|
return new Set(v);
|
|
18003
18148
|
}, v => {
|
|
@@ -18057,13 +18202,28 @@ const makeDataTableSortProps = propsFactory({
|
|
|
18057
18202
|
const VDataTableSortSymbol = Symbol.for('vuetify:data-table-sort');
|
|
18058
18203
|
function createSort(props) {
|
|
18059
18204
|
const sortBy = useProxiedModel(props, 'sortBy');
|
|
18205
|
+
const mustSort = toRef(props, 'mustSort');
|
|
18206
|
+
const multiSort = toRef(props, 'multiSort');
|
|
18207
|
+
return {
|
|
18208
|
+
sortBy,
|
|
18209
|
+
mustSort,
|
|
18210
|
+
multiSort
|
|
18211
|
+
};
|
|
18212
|
+
}
|
|
18213
|
+
function provideSort(options) {
|
|
18214
|
+
const {
|
|
18215
|
+
sortBy,
|
|
18216
|
+
mustSort,
|
|
18217
|
+
multiSort,
|
|
18218
|
+
page
|
|
18219
|
+
} = options;
|
|
18060
18220
|
const toggleSort = key => {
|
|
18061
18221
|
let newSortBy = sortBy.value.map(x => ({
|
|
18062
18222
|
...x
|
|
18063
18223
|
})) ?? [];
|
|
18064
18224
|
const item = newSortBy.find(x => x.key === key);
|
|
18065
18225
|
if (!item) {
|
|
18066
|
-
if (
|
|
18226
|
+
if (multiSort.value) newSortBy = [...newSortBy, {
|
|
18067
18227
|
key,
|
|
18068
18228
|
order: 'asc'
|
|
18069
18229
|
}];else newSortBy = [{
|
|
@@ -18071,7 +18231,7 @@ function createSort(props) {
|
|
|
18071
18231
|
order: 'asc'
|
|
18072
18232
|
}];
|
|
18073
18233
|
} else if (item.order === 'desc') {
|
|
18074
|
-
if (
|
|
18234
|
+
if (mustSort.value) {
|
|
18075
18235
|
item.order = 'asc';
|
|
18076
18236
|
} else {
|
|
18077
18237
|
newSortBy = newSortBy.filter(x => x.key !== key);
|
|
@@ -18080,6 +18240,7 @@ function createSort(props) {
|
|
|
18080
18240
|
item.order = 'desc';
|
|
18081
18241
|
}
|
|
18082
18242
|
sortBy.value = newSortBy;
|
|
18243
|
+
if (page) page.value = 1;
|
|
18083
18244
|
};
|
|
18084
18245
|
const data = {
|
|
18085
18246
|
sortBy,
|
|
@@ -18282,9 +18443,6 @@ const VDataTableHeaders = genericComponent()({
|
|
|
18282
18443
|
});
|
|
18283
18444
|
|
|
18284
18445
|
// Utilities
|
|
18285
|
-
|
|
18286
|
-
// Types
|
|
18287
|
-
|
|
18288
18446
|
const makeDataTableGroupProps = propsFactory({
|
|
18289
18447
|
groupBy: {
|
|
18290
18448
|
type: Array,
|
|
@@ -18292,7 +18450,17 @@ const makeDataTableGroupProps = propsFactory({
|
|
|
18292
18450
|
}
|
|
18293
18451
|
}, 'data-table-group');
|
|
18294
18452
|
const VDataTableGroupSymbol = Symbol.for('vuetify:data-table-group');
|
|
18295
|
-
function createGroupBy(props
|
|
18453
|
+
function createGroupBy(props) {
|
|
18454
|
+
const groupBy = useProxiedModel(props, 'groupBy');
|
|
18455
|
+
return {
|
|
18456
|
+
groupBy
|
|
18457
|
+
};
|
|
18458
|
+
}
|
|
18459
|
+
function provideGroupBy(options) {
|
|
18460
|
+
const {
|
|
18461
|
+
groupBy,
|
|
18462
|
+
sortBy
|
|
18463
|
+
} = options;
|
|
18296
18464
|
const opened = ref(new Set());
|
|
18297
18465
|
const sortByWithGroups = computed(() => {
|
|
18298
18466
|
return groupBy.value.map(val => ({
|
|
@@ -18502,7 +18670,7 @@ const makeDataTableExpandProps = propsFactory({
|
|
|
18502
18670
|
}
|
|
18503
18671
|
}, 'v-data-table-expand');
|
|
18504
18672
|
const VDataTableExpandedKey = Symbol.for('vuetify:datatable:expanded');
|
|
18505
|
-
function
|
|
18673
|
+
function provideExpanded(props) {
|
|
18506
18674
|
const expandOnClick = toRef(props, 'expandOnClick');
|
|
18507
18675
|
const expanded = useProxiedModel(props, 'expanded', props.expanded, v => {
|
|
18508
18676
|
return new Set(v);
|
|
@@ -18545,7 +18713,9 @@ function useExpanded() {
|
|
|
18545
18713
|
const VDataTableRow = defineComponent({
|
|
18546
18714
|
name: 'VDataTableRow',
|
|
18547
18715
|
props: {
|
|
18548
|
-
|
|
18716
|
+
index: Number,
|
|
18717
|
+
item: Object,
|
|
18718
|
+
onClick: Function
|
|
18549
18719
|
},
|
|
18550
18720
|
setup(props, _ref) {
|
|
18551
18721
|
let {
|
|
@@ -18563,7 +18733,10 @@ const VDataTableRow = defineComponent({
|
|
|
18563
18733
|
columns
|
|
18564
18734
|
} = useHeaders();
|
|
18565
18735
|
useRender(() => createVNode("tr", {
|
|
18566
|
-
"class": ['v-data-table__tr'
|
|
18736
|
+
"class": ['v-data-table__tr', {
|
|
18737
|
+
'v-data-table__tr--clickable': !!props.onClick
|
|
18738
|
+
}],
|
|
18739
|
+
"onClick": props.onClick
|
|
18567
18740
|
}, [!columns.value.length && createVNode(VDataTableColumn, {
|
|
18568
18741
|
"key": "no-data"
|
|
18569
18742
|
}, slots), props.item && columns.value.map((column, i) => createVNode(VDataTableColumn, {
|
|
@@ -18578,6 +18751,7 @@ const VDataTableRow = defineComponent({
|
|
|
18578
18751
|
const item = props.item;
|
|
18579
18752
|
const slotName = `item.${column.key}`;
|
|
18580
18753
|
const slotProps = {
|
|
18754
|
+
index: props.index,
|
|
18581
18755
|
item: props.item,
|
|
18582
18756
|
columns: columns.value,
|
|
18583
18757
|
isSelected,
|
|
@@ -18681,7 +18855,7 @@ const VDataTableRows = genericComponent()({
|
|
|
18681
18855
|
"item": item
|
|
18682
18856
|
}, slots);
|
|
18683
18857
|
}
|
|
18684
|
-
|
|
18858
|
+
const slotProps = {
|
|
18685
18859
|
index,
|
|
18686
18860
|
item,
|
|
18687
18861
|
columns: columns.value,
|
|
@@ -18689,21 +18863,20 @@ const VDataTableRows = genericComponent()({
|
|
|
18689
18863
|
toggleExpand,
|
|
18690
18864
|
isSelected,
|
|
18691
18865
|
toggleSelect
|
|
18692
|
-
}
|
|
18866
|
+
};
|
|
18867
|
+
return createVNode(Fragment, null, [slots.item ? slots.item(slotProps) : createVNode(VDataTableRow, {
|
|
18693
18868
|
"key": `item_${item.value}`,
|
|
18694
18869
|
"onClick": event => {
|
|
18695
18870
|
if (expandOnClick.value) {
|
|
18696
|
-
toggleExpand(item
|
|
18871
|
+
toggleExpand(item);
|
|
18697
18872
|
}
|
|
18698
18873
|
emit('click:row', event, {
|
|
18699
18874
|
item
|
|
18700
18875
|
});
|
|
18701
18876
|
},
|
|
18877
|
+
"index": index,
|
|
18702
18878
|
"item": item
|
|
18703
|
-
}, slots), isExpanded(item) && slots['expanded-row']?.(
|
|
18704
|
-
item,
|
|
18705
|
-
columns: columns.value
|
|
18706
|
-
})]);
|
|
18879
|
+
}, slots), isExpanded(item) && slots['expanded-row']?.(slotProps)]);
|
|
18707
18880
|
})]));
|
|
18708
18881
|
return {};
|
|
18709
18882
|
}
|
|
@@ -18724,10 +18897,20 @@ const makeDataTablePaginateProps = propsFactory({
|
|
|
18724
18897
|
}
|
|
18725
18898
|
}, 'v-data-table-paginate');
|
|
18726
18899
|
const VDataTablePaginationSymbol = Symbol.for('vuetify:data-table-pagination');
|
|
18727
|
-
function createPagination(props
|
|
18900
|
+
function createPagination(props) {
|
|
18728
18901
|
const page = useProxiedModel(props, 'page', undefined, value => +(value ?? 1));
|
|
18729
18902
|
const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => +(value ?? 10));
|
|
18730
|
-
|
|
18903
|
+
return {
|
|
18904
|
+
page,
|
|
18905
|
+
itemsPerPage
|
|
18906
|
+
};
|
|
18907
|
+
}
|
|
18908
|
+
function providePagination(options) {
|
|
18909
|
+
const {
|
|
18910
|
+
page,
|
|
18911
|
+
itemsPerPage,
|
|
18912
|
+
itemsLength
|
|
18913
|
+
} = options;
|
|
18731
18914
|
const startIndex = computed(() => {
|
|
18732
18915
|
if (itemsPerPage.value === -1) return 0;
|
|
18733
18916
|
return itemsPerPage.value * (page.value - 1);
|
|
@@ -18740,13 +18923,18 @@ function createPagination(props, items) {
|
|
|
18740
18923
|
if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1;
|
|
18741
18924
|
return Math.ceil(itemsLength.value / itemsPerPage.value);
|
|
18742
18925
|
});
|
|
18926
|
+
function setItemsPerPage(value) {
|
|
18927
|
+
itemsPerPage.value = value;
|
|
18928
|
+
page.value = 1;
|
|
18929
|
+
}
|
|
18743
18930
|
const data = {
|
|
18744
18931
|
page,
|
|
18745
18932
|
itemsPerPage,
|
|
18933
|
+
itemsLength,
|
|
18746
18934
|
startIndex,
|
|
18747
18935
|
stopIndex,
|
|
18748
18936
|
pageCount,
|
|
18749
|
-
|
|
18937
|
+
setItemsPerPage
|
|
18750
18938
|
};
|
|
18751
18939
|
provide(VDataTablePaginationSymbol, data);
|
|
18752
18940
|
return data;
|
|
@@ -18756,7 +18944,13 @@ function usePagination() {
|
|
|
18756
18944
|
if (!data) throw new Error('Missing pagination!');
|
|
18757
18945
|
return data;
|
|
18758
18946
|
}
|
|
18759
|
-
function usePaginatedItems(
|
|
18947
|
+
function usePaginatedItems(options) {
|
|
18948
|
+
const {
|
|
18949
|
+
items,
|
|
18950
|
+
startIndex,
|
|
18951
|
+
stopIndex,
|
|
18952
|
+
itemsPerPage
|
|
18953
|
+
} = options;
|
|
18760
18954
|
const paginatedItems = computed(() => {
|
|
18761
18955
|
if (itemsPerPage.value <= 0) return items.value;
|
|
18762
18956
|
return items.value.slice(startIndex.value, stopIndex.value);
|
|
@@ -18845,7 +19039,8 @@ const VDataTableFooter = genericComponent()({
|
|
|
18845
19039
|
startIndex,
|
|
18846
19040
|
stopIndex,
|
|
18847
19041
|
itemsLength,
|
|
18848
|
-
itemsPerPage
|
|
19042
|
+
itemsPerPage,
|
|
19043
|
+
setItemsPerPage
|
|
18849
19044
|
} = usePagination();
|
|
18850
19045
|
const itemsPerPageOptions = computed(() => props.itemsPerPageOptions.map(option => ({
|
|
18851
19046
|
...option,
|
|
@@ -18858,7 +19053,7 @@ const VDataTableFooter = genericComponent()({
|
|
|
18858
19053
|
}, [createVNode("span", null, [t(props.itemsPerPageText)]), createVNode(VSelect, {
|
|
18859
19054
|
"items": itemsPerPageOptions.value,
|
|
18860
19055
|
"modelValue": itemsPerPage.value,
|
|
18861
|
-
"onUpdate:modelValue": v =>
|
|
19056
|
+
"onUpdate:modelValue": v => setItemsPerPage(Number(v)),
|
|
18862
19057
|
"density": "compact",
|
|
18863
19058
|
"variant": "outlined",
|
|
18864
19059
|
"hide-details": true
|
|
@@ -18936,7 +19131,8 @@ function useOptions(_ref) {
|
|
|
18936
19131
|
page,
|
|
18937
19132
|
itemsPerPage,
|
|
18938
19133
|
sortBy,
|
|
18939
|
-
groupBy
|
|
19134
|
+
groupBy,
|
|
19135
|
+
search
|
|
18940
19136
|
} = _ref;
|
|
18941
19137
|
const vm = getCurrentInstance('VDataTable');
|
|
18942
19138
|
const options = computed(() => ({
|
|
@@ -18946,15 +19142,8 @@ function useOptions(_ref) {
|
|
|
18946
19142
|
groupBy: groupBy.value
|
|
18947
19143
|
}));
|
|
18948
19144
|
|
|
18949
|
-
// Reset page when
|
|
18950
|
-
watch(
|
|
18951
|
-
page.value = 1;
|
|
18952
|
-
}, {
|
|
18953
|
-
deep: true
|
|
18954
|
-
});
|
|
18955
|
-
|
|
18956
|
-
// Reset page when items-per-page changes
|
|
18957
|
-
watch(itemsPerPage, () => {
|
|
19145
|
+
// Reset page when searching
|
|
19146
|
+
watch(() => search?.value, () => {
|
|
18958
19147
|
page.value = 1;
|
|
18959
19148
|
});
|
|
18960
19149
|
let oldOptions = null;
|
|
@@ -19010,7 +19199,18 @@ const VDataTable = genericComponent()({
|
|
|
19010
19199
|
emit,
|
|
19011
19200
|
slots
|
|
19012
19201
|
} = _ref;
|
|
19013
|
-
const
|
|
19202
|
+
const {
|
|
19203
|
+
groupBy
|
|
19204
|
+
} = createGroupBy(props);
|
|
19205
|
+
const {
|
|
19206
|
+
sortBy,
|
|
19207
|
+
multiSort,
|
|
19208
|
+
mustSort
|
|
19209
|
+
} = createSort(props);
|
|
19210
|
+
const {
|
|
19211
|
+
page,
|
|
19212
|
+
itemsPerPage
|
|
19213
|
+
} = createPagination(props);
|
|
19014
19214
|
const {
|
|
19015
19215
|
columns
|
|
19016
19216
|
} = createHeaders(props, {
|
|
@@ -19022,42 +19222,58 @@ const VDataTable = genericComponent()({
|
|
|
19022
19222
|
items
|
|
19023
19223
|
} = useDataTableItems(props, columns);
|
|
19024
19224
|
const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key));
|
|
19225
|
+
const search = toRef(props, 'search');
|
|
19025
19226
|
const {
|
|
19026
19227
|
filteredItems
|
|
19027
|
-
} = useFilter(props, items,
|
|
19228
|
+
} = useFilter(props, items, search, {
|
|
19028
19229
|
filterKeys
|
|
19029
19230
|
});
|
|
19030
|
-
|
|
19031
|
-
sortBy
|
|
19032
|
-
|
|
19231
|
+
provideSort({
|
|
19232
|
+
sortBy,
|
|
19233
|
+
multiSort,
|
|
19234
|
+
mustSort,
|
|
19235
|
+
page
|
|
19236
|
+
});
|
|
19033
19237
|
const {
|
|
19034
19238
|
sortByWithGroups,
|
|
19035
19239
|
opened,
|
|
19036
19240
|
extractRows
|
|
19037
|
-
} =
|
|
19241
|
+
} = provideGroupBy({
|
|
19242
|
+
groupBy,
|
|
19243
|
+
sortBy
|
|
19244
|
+
});
|
|
19038
19245
|
const {
|
|
19039
19246
|
sortedItems
|
|
19040
19247
|
} = useSortedItems(filteredItems, sortByWithGroups, columns);
|
|
19041
19248
|
const {
|
|
19042
19249
|
flatItems
|
|
19043
19250
|
} = useGroupedItems(sortedItems, groupBy, opened);
|
|
19251
|
+
const itemsLength = computed(() => flatItems.value.length);
|
|
19044
19252
|
const {
|
|
19045
|
-
page,
|
|
19046
|
-
itemsPerPage,
|
|
19047
19253
|
startIndex,
|
|
19048
19254
|
stopIndex
|
|
19049
|
-
} =
|
|
19255
|
+
} = providePagination({
|
|
19256
|
+
page,
|
|
19257
|
+
itemsPerPage,
|
|
19258
|
+
itemsLength
|
|
19259
|
+
});
|
|
19050
19260
|
const {
|
|
19051
19261
|
paginatedItems
|
|
19052
|
-
} = usePaginatedItems(
|
|
19262
|
+
} = usePaginatedItems({
|
|
19263
|
+
items: flatItems,
|
|
19264
|
+
startIndex,
|
|
19265
|
+
stopIndex,
|
|
19266
|
+
itemsPerPage
|
|
19267
|
+
});
|
|
19053
19268
|
const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value));
|
|
19054
|
-
|
|
19055
|
-
|
|
19269
|
+
provideSelection(props, paginatedItemsWithoutGroups);
|
|
19270
|
+
provideExpanded(props);
|
|
19056
19271
|
useOptions({
|
|
19057
19272
|
page,
|
|
19058
19273
|
itemsPerPage,
|
|
19059
19274
|
sortBy,
|
|
19060
|
-
groupBy
|
|
19275
|
+
groupBy,
|
|
19276
|
+
search
|
|
19061
19277
|
});
|
|
19062
19278
|
provideDefaults({
|
|
19063
19279
|
VDataTableRows: {
|
|
@@ -19199,7 +19415,14 @@ const VDataTableVirtual = genericComponent()({
|
|
|
19199
19415
|
emit,
|
|
19200
19416
|
slots
|
|
19201
19417
|
} = _ref;
|
|
19202
|
-
const
|
|
19418
|
+
const {
|
|
19419
|
+
groupBy
|
|
19420
|
+
} = createGroupBy(props);
|
|
19421
|
+
const {
|
|
19422
|
+
sortBy,
|
|
19423
|
+
multiSort,
|
|
19424
|
+
mustSort
|
|
19425
|
+
} = createSort(props);
|
|
19203
19426
|
const {
|
|
19204
19427
|
columns
|
|
19205
19428
|
} = createHeaders(props, {
|
|
@@ -19211,19 +19434,25 @@ const VDataTableVirtual = genericComponent()({
|
|
|
19211
19434
|
items
|
|
19212
19435
|
} = useDataTableItems(props, columns);
|
|
19213
19436
|
const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key));
|
|
19437
|
+
const search = toRef(props, 'search');
|
|
19214
19438
|
const {
|
|
19215
19439
|
filteredItems
|
|
19216
|
-
} = useFilter(props, items,
|
|
19440
|
+
} = useFilter(props, items, search, {
|
|
19217
19441
|
filterKeys
|
|
19218
19442
|
});
|
|
19219
|
-
|
|
19220
|
-
sortBy
|
|
19221
|
-
|
|
19443
|
+
provideSort({
|
|
19444
|
+
sortBy,
|
|
19445
|
+
multiSort,
|
|
19446
|
+
mustSort
|
|
19447
|
+
});
|
|
19222
19448
|
const {
|
|
19223
19449
|
sortByWithGroups,
|
|
19224
19450
|
opened,
|
|
19225
19451
|
extractRows
|
|
19226
|
-
} =
|
|
19452
|
+
} = provideGroupBy({
|
|
19453
|
+
groupBy,
|
|
19454
|
+
sortBy
|
|
19455
|
+
});
|
|
19227
19456
|
const {
|
|
19228
19457
|
sortedItems
|
|
19229
19458
|
} = useSortedItems(filteredItems, sortByWithGroups, columns);
|
|
@@ -19231,8 +19460,8 @@ const VDataTableVirtual = genericComponent()({
|
|
|
19231
19460
|
flatItems
|
|
19232
19461
|
} = useGroupedItems(sortedItems, groupBy, opened);
|
|
19233
19462
|
const allRows = computed(() => extractRows(flatItems.value));
|
|
19234
|
-
|
|
19235
|
-
|
|
19463
|
+
provideSelection(props, allRows);
|
|
19464
|
+
provideExpanded(props);
|
|
19236
19465
|
const {
|
|
19237
19466
|
containerRef,
|
|
19238
19467
|
paddingTop,
|
|
@@ -19249,7 +19478,8 @@ const VDataTableVirtual = genericComponent()({
|
|
|
19249
19478
|
sortBy,
|
|
19250
19479
|
page: ref(1),
|
|
19251
19480
|
itemsPerPage: ref(-1),
|
|
19252
|
-
groupBy
|
|
19481
|
+
groupBy,
|
|
19482
|
+
search
|
|
19253
19483
|
});
|
|
19254
19484
|
provideDefaults({
|
|
19255
19485
|
VDataTableRows: {
|
|
@@ -19318,7 +19548,10 @@ const VDataTableServer = genericComponent()({
|
|
|
19318
19548
|
type: String,
|
|
19319
19549
|
default: '$vuetify.dataIterator.loadingText'
|
|
19320
19550
|
},
|
|
19321
|
-
itemsLength:
|
|
19551
|
+
itemsLength: {
|
|
19552
|
+
type: [Number, String],
|
|
19553
|
+
required: true
|
|
19554
|
+
},
|
|
19322
19555
|
...makeVDataTableProps(),
|
|
19323
19556
|
...makeDataTableExpandProps(),
|
|
19324
19557
|
...makeDataTableHeaderProps(),
|
|
@@ -19343,8 +19576,20 @@ const VDataTableServer = genericComponent()({
|
|
|
19343
19576
|
emit,
|
|
19344
19577
|
slots
|
|
19345
19578
|
} = _ref;
|
|
19346
|
-
const
|
|
19347
|
-
|
|
19579
|
+
const {
|
|
19580
|
+
groupBy
|
|
19581
|
+
} = createGroupBy(props);
|
|
19582
|
+
const {
|
|
19583
|
+
sortBy,
|
|
19584
|
+
multiSort,
|
|
19585
|
+
mustSort
|
|
19586
|
+
} = createSort(props);
|
|
19587
|
+
const {
|
|
19588
|
+
page,
|
|
19589
|
+
itemsPerPage
|
|
19590
|
+
} = createPagination(props);
|
|
19591
|
+
const itemsLength = computed(() => parseInt(props.itemsLength, 10));
|
|
19592
|
+
provideExpanded(props);
|
|
19348
19593
|
const {
|
|
19349
19594
|
columns
|
|
19350
19595
|
} = createHeaders(props, {
|
|
@@ -19356,20 +19601,28 @@ const VDataTableServer = genericComponent()({
|
|
|
19356
19601
|
items
|
|
19357
19602
|
} = useDataTableItems(props, columns);
|
|
19358
19603
|
const {
|
|
19359
|
-
sortBy,
|
|
19360
19604
|
toggleSort
|
|
19361
|
-
} =
|
|
19605
|
+
} = provideSort({
|
|
19606
|
+
sortBy,
|
|
19607
|
+
multiSort,
|
|
19608
|
+
mustSort,
|
|
19609
|
+
page
|
|
19610
|
+
});
|
|
19362
19611
|
const {
|
|
19363
19612
|
opened
|
|
19364
|
-
} =
|
|
19365
|
-
|
|
19613
|
+
} = provideGroupBy({
|
|
19614
|
+
groupBy,
|
|
19615
|
+
sortBy
|
|
19616
|
+
});
|
|
19617
|
+
providePagination({
|
|
19366
19618
|
page,
|
|
19367
|
-
itemsPerPage
|
|
19368
|
-
|
|
19619
|
+
itemsPerPage,
|
|
19620
|
+
itemsLength
|
|
19621
|
+
});
|
|
19369
19622
|
const {
|
|
19370
19623
|
flatItems
|
|
19371
19624
|
} = useGroupedItems(items, groupBy, opened);
|
|
19372
|
-
|
|
19625
|
+
provideSelection(props, items);
|
|
19373
19626
|
useOptions({
|
|
19374
19627
|
page,
|
|
19375
19628
|
itemsPerPage,
|
|
@@ -19404,7 +19657,7 @@ const VDataTableServer = genericComponent()({
|
|
|
19404
19657
|
"sticky": props.fixedHeader,
|
|
19405
19658
|
"loading": props.loading,
|
|
19406
19659
|
"color": props.color
|
|
19407
|
-
},
|
|
19660
|
+
}, slots)]), slots.thead?.(), createVNode("tbody", {
|
|
19408
19661
|
"class": "v-data-table__tbody",
|
|
19409
19662
|
"role": "rowgroup"
|
|
19410
19663
|
}, [slots.body ? slots.body() : createVNode(VDataTableRows, {
|
|
@@ -19489,13 +19742,15 @@ const VVirtualScroll = genericComponent()({
|
|
|
19489
19742
|
resizeRef.value = rootEl.value;
|
|
19490
19743
|
});
|
|
19491
19744
|
const display = useDisplay();
|
|
19492
|
-
const
|
|
19745
|
+
const sizeMap = new Map();
|
|
19746
|
+
let sizes = createRange(props.items.length).map(() => itemHeight.value);
|
|
19493
19747
|
const visibleItems = computed(() => {
|
|
19494
19748
|
return props.visibleItems ? parseInt(props.visibleItems, 10) : Math.max(12, Math.ceil((contentRect.value?.height ?? display.height.value) / itemHeight.value * 1.7 + 1));
|
|
19495
19749
|
});
|
|
19496
19750
|
function handleItemResize(index, height) {
|
|
19497
19751
|
itemHeight.value = Math.max(itemHeight.value, height);
|
|
19498
19752
|
sizes[index] = height;
|
|
19753
|
+
sizeMap.set(props.items[index], height);
|
|
19499
19754
|
}
|
|
19500
19755
|
function calculateOffset(index) {
|
|
19501
19756
|
return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0);
|
|
@@ -19525,9 +19780,9 @@ const VVirtualScroll = genericComponent()({
|
|
|
19525
19780
|
const midPointIndex = calculateMidPointIndex(scrollTop + height / 2);
|
|
19526
19781
|
const buffer = Math.round(visibleItems.value / 3);
|
|
19527
19782
|
if (direction === UP && midPointIndex <= first.value + buffer * 2 - 1) {
|
|
19528
|
-
first.value =
|
|
19783
|
+
first.value = clamp(midPointIndex - buffer, 0, props.items.length);
|
|
19529
19784
|
} else if (direction === DOWN && midPointIndex >= first.value + buffer * 2 - 1) {
|
|
19530
|
-
first.value =
|
|
19785
|
+
first.value = clamp(midPointIndex - buffer, 0, props.items.length - visibleItems.value);
|
|
19531
19786
|
}
|
|
19532
19787
|
lastScrollTop = rootEl.value.scrollTop;
|
|
19533
19788
|
}
|
|
@@ -19549,6 +19804,17 @@ const VVirtualScroll = genericComponent()({
|
|
|
19549
19804
|
itemHeight.value = sizes.slice(first.value, last.value).reduce((curr, height) => curr + height, 0) / visibleItems.value;
|
|
19550
19805
|
}
|
|
19551
19806
|
});
|
|
19807
|
+
watch(() => props.items.length, () => {
|
|
19808
|
+
sizes = createRange(props.items.length).map(() => itemHeight.value);
|
|
19809
|
+
sizeMap.forEach((height, item) => {
|
|
19810
|
+
const index = props.items.indexOf(item);
|
|
19811
|
+
if (index === -1) {
|
|
19812
|
+
sizeMap.delete(item);
|
|
19813
|
+
} else {
|
|
19814
|
+
sizes[index] = height;
|
|
19815
|
+
}
|
|
19816
|
+
});
|
|
19817
|
+
});
|
|
19552
19818
|
useRender(() => createVNode("div", {
|
|
19553
19819
|
"ref": rootEl,
|
|
19554
19820
|
"class": "v-virtual-scroll",
|
|
@@ -19927,7 +20193,7 @@ function createVuetify$1() {
|
|
|
19927
20193
|
locale
|
|
19928
20194
|
};
|
|
19929
20195
|
}
|
|
19930
|
-
const version$1 = "3.2.0-dev-
|
|
20196
|
+
const version$1 = "3.2.0-dev-20230322.0";
|
|
19931
20197
|
createVuetify$1.version = version$1;
|
|
19932
20198
|
|
|
19933
20199
|
// Vue's inject() can only be used in setup
|
|
@@ -19939,7 +20205,7 @@ function inject(key) {
|
|
|
19939
20205
|
}
|
|
19940
20206
|
}
|
|
19941
20207
|
|
|
19942
|
-
const version = "3.2.0-dev-
|
|
20208
|
+
const version = "3.2.0-dev-20230322.0";
|
|
19943
20209
|
|
|
19944
20210
|
const createVuetify = function () {
|
|
19945
20211
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|