vuetify 3.2.4 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_component-variables-labs.sass +1 -0
- package/dist/json/attributes.json +2503 -2151
- package/dist/json/importMap-labs.json +12 -4
- package/dist/json/importMap.json +28 -28
- package/dist/json/tags.json +107 -9
- package/dist/json/web-types.json +10785 -7110
- package/dist/vuetify-labs.css +263 -153
- package/dist/vuetify-labs.d.ts +35870 -16257
- package/dist/vuetify-labs.esm.js +1466 -934
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +1465 -933
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +246 -168
- package/dist/vuetify.d.ts +27883 -14061
- package/dist/vuetify.esm.js +477 -300
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +476 -299
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +811 -806
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/{index.d.ts → index.d.mts} +5 -1
- package/lib/blueprints/{md1.d.ts → md1.d.mts} +5 -1
- package/lib/blueprints/{md2.d.ts → md2.d.mts} +5 -1
- package/lib/blueprints/{md3.d.ts → md3.d.mts} +5 -1
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/{index.d.ts → index.d.mts} +284 -69
- package/lib/components/VApp/{index.d.ts → index.d.mts} +80 -19
- package/lib/components/VAppBar/{index.d.ts → index.d.mts} +391 -119
- package/lib/components/VAutocomplete/VAutocomplete.css +15 -9
- package/lib/components/VAutocomplete/VAutocomplete.mjs +82 -34
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +15 -11
- package/lib/components/VAutocomplete/index.d.mts +2048 -0
- package/lib/components/VAvatar/{index.d.ts → index.d.mts} +85 -30
- package/lib/components/VBadge/_variables.scss +1 -1
- package/lib/components/VBadge/{index.d.ts → index.d.mts} +105 -42
- package/lib/components/VBanner/{index.d.ts → index.d.mts} +282 -63
- package/lib/components/VBottomNavigation/{index.d.ts → index.d.mts} +93 -45
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/{index.d.ts → index.d.mts} +348 -212
- package/lib/components/VBtn/{index.d.ts → index.d.mts} +139 -53
- package/lib/components/VBtnGroup/{index.d.ts → index.d.mts} +84 -27
- package/lib/components/VBtnToggle/{index.d.ts → index.d.mts} +88 -35
- package/lib/components/VCalendar/util/props.mjs.map +1 -1
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/{index.d.ts → index.d.mts} +957 -419
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/{index.d.ts → index.d.mts} +616 -111
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +3 -3
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
- package/lib/components/VCheckbox/{index.d.ts → index.d.mts} +408 -141
- package/lib/components/VChip/VChip.css +4 -2
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/VChip.sass +3 -2
- package/lib/components/VChip/{index.d.ts → index.d.mts} +376 -85
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VChipGroup/index.d.mts +470 -0
- package/lib/components/VCode/{index.d.ts → index.d.mts} +78 -17
- package/lib/components/VColorPicker/VColorPicker.mjs +9 -4
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs +5 -4
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VColorPicker/{index.d.ts → index.d.mts} +241 -109
- package/lib/components/VColorPicker/util/index.mjs +2 -22
- package/lib/components/VColorPicker/util/index.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.css +15 -9
- package/lib/components/VCombobox/VCombobox.mjs +82 -37
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +15 -11
- package/lib/components/VCombobox/index.d.mts +2060 -0
- package/lib/components/VCounter/VCounter.mjs.map +1 -1
- package/lib/components/VCounter/{index.d.ts → index.d.mts} +105 -45
- package/lib/components/VDefaultsProvider/{index.d.ts → index.d.mts} +82 -20
- package/lib/components/VDialog/{index.d.ts → index.d.mts} +571 -305
- package/lib/components/VDivider/{index.d.ts → index.d.mts} +81 -21
- package/lib/components/VExpansionPanel/{index.d.ts → index.d.mts} +374 -110
- package/lib/components/VField/VField.css +49 -16
- package/lib/components/VField/VField.mjs +12 -2
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +40 -11
- package/lib/components/VField/_variables.scss +8 -2
- package/lib/components/VField/index.d.mts +682 -0
- package/lib/components/VFileInput/VFileInput.css +3 -0
- package/lib/components/VFileInput/VFileInput.mjs +7 -1
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.sass +6 -1
- package/lib/components/VFileInput/{index.d.ts → index.d.mts} +1033 -399
- package/lib/components/VFooter/{index.d.ts → index.d.mts} +85 -29
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VForm/index.d.mts +993 -0
- package/lib/components/VGrid/{index.d.ts → index.d.mts} +334 -100
- package/lib/components/VHover/VHover.mjs.map +1 -1
- package/lib/components/VHover/{index.d.ts → index.d.mts} +120 -37
- package/lib/components/VIcon/{index.d.ts → index.d.mts} +322 -81
- package/lib/components/VImg/VImg.css +2 -4
- package/lib/components/VImg/VImg.mjs +25 -24
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/VImg.sass +4 -3
- package/lib/components/VImg/{index.d.ts → index.d.mts} +177 -40
- package/lib/components/VInput/VInput.css +10 -4
- package/lib/components/VInput/VInput.mjs +9 -3
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/VInput.sass +7 -2
- package/lib/components/VInput/_variables.scss +1 -0
- package/lib/components/VInput/{index.d.ts → index.d.mts} +237 -93
- package/lib/components/VItemGroup/VItem.mjs +1 -1
- package/lib/components/VItemGroup/VItem.mjs.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
- package/lib/components/VItemGroup/index.d.mts +781 -0
- package/lib/components/VKbd/{index.d.ts → index.d.mts} +78 -17
- package/lib/components/VLabel/{index.d.ts → index.d.mts} +79 -18
- package/lib/components/VLayout/{index.d.ts → index.d.mts} +161 -42
- package/lib/components/VLazy/{index.d.ts → index.d.mts} +82 -27
- package/lib/components/VList/VList.mjs +6 -1
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListChildren.mjs +4 -8
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +3 -0
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +11 -6
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/{index.d.ts → index.d.mts} +1245 -619
- package/lib/components/VLocaleProvider/{index.d.ts → index.d.mts} +80 -19
- package/lib/components/VMain/{index.d.ts → index.d.mts} +79 -19
- package/lib/components/VMenu/{index.d.ts → index.d.mts} +567 -299
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VMessages/{index.d.ts → index.d.mts} +87 -34
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +2 -0
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +2 -0
- package/lib/components/VNavigationDrawer/{index.d.ts → index.d.mts} +139 -57
- package/lib/components/VOverlay/{index.d.ts → index.d.mts} +159 -75
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/{index.d.ts → index.d.mts} +229 -125
- package/lib/components/VParallax/{index.d.ts → index.d.mts} +118 -18
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressCircular/{index.d.ts → index.d.mts} +148 -45
- package/lib/components/VProgressLinear/{index.d.ts → index.d.mts} +119 -52
- package/lib/components/VRadio/{index.d.ts → index.d.mts} +139 -40
- package/lib/components/VRadioGroup/{index.d.ts → index.d.mts} +265 -93
- package/lib/components/VRangeSlider/VRangeSlider.mjs +4 -4
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/{index.d.ts → index.d.mts} +313 -132
- package/lib/components/VRating/{index.d.ts → index.d.mts} +108 -49
- package/lib/components/VResponsive/VResponsive.css +13 -5
- package/lib/components/VResponsive/VResponsive.mjs +4 -1
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VResponsive/VResponsive.sass +12 -4
- package/lib/components/VResponsive/{index.d.ts → index.d.mts} +99 -16
- package/lib/components/VSelect/VSelect.css +15 -9
- package/lib/components/VSelect/VSelect.mjs +23 -18
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.sass +14 -11
- package/lib/components/VSelect/index.d.mts +1986 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.mts +403 -0
- package/lib/components/VSelectionControlGroup/{index.d.ts → index.d.mts} +90 -38
- package/lib/components/VSheet/{index.d.ts → index.d.mts} +81 -21
- package/lib/components/VSlideGroup/{index.d.ts → index.d.mts} +236 -61
- package/lib/components/VSlider/VSlider.mjs +2 -2
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.mjs +1 -1
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/{index.d.ts → index.d.mts} +308 -126
- package/lib/components/VSlider/slider.mjs +8 -2
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/{index.d.ts → index.d.mts} +566 -297
- package/lib/components/VSwitch/VSwitch.css +3 -3
- package/lib/components/VSwitch/VSwitch.sass +4 -3
- package/lib/components/VSwitch/{index.d.ts → index.d.mts} +284 -101
- package/lib/components/VSystemBar/{index.d.ts → index.d.mts} +84 -27
- package/lib/components/VTable/{index.d.ts → index.d.mts} +122 -26
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/{index.d.ts → index.d.mts} +203 -113
- package/lib/components/VTextField/VTextField.css +9 -1
- package/lib/components/VTextField/VTextField.mjs +4 -2
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +8 -1
- package/lib/components/VTextField/index.d.mts +2735 -0
- package/lib/components/VTextarea/VTextarea.mjs +13 -4
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/{index.d.ts → index.d.mts} +933 -393
- package/lib/components/VThemeProvider/{index.d.ts → index.d.mts} +80 -20
- package/lib/components/VTimeline/{index.d.ts → index.d.mts} +201 -62
- package/lib/components/VToolbar/{index.d.ts → index.d.mts} +325 -73
- package/lib/components/VTooltip/{index.d.ts → index.d.mts} +568 -297
- package/lib/components/VValidation/VValidation.mjs.map +1 -1
- package/lib/components/VValidation/index.d.mts +634 -0
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/components/VVirtualScroll/index.d.mts +229 -0
- package/lib/components/VWindow/{index.d.ts → index.d.mts} +271 -68
- package/lib/components/{index.d.ts → index.d.mts} +27847 -14031
- package/lib/components/index.mjs +2 -3
- package/lib/components/index.mjs.map +1 -1
- package/lib/components/transitions/{index.d.ts → index.d.mts} +1330 -355
- package/lib/composables/display.mjs +6 -6
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/filter.mjs +5 -4
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/composables/form.mjs +2 -3
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/forwardRefs.mjs.map +1 -1
- package/lib/composables/group.mjs +13 -13
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/composables/{items.mjs → list-items.mjs} +9 -6
- package/lib/composables/list-items.mjs.map +1 -0
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/nested/selectStrategies.mjs.map +1 -1
- package/lib/composables/scroll.mjs +2 -2
- package/lib/composables/scroll.mjs.map +1 -1
- package/lib/composables/validation.mjs +44 -16
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/framework.mjs.map +1 -1
- package/lib/{index.d.ts → index.d.mts} +16 -10
- package/lib/labs/VBottomSheet/VBottomSheet.css +33 -0
- package/lib/labs/VBottomSheet/VBottomSheet.mjs +40 -0
- package/lib/labs/VBottomSheet/VBottomSheet.mjs.map +1 -0
- package/lib/labs/VBottomSheet/VBottomSheet.sass +37 -0
- package/lib/labs/VBottomSheet/_variables.scss +5 -0
- package/lib/labs/VBottomSheet/index.d.mts +871 -0
- package/lib/labs/VBottomSheet/index.mjs +2 -0
- package/lib/labs/VBottomSheet/index.mjs.map +1 -0
- package/lib/labs/VDataIterator/VDataIterator.mjs +160 -0
- package/lib/labs/VDataIterator/VDataIterator.mjs.map +1 -0
- package/lib/labs/VDataIterator/composables/items.mjs +37 -0
- package/lib/labs/VDataIterator/composables/items.mjs.map +1 -0
- package/lib/labs/VDataIterator/index.d.mts +704 -0
- package/lib/labs/VDataIterator/index.mjs +2 -0
- package/lib/labs/VDataIterator/index.mjs.map +1 -0
- package/lib/labs/VDataTable/VDataTable.mjs +58 -20
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableHeaders.mjs +17 -10
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +50 -14
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +50 -13
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/expand.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/group.mjs +8 -6
- package/lib/labs/VDataTable/composables/group.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/headers.mjs +2 -3
- package/lib/labs/VDataTable/composables/headers.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/items.mjs +31 -32
- package/lib/labs/VDataTable/composables/items.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/paginate.mjs +14 -2
- package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/select.mjs +3 -3
- package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/sort.mjs +17 -17
- package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/virtual.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.mts +9681 -0
- package/lib/labs/VDataTable/index.mjs +1 -1
- package/lib/labs/VDataTable/index.mjs.map +1 -1
- package/lib/labs/VDataTable/types.mjs.map +1 -1
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
- package/lib/labs/VInfiniteScroll/{index.d.ts → index.d.mts} +161 -54
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
- package/lib/labs/VSkeletonLoader/{index.d.ts → index.d.mts} +92 -31
- package/lib/labs/components.d.mts +11806 -0
- package/lib/labs/components.mjs +2 -0
- package/lib/labs/components.mjs.map +1 -1
- package/lib/labs/date/date.mjs.map +1 -1
- package/lib/labs/date/index.d.mts +70 -0
- package/lib/labs/date/index.mjs +1 -1
- package/lib/labs/date/index.mjs.map +1 -1
- package/lib/styles/settings/_variables.scss +3 -3
- package/lib/util/colorUtils.mjs +68 -3
- package/lib/util/colorUtils.mjs.map +1 -1
- package/lib/util/console.mjs +12 -81
- package/lib/util/console.mjs.map +1 -1
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/helpers.mjs +4 -18
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/propsFactory.mjs +2 -0
- package/lib/util/propsFactory.mjs.map +1 -1
- package/package.json +13 -9
- package/lib/components/VAutocomplete/index.d.ts +0 -2050
- package/lib/components/VBottomSheet/VBottomSheet.mjs +0 -29
- package/lib/components/VBottomSheet/VBottomSheet.mjs.map +0 -1
- package/lib/components/VBottomSheet/VBottomSheet.sass +0 -23
- package/lib/components/VBottomSheet/_variables.scss +0 -3
- package/lib/components/VBottomSheet/index.mjs +0 -4
- package/lib/components/VBottomSheet/index.mjs.map +0 -1
- package/lib/components/VChipGroup/index.d.ts +0 -280
- package/lib/components/VCombobox/index.d.ts +0 -2086
- package/lib/components/VData/VData.mjs +0 -374
- package/lib/components/VData/VData.mjs.map +0 -1
- package/lib/components/VData/index.mjs +0 -4
- package/lib/components/VData/index.mjs.map +0 -1
- package/lib/components/VDataIterator/VDataFooter.mjs +0 -194
- package/lib/components/VDataIterator/VDataFooter.mjs.map +0 -1
- package/lib/components/VDataIterator/VDataFooter.sass +0 -71
- package/lib/components/VDataIterator/VDataIterator.mjs +0 -316
- package/lib/components/VDataIterator/VDataIterator.mjs.map +0 -1
- package/lib/components/VDataIterator/_variables.scss +0 -13
- package/lib/components/VDataIterator/index.mjs +0 -10
- package/lib/components/VDataIterator/index.mjs.map +0 -1
- package/lib/components/VField/index.d.ts +0 -563
- package/lib/components/VForm/index.d.ts +0 -284
- package/lib/components/VItemGroup/index.d.ts +0 -396
- package/lib/components/VSelect/index.d.ts +0 -1981
- package/lib/components/VSelectionControl/index.d.ts +0 -387
- package/lib/components/VTextField/index.d.ts +0 -2061
- package/lib/components/VValidation/index.d.ts +0 -243
- package/lib/components/VVirtualScroll/index.d.ts +0 -197
- package/lib/composables/items.mjs.map +0 -1
- package/lib/labs/VDataTable/index.d.ts +0 -5415
- package/lib/labs/components.d.ts +0 -5945
- package/lib/labs/date/index.d.ts +0 -38
- /package/lib/components/VNoSsr/{index.d.ts → index.d.mts} +0 -0
- /package/lib/directives/{index.d.ts → index.d.mts} +0 -0
- /package/lib/iconsets/{fa-svg.d.ts → fa-svg.d.mts} +0 -0
- /package/lib/iconsets/{fa.d.ts → fa.d.mts} +0 -0
- /package/lib/iconsets/{fa4.d.ts → fa4.d.mts} +0 -0
- /package/lib/iconsets/{md.d.ts → md.d.mts} +0 -0
- /package/lib/iconsets/{mdi-svg.d.ts → mdi-svg.d.mts} +0 -0
- /package/lib/iconsets/{mdi.d.ts → mdi.d.mts} +0 -0
- /package/lib/labs/date/adapters/{vuetify.d.ts → vuetify.d.mts} +0 -0
- /package/lib/locale/adapters/{vue-i18n.d.ts → vue-i18n.d.mts} +0 -0
- /package/lib/locale/adapters/{vuetify.d.ts → vuetify.d.mts} +0 -0
- /package/lib/locale/{index.d.ts → index.d.mts} +0 -0
package/dist/vuetify.esm.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.
|
|
2
|
+
* Vuetify v3.3.0
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { ref, onBeforeUnmount, watch, readonly, reactive, computed, watchEffect, toRefs, capitalize, onScopeDispose, effectScope, unref, provide, shallowRef, inject as inject$1, defineComponent as defineComponent$1, camelize, h, getCurrentInstance as getCurrentInstance$1, onDeactivated, onActivated, onMounted, toRaw, createVNode, TransitionGroup, Transition, mergeProps, onBeforeMount, nextTick, withDirectives, Fragment, resolveDirective, vShow, isRef, toRef, Text, resolveDynamicComponent, cloneVNode,
|
|
7
|
+
import { ref, onBeforeUnmount, watch, readonly, reactive, computed, watchEffect, toRefs, capitalize, warn, onScopeDispose, effectScope, unref, provide, shallowRef, inject as inject$1, defineComponent as defineComponent$1, camelize, h, getCurrentInstance as getCurrentInstance$1, onDeactivated, onActivated, onMounted, toRaw, createVNode, TransitionGroup, Transition, mergeProps, onBeforeMount, nextTick, withDirectives, Fragment, resolveDirective, vShow, isRef, toRef, Text, resolveDynamicComponent, cloneVNode, toHandlers, Teleport, createTextVNode, onBeforeUpdate, vModelText, onUpdated } from 'vue';
|
|
8
8
|
|
|
9
9
|
const IN_BROWSER = typeof window !== 'undefined';
|
|
10
10
|
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
|
@@ -167,6 +167,9 @@ const keyValues = Object.freeze({
|
|
|
167
167
|
function keys(o) {
|
|
168
168
|
return Object.keys(o);
|
|
169
169
|
}
|
|
170
|
+
function has(obj, key) {
|
|
171
|
+
return key.every(k => obj.hasOwnProperty(k));
|
|
172
|
+
}
|
|
170
173
|
function pick(obj, paths, exclude) {
|
|
171
174
|
const found = Object.create(null);
|
|
172
175
|
const rest = Object.create(null);
|
|
@@ -382,6 +385,7 @@ function focusChild(el, location) {
|
|
|
382
385
|
if (_el) _el.focus();else focusChild(el, location === 'next' ? 'first' : 'last');
|
|
383
386
|
}
|
|
384
387
|
}
|
|
388
|
+
function noop() {}
|
|
385
389
|
|
|
386
390
|
const block = ['top', 'bottom'];
|
|
387
391
|
const inline = ['start', 'end', 'left', 'right'];
|
|
@@ -534,79 +538,16 @@ function animate(el, keyframes, options) {
|
|
|
534
538
|
}
|
|
535
539
|
|
|
536
540
|
/* eslint-disable no-console */
|
|
537
|
-
// import Vuetify from '../framework'
|
|
538
|
-
|
|
539
|
-
function createMessage(message, vm, parent) {
|
|
540
|
-
// if (Vuetify.config.silent) return
|
|
541
541
|
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
__isVue: true,
|
|
545
|
-
$parent: parent,
|
|
546
|
-
$options: vm
|
|
547
|
-
};
|
|
548
|
-
}
|
|
549
|
-
if (vm) {
|
|
550
|
-
// Only show each message once per instance
|
|
551
|
-
vm.$_alreadyWarned = vm.$_alreadyWarned || [];
|
|
552
|
-
if (vm.$_alreadyWarned.includes(message)) return;
|
|
553
|
-
vm.$_alreadyWarned.push(message);
|
|
554
|
-
}
|
|
555
|
-
return `[Vuetify] ${message}` + (vm ? generateComponentTrace(vm) : '');
|
|
542
|
+
function consoleWarn(message) {
|
|
543
|
+
warn(`Vuetify: ${message}`);
|
|
556
544
|
}
|
|
557
|
-
function
|
|
558
|
-
|
|
559
|
-
newMessage != null && console.warn(newMessage);
|
|
545
|
+
function consoleError(message) {
|
|
546
|
+
warn(`Vuetify error: ${message}`);
|
|
560
547
|
}
|
|
561
|
-
function
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
/**
|
|
567
|
-
* Shamelessly stolen from vuejs/vue/blob/dev/src/core/util/debug.js
|
|
568
|
-
*/
|
|
569
|
-
|
|
570
|
-
const classifyRE = /(?:^|[-_])(\w)/g;
|
|
571
|
-
const classify = str => str.replace(classifyRE, c => c.toUpperCase()).replace(/[-_]/g, '');
|
|
572
|
-
function formatComponentName(vm, includeFile) {
|
|
573
|
-
if (vm.$root === vm) {
|
|
574
|
-
return '<Root>';
|
|
575
|
-
}
|
|
576
|
-
const options = typeof vm === 'function' && vm.cid != null ? vm.options : vm.__isVue ? vm.$options || vm.constructor.options : vm || {};
|
|
577
|
-
let name = options.name || options._componentTag;
|
|
578
|
-
const file = options.__file;
|
|
579
|
-
if (!name && file) {
|
|
580
|
-
const match = file.match(/([^/\\]+)\.vue$/);
|
|
581
|
-
name = match?.[1];
|
|
582
|
-
}
|
|
583
|
-
return (name ? `<${classify(name)}>` : `<Anonymous>`) + (file && includeFile !== false ? ` at ${file}` : '');
|
|
584
|
-
}
|
|
585
|
-
function generateComponentTrace(vm) {
|
|
586
|
-
if (vm.__isVue && vm.$parent) {
|
|
587
|
-
const tree = [];
|
|
588
|
-
let currentRecursiveSequence = 0;
|
|
589
|
-
while (vm) {
|
|
590
|
-
if (tree.length > 0) {
|
|
591
|
-
const last = tree[tree.length - 1];
|
|
592
|
-
if (last.constructor === vm.constructor) {
|
|
593
|
-
currentRecursiveSequence++;
|
|
594
|
-
vm = vm.$parent;
|
|
595
|
-
continue;
|
|
596
|
-
} else if (currentRecursiveSequence > 0) {
|
|
597
|
-
tree[tree.length - 1] = [last, currentRecursiveSequence];
|
|
598
|
-
currentRecursiveSequence = 0;
|
|
599
|
-
}
|
|
600
|
-
}
|
|
601
|
-
tree.push(vm);
|
|
602
|
-
vm = vm.$parent;
|
|
603
|
-
}
|
|
604
|
-
return '\n\nfound in\n\n' + tree.map((vm, i) => `${i === 0 ? '---> ' : ' '.repeat(5 + i * 2)}${Array.isArray(vm)
|
|
605
|
-
// eslint-disable-next-line sonarjs/no-nested-template-literals
|
|
606
|
-
? `${formatComponentName(vm[0])}... (${vm[1]} recursive calls)` : formatComponentName(vm)}`).join('\n');
|
|
607
|
-
} else {
|
|
608
|
-
return `\n\n(found in ${formatComponentName(vm)})`;
|
|
609
|
-
}
|
|
548
|
+
function deprecate(original, replacement) {
|
|
549
|
+
replacement = Array.isArray(replacement) ? replacement.slice(0, -1).map(s => `'${s}'`).join(', ') + ` or '${replacement.at(-1)}'` : `'${replacement}'`;
|
|
550
|
+
warn(`[Vuetify UPGRADE] '${original}' is deprecated, use ${replacement} instead.`);
|
|
610
551
|
}
|
|
611
552
|
|
|
612
553
|
// For converting XYZ to sRGB
|
|
@@ -680,7 +621,46 @@ function toXYZ(lab) {
|
|
|
680
621
|
function isCssColor(color) {
|
|
681
622
|
return !!color && /^(#|var\(--|(rgb|hsl)a?\()/.test(color);
|
|
682
623
|
}
|
|
683
|
-
|
|
624
|
+
const cssColorRe = /^(?<fn>(?:rgb|hsl)a?)\((?<values>.+)\)/;
|
|
625
|
+
const mappers = {
|
|
626
|
+
rgb: (r, g, b, a) => ({
|
|
627
|
+
r,
|
|
628
|
+
g,
|
|
629
|
+
b,
|
|
630
|
+
a
|
|
631
|
+
}),
|
|
632
|
+
rgba: (r, g, b, a) => ({
|
|
633
|
+
r,
|
|
634
|
+
g,
|
|
635
|
+
b,
|
|
636
|
+
a
|
|
637
|
+
}),
|
|
638
|
+
hsl: (h, s, l, a) => HSLtoRGB({
|
|
639
|
+
h,
|
|
640
|
+
s,
|
|
641
|
+
l,
|
|
642
|
+
a
|
|
643
|
+
}),
|
|
644
|
+
hsla: (h, s, l, a) => HSLtoRGB({
|
|
645
|
+
h,
|
|
646
|
+
s,
|
|
647
|
+
l,
|
|
648
|
+
a
|
|
649
|
+
}),
|
|
650
|
+
hsv: (h, s, v, a) => HSVtoRGB({
|
|
651
|
+
h,
|
|
652
|
+
s,
|
|
653
|
+
v,
|
|
654
|
+
a
|
|
655
|
+
}),
|
|
656
|
+
hsva: (h, s, v, a) => HSVtoRGB({
|
|
657
|
+
h,
|
|
658
|
+
s,
|
|
659
|
+
v,
|
|
660
|
+
a
|
|
661
|
+
})
|
|
662
|
+
};
|
|
663
|
+
function parseColor(color) {
|
|
684
664
|
if (typeof color === 'number') {
|
|
685
665
|
if (isNaN(color) || color < 0 || color > 0xFFFFFF) {
|
|
686
666
|
// int can't have opacity
|
|
@@ -691,6 +671,22 @@ function parseColor$1(color) {
|
|
|
691
671
|
g: (color & 0xFF00) >> 8,
|
|
692
672
|
b: color & 0xFF
|
|
693
673
|
};
|
|
674
|
+
} else if (typeof color === 'string' && cssColorRe.test(color)) {
|
|
675
|
+
const {
|
|
676
|
+
groups
|
|
677
|
+
} = color.match(cssColorRe);
|
|
678
|
+
const {
|
|
679
|
+
fn,
|
|
680
|
+
values
|
|
681
|
+
} = groups;
|
|
682
|
+
const realValues = values.split(/,\s*/).map(v => {
|
|
683
|
+
if (v.endsWith('%') && ['hsl', 'hsla', 'hsv', 'hsva'].includes(fn)) {
|
|
684
|
+
return parseFloat(v) / 100;
|
|
685
|
+
} else {
|
|
686
|
+
return parseFloat(v);
|
|
687
|
+
}
|
|
688
|
+
});
|
|
689
|
+
return mappers[fn](...realValues);
|
|
694
690
|
} else if (typeof color === 'string') {
|
|
695
691
|
let hex = color.startsWith('#') ? color.slice(1) : color;
|
|
696
692
|
if ([3, 4].includes(hex.length)) {
|
|
@@ -703,9 +699,16 @@ function parseColor$1(color) {
|
|
|
703
699
|
consoleWarn(`'${color}' is not a valid hex(a) color`);
|
|
704
700
|
}
|
|
705
701
|
return HexToRGB(hex);
|
|
706
|
-
} else {
|
|
707
|
-
|
|
702
|
+
} else if (typeof color === 'object') {
|
|
703
|
+
if (has(color, ['r', 'g', 'b'])) {
|
|
704
|
+
return color;
|
|
705
|
+
} else if (has(color, ['h', 's', 'l'])) {
|
|
706
|
+
return HSVtoRGB(HSLtoHSV(color));
|
|
707
|
+
} else if (has(color, ['h', 's', 'v'])) {
|
|
708
|
+
return HSVtoRGB(color);
|
|
709
|
+
}
|
|
708
710
|
}
|
|
711
|
+
throw new TypeError(`Invalid color: ${color == null ? color : String(color) || color.constructor.name}\nExpected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`);
|
|
709
712
|
}
|
|
710
713
|
|
|
711
714
|
/** Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */
|
|
@@ -728,6 +731,9 @@ function HSVtoRGB(hsva) {
|
|
|
728
731
|
a
|
|
729
732
|
};
|
|
730
733
|
}
|
|
734
|
+
function HSLtoRGB(hsla) {
|
|
735
|
+
return HSVtoRGB(HSLtoHSV(hsla));
|
|
736
|
+
}
|
|
731
737
|
|
|
732
738
|
/** Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */
|
|
733
739
|
function RGBtoHSV(rgba) {
|
|
@@ -866,7 +872,7 @@ function darken(value, amount) {
|
|
|
866
872
|
* @see https://www.w3.org/TR/WCAG20/#relativeluminancedef
|
|
867
873
|
*/
|
|
868
874
|
function getLuma(color) {
|
|
869
|
-
const rgb = parseColor
|
|
875
|
+
const rgb = parseColor(color);
|
|
870
876
|
return toXYZ$1(rgb)[1];
|
|
871
877
|
}
|
|
872
878
|
|
|
@@ -882,6 +888,8 @@ function getContrast(first, second) {
|
|
|
882
888
|
return (light + 0.05) / (dark + 0.05);
|
|
883
889
|
}
|
|
884
890
|
|
|
891
|
+
// eslint-disable-line vue/prefer-import-from-vue
|
|
892
|
+
|
|
885
893
|
/**
|
|
886
894
|
* Creates a factory function for props definitions.
|
|
887
895
|
* This is used to define props in a composable then override
|
|
@@ -1162,6 +1170,7 @@ const deceleratedEasing = 'cubic-bezier(0.0, 0, 0.2, 1)'; // Entering
|
|
|
1162
1170
|
const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)'; // Leaving
|
|
1163
1171
|
|
|
1164
1172
|
// Utilities
|
|
1173
|
+
|
|
1165
1174
|
function getCurrentInstance(name, message) {
|
|
1166
1175
|
const vm = getCurrentInstance$1();
|
|
1167
1176
|
if (!vm) {
|
|
@@ -1726,7 +1735,7 @@ function createTheme(options) {
|
|
|
1726
1735
|
for (const variation of ['lighten', 'darken']) {
|
|
1727
1736
|
const fn = variation === 'lighten' ? lighten : darken;
|
|
1728
1737
|
for (const amount of createRange(parsedOptions.variations[variation], 1)) {
|
|
1729
|
-
theme.colors[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor
|
|
1738
|
+
theme.colors[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor(color), amount));
|
|
1730
1739
|
}
|
|
1731
1740
|
}
|
|
1732
1741
|
}
|
|
@@ -1734,9 +1743,9 @@ function createTheme(options) {
|
|
|
1734
1743
|
for (const color of Object.keys(theme.colors)) {
|
|
1735
1744
|
if (/^on-[a-z]/.test(color) || theme.colors[`on-${color}`]) continue;
|
|
1736
1745
|
const onColor = `on-${color}`;
|
|
1737
|
-
const colorVal = parseColor
|
|
1738
|
-
const blackContrast = Math.abs(APCAcontrast(parseColor
|
|
1739
|
-
const whiteContrast = Math.abs(APCAcontrast(parseColor
|
|
1746
|
+
const colorVal = parseColor(theme.colors[color]);
|
|
1747
|
+
const blackContrast = Math.abs(APCAcontrast(parseColor(0), colorVal));
|
|
1748
|
+
const whiteContrast = Math.abs(APCAcontrast(parseColor(0xffffff), colorVal));
|
|
1740
1749
|
|
|
1741
1750
|
// TODO: warn about poor color selections
|
|
1742
1751
|
// const contrastAsText = Math.abs(APCAcontrast(colorVal, colorToInt(theme.colors.background)))
|
|
@@ -1868,14 +1877,14 @@ function genCssVariables(theme) {
|
|
|
1868
1877
|
const darkOverlay = theme.dark ? 1 : 2;
|
|
1869
1878
|
const variables = [];
|
|
1870
1879
|
for (const [key, value] of Object.entries(theme.colors)) {
|
|
1871
|
-
const rgb = parseColor
|
|
1880
|
+
const rgb = parseColor(value);
|
|
1872
1881
|
variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
|
|
1873
1882
|
if (!key.startsWith('on-')) {
|
|
1874
1883
|
variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
|
|
1875
1884
|
}
|
|
1876
1885
|
}
|
|
1877
1886
|
for (const [key, value] of Object.entries(theme.variables)) {
|
|
1878
|
-
const color = typeof value === 'string' && value.startsWith('#') ? parseColor
|
|
1887
|
+
const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
|
|
1879
1888
|
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
|
1880
1889
|
variables.push(`--v-${key}: ${rgb ?? value}`);
|
|
1881
1890
|
}
|
|
@@ -2656,6 +2665,7 @@ function useAspectStyles(props) {
|
|
|
2656
2665
|
const makeVResponsiveProps = propsFactory({
|
|
2657
2666
|
aspectRatio: [String, Number],
|
|
2658
2667
|
contentClass: String,
|
|
2668
|
+
inline: Boolean,
|
|
2659
2669
|
...makeComponentProps(),
|
|
2660
2670
|
...makeDimensionProps()
|
|
2661
2671
|
}, 'v-responsive');
|
|
@@ -2673,7 +2683,9 @@ const VResponsive = genericComponent()({
|
|
|
2673
2683
|
dimensionStyles
|
|
2674
2684
|
} = useDimension(props);
|
|
2675
2685
|
useRender(() => createVNode("div", {
|
|
2676
|
-
"class": ['v-responsive',
|
|
2686
|
+
"class": ['v-responsive', {
|
|
2687
|
+
'v-responsive--inline': props.inline
|
|
2688
|
+
}, props.class],
|
|
2677
2689
|
"style": [dimensionStyles.value, props.style]
|
|
2678
2690
|
}, [createVNode("div", {
|
|
2679
2691
|
"class": "v-responsive__sizer",
|
|
@@ -2767,7 +2779,6 @@ const MaybeTransition = (props, _ref) => {
|
|
|
2767
2779
|
// Types
|
|
2768
2780
|
|
|
2769
2781
|
const makeVImgProps = propsFactory({
|
|
2770
|
-
aspectRatio: [String, Number],
|
|
2771
2782
|
alt: String,
|
|
2772
2783
|
cover: Boolean,
|
|
2773
2784
|
eager: Boolean,
|
|
@@ -2789,7 +2800,7 @@ const makeVImgProps = propsFactory({
|
|
|
2789
2800
|
default: ''
|
|
2790
2801
|
},
|
|
2791
2802
|
srcset: String,
|
|
2792
|
-
|
|
2803
|
+
...makeVResponsiveProps(),
|
|
2793
2804
|
...makeComponentProps(),
|
|
2794
2805
|
...makeTransitionProps()
|
|
2795
2806
|
}, 'v-img');
|
|
@@ -2981,25 +2992,27 @@ const VImg = genericComponent()({
|
|
|
2981
2992
|
}
|
|
2982
2993
|
});
|
|
2983
2994
|
}
|
|
2984
|
-
useRender(() =>
|
|
2985
|
-
|
|
2986
|
-
|
|
2987
|
-
|
|
2988
|
-
|
|
2989
|
-
|
|
2990
|
-
|
|
2991
|
-
|
|
2992
|
-
|
|
2993
|
-
|
|
2994
|
-
|
|
2995
|
-
|
|
2996
|
-
|
|
2997
|
-
|
|
2998
|
-
|
|
2999
|
-
|
|
3000
|
-
|
|
3001
|
-
|
|
3002
|
-
|
|
2995
|
+
useRender(() => {
|
|
2996
|
+
const [responsiveProps] = VResponsive.filterProps(props);
|
|
2997
|
+
return withDirectives(createVNode(VResponsive, mergeProps({
|
|
2998
|
+
"class": ['v-img', {
|
|
2999
|
+
'v-img--booting': !isBooted.value
|
|
3000
|
+
}, props.class],
|
|
3001
|
+
"style": props.style
|
|
3002
|
+
}, responsiveProps, {
|
|
3003
|
+
"aspectRatio": aspectRatio.value,
|
|
3004
|
+
"aria-label": props.alt,
|
|
3005
|
+
"role": props.alt ? 'img' : undefined
|
|
3006
|
+
}), {
|
|
3007
|
+
additional: () => createVNode(Fragment, null, [createVNode(__image, null, null), createVNode(__preloadImage, null, null), createVNode(__gradient, null, null), createVNode(__placeholder, null, null), createVNode(__error, null, null)]),
|
|
3008
|
+
default: slots.default
|
|
3009
|
+
}), [[resolveDirective("intersect"), {
|
|
3010
|
+
handler: init,
|
|
3011
|
+
options: props.options
|
|
3012
|
+
}, null, {
|
|
3013
|
+
once: true
|
|
3014
|
+
}]]);
|
|
3015
|
+
});
|
|
3003
3016
|
return {
|
|
3004
3017
|
currentSrc,
|
|
3005
3018
|
image,
|
|
@@ -3394,7 +3407,7 @@ function useScroll(props) {
|
|
|
3394
3407
|
watch(() => props.scrollTarget, scrollTarget => {
|
|
3395
3408
|
const newTarget = scrollTarget ? document.querySelector(scrollTarget) : window;
|
|
3396
3409
|
if (!newTarget) {
|
|
3397
|
-
consoleWarn(`Unable to locate element with identifier ${scrollTarget}
|
|
3410
|
+
consoleWarn(`Unable to locate element with identifier ${scrollTarget}`);
|
|
3398
3411
|
return;
|
|
3399
3412
|
}
|
|
3400
3413
|
if (newTarget === target.value) return;
|
|
@@ -3876,26 +3889,26 @@ function getItemIndex(items, value) {
|
|
|
3876
3889
|
}
|
|
3877
3890
|
function getIds(items, modelValue) {
|
|
3878
3891
|
const ids = [];
|
|
3879
|
-
|
|
3880
|
-
const item = items
|
|
3881
|
-
|
|
3882
|
-
|
|
3883
|
-
ids.push(item.id);
|
|
3884
|
-
}
|
|
3885
|
-
} else if (modelValue.includes(i)) {
|
|
3892
|
+
modelValue.forEach(value => {
|
|
3893
|
+
const item = items.find(item => deepEqual(value, item.value));
|
|
3894
|
+
const itemByIndex = items[value];
|
|
3895
|
+
if (item?.value != null) {
|
|
3886
3896
|
ids.push(item.id);
|
|
3897
|
+
} else if (itemByIndex != null) {
|
|
3898
|
+
ids.push(itemByIndex.id);
|
|
3887
3899
|
}
|
|
3888
|
-
}
|
|
3900
|
+
});
|
|
3889
3901
|
return ids;
|
|
3890
3902
|
}
|
|
3891
3903
|
function getValues(items, ids) {
|
|
3892
3904
|
const values = [];
|
|
3893
|
-
|
|
3894
|
-
const
|
|
3895
|
-
if (
|
|
3896
|
-
|
|
3905
|
+
ids.forEach(id => {
|
|
3906
|
+
const itemIndex = items.findIndex(item => item.id === id);
|
|
3907
|
+
if (~itemIndex) {
|
|
3908
|
+
const item = items[itemIndex];
|
|
3909
|
+
values.push(item.value != null ? item.value : itemIndex);
|
|
3897
3910
|
}
|
|
3898
|
-
}
|
|
3911
|
+
});
|
|
3899
3912
|
return values;
|
|
3900
3913
|
}
|
|
3901
3914
|
|
|
@@ -5565,10 +5578,17 @@ const makeVFieldProps = propsFactory({
|
|
|
5565
5578
|
default: '$clear'
|
|
5566
5579
|
},
|
|
5567
5580
|
active: Boolean,
|
|
5581
|
+
centerAffix: {
|
|
5582
|
+
type: Boolean,
|
|
5583
|
+
default: undefined
|
|
5584
|
+
},
|
|
5568
5585
|
color: String,
|
|
5569
5586
|
baseColor: String,
|
|
5570
5587
|
dirty: Boolean,
|
|
5571
|
-
disabled:
|
|
5588
|
+
disabled: {
|
|
5589
|
+
type: Boolean,
|
|
5590
|
+
default: null
|
|
5591
|
+
},
|
|
5572
5592
|
error: Boolean,
|
|
5573
5593
|
flat: Boolean,
|
|
5574
5594
|
label: String,
|
|
@@ -5636,6 +5656,7 @@ const VField = genericComponent()({
|
|
|
5636
5656
|
const labelRef = ref();
|
|
5637
5657
|
const floatingLabelRef = ref();
|
|
5638
5658
|
const controlRef = ref();
|
|
5659
|
+
const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));
|
|
5639
5660
|
const {
|
|
5640
5661
|
backgroundColorClasses,
|
|
5641
5662
|
backgroundColorStyles
|
|
@@ -5701,6 +5722,7 @@ const VField = genericComponent()({
|
|
|
5701
5722
|
const hasClear = !!(props.clearable || slots.clear);
|
|
5702
5723
|
const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear);
|
|
5703
5724
|
const label = slots.label ? slots.label({
|
|
5725
|
+
...slotProps.value,
|
|
5704
5726
|
label: props.label,
|
|
5705
5727
|
props: {
|
|
5706
5728
|
for: id.value
|
|
@@ -5710,6 +5732,7 @@ const VField = genericComponent()({
|
|
|
5710
5732
|
"class": ['v-field', {
|
|
5711
5733
|
'v-field--active': isActive.value,
|
|
5712
5734
|
'v-field--appended': hasAppend,
|
|
5735
|
+
'v-field--center-affix': props.centerAffix ?? !isPlainOrUnderlined.value,
|
|
5713
5736
|
'v-field--disabled': props.disabled,
|
|
5714
5737
|
'v-field--dirty': props.dirty,
|
|
5715
5738
|
'v-field--error': props.error,
|
|
@@ -5795,7 +5818,7 @@ const VField = genericComponent()({
|
|
|
5795
5818
|
default: () => [label]
|
|
5796
5819
|
})]), createVNode("div", {
|
|
5797
5820
|
"class": "v-field__outline__end"
|
|
5798
|
-
}, null)]),
|
|
5821
|
+
}, null)]), isPlainOrUnderlined.value && hasLabel.value && createVNode(VFieldLabel, {
|
|
5799
5822
|
"ref": floatingLabelRef,
|
|
5800
5823
|
"floating": true,
|
|
5801
5824
|
"for": id.value
|
|
@@ -5913,12 +5936,9 @@ function createForm(props) {
|
|
|
5913
5936
|
}
|
|
5914
5937
|
function reset() {
|
|
5915
5938
|
items.value.forEach(item => item.reset());
|
|
5916
|
-
model.value = null;
|
|
5917
5939
|
}
|
|
5918
5940
|
function resetValidation() {
|
|
5919
5941
|
items.value.forEach(item => item.resetValidation());
|
|
5920
|
-
errors.value = [];
|
|
5921
|
-
model.value = null;
|
|
5922
5942
|
}
|
|
5923
5943
|
watch(items, () => {
|
|
5924
5944
|
let valid = 0;
|
|
@@ -5972,6 +5992,7 @@ function createForm(props) {
|
|
|
5972
5992
|
isDisabled,
|
|
5973
5993
|
isReadonly,
|
|
5974
5994
|
isValidating,
|
|
5995
|
+
isValid: model,
|
|
5975
5996
|
items,
|
|
5976
5997
|
validateOn: toRef(props, 'validateOn')
|
|
5977
5998
|
});
|
|
@@ -5980,6 +6001,7 @@ function createForm(props) {
|
|
|
5980
6001
|
isDisabled,
|
|
5981
6002
|
isReadonly,
|
|
5982
6003
|
isValidating,
|
|
6004
|
+
isValid: model,
|
|
5983
6005
|
items,
|
|
5984
6006
|
validate,
|
|
5985
6007
|
reset,
|
|
@@ -5995,7 +6017,10 @@ function useForm() {
|
|
|
5995
6017
|
// Types
|
|
5996
6018
|
|
|
5997
6019
|
const makeValidationProps = propsFactory({
|
|
5998
|
-
disabled:
|
|
6020
|
+
disabled: {
|
|
6021
|
+
type: Boolean,
|
|
6022
|
+
default: null
|
|
6023
|
+
},
|
|
5999
6024
|
error: Boolean,
|
|
6000
6025
|
errorMessages: {
|
|
6001
6026
|
type: [Array, String],
|
|
@@ -6007,7 +6032,10 @@ const makeValidationProps = propsFactory({
|
|
|
6007
6032
|
},
|
|
6008
6033
|
name: String,
|
|
6009
6034
|
label: String,
|
|
6010
|
-
readonly:
|
|
6035
|
+
readonly: {
|
|
6036
|
+
type: Boolean,
|
|
6037
|
+
default: null
|
|
6038
|
+
},
|
|
6011
6039
|
rules: {
|
|
6012
6040
|
type: Array,
|
|
6013
6041
|
default: () => []
|
|
@@ -6026,15 +6054,30 @@ function useValidation(props) {
|
|
|
6026
6054
|
const internalErrorMessages = ref([]);
|
|
6027
6055
|
const isPristine = shallowRef(true);
|
|
6028
6056
|
const isDirty = computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));
|
|
6029
|
-
const isDisabled = computed(() => !!(props.disabled
|
|
6030
|
-
const isReadonly = computed(() => !!(props.readonly
|
|
6057
|
+
const isDisabled = computed(() => !!(props.disabled ?? form?.isDisabled.value));
|
|
6058
|
+
const isReadonly = computed(() => !!(props.readonly ?? form?.isReadonly.value));
|
|
6031
6059
|
const errorMessages = computed(() => {
|
|
6032
6060
|
return props.errorMessages.length ? wrapInArray(props.errorMessages).slice(0, Math.max(0, +props.maxErrors)) : internalErrorMessages.value;
|
|
6033
6061
|
});
|
|
6062
|
+
const validateOn = computed(() => {
|
|
6063
|
+
let value = (props.validateOn ?? form?.validateOn.value) || 'input';
|
|
6064
|
+
if (value === 'lazy') value = 'input lazy';
|
|
6065
|
+
const set = new Set(value?.split(' ') ?? []);
|
|
6066
|
+
return {
|
|
6067
|
+
blur: set.has('blur') || set.has('input'),
|
|
6068
|
+
input: set.has('input'),
|
|
6069
|
+
submit: set.has('submit'),
|
|
6070
|
+
lazy: set.has('lazy')
|
|
6071
|
+
};
|
|
6072
|
+
});
|
|
6034
6073
|
const isValid = computed(() => {
|
|
6035
|
-
if (props.error || errorMessages.
|
|
6074
|
+
if (props.error || props.errorMessages.length) return false;
|
|
6036
6075
|
if (!props.rules.length) return true;
|
|
6037
|
-
|
|
6076
|
+
if (isPristine.value) {
|
|
6077
|
+
return internalErrorMessages.value.length || validateOn.value.lazy ? null : true;
|
|
6078
|
+
} else {
|
|
6079
|
+
return !internalErrorMessages.value.length;
|
|
6080
|
+
}
|
|
6038
6081
|
});
|
|
6039
6082
|
const isValidating = shallowRef(false);
|
|
6040
6083
|
const validationClasses = computed(() => {
|
|
@@ -6057,11 +6100,13 @@ function useValidation(props) {
|
|
|
6057
6100
|
onBeforeUnmount(() => {
|
|
6058
6101
|
form?.unregister(uid.value);
|
|
6059
6102
|
});
|
|
6060
|
-
|
|
6061
|
-
|
|
6062
|
-
|
|
6063
|
-
|
|
6064
|
-
|
|
6103
|
+
onMounted(async () => {
|
|
6104
|
+
if (!validateOn.value.lazy) {
|
|
6105
|
+
await validate(true);
|
|
6106
|
+
}
|
|
6107
|
+
form?.update(uid.value, isValid.value, errorMessages.value);
|
|
6108
|
+
});
|
|
6109
|
+
useToggleScope(() => validateOn.value.input, () => {
|
|
6065
6110
|
watch(validationModel, () => {
|
|
6066
6111
|
if (validationModel.value != null) {
|
|
6067
6112
|
validate();
|
|
@@ -6073,7 +6118,7 @@ function useValidation(props) {
|
|
|
6073
6118
|
}
|
|
6074
6119
|
});
|
|
6075
6120
|
});
|
|
6076
|
-
useToggleScope(() => validateOn.value
|
|
6121
|
+
useToggleScope(() => validateOn.value.blur, () => {
|
|
6077
6122
|
watch(() => props.focused, val => {
|
|
6078
6123
|
if (!val) validate();
|
|
6079
6124
|
});
|
|
@@ -6082,14 +6127,19 @@ function useValidation(props) {
|
|
|
6082
6127
|
form?.update(uid.value, isValid.value, errorMessages.value);
|
|
6083
6128
|
});
|
|
6084
6129
|
function reset() {
|
|
6085
|
-
resetValidation();
|
|
6086
6130
|
model.value = null;
|
|
6131
|
+
nextTick(resetValidation);
|
|
6087
6132
|
}
|
|
6088
6133
|
function resetValidation() {
|
|
6089
6134
|
isPristine.value = true;
|
|
6090
|
-
|
|
6135
|
+
if (!validateOn.value.lazy) {
|
|
6136
|
+
validate(true);
|
|
6137
|
+
} else {
|
|
6138
|
+
internalErrorMessages.value = [];
|
|
6139
|
+
}
|
|
6091
6140
|
}
|
|
6092
6141
|
async function validate() {
|
|
6142
|
+
let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
6093
6143
|
const results = [];
|
|
6094
6144
|
isValidating.value = true;
|
|
6095
6145
|
for (const rule of props.rules) {
|
|
@@ -6108,7 +6158,7 @@ function useValidation(props) {
|
|
|
6108
6158
|
}
|
|
6109
6159
|
internalErrorMessages.value = results;
|
|
6110
6160
|
isValidating.value = false;
|
|
6111
|
-
isPristine.value =
|
|
6161
|
+
isPristine.value = silent;
|
|
6112
6162
|
return internalErrorMessages.value;
|
|
6113
6163
|
}
|
|
6114
6164
|
return {
|
|
@@ -6129,6 +6179,10 @@ function useValidation(props) {
|
|
|
6129
6179
|
const makeVInputProps = propsFactory({
|
|
6130
6180
|
id: String,
|
|
6131
6181
|
appendIcon: IconValue,
|
|
6182
|
+
centerAffix: {
|
|
6183
|
+
type: Boolean,
|
|
6184
|
+
default: true
|
|
6185
|
+
},
|
|
6132
6186
|
prependIcon: IconValue,
|
|
6133
6187
|
hideDetails: [Boolean, String],
|
|
6134
6188
|
hint: String,
|
|
@@ -6198,7 +6252,7 @@ const VInput = genericComponent()({
|
|
|
6198
6252
|
validate
|
|
6199
6253
|
}));
|
|
6200
6254
|
const messages = computed(() => {
|
|
6201
|
-
if (errorMessages.value.length > 0) {
|
|
6255
|
+
if (!isPristine.value && errorMessages.value.length > 0) {
|
|
6202
6256
|
return errorMessages.value;
|
|
6203
6257
|
} else if (props.hint && (props.persistentHint || props.focused)) {
|
|
6204
6258
|
return props.hint;
|
|
@@ -6212,7 +6266,9 @@ const VInput = genericComponent()({
|
|
|
6212
6266
|
const hasMessages = messages.value.length > 0;
|
|
6213
6267
|
const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);
|
|
6214
6268
|
return createVNode("div", {
|
|
6215
|
-
"class": ['v-input', `v-input--${props.direction}`,
|
|
6269
|
+
"class": ['v-input', `v-input--${props.direction}`, {
|
|
6270
|
+
'v-input--center-affix': props.centerAffix
|
|
6271
|
+
}, densityClasses.value, validationClasses.value, props.class],
|
|
6216
6272
|
"style": props.style
|
|
6217
6273
|
}, [hasPrepend && createVNode("div", {
|
|
6218
6274
|
"key": "prepend",
|
|
@@ -6419,6 +6475,7 @@ const VTextField = genericComponent()({
|
|
|
6419
6475
|
if (!props.counter || typeof props.counter !== 'number' && typeof props.counter !== 'string') return undefined;
|
|
6420
6476
|
return props.counter;
|
|
6421
6477
|
});
|
|
6478
|
+
const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));
|
|
6422
6479
|
function onIntersect(isIntersecting, entries) {
|
|
6423
6480
|
if (!props.autofocus || !isIntersecting) return;
|
|
6424
6481
|
entries[0].target?.focus?.();
|
|
@@ -6478,10 +6535,11 @@ const VTextField = genericComponent()({
|
|
|
6478
6535
|
"class": ['v-text-field', {
|
|
6479
6536
|
'v-text-field--prefixed': props.prefix,
|
|
6480
6537
|
'v-text-field--suffixed': props.suffix,
|
|
6481
|
-
'v-text-field--
|
|
6538
|
+
'v-text-field--plain-underlined': ['plain', 'underlined'].includes(props.variant)
|
|
6482
6539
|
}, props.class],
|
|
6483
6540
|
"style": props.style
|
|
6484
6541
|
}, rootAttrs, inputProps, {
|
|
6542
|
+
"centerAffix": !isPlainOrUnderlined.value,
|
|
6485
6543
|
"focused": isFocused.value
|
|
6486
6544
|
}), {
|
|
6487
6545
|
...slots,
|
|
@@ -6851,10 +6909,10 @@ const VCheckboxBtn = genericComponent()({
|
|
|
6851
6909
|
}
|
|
6852
6910
|
}
|
|
6853
6911
|
const falseIcon = computed(() => {
|
|
6854
|
-
return
|
|
6912
|
+
return indeterminate.value ? props.indeterminateIcon : props.falseIcon;
|
|
6855
6913
|
});
|
|
6856
6914
|
const trueIcon = computed(() => {
|
|
6857
|
-
return
|
|
6915
|
+
return indeterminate.value ? props.indeterminateIcon : props.trueIcon;
|
|
6858
6916
|
});
|
|
6859
6917
|
useRender(() => createVNode(VSelectionControl, mergeProps(props, {
|
|
6860
6918
|
"modelValue": model.value,
|
|
@@ -6864,7 +6922,7 @@ const VCheckboxBtn = genericComponent()({
|
|
|
6864
6922
|
"type": "checkbox",
|
|
6865
6923
|
"falseIcon": falseIcon.value,
|
|
6866
6924
|
"trueIcon": trueIcon.value,
|
|
6867
|
-
"aria-checked":
|
|
6925
|
+
"aria-checked": indeterminate.value ? 'mixed' : undefined
|
|
6868
6926
|
}), slots));
|
|
6869
6927
|
return {};
|
|
6870
6928
|
}
|
|
@@ -7824,7 +7882,9 @@ const VListGroupActivator = defineComponent({
|
|
|
7824
7882
|
}
|
|
7825
7883
|
});
|
|
7826
7884
|
const makeVListGroupProps = propsFactory({
|
|
7885
|
+
/* @deprecated */
|
|
7827
7886
|
activeColor: String,
|
|
7887
|
+
baseColor: String,
|
|
7828
7888
|
color: String,
|
|
7829
7889
|
collapseIcon: {
|
|
7830
7890
|
type: IconValue,
|
|
@@ -7873,6 +7933,7 @@ const VListGroup = genericComponent()({
|
|
|
7873
7933
|
VListItem: {
|
|
7874
7934
|
active: isOpen.value,
|
|
7875
7935
|
activeColor: props.activeColor,
|
|
7936
|
+
baseColor: props.baseColor,
|
|
7876
7937
|
color: props.color,
|
|
7877
7938
|
prependIcon: props.prependIcon || props.subgroup && toggleIcon.value,
|
|
7878
7939
|
appendIcon: props.appendIcon || !props.subgroup && toggleIcon.value,
|
|
@@ -7927,9 +7988,11 @@ const makeVListItemProps = propsFactory({
|
|
|
7927
7988
|
default: undefined
|
|
7928
7989
|
},
|
|
7929
7990
|
activeClass: String,
|
|
7991
|
+
/* @deprecated */
|
|
7930
7992
|
activeColor: String,
|
|
7931
7993
|
appendAvatar: String,
|
|
7932
7994
|
appendIcon: IconValue,
|
|
7995
|
+
baseColor: String,
|
|
7933
7996
|
disabled: Boolean,
|
|
7934
7997
|
lines: String,
|
|
7935
7998
|
link: {
|
|
@@ -7992,8 +8055,9 @@ const VListItem = genericComponent()({
|
|
|
7992
8055
|
const isLink = computed(() => props.link !== false && link.isLink.value);
|
|
7993
8056
|
const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null && !!list));
|
|
7994
8057
|
const roundedProps = computed(() => props.rounded || props.nav);
|
|
8058
|
+
const color = computed(() => props.color ?? props.activeColor);
|
|
7995
8059
|
const variantProps = computed(() => ({
|
|
7996
|
-
color: isActive.value ?
|
|
8060
|
+
color: isActive.value ? color.value ?? props.baseColor : props.baseColor,
|
|
7997
8061
|
variant: props.variant
|
|
7998
8062
|
}));
|
|
7999
8063
|
watch(() => link.isActive?.value, val => {
|
|
@@ -8050,7 +8114,6 @@ const VListItem = genericComponent()({
|
|
|
8050
8114
|
}
|
|
8051
8115
|
useRender(() => {
|
|
8052
8116
|
const Tag = isLink.value ? 'a' : props.tag;
|
|
8053
|
-
const hasColor = !list || isSelected.value || isActive.value;
|
|
8054
8117
|
const hasTitle = slots.title || props.title;
|
|
8055
8118
|
const hasSubtitle = slots.subtitle || props.subtitle;
|
|
8056
8119
|
const hasAppendMedia = !!(props.appendAvatar || props.appendIcon);
|
|
@@ -8058,6 +8121,9 @@ const VListItem = genericComponent()({
|
|
|
8058
8121
|
const hasPrependMedia = !!(props.prependAvatar || props.prependIcon);
|
|
8059
8122
|
const hasPrepend = !!(hasPrependMedia || slots.prepend);
|
|
8060
8123
|
list?.updateHasPrepend(hasPrepend);
|
|
8124
|
+
if (props.activeColor) {
|
|
8125
|
+
deprecate('active-color', ['color', 'base-color']);
|
|
8126
|
+
}
|
|
8061
8127
|
return withDirectives(createVNode(Tag, {
|
|
8062
8128
|
"class": ['v-list-item', {
|
|
8063
8129
|
'v-list-item--active': isActive.value,
|
|
@@ -8066,10 +8132,10 @@ const VListItem = genericComponent()({
|
|
|
8066
8132
|
'v-list-item--nav': props.nav,
|
|
8067
8133
|
'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,
|
|
8068
8134
|
[`${props.activeClass}`]: props.activeClass && isActive.value
|
|
8069
|
-
}, themeClasses.value, borderClasses.value,
|
|
8070
|
-
"style": [
|
|
8135
|
+
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
|
8136
|
+
"style": [colorStyles.value, dimensionStyles.value, props.style],
|
|
8071
8137
|
"href": link.href.value,
|
|
8072
|
-
"tabindex": isClickable.value ? 0 : undefined,
|
|
8138
|
+
"tabindex": isClickable.value ? list ? -2 : 0 : undefined,
|
|
8073
8139
|
"onClick": onClick,
|
|
8074
8140
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
|
8075
8141
|
}, {
|
|
@@ -8220,9 +8286,7 @@ const VListChildren = genericComponent()({
|
|
|
8220
8286
|
if (type === 'subheader') {
|
|
8221
8287
|
return slots.subheader?.({
|
|
8222
8288
|
props: itemProps
|
|
8223
|
-
}) ?? createVNode(VListSubheader, itemProps,
|
|
8224
|
-
default: slots.subheader
|
|
8225
|
-
});
|
|
8289
|
+
}) ?? createVNode(VListSubheader, itemProps, null);
|
|
8226
8290
|
}
|
|
8227
8291
|
const slotsWithItem = {
|
|
8228
8292
|
subtitle: slots.subtitle ? slotProps => slots.subtitle?.({
|
|
@@ -8237,10 +8301,6 @@ const VListChildren = genericComponent()({
|
|
|
8237
8301
|
...slotProps,
|
|
8238
8302
|
item
|
|
8239
8303
|
}) : undefined,
|
|
8240
|
-
default: slots.default ? slotProps => slots.default?.({
|
|
8241
|
-
...slotProps,
|
|
8242
|
-
item
|
|
8243
|
-
}) : undefined,
|
|
8244
8304
|
title: slots.title ? slotProps => slots.title?.({
|
|
8245
8305
|
...slotProps,
|
|
8246
8306
|
item
|
|
@@ -8264,7 +8324,9 @@ const VListChildren = genericComponent()({
|
|
|
8264
8324
|
default: () => createVNode(VListChildren, {
|
|
8265
8325
|
"items": children
|
|
8266
8326
|
}, slots)
|
|
8267
|
-
}) : slots.item ? slots.item(
|
|
8327
|
+
}) : slots.item ? slots.item({
|
|
8328
|
+
props: itemProps
|
|
8329
|
+
}) : createVNode(VListItem, itemProps, slotsWithItem);
|
|
8268
8330
|
});
|
|
8269
8331
|
}
|
|
8270
8332
|
});
|
|
@@ -8296,7 +8358,7 @@ const makeItemsProps = propsFactory({
|
|
|
8296
8358
|
default: 'props'
|
|
8297
8359
|
},
|
|
8298
8360
|
returnObject: Boolean
|
|
8299
|
-
}, '
|
|
8361
|
+
}, 'list-items');
|
|
8300
8362
|
function transformItem$1(props, item) {
|
|
8301
8363
|
const title = getPropertyFromItem(item, props.itemTitle, item);
|
|
8302
8364
|
const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue, title);
|
|
@@ -8324,20 +8386,23 @@ function transformItems$1(props, items) {
|
|
|
8324
8386
|
}
|
|
8325
8387
|
function useItems(props) {
|
|
8326
8388
|
const items = computed(() => transformItems$1(props, props.items));
|
|
8389
|
+
return useTransformItems(items, value => transformItem$1(props, value));
|
|
8390
|
+
}
|
|
8391
|
+
function useTransformItems(items, transform) {
|
|
8327
8392
|
function transformIn(value) {
|
|
8328
8393
|
return value.map(v => {
|
|
8329
8394
|
const existingItem = items.value.find(item => deepEqual(v, item.value));
|
|
8330
8395
|
// Nullish existingItem means value is a custom input value from combobox
|
|
8331
|
-
// In this case, use transformItem to create an
|
|
8332
|
-
return existingItem ??
|
|
8396
|
+
// In this case, use transformItem to create an { value: unknown } based on value
|
|
8397
|
+
return existingItem ?? transform(v);
|
|
8333
8398
|
});
|
|
8334
8399
|
}
|
|
8335
8400
|
function transformOut(value) {
|
|
8336
8401
|
return value.map(_ref => {
|
|
8337
8402
|
let {
|
|
8338
|
-
|
|
8403
|
+
value
|
|
8339
8404
|
} = _ref;
|
|
8340
|
-
return
|
|
8405
|
+
return value;
|
|
8341
8406
|
});
|
|
8342
8407
|
}
|
|
8343
8408
|
return {
|
|
@@ -8386,6 +8451,8 @@ function useListItems(props) {
|
|
|
8386
8451
|
};
|
|
8387
8452
|
}
|
|
8388
8453
|
const makeVListProps = propsFactory({
|
|
8454
|
+
baseColor: String,
|
|
8455
|
+
/* @deprecated */
|
|
8389
8456
|
activeColor: String,
|
|
8390
8457
|
activeClass: String,
|
|
8391
8458
|
bgColor: String,
|
|
@@ -8460,16 +8527,19 @@ const VList = genericComponent()({
|
|
|
8460
8527
|
} = useNested(props);
|
|
8461
8528
|
const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined);
|
|
8462
8529
|
const activeColor = toRef(props, 'activeColor');
|
|
8530
|
+
const baseColor = toRef(props, 'baseColor');
|
|
8463
8531
|
const color = toRef(props, 'color');
|
|
8464
8532
|
createList();
|
|
8465
8533
|
provideDefaults({
|
|
8466
8534
|
VListGroup: {
|
|
8467
8535
|
activeColor,
|
|
8536
|
+
baseColor,
|
|
8468
8537
|
color
|
|
8469
8538
|
},
|
|
8470
8539
|
VListItem: {
|
|
8471
8540
|
activeClass: toRef(props, 'activeClass'),
|
|
8472
8541
|
activeColor,
|
|
8542
|
+
baseColor,
|
|
8473
8543
|
color,
|
|
8474
8544
|
density: toRef(props, 'density'),
|
|
8475
8545
|
disabled: toRef(props, 'disabled'),
|
|
@@ -9494,14 +9564,14 @@ const parseDisplayOptions = function () {
|
|
|
9494
9564
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultDisplayOptions;
|
|
9495
9565
|
return mergeDeep(defaultDisplayOptions, options);
|
|
9496
9566
|
};
|
|
9497
|
-
function getClientWidth(
|
|
9498
|
-
return IN_BROWSER && !
|
|
9567
|
+
function getClientWidth(ssr) {
|
|
9568
|
+
return IN_BROWSER && !ssr ? window.innerWidth : typeof ssr === 'object' && ssr.clientWidth || 0;
|
|
9499
9569
|
}
|
|
9500
|
-
function getClientHeight(
|
|
9501
|
-
return IN_BROWSER && !
|
|
9570
|
+
function getClientHeight(ssr) {
|
|
9571
|
+
return IN_BROWSER && !ssr ? window.innerHeight : typeof ssr === 'object' && ssr.clientHeight || 0;
|
|
9502
9572
|
}
|
|
9503
|
-
function getPlatform(
|
|
9504
|
-
const userAgent = IN_BROWSER && !
|
|
9573
|
+
function getPlatform(ssr) {
|
|
9574
|
+
const userAgent = IN_BROWSER && !ssr ? window.navigator.userAgent : 'ssr';
|
|
9505
9575
|
function match(regexp) {
|
|
9506
9576
|
return Boolean(userAgent.match(regexp));
|
|
9507
9577
|
}
|
|
@@ -10325,10 +10395,10 @@ const VSelect = genericComponent()({
|
|
|
10325
10395
|
'v-select--active-menu': menu.value,
|
|
10326
10396
|
'v-select--chips': !!props.chips,
|
|
10327
10397
|
[`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,
|
|
10328
|
-
'v-select--selected': model.value.length
|
|
10398
|
+
'v-select--selected': model.value.length,
|
|
10399
|
+
'v-select--selection-slot': !!slots.selection
|
|
10329
10400
|
}, props.class],
|
|
10330
10401
|
"style": props.style,
|
|
10331
|
-
"appendInnerIcon": props.menuIcon,
|
|
10332
10402
|
"readonly": true,
|
|
10333
10403
|
"placeholder": placeholder,
|
|
10334
10404
|
"onClick:clear": onClear,
|
|
@@ -10360,25 +10430,21 @@ const VSelect = genericComponent()({
|
|
|
10360
10430
|
default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
10361
10431
|
"title": t(props.noDataText)
|
|
10362
10432
|
}, null)), slots['prepend-item']?.(), displayItems.value.map((item, index) => {
|
|
10363
|
-
|
|
10364
|
-
|
|
10365
|
-
|
|
10366
|
-
|
|
10367
|
-
|
|
10368
|
-
|
|
10369
|
-
|
|
10370
|
-
|
|
10371
|
-
}
|
|
10372
|
-
return createVNode(VListItem, mergeProps({
|
|
10373
|
-
"key": index
|
|
10374
|
-
}, item.props, {
|
|
10375
|
-
"onClick": () => select(item)
|
|
10376
|
-
}), {
|
|
10433
|
+
const itemProps = mergeProps(item.props, {
|
|
10434
|
+
key: index,
|
|
10435
|
+
onClick: () => select(item)
|
|
10436
|
+
});
|
|
10437
|
+
return slots.item?.({
|
|
10438
|
+
item,
|
|
10439
|
+
index,
|
|
10440
|
+
props: itemProps
|
|
10441
|
+
}) ?? createVNode(VListItem, itemProps, {
|
|
10377
10442
|
prepend: _ref2 => {
|
|
10378
10443
|
let {
|
|
10379
10444
|
isSelected
|
|
10380
10445
|
} = _ref2;
|
|
10381
10446
|
return createVNode(Fragment, null, [props.multiple && !props.hideSelected ? createVNode(VCheckboxBtn, {
|
|
10447
|
+
"key": item.value,
|
|
10382
10448
|
"modelValue": isSelected,
|
|
10383
10449
|
"ripple": false,
|
|
10384
10450
|
"tabindex": "-1"
|
|
@@ -10435,7 +10501,16 @@ const VSelect = genericComponent()({
|
|
|
10435
10501
|
}, [item.title, props.multiple && index < selections.value.length - 1 && createVNode("span", {
|
|
10436
10502
|
"class": "v-select__selection-comma"
|
|
10437
10503
|
}, [createTextVNode(",")])])]);
|
|
10438
|
-
})])
|
|
10504
|
+
})]),
|
|
10505
|
+
'append-inner': function () {
|
|
10506
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
10507
|
+
args[_key] = arguments[_key];
|
|
10508
|
+
}
|
|
10509
|
+
return createVNode(Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? createVNode(VIcon, {
|
|
10510
|
+
"class": "v-select__menu-icon",
|
|
10511
|
+
"icon": props.menuIcon
|
|
10512
|
+
}, null) : undefined]);
|
|
10513
|
+
}
|
|
10439
10514
|
});
|
|
10440
10515
|
});
|
|
10441
10516
|
return forwardRefs({
|
|
@@ -10447,6 +10522,8 @@ const VSelect = genericComponent()({
|
|
|
10447
10522
|
});
|
|
10448
10523
|
|
|
10449
10524
|
/* eslint-disable max-statements */
|
|
10525
|
+
/* eslint-disable no-labels */
|
|
10526
|
+
|
|
10450
10527
|
|
|
10451
10528
|
// Types
|
|
10452
10529
|
|
|
@@ -10516,23 +10593,24 @@ function useFilter(props, items, query, options) {
|
|
|
10516
10593
|
const strQuery = computed(() => typeof query?.value !== 'string' && typeof query?.value !== 'number' ? '' : String(query.value));
|
|
10517
10594
|
const filteredItems = ref([]);
|
|
10518
10595
|
const filteredMatches = ref(new Map());
|
|
10596
|
+
const transformedItems = computed(() => options?.transform ? unref(items).map(options?.transform) : unref(items));
|
|
10519
10597
|
watchEffect(() => {
|
|
10520
10598
|
filteredItems.value = [];
|
|
10521
10599
|
filteredMatches.value = new Map();
|
|
10522
|
-
const
|
|
10523
|
-
const results = filterItems(transformedItems, strQuery.value, {
|
|
10600
|
+
const results = filterItems(transformedItems.value, strQuery.value, {
|
|
10524
10601
|
customKeyFilter: props.customKeyFilter,
|
|
10525
10602
|
default: props.customFilter,
|
|
10526
|
-
filterKeys:
|
|
10603
|
+
filterKeys: props.filterKeys,
|
|
10527
10604
|
filterMode: props.filterMode,
|
|
10528
10605
|
noFilter: props.noFilter
|
|
10529
10606
|
});
|
|
10607
|
+
const originalItems = unref(items);
|
|
10530
10608
|
results.forEach(_ref => {
|
|
10531
10609
|
let {
|
|
10532
10610
|
index,
|
|
10533
10611
|
matches
|
|
10534
10612
|
} = _ref;
|
|
10535
|
-
const item =
|
|
10613
|
+
const item = originalItems[index];
|
|
10536
10614
|
filteredItems.value.push(item);
|
|
10537
10615
|
filteredMatches.value.set(item.value, matches);
|
|
10538
10616
|
});
|
|
@@ -10561,8 +10639,9 @@ function highlightResult$1(text, matches, length) {
|
|
|
10561
10639
|
}, [text.substr(matches + length)])]) : text;
|
|
10562
10640
|
}
|
|
10563
10641
|
const makeVAutocompleteProps = propsFactory({
|
|
10564
|
-
|
|
10565
|
-
|
|
10642
|
+
autoSelectFirst: {
|
|
10643
|
+
type: [Boolean, String]
|
|
10644
|
+
},
|
|
10566
10645
|
search: String,
|
|
10567
10646
|
...makeFilterProps({
|
|
10568
10647
|
filterKeys: ['title']
|
|
@@ -10594,6 +10673,7 @@ const VAutocomplete = genericComponent()({
|
|
|
10594
10673
|
const vTextFieldRef = ref();
|
|
10595
10674
|
const isFocused = shallowRef(false);
|
|
10596
10675
|
const isPristine = shallowRef(true);
|
|
10676
|
+
const listHasFocus = ref(false);
|
|
10597
10677
|
const vMenuRef = ref();
|
|
10598
10678
|
const _menu = useProxiedModel(props, 'menu');
|
|
10599
10679
|
const menu = computed({
|
|
@@ -10637,6 +10717,10 @@ const VAutocomplete = genericComponent()({
|
|
|
10637
10717
|
});
|
|
10638
10718
|
const selected = computed(() => selections.value.map(selection => selection.props.value));
|
|
10639
10719
|
const selection = computed(() => selections.value[selectionIndex.value]);
|
|
10720
|
+
const highlightFirst = computed(() => {
|
|
10721
|
+
const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
|
|
10722
|
+
return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
|
|
10723
|
+
});
|
|
10640
10724
|
const listRef = ref();
|
|
10641
10725
|
function onClear(e) {
|
|
10642
10726
|
if (props.openOnClear) {
|
|
@@ -10648,6 +10732,13 @@ const VAutocomplete = genericComponent()({
|
|
|
10648
10732
|
if (props.hideNoData && !items.value.length || props.readonly || form?.isReadonly.value) return;
|
|
10649
10733
|
menu.value = true;
|
|
10650
10734
|
}
|
|
10735
|
+
function onMousedownMenuIcon(e) {
|
|
10736
|
+
if (isFocused.value) {
|
|
10737
|
+
e.preventDefault();
|
|
10738
|
+
e.stopPropagation();
|
|
10739
|
+
}
|
|
10740
|
+
menu.value = !menu.value;
|
|
10741
|
+
}
|
|
10651
10742
|
function onKeydown(e) {
|
|
10652
10743
|
if (props.readonly || form?.isReadonly.value) return;
|
|
10653
10744
|
const selectionStart = vTextFieldRef.value.selectionStart;
|
|
@@ -10662,10 +10753,16 @@ const VAutocomplete = genericComponent()({
|
|
|
10662
10753
|
menu.value = false;
|
|
10663
10754
|
}
|
|
10664
10755
|
if (['Enter', 'Escape', 'Tab'].includes(e.key)) {
|
|
10756
|
+
if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key)) {
|
|
10757
|
+
select(filteredItems.value[0]);
|
|
10758
|
+
}
|
|
10665
10759
|
isPristine.value = true;
|
|
10666
10760
|
}
|
|
10667
10761
|
if (e.key === 'ArrowDown') {
|
|
10668
10762
|
listRef.value?.focus('next');
|
|
10763
|
+
if (highlightFirst.value) {
|
|
10764
|
+
listRef.value?.focus('next');
|
|
10765
|
+
}
|
|
10669
10766
|
} else if (e.key === 'ArrowUp') {
|
|
10670
10767
|
listRef.value?.focus('prev');
|
|
10671
10768
|
}
|
|
@@ -10713,6 +10810,12 @@ const VAutocomplete = genericComponent()({
|
|
|
10713
10810
|
}
|
|
10714
10811
|
function onFocusin(e) {
|
|
10715
10812
|
isFocused.value = true;
|
|
10813
|
+
setTimeout(() => {
|
|
10814
|
+
listHasFocus.value = true;
|
|
10815
|
+
});
|
|
10816
|
+
}
|
|
10817
|
+
function onFocusout(e) {
|
|
10818
|
+
listHasFocus.value = false;
|
|
10716
10819
|
}
|
|
10717
10820
|
const isSelecting = shallowRef(false);
|
|
10718
10821
|
function select(item) {
|
|
@@ -10734,14 +10837,22 @@ const VAutocomplete = genericComponent()({
|
|
|
10734
10837
|
nextTick(() => isSelecting.value = false);
|
|
10735
10838
|
}
|
|
10736
10839
|
}
|
|
10737
|
-
watch(isFocused, val => {
|
|
10840
|
+
watch(isFocused, (val, oldVal) => {
|
|
10841
|
+
if (val === oldVal) return;
|
|
10738
10842
|
if (val) {
|
|
10739
10843
|
isSelecting.value = true;
|
|
10740
10844
|
search.value = props.multiple ? '' : String(selections.value.at(-1)?.props.title ?? '');
|
|
10741
10845
|
isPristine.value = true;
|
|
10742
10846
|
nextTick(() => isSelecting.value = false);
|
|
10743
10847
|
} else {
|
|
10744
|
-
if (!props.multiple && !search.value) model.value = [];
|
|
10848
|
+
if (!props.multiple && !search.value) model.value = [];else if (highlightFirst.value && !listHasFocus.value && !selections.value.some(_ref2 => {
|
|
10849
|
+
let {
|
|
10850
|
+
value
|
|
10851
|
+
} = _ref2;
|
|
10852
|
+
return value === displayItems.value[0].value;
|
|
10853
|
+
})) {
|
|
10854
|
+
select(displayItems.value[0]);
|
|
10855
|
+
}
|
|
10745
10856
|
menu.value = false;
|
|
10746
10857
|
search.value = '';
|
|
10747
10858
|
selectionIndex.value = -1;
|
|
@@ -10772,10 +10883,10 @@ const VAutocomplete = genericComponent()({
|
|
|
10772
10883
|
"class": ['v-autocomplete', `v-autocomplete--${props.multiple ? 'multiple' : 'single'}`, {
|
|
10773
10884
|
'v-autocomplete--active-menu': menu.value,
|
|
10774
10885
|
'v-autocomplete--chips': !!props.chips,
|
|
10886
|
+
'v-autocomplete--selection-slot': !!slots.selection,
|
|
10775
10887
|
'v-autocomplete--selecting-index': selectionIndex.value > -1
|
|
10776
10888
|
}, props.class],
|
|
10777
10889
|
"style": props.style,
|
|
10778
|
-
"appendInnerIcon": props.menuIcon,
|
|
10779
10890
|
"readonly": props.readonly,
|
|
10780
10891
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
10781
10892
|
"onClick:clear": onClear,
|
|
@@ -10801,36 +10912,40 @@ const VAutocomplete = genericComponent()({
|
|
|
10801
10912
|
"selected": selected.value,
|
|
10802
10913
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
|
10803
10914
|
"onMousedown": e => e.preventDefault(),
|
|
10804
|
-
"onFocusin": onFocusin
|
|
10915
|
+
"onFocusin": onFocusin,
|
|
10916
|
+
"onFocusout": onFocusout
|
|
10805
10917
|
}, {
|
|
10806
10918
|
default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
10807
10919
|
"title": t(props.noDataText)
|
|
10808
|
-
}, null)), slots['prepend-item']?.(), displayItems.value.map(item =>
|
|
10809
|
-
item,
|
|
10810
|
-
|
|
10920
|
+
}, null)), slots['prepend-item']?.(), displayItems.value.map((item, index) => {
|
|
10921
|
+
const itemProps = mergeProps(item.props, {
|
|
10922
|
+
key: index,
|
|
10923
|
+
active: highlightFirst.value && index === 0 ? true : undefined,
|
|
10811
10924
|
onClick: () => select(item)
|
|
10812
|
-
})
|
|
10813
|
-
|
|
10814
|
-
|
|
10815
|
-
|
|
10816
|
-
|
|
10817
|
-
|
|
10818
|
-
|
|
10819
|
-
|
|
10820
|
-
|
|
10821
|
-
|
|
10822
|
-
|
|
10823
|
-
|
|
10824
|
-
|
|
10825
|
-
|
|
10826
|
-
|
|
10827
|
-
|
|
10828
|
-
|
|
10829
|
-
|
|
10830
|
-
|
|
10831
|
-
|
|
10832
|
-
|
|
10833
|
-
|
|
10925
|
+
});
|
|
10926
|
+
return slots.item?.({
|
|
10927
|
+
item,
|
|
10928
|
+
index,
|
|
10929
|
+
props: itemProps
|
|
10930
|
+
}) ?? createVNode(VListItem, itemProps, {
|
|
10931
|
+
prepend: _ref3 => {
|
|
10932
|
+
let {
|
|
10933
|
+
isSelected
|
|
10934
|
+
} = _ref3;
|
|
10935
|
+
return createVNode(Fragment, null, [props.multiple && !props.hideSelected ? createVNode(VCheckboxBtn, {
|
|
10936
|
+
"key": item.value,
|
|
10937
|
+
"modelValue": isSelected,
|
|
10938
|
+
"ripple": false,
|
|
10939
|
+
"tabindex": "-1"
|
|
10940
|
+
}, null) : undefined, item.props.prependIcon && createVNode(VIcon, {
|
|
10941
|
+
"icon": item.props.prependIcon
|
|
10942
|
+
}, null)]);
|
|
10943
|
+
},
|
|
10944
|
+
title: () => {
|
|
10945
|
+
return isPristine.value ? item.title : highlightResult$1(item.title, getMatches(item)?.title, search.value?.length ?? 0);
|
|
10946
|
+
}
|
|
10947
|
+
});
|
|
10948
|
+
}), slots['append-item']?.()]
|
|
10834
10949
|
})]
|
|
10835
10950
|
}), selections.value.map((item, index) => {
|
|
10836
10951
|
function onChipClose(e) {
|
|
@@ -10879,7 +10994,18 @@ const VAutocomplete = genericComponent()({
|
|
|
10879
10994
|
}, [item.title, props.multiple && index < selections.value.length - 1 && createVNode("span", {
|
|
10880
10995
|
"class": "v-autocomplete__selection-comma"
|
|
10881
10996
|
}, [createTextVNode(",")])])]);
|
|
10882
|
-
})])
|
|
10997
|
+
})]),
|
|
10998
|
+
'append-inner': function () {
|
|
10999
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
11000
|
+
args[_key] = arguments[_key];
|
|
11001
|
+
}
|
|
11002
|
+
return createVNode(Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? createVNode(VIcon, {
|
|
11003
|
+
"class": "v-autocomplete__menu-icon",
|
|
11004
|
+
"icon": props.menuIcon,
|
|
11005
|
+
"onMousedown": onMousedownMenuIcon,
|
|
11006
|
+
"onClick": noop
|
|
11007
|
+
}, null) : undefined]);
|
|
11008
|
+
}
|
|
10883
11009
|
});
|
|
10884
11010
|
});
|
|
10885
11011
|
return forwardRefs({
|
|
@@ -11240,7 +11366,7 @@ const VBottomNavigation = genericComponent()({
|
|
|
11240
11366
|
const makeVBreadcrumbsDividerProps = propsFactory({
|
|
11241
11367
|
divider: [Number, String],
|
|
11242
11368
|
...makeComponentProps()
|
|
11243
|
-
}, 'v-
|
|
11369
|
+
}, 'v-breadcrumbs-divider');
|
|
11244
11370
|
const VBreadcrumbsDivider = genericComponent()({
|
|
11245
11371
|
name: 'VBreadcrumbsDivider',
|
|
11246
11372
|
props: makeVBreadcrumbsDividerProps(),
|
|
@@ -11328,7 +11454,7 @@ const makeVBreadcrumbsProps = propsFactory({
|
|
|
11328
11454
|
...makeTagProps({
|
|
11329
11455
|
tag: 'ul'
|
|
11330
11456
|
})
|
|
11331
|
-
}, 'v-
|
|
11457
|
+
}, 'v-breadcrumbs');
|
|
11332
11458
|
const VBreadcrumbs = genericComponent()({
|
|
11333
11459
|
name: 'VBreadcrumbs',
|
|
11334
11460
|
props: makeVBreadcrumbsProps(),
|
|
@@ -11677,6 +11803,7 @@ const VCard = genericComponent()({
|
|
|
11677
11803
|
});
|
|
11678
11804
|
|
|
11679
11805
|
// Types
|
|
11806
|
+
|
|
11680
11807
|
const handleGesture = wrapper => {
|
|
11681
11808
|
const {
|
|
11682
11809
|
touchstartX,
|
|
@@ -12457,27 +12584,6 @@ const VColorPickerCanvas = defineComponent({
|
|
|
12457
12584
|
|
|
12458
12585
|
// Types
|
|
12459
12586
|
|
|
12460
|
-
function has(obj, key) {
|
|
12461
|
-
return key.every(k => obj.hasOwnProperty(k));
|
|
12462
|
-
}
|
|
12463
|
-
function parseColor(color) {
|
|
12464
|
-
if (!color) return null;
|
|
12465
|
-
let hsva = null;
|
|
12466
|
-
if (typeof color === 'string') {
|
|
12467
|
-
const hex = parseHex(color);
|
|
12468
|
-
hsva = HexToHSV(hex);
|
|
12469
|
-
}
|
|
12470
|
-
if (typeof color === 'object') {
|
|
12471
|
-
if (has(color, ['r', 'g', 'b'])) {
|
|
12472
|
-
hsva = RGBtoHSV(color);
|
|
12473
|
-
} else if (has(color, ['h', 's', 'l'])) {
|
|
12474
|
-
hsva = HSLtoHSV(color);
|
|
12475
|
-
} else if (has(color, ['h', 's', 'v'])) {
|
|
12476
|
-
hsva = color;
|
|
12477
|
-
}
|
|
12478
|
-
}
|
|
12479
|
-
return hsva;
|
|
12480
|
-
}
|
|
12481
12587
|
function stripAlpha(color, stripAlpha) {
|
|
12482
12588
|
if (stripAlpha) {
|
|
12483
12589
|
const {
|
|
@@ -12726,6 +12832,7 @@ const VColorPickerEdit = defineComponent({
|
|
|
12726
12832
|
});
|
|
12727
12833
|
|
|
12728
12834
|
/* eslint-disable max-statements */
|
|
12835
|
+
// Composables
|
|
12729
12836
|
|
|
12730
12837
|
// Types
|
|
12731
12838
|
|
|
@@ -12740,9 +12847,15 @@ function getPosition(e, position) {
|
|
|
12740
12847
|
if ('touches' in e && e.touches.length) return e.touches[0][position];else if ('changedTouches' in e && e.changedTouches.length) return e.changedTouches[0][position];else return e[position];
|
|
12741
12848
|
}
|
|
12742
12849
|
const makeSliderProps = propsFactory({
|
|
12743
|
-
disabled:
|
|
12850
|
+
disabled: {
|
|
12851
|
+
type: Boolean,
|
|
12852
|
+
default: null
|
|
12853
|
+
},
|
|
12744
12854
|
error: Boolean,
|
|
12745
|
-
readonly:
|
|
12855
|
+
readonly: {
|
|
12856
|
+
type: Boolean,
|
|
12857
|
+
default: null
|
|
12858
|
+
},
|
|
12746
12859
|
max: {
|
|
12747
12860
|
type: [Number, String],
|
|
12748
12861
|
default: 100
|
|
@@ -13120,7 +13233,7 @@ const VSliderThumb = genericComponent()({
|
|
|
13120
13233
|
"aria-valuemin": props.min,
|
|
13121
13234
|
"aria-valuemax": props.max,
|
|
13122
13235
|
"aria-valuenow": props.modelValue,
|
|
13123
|
-
"aria-readonly": readonly.value,
|
|
13236
|
+
"aria-readonly": !!readonly.value,
|
|
13124
13237
|
"aria-orientation": direction.value,
|
|
13125
13238
|
"onKeydown": !readonly.value ? onKeydown : undefined
|
|
13126
13239
|
}, [createVNode("div", {
|
|
@@ -13372,8 +13485,8 @@ const VSlider = genericComponent()({
|
|
|
13372
13485
|
}, [createVNode("input", {
|
|
13373
13486
|
"id": id.value,
|
|
13374
13487
|
"name": props.name || id.value,
|
|
13375
|
-
"disabled": props.disabled,
|
|
13376
|
-
"readonly": props.readonly,
|
|
13488
|
+
"disabled": !!props.disabled,
|
|
13489
|
+
"readonly": !!props.readonly,
|
|
13377
13490
|
"tabindex": "-1",
|
|
13378
13491
|
"value": model.value
|
|
13379
13492
|
}, null), createVNode(VSliderTrack, {
|
|
@@ -13828,13 +13941,15 @@ const VColorPickerSwatches = defineComponent({
|
|
|
13828
13941
|
}, [createVNode("div", null, [props.swatches.map(swatch => createVNode("div", {
|
|
13829
13942
|
"class": "v-color-picker-swatches__swatch"
|
|
13830
13943
|
}, [swatch.map(color => {
|
|
13831
|
-
const
|
|
13944
|
+
const rgba = parseColor(color);
|
|
13945
|
+
const hsva = RGBtoHSV(rgba);
|
|
13946
|
+
const background = RGBtoCSS(rgba);
|
|
13832
13947
|
return createVNode("div", {
|
|
13833
13948
|
"class": "v-color-picker-swatches__color",
|
|
13834
13949
|
"onClick": () => hsva && emit('update:color', hsva)
|
|
13835
13950
|
}, [createVNode("div", {
|
|
13836
13951
|
"style": {
|
|
13837
|
-
background
|
|
13952
|
+
background
|
|
13838
13953
|
}
|
|
13839
13954
|
}, [props.color && deepEqual(props.color, hsva) ? createVNode(VIcon, {
|
|
13840
13955
|
"size": "x-small",
|
|
@@ -13895,8 +14010,13 @@ const VColorPicker = defineComponent({
|
|
|
13895
14010
|
const mode = useProxiedModel(props, 'mode');
|
|
13896
14011
|
const lastPickedColor = ref(null);
|
|
13897
14012
|
const currentColor = useProxiedModel(props, 'modelValue', undefined, v => {
|
|
13898
|
-
let c
|
|
13899
|
-
|
|
14013
|
+
let c;
|
|
14014
|
+
try {
|
|
14015
|
+
c = RGBtoHSV(parseColor(v));
|
|
14016
|
+
} catch (err) {
|
|
14017
|
+
consoleWarn(err);
|
|
14018
|
+
return null;
|
|
14019
|
+
}
|
|
13900
14020
|
if (lastPickedColor.value) {
|
|
13901
14021
|
c = {
|
|
13902
14022
|
...c,
|
|
@@ -13995,8 +14115,9 @@ function highlightResult(text, matches, length) {
|
|
|
13995
14115
|
}, [text.substr(matches + length)])]) : text;
|
|
13996
14116
|
}
|
|
13997
14117
|
const makeVComboboxProps = propsFactory({
|
|
13998
|
-
|
|
13999
|
-
|
|
14118
|
+
autoSelectFirst: {
|
|
14119
|
+
type: [Boolean, String]
|
|
14120
|
+
},
|
|
14000
14121
|
delimiters: Array,
|
|
14001
14122
|
...makeFilterProps({
|
|
14002
14123
|
filterKeys: ['title']
|
|
@@ -14032,6 +14153,7 @@ const VCombobox = genericComponent()({
|
|
|
14032
14153
|
const vTextFieldRef = ref();
|
|
14033
14154
|
const isFocused = shallowRef(false);
|
|
14034
14155
|
const isPristine = shallowRef(true);
|
|
14156
|
+
const listHasFocus = ref(false);
|
|
14035
14157
|
const vMenuRef = ref();
|
|
14036
14158
|
const _menu = useProxiedModel(props, 'menu');
|
|
14037
14159
|
const menu = computed({
|
|
@@ -14114,6 +14236,10 @@ const VCombobox = genericComponent()({
|
|
|
14114
14236
|
});
|
|
14115
14237
|
const selected = computed(() => selections.value.map(selection => selection.props.value));
|
|
14116
14238
|
const selection = computed(() => selections.value[selectionIndex.value]);
|
|
14239
|
+
const highlightFirst = computed(() => {
|
|
14240
|
+
const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
|
|
14241
|
+
return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
|
|
14242
|
+
});
|
|
14117
14243
|
const listRef = ref();
|
|
14118
14244
|
function onClear(e) {
|
|
14119
14245
|
cleared = true;
|
|
@@ -14125,6 +14251,13 @@ const VCombobox = genericComponent()({
|
|
|
14125
14251
|
if (props.hideNoData && !items.value.length || props.readonly || form?.isReadonly.value) return;
|
|
14126
14252
|
menu.value = true;
|
|
14127
14253
|
}
|
|
14254
|
+
function onMousedownMenuIcon(e) {
|
|
14255
|
+
if (isFocused.value) {
|
|
14256
|
+
e.preventDefault();
|
|
14257
|
+
e.stopPropagation();
|
|
14258
|
+
}
|
|
14259
|
+
menu.value = !menu.value;
|
|
14260
|
+
}
|
|
14128
14261
|
function onKeydown(e) {
|
|
14129
14262
|
if (props.readonly || form?.isReadonly.value) return;
|
|
14130
14263
|
const selectionStart = vTextFieldRef.value.selectionStart;
|
|
@@ -14139,6 +14272,9 @@ const VCombobox = genericComponent()({
|
|
|
14139
14272
|
menu.value = false;
|
|
14140
14273
|
}
|
|
14141
14274
|
if (['Enter', 'Escape', 'Tab'].includes(e.key)) {
|
|
14275
|
+
if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key)) {
|
|
14276
|
+
select(filteredItems.value[0]);
|
|
14277
|
+
}
|
|
14142
14278
|
isPristine.value = true;
|
|
14143
14279
|
}
|
|
14144
14280
|
if (e.key === 'ArrowDown') {
|
|
@@ -14213,17 +14349,31 @@ const VCombobox = genericComponent()({
|
|
|
14213
14349
|
}
|
|
14214
14350
|
function onFocusin(e) {
|
|
14215
14351
|
isFocused.value = true;
|
|
14352
|
+
setTimeout(() => {
|
|
14353
|
+
listHasFocus.value = true;
|
|
14354
|
+
});
|
|
14355
|
+
}
|
|
14356
|
+
function onFocusout(e) {
|
|
14357
|
+
listHasFocus.value = false;
|
|
14216
14358
|
}
|
|
14217
14359
|
watch(filteredItems, val => {
|
|
14218
14360
|
if (!val.length && props.hideNoData) menu.value = false;
|
|
14219
14361
|
});
|
|
14220
|
-
watch(isFocused, val => {
|
|
14221
|
-
if (val) return;
|
|
14362
|
+
watch(isFocused, (val, oldVal) => {
|
|
14363
|
+
if (val || val === oldVal) return;
|
|
14222
14364
|
selectionIndex.value = -1;
|
|
14223
14365
|
menu.value = false;
|
|
14224
|
-
if (!
|
|
14225
|
-
|
|
14226
|
-
|
|
14366
|
+
if (highlightFirst.value && !listHasFocus.value && !selections.value.some(_ref2 => {
|
|
14367
|
+
let {
|
|
14368
|
+
value
|
|
14369
|
+
} = _ref2;
|
|
14370
|
+
return value === displayItems.value[0].value;
|
|
14371
|
+
})) {
|
|
14372
|
+
select(displayItems.value[0]);
|
|
14373
|
+
} else if (props.multiple && search.value) {
|
|
14374
|
+
model.value = [...model.value, transformItem$1(props, search.value)];
|
|
14375
|
+
search.value = '';
|
|
14376
|
+
}
|
|
14227
14377
|
});
|
|
14228
14378
|
useRender(() => {
|
|
14229
14379
|
const hasChips = !!(props.chips || slots.chip);
|
|
@@ -14244,11 +14394,11 @@ const VCombobox = genericComponent()({
|
|
|
14244
14394
|
"class": ['v-combobox', {
|
|
14245
14395
|
'v-combobox--active-menu': menu.value,
|
|
14246
14396
|
'v-combobox--chips': !!props.chips,
|
|
14397
|
+
'v-combobox--selection-slot': !!slots.selection,
|
|
14247
14398
|
'v-combobox--selecting-index': selectionIndex.value > -1,
|
|
14248
14399
|
[`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true
|
|
14249
14400
|
}, props.class],
|
|
14250
14401
|
"style": props.style,
|
|
14251
|
-
"appendInnerIcon": props.items.length ? props.menuIcon : undefined,
|
|
14252
14402
|
"readonly": props.readonly,
|
|
14253
14403
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
14254
14404
|
"onClick:clear": onClear,
|
|
@@ -14274,36 +14424,40 @@ const VCombobox = genericComponent()({
|
|
|
14274
14424
|
"selected": selected.value,
|
|
14275
14425
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
|
14276
14426
|
"onMousedown": e => e.preventDefault(),
|
|
14277
|
-
"onFocusin": onFocusin
|
|
14427
|
+
"onFocusin": onFocusin,
|
|
14428
|
+
"onFocusout": onFocusout
|
|
14278
14429
|
}, {
|
|
14279
14430
|
default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
14280
14431
|
"title": t(props.noDataText)
|
|
14281
|
-
}, null)), slots['prepend-item']?.(), displayItems.value.map(item =>
|
|
14282
|
-
item,
|
|
14283
|
-
|
|
14432
|
+
}, null)), slots['prepend-item']?.(), displayItems.value.map((item, index) => {
|
|
14433
|
+
const itemProps = mergeProps(item.props, {
|
|
14434
|
+
key: index,
|
|
14435
|
+
active: highlightFirst.value && index === 0 ? true : undefined,
|
|
14284
14436
|
onClick: () => select(item)
|
|
14285
|
-
})
|
|
14286
|
-
|
|
14287
|
-
|
|
14288
|
-
|
|
14289
|
-
|
|
14290
|
-
|
|
14291
|
-
|
|
14292
|
-
|
|
14293
|
-
|
|
14294
|
-
|
|
14295
|
-
|
|
14296
|
-
|
|
14297
|
-
|
|
14298
|
-
|
|
14299
|
-
|
|
14300
|
-
|
|
14301
|
-
|
|
14302
|
-
|
|
14303
|
-
|
|
14304
|
-
|
|
14305
|
-
|
|
14306
|
-
|
|
14437
|
+
});
|
|
14438
|
+
return slots.item?.({
|
|
14439
|
+
item,
|
|
14440
|
+
index,
|
|
14441
|
+
props: itemProps
|
|
14442
|
+
}) ?? createVNode(VListItem, itemProps, {
|
|
14443
|
+
prepend: _ref3 => {
|
|
14444
|
+
let {
|
|
14445
|
+
isSelected
|
|
14446
|
+
} = _ref3;
|
|
14447
|
+
return createVNode(Fragment, null, [props.multiple && !props.hideSelected ? createVNode(VCheckboxBtn, {
|
|
14448
|
+
"key": item.value,
|
|
14449
|
+
"modelValue": isSelected,
|
|
14450
|
+
"ripple": false,
|
|
14451
|
+
"tabindex": "-1"
|
|
14452
|
+
}, null) : undefined, item.props.prependIcon && createVNode(VIcon, {
|
|
14453
|
+
"icon": item.props.prependIcon
|
|
14454
|
+
}, null)]);
|
|
14455
|
+
},
|
|
14456
|
+
title: () => {
|
|
14457
|
+
return isPristine.value ? item.title : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0);
|
|
14458
|
+
}
|
|
14459
|
+
});
|
|
14460
|
+
}), slots['append-item']?.()]
|
|
14307
14461
|
})]
|
|
14308
14462
|
}), selections.value.map((item, index) => {
|
|
14309
14463
|
function onChipClose(e) {
|
|
@@ -14352,7 +14506,18 @@ const VCombobox = genericComponent()({
|
|
|
14352
14506
|
}, [item.title, props.multiple && index < selections.value.length - 1 && createVNode("span", {
|
|
14353
14507
|
"class": "v-combobox__selection-comma"
|
|
14354
14508
|
}, [createTextVNode(",")])])]);
|
|
14355
|
-
})])
|
|
14509
|
+
})]),
|
|
14510
|
+
'append-inner': function () {
|
|
14511
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
14512
|
+
args[_key] = arguments[_key];
|
|
14513
|
+
}
|
|
14514
|
+
return createVNode(Fragment, null, [slots['append-inner']?.(...args), (!props.hideNoData || props.items.length) && props.menuIcon ? createVNode(VIcon, {
|
|
14515
|
+
"class": "v-combobox__menu-icon",
|
|
14516
|
+
"icon": props.menuIcon,
|
|
14517
|
+
"onMousedown": onMousedownMenuIcon,
|
|
14518
|
+
"onClick": noop
|
|
14519
|
+
}, null) : undefined]);
|
|
14520
|
+
}
|
|
14356
14521
|
});
|
|
14357
14522
|
});
|
|
14358
14523
|
return forwardRefs({
|
|
@@ -14783,6 +14948,7 @@ const VFileInput = genericComponent()({
|
|
|
14783
14948
|
const vFieldRef = ref();
|
|
14784
14949
|
const inputRef = ref();
|
|
14785
14950
|
const isActive = computed(() => isFocused.value || props.active);
|
|
14951
|
+
const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));
|
|
14786
14952
|
function onFocus() {
|
|
14787
14953
|
if (inputRef.value !== document.activeElement) {
|
|
14788
14954
|
inputRef.value?.focus();
|
|
@@ -14826,10 +14992,15 @@ const VFileInput = genericComponent()({
|
|
|
14826
14992
|
"ref": vInputRef,
|
|
14827
14993
|
"modelValue": model.value,
|
|
14828
14994
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
14829
|
-
"class": ['v-file-input',
|
|
14995
|
+
"class": ['v-file-input', {
|
|
14996
|
+
'v-file-input--chips': !!props.chips,
|
|
14997
|
+
'v-file-input--selection-slot': !!slots.selection,
|
|
14998
|
+
'v-text-field--plain-underlined': isPlainOrUnderlined.value
|
|
14999
|
+
}, props.class],
|
|
14830
15000
|
"style": props.style,
|
|
14831
15001
|
"onClick:prepend": onClickPrepend
|
|
14832
15002
|
}, rootAttrs, inputProps, {
|
|
15003
|
+
"centerAffix": !isPlainOrUnderlined.value,
|
|
14833
15004
|
"focused": isFocused.value
|
|
14834
15005
|
}), {
|
|
14835
15006
|
...slots,
|
|
@@ -15381,9 +15552,6 @@ const VItemGroup = genericComponent()({
|
|
|
15381
15552
|
});
|
|
15382
15553
|
|
|
15383
15554
|
// Composables
|
|
15384
|
-
|
|
15385
|
-
// Types
|
|
15386
|
-
|
|
15387
15555
|
const VItem = genericComponent()({
|
|
15388
15556
|
name: 'VItem',
|
|
15389
15557
|
props: makeGroupItemProps(),
|
|
@@ -16800,15 +16968,15 @@ const VRangeSlider = genericComponent()({
|
|
|
16800
16968
|
}, [createVNode("input", {
|
|
16801
16969
|
"id": `${id.value}_start`,
|
|
16802
16970
|
"name": props.name || id.value,
|
|
16803
|
-
"disabled": props.disabled,
|
|
16804
|
-
"readonly": props.readonly,
|
|
16971
|
+
"disabled": !!props.disabled,
|
|
16972
|
+
"readonly": !!props.readonly,
|
|
16805
16973
|
"tabindex": "-1",
|
|
16806
16974
|
"value": model.value[0]
|
|
16807
16975
|
}, null), createVNode("input", {
|
|
16808
16976
|
"id": `${id.value}_stop`,
|
|
16809
16977
|
"name": props.name || id.value,
|
|
16810
|
-
"disabled": props.disabled,
|
|
16811
|
-
"readonly": props.readonly,
|
|
16978
|
+
"disabled": !!props.disabled,
|
|
16979
|
+
"readonly": !!props.readonly,
|
|
16812
16980
|
"tabindex": "-1",
|
|
16813
16981
|
"value": model.value[1]
|
|
16814
16982
|
}, null), createVNode(VSliderTrack, {
|
|
@@ -18085,6 +18253,11 @@ const VTextarea = genericComponent()({
|
|
|
18085
18253
|
}
|
|
18086
18254
|
}
|
|
18087
18255
|
const sizerRef = ref();
|
|
18256
|
+
const rows = ref(+props.rows);
|
|
18257
|
+
const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));
|
|
18258
|
+
watchEffect(() => {
|
|
18259
|
+
if (!props.autoGrow) rows.value = +props.rows;
|
|
18260
|
+
});
|
|
18088
18261
|
function calculateInputHeight() {
|
|
18089
18262
|
if (!props.autoGrow) return;
|
|
18090
18263
|
nextTick(() => {
|
|
@@ -18096,7 +18269,9 @@ const VTextarea = genericComponent()({
|
|
|
18096
18269
|
const lineHeight = parseFloat(style.lineHeight);
|
|
18097
18270
|
const minHeight = Math.max(parseFloat(props.rows) * lineHeight + padding, parseFloat(fieldStyle.getPropertyValue('--v-input-control-height')));
|
|
18098
18271
|
const maxHeight = parseFloat(props.maxRows) * lineHeight + padding || Infinity;
|
|
18099
|
-
|
|
18272
|
+
const newHeight = clamp(height ?? 0, minHeight, maxHeight);
|
|
18273
|
+
rows.value = Math.floor((newHeight - padding) / lineHeight);
|
|
18274
|
+
controlHeight.value = convertToUnit(newHeight);
|
|
18100
18275
|
});
|
|
18101
18276
|
}
|
|
18102
18277
|
onMounted(calculateInputHeight);
|
|
@@ -18136,10 +18311,11 @@ const VTextarea = genericComponent()({
|
|
|
18136
18311
|
'v-text-field--suffixed': props.suffix,
|
|
18137
18312
|
'v-textarea--auto-grow': props.autoGrow,
|
|
18138
18313
|
'v-textarea--no-resize': props.noResize || props.autoGrow,
|
|
18139
|
-
'v-text-field--
|
|
18314
|
+
'v-text-field--plain-underlined': isPlainOrUnderlined.value
|
|
18140
18315
|
}, props.class],
|
|
18141
18316
|
"style": props.style
|
|
18142
18317
|
}, rootAttrs, inputProps, {
|
|
18318
|
+
"centerAffix": rows.value === 1 && !isPlainOrUnderlined.value,
|
|
18143
18319
|
"focused": isFocused.value
|
|
18144
18320
|
}), {
|
|
18145
18321
|
...slots,
|
|
@@ -18163,6 +18339,7 @@ const VTextarea = genericComponent()({
|
|
|
18163
18339
|
"role": "textbox"
|
|
18164
18340
|
}, fieldProps, {
|
|
18165
18341
|
"active": isActive.value || isDirty.value,
|
|
18342
|
+
"centerAffix": rows.value === 1 && !isPlainOrUnderlined.value,
|
|
18166
18343
|
"dirty": isDirty.value || props.dirty,
|
|
18167
18344
|
"disabled": isDisabled.value,
|
|
18168
18345
|
"focused": isFocused.value,
|
|
@@ -19543,7 +19720,7 @@ function createVuetify$1() {
|
|
|
19543
19720
|
date
|
|
19544
19721
|
};
|
|
19545
19722
|
}
|
|
19546
|
-
const version$1 = "3.
|
|
19723
|
+
const version$1 = "3.3.0";
|
|
19547
19724
|
createVuetify$1.version = version$1;
|
|
19548
19725
|
|
|
19549
19726
|
// Vue's inject() can only be used in setup
|
|
@@ -19563,7 +19740,7 @@ const createVuetify = function () {
|
|
|
19563
19740
|
...options
|
|
19564
19741
|
});
|
|
19565
19742
|
};
|
|
19566
|
-
const version = "3.
|
|
19743
|
+
const version = "3.3.0";
|
|
19567
19744
|
createVuetify.version = version;
|
|
19568
19745
|
|
|
19569
19746
|
export { components, createVuetify, directives, useDefaults, useDisplay, useLayout, useLocale, useRtl, useTheme, version };
|