@vuetify/nightly 3.0.0-beta.0 → 3.0.0-beta.4
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 +32 -2
- package/dist/_component-variables.sass +61 -0
- package/dist/json/attributes.json +662 -430
- package/dist/json/importMap.json +222 -198
- package/dist/json/tags.json +184 -96
- package/dist/json/web-types.json +2021 -1152
- package/dist/vuetify.css +1869 -1468
- package/dist/vuetify.d.ts +12840 -9217
- package/dist/vuetify.esm.js +6121 -5104
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +6120 -5103
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +3 -3
- package/dist/vuetify.min.js +1085 -964
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +34 -13
- package/lib/components/VAlert/VAlert.mjs +43 -24
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/VAlert.sass +26 -8
- package/lib/components/VAlert/VAlertTitle.mjs +1 -0
- package/lib/components/VAlert/VAlertTitle.mjs.map +1 -1
- package/lib/components/VAlert/_variables.scss +14 -7
- package/lib/components/VAlert/index.mjs.map +1 -1
- package/lib/components/VApp/VApp.css +1 -0
- package/lib/components/VApp/VApp.mjs.map +1 -1
- package/lib/components/VApp/VApp.sass +1 -0
- package/lib/components/VApp/index.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBar.mjs +11 -7
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBar.sass +0 -1
- package/lib/components/VAppBar/VAppBarNavIcon.mjs +4 -2
- package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs +3 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
- package/lib/components/VAppBar/index.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +133 -101
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +0 -2
- package/lib/components/VAutocomplete/index.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.css +1 -1
- package/lib/components/VAvatar/VAvatar.mjs +17 -15
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.sass +1 -2
- package/lib/components/VAvatar/_mixins.scss +0 -1
- package/lib/components/VAvatar/index.mjs.map +1 -1
- package/lib/components/VBadge/VBadge.css +3 -6
- package/lib/components/VBadge/VBadge.mjs +16 -44
- package/lib/components/VBadge/VBadge.mjs.map +1 -1
- package/lib/components/VBadge/VBadge.sass +2 -5
- package/lib/components/VBadge/_variables.scss +1 -2
- package/lib/components/VBadge/index.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.css +82 -58
- package/lib/components/VBanner/VBanner.mjs +49 -48
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.sass +61 -55
- package/lib/components/VBanner/VBannerActions.mjs +34 -2
- package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
- package/lib/components/VBanner/VBannerAvatar.mjs +20 -0
- package/lib/components/VBanner/VBannerAvatar.mjs.map +1 -0
- package/lib/components/VBanner/VBannerIcon.mjs +20 -0
- package/lib/components/VBanner/VBannerIcon.mjs.map +1 -0
- package/lib/components/VBanner/VBannerText.mjs.map +1 -1
- package/lib/components/VBanner/_variables.scss +10 -14
- package/lib/components/VBanner/index.mjs +2 -0
- package/lib/components/VBanner/index.mjs.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.css +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.sass +1 -2
- package/lib/components/VBottomNavigation/index.mjs.map +1 -1
- package/lib/components/VBottomSheet/VBottomSheet.mjs.map +1 -1
- package/lib/components/VBottomSheet/index.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +5 -2
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.sass +0 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +10 -9
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/shared.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.css +56 -11
- package/lib/components/VBtn/VBtn.mjs +51 -20
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +35 -4
- package/lib/components/VBtn/_variables.scss +2 -0
- package/lib/components/VBtn/index.mjs.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.css +14 -6
- package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.sass +14 -7
- package/lib/components/VBtnGroup/index.mjs.map +1 -1
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VBtnToggle/VBtnToggle.sass +0 -1
- package/lib/components/VBtnToggle/index.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendar.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarCategory.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarDaily.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarMonthly.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarWeekly.mjs.map +1 -1
- package/lib/components/VCalendar/index.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/calendar-base.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/calendar-with-events.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/mouse.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/times.mjs.map +1 -1
- package/lib/components/VCalendar/modes/column.mjs.map +1 -1
- package/lib/components/VCalendar/modes/common.mjs.map +1 -1
- package/lib/components/VCalendar/modes/index.mjs.map +1 -1
- package/lib/components/VCalendar/modes/stack.mjs.map +1 -1
- package/lib/components/VCalendar/util/events.mjs.map +1 -1
- package/lib/components/VCalendar/util/parser.mjs.map +1 -1
- package/lib/components/VCalendar/util/props.mjs.map +1 -1
- package/lib/components/VCalendar/util/timestamp.mjs.map +1 -1
- package/lib/components/VCard/VCard.css +23 -20
- package/lib/components/VCard/VCard.mjs +17 -9
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCard.sass +12 -10
- package/lib/components/VCard/VCardActions.mjs +1 -2
- package/lib/components/VCard/VCardActions.mjs.map +1 -1
- package/lib/components/VCard/VCardAvatar.mjs.map +1 -1
- package/lib/components/VCard/VCardContent.mjs +3 -0
- package/lib/components/VCard/VCardContent.mjs.map +1 -0
- package/lib/components/VCard/VCardHeader.mjs.map +1 -1
- package/lib/components/VCard/VCardHeaderText.mjs.map +1 -1
- package/lib/components/VCard/VCardImg.mjs.map +1 -1
- package/lib/components/VCard/VCardSubtitle.mjs.map +1 -1
- package/lib/components/VCard/VCardText.mjs.map +1 -1
- package/lib/components/VCard/VCardTitle.mjs.map +1 -1
- package/lib/components/VCard/_variables.scss +11 -5
- package/lib/components/VCard/index.mjs +1 -0
- package/lib/components/VCard/index.mjs.map +1 -1
- package/lib/components/VCarousel/VCarousel.mjs +4 -3
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/VCarousel.sass +0 -1
- package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
- package/lib/components/VCarousel/index.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckbox.mjs +15 -47
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckbox.sass +0 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +67 -0
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -0
- package/lib/components/VCheckbox/index.mjs +1 -0
- package/lib/components/VCheckbox/index.mjs.map +1 -1
- package/lib/components/VChip/VChip.css +8 -5
- package/lib/components/VChip/VChip.mjs +6 -5
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/VChip.sass +3 -1
- package/lib/components/VChip/_variables.scss +3 -0
- package/lib/components/VChip/index.mjs.map +1 -1
- package/lib/components/VChipGroup/VChipGroup.mjs +1 -1
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VChipGroup/index.mjs.map +1 -1
- package/lib/components/VCode/VCode.sass +1 -2
- package/lib/components/VCode/_variables.scss +1 -1
- package/lib/components/VCode/index.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.css +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.sass +0 -1
- package/lib/components/VColorPicker/index.mjs.map +1 -1
- package/lib/components/VColorPicker/util/index.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +140 -110
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +0 -2
- package/lib/components/VCombobox/index.mjs.map +1 -1
- package/lib/components/VCounter/VCounter.mjs.map +1 -1
- package/lib/components/VCounter/VCounter.sass +0 -1
- package/lib/components/VCounter/index.mjs.map +1 -1
- package/lib/components/VData/VData.mjs.map +1 -1
- package/lib/components/VData/index.mjs.map +1 -1
- package/lib/components/VDataIterator/VDataFooter.mjs.map +1 -1
- package/lib/components/VDataIterator/VDataIterator.mjs.map +1 -1
- package/lib/components/VDataIterator/index.mjs.map +1 -1
- package/lib/components/VDataTable/MobileRow.mjs.map +1 -1
- package/lib/components/VDataTable/Row.mjs.map +1 -1
- package/lib/components/VDataTable/RowGroup.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableHeader.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaderMobile.mjs.map +1 -1
- package/lib/components/VDataTable/VEditDialog.mjs.map +1 -1
- package/lib/components/VDataTable/VVirtualTable.mjs.map +1 -1
- package/lib/components/VDataTable/index.mjs.map +1 -1
- package/lib/components/VDataTable/mixins/header.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerDateTable.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonthTable.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerTitle.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
- package/lib/components/VDatePicker/index.mjs.map +1 -1
- package/lib/components/VDatePicker/mixins/date-picker-table.mjs.map +1 -1
- package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +1 -1
- package/lib/components/VDatePicker/util/eventHelpers.mjs.map +1 -1
- package/lib/components/VDatePicker/util/index.mjs.map +1 -1
- package/lib/components/VDatePicker/util/isDateAllowed.mjs.map +1 -1
- package/lib/components/VDatePicker/util/monthChange.mjs.map +1 -1
- package/lib/components/VDatePicker/util/pad.mjs.map +1 -1
- package/lib/components/VDatePicker/util/sanitizeDateString.mjs.map +1 -1
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
- package/lib/components/VDefaultsProvider/index.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.css +31 -12
- package/lib/components/VDialog/VDialog.mjs +14 -12
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +27 -12
- package/lib/components/VDialog/_variables.scss +3 -7
- package/lib/components/VDialog/index.mjs.map +1 -1
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VDivider/VDivider.sass +0 -1
- package/lib/components/VDivider/index.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.css +8 -6
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +6 -2
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.sass +0 -1
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +9 -6
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs +4 -0
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.mjs.map +1 -1
- package/lib/components/VField/VField.css +10 -10
- package/lib/components/VField/VField.mjs +12 -11
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +7 -9
- package/lib/components/VField/VFieldLabel.mjs.map +1 -1
- package/lib/components/VField/_variables.scss +3 -3
- package/lib/components/VField/index.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.mjs +5 -3
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.sass +0 -1
- package/lib/components/VFileInput/index.mjs.map +1 -1
- package/lib/components/VFooter/VFooter.mjs +32 -15
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VFooter/VFooter.sass +0 -1
- package/lib/components/VFooter/index.mjs.map +1 -1
- package/lib/components/VForm/VForm.mjs +25 -11
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VForm/index.mjs.map +1 -1
- package/lib/components/VGrid/VCol.mjs.map +1 -1
- package/lib/components/VGrid/VContainer.mjs.map +1 -1
- package/lib/components/VGrid/VRow.mjs.map +1 -1
- package/lib/components/VGrid/VSpacer.mjs.map +1 -1
- package/lib/components/VGrid/index.mjs.map +1 -1
- package/lib/components/VHover/VHover.mjs.map +1 -1
- package/lib/components/VHover/index.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.css +27 -12
- package/lib/components/VIcon/VIcon.mjs +18 -17
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.sass +27 -17
- package/lib/components/VIcon/_variables.scss +1 -0
- package/lib/components/VIcon/index.mjs.map +1 -1
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/VImg.sass +0 -1
- package/lib/components/VImg/index.mjs.map +1 -1
- package/lib/components/VInput/VInput.css +3 -1
- package/lib/components/VInput/VInput.mjs +10 -10
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/VInput.sass +3 -2
- package/lib/components/VInput/_variables.scss +4 -0
- package/lib/components/VInput/index.mjs.map +1 -1
- package/lib/components/VItemGroup/VItem.mjs.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.sass +0 -1
- package/lib/components/VItemGroup/index.mjs.map +1 -1
- package/lib/components/VKbd/VKbd.sass +0 -1
- package/lib/components/VKbd/_variables.scss +1 -1
- package/lib/components/VKbd/index.mjs.map +1 -1
- package/lib/components/VLabel/VLabel.mjs.map +1 -1
- package/lib/components/VLabel/VLabel.sass +0 -1
- package/lib/components/VLabel/index.mjs.map +1 -1
- package/lib/components/VLayout/VLayout.mjs.map +1 -1
- package/lib/components/VLayout/VLayoutItem.mjs +1 -1
- package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
- package/lib/components/VLayout/index.mjs.map +1 -1
- package/lib/components/VLazy/VLazy.mjs.map +1 -1
- package/lib/components/VLazy/index.mjs.map +1 -1
- package/lib/components/VList/VList.css +7 -12
- package/lib/components/VList/VList.mjs +83 -48
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VList.sass +3 -4
- package/lib/components/VList/VListChildren.mjs +41 -3
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +43 -15
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListImg.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +129 -51
- package/lib/components/VList/VListItem.mjs +49 -44
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +77 -30
- package/lib/components/VList/VListItemAction.mjs +29 -0
- package/lib/components/VList/VListItemAction.mjs.map +1 -0
- package/lib/components/VList/VListItemAvatar.mjs +10 -16
- package/lib/components/VList/VListItemAvatar.mjs.map +1 -1
- package/lib/components/VList/VListItemHeader.mjs.map +1 -1
- package/lib/components/VList/VListItemIcon.mjs +23 -0
- package/lib/components/VList/VListItemIcon.mjs.map +1 -0
- package/lib/components/VList/VListItemMedia.mjs +4 -4
- package/lib/components/VList/VListItemMedia.mjs.map +1 -1
- package/lib/components/VList/VListItemSubtitle.mjs.map +1 -1
- package/lib/components/VList/VListItemTitle.mjs.map +1 -1
- package/lib/components/VList/VListSubheader.mjs +3 -3
- package/lib/components/VList/VListSubheader.mjs.map +1 -1
- package/lib/components/VList/_variables.scss +12 -4
- package/lib/components/VList/index.mjs +2 -0
- package/lib/components/VList/index.mjs.map +1 -1
- package/lib/components/VList/list.mjs.map +1 -1
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
- package/lib/components/VLocaleProvider/index.mjs.map +1 -1
- package/lib/components/VMain/VMain.mjs.map +1 -1
- package/lib/components/VMain/VMain.sass +0 -1
- package/lib/components/VMain/index.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.css +2 -12
- package/lib/components/VMenu/VMenu.mjs +65 -31
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.sass +3 -7
- package/lib/components/VMenu/_variables.scss +0 -1
- package/lib/components/VMenu/index.mjs.map +1 -1
- package/lib/components/VMenu/shared.mjs +2 -0
- package/lib/components/VMenu/shared.mjs.map +1 -0
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VMessages/VMessages.sass +0 -1
- package/lib/components/VMessages/index.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +13 -9
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +0 -1
- package/lib/components/VNavigationDrawer/index.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
- package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
- package/lib/components/VNoSsr/index.mjs.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
- package/lib/components/VOtpInput/index.mjs.map +1 -1
- package/lib/components/VOverflowBtn/VOverflowBtn.mjs.map +1 -1
- package/lib/components/VOverflowBtn/index.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.css +7 -0
- package/lib/components/VOverlay/VOverlay.mjs +57 -32
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.sass +8 -1
- package/lib/components/VOverlay/index.mjs.map +1 -1
- package/lib/components/VOverlay/{positionStrategies.mjs → locationStrategies.mjs} +39 -36
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -0
- package/lib/components/VOverlay/requestNewFrame.mjs.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.mjs +11 -2
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +57 -15
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VOverlay/util/point.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +16 -17
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.sass +0 -1
- package/lib/components/VPagination/index.mjs.map +1 -1
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VParallax/index.mjs.map +1 -1
- package/lib/components/VPicker/VPicker.mjs.map +1 -1
- package/lib/components/VPicker/index.mjs.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.sass +0 -1
- package/lib/components/VProgressCircular/index.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.css +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.sass +0 -1
- package/lib/components/VProgressLinear/index.mjs.map +1 -1
- package/lib/components/VRadio/VRadio.mjs +6 -5
- package/lib/components/VRadio/VRadio.mjs.map +1 -1
- package/lib/components/VRadio/index.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +11 -6
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.mjs.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs +5 -2
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.mjs.map +1 -1
- package/lib/components/VRating/VRating.css +2 -2
- package/lib/components/VRating/VRating.mjs +17 -6
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/VRating.sass +2 -3
- package/lib/components/VRating/index.mjs.map +1 -1
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VResponsive/index.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +134 -107
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.sass +0 -2
- package/lib/components/VSelect/index.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.css +1 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs +15 -12
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.sass +1 -1
- package/lib/components/VSelectionControl/index.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +6 -5
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +0 -1
- package/lib/components/VSelectionControlGroup/index.mjs.map +1 -1
- package/lib/components/VSheet/VSheet.mjs +7 -3
- package/lib/components/VSheet/VSheet.mjs.map +1 -1
- package/lib/components/VSheet/VSheet.sass +0 -1
- package/lib/components/VSheet/index.mjs.map +1 -1
- package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
- package/lib/components/VSkeletonLoader/index.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.css +0 -5
- package/lib/components/VSlideGroup/VSlideGroup.mjs +40 -17
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.sass +0 -5
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs +3 -1
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
- package/lib/components/VSlideGroup/helpers.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.css +7 -2
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.sass +11 -7
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.sass +0 -2
- package/lib/components/VSlider/VSliderTrack.css +6 -6
- package/lib/components/VSlider/VSliderTrack.mjs +3 -2
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.sass +7 -9
- package/lib/components/VSlider/_variables.scss +5 -2
- package/lib/components/VSlider/index.mjs.map +1 -1
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.css +19 -36
- package/lib/components/VSnackbar/VSnackbar.mjs +38 -19
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.sass +15 -35
- package/lib/components/VSnackbar/_variables.scss +0 -4
- package/lib/components/VSnackbar/index.mjs.map +1 -1
- package/lib/components/VSparkline/VSparkline.mjs.map +1 -1
- package/lib/components/VSparkline/helpers/core.mjs.map +1 -1
- package/lib/components/VSparkline/helpers/math.mjs.map +1 -1
- package/lib/components/VSparkline/helpers/path.mjs.map +1 -1
- package/lib/components/VSparkline/index.mjs.map +1 -1
- package/lib/components/VSpeedDial/VSpeedDial.mjs.map +1 -1
- package/lib/components/VSpeedDial/index.mjs.map +1 -1
- package/lib/components/VStepper/VStepper.mjs.map +1 -1
- package/lib/components/VStepper/VStepperContent.mjs.map +1 -1
- package/lib/components/VStepper/VStepperStep.mjs.map +1 -1
- package/lib/components/VStepper/index.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.mjs +15 -6
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.sass +0 -1
- package/lib/components/VSwitch/index.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.css +0 -5
- package/lib/components/VSystemBar/VSystemBar.mjs +31 -14
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.sass +0 -6
- package/lib/components/VSystemBar/_variables.scss +0 -3
- package/lib/components/VSystemBar/index.mjs.map +1 -1
- package/lib/components/VTable/VTable.mjs.map +1 -1
- package/lib/components/VTable/VTable.sass +0 -1
- package/lib/components/VTable/index.mjs.map +1 -1
- package/lib/components/VTabs/VTab.css +1 -1
- package/lib/components/VTabs/VTab.mjs +33 -36
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTab.sass +1 -2
- package/lib/components/VTabs/VTabs.css +14 -11
- package/lib/components/VTabs/VTabs.mjs +7 -8
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.sass +10 -7
- package/lib/components/VTabs/_variables.scss +1 -1
- package/lib/components/VTabs/index.mjs.map +1 -1
- package/lib/components/VTabs/shared.mjs +2 -0
- package/lib/components/VTabs/shared.mjs.map +1 -0
- package/lib/components/VTextField/VTextField.css +4 -4
- package/lib/components/VTextField/VTextField.mjs +9 -10
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +5 -6
- package/lib/components/VTextField/index.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.css +7 -4
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.sass +9 -7
- package/lib/components/VTextarea/index.mjs.map +1 -1
- package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
- package/lib/components/VThemeProvider/index.mjs.map +1 -1
- package/lib/components/VTimePicker/SelectingTimes.mjs.map +1 -1
- package/lib/components/VTimePicker/VTimePicker.mjs.map +1 -1
- package/lib/components/VTimePicker/VTimePickerClock.mjs.map +1 -1
- package/lib/components/VTimePicker/VTimePickerTitle.mjs.map +1 -1
- package/lib/components/VTimePicker/index.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.css +187 -48
- package/lib/components/VTimeline/VTimeline.mjs +27 -11
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.sass +196 -52
- package/lib/components/VTimeline/VTimelineDivider.mjs +5 -3
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs +3 -2
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VTimeline/_variables.scss +2 -1
- package/lib/components/VTimeline/index.mjs.map +1 -1
- package/lib/components/VTimeline/shared.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.css +8 -1
- package/lib/components/VToolbar/VToolbar.mjs +21 -17
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.sass +2 -2
- package/lib/components/VToolbar/VToolbarItems.mjs +1 -2
- package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
- package/lib/components/VToolbar/_variables.scss +13 -1
- package/lib/components/VToolbar/index.mjs.map +1 -1
- package/lib/components/VTooltip/VTooltip.mjs +12 -7
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/VTooltip.sass +0 -1
- package/lib/components/VTooltip/index.mjs.map +1 -1
- package/lib/components/VTreeview/VTreeview.mjs.map +1 -1
- package/lib/components/VTreeview/VTreeviewNode.mjs.map +1 -1
- package/lib/components/VTreeview/index.mjs.map +1 -1
- package/lib/components/VTreeview/util/filterTreeItems.mjs.map +1 -1
- package/lib/components/VValidation/VValidation.mjs.map +1 -1
- package/lib/components/VValidation/index.mjs.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/components/VVirtualScroll/index.mjs.map +1 -1
- package/lib/components/VWindow/VWindow.mjs +2 -10
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindow.sass +0 -2
- package/lib/components/VWindow/VWindowItem.mjs +9 -3
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/VWindow/index.mjs.map +1 -1
- package/lib/components/index.d.ts +13464 -9854
- package/lib/components/index.mjs.map +1 -1
- package/lib/components/transitions/createTransition.mjs.map +1 -1
- package/lib/components/transitions/dialog-transition.mjs +61 -8
- package/lib/components/transitions/dialog-transition.mjs.map +1 -1
- package/lib/components/transitions/expand-transition.mjs.map +1 -1
- package/lib/components/transitions/index.mjs.map +1 -1
- package/lib/composables/border.mjs.map +1 -1
- package/lib/composables/color.mjs.map +1 -1
- package/lib/composables/defaults.mjs +2 -2
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/delay.mjs.map +1 -1
- package/lib/composables/density.mjs.map +1 -1
- package/lib/composables/dimensions.mjs.map +1 -1
- package/lib/composables/display.mjs +13 -11
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/elevation.mjs.map +1 -1
- package/lib/composables/filter.mjs +33 -13
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/composables/focus.mjs.map +1 -1
- package/lib/composables/form.mjs +24 -11
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/forwardRef.mjs +10 -6
- package/lib/composables/forwardRef.mjs.map +1 -1
- package/lib/composables/group.mjs +14 -6
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/hydration.mjs.map +1 -1
- package/lib/composables/icons.mjs +15 -3
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/composables/index.mjs.map +1 -1
- package/lib/composables/intersectionObserver.mjs.map +1 -1
- package/lib/composables/items.mjs +84 -0
- package/lib/composables/items.mjs.map +1 -0
- package/lib/composables/layout.mjs +10 -6
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/composables/lazy.mjs.map +1 -1
- package/lib/composables/loader.mjs.map +1 -1
- package/lib/composables/locale.mjs +11 -8
- package/lib/composables/locale.mjs.map +1 -1
- package/lib/composables/location.mjs +70 -0
- package/lib/composables/location.mjs.map +1 -0
- package/lib/composables/mutationObserver.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs +27 -14
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/nested/openStrategies.mjs +63 -36
- package/lib/composables/nested/openStrategies.mjs.map +1 -1
- package/lib/composables/nested/selectStrategies.mjs +163 -122
- package/lib/composables/nested/selectStrategies.mjs.map +1 -1
- package/lib/composables/position.mjs +4 -25
- package/lib/composables/position.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/refs.mjs.map +1 -1
- package/lib/composables/resizeObserver.mjs +1 -9
- package/lib/composables/resizeObserver.mjs.map +1 -1
- package/lib/composables/rounded.mjs.map +1 -1
- package/lib/composables/router.mjs +29 -15
- package/lib/composables/router.mjs.map +1 -1
- package/lib/composables/rtl.mjs.map +1 -1
- package/lib/composables/scopeId.mjs +11 -0
- package/lib/composables/scopeId.mjs.map +1 -0
- package/lib/composables/scroll.mjs.map +1 -1
- package/lib/composables/selectLink.mjs +19 -0
- package/lib/composables/selectLink.mjs.map +1 -0
- package/lib/composables/size.mjs.map +1 -1
- package/lib/composables/ssrBoot.mjs +3 -2
- package/lib/composables/ssrBoot.mjs.map +1 -1
- package/lib/composables/stack.mjs +27 -23
- package/lib/composables/stack.mjs.map +1 -1
- package/lib/composables/tag.mjs.map +1 -1
- package/lib/composables/teleport.mjs.map +1 -1
- package/lib/composables/theme.mjs +94 -93
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/toggleScope.mjs +18 -0
- package/lib/composables/toggleScope.mjs.map +1 -0
- package/lib/composables/touch.mjs.map +1 -1
- package/lib/composables/transition.mjs.map +1 -1
- package/lib/composables/validation.mjs +17 -6
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/composables/variant.mjs +3 -6
- package/lib/composables/variant.mjs.map +1 -1
- package/lib/directives/click-outside/index.mjs.map +1 -1
- package/lib/directives/color/index.mjs.map +1 -1
- package/lib/directives/index.mjs.map +1 -1
- package/lib/directives/intersect/index.mjs.map +1 -1
- package/lib/directives/mutate/index.mjs.map +1 -1
- package/lib/directives/resize/index.mjs.map +1 -1
- package/lib/directives/ripple/VRipple.sass +0 -1
- package/lib/directives/ripple/index.mjs +15 -3
- package/lib/directives/ripple/index.mjs.map +1 -1
- package/lib/directives/scroll/index.mjs.map +1 -1
- package/lib/directives/touch/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +39 -29
- package/lib/framework.mjs.map +1 -1
- package/lib/iconsets/fa-svg.d.ts +2 -1
- package/lib/iconsets/fa-svg.mjs.map +1 -1
- package/lib/iconsets/fa.d.ts +2 -1
- package/lib/iconsets/fa.mjs.map +1 -1
- package/lib/iconsets/fa4.d.ts +2 -1
- package/lib/iconsets/fa4.mjs.map +1 -1
- package/lib/iconsets/md.d.ts +2 -1
- package/lib/iconsets/md.mjs.map +1 -1
- package/lib/iconsets/mdi-svg.d.ts +2 -1
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/iconsets/mdi.d.ts +2 -1
- package/lib/iconsets/mdi.mjs.map +1 -1
- package/lib/index.d.ts +161 -138
- package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
- package/lib/locale/adapters/vue-intl.mjs.map +1 -1
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +9 -9
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.mjs.map +1 -1
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/lib/presets/default/index.mjs.map +1 -1
- package/lib/services/goto/easing-patterns.mjs.map +1 -1
- package/lib/services/goto/index.mjs.map +1 -1
- package/lib/services/goto/util.mjs.map +1 -1
- package/lib/styles/generic/_colors.scss +0 -1
- package/lib/styles/main.css +400 -392
- package/lib/styles/settings/_utilities.scss +54 -26
- package/lib/styles/tools/_states.sass +11 -3
- package/lib/styles/tools/_utilities.sass +1 -1
- package/lib/styles/tools/_variant.sass +6 -6
- package/lib/{components/VOverlay/util → util}/anchor.mjs +0 -0
- package/lib/util/anchor.mjs.map +1 -0
- package/lib/util/animation.mjs.map +1 -1
- package/lib/util/box.mjs.map +1 -1
- package/lib/util/color/APCA.mjs.map +1 -1
- package/lib/util/color/transformCIELAB.mjs.map +1 -1
- package/lib/util/color/transformSRGB.mjs.map +1 -1
- package/lib/util/colorUtils.mjs.map +1 -1
- package/lib/util/colors.mjs.map +1 -1
- package/lib/util/console.mjs.map +1 -1
- package/lib/util/createSimpleFunctional.mjs.map +1 -1
- package/lib/util/dateTimeUtils.mjs.map +1 -1
- package/lib/util/defineComponent.mjs +37 -6
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/dom.mjs.map +1 -1
- package/lib/util/easing.mjs.map +1 -1
- package/lib/util/getCurrentInstance.mjs +20 -1
- package/lib/util/getCurrentInstance.mjs.map +1 -1
- package/lib/util/getScrollParent.mjs.map +1 -1
- package/lib/util/globals.mjs +0 -3
- package/lib/util/globals.mjs.map +1 -1
- package/lib/util/helpers.mjs +1 -5
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/index.mjs +1 -0
- package/lib/util/index.mjs.map +1 -1
- package/lib/util/isFixedPosition.mjs.map +1 -1
- package/lib/util/propsFactory.mjs.map +1 -1
- package/lib/util/useRender.mjs.map +1 -1
- package/package.json +41 -31
- package/lib/components/VOverlay/positionStrategies.mjs.map +0 -1
- package/lib/components/VOverlay/util/anchor.mjs.map +0 -1
- package/lib/composables/overlay.mjs +0 -30
- package/lib/composables/overlay.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VRangeSlider/VRangeSlider.tsx"],"names":["VInput","VSliderThumb","VSliderTrack","getOffset","makeSliderProps","useSlider","makeFocusProps","useFocus","useProxiedModel","computed","defineComponent","ref","filterInputProps","makeVInputProps","VRangeSlider","name","props","strict","Boolean","modelValue","type","Array","default","emits","value","setup","slots","attrs","startThumbRef","stopThumbRef","inputRef","getActiveThumb","e","startOffset","$el","direction","stopOffset","a","Math","abs","b","min","max","mousePressed","roundValue","onSliderMousedown","onSliderTouchstart","trackContainerRef","position","hasLabels","activeThumbRef","handleSliderMouseUp","newValue","model","handleMouseMove","start","stop","focus","undefined","arr","length","map","isFocused","blur","trackStart","trackStop","inputProps","_","disabled","id","readonly","v","relatedTarget"],"mappings":"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","sourcesContent":["// Components\nimport { VInput } from '../VInput'\nimport { VSliderThumb } from '../VSlider/VSliderThumb'\nimport { VSliderTrack } from '../VSlider/VSliderTrack'\n\n// Composables\nimport { getOffset, makeSliderProps, useSlider } from '../VSlider/slider'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, defineComponent, ref } from 'vue'\n\n// Types\nimport type { PropType, WritableComputedRef } from 'vue'\nimport { filterInputProps, makeVInputProps } from '../VInput/VInput'\n\nexport const VRangeSlider = defineComponent({\n name: 'VRangeSlider',\n\n props: {\n ...makeFocusProps(),\n ...makeVInputProps(),\n ...makeSliderProps(),\n\n strict: Boolean,\n modelValue: {\n type: Array as PropType<number[]>,\n default: () => ([0, 0]),\n },\n },\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (value: [number, number]) => true,\n },\n\n setup (props, { slots, attrs }) {\n const startThumbRef = ref<VSliderThumb>()\n const stopThumbRef = ref<VSliderThumb>()\n const inputRef = ref<VInput>()\n\n function getActiveThumb (e: MouseEvent | TouchEvent) {\n if (!startThumbRef.value || !stopThumbRef.value) return\n\n const startOffset = getOffset(e, startThumbRef.value.$el, props.direction)\n const stopOffset = getOffset(e, stopThumbRef.value.$el, props.direction)\n\n const a = Math.abs(startOffset)\n const b = Math.abs(stopOffset)\n\n return (a < b || (a === b && startOffset < 0)) ? startThumbRef.value.$el : stopThumbRef.value.$el\n }\n\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n activeThumbRef,\n } = useSlider({\n /* eslint-disable @typescript-eslint/no-use-before-define */\n props,\n handleSliderMouseUp: newValue => {\n model.value = activeThumbRef.value === startThumbRef.value?.$el ? [newValue, model.value[1]] : [model.value[0], newValue]\n },\n handleMouseMove: newValue => {\n const [start, stop] = model.value\n\n if (!props.strict && start === stop && start !== min.value) {\n activeThumbRef.value = newValue > start ? stopThumbRef.value?.$el : startThumbRef.value?.$el\n activeThumbRef.value?.focus()\n }\n\n if (activeThumbRef.value === startThumbRef.value?.$el) {\n model.value = [Math.min(newValue, stop), stop]\n } else {\n model.value = [start, Math.max(start, newValue)]\n }\n },\n getActiveThumb,\n /* eslint-enable @typescript-eslint/no-use-before-define */\n })\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n arr => {\n if (!arr || !arr.length) return [0, 0]\n\n return arr.map(value => roundValue(value))\n },\n ) as WritableComputedRef<[number, number]>\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStart = computed(() => position(model.value[0]))\n const trackStop = computed(() => position(model.value[1]))\n\n return () => {\n const [inputProps, _] = filterInputProps(props)\n\n return (\n <VInput\n class={[\n 'v-slider',\n 'v-range-slider',\n {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled,\n },\n ]}\n ref={ inputRef }\n { ...inputProps }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({ id }) => (\n <div\n class=\"v-slider__container\"\n onMousedown={ onSliderMousedown }\n onTouchstartPassive={ onSliderTouchstart }\n >\n <input\n id={ `${id.value}_start` }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value[0] }\n />\n\n <input\n id={ `${id.value}_stop` }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value[1] }\n />\n\n <VSliderTrack\n ref={ trackContainerRef }\n start={ trackStart.value }\n stop={ trackStop.value }\n >\n {{ 'tick-label': slots['tick-label'] }}\n </VSliderTrack>\n\n <VSliderThumb\n ref={ startThumbRef }\n focused={ isFocused && activeThumbRef.value === startThumbRef.value?.$el }\n modelValue={ model.value[0] }\n onUpdate:modelValue={ v => (model.value = [v, model.value[1]]) }\n onFocus={ (e: FocusEvent) => {\n focus()\n activeThumbRef.value = startThumbRef.value?.$el\n\n // Make sure second thumb is focused if\n // the thumbs are on top of each other\n // and they are both at minimum value\n // but only if focused from outside.\n if (\n model.value[0] === model.value[1] &&\n model.value[1] === min.value &&\n e.relatedTarget !== stopThumbRef.value?.$el\n ) {\n startThumbRef.value?.$el.blur()\n stopThumbRef.value?.$el.focus()\n }\n } }\n onBlur={ () => {\n blur()\n activeThumbRef.value = undefined\n } }\n min={ min.value }\n max={ model.value[1] }\n position={ trackStart.value }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n\n <VSliderThumb\n ref={ stopThumbRef }\n focused={ isFocused && activeThumbRef.value === stopThumbRef.value?.$el }\n modelValue={ model.value[1] }\n onUpdate:modelValue={ v => (model.value = [model.value[0], v]) }\n onFocus={ (e: FocusEvent) => {\n focus()\n activeThumbRef.value = stopThumbRef.value?.$el\n\n // Make sure first thumb is focused if\n // the thumbs are on top of each other\n // and they are both at maximum value\n // but only if focused from outside.\n if (\n model.value[0] === model.value[1] &&\n model.value[0] === max.value &&\n e.relatedTarget !== startThumbRef.value?.$el\n ) {\n stopThumbRef.value?.$el.blur()\n startThumbRef.value?.$el.focus()\n }\n } }\n onBlur={ () => {\n blur()\n activeThumbRef.value = undefined\n } }\n min={ model.value[0] }\n max={ max.value }\n position={ trackStop.value }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n </div>\n ),\n }}\n </VInput>\n )\n }\n },\n})\n\nexport type VRangeSlider = InstanceType<typeof VRangeSlider>\n"],"file":"VRangeSlider.mjs"}
|
|
1
|
+
{"version":3,"file":"VRangeSlider.mjs","names":["VInput","VSliderThumb","VSliderTrack","getOffset","makeSliderProps","useSlider","makeFocusProps","useFocus","useProxiedModel","computed","ref","defineComponent","filterInputProps","makeVInputProps","VRangeSlider","name","props","strict","Boolean","modelValue","type","Array","default","emits","value","setup","slots","attrs","startThumbRef","stopThumbRef","inputRef","getActiveThumb","e","startOffset","$el","direction","stopOffset","a","Math","abs","b","min","max","mousePressed","roundValue","onSliderMousedown","onSliderTouchstart","trackContainerRef","position","hasLabels","activeThumbRef","handleSliderMouseUp","newValue","model","handleMouseMove","start","stop","focus","undefined","arr","length","map","isFocused","blur","trackStart","trackStop","inputProps","_","disabled","id","readonly","v","relatedTarget"],"sources":["../../../src/components/VRangeSlider/VRangeSlider.tsx"],"sourcesContent":["// Styles\nimport '../VSlider/VSlider.sass'\n\n// Components\nimport { VInput } from '../VInput'\nimport { VSliderThumb } from '../VSlider/VSliderThumb'\nimport { VSliderTrack } from '../VSlider/VSliderTrack'\n\n// Composables\nimport { getOffset, makeSliderProps, useSlider } from '../VSlider/slider'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { defineComponent } from '@/util'\n\n// Types\nimport type { PropType, WritableComputedRef } from 'vue'\nimport { filterInputProps, makeVInputProps } from '../VInput/VInput'\n\nexport const VRangeSlider = defineComponent({\n name: 'VRangeSlider',\n\n props: {\n ...makeFocusProps(),\n ...makeVInputProps(),\n ...makeSliderProps(),\n\n strict: Boolean,\n modelValue: {\n type: Array as PropType<number[]>,\n default: () => ([0, 0]),\n },\n },\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (value: [number, number]) => true,\n },\n\n setup (props, { slots, attrs }) {\n const startThumbRef = ref<VSliderThumb>()\n const stopThumbRef = ref<VSliderThumb>()\n const inputRef = ref<VInput>()\n\n function getActiveThumb (e: MouseEvent | TouchEvent) {\n if (!startThumbRef.value || !stopThumbRef.value) return\n\n const startOffset = getOffset(e, startThumbRef.value.$el, props.direction)\n const stopOffset = getOffset(e, stopThumbRef.value.$el, props.direction)\n\n const a = Math.abs(startOffset)\n const b = Math.abs(stopOffset)\n\n return (a < b || (a === b && startOffset < 0)) ? startThumbRef.value.$el : stopThumbRef.value.$el\n }\n\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n activeThumbRef,\n } = useSlider({\n /* eslint-disable @typescript-eslint/no-use-before-define */\n props,\n handleSliderMouseUp: newValue => {\n model.value = activeThumbRef.value === startThumbRef.value?.$el ? [newValue, model.value[1]] : [model.value[0], newValue]\n },\n handleMouseMove: newValue => {\n const [start, stop] = model.value\n\n if (!props.strict && start === stop && start !== min.value) {\n activeThumbRef.value = newValue > start ? stopThumbRef.value?.$el : startThumbRef.value?.$el\n activeThumbRef.value?.focus()\n }\n\n if (activeThumbRef.value === startThumbRef.value?.$el) {\n model.value = [Math.min(newValue, stop), stop]\n } else {\n model.value = [start, Math.max(start, newValue)]\n }\n },\n getActiveThumb,\n /* eslint-enable @typescript-eslint/no-use-before-define */\n })\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n arr => {\n if (!arr || !arr.length) return [0, 0]\n\n return arr.map(value => roundValue(value))\n },\n ) as WritableComputedRef<[number, number]>\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStart = computed(() => position(model.value[0]))\n const trackStop = computed(() => position(model.value[1]))\n\n return () => {\n const [inputProps, _] = filterInputProps(props)\n\n return (\n <VInput\n class={[\n 'v-slider',\n 'v-range-slider',\n {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled,\n },\n ]}\n ref={ inputRef }\n { ...inputProps }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({ id }) => (\n <div\n class=\"v-slider__container\"\n onMousedown={ onSliderMousedown }\n onTouchstartPassive={ onSliderTouchstart }\n >\n <input\n id={ `${id.value}_start` }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value[0] }\n />\n\n <input\n id={ `${id.value}_stop` }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value[1] }\n />\n\n <VSliderTrack\n ref={ trackContainerRef }\n start={ trackStart.value }\n stop={ trackStop.value }\n >\n {{ 'tick-label': slots['tick-label'] }}\n </VSliderTrack>\n\n <VSliderThumb\n ref={ startThumbRef }\n focused={ isFocused && activeThumbRef.value === startThumbRef.value?.$el }\n modelValue={ model.value[0] }\n onUpdate:modelValue={ v => (model.value = [v, model.value[1]]) }\n onFocus={ (e: FocusEvent) => {\n focus()\n activeThumbRef.value = startThumbRef.value?.$el\n\n // Make sure second thumb is focused if\n // the thumbs are on top of each other\n // and they are both at minimum value\n // but only if focused from outside.\n if (\n model.value[0] === model.value[1] &&\n model.value[1] === min.value &&\n e.relatedTarget !== stopThumbRef.value?.$el\n ) {\n startThumbRef.value?.$el.blur()\n stopThumbRef.value?.$el.focus()\n }\n } }\n onBlur={ () => {\n blur()\n activeThumbRef.value = undefined\n } }\n min={ min.value }\n max={ model.value[1] }\n position={ trackStart.value }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n\n <VSliderThumb\n ref={ stopThumbRef }\n focused={ isFocused && activeThumbRef.value === stopThumbRef.value?.$el }\n modelValue={ model.value[1] }\n onUpdate:modelValue={ v => (model.value = [model.value[0], v]) }\n onFocus={ (e: FocusEvent) => {\n focus()\n activeThumbRef.value = stopThumbRef.value?.$el\n\n // Make sure first thumb is focused if\n // the thumbs are on top of each other\n // and they are both at maximum value\n // but only if focused from outside.\n if (\n model.value[0] === model.value[1] &&\n model.value[0] === max.value &&\n e.relatedTarget !== startThumbRef.value?.$el\n ) {\n stopThumbRef.value?.$el.blur()\n startThumbRef.value?.$el.focus()\n }\n } }\n onBlur={ () => {\n blur()\n activeThumbRef.value = undefined\n } }\n min={ model.value[0] }\n max={ max.value }\n position={ trackStop.value }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n </div>\n ),\n }}\n </VInput>\n )\n }\n },\n})\n\nexport type VRangeSlider = InstanceType<typeof VRangeSlider>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["VRangeSlider"],"sources":["../../../src/components/VRangeSlider/index.ts"],"sourcesContent":["export { VRangeSlider } from './VRangeSlider'\n"],"mappings":"SAASA,Y"}
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
transition: inherit;
|
|
34
34
|
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
|
|
35
35
|
}
|
|
36
|
-
.v-rating--hover .v-rating__item:hover:not(.v-rating__item--focused) .v-
|
|
36
|
+
.v-rating--hover .v-rating__item:hover:not(.v-rating__item--focused) .v-btn {
|
|
37
37
|
transform: scale(1.25);
|
|
38
38
|
}
|
|
39
39
|
.v-rating__item--focused .v-btn__overlay {
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
.v-rating__item--half {
|
|
44
44
|
overflow: hidden;
|
|
45
45
|
position: absolute;
|
|
46
|
-
|
|
46
|
+
clip-path: polygon(0 0, 50% 0, 50% 100%, 0 100%);
|
|
47
47
|
z-index: 1;
|
|
48
48
|
}
|
|
49
49
|
.v-rating__item--half .v-btn__overlay, .v-rating__item--half:hover .v-btn__overlay {
|
|
@@ -9,7 +9,8 @@ import { makeSizeProps } from "../../composables/size.mjs";
|
|
|
9
9
|
import { makeTagProps } from "../../composables/tag.mjs";
|
|
10
10
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs";
|
|
11
11
|
import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
|
|
12
|
-
import { useLocale } from "../../composables/locale.mjs";
|
|
12
|
+
import { useLocale } from "../../composables/locale.mjs";
|
|
13
|
+
import { IconValue } from "../../composables/icons.mjs"; // Utilities
|
|
13
14
|
|
|
14
15
|
import { computed, ref } from 'vue';
|
|
15
16
|
import { createRange, genericComponent, getUid } from "../../util/index.mjs"; // Types
|
|
@@ -27,11 +28,11 @@ export const VRating = genericComponent()({
|
|
|
27
28
|
clearable: Boolean,
|
|
28
29
|
disabled: Boolean,
|
|
29
30
|
emptyIcon: {
|
|
30
|
-
type:
|
|
31
|
+
type: IconValue,
|
|
31
32
|
default: '$ratingEmpty'
|
|
32
33
|
},
|
|
33
34
|
fullIcon: {
|
|
34
|
-
type:
|
|
35
|
+
type: IconValue,
|
|
35
36
|
default: '$ratingFull'
|
|
36
37
|
},
|
|
37
38
|
halfIncrements: Boolean,
|
|
@@ -204,6 +205,12 @@ export const VRating = genericComponent()({
|
|
|
204
205
|
}, null)]);
|
|
205
206
|
}
|
|
206
207
|
|
|
208
|
+
function createLabel(labelProps) {
|
|
209
|
+
if (slots['item-label']) return slots['item-label'](labelProps);
|
|
210
|
+
if (labelProps.label) return _createVNode("span", null, [labelProps.label]);
|
|
211
|
+
return _createVNode("span", null, [_createTextVNode("\xA0")]);
|
|
212
|
+
}
|
|
213
|
+
|
|
207
214
|
return () => {
|
|
208
215
|
var _props$itemLabels;
|
|
209
216
|
|
|
@@ -223,11 +230,11 @@ export const VRating = genericComponent()({
|
|
|
223
230
|
|
|
224
231
|
return _createVNode("div", {
|
|
225
232
|
"class": "v-rating__wrapper"
|
|
226
|
-
}, [
|
|
233
|
+
}, [hasLabels && props.itemLabelPosition === 'top' ? createLabel({
|
|
227
234
|
value,
|
|
228
235
|
index: i,
|
|
229
236
|
label: (_props$itemLabels2 = props.itemLabels) == null ? void 0 : _props$itemLabels2[i]
|
|
230
|
-
}) :
|
|
237
|
+
}) : undefined, _createVNode("div", {
|
|
231
238
|
"class": ['v-rating__item', {
|
|
232
239
|
'v-rating__item--focused': Math.ceil(focusIndex.value) === value
|
|
233
240
|
}]
|
|
@@ -240,7 +247,11 @@ export const VRating = genericComponent()({
|
|
|
240
247
|
}, null)]) : _createVNode(VRatingItem, {
|
|
241
248
|
"value": value,
|
|
242
249
|
"index": i
|
|
243
|
-
}, null)])
|
|
250
|
+
}, null)]), hasLabels && props.itemLabelPosition === 'bottom' ? createLabel({
|
|
251
|
+
value,
|
|
252
|
+
index: i,
|
|
253
|
+
label: (_props$itemLabels3 = props.itemLabels) == null ? void 0 : _props$itemLabels3[i]
|
|
254
|
+
}) : undefined]);
|
|
244
255
|
})]
|
|
245
256
|
});
|
|
246
257
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VRating/VRating.tsx"],"names":["VBtn","makeDensityProps","makeSizeProps","makeTagProps","useProxiedModel","makeThemeProps","provideTheme","useLocale","computed","ref","createRange","genericComponent","getUid","VRating","name","props","String","itemAriaLabel","type","default","activeColor","color","clearable","Boolean","disabled","emptyIcon","fullIcon","halfIncrements","hover","length","Number","readonly","modelValue","itemLabels","Array","itemLabelPosition","validator","v","includes","ripple","emits","value","setup","slots","t","themeClasses","rating","range","increments","flatMap","hoverIndex","focusIndex","firstRef","isClicking","itemState","map","isHovering","isFilled","isHovered","isFullIcon","icon","eventState","onMouseenter","onMouseleave","onFocus","focus","onBlur","onClick","undefined","onMousedown","onMouseup","VRatingItem","index","showStar","id","replace","btnProps","density","size","tag","variant","item","hasLabels","i","label","Math","ceil"],"mappings":"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","sourcesContent":["// Styles\nimport './VRating.sass'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Composables\nimport { makeDensityProps } from '@/composables/density'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { createRange, genericComponent, getUid } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { Variant } from '@/composables/variant'\n\ntype VRatingItemSlot = {\n value: number\n index: number\n isFilled: boolean\n isHovered: boolean\n icon: string\n color?: string\n props: Record<string, unknown>\n}\n\ntype VRatingItemLabelSlot = {\n value: number\n index: number\n label?: string\n}\n\nexport const VRating = genericComponent<new <T>() => {\n $slots: MakeSlots<{\n item: [VRatingItemSlot]\n 'item-label': [VRatingItemLabelSlot]\n }>\n}>()({\n name: 'VRating',\n\n props: {\n name: String,\n itemAriaLabel: {\n type: String,\n default: '$vuetify.rating.ariaLabel.item',\n },\n activeColor: String,\n color: String,\n clearable: Boolean,\n disabled: Boolean,\n emptyIcon: {\n type: String,\n default: '$ratingEmpty',\n },\n fullIcon: {\n type: String,\n default: '$ratingFull',\n },\n halfIncrements: Boolean,\n hover: Boolean,\n length: {\n type: [Number, String],\n default: 5,\n },\n readonly: Boolean,\n modelValue: {\n type: Number,\n default: 0,\n },\n itemLabels: Array as Prop<string[]>,\n itemLabelPosition: {\n type: String,\n default: 'top',\n validator: (v: any) => ['top', 'bottom'].includes(v),\n },\n ripple: Boolean,\n\n ...makeDensityProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (value: number) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { themeClasses } = provideTheme(props)\n const rating = useProxiedModel(props, 'modelValue')\n\n const range = computed(() => createRange(Number(props.length), 1))\n const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]))\n const hoverIndex = ref(-1)\n const focusIndex = ref(-1)\n const firstRef = ref<HTMLElement>()\n let isClicking = false\n\n const itemState = computed(() => increments.value.map(value => {\n const isHovering = props.hover && hoverIndex.value > -1\n const isFilled = rating.value >= value\n const isHovered = hoverIndex.value >= value\n const isFullIcon = isHovering ? isHovered : isFilled\n const icon = isFullIcon ? props.fullIcon : props.emptyIcon\n const activeColor = props.activeColor ?? props.color\n const color = (isFilled || isHovered) ? activeColor : props.color\n\n return { isFilled, isHovered, icon, color }\n }))\n\n const eventState = computed(() => [0, ...increments.value].map(value => {\n function onMouseenter () {\n hoverIndex.value = value\n }\n\n function onMouseleave () {\n hoverIndex.value = -1\n }\n\n function onFocus () {\n if (value === 0 && rating.value === 0) {\n firstRef.value?.focus()\n } else {\n focusIndex.value = value\n }\n }\n\n function onBlur () {\n if (!isClicking) focusIndex.value = -1\n }\n\n function onClick () {\n if (props.disabled || props.readonly) return\n rating.value = rating.value === value && props.clearable ? 0 : value\n }\n\n return {\n onMouseenter: props.hover ? onMouseenter : undefined,\n onMouseleave: props.hover ? onMouseleave : undefined,\n onFocus,\n onBlur,\n onClick,\n }\n }))\n\n function onMousedown () {\n isClicking = true\n }\n\n function onMouseup () {\n isClicking = false\n }\n\n const name = computed(() => props.name ?? `v-rating-${getUid()}`)\n\n function VRatingItem ({ value, index, showStar = true }: { value: number, index: number, showStar?: boolean }) {\n const { onMouseenter, onMouseleave, onFocus, onBlur, onClick } = eventState.value[index + 1]\n const id = `${name.value}-${String(value).replace('.', '-')}`\n const btnProps = {\n color: itemState.value[index]?.color,\n density: props.density,\n disabled: props.disabled,\n icon: itemState.value[index]?.icon,\n ripple: props.ripple,\n size: props.size,\n tag: 'span',\n variant: 'plain' as Variant,\n }\n\n return (\n <>\n <label\n for={ id }\n class={{\n 'v-rating__item--half': props.halfIncrements && value % 1 > 0,\n 'v-rating__item--full': props.halfIncrements && value % 1 === 0,\n }}\n onMousedown={ onMousedown }\n onMouseup={ onMouseup }\n onMouseenter={ onMouseenter }\n onMouseleave={ onMouseleave }\n >\n <span class=\"v-rating__hidden\">{ t(props.itemAriaLabel, value, props.length) }</span>\n {\n !showStar ? undefined\n : slots.item ? slots.item({\n ...itemState.value[index],\n props: btnProps,\n value,\n index,\n })\n : (\n <VBtn { ...btnProps } />\n )\n }\n </label>\n <input\n class=\"v-rating__hidden\"\n name={ name.value }\n id={ id }\n type=\"radio\"\n value={ value }\n checked={ rating.value === value }\n onClick={ onClick }\n onFocus={ onFocus }\n onBlur={ onBlur }\n ref={ index === 0 ? firstRef : undefined }\n readonly={ props.readonly }\n disabled={ props.disabled }\n />\n </>\n )\n }\n\n return () => {\n const hasLabels = !!props.itemLabels?.length || slots['item-label']\n\n return (\n <props.tag\n class={[\n 'v-rating',\n {\n 'v-rating--hover': props.hover,\n 'v-rating--readonly': props.readonly,\n },\n themeClasses.value,\n ]}\n >\n <VRatingItem value={ 0 } index={ -1 } showStar={ false } />\n\n { range.value.map((value, i) => (\n <div class=\"v-rating__wrapper\">\n {\n !hasLabels ? undefined\n : slots['item-label'] ? slots['item-label']({ value, index: i, label: props.itemLabels?.[i] })\n : props.itemLabels?.[i] ? <span>{ props.itemLabels[i] }</span>\n : <span> </span>\n }\n <div\n class={[\n 'v-rating__item',\n {\n 'v-rating__item--focused': Math.ceil(focusIndex.value) === value,\n },\n ]}\n >\n { props.halfIncrements ? (\n <>\n <VRatingItem value={ value - 0.5 } index={ i * 2 } />\n <VRatingItem value={ value } index={ (i * 2) + 1 } />\n </>\n ) : (\n <VRatingItem value={ value } index={ i } />\n ) }\n </div>\n </div>\n )) }\n </props.tag>\n )\n }\n },\n})\n\nexport type VRating = InstanceType<typeof VRating>\n"],"file":"VRating.mjs"}
|
|
1
|
+
{"version":3,"file":"VRating.mjs","names":["VBtn","makeDensityProps","makeSizeProps","makeTagProps","useProxiedModel","makeThemeProps","provideTheme","useLocale","IconValue","computed","ref","createRange","genericComponent","getUid","VRating","name","props","String","itemAriaLabel","type","default","activeColor","color","clearable","Boolean","disabled","emptyIcon","fullIcon","halfIncrements","hover","length","Number","readonly","modelValue","itemLabels","Array","itemLabelPosition","validator","v","includes","ripple","emits","value","setup","slots","t","themeClasses","rating","range","increments","flatMap","hoverIndex","focusIndex","firstRef","isClicking","itemState","map","isHovering","isFilled","isHovered","isFullIcon","icon","eventState","onMouseenter","onMouseleave","onFocus","focus","onBlur","onClick","undefined","onMousedown","onMouseup","VRatingItem","index","showStar","id","replace","btnProps","density","size","tag","variant","item","createLabel","labelProps","label","hasLabels","i","Math","ceil"],"sources":["../../../src/components/VRating/VRating.tsx"],"sourcesContent":["// Styles\nimport './VRating.sass'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Composables\nimport { makeDensityProps } from '@/composables/density'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useLocale } from '@/composables/locale'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { createRange, genericComponent, getUid } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { Variant } from '@/composables/variant'\n\ntype VRatingItemSlot = {\n value: number\n index: number\n isFilled: boolean\n isHovered: boolean\n icon: IconValue\n color?: string\n props: Record<string, unknown>\n}\n\ntype VRatingItemLabelSlot = {\n value: number\n index: number\n label?: string\n}\n\nexport const VRating = genericComponent<new <T>() => {\n $slots: MakeSlots<{\n item: [VRatingItemSlot]\n 'item-label': [VRatingItemLabelSlot]\n }>\n}>()({\n name: 'VRating',\n\n props: {\n name: String,\n itemAriaLabel: {\n type: String,\n default: '$vuetify.rating.ariaLabel.item',\n },\n activeColor: String,\n color: String,\n clearable: Boolean,\n disabled: Boolean,\n emptyIcon: {\n type: IconValue,\n default: '$ratingEmpty',\n },\n fullIcon: {\n type: IconValue,\n default: '$ratingFull',\n },\n halfIncrements: Boolean,\n hover: Boolean,\n length: {\n type: [Number, String],\n default: 5,\n },\n readonly: Boolean,\n modelValue: {\n type: Number,\n default: 0,\n },\n itemLabels: Array as Prop<string[]>,\n itemLabelPosition: {\n type: String,\n default: 'top',\n validator: (v: any) => ['top', 'bottom'].includes(v),\n },\n ripple: Boolean,\n\n ...makeDensityProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (value: number) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { themeClasses } = provideTheme(props)\n const rating = useProxiedModel(props, 'modelValue')\n\n const range = computed(() => createRange(Number(props.length), 1))\n const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]))\n const hoverIndex = ref(-1)\n const focusIndex = ref(-1)\n const firstRef = ref<HTMLElement>()\n let isClicking = false\n\n const itemState = computed(() => increments.value.map(value => {\n const isHovering = props.hover && hoverIndex.value > -1\n const isFilled = rating.value >= value\n const isHovered = hoverIndex.value >= value\n const isFullIcon = isHovering ? isHovered : isFilled\n const icon = isFullIcon ? props.fullIcon : props.emptyIcon\n const activeColor = props.activeColor ?? props.color\n const color = (isFilled || isHovered) ? activeColor : props.color\n\n return { isFilled, isHovered, icon, color }\n }))\n\n const eventState = computed(() => [0, ...increments.value].map(value => {\n function onMouseenter () {\n hoverIndex.value = value\n }\n\n function onMouseleave () {\n hoverIndex.value = -1\n }\n\n function onFocus () {\n if (value === 0 && rating.value === 0) {\n firstRef.value?.focus()\n } else {\n focusIndex.value = value\n }\n }\n\n function onBlur () {\n if (!isClicking) focusIndex.value = -1\n }\n\n function onClick () {\n if (props.disabled || props.readonly) return\n rating.value = rating.value === value && props.clearable ? 0 : value\n }\n\n return {\n onMouseenter: props.hover ? onMouseenter : undefined,\n onMouseleave: props.hover ? onMouseleave : undefined,\n onFocus,\n onBlur,\n onClick,\n }\n }))\n\n function onMousedown () {\n isClicking = true\n }\n\n function onMouseup () {\n isClicking = false\n }\n\n const name = computed(() => props.name ?? `v-rating-${getUid()}`)\n\n function VRatingItem ({ value, index, showStar = true }: { value: number, index: number, showStar?: boolean }) {\n const { onMouseenter, onMouseleave, onFocus, onBlur, onClick } = eventState.value[index + 1]\n const id = `${name.value}-${String(value).replace('.', '-')}`\n const btnProps = {\n color: itemState.value[index]?.color,\n density: props.density,\n disabled: props.disabled,\n icon: itemState.value[index]?.icon,\n ripple: props.ripple,\n size: props.size,\n tag: 'span',\n variant: 'plain' as Variant,\n }\n\n return (\n <>\n <label\n for={ id }\n class={{\n 'v-rating__item--half': props.halfIncrements && value % 1 > 0,\n 'v-rating__item--full': props.halfIncrements && value % 1 === 0,\n }}\n onMousedown={ onMousedown }\n onMouseup={ onMouseup }\n onMouseenter={ onMouseenter }\n onMouseleave={ onMouseleave }\n >\n <span class=\"v-rating__hidden\">{ t(props.itemAriaLabel, value, props.length) }</span>\n {\n !showStar ? undefined\n : slots.item ? slots.item({\n ...itemState.value[index],\n props: btnProps,\n value,\n index,\n })\n : (\n <VBtn { ...btnProps } />\n )\n }\n </label>\n <input\n class=\"v-rating__hidden\"\n name={ name.value }\n id={ id }\n type=\"radio\"\n value={ value }\n checked={ rating.value === value }\n onClick={ onClick }\n onFocus={ onFocus }\n onBlur={ onBlur }\n ref={ index === 0 ? firstRef : undefined }\n readonly={ props.readonly }\n disabled={ props.disabled }\n />\n </>\n )\n }\n\n function createLabel (labelProps: { value: number, index: number, label?: string }) {\n if (slots['item-label']) return slots['item-label'](labelProps)\n\n if (labelProps.label) return <span>{ labelProps.label }</span>\n\n return <span> </span>\n }\n\n return () => {\n const hasLabels = !!props.itemLabels?.length || slots['item-label']\n\n return (\n <props.tag\n class={[\n 'v-rating',\n {\n 'v-rating--hover': props.hover,\n 'v-rating--readonly': props.readonly,\n },\n themeClasses.value,\n ]}\n >\n <VRatingItem value={ 0 } index={ -1 } showStar={ false } />\n\n { range.value.map((value, i) => (\n <div class=\"v-rating__wrapper\">\n {\n hasLabels && props.itemLabelPosition === 'top'\n ? createLabel({ value, index: i, label: props.itemLabels?.[i] })\n : undefined\n }\n <div\n class={[\n 'v-rating__item',\n {\n 'v-rating__item--focused': Math.ceil(focusIndex.value) === value,\n },\n ]}\n >\n { props.halfIncrements ? (\n <>\n <VRatingItem value={ value - 0.5 } index={ i * 2 } />\n <VRatingItem value={ value } index={ (i * 2) + 1 } />\n </>\n ) : (\n <VRatingItem value={ value } index={ i } />\n ) }\n </div>\n {\n hasLabels && props.itemLabelPosition === 'bottom'\n ? createLabel({ value, index: i, label: props.itemLabels?.[i] })\n : undefined\n }\n </div>\n )) }\n </props.tag>\n )\n }\n },\n})\n\nexport type VRating = InstanceType<typeof VRating>\n"],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
@forward './variables'
|
|
2
1
|
@use './variables' as *
|
|
3
2
|
|
|
4
3
|
.v-rating
|
|
@@ -36,7 +35,7 @@
|
|
|
36
35
|
|
|
37
36
|
&:hover:not(.v-rating__item--focused)
|
|
38
37
|
.v-rating--hover &
|
|
39
|
-
.v-
|
|
38
|
+
.v-btn
|
|
40
39
|
transform: $rating-item-icon-transform
|
|
41
40
|
|
|
42
41
|
&--focused
|
|
@@ -47,7 +46,7 @@
|
|
|
47
46
|
&--half
|
|
48
47
|
overflow: hidden
|
|
49
48
|
position: absolute
|
|
50
|
-
|
|
49
|
+
clip-path: polygon(0 0, 50% 0, 50% 100%, 0 100%)
|
|
51
50
|
z-index: 1
|
|
52
51
|
|
|
53
52
|
.v-btn__overlay,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["VRating"],"sources":["../../../src/components/VRating/index.ts"],"sourcesContent":["export { VRating } from './VRating'\n"],"mappings":"SAASA,O"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"VResponsive.mjs","names":["makeDimensionProps","useDimension","computed","defineComponent","useAspectStyles","props","aspectStyles","ratio","Number","aspectRatio","paddingBottom","String","undefined","VResponsive","name","contentClass","setup","slots","dimensionStyles","value","additional","default"],"sources":["../../../src/components/VResponsive/VResponsive.tsx"],"sourcesContent":["// Styles\nimport './VResponsive.sass'\n\n// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent } from '@/util'\n\nexport function useAspectStyles (props: { aspectRatio?: string | number }) {\n return {\n aspectStyles: computed(() => {\n const ratio = Number(props.aspectRatio)\n\n return ratio\n ? { paddingBottom: String(1 / ratio * 100) + '%' }\n : undefined\n }),\n }\n}\n\nexport const VResponsive = defineComponent({\n name: 'VResponsive',\n\n props: {\n aspectRatio: [String, Number],\n contentClass: String,\n\n ...makeDimensionProps(),\n },\n\n setup (props, { slots }) {\n const { dimensionStyles } = useDimension(props)\n const { aspectStyles } = useAspectStyles(props)\n\n return () => (\n <div class=\"v-responsive\" style={ dimensionStyles.value }>\n <div class=\"v-responsive__sizer\" style={ aspectStyles.value } />\n { slots.additional?.() }\n { slots.default && (\n <div class={['v-responsive__content', props.contentClass]}>{ slots.default() }</div>\n )}\n </div>\n )\n },\n})\n"],"mappings":";AAAA;AACA,2B,CAEA;;SACSA,kB,EAAoBC,Y,4CAE7B;;AACA,SAASC,QAAT,QAAyB,KAAzB;SACSC,e;AAET,OAAO,SAASC,eAAT,CAA0BC,KAA1B,EAAoE;EACzE,OAAO;IACLC,YAAY,EAAEJ,QAAQ,CAAC,MAAM;MAC3B,MAAMK,KAAK,GAAGC,MAAM,CAACH,KAAK,CAACI,WAAP,CAApB;MAEA,OAAOF,KAAK,GACR;QAAEG,aAAa,EAAEC,MAAM,CAAC,IAAIJ,KAAJ,GAAY,GAAb,CAAN,GAA0B;MAA3C,CADQ,GAERK,SAFJ;IAGD,CANqB;EADjB,CAAP;AASD;AAED,OAAO,MAAMC,WAAW,GAAGV,eAAe,CAAC;EACzCW,IAAI,EAAE,aADmC;EAGzCT,KAAK,EAAE;IACLI,WAAW,EAAE,CAACE,MAAD,EAASH,MAAT,CADR;IAELO,YAAY,EAAEJ,MAFT;IAIL,GAAGX,kBAAkB;EAJhB,CAHkC;;EAUzCgB,KAAK,CAAEX,KAAF,QAAoB;IAAA,IAAX;MAAEY;IAAF,CAAW;IACvB,MAAM;MAAEC;IAAF,IAAsBjB,YAAY,CAACI,KAAD,CAAxC;IACA,MAAM;MAAEC;IAAF,IAAmBF,eAAe,CAACC,KAAD,CAAxC;IAEA,OAAO;MAAA;;MAAA;QAAA,SACM,cADN;QAAA,SAC6Ba,eAAe,CAACC;MAD7C;QAAA,SAEQ,qBAFR;QAAA,SAEsCb,YAAY,CAACa;MAFnD,+BAGDF,KAAK,CAACG,UAHL,qBAGD,uBAAAH,KAAK,CAHJ,EAIDA,KAAK,CAACI,OAAN;QAAA,SACY,CAAC,uBAAD,EAA0BhB,KAAK,CAACU,YAAhC;MADZ,IAC6DE,KAAK,CAACI,OAAN,EAD7D,EAJC;IAAA,CAAP;EASD;;AAvBwC,CAAD,CAAnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["VResponsive"],"sources":["../../../src/components/VResponsive/index.ts"],"sourcesContent":["export { VResponsive } from './VResponsive'\n"],"mappings":"SAASA,W"}
|
|
@@ -1,45 +1,41 @@
|
|
|
1
|
-
import { createTextVNode as _createTextVNode, createVNode as _createVNode, Fragment as _Fragment } from "vue";
|
|
1
|
+
import { createTextVNode as _createTextVNode, mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from "vue";
|
|
2
2
|
// Styles
|
|
3
3
|
import "./VSelect.css"; // Components
|
|
4
4
|
|
|
5
|
+
import { VDialogTransition } from "../transitions/index.mjs";
|
|
6
|
+
import { VCheckboxBtn } from "../VCheckbox/index.mjs";
|
|
5
7
|
import { VChip } from "../VChip/index.mjs";
|
|
6
8
|
import { VDefaultsProvider } from "../VDefaultsProvider/index.mjs";
|
|
7
9
|
import { VList, VListItem } from "../VList/index.mjs";
|
|
8
10
|
import { VMenu } from "../VMenu/index.mjs";
|
|
9
11
|
import { VTextField } from "../VTextField/index.mjs"; // Composables
|
|
10
12
|
|
|
13
|
+
import { makeItemsProps, useItems } from "../../composables/items.mjs";
|
|
11
14
|
import { makeTransitionProps } from "../../composables/transition.mjs";
|
|
12
15
|
import { useForwardRef } from "../../composables/forwardRef.mjs";
|
|
13
16
|
import { useLocale } from "../../composables/locale.mjs";
|
|
14
|
-
import { useProxiedModel } from "../../composables/proxiedModel.mjs";
|
|
17
|
+
import { useProxiedModel } from "../../composables/proxiedModel.mjs";
|
|
18
|
+
import { IconValue } from "../../composables/icons.mjs"; // Utility
|
|
15
19
|
|
|
16
|
-
import { computed,
|
|
20
|
+
import { computed, mergeProps, ref } from 'vue';
|
|
17
21
|
import { genericComponent, propsFactory, useRender, wrapInArray } from "../../util/index.mjs"; // Types
|
|
18
22
|
|
|
19
|
-
export function genItem(item) {
|
|
20
|
-
var _ref;
|
|
21
|
-
|
|
22
|
-
return {
|
|
23
|
-
title: String((_ref = typeof item === 'object' ? item.title : item) != null ? _ref : ''),
|
|
24
|
-
value: typeof item === 'object' ? item.value : item
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
23
|
export const makeSelectProps = propsFactory({
|
|
28
24
|
chips: Boolean,
|
|
29
25
|
closableChips: Boolean,
|
|
30
26
|
eager: Boolean,
|
|
31
27
|
hideNoData: Boolean,
|
|
32
28
|
hideSelected: Boolean,
|
|
33
|
-
|
|
34
|
-
type: Array,
|
|
35
|
-
default: () => []
|
|
36
|
-
},
|
|
29
|
+
menu: Boolean,
|
|
37
30
|
menuIcon: {
|
|
38
|
-
type:
|
|
31
|
+
type: IconValue,
|
|
39
32
|
default: '$dropdown'
|
|
40
33
|
},
|
|
34
|
+
menuProps: {
|
|
35
|
+
type: Object
|
|
36
|
+
},
|
|
41
37
|
modelValue: {
|
|
42
|
-
type:
|
|
38
|
+
type: null,
|
|
43
39
|
default: () => []
|
|
44
40
|
},
|
|
45
41
|
multiple: Boolean,
|
|
@@ -47,50 +43,51 @@ export const makeSelectProps = propsFactory({
|
|
|
47
43
|
type: String,
|
|
48
44
|
default: '$vuetify.noDataText'
|
|
49
45
|
},
|
|
50
|
-
openOnClear: Boolean
|
|
46
|
+
openOnClear: Boolean,
|
|
47
|
+
...makeItemsProps({
|
|
48
|
+
itemChildren: false
|
|
49
|
+
})
|
|
51
50
|
}, 'select');
|
|
52
51
|
export const VSelect = genericComponent()({
|
|
53
52
|
name: 'VSelect',
|
|
54
53
|
props: { ...makeSelectProps(),
|
|
55
54
|
...makeTransitionProps({
|
|
56
|
-
transition:
|
|
55
|
+
transition: {
|
|
56
|
+
component: VDialogTransition
|
|
57
|
+
}
|
|
57
58
|
})
|
|
58
59
|
},
|
|
59
60
|
emits: {
|
|
60
|
-
'update:modelValue': val => true
|
|
61
|
+
'update:modelValue': val => true,
|
|
62
|
+
'update:menu': val => true
|
|
61
63
|
},
|
|
62
64
|
|
|
63
|
-
setup(props,
|
|
65
|
+
setup(props, _ref) {
|
|
64
66
|
let {
|
|
65
67
|
slots
|
|
66
|
-
} =
|
|
68
|
+
} = _ref;
|
|
67
69
|
const {
|
|
68
70
|
t
|
|
69
71
|
} = useLocale();
|
|
70
72
|
const vTextFieldRef = ref();
|
|
71
|
-
const
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
const menu = useProxiedModel(props, 'menu');
|
|
74
|
+
const {
|
|
75
|
+
items,
|
|
76
|
+
transformIn,
|
|
77
|
+
transformOut
|
|
78
|
+
} = useItems(props);
|
|
79
|
+
const model = useProxiedModel(props, 'modelValue', [], v => transformIn(wrapInArray(v)), v => {
|
|
80
|
+
var _transformed$;
|
|
81
|
+
|
|
82
|
+
const transformed = transformOut(v);
|
|
83
|
+
return props.multiple ? transformed : (_transformed$ = transformed[0]) != null ? _transformed$ : null;
|
|
84
|
+
});
|
|
75
85
|
const selections = computed(() => {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
for (const unwrapped of model.value) {
|
|
80
|
-
const item = genItem(unwrapped);
|
|
81
|
-
const found = array.find(selection => selection.value === item.value);
|
|
82
|
-
|
|
83
|
-
if (found == null) {
|
|
84
|
-
array.push({ ...item,
|
|
85
|
-
index
|
|
86
|
-
});
|
|
87
|
-
index++;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
return array;
|
|
86
|
+
return model.value.map(v => {
|
|
87
|
+
return items.value.find(item => item.value === v.value) || v;
|
|
88
|
+
});
|
|
92
89
|
});
|
|
93
|
-
const selected = computed(() => selections.value.map(selection => selection.value));
|
|
90
|
+
const selected = computed(() => selections.value.map(selection => selection.props.value));
|
|
94
91
|
|
|
95
92
|
function onClear(e) {
|
|
96
93
|
model.value = [];
|
|
@@ -117,26 +114,30 @@ export const VSelect = genericComponent()({
|
|
|
117
114
|
|
|
118
115
|
function select(item) {
|
|
119
116
|
if (props.multiple) {
|
|
120
|
-
const index =
|
|
117
|
+
const index = selected.value.findIndex(selection => selection === item.value);
|
|
121
118
|
|
|
122
119
|
if (index === -1) {
|
|
123
|
-
model.value.
|
|
120
|
+
model.value = [...model.value, item];
|
|
124
121
|
} else {
|
|
125
|
-
|
|
122
|
+
const value = [...model.value];
|
|
123
|
+
value.splice(index, 1);
|
|
124
|
+
model.value = value;
|
|
126
125
|
}
|
|
127
126
|
} else {
|
|
128
|
-
model.value = [item
|
|
127
|
+
model.value = [item];
|
|
129
128
|
menu.value = false;
|
|
130
129
|
}
|
|
131
130
|
}
|
|
132
131
|
|
|
133
|
-
watch(() => vTextFieldRef.value, val => {
|
|
134
|
-
activator.value = val.$el.querySelector('.v-input__control');
|
|
135
|
-
});
|
|
136
132
|
useRender(() => {
|
|
137
133
|
const hasChips = !!(props.chips || slots.chip);
|
|
138
134
|
return _createVNode(VTextField, {
|
|
139
135
|
"ref": vTextFieldRef,
|
|
136
|
+
"modelValue": model.value.map(v => v.props.value).join(', '),
|
|
137
|
+
"onUpdate:modelValue": v => {
|
|
138
|
+
if (v == null) model.value = [];
|
|
139
|
+
},
|
|
140
|
+
"validationValue": props.modelValue,
|
|
140
141
|
"class": ['v-select', {
|
|
141
142
|
'v-select--active-menu': menu.value,
|
|
142
143
|
'v-select--chips': !!props.chips,
|
|
@@ -148,68 +149,94 @@ export const VSelect = genericComponent()({
|
|
|
148
149
|
"onClick:input": onClickControl,
|
|
149
150
|
"onClick:control": onClickControl,
|
|
150
151
|
"onBlur": () => menu.value = false,
|
|
151
|
-
"modelValue": model.value.join(', '),
|
|
152
152
|
"onKeydown": onKeydown
|
|
153
153
|
}, { ...slots,
|
|
154
|
-
default: () =>
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
"
|
|
165
|
-
"
|
|
166
|
-
}, {
|
|
167
|
-
default: () => [
|
|
168
|
-
"
|
|
169
|
-
|
|
170
|
-
"
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
}
|
|
154
|
+
default: () => {
|
|
155
|
+
var _slots$noData, _slots$noData2;
|
|
156
|
+
|
|
157
|
+
return _createVNode(_Fragment, null, [_createVNode(VMenu, _mergeProps({
|
|
158
|
+
"modelValue": menu.value,
|
|
159
|
+
"onUpdate:modelValue": $event => menu.value = $event,
|
|
160
|
+
"activator": "parent",
|
|
161
|
+
"contentClass": "v-select__content",
|
|
162
|
+
"eager": props.eager,
|
|
163
|
+
"openOnClick": false,
|
|
164
|
+
"closeOnContentClick": false,
|
|
165
|
+
"transition": props.transition
|
|
166
|
+
}, props.menuProps), {
|
|
167
|
+
default: () => [_createVNode(VList, {
|
|
168
|
+
"selected": selected.value,
|
|
169
|
+
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
|
170
|
+
"onMousedown": e => e.preventDefault()
|
|
171
|
+
}, {
|
|
172
|
+
default: () => [!items.value.length && !props.hideNoData && ((_slots$noData = (_slots$noData2 = slots['no-data']) == null ? void 0 : _slots$noData2.call(slots)) != null ? _slots$noData : _createVNode(VListItem, {
|
|
173
|
+
"title": t(props.noDataText)
|
|
174
|
+
}, null)), items.value.map(item => {
|
|
175
|
+
var _slots$item, _slots$item2;
|
|
176
|
+
|
|
177
|
+
return (_slots$item = (_slots$item2 = slots.item) == null ? void 0 : _slots$item2.call(slots, {
|
|
178
|
+
item,
|
|
179
|
+
props: mergeProps(item.props, {
|
|
180
|
+
onClick: () => select(item)
|
|
181
|
+
})
|
|
182
|
+
})) != null ? _slots$item : _createVNode(VListItem, _mergeProps(item.props, {
|
|
183
|
+
"onClick": () => select(item)
|
|
184
|
+
}), {
|
|
185
|
+
prepend: _ref2 => {
|
|
186
|
+
let {
|
|
187
|
+
isSelected
|
|
188
|
+
} = _ref2;
|
|
189
|
+
return props.multiple ? _createVNode(VCheckboxBtn, {
|
|
190
|
+
"modelValue": isSelected,
|
|
191
|
+
"ripple": false
|
|
192
|
+
}, null) : undefined;
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
})]
|
|
196
|
+
})]
|
|
197
|
+
}), selections.value.map((item, index) => {
|
|
198
|
+
function onChipClose(e) {
|
|
199
|
+
e.stopPropagation();
|
|
200
|
+
e.preventDefault();
|
|
201
|
+
select(item);
|
|
196
202
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
203
|
+
|
|
204
|
+
const slotProps = {
|
|
205
|
+
'onClick:close': onChipClose,
|
|
206
|
+
modelValue: true
|
|
207
|
+
};
|
|
208
|
+
return _createVNode("div", {
|
|
209
|
+
"class": "v-select__selection"
|
|
210
|
+
}, [hasChips ? _createVNode(VDefaultsProvider, {
|
|
211
|
+
"defaults": {
|
|
212
|
+
VChip: {
|
|
213
|
+
closable: props.closableChips,
|
|
214
|
+
size: 'small',
|
|
215
|
+
text: item.title
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}, {
|
|
219
|
+
default: () => [slots.chip ? slots.chip({
|
|
220
|
+
props: slotProps,
|
|
221
|
+
item,
|
|
222
|
+
index
|
|
223
|
+
}) : _createVNode(VChip, slotProps, null)]
|
|
224
|
+
}) : slots.selection ? slots.selection({
|
|
225
|
+
item,
|
|
226
|
+
index
|
|
227
|
+
}) : _createVNode("span", {
|
|
228
|
+
"class": "v-select__selection-text"
|
|
229
|
+
}, [item.title, props.multiple && index < selections.value.length - 1 && _createVNode("span", {
|
|
230
|
+
"class": "v-select__selection-comma"
|
|
231
|
+
}, [_createTextVNode(",")])])]);
|
|
232
|
+
})]);
|
|
233
|
+
}
|
|
210
234
|
});
|
|
211
235
|
});
|
|
212
|
-
return useForwardRef({
|
|
236
|
+
return useForwardRef({
|
|
237
|
+
menu,
|
|
238
|
+
select
|
|
239
|
+
}, vTextFieldRef);
|
|
213
240
|
}
|
|
214
241
|
|
|
215
242
|
});
|