@vuetify/nightly 3.8.6-master.2025-05-23 → 3.8.6-master.2025-05-26
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 +9 -3
- package/dist/json/attributes.json +2828 -2828
- package/dist/json/importMap-labs.json +24 -24
- package/dist/json/importMap.json +190 -190
- package/dist/json/web-types.json +5204 -5204
- package/dist/vuetify-labs.cjs +876 -873
- package/dist/vuetify-labs.css +5138 -5138
- package/dist/vuetify-labs.d.ts +69 -69
- package/dist/vuetify-labs.esm.js +877 -874
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +876 -873
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +763 -760
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +5182 -5182
- package/dist/vuetify.d.ts +69 -69
- package/dist/vuetify.esm.js +764 -761
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +763 -760
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +960 -960
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.js +11 -11
- package/lib/components/VAlert/VAlert.js.map +1 -1
- package/lib/components/VApp/VApp.js +5 -5
- package/lib/components/VApp/VApp.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.js +9 -9
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VAvatar/VAvatar.js +4 -4
- package/lib/components/VAvatar/VAvatar.js.map +1 -1
- package/lib/components/VBadge/VBadge.js +3 -3
- package/lib/components/VBadge/VBadge.js.map +1 -1
- package/lib/components/VBanner/VBanner.js +6 -6
- package/lib/components/VBanner/VBanner.js.map +1 -1
- package/lib/components/VBanner/VBannerActions.js +4 -4
- package/lib/components/VBanner/VBannerActions.js.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.js +6 -6
- package/lib/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.js +5 -5
- package/lib/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.js +4 -4
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.js.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js +5 -5
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
- package/lib/components/VBtn/VBtn.js +7 -7
- package/lib/components/VBtn/VBtn.js.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.js +4 -4
- package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
- package/lib/components/VCard/VCard.js +5 -5
- package/lib/components/VCard/VCard.js.map +1 -1
- package/lib/components/VCard/VCardActions.js +4 -4
- package/lib/components/VCard/VCardActions.js.map +1 -1
- package/lib/components/VCard/VCardItem.js +9 -9
- package/lib/components/VCard/VCardItem.js.map +1 -1
- package/lib/components/VCard/VCardSubtitle.js +4 -4
- package/lib/components/VCard/VCardSubtitle.js.map +1 -1
- package/lib/components/VCard/VCardText.js +4 -4
- package/lib/components/VCard/VCardText.js.map +1 -1
- package/lib/components/VCarousel/VCarousel.js +4 -4
- package/lib/components/VCarousel/VCarousel.js.map +1 -1
- package/lib/components/VChip/VChip.js +11 -11
- package/lib/components/VChip/VChip.js.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.js +3 -3
- package/lib/components/VColorPicker/VColorPicker.js.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.js +9 -9
- package/lib/components/VColorPicker/VColorPickerCanvas.js.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.js +6 -6
- package/lib/components/VColorPicker/VColorPickerEdit.js.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.js +11 -11
- package/lib/components/VColorPicker/VColorPickerPreview.js.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.js +10 -10
- package/lib/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.js +9 -9
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VConfirmEdit/VConfirmEdit.js +3 -3
- package/lib/components/VConfirmEdit/VConfirmEdit.js.map +1 -1
- package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.js +3 -3
- package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.js.map +1 -1
- package/lib/components/VCounter/VCounter.js +5 -5
- package/lib/components/VCounter/VCounter.js.map +1 -1
- package/lib/components/VDataIterator/VDataIterator.js +5 -5
- package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.js +4 -4
- package/lib/components/VDataTable/VDataTable.js.map +1 -1
- package/lib/components/VDataTable/VDataTableColumn.js +5 -5
- package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
- package/lib/components/VDataTable/VDataTableFooter.js +6 -6
- package/lib/components/VDataTable/VDataTableFooter.js.map +1 -1
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.js +7 -7
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.js +11 -11
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRow.js +6 -6
- package/lib/components/VDataTable/VDataTableRow.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRows.js +7 -7
- package/lib/components/VDataTable/VDataTableRows.js.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.js +4 -4
- package/lib/components/VDataTable/VDataTableServer.js.map +1 -1
- package/lib/components/VDataTable/VDataTableVirtual.js +14 -14
- package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.js +3 -3
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerControls.js +5 -5
- package/lib/components/VDatePicker/VDatePickerControls.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerHeader.js +8 -8
- package/lib/components/VDatePicker/VDatePickerHeader.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.js +10 -10
- package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonths.js +5 -5
- package/lib/components/VDatePicker/VDatePickerMonths.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerYears.js +5 -5
- package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
- package/lib/components/VDialog/__test__/VDialog.spec.browser.js +5 -5
- package/lib/components/VDialog/__test__/VDialog.spec.browser.js.map +1 -1
- package/lib/components/VDivider/VDivider.js +10 -10
- package/lib/components/VDivider/VDivider.js.map +1 -1
- package/lib/components/VEmptyState/VEmptyState.js +14 -14
- package/lib/components/VEmptyState/VEmptyState.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.js +6 -6
- package/lib/components/VExpansionPanel/VExpansionPanel.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelText.js +5 -5
- package/lib/components/VExpansionPanel/VExpansionPanelText.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.js +10 -10
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.js +4 -4
- package/lib/components/VExpansionPanel/VExpansionPanels.js.map +1 -1
- package/lib/components/VFab/VFab.js +7 -7
- package/lib/components/VFab/VFab.js.map +1 -1
- package/lib/components/VField/VField.js +20 -18
- package/lib/components/VField/VField.js.map +1 -1
- package/lib/components/VField/VFieldLabel.js +4 -4
- package/lib/components/VField/VFieldLabel.js.map +1 -1
- package/lib/components/VFileInput/VFileInput.js +5 -5
- package/lib/components/VFileInput/VFileInput.js.map +1 -1
- package/lib/components/VFooter/VFooter.js +4 -4
- package/lib/components/VFooter/VFooter.js.map +1 -1
- package/lib/components/VForm/VForm.js +4 -4
- package/lib/components/VForm/VForm.js.map +1 -1
- package/lib/components/VGrid/VContainer.js +4 -4
- package/lib/components/VGrid/VContainer.js.map +1 -1
- package/lib/components/VIcon/VIcon.js +5 -5
- package/lib/components/VIcon/VIcon.js.map +1 -1
- package/lib/components/VImg/VImg.js +19 -19
- package/lib/components/VImg/VImg.js.map +1 -1
- package/lib/components/VInfiniteScroll/VInfiniteScroll.js +10 -10
- package/lib/components/VInfiniteScroll/VInfiniteScroll.js.map +1 -1
- package/lib/components/VInput/InputIcon.d.ts +1 -1
- package/lib/components/VInput/InputIcon.js +5 -4
- package/lib/components/VInput/InputIcon.js.map +1 -1
- package/lib/components/VInput/VInput.js +9 -9
- package/lib/components/VInput/VInput.js.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.js +3 -3
- package/lib/components/VItemGroup/VItemGroup.js.map +1 -1
- package/lib/components/VLabel/VLabel.js +5 -5
- package/lib/components/VLabel/VLabel.js.map +1 -1
- package/lib/components/VLayout/VLayout.js +4 -4
- package/lib/components/VLayout/VLayout.js.map +1 -1
- package/lib/components/VLayout/VLayoutItem.js +4 -4
- package/lib/components/VLayout/VLayoutItem.js.map +1 -1
- package/lib/components/VLazy/VLazy.js +6 -6
- package/lib/components/VLazy/VLazy.js.map +1 -1
- package/lib/components/VList/VList.js +4 -4
- package/lib/components/VList/VList.js.map +1 -1
- package/lib/components/VList/VListGroup.js +5 -5
- package/lib/components/VList/VListGroup.js.map +1 -1
- package/lib/components/VList/VListItem.js +11 -11
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VList/VListItemAction.js +4 -4
- package/lib/components/VList/VListItemAction.js.map +1 -1
- package/lib/components/VList/VListItemMedia.js +4 -4
- package/lib/components/VList/VListItemMedia.js.map +1 -1
- package/lib/components/VList/VListItemSubtitle.js +4 -4
- package/lib/components/VList/VListItemSubtitle.js.map +1 -1
- package/lib/components/VList/VListSubheader.js +6 -6
- package/lib/components/VList/VListSubheader.js.map +1 -1
- package/lib/components/VLocaleProvider/VLocaleProvider.js +4 -4
- package/lib/components/VLocaleProvider/VLocaleProvider.js.map +1 -1
- package/lib/components/VMain/VMain.js +5 -5
- package/lib/components/VMain/VMain.js.map +1 -1
- package/lib/components/VMessages/VMessages.js +4 -4
- package/lib/components/VMessages/VMessages.js.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.js +7 -7
- package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.js +8 -8
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.js +7 -7
- package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
- package/lib/components/VOverlay/VOverlay.js +8 -8
- package/lib/components/VOverlay/VOverlay.js.map +1 -1
- package/lib/components/VPagination/VPagination.js +11 -11
- package/lib/components/VPagination/VPagination.js.map +1 -1
- package/lib/components/VParallax/VParallax.js +4 -4
- package/lib/components/VParallax/VParallax.js.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.js +12 -12
- package/lib/components/VProgressCircular/VProgressCircular.js.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.js +26 -26
- package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.js +2 -2
- package/lib/components/VRadioGroup/VRadioGroup.js.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.js +5 -5
- package/lib/components/VRangeSlider/VRangeSlider.js.map +1 -1
- package/lib/components/VRating/VRating.js +14 -14
- package/lib/components/VRating/VRating.js.map +1 -1
- package/lib/components/VResponsive/VResponsive.js +9 -9
- package/lib/components/VResponsive/VResponsive.js.map +1 -1
- package/lib/components/VSelect/VSelect.js +7 -7
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.js +11 -11
- package/lib/components/VSelectionControl/VSelectionControl.js.map +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js +5 -5
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js.map +1 -1
- package/lib/components/VSheet/VSheet.js +3 -3
- package/lib/components/VSheet/VSheet.js.map +1 -1
- package/lib/components/VSkeletonLoader/VSkeletonLoader.js +4 -4
- package/lib/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.js +12 -12
- package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
- package/lib/components/VSlider/VSlider.js +4 -4
- package/lib/components/VSlider/VSlider.js.map +1 -1
- package/lib/components/VSlider/VSliderThumb.js +19 -19
- package/lib/components/VSlider/VSliderThumb.js.map +1 -1
- package/lib/components/VSlider/VSliderTrack.js +23 -23
- package/lib/components/VSlider/VSliderTrack.js.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.js +4 -4
- package/lib/components/VSnackbar/VSnackbar.js.map +1 -1
- package/lib/components/VSnackbarQueue/VSnackbarQueue.js +3 -3
- package/lib/components/VSnackbarQueue/VSnackbarQueue.js.map +1 -1
- package/lib/components/VSparkline/VBarline.js +12 -12
- package/lib/components/VSparkline/VBarline.js.map +1 -1
- package/lib/components/VSparkline/VTrendline.js +8 -8
- package/lib/components/VSparkline/VTrendline.js.map +1 -1
- package/lib/components/VStepper/VStepper.js +2 -2
- package/lib/components/VStepper/VStepper.js.map +1 -1
- package/lib/components/VStepper/VStepperActions.js +2 -2
- package/lib/components/VStepper/VStepperActions.js.map +1 -1
- package/lib/components/VStepper/VStepperItem.js +10 -10
- package/lib/components/VStepper/VStepperItem.js.map +1 -1
- package/lib/components/VSwitch/VSwitch.js +10 -10
- package/lib/components/VSwitch/VSwitch.js.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.js +4 -4
- package/lib/components/VSystemBar/VSystemBar.js.map +1 -1
- package/lib/components/VTable/VTable.js +8 -8
- package/lib/components/VTable/VTable.js.map +1 -1
- package/lib/components/VTabs/VTab.js +4 -4
- package/lib/components/VTabs/VTab.js.map +1 -1
- package/lib/components/VTabs/VTabs.js +2 -2
- package/lib/components/VTabs/VTabs.js.map +1 -1
- package/lib/components/VTextField/VTextField.js +12 -12
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/components/VTextarea/VTextarea.js +10 -10
- package/lib/components/VTextarea/VTextarea.js.map +1 -1
- package/lib/components/VThemeProvider/VThemeProvider.js +3 -3
- package/lib/components/VThemeProvider/VThemeProvider.js.map +1 -1
- package/lib/components/VTimeline/VTimeline.js +5 -5
- package/lib/components/VTimeline/VTimeline.js.map +1 -1
- package/lib/components/VTimeline/VTimelineDivider.js +17 -17
- package/lib/components/VTimeline/VTimelineDivider.js.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.js +9 -9
- package/lib/components/VTimeline/VTimelineItem.js.map +1 -1
- package/lib/components/VToolbar/VToolbar.js +13 -13
- package/lib/components/VToolbar/VToolbar.js.map +1 -1
- package/lib/components/VToolbar/VToolbarItems.js +4 -4
- package/lib/components/VToolbar/VToolbarItems.js.map +1 -1
- package/lib/components/VToolbar/VToolbarTitle.js +4 -4
- package/lib/components/VToolbar/VToolbarTitle.js.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.js +13 -13
- package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScrollItem.js +3 -3
- package/lib/components/VVirtualScroll/VVirtualScrollItem.js.map +1 -1
- package/lib/components/VWindow/VWindow.js +13 -13
- package/lib/components/VWindow/VWindow.js.map +1 -1
- package/lib/components/VWindow/VWindowItem.js +6 -6
- package/lib/components/VWindow/VWindowItem.js.map +1 -1
- package/lib/composables/filter.js +8 -8
- package/lib/composables/filter.js.map +1 -1
- package/lib/composables/icons.js +6 -6
- package/lib/composables/icons.js.map +1 -1
- package/lib/composables/loader.js +3 -3
- package/lib/composables/loader.js.map +1 -1
- package/lib/composables/variant.js +5 -5
- package/lib/composables/variant.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +69 -69
- package/lib/framework.js +1 -1
- package/lib/labs/VCalendar/VCalendar.js +15 -15
- package/lib/labs/VCalendar/VCalendar.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarDay.js +4 -4
- package/lib/labs/VCalendar/VCalendarDay.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarHeader.js +4 -4
- package/lib/labs/VCalendar/VCalendarHeader.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarInterval.js +10 -10
- package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarIntervalEvent.js +2 -2
- package/lib/labs/VCalendar/VCalendarIntervalEvent.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarMonthDay.js +6 -6
- package/lib/labs/VCalendar/VCalendarMonthDay.js.map +1 -1
- package/lib/labs/VColorInput/VColorInput.js +3 -3
- package/lib/labs/VColorInput/VColorInput.js.map +1 -1
- package/lib/labs/VDateInput/VDateInput.js +2 -2
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/labs/VFileUpload/VFileUpload.js +9 -9
- package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
- package/lib/labs/VFileUpload/VFileUploadItem.js +3 -3
- package/lib/labs/VFileUpload/VFileUploadItem.js.map +1 -1
- package/lib/labs/VIconBtn/VIconBtn.js +7 -7
- package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
- package/lib/labs/VPicker/VPicker.js +7 -7
- package/lib/labs/VPicker/VPicker.js.map +1 -1
- package/lib/labs/VPullToRefresh/VPullToRefresh.js +13 -13
- package/lib/labs/VPullToRefresh/VPullToRefresh.js.map +1 -1
- package/lib/labs/VStepperVertical/VStepperVertical.js +2 -2
- package/lib/labs/VStepperVertical/VStepperVertical.js.map +1 -1
- package/lib/labs/VStepperVertical/VStepperVerticalItem.js +5 -5
- package/lib/labs/VStepperVertical/VStepperVerticalItem.js.map +1 -1
- package/lib/labs/VTimePicker/VTimePicker.js +2 -2
- package/lib/labs/VTimePicker/VTimePicker.js.map +1 -1
- package/lib/labs/VTimePicker/VTimePickerClock.js +15 -15
- package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
- package/lib/labs/VTimePicker/VTimePickerControls.js +24 -24
- package/lib/labs/VTimePicker/VTimePickerControls.js.map +1 -1
- package/lib/labs/VTreeview/VTreeviewChildren.js +2 -2
- package/lib/labs/VTreeview/VTreeviewChildren.js.map +1 -1
- package/lib/labs/VTreeview/VTreeviewGroup.js +2 -2
- package/lib/labs/VTreeview/VTreeviewGroup.js.map +1 -1
- package/lib/labs/VTreeview/VTreeviewItem.js +3 -3
- package/lib/labs/VTreeview/VTreeviewItem.js.map +1 -1
- package/package.json +2 -2
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
|
1
|
+
import { Fragment as _Fragment, createVNode as _createVNode, createElementVNode as _createElementVNode, mergeProps as _mergeProps } from "vue";
|
2
2
|
// Styles
|
3
3
|
import "./VSlider.css";
|
4
4
|
|
@@ -98,7 +98,7 @@ export const VSlider = genericComponent()({
|
|
98
98
|
"focused": isFocused.value
|
99
99
|
}), {
|
100
100
|
...slots,
|
101
|
-
prepend: hasPrepend ? slotProps =>
|
101
|
+
prepend: hasPrepend ? slotProps => _createElementVNode(_Fragment, null, [slots.label?.(slotProps) ?? (props.label ? _createVNode(VLabel, {
|
102
102
|
"id": slotProps.id.value,
|
103
103
|
"class": "v-slider__label",
|
104
104
|
"text": props.label
|
@@ -108,11 +108,11 @@ export const VSlider = genericComponent()({
|
|
108
108
|
id,
|
109
109
|
messagesId
|
110
110
|
} = _ref4;
|
111
|
-
return
|
111
|
+
return _createElementVNode("div", {
|
112
112
|
"class": "v-slider__container",
|
113
113
|
"onMousedown": !readonly.value ? onSliderMousedown : undefined,
|
114
114
|
"onTouchstartPassive": !readonly.value ? onSliderTouchstart : undefined
|
115
|
-
}, [
|
115
|
+
}, [_createElementVNode("input", {
|
116
116
|
"id": id.value,
|
117
117
|
"name": props.name || id.value,
|
118
118
|
"disabled": !!props.disabled,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VSlider.js","names":["VSliderThumb","VSliderTrack","makeVInputProps","VInput","VLabel","makeSliderProps","useSlider","useSteps","makeFocusProps","useFocus","useRtl","useProxiedModel","computed","ref","genericComponent","propsFactory","useRender","makeVSliderProps","modelValue","type","Number","String","default","VSlider","name","props","emits","value","v","start","end","setup","_ref","slots","emit","thumbContainerRef","rtlClasses","steps","model","undefined","roundValue","min","max","mousePressed","onSliderMousedown","onSliderTouchstart","trackContainerRef","position","hasLabels","readonly","onSliderStart","onSliderEnd","_ref2","roundedValue","onSliderMove","_ref3","getActiveThumb","$el","isFocused","focus","blur","trackStop","inputProps","filterProps","hasPrepend","label","prepend","_createVNode","_mergeProps","disabled","class","style","slotProps","_Fragment","id","_ref4","messagesId","elevation","ripple"],"sources":["../../../src/components/VSlider/VSlider.tsx"],"sourcesContent":["// Styles\nimport './VSlider.sass'\n\n// Components\nimport { VSliderThumb } from './VSliderThumb'\nimport { VSliderTrack } from './VSliderTrack'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\n\n// Composables\nimport { makeSliderProps, useSlider, useSteps } from './slider'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VSliderThumbSlots } from './VSliderThumb'\nimport type { VSliderTrackSlots } from './VSliderTrack'\nimport type { VInputSlot, VInputSlots } from '@/components/VInput/VInput'\n\nexport type VSliderSlots = VInputSlots & VSliderThumbSlots & VSliderTrackSlots & {\n label: VInputSlot\n}\n\nexport const makeVSliderProps = propsFactory({\n ...makeFocusProps(),\n ...makeSliderProps(),\n ...makeVInputProps(),\n\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n}, 'VSlider')\n\nexport const VSlider = genericComponent<VSliderSlots>()({\n name: 'VSlider',\n\n props: makeVSliderProps(),\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (v: number) => true,\n start: (value: number) => true,\n end: (value: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const thumbContainerRef = ref()\n const { rtlClasses } = useRtl()\n\n const steps = useSteps(props)\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n value => {\n return steps.roundValue(value == null ? steps.min.value : value)\n },\n )\n\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n readonly,\n } = useSlider({\n props,\n steps,\n onSliderStart: () => {\n emit('start', model.value)\n },\n onSliderEnd: ({ value }) => {\n const roundedValue = roundValue(value)\n model.value = roundedValue\n emit('end', roundedValue)\n },\n onSliderMove: ({ value }) => model.value = roundValue(value),\n getActiveThumb: () => thumbContainerRef.value?.$el,\n })\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStop = computed(() => position(model.value))\n\n useRender(() => {\n const inputProps = VInput.filterProps(props)\n const hasPrepend = !!(props.label || slots.label || slots.prepend)\n\n return (\n <VInput\n class={[\n 'v-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 rtlClasses.value,\n props.class,\n ]}\n style={ props.style }\n { ...inputProps }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n prepend: hasPrepend ? slotProps => (\n <>\n { slots.label?.(slotProps) ?? (\n props.label\n ? (\n <VLabel\n id={ slotProps.id.value }\n class=\"v-slider__label\"\n text={ props.label }\n />\n ) : undefined\n )}\n\n { slots.prepend?.(slotProps) }\n </>\n ) : undefined,\n default: ({ id, messagesId }) => (\n <div\n class=\"v-slider__container\"\n onMousedown={ !readonly.value ? onSliderMousedown : undefined }\n onTouchstartPassive={ !readonly.value ? onSliderTouchstart : undefined }\n >\n <input\n id={ id.value }\n name={ props.name || id.value }\n disabled={ !!props.disabled }\n readonly={ !!props.readonly }\n tabindex=\"-1\"\n value={ model.value }\n />\n\n <VSliderTrack\n ref={ trackContainerRef }\n start={ 0 }\n stop={ trackStop.value }\n >\n {{ 'tick-label': slots['tick-label'] }}\n </VSliderTrack>\n\n <VSliderThumb\n ref={ thumbContainerRef }\n aria-describedby={ messagesId.value }\n focused={ isFocused.value }\n min={ min.value }\n max={ max.value }\n modelValue={ model.value }\n onUpdate:modelValue={ v => (model.value = v) }\n position={ trackStop.value }\n elevation={ props.elevation }\n onFocus={ focus }\n onBlur={ blur }\n ripple={ props.ripple }\n name={ props.name }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n </div>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n\nexport type VSlider = InstanceType<typeof VSlider>\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VSlider.js","names":["VSliderThumb","VSliderTrack","makeVInputProps","VInput","VLabel","makeSliderProps","useSlider","useSteps","makeFocusProps","useFocus","useRtl","useProxiedModel","computed","ref","genericComponent","propsFactory","useRender","makeVSliderProps","modelValue","type","Number","String","default","VSlider","name","props","emits","value","v","start","end","setup","_ref","slots","emit","thumbContainerRef","rtlClasses","steps","model","undefined","roundValue","min","max","mousePressed","onSliderMousedown","onSliderTouchstart","trackContainerRef","position","hasLabels","readonly","onSliderStart","onSliderEnd","_ref2","roundedValue","onSliderMove","_ref3","getActiveThumb","$el","isFocused","focus","blur","trackStop","inputProps","filterProps","hasPrepend","label","prepend","_createVNode","_mergeProps","disabled","class","style","slotProps","_createElementVNode","_Fragment","id","_ref4","messagesId","elevation","ripple"],"sources":["../../../src/components/VSlider/VSlider.tsx"],"sourcesContent":["// Styles\nimport './VSlider.sass'\n\n// Components\nimport { VSliderThumb } from './VSliderThumb'\nimport { VSliderTrack } from './VSliderTrack'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\n\n// Composables\nimport { makeSliderProps, useSlider, useSteps } from './slider'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VSliderThumbSlots } from './VSliderThumb'\nimport type { VSliderTrackSlots } from './VSliderTrack'\nimport type { VInputSlot, VInputSlots } from '@/components/VInput/VInput'\n\nexport type VSliderSlots = VInputSlots & VSliderThumbSlots & VSliderTrackSlots & {\n label: VInputSlot\n}\n\nexport const makeVSliderProps = propsFactory({\n ...makeFocusProps(),\n ...makeSliderProps(),\n ...makeVInputProps(),\n\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n}, 'VSlider')\n\nexport const VSlider = genericComponent<VSliderSlots>()({\n name: 'VSlider',\n\n props: makeVSliderProps(),\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (v: number) => true,\n start: (value: number) => true,\n end: (value: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const thumbContainerRef = ref()\n const { rtlClasses } = useRtl()\n\n const steps = useSteps(props)\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n value => {\n return steps.roundValue(value == null ? steps.min.value : value)\n },\n )\n\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n readonly,\n } = useSlider({\n props,\n steps,\n onSliderStart: () => {\n emit('start', model.value)\n },\n onSliderEnd: ({ value }) => {\n const roundedValue = roundValue(value)\n model.value = roundedValue\n emit('end', roundedValue)\n },\n onSliderMove: ({ value }) => model.value = roundValue(value),\n getActiveThumb: () => thumbContainerRef.value?.$el,\n })\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStop = computed(() => position(model.value))\n\n useRender(() => {\n const inputProps = VInput.filterProps(props)\n const hasPrepend = !!(props.label || slots.label || slots.prepend)\n\n return (\n <VInput\n class={[\n 'v-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 rtlClasses.value,\n props.class,\n ]}\n style={ props.style }\n { ...inputProps }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n prepend: hasPrepend ? slotProps => (\n <>\n { slots.label?.(slotProps) ?? (\n props.label\n ? (\n <VLabel\n id={ slotProps.id.value }\n class=\"v-slider__label\"\n text={ props.label }\n />\n ) : undefined\n )}\n\n { slots.prepend?.(slotProps) }\n </>\n ) : undefined,\n default: ({ id, messagesId }) => (\n <div\n class=\"v-slider__container\"\n onMousedown={ !readonly.value ? onSliderMousedown : undefined }\n onTouchstartPassive={ !readonly.value ? onSliderTouchstart : undefined }\n >\n <input\n id={ id.value }\n name={ props.name || id.value }\n disabled={ !!props.disabled }\n readonly={ !!props.readonly }\n tabindex=\"-1\"\n value={ model.value }\n />\n\n <VSliderTrack\n ref={ trackContainerRef }\n start={ 0 }\n stop={ trackStop.value }\n >\n {{ 'tick-label': slots['tick-label'] }}\n </VSliderTrack>\n\n <VSliderThumb\n ref={ thumbContainerRef }\n aria-describedby={ messagesId.value }\n focused={ isFocused.value }\n min={ min.value }\n max={ max.value }\n modelValue={ model.value }\n onUpdate:modelValue={ v => (model.value = v) }\n position={ trackStop.value }\n elevation={ props.elevation }\n onFocus={ focus }\n onBlur={ blur }\n ripple={ props.ripple }\n name={ props.name }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n </div>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n\nexport type VSlider = InstanceType<typeof VSlider>\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, withDirectives as _withDirectives, vShow as _vShow, createVNode as _createVNode } from "vue";
|
2
2
|
// Styles
|
3
3
|
import "./VSliderThumb.css";
|
4
4
|
|
@@ -9,7 +9,7 @@ import { useTextColor } from "../../composables/color.js";
|
|
9
9
|
import { makeComponentProps } from "../../composables/component.js";
|
10
10
|
import { useElevation } from "../../composables/elevation.js";
|
11
11
|
import { useRtl } from "../../composables/locale.js"; // Directives
|
12
|
-
import
|
12
|
+
import vRipple from "../../directives/ripple/index.js"; // Utilities
|
13
13
|
import { computed, inject } from 'vue';
|
14
14
|
import { convertToUnit, genericComponent, keyValues, propsFactory, useRender } from "../../util/index.js"; // Types
|
15
15
|
export const makeVSliderThumbProps = propsFactory({
|
@@ -40,7 +40,7 @@ export const makeVSliderThumbProps = propsFactory({
|
|
40
40
|
export const VSliderThumb = genericComponent()({
|
41
41
|
name: 'VSliderThumb',
|
42
42
|
directives: {
|
43
|
-
|
43
|
+
vRipple
|
44
44
|
},
|
45
45
|
props: makeVSliderThumbProps(),
|
46
46
|
emits: {
|
@@ -120,15 +120,15 @@ export const VSliderThumb = genericComponent()({
|
|
120
120
|
}
|
121
121
|
useRender(() => {
|
122
122
|
const positionPercentage = convertToUnit(indexFromEnd.value ? 100 - props.position : props.position, '%');
|
123
|
-
return
|
124
|
-
"class": ['v-slider-thumb', {
|
123
|
+
return _createElementVNode("div", {
|
124
|
+
"class": _normalizeClass(['v-slider-thumb', {
|
125
125
|
'v-slider-thumb--focused': props.focused,
|
126
126
|
'v-slider-thumb--pressed': props.focused && mousePressed.value
|
127
|
-
}, props.class, rtlClasses.value],
|
128
|
-
"style": [{
|
127
|
+
}, props.class, rtlClasses.value]),
|
128
|
+
"style": _normalizeStyle([{
|
129
129
|
'--v-slider-thumb-position': positionPercentage,
|
130
130
|
'--v-slider-thumb-size': convertToUnit(thumbSize.value)
|
131
|
-
}, props.style],
|
131
|
+
}, props.style]),
|
132
132
|
"role": "slider",
|
133
133
|
"tabindex": disabled.value ? -1 : 0,
|
134
134
|
"aria-label": props.name,
|
@@ -138,25 +138,25 @@ export const VSliderThumb = genericComponent()({
|
|
138
138
|
"aria-readonly": !!readonly.value,
|
139
139
|
"aria-orientation": direction.value,
|
140
140
|
"onKeydown": !readonly.value ? onKeydown : undefined
|
141
|
-
}, [
|
142
|
-
"class": ['v-slider-thumb__surface', textColorClasses.value, elevationClasses.value],
|
143
|
-
"style": {
|
141
|
+
}, [_createElementVNode("div", {
|
142
|
+
"class": _normalizeClass(['v-slider-thumb__surface', textColorClasses.value, elevationClasses.value]),
|
143
|
+
"style": _normalizeStyle({
|
144
144
|
...textColorStyles.value
|
145
|
-
}
|
146
|
-
}, null), _withDirectives(
|
147
|
-
"class": ['v-slider-thumb__ripple', textColorClasses.value],
|
148
|
-
"style": textColorStyles.value
|
149
|
-
}, null), [[
|
145
|
+
})
|
146
|
+
}, null), _withDirectives(_createElementVNode("div", {
|
147
|
+
"class": _normalizeClass(['v-slider-thumb__ripple', textColorClasses.value]),
|
148
|
+
"style": _normalizeStyle(textColorStyles.value)
|
149
|
+
}, null), [[vRipple, props.ripple, null, {
|
150
150
|
circle: true,
|
151
151
|
center: true
|
152
152
|
}]]), _createVNode(VScaleTransition, {
|
153
153
|
"origin": "bottom center"
|
154
154
|
}, {
|
155
|
-
default: () => [_withDirectives(
|
155
|
+
default: () => [_withDirectives(_createElementVNode("div", {
|
156
156
|
"class": "v-slider-thumb__label-container"
|
157
|
-
}, [
|
157
|
+
}, [_createElementVNode("div", {
|
158
158
|
"class": ['v-slider-thumb__label']
|
159
|
-
}, [
|
159
|
+
}, [_createElementVNode("div", null, [slots['thumb-label']?.({
|
160
160
|
modelValue: props.modelValue
|
161
161
|
}) ?? props.modelValue.toFixed(step.value ? decimals.value : 1)])])]), [[_vShow, thumbLabel.value && props.focused || thumbLabel.value === 'always']])]
|
162
162
|
})]);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VSliderThumb.js","names":["VSliderSymbol","VScaleTransition","useTextColor","makeComponentProps","useElevation","useRtl","Ripple","computed","inject","convertToUnit","genericComponent","keyValues","propsFactory","useRender","makeVSliderThumbProps","focused","Boolean","max","type","Number","required","min","modelValue","position","ripple","Object","default","name","String","VSliderThumb","directives","props","emits","v","setup","_ref","slots","emit","slider","isRtl","rtlClasses","Error","thumbColor","step","disabled","thumbSize","thumbLabel","direction","isReversed","vertical","readonly","elevation","mousePressed","decimals","indexFromEnd","elevationProps","value","undefined","elevationClasses","textColorClasses","textColorStyles","pageup","pagedown","end","home","left","right","down","up","relevantKeys","multipliers","parseKeydown","e","includes","key","preventDefault","_step","steps","increase","multiplier","shiftKey","ctrlKey","Math","onKeydown","newValue","positionPercentage","_createVNode","class","style","_withDirectives","_resolveDirective","circle","center","toFixed","_vShow"],"sources":["../../../src/components/VSlider/VSliderThumb.tsx"],"sourcesContent":["// Styles\nimport './VSliderThumb.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\nimport { VScaleTransition } from '../transitions'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useElevation } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\n\n// Directives\nimport Ripple from '@/directives/ripple'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, genericComponent, keyValues, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type VSliderThumbSlots = {\n 'thumb-label': { modelValue: number }\n}\n\nexport const makeVSliderThumbProps = propsFactory({\n focused: Boolean,\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n modelValue: {\n type: Number,\n required: true,\n },\n position: {\n type: Number,\n required: true,\n },\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n name: String,\n\n ...makeComponentProps(),\n}, 'VSliderThumb')\n\nexport const VSliderThumb = genericComponent<VSliderThumbSlots>()({\n name: 'VSliderThumb',\n\n directives: { Ripple },\n\n props: makeVSliderThumbProps(),\n\n emits: {\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const slider = inject(VSliderSymbol)\n const { isRtl, rtlClasses } = useRtl()\n if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider')\n\n const {\n thumbColor,\n step,\n disabled,\n thumbSize,\n thumbLabel,\n direction,\n isReversed,\n vertical,\n readonly,\n elevation,\n mousePressed,\n decimals,\n indexFromEnd,\n } = slider\n\n const elevationProps = computed(() => !disabled.value ? elevation.value : undefined)\n const { elevationClasses } = useElevation(elevationProps)\n const { textColorClasses, textColorStyles } = useTextColor(thumbColor)\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyValues\n const relevantKeys = [pageup, pagedown, end, home, left, right, down, up]\n\n const multipliers = computed(() => {\n if (step.value) return [1, 2, 3]\n else return [1, 5, 10]\n })\n\n function parseKeydown (e: KeyboardEvent, value: number) {\n if (!relevantKeys.includes(e.key)) return\n\n e.preventDefault()\n\n const _step = step.value || 0.1\n const steps = (props.max - props.min) / _step\n if ([left, right, down, up].includes(e.key)) {\n const increase = vertical.value\n ? [isRtl.value ? left : right, isReversed.value ? down : up]\n : indexFromEnd.value !== isRtl.value ? [left, up] : [right, up]\n const direction = increase.includes(e.key) ? 1 : -1\n const multiplier = e.shiftKey ? 2 : (e.ctrlKey ? 1 : 0)\n\n value = value + (direction * _step * multipliers.value[multiplier])\n } else if (e.key === home) {\n value = props.min\n } else if (e.key === end) {\n value = props.max\n } else {\n const direction = e.key === pagedown ? 1 : -1\n value = value - (direction * _step * (steps > 100 ? steps / 10 : 10))\n }\n\n return Math.max(props.min, Math.min(props.max, value))\n }\n\n function onKeydown (e: KeyboardEvent) {\n const newValue = parseKeydown(e, props.modelValue)\n\n newValue != null && emit('update:modelValue', newValue)\n }\n\n useRender(() => {\n const positionPercentage = convertToUnit(indexFromEnd.value ? 100 - props.position : props.position, '%')\n\n return (\n <div\n class={[\n 'v-slider-thumb',\n {\n 'v-slider-thumb--focused': props.focused,\n 'v-slider-thumb--pressed': props.focused && mousePressed.value,\n },\n props.class,\n rtlClasses.value,\n ]}\n style={[\n {\n '--v-slider-thumb-position': positionPercentage,\n '--v-slider-thumb-size': convertToUnit(thumbSize.value),\n },\n props.style,\n ]}\n role=\"slider\"\n tabindex={ disabled.value ? -1 : 0 }\n aria-label={ props.name }\n aria-valuemin={ props.min }\n aria-valuemax={ props.max }\n aria-valuenow={ props.modelValue }\n aria-readonly={ !!readonly.value }\n aria-orientation={ direction.value }\n onKeydown={ !readonly.value ? onKeydown : undefined }\n >\n <div\n class={[\n 'v-slider-thumb__surface',\n textColorClasses.value,\n elevationClasses.value,\n ]}\n style={{\n ...textColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-thumb__ripple',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n v-ripple={[props.ripple, null, ['circle', 'center']]}\n />\n <VScaleTransition origin=\"bottom center\">\n <div\n class=\"v-slider-thumb__label-container\"\n v-show={ (thumbLabel.value && props.focused) || thumbLabel.value === 'always' }\n >\n <div\n class={[\n 'v-slider-thumb__label',\n ]}\n >\n <div>\n { slots['thumb-label']?.({ modelValue: props.modelValue }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1) }\n </div>\n </div>\n </div>\n </VScaleTransition>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSliderThumb = InstanceType<typeof VSliderThumb>\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VSliderThumb.js","names":["VSliderSymbol","VScaleTransition","useTextColor","makeComponentProps","useElevation","useRtl","vRipple","computed","inject","convertToUnit","genericComponent","keyValues","propsFactory","useRender","makeVSliderThumbProps","focused","Boolean","max","type","Number","required","min","modelValue","position","ripple","Object","default","name","String","VSliderThumb","directives","props","emits","v","setup","_ref","slots","emit","slider","isRtl","rtlClasses","Error","thumbColor","step","disabled","thumbSize","thumbLabel","direction","isReversed","vertical","readonly","elevation","mousePressed","decimals","indexFromEnd","elevationProps","value","undefined","elevationClasses","textColorClasses","textColorStyles","pageup","pagedown","end","home","left","right","down","up","relevantKeys","multipliers","parseKeydown","e","includes","key","preventDefault","_step","steps","increase","multiplier","shiftKey","ctrlKey","Math","onKeydown","newValue","positionPercentage","_createElementVNode","_normalizeClass","class","_normalizeStyle","style","_withDirectives","circle","center","_createVNode","toFixed","_vShow"],"sources":["../../../src/components/VSlider/VSliderThumb.tsx"],"sourcesContent":["// Styles\nimport './VSliderThumb.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\nimport { VScaleTransition } from '../transitions'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useElevation } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\n\n// Directives\nimport vRipple from '@/directives/ripple'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, genericComponent, keyValues, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type VSliderThumbSlots = {\n 'thumb-label': { modelValue: number }\n}\n\nexport const makeVSliderThumbProps = propsFactory({\n focused: Boolean,\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n modelValue: {\n type: Number,\n required: true,\n },\n position: {\n type: Number,\n required: true,\n },\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n name: String,\n\n ...makeComponentProps(),\n}, 'VSliderThumb')\n\nexport const VSliderThumb = genericComponent<VSliderThumbSlots>()({\n name: 'VSliderThumb',\n\n directives: { vRipple },\n\n props: makeVSliderThumbProps(),\n\n emits: {\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const slider = inject(VSliderSymbol)\n const { isRtl, rtlClasses } = useRtl()\n if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider')\n\n const {\n thumbColor,\n step,\n disabled,\n thumbSize,\n thumbLabel,\n direction,\n isReversed,\n vertical,\n readonly,\n elevation,\n mousePressed,\n decimals,\n indexFromEnd,\n } = slider\n\n const elevationProps = computed(() => !disabled.value ? elevation.value : undefined)\n const { elevationClasses } = useElevation(elevationProps)\n const { textColorClasses, textColorStyles } = useTextColor(thumbColor)\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyValues\n const relevantKeys = [pageup, pagedown, end, home, left, right, down, up]\n\n const multipliers = computed(() => {\n if (step.value) return [1, 2, 3]\n else return [1, 5, 10]\n })\n\n function parseKeydown (e: KeyboardEvent, value: number) {\n if (!relevantKeys.includes(e.key)) return\n\n e.preventDefault()\n\n const _step = step.value || 0.1\n const steps = (props.max - props.min) / _step\n if ([left, right, down, up].includes(e.key)) {\n const increase = vertical.value\n ? [isRtl.value ? left : right, isReversed.value ? down : up]\n : indexFromEnd.value !== isRtl.value ? [left, up] : [right, up]\n const direction = increase.includes(e.key) ? 1 : -1\n const multiplier = e.shiftKey ? 2 : (e.ctrlKey ? 1 : 0)\n\n value = value + (direction * _step * multipliers.value[multiplier])\n } else if (e.key === home) {\n value = props.min\n } else if (e.key === end) {\n value = props.max\n } else {\n const direction = e.key === pagedown ? 1 : -1\n value = value - (direction * _step * (steps > 100 ? steps / 10 : 10))\n }\n\n return Math.max(props.min, Math.min(props.max, value))\n }\n\n function onKeydown (e: KeyboardEvent) {\n const newValue = parseKeydown(e, props.modelValue)\n\n newValue != null && emit('update:modelValue', newValue)\n }\n\n useRender(() => {\n const positionPercentage = convertToUnit(indexFromEnd.value ? 100 - props.position : props.position, '%')\n\n return (\n <div\n class={[\n 'v-slider-thumb',\n {\n 'v-slider-thumb--focused': props.focused,\n 'v-slider-thumb--pressed': props.focused && mousePressed.value,\n },\n props.class,\n rtlClasses.value,\n ]}\n style={[\n {\n '--v-slider-thumb-position': positionPercentage,\n '--v-slider-thumb-size': convertToUnit(thumbSize.value),\n },\n props.style,\n ]}\n role=\"slider\"\n tabindex={ disabled.value ? -1 : 0 }\n aria-label={ props.name }\n aria-valuemin={ props.min }\n aria-valuemax={ props.max }\n aria-valuenow={ props.modelValue }\n aria-readonly={ !!readonly.value }\n aria-orientation={ direction.value }\n onKeydown={ !readonly.value ? onKeydown : undefined }\n >\n <div\n class={[\n 'v-slider-thumb__surface',\n textColorClasses.value,\n elevationClasses.value,\n ]}\n style={{\n ...textColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-thumb__ripple',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n v-ripple={[props.ripple, null, ['circle', 'center']]}\n />\n <VScaleTransition origin=\"bottom center\">\n <div\n class=\"v-slider-thumb__label-container\"\n v-show={ (thumbLabel.value && props.focused) || thumbLabel.value === 'always' }\n >\n <div\n class={[\n 'v-slider-thumb__label',\n ]}\n >\n <div>\n { slots['thumb-label']?.({ modelValue: props.modelValue }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1) }\n </div>\n </div>\n </div>\n </VScaleTransition>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSliderThumb = InstanceType<typeof VSliderThumb>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,aAAa;AAAA,SACbC,gBAAgB,mCAEzB;AAAA,SACSC,YAAY;AAAA,SACZC,kBAAkB;AAAA,SAClBC,YAAY;AAAA,SACZC,MAAM,uCAEf;AAAA,OACOC,OAAO,0CAEd;AACA,SAASC,QAAQ,EAAEC,MAAM,QAAQ,KAAK;AAAA,SAC7BC,aAAa,EAAEC,gBAAgB,EAAEC,SAAS,EAAEC,YAAY,EAAEC,SAAS,+BAE5E;AAQA,OAAO,MAAMC,qBAAqB,GAAGF,YAAY,CAAC;EAChDG,OAAO,EAAEC,OAAO;EAChBC,GAAG,EAAE;IACHC,IAAI,EAAEC,MAAM;IACZC,QAAQ,EAAE;EACZ,CAAC;EACDC,GAAG,EAAE;IACHH,IAAI,EAAEC,MAAM;IACZC,QAAQ,EAAE;EACZ,CAAC;EACDE,UAAU,EAAE;IACVJ,IAAI,EAAEC,MAAM;IACZC,QAAQ,EAAE;EACZ,CAAC;EACDG,QAAQ,EAAE;IACRL,IAAI,EAAEC,MAAM;IACZC,QAAQ,EAAE;EACZ,CAAC;EACDI,MAAM,EAAE;IACNN,IAAI,EAAE,CAACF,OAAO,EAAES,MAAM,CAA8C;IACpEC,OAAO,EAAE;EACX,CAAC;EACDC,IAAI,EAAEC,MAAM;EAEZ,GAAGzB,kBAAkB,CAAC;AACxB,CAAC,EAAE,cAAc,CAAC;AAElB,OAAO,MAAM0B,YAAY,GAAGnB,gBAAgB,CAAoB,CAAC,CAAC;EAChEiB,IAAI,EAAE,cAAc;EAEpBG,UAAU,EAAE;IAAExB;EAAQ,CAAC;EAEvByB,KAAK,EAAEjB,qBAAqB,CAAC,CAAC;EAE9BkB,KAAK,EAAE;IACL,mBAAmB,EAAGC,CAAS,IAAK;EACtC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAmB;IAAA,IAAjB;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAAF,IAAA;IAC3B,MAAMG,MAAM,GAAG9B,MAAM,CAACR,aAAa,CAAC;IACpC,MAAM;MAAEuC,KAAK;MAAEC;IAAW,CAAC,GAAGnC,MAAM,CAAC,CAAC;IACtC,IAAI,CAACiC,MAAM,EAAE,MAAM,IAAIG,KAAK,CAAC,yEAAyE,CAAC;IAEvG,MAAM;MACJC,UAAU;MACVC,IAAI;MACJC,QAAQ;MACRC,SAAS;MACTC,UAAU;MACVC,SAAS;MACTC,UAAU;MACVC,QAAQ;MACRC,QAAQ;MACRC,SAAS;MACTC,YAAY;MACZC,QAAQ;MACRC;IACF,CAAC,GAAGhB,MAAM;IAEV,MAAMiB,cAAc,GAAGhD,QAAQ,CAAC,MAAM,CAACqC,QAAQ,CAACY,KAAK,GAAGL,SAAS,CAACK,KAAK,GAAGC,SAAS,CAAC;IACpF,MAAM;MAAEC;IAAiB,CAAC,GAAGtD,YAAY,CAACmD,cAAc,CAAC;IACzD,MAAM;MAAEI,gBAAgB;MAAEC;IAAgB,CAAC,GAAG1D,YAAY,CAACwC,UAAU,CAAC;IAEtE,MAAM;MAAEmB,MAAM;MAAEC,QAAQ;MAAEC,GAAG;MAAEC,IAAI;MAAEC,IAAI;MAAEC,KAAK;MAAEC,IAAI;MAAEC;IAAG,CAAC,GAAGzD,SAAS;IACxE,MAAM0D,YAAY,GAAG,CAACR,MAAM,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,IAAI,EAAEC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,EAAE,CAAC;IAEzE,MAAME,WAAW,GAAG/D,QAAQ,CAAC,MAAM;MACjC,IAAIoC,IAAI,CAACa,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAC3B,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;IACxB,CAAC,CAAC;IAEF,SAASe,YAAYA,CAAEC,CAAgB,EAAEhB,KAAa,EAAE;MACtD,IAAI,CAACa,YAAY,CAACI,QAAQ,CAACD,CAAC,CAACE,GAAG,CAAC,EAAE;MAEnCF,CAAC,CAACG,cAAc,CAAC,CAAC;MAElB,MAAMC,KAAK,GAAGjC,IAAI,CAACa,KAAK,IAAI,GAAG;MAC/B,MAAMqB,KAAK,GAAG,CAAC9C,KAAK,CAACd,GAAG,GAAGc,KAAK,CAACV,GAAG,IAAIuD,KAAK;MAC7C,IAAI,CAACX,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,EAAE,CAAC,CAACK,QAAQ,CAACD,CAAC,CAACE,GAAG,CAAC,EAAE;QAC3C,MAAMI,QAAQ,GAAG7B,QAAQ,CAACO,KAAK,GAC3B,CAACjB,KAAK,CAACiB,KAAK,GAAGS,IAAI,GAAGC,KAAK,EAAElB,UAAU,CAACQ,KAAK,GAAGW,IAAI,GAAGC,EAAE,CAAC,GAC1Dd,YAAY,CAACE,KAAK,KAAKjB,KAAK,CAACiB,KAAK,GAAG,CAACS,IAAI,EAAEG,EAAE,CAAC,GAAG,CAACF,KAAK,EAAEE,EAAE,CAAC;QACjE,MAAMrB,SAAS,GAAG+B,QAAQ,CAACL,QAAQ,CAACD,CAAC,CAACE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnD,MAAMK,UAAU,GAAGP,CAAC,CAACQ,QAAQ,GAAG,CAAC,GAAIR,CAAC,CAACS,OAAO,GAAG,CAAC,GAAG,CAAE;QAEvDzB,KAAK,GAAGA,KAAK,GAAIT,SAAS,GAAG6B,KAAK,GAAGN,WAAW,CAACd,KAAK,CAACuB,UAAU,CAAE;MACrE,CAAC,MAAM,IAAIP,CAAC,CAACE,GAAG,KAAKV,IAAI,EAAE;QACzBR,KAAK,GAAGzB,KAAK,CAACV,GAAG;MACnB,CAAC,MAAM,IAAImD,CAAC,CAACE,GAAG,KAAKX,GAAG,EAAE;QACxBP,KAAK,GAAGzB,KAAK,CAACd,GAAG;MACnB,CAAC,MAAM;QACL,MAAM8B,SAAS,GAAGyB,CAAC,CAACE,GAAG,KAAKZ,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7CN,KAAK,GAAGA,KAAK,GAAIT,SAAS,GAAG6B,KAAK,IAAIC,KAAK,GAAG,GAAG,GAAGA,KAAK,GAAG,EAAE,GAAG,EAAE,CAAE;MACvE;MAEA,OAAOK,IAAI,CAACjE,GAAG,CAACc,KAAK,CAACV,GAAG,EAAE6D,IAAI,CAAC7D,GAAG,CAACU,KAAK,CAACd,GAAG,EAAEuC,KAAK,CAAC,CAAC;IACxD;IAEA,SAAS2B,SAASA,CAAEX,CAAgB,EAAE;MACpC,MAAMY,QAAQ,GAAGb,YAAY,CAACC,CAAC,EAAEzC,KAAK,CAACT,UAAU,CAAC;MAElD8D,QAAQ,IAAI,IAAI,IAAI/C,IAAI,CAAC,mBAAmB,EAAE+C,QAAQ,CAAC;IACzD;IAEAvE,SAAS,CAAC,MAAM;MACd,MAAMwE,kBAAkB,GAAG5E,aAAa,CAAC6C,YAAY,CAACE,KAAK,GAAG,GAAG,GAAGzB,KAAK,CAACR,QAAQ,GAAGQ,KAAK,CAACR,QAAQ,EAAE,GAAG,CAAC;MAEzG,OAAA+D,mBAAA;QAAA,SAAAC,eAAA,CAEW,CACL,gBAAgB,EAChB;UACE,yBAAyB,EAAExD,KAAK,CAAChB,OAAO;UACxC,yBAAyB,EAAEgB,KAAK,CAAChB,OAAO,IAAIqC,YAAY,CAACI;QAC3D,CAAC,EACDzB,KAAK,CAACyD,KAAK,EACXhD,UAAU,CAACgB,KAAK,CACjB;QAAA,SAAAiC,eAAA,CACM,CACL;UACE,2BAA2B,EAAEJ,kBAAkB;UAC/C,uBAAuB,EAAE5E,aAAa,CAACoC,SAAS,CAACW,KAAK;QACxD,CAAC,EACDzB,KAAK,CAAC2D,KAAK,CACZ;QAAA;QAAA,YAEU9C,QAAQ,CAACY,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;QAAA,cACrBzB,KAAK,CAACJ,IAAI;QAAA,iBACPI,KAAK,CAACV,GAAG;QAAA,iBACTU,KAAK,CAACd,GAAG;QAAA,iBACTc,KAAK,CAACT,UAAU;QAAA,iBAChB,CAAC,CAAC4B,QAAQ,CAACM,KAAK;QAAA,oBACbT,SAAS,CAACS,KAAK;QAAA,aACtB,CAACN,QAAQ,CAACM,KAAK,GAAG2B,SAAS,GAAG1B;MAAS,IAAA6B,mBAAA;QAAA,SAAAC,eAAA,CAG1C,CACL,yBAAyB,EACzB5B,gBAAgB,CAACH,KAAK,EACtBE,gBAAgB,CAACF,KAAK,CACvB;QAAA,SAAAiC,eAAA,CACM;UACL,GAAG7B,eAAe,CAACJ;QACrB,CAAC;MAAA,UAAAmC,eAAA,CAAAL,mBAAA;QAAA,SAAAC,eAAA,CAGM,CACL,wBAAwB,EACxB5B,gBAAgB,CAACH,KAAK,CACvB;QAAA,SAAAiC,eAAA,CACO7B,eAAe,CAACJ,KAAK;MAAA,YAAAlD,OAAA,EAClByB,KAAK,CAACP,MAAM,EAAE,IAAI;QAAAoE,MAAA;QAAAC,MAAA;MAAA,MAAAC,YAAA,CAAA7F,gBAAA;QAAA;MAAA;QAAAyB,OAAA,EAAAA,CAAA,MAAAiE,eAAA,CAAAL,mBAAA;UAAA;QAAA,IAAAA,mBAAA;UAAA,SAQlB,CACL,uBAAuB;QACxB,IAAAA,mBAAA,eAGGlD,KAAK,CAAC,aAAa,CAAC,GAAG;UAAEd,UAAU,EAAES,KAAK,CAACT;QAAW,CAAC,CAAC,IAAIS,KAAK,CAACT,UAAU,CAACyE,OAAO,CAACpD,IAAI,CAACa,KAAK,GAAGH,QAAQ,CAACG,KAAK,GAAG,CAAC,CAAC,UAAAwC,MAAA,EARjHlD,UAAU,CAACU,KAAK,IAAIzB,KAAK,CAAChB,OAAO,IAAK+B,UAAU,CAACU,KAAK,KAAK,QAAQ;MAAA;IAevF,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from "vue";
|
2
2
|
// Styles
|
3
3
|
import "./VSliderTrack.css";
|
4
4
|
|
@@ -75,17 +75,17 @@ export const VSliderTrack = genericComponent()({
|
|
75
75
|
const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value;
|
76
76
|
return ticks.map((tick, index) => {
|
77
77
|
const directionValue = tick.value !== min.value && tick.value !== max.value ? convertToUnit(tick.position, '%') : undefined;
|
78
|
-
return
|
78
|
+
return _createElementVNode("div", {
|
79
79
|
"key": tick.value,
|
80
|
-
"class": ['v-slider-track__tick', {
|
80
|
+
"class": _normalizeClass(['v-slider-track__tick', {
|
81
81
|
'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop,
|
82
82
|
'v-slider-track__tick--first': tick.value === min.value,
|
83
83
|
'v-slider-track__tick--last': tick.value === max.value
|
84
|
-
}],
|
85
|
-
"style": {
|
84
|
+
}]),
|
85
|
+
"style": _normalizeStyle({
|
86
86
|
[startDir.value]: directionValue
|
87
|
-
}
|
88
|
-
}, [(tick.label || slots['tick-label']) &&
|
87
|
+
})
|
88
|
+
}, [(tick.label || slots['tick-label']) && _createElementVNode("div", {
|
89
89
|
"class": "v-slider-track__tick-label"
|
90
90
|
}, [slots['tick-label']?.({
|
91
91
|
tick,
|
@@ -94,30 +94,30 @@ export const VSliderTrack = genericComponent()({
|
|
94
94
|
});
|
95
95
|
});
|
96
96
|
useRender(() => {
|
97
|
-
return
|
98
|
-
"class": ['v-slider-track', roundedClasses.value, props.class],
|
99
|
-
"style": [{
|
97
|
+
return _createElementVNode("div", {
|
98
|
+
"class": _normalizeClass(['v-slider-track', roundedClasses.value, props.class]),
|
99
|
+
"style": _normalizeStyle([{
|
100
100
|
'--v-slider-track-size': convertToUnit(trackSize.value),
|
101
101
|
'--v-slider-tick-size': convertToUnit(tickSize.value)
|
102
|
-
}, props.style]
|
103
|
-
}, [
|
104
|
-
"class": ['v-slider-track__background', trackColorClasses.value, {
|
102
|
+
}, props.style])
|
103
|
+
}, [_createElementVNode("div", {
|
104
|
+
"class": _normalizeClass(['v-slider-track__background', trackColorClasses.value, {
|
105
105
|
'v-slider-track__background--opacity': !!color.value || !trackFillColor.value
|
106
|
-
}],
|
107
|
-
"style": {
|
106
|
+
}]),
|
107
|
+
"style": _normalizeStyle({
|
108
108
|
...backgroundStyles.value,
|
109
109
|
...trackColorStyles.value
|
110
|
-
}
|
111
|
-
}, null),
|
112
|
-
"class": ['v-slider-track__fill', trackFillColorClasses.value],
|
113
|
-
"style": {
|
110
|
+
})
|
111
|
+
}, null), _createElementVNode("div", {
|
112
|
+
"class": _normalizeClass(['v-slider-track__fill', trackFillColorClasses.value]),
|
113
|
+
"style": _normalizeStyle({
|
114
114
|
...trackFillStyles.value,
|
115
115
|
...trackFillColorStyles.value
|
116
|
-
}
|
117
|
-
}, null), showTicks.value &&
|
118
|
-
"class": ['v-slider-track__ticks', {
|
116
|
+
})
|
117
|
+
}, null), showTicks.value && _createElementVNode("div", {
|
118
|
+
"class": _normalizeClass(['v-slider-track__ticks', {
|
119
119
|
'v-slider-track__ticks--always-show': showTicks.value === 'always'
|
120
|
-
}]
|
120
|
+
}])
|
121
121
|
}, [computedTicks.value])]);
|
122
122
|
});
|
123
123
|
return {};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VSliderTrack.js","names":["VSliderSymbol","useBackgroundColor","makeComponentProps","useRounded","computed","inject","convertToUnit","genericComponent","propsFactory","useRender","makeVSliderTrackProps","start","type","Number","required","stop","VSliderTrack","name","props","emits","setup","_ref","slots","slider","Error","color","parsedTicks","rounded","showTicks","tickSize","trackColor","trackFillColor","trackSize","vertical","min","max","indexFromEnd","roundedClasses","backgroundColorClasses","trackFillColorClasses","backgroundColorStyles","trackFillColorStyles","trackColorClasses","trackColorStyles","startDir","value","endDir","backgroundStyles","trackFillWidth","trackFillStyles","computedTicks","ticks","slice","reverse","map","tick","index","directionValue","position","undefined","
|
1
|
+
{"version":3,"file":"VSliderTrack.js","names":["VSliderSymbol","useBackgroundColor","makeComponentProps","useRounded","computed","inject","convertToUnit","genericComponent","propsFactory","useRender","makeVSliderTrackProps","start","type","Number","required","stop","VSliderTrack","name","props","emits","setup","_ref","slots","slider","Error","color","parsedTicks","rounded","showTicks","tickSize","trackColor","trackFillColor","trackSize","vertical","min","max","indexFromEnd","roundedClasses","backgroundColorClasses","trackFillColorClasses","backgroundColorStyles","trackFillColorStyles","trackColorClasses","trackColorStyles","startDir","value","endDir","backgroundStyles","trackFillWidth","trackFillStyles","computedTicks","ticks","slice","reverse","map","tick","index","directionValue","position","undefined","_createElementVNode","_normalizeClass","_normalizeStyle","label","class","style"],"sources":["../../../src/components/VSlider/VSliderTrack.tsx"],"sourcesContent":["// Styles\nimport './VSliderTrack.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useRounded } from '@/composables/rounded'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Tick } from './slider'\n\nexport type VSliderTrackSlots = {\n 'tick-label': { tick: Tick, index: number }\n}\n\nexport const makeVSliderTrackProps = propsFactory({\n start: {\n type: Number,\n required: true,\n },\n stop: {\n type: Number,\n required: true,\n },\n\n ...makeComponentProps(),\n}, 'VSliderTrack')\n\nexport const VSliderTrack = genericComponent<VSliderTrackSlots>()({\n name: 'VSliderTrack',\n\n props: makeVSliderTrackProps(),\n\n emits: {},\n\n setup (props, { slots }) {\n const slider = inject(VSliderSymbol)\n\n if (!slider) throw new Error('[Vuetify] v-slider-track must be inside v-slider or v-range-slider')\n\n const {\n color,\n parsedTicks,\n rounded,\n showTicks,\n tickSize,\n trackColor,\n trackFillColor,\n trackSize,\n vertical,\n min,\n max,\n indexFromEnd,\n } = slider\n\n const { roundedClasses } = useRounded(rounded)\n\n const {\n backgroundColorClasses: trackFillColorClasses,\n backgroundColorStyles: trackFillColorStyles,\n } = useBackgroundColor(trackFillColor)\n\n const {\n backgroundColorClasses: trackColorClasses,\n backgroundColorStyles: trackColorStyles,\n } = useBackgroundColor(trackColor)\n\n const startDir = computed(() => `inset-${vertical.value ? 'block' : 'inline'}-${indexFromEnd.value ? 'end' : 'start'}`)\n const endDir = computed(() => vertical.value ? 'height' : 'width')\n\n const backgroundStyles = computed(() => {\n return {\n [startDir.value]: '0%',\n [endDir.value]: '100%',\n }\n })\n\n const trackFillWidth = computed(() => props.stop - props.start)\n\n const trackFillStyles = computed(() => {\n return {\n [startDir.value]: convertToUnit(props.start, '%'),\n [endDir.value]: convertToUnit(trackFillWidth.value, '%'),\n }\n })\n\n const computedTicks = computed(() => {\n if (!showTicks.value) return []\n\n const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value\n\n return ticks.map((tick, index) => {\n const directionValue = tick.value !== min.value && tick.value !== max.value ? convertToUnit(tick.position, '%') : undefined\n\n return (\n <div\n key={ tick.value }\n class={[\n 'v-slider-track__tick',\n {\n 'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop,\n 'v-slider-track__tick--first': tick.value === min.value,\n 'v-slider-track__tick--last': tick.value === max.value,\n },\n ]}\n style={{ [startDir.value]: directionValue }}\n >\n {\n (tick.label || slots['tick-label']) && (\n <div class=\"v-slider-track__tick-label\">\n { slots['tick-label']?.({ tick, index }) ?? tick.label }\n </div>\n )\n }\n </div>\n )\n })\n })\n\n useRender(() => {\n return (\n <div\n class={[\n 'v-slider-track',\n roundedClasses.value,\n props.class,\n ]}\n style={[\n {\n '--v-slider-track-size': convertToUnit(trackSize.value),\n '--v-slider-tick-size': convertToUnit(tickSize.value),\n },\n props.style,\n ]}\n >\n <div\n class={[\n 'v-slider-track__background',\n trackColorClasses.value,\n {\n 'v-slider-track__background--opacity': !!color.value || !trackFillColor.value,\n },\n ]}\n style={{\n ...backgroundStyles.value,\n ...trackColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-track__fill',\n trackFillColorClasses.value,\n ]}\n style={{\n ...trackFillStyles.value,\n ...trackFillColorStyles.value,\n }}\n />\n\n { showTicks.value && (\n <div\n class={[\n 'v-slider-track__ticks',\n {\n 'v-slider-track__ticks--always-show': showTicks.value === 'always',\n },\n ]}\n >\n { computedTicks.value }\n </div>\n )}\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSliderTrack = InstanceType<typeof VSliderTrack>\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
|
1
|
+
import { createVNode as _createVNode, createElementVNode as _createElementVNode, mergeProps as _mergeProps } from "vue";
|
2
2
|
// Styles
|
3
3
|
import "./VSnackbar.css";
|
4
4
|
|
@@ -189,7 +189,7 @@ export const VSnackbar = genericComponent()({
|
|
189
189
|
"onTouchend": onTouchend,
|
190
190
|
"onAfterLeave": onAfterLeave
|
191
191
|
}, scopeId), {
|
192
|
-
default: () => [genOverlays(false, 'v-snackbar'), props.timer && !isHovering.value &&
|
192
|
+
default: () => [genOverlays(false, 'v-snackbar'), props.timer && !isHovering.value && _createElementVNode("div", {
|
193
193
|
"key": "timer",
|
194
194
|
"class": "v-snackbar__timer"
|
195
195
|
}, [_createVNode(VProgressLinear, {
|
@@ -197,7 +197,7 @@ export const VSnackbar = genericComponent()({
|
|
197
197
|
"color": typeof props.timer === 'string' ? props.timer : 'info',
|
198
198
|
"max": props.timeout,
|
199
199
|
"model-value": countdown.time.value
|
200
|
-
}, null)]), hasContent &&
|
200
|
+
}, null)]), hasContent && _createElementVNode("div", {
|
201
201
|
"key": "content",
|
202
202
|
"class": "v-snackbar__content",
|
203
203
|
"role": "status",
|
@@ -211,7 +211,7 @@ export const VSnackbar = genericComponent()({
|
|
211
211
|
}
|
212
212
|
}
|
213
213
|
}, {
|
214
|
-
default: () => [
|
214
|
+
default: () => [_createElementVNode("div", {
|
215
215
|
"class": "v-snackbar__actions"
|
216
216
|
}, [slots.actions({
|
217
217
|
isActive
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VSnackbar.js","names":["VDefaultsProvider","VOverlay","makeVOverlayProps","VProgressLinear","useLayout","forwardRefs","VuetifyLayoutKey","makeLocationProps","makePositionProps","usePosition","useProxiedModel","makeRoundedProps","useRounded","useScopeId","makeThemeProps","provideTheme","useToggleScope","genOverlays","makeVariantProps","useVariant","computed","inject","mergeProps","nextTick","onMounted","onScopeDispose","ref","shallowRef","watch","watchEffect","genericComponent","omit","propsFactory","refElement","useRender","useCountdown","milliseconds","time","timer","clear","clearInterval","reset","value","start","el","style","getComputedStyle","transitionDuration","interval","parseFloat","startTime","performance","now","window","setInterval","elapsed","Math","max","makeVSnackbarProps","multiLine","Boolean","text","String","timeout","type","Number","default","vertical","location","transition","VSnackbar","name","props","emits","v","setup","_ref","slots","isActive","positionClasses","scopeId","themeClasses","colorClasses","colorStyles","variantClasses","roundedClasses","countdown","overlay","timerRef","isHovering","startY","mainStyles","hasLayout","undefined","layout","startTimeout","activeTimeout","clearTimeout","element","setTimeout","onPointerenter","onPointerleave","onTouchstart","event","touches","clientY","onTouchend","abs","changedTouches","onAfterLeave","locationClasses","split","reduce","acc","loc","overlayProps","filterProps","hasContent","_createVNode","_mergeProps","class","$event","contentProps","actions","VBtn","variant","ripple","slim","activator"],"sources":["../../../src/components/VSnackbar/VSnackbar.tsx"],"sourcesContent":["// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\nimport { VProgressLinear } from '@/components/VProgressLinear'\n\n// Composables\nimport { useLayout } from '@/composables'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { VuetifyLayoutKey } from '@/composables/layout'\nimport { makeLocationProps } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useScopeId } from '@/composables/scopeId'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Utilities\nimport { computed, inject, mergeProps, nextTick, onMounted, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { genericComponent, omit, propsFactory, refElement, useRender } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\ntype VSnackbarSlots = {\n activator: { isActive: boolean, props: Record<string, any> }\n default: never\n actions: { isActive: Ref<boolean> }\n text: never\n}\n\nfunction useCountdown (milliseconds: () => number) {\n const time = shallowRef(milliseconds())\n let timer = -1\n\n function clear () {\n clearInterval(timer)\n }\n\n function reset () {\n clear()\n\n nextTick(() => time.value = milliseconds())\n }\n\n function start (el?: HTMLElement) {\n const style = el ? getComputedStyle(el) : { transitionDuration: 0.2 }\n const interval = parseFloat(style.transitionDuration) * 1000 || 200\n\n clear()\n\n if (time.value <= 0) return\n\n const startTime = performance.now()\n timer = window.setInterval(() => {\n const elapsed = performance.now() - startTime + interval\n time.value = Math.max(milliseconds() - elapsed, 0)\n\n if (time.value <= 0) clear()\n }, interval)\n }\n\n onScopeDispose(clear)\n\n return { clear, time, start, reset }\n}\n\nexport const makeVSnackbarProps = propsFactory({\n multiLine: Boolean,\n text: String,\n timer: [Boolean, String],\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n vertical: Boolean,\n\n ...makeLocationProps({ location: 'bottom' } as const),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeThemeProps(),\n ...omit(makeVOverlayProps({\n transition: 'v-snackbar-transition',\n }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy']),\n}, 'VSnackbar')\n\nexport const VSnackbar = genericComponent<VSnackbarSlots>()({\n name: 'VSnackbar',\n\n props: makeVSnackbarProps(),\n\n emits: {\n 'update:modelValue': (v: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { positionClasses } = usePosition(props)\n const { scopeId } = useScopeId()\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { roundedClasses } = useRounded(props)\n const countdown = useCountdown(() => Number(props.timeout))\n\n const overlay = ref<VOverlay>()\n const timerRef = ref<VProgressLinear>()\n const isHovering = shallowRef(false)\n const startY = shallowRef(0)\n const mainStyles = ref()\n const hasLayout = inject(VuetifyLayoutKey, undefined)\n\n useToggleScope(() => !!hasLayout, () => {\n const layout = useLayout()\n\n watchEffect(() => {\n mainStyles.value = layout.mainStyles.value\n })\n })\n\n watch(isActive, startTimeout)\n watch(() => props.timeout, startTimeout)\n\n onMounted(() => {\n if (isActive.value) startTimeout()\n })\n\n let activeTimeout = -1\n function startTimeout () {\n countdown.reset()\n window.clearTimeout(activeTimeout)\n const timeout = Number(props.timeout)\n\n if (!isActive.value || timeout === -1) return\n\n const element = refElement(timerRef.value)\n\n countdown.start(element)\n\n activeTimeout = window.setTimeout(() => {\n isActive.value = false\n }, timeout)\n }\n\n function clearTimeout () {\n countdown.reset()\n window.clearTimeout(activeTimeout)\n }\n\n function onPointerenter () {\n isHovering.value = true\n clearTimeout()\n }\n\n function onPointerleave () {\n isHovering.value = false\n startTimeout()\n }\n\n function onTouchstart (event: TouchEvent) {\n startY.value = event.touches[0].clientY\n }\n\n function onTouchend (event: TouchEvent) {\n if (Math.abs(startY.value - event.changedTouches[0].clientY) > 50) {\n isActive.value = false\n }\n }\n\n function onAfterLeave () {\n if (isHovering.value) onPointerleave()\n }\n\n const locationClasses = computed(() => {\n return props.location.split(' ').reduce((acc, loc) => {\n acc[`v-snackbar--${loc}`] = true\n\n return acc\n }, {} as Record<string, any>)\n })\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n const hasContent = !!(slots.default || slots.text || props.text)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-snackbar',\n {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--timer': !!props.timer,\n 'v-snackbar--vertical': props.vertical,\n },\n locationClasses.value,\n positionClasses.value,\n props.class,\n ]}\n style={[\n mainStyles.value,\n props.style,\n ]}\n { ...overlayProps }\n v-model={ isActive.value }\n contentProps={ mergeProps({\n class: [\n 'v-snackbar__wrapper',\n themeClasses.value,\n colorClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ],\n style: [\n colorStyles.value,\n ],\n onPointerenter,\n onPointerleave,\n }, overlayProps.contentProps)}\n persistent\n noClickAnimation\n scrim={ false }\n scrollStrategy=\"none\"\n _disableGlobalStack\n onTouchstartPassive={ onTouchstart }\n onTouchend={ onTouchend }\n onAfterLeave={ onAfterLeave }\n { ...scopeId }\n v-slots={{ activator: slots.activator }}\n >\n { genOverlays(false, 'v-snackbar') }\n\n { props.timer && !isHovering.value && (\n <div key=\"timer\" class=\"v-snackbar__timer\">\n <VProgressLinear\n ref={ timerRef }\n color={ typeof props.timer === 'string' ? props.timer : 'info' }\n max={ props.timeout }\n model-value={ countdown.time.value }\n />\n </div>\n )}\n\n { hasContent && (\n <div\n key=\"content\"\n class=\"v-snackbar__content\"\n role=\"status\"\n aria-live=\"polite\"\n >\n { slots.text?.() ?? props.text }\n\n { slots.default?.() }\n </div>\n )}\n\n { slots.actions && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n variant: 'text',\n ripple: false,\n slim: true,\n },\n }}\n >\n <div class=\"v-snackbar__actions\">\n { slots.actions({ isActive }) }\n </div>\n </VDefaultsProvider>\n )}\n </VOverlay>\n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VSnackbar = InstanceType<typeof VSnackbar>\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VSnackbar.js","names":["VDefaultsProvider","VOverlay","makeVOverlayProps","VProgressLinear","useLayout","forwardRefs","VuetifyLayoutKey","makeLocationProps","makePositionProps","usePosition","useProxiedModel","makeRoundedProps","useRounded","useScopeId","makeThemeProps","provideTheme","useToggleScope","genOverlays","makeVariantProps","useVariant","computed","inject","mergeProps","nextTick","onMounted","onScopeDispose","ref","shallowRef","watch","watchEffect","genericComponent","omit","propsFactory","refElement","useRender","useCountdown","milliseconds","time","timer","clear","clearInterval","reset","value","start","el","style","getComputedStyle","transitionDuration","interval","parseFloat","startTime","performance","now","window","setInterval","elapsed","Math","max","makeVSnackbarProps","multiLine","Boolean","text","String","timeout","type","Number","default","vertical","location","transition","VSnackbar","name","props","emits","v","setup","_ref","slots","isActive","positionClasses","scopeId","themeClasses","colorClasses","colorStyles","variantClasses","roundedClasses","countdown","overlay","timerRef","isHovering","startY","mainStyles","hasLayout","undefined","layout","startTimeout","activeTimeout","clearTimeout","element","setTimeout","onPointerenter","onPointerleave","onTouchstart","event","touches","clientY","onTouchend","abs","changedTouches","onAfterLeave","locationClasses","split","reduce","acc","loc","overlayProps","filterProps","hasContent","_createVNode","_mergeProps","class","$event","contentProps","_createElementVNode","actions","VBtn","variant","ripple","slim","activator"],"sources":["../../../src/components/VSnackbar/VSnackbar.tsx"],"sourcesContent":["// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\nimport { VProgressLinear } from '@/components/VProgressLinear'\n\n// Composables\nimport { useLayout } from '@/composables'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { VuetifyLayoutKey } from '@/composables/layout'\nimport { makeLocationProps } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useScopeId } from '@/composables/scopeId'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Utilities\nimport { computed, inject, mergeProps, nextTick, onMounted, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { genericComponent, omit, propsFactory, refElement, useRender } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\ntype VSnackbarSlots = {\n activator: { isActive: boolean, props: Record<string, any> }\n default: never\n actions: { isActive: Ref<boolean> }\n text: never\n}\n\nfunction useCountdown (milliseconds: () => number) {\n const time = shallowRef(milliseconds())\n let timer = -1\n\n function clear () {\n clearInterval(timer)\n }\n\n function reset () {\n clear()\n\n nextTick(() => time.value = milliseconds())\n }\n\n function start (el?: HTMLElement) {\n const style = el ? getComputedStyle(el) : { transitionDuration: 0.2 }\n const interval = parseFloat(style.transitionDuration) * 1000 || 200\n\n clear()\n\n if (time.value <= 0) return\n\n const startTime = performance.now()\n timer = window.setInterval(() => {\n const elapsed = performance.now() - startTime + interval\n time.value = Math.max(milliseconds() - elapsed, 0)\n\n if (time.value <= 0) clear()\n }, interval)\n }\n\n onScopeDispose(clear)\n\n return { clear, time, start, reset }\n}\n\nexport const makeVSnackbarProps = propsFactory({\n multiLine: Boolean,\n text: String,\n timer: [Boolean, String],\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n vertical: Boolean,\n\n ...makeLocationProps({ location: 'bottom' } as const),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeThemeProps(),\n ...omit(makeVOverlayProps({\n transition: 'v-snackbar-transition',\n }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy']),\n}, 'VSnackbar')\n\nexport const VSnackbar = genericComponent<VSnackbarSlots>()({\n name: 'VSnackbar',\n\n props: makeVSnackbarProps(),\n\n emits: {\n 'update:modelValue': (v: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { positionClasses } = usePosition(props)\n const { scopeId } = useScopeId()\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { roundedClasses } = useRounded(props)\n const countdown = useCountdown(() => Number(props.timeout))\n\n const overlay = ref<VOverlay>()\n const timerRef = ref<VProgressLinear>()\n const isHovering = shallowRef(false)\n const startY = shallowRef(0)\n const mainStyles = ref()\n const hasLayout = inject(VuetifyLayoutKey, undefined)\n\n useToggleScope(() => !!hasLayout, () => {\n const layout = useLayout()\n\n watchEffect(() => {\n mainStyles.value = layout.mainStyles.value\n })\n })\n\n watch(isActive, startTimeout)\n watch(() => props.timeout, startTimeout)\n\n onMounted(() => {\n if (isActive.value) startTimeout()\n })\n\n let activeTimeout = -1\n function startTimeout () {\n countdown.reset()\n window.clearTimeout(activeTimeout)\n const timeout = Number(props.timeout)\n\n if (!isActive.value || timeout === -1) return\n\n const element = refElement(timerRef.value)\n\n countdown.start(element)\n\n activeTimeout = window.setTimeout(() => {\n isActive.value = false\n }, timeout)\n }\n\n function clearTimeout () {\n countdown.reset()\n window.clearTimeout(activeTimeout)\n }\n\n function onPointerenter () {\n isHovering.value = true\n clearTimeout()\n }\n\n function onPointerleave () {\n isHovering.value = false\n startTimeout()\n }\n\n function onTouchstart (event: TouchEvent) {\n startY.value = event.touches[0].clientY\n }\n\n function onTouchend (event: TouchEvent) {\n if (Math.abs(startY.value - event.changedTouches[0].clientY) > 50) {\n isActive.value = false\n }\n }\n\n function onAfterLeave () {\n if (isHovering.value) onPointerleave()\n }\n\n const locationClasses = computed(() => {\n return props.location.split(' ').reduce((acc, loc) => {\n acc[`v-snackbar--${loc}`] = true\n\n return acc\n }, {} as Record<string, any>)\n })\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n const hasContent = !!(slots.default || slots.text || props.text)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-snackbar',\n {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--timer': !!props.timer,\n 'v-snackbar--vertical': props.vertical,\n },\n locationClasses.value,\n positionClasses.value,\n props.class,\n ]}\n style={[\n mainStyles.value,\n props.style,\n ]}\n { ...overlayProps }\n v-model={ isActive.value }\n contentProps={ mergeProps({\n class: [\n 'v-snackbar__wrapper',\n themeClasses.value,\n colorClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ],\n style: [\n colorStyles.value,\n ],\n onPointerenter,\n onPointerleave,\n }, overlayProps.contentProps)}\n persistent\n noClickAnimation\n scrim={ false }\n scrollStrategy=\"none\"\n _disableGlobalStack\n onTouchstartPassive={ onTouchstart }\n onTouchend={ onTouchend }\n onAfterLeave={ onAfterLeave }\n { ...scopeId }\n v-slots={{ activator: slots.activator }}\n >\n { genOverlays(false, 'v-snackbar') }\n\n { props.timer && !isHovering.value && (\n <div key=\"timer\" class=\"v-snackbar__timer\">\n <VProgressLinear\n ref={ timerRef }\n color={ typeof props.timer === 'string' ? props.timer : 'info' }\n max={ props.timeout }\n model-value={ countdown.time.value }\n />\n </div>\n )}\n\n { hasContent && (\n <div\n key=\"content\"\n class=\"v-snackbar__content\"\n role=\"status\"\n aria-live=\"polite\"\n >\n { slots.text?.() ?? props.text }\n\n { slots.default?.() }\n </div>\n )}\n\n { slots.actions && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n variant: 'text',\n ripple: false,\n slim: true,\n },\n }}\n >\n <div class=\"v-snackbar__actions\">\n { slots.actions({ isActive }) }\n </div>\n </VDefaultsProvider>\n )}\n </VOverlay>\n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VSnackbar = InstanceType<typeof VSnackbar>\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
|
1
|
+
import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps, createElementVNode as _createElementVNode } from "vue";
|
2
2
|
// Components
|
3
3
|
import { VBtn } from "../VBtn/index.js";
|
4
4
|
import { VDefaultsProvider } from "../VDefaultsProvider/index.js";
|
@@ -75,7 +75,7 @@ export const VSnackbarQueue = genericComponent()({
|
|
75
75
|
modelValue: _,
|
76
76
|
...snackbarProps
|
77
77
|
} = VSnackbar.filterProps(props);
|
78
|
-
return
|
78
|
+
return _createElementVNode(_Fragment, null, [isVisible.value && !!current.value && (slots.default ? _createVNode(VDefaultsProvider, {
|
79
79
|
"defaults": {
|
80
80
|
VSnackbar: current.value
|
81
81
|
}
|
@@ -91,7 +91,7 @@ export const VSnackbarQueue = genericComponent()({
|
|
91
91
|
text: slots.text ? () => slots.text?.({
|
92
92
|
item: current.value
|
93
93
|
}) : undefined,
|
94
|
-
actions: hasActions ? () =>
|
94
|
+
actions: hasActions ? () => _createElementVNode(_Fragment, null, [!slots.actions ? _createVNode(VBtn, _mergeProps(btnProps.value, {
|
95
95
|
"onClick": onClickClose
|
96
96
|
}), null) : _createVNode(VDefaultsProvider, {
|
97
97
|
"defaults": {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VSnackbarQueue.js","names":["VBtn","VDefaultsProvider","makeVSnackbarProps","VSnackbar","useLocale","computed","nextTick","shallowRef","watch","genericComponent","omit","propsFactory","useRender","makeVSnackbarQueueProps","closable","Boolean","String","closeText","type","default","modelValue","Array","VSnackbarQueue","name","props","emits","val","setup","_ref","emit","slots","t","isActive","isVisible","current","length","oldVal","value","showNext","onAfterLeave","undefined","next","rest","text","onClickClose","btnProps","color","hasActions","actions","_","snackbarProps","filterProps","
|
1
|
+
{"version":3,"file":"VSnackbarQueue.js","names":["VBtn","VDefaultsProvider","makeVSnackbarProps","VSnackbar","useLocale","computed","nextTick","shallowRef","watch","genericComponent","omit","propsFactory","useRender","makeVSnackbarQueueProps","closable","Boolean","String","closeText","type","default","modelValue","Array","VSnackbarQueue","name","props","emits","val","setup","_ref","emit","slots","t","isActive","isVisible","current","length","oldVal","value","showNext","onAfterLeave","undefined","next","rest","text","onClickClose","btnProps","color","hasActions","actions","_","snackbarProps","filterProps","_createElementVNode","_Fragment","_createVNode","item","_mergeProps","$event","onClick"],"sources":["../../../src/components/VSnackbarQueue/VSnackbarQueue.tsx"],"sourcesContent":["// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { makeVSnackbarProps, VSnackbar } from '@/components/VSnackbar/VSnackbar'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed, nextTick, shallowRef, watch } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType, VNodeProps } from 'vue'\nimport type { GenericProps } from '@/util'\n\nexport type VSnackbarQueueSlots<T extends string | SnackbarMessage> = {\n default: { item: T }\n text: { item: T }\n actions: {\n item: T\n props: {\n onClick: () => void\n }\n }\n}\n\nexport type SnackbarMessage =\n | string\n | (Omit<\n VSnackbar['$props'],\n | 'modelValue'\n | 'onUpdate:modelValue'\n | 'activator'\n | 'activatorProps'\n | 'closeDelay'\n | 'openDelay'\n | 'openOnClick'\n | 'openOnFocus'\n | 'openOnHover'\n | 'style'\n | '$children'\n | 'v-slots'\n | `v-slot:${string}`\n | keyof VNodeProps\n > & { style?: any })\n\nexport const makeVSnackbarQueueProps = propsFactory({\n // TODO: Port this to Snackbar on dev\n closable: [Boolean, String],\n closeText: {\n type: String,\n default: '$vuetify.dismiss',\n },\n modelValue: {\n type: Array as PropType<readonly SnackbarMessage[]>,\n default: () => [],\n },\n\n ...omit(makeVSnackbarProps(), ['modelValue']),\n}, 'VSnackbarQueue')\n\nexport const VSnackbarQueue = genericComponent<new <T extends readonly SnackbarMessage[]> (\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (val: T) => void\n },\n slots: VSnackbarQueueSlots<T[number]>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VSnackbarQueue',\n\n props: makeVSnackbarQueueProps(),\n\n emits: {\n 'update:modelValue': (val: SnackbarMessage[]) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n\n const isActive = shallowRef(false)\n const isVisible = shallowRef(false)\n const current = shallowRef<Exclude<SnackbarMessage, string>>()\n\n watch(() => props.modelValue.length, (val, oldVal) => {\n if (!isVisible.value && val > oldVal) {\n showNext()\n }\n })\n watch(isActive, val => {\n if (val) isVisible.value = true\n })\n\n function onAfterLeave () {\n if (props.modelValue.length) {\n showNext()\n } else {\n current.value = undefined\n isVisible.value = false\n }\n }\n function showNext () {\n const [next, ...rest] = props.modelValue\n emit('update:modelValue', rest)\n current.value = typeof next === 'string' ? { text: next } : next\n nextTick(() => {\n isActive.value = true\n })\n }\n function onClickClose () {\n isActive.value = false\n }\n\n const btnProps = computed(() => ({\n color: typeof props.closable === 'string' ? props.closable : undefined,\n text: t(props.closeText),\n }))\n\n useRender(() => {\n const hasActions = !!(props.closable || slots.actions)\n const { modelValue: _, ...snackbarProps } = VSnackbar.filterProps(props as any)\n\n return (\n <>\n { isVisible.value && !!current.value && (\n slots.default\n ? (\n <VDefaultsProvider defaults={{ VSnackbar: current.value }}>\n { slots.default({ item: current.value }) }\n </VDefaultsProvider>\n ) : (\n <VSnackbar\n { ...snackbarProps }\n { ...current.value }\n v-model={ isActive.value }\n onAfterLeave={ onAfterLeave }\n >\n {{\n text: slots.text ? () => slots.text?.({ item: current.value! }) : undefined,\n actions: hasActions ? () => (\n <>\n { !slots.actions ? (\n <VBtn\n { ...btnProps.value }\n onClick={ onClickClose }\n />\n ) : (\n <VDefaultsProvider\n defaults={{\n VBtn: btnProps.value,\n }}\n >\n { slots.actions({\n item: current.value!,\n props: { onClick: onClickClose },\n })}\n </VDefaultsProvider>\n )}\n </>\n ) : undefined,\n }}\n </VSnackbar>\n )\n )}\n </>\n )\n })\n },\n})\n\nexport type VSnackbarQueue = InstanceType<typeof VSnackbarQueue>\n"],"mappings":"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","ignoreList":[]}
|