@vuetify/nightly 3.0.0-beta.4 → 3.0.0-beta.5
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 +13 -24
- package/dist/json/attributes.json +66 -122
- package/dist/json/importMap.json +121 -137
- package/dist/json/tags.json +20 -68
- package/dist/json/web-types.json +201 -482
- package/dist/vuetify.css +1672 -1536
- package/dist/vuetify.d.ts +494 -464
- package/dist/vuetify.esm.js +3835 -3452
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +3834 -3451
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1027 -1012
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.mjs +4 -0
- package/lib/blueprints/index.mjs.map +1 -0
- package/lib/blueprints/md1.mjs +63 -0
- package/lib/blueprints/md1.mjs.map +1 -0
- package/lib/blueprints/md2.mjs +60 -0
- package/lib/blueprints/md2.mjs.map +1 -0
- package/lib/blueprints/md3.mjs +74 -0
- package/lib/blueprints/md3.mjs.map +1 -0
- package/lib/components/VAlert/VAlert.mjs +7 -1
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VApp/VApp.css +2 -5
- package/lib/components/VApp/VApp.mjs +3 -4
- package/lib/components/VApp/VApp.mjs.map +1 -1
- package/lib/components/VApp/VApp.sass +11 -12
- package/lib/components/VApp/variables.scss +6 -0
- package/lib/components/VAppBar/VAppBar.mjs +4 -3
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarNavIcon.mjs +7 -12
- package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs +4 -3
- package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
- package/lib/components/VAppBar/_variables.scss +2 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +9 -5
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VBadge/VBadge.mjs +8 -7
- package/lib/components/VBadge/VBadge.mjs.map +1 -1
- package/lib/components/VBadge/_variables.scss +2 -2
- package/lib/components/VBanner/VBanner.css +7 -7
- package/lib/components/VBanner/VBanner.mjs +24 -17
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.sass +6 -7
- package/lib/components/VBanner/VBannerActions.mjs +1 -1
- package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
- package/lib/components/VBanner/index.mjs +0 -2
- package/lib/components/VBanner/index.mjs.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.css +4 -11
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +4 -3
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.sass +5 -12
- package/lib/components/VBottomNavigation/_variables.scss +7 -8
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +31 -16
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +5 -8
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.css +42 -9
- package/lib/components/VBtn/VBtn.mjs +60 -29
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +36 -5
- package/lib/components/VBtn/_variables.scss +7 -3
- package/lib/components/VBtnGroup/VBtnGroup.css +1 -1
- package/lib/components/VBtnGroup/_variables.scss +2 -0
- package/lib/components/VBtnToggle/_variables.scss +1 -0
- package/lib/components/VCard/VCard.css +78 -61
- package/lib/components/VCard/VCard.mjs +51 -65
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCard.sass +71 -58
- package/lib/components/VCard/VCardActions.mjs +1 -1
- package/lib/components/VCard/VCardActions.mjs.map +1 -1
- package/lib/components/VCard/VCardItem.mjs +88 -0
- package/lib/components/VCard/VCardItem.mjs.map +1 -0
- package/lib/components/VCard/_variables.scss +39 -24
- package/lib/components/VCard/index.mjs +1 -5
- package/lib/components/VCard/index.mjs.map +1 -1
- package/lib/components/VCarousel/VCarousel.mjs +5 -4
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
- package/lib/components/VCarousel/_variables.scss +1 -0
- package/lib/components/VChip/VChip.css +137 -60
- package/lib/components/VChip/VChip.mjs +74 -36
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/VChip.sass +6 -0
- package/lib/components/VChip/_mixins.scss +26 -6
- package/lib/components/VChip/_variables.scss +1 -5
- package/lib/components/VChipGroup/VChipGroup.mjs +4 -3
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VChipGroup/VChipGroup.sass +1 -1
- package/lib/components/VChipGroup/_variables.scss +1 -1
- package/lib/components/VColorPicker/VColorPicker.mjs +16 -10
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +5 -4
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs +4 -3
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +4 -3
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs +6 -5
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VColorPicker/_variables.scss +17 -10
- package/lib/components/VCombobox/VCombobox.mjs +8 -4
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCounter/VCounter.mjs +16 -16
- package/lib/components/VCounter/VCounter.mjs.map +1 -1
- package/lib/components/VCounter/VCounter.sass +1 -1
- package/lib/components/VCounter/_variables.scss +2 -1
- package/lib/components/VDialog/VDialog.css +2 -5
- package/lib/components/VDialog/VDialog.mjs +24 -25
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +1 -4
- package/lib/components/VDialog/_variables.scss +0 -1
- package/lib/components/VDivider/VDivider.mjs +16 -17
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VDivider/_variables.scss +3 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +6 -4
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +5 -5
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VExpansionPanel/_variables.scss +15 -10
- package/lib/components/VField/VField.mjs +17 -10
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VFieldLabel.mjs +8 -9
- package/lib/components/VField/VFieldLabel.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.mjs +3 -3
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFooter/VFooter.mjs +4 -3
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VFooter/_variables.scss +2 -1
- package/lib/components/VForm/VForm.mjs +3 -3
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VGrid/VCol.mjs.map +1 -1
- package/lib/components/VGrid/VContainer.mjs +4 -3
- package/lib/components/VGrid/VContainer.mjs.map +1 -1
- package/lib/components/VGrid/VRow.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.css +0 -8
- package/lib/components/VIcon/VIcon.mjs +20 -21
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.sass +0 -8
- package/lib/components/VIcon/_variables.scss +2 -5
- package/lib/components/VIcon/index.mjs.map +1 -1
- package/lib/components/VInput/VInput.mjs +9 -5
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VLabel/VLabel.mjs +4 -3
- package/lib/components/VLabel/VLabel.mjs.map +1 -1
- package/lib/components/VLabel/_variables.scss +1 -0
- package/lib/components/VLazy/VLazy.mjs +5 -3
- package/lib/components/VLazy/VLazy.mjs.map +1 -1
- package/lib/components/VList/VList.mjs +15 -17
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListChildren.mjs +2 -2
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +8 -7
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +13 -8
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItemAction.mjs +8 -9
- package/lib/components/VList/VListItemAction.mjs.map +1 -1
- package/lib/components/VList/VListItemAvatar.mjs +4 -3
- package/lib/components/VList/VListItemAvatar.mjs.map +1 -1
- package/lib/components/VList/VListItemIcon.mjs +4 -3
- package/lib/components/VList/VListItemIcon.mjs.map +1 -1
- package/lib/components/VList/VListItemMedia.mjs +4 -3
- package/lib/components/VList/VListItemMedia.mjs.map +1 -1
- package/lib/components/VList/VListSubheader.mjs +4 -3
- package/lib/components/VList/VListSubheader.mjs.map +1 -1
- package/lib/components/VList/index.mjs +2 -2
- package/lib/components/VList/index.mjs.map +1 -1
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs +5 -3
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
- package/lib/components/VMain/VMain.mjs +4 -3
- package/lib/components/VMain/VMain.mjs.map +1 -1
- package/lib/components/VMain/_variables.scss +1 -1
- package/lib/components/VMenu/VMenu.mjs +5 -5
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMessages/VMessages.mjs +5 -3
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VMessages/_variables.scss +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +5 -3
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/_variables.scss +2 -1
- package/lib/components/VNavigationDrawer/touch.mjs +5 -2
- package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
- package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.mjs +10 -8
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/locationStrategies.mjs +267 -78
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +4 -3
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VOverlay/util/point.mjs +3 -3
- package/lib/components/VOverlay/util/point.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +18 -14
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VParallax/VParallax.mjs +5 -5
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.mjs +6 -5
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressCircular/_variables.scss +2 -0
- package/lib/components/VProgressLinear/VProgressLinear.mjs +5 -3
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/_variables.scss +1 -0
- package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.sass +5 -3
- package/lib/components/VRadioGroup/_variables.scss +3 -4
- package/lib/components/VRangeSlider/VRangeSlider.mjs +12 -13
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRating/VRating.mjs +6 -5
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/VRating.sass +2 -0
- package/lib/components/VResponsive/VResponsive.mjs +7 -6
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +8 -4
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.mjs +6 -5
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/_variables.scss +1 -0
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +3 -3
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +1 -5
- package/lib/components/VSelectionControlGroup/_variables.scss +1 -4
- package/lib/components/VSheet/VSheet.mjs +3 -3
- package/lib/components/VSheet/VSheet.mjs.map +1 -1
- package/lib/components/VSheet/_variables.scss +3 -2
- package/lib/components/VSlideGroup/VSlideGroup.mjs +47 -49
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs +4 -3
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
- package/lib/components/VSlideGroup/_variables.scss +0 -5
- package/lib/components/VSlideGroup/index.mjs +2 -2
- package/lib/components/VSlideGroup/index.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.mjs +7 -9
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.mjs +6 -5
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.mjs +11 -10
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/slider.mjs +4 -4
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.mjs +45 -49
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/_variables.scss +2 -0
- package/lib/components/VSwitch/_variables.scss +1 -0
- package/lib/components/VSystemBar/VSystemBar.mjs +4 -12
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VSystemBar/_variables.scss +2 -1
- package/lib/components/VTable/VTable.mjs +9 -8
- package/lib/components/VTable/VTable.mjs.map +1 -1
- package/lib/components/VTable/_variables.scss +2 -0
- package/lib/components/VTabs/VTab.mjs +4 -4
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.mjs +9 -7
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/_variables.scss +3 -1
- package/lib/components/VTextField/VTextField.mjs +5 -5
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/_variables.scss +1 -1
- package/lib/components/VTextarea/VTextarea.mjs +4 -4
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/_variables.scss +1 -0
- package/lib/components/VTimeline/VTimeline.mjs +24 -25
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.sass +3 -2
- package/lib/components/VTimeline/VTimelineDivider.mjs +41 -38
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs +10 -11
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VTimeline/_variables.scss +11 -6
- package/lib/components/VToolbar/VToolbar.css +15 -6
- package/lib/components/VToolbar/VToolbar.mjs +9 -9
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.sass +15 -6
- package/lib/components/VToolbar/VToolbarItems.mjs +12 -8
- package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
- package/lib/components/VToolbar/_variables.scss +6 -2
- package/lib/components/VTooltip/VTooltip.mjs +37 -38
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/_variables.scss +1 -0
- package/lib/components/VWindow/VWindow.mjs +4 -4
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindowItem.mjs +10 -9
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/VWindow/_variables.scss +1 -0
- package/lib/components/index.d.ts +486 -445
- package/lib/components/transitions/dialog-transition.mjs +3 -0
- package/lib/components/transitions/dialog-transition.mjs.map +1 -1
- package/lib/composables/border.mjs +5 -6
- package/lib/composables/border.mjs.map +1 -1
- package/lib/composables/location.mjs +4 -8
- package/lib/composables/location.mjs.map +1 -1
- package/lib/composables/size.mjs +2 -2
- package/lib/composables/size.mjs.map +1 -1
- package/lib/composables/validation.mjs +1 -1
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/composables/variant.mjs +2 -0
- package/lib/composables/variant.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +7 -2
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.ts +42 -43
- package/lib/util/anchor.mjs +34 -28
- package/lib/util/anchor.mjs.map +1 -1
- package/lib/util/animation.mjs +2 -2
- package/lib/util/animation.mjs.map +1 -1
- package/lib/util/box.mjs +12 -0
- package/lib/util/box.mjs.map +1 -1
- package/lib/util/helpers.mjs +9 -1
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +6 -8
- package/lib/components/VBanner/VBannerAvatar.mjs +0 -20
- package/lib/components/VBanner/VBannerAvatar.mjs.map +0 -1
- package/lib/components/VBanner/VBannerIcon.mjs +0 -20
- package/lib/components/VBanner/VBannerIcon.mjs.map +0 -1
- package/lib/components/VBreadcrumbs/shared.mjs +0 -2
- package/lib/components/VBreadcrumbs/shared.mjs.map +0 -1
- package/lib/components/VCard/VCardAvatar.mjs +0 -3
- package/lib/components/VCard/VCardAvatar.mjs.map +0 -1
- package/lib/components/VCard/VCardContent.mjs +0 -3
- package/lib/components/VCard/VCardContent.mjs.map +0 -1
- package/lib/components/VCard/VCardHeader.mjs +0 -3
- package/lib/components/VCard/VCardHeader.mjs.map +0 -1
- package/lib/components/VCard/VCardHeaderText.mjs +0 -3
- package/lib/components/VCard/VCardHeaderText.mjs.map +0 -1
- package/lib/components/VCard/VCardImg.mjs +0 -3
- package/lib/components/VCard/VCardImg.mjs.map +0 -1
- package/lib/components/VTimeline/shared.mjs +0 -2
- package/lib/components/VTimeline/shared.mjs.map +0 -1
- package/lib/presets/default/index.mjs +0 -71
- package/lib/presets/default/index.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"point.mjs","names":["elementToViewport","point","offset","x","y","viewportToElement","getOffset","a","b","anchorToPoint","anchor","box","side","align","width","height"],"sources":["../../../../src/components/VOverlay/util/point.ts"],"sourcesContent":["import type { ParsedAnchor } from '@/util'\nimport type { Box } from '@/util/box'\n\ntype Point = { x: number, y: number }\ndeclare class As<T extends string> {\n private as: T\n}\ntype ElementPoint = Point & As<'element'>\ntype ViewportPoint = Point & As<'viewport'>\ntype Offset = Point & As<'offset'>\n\n/** Convert a point in local space to viewport space */\nexport function elementToViewport (point: ElementPoint, offset: Offset | Box) {\n return {\n x: point.x + offset.x,\n y: point.y + offset.y,\n } as ViewportPoint\n}\n\n/** Convert a point in viewport space to local space */\nexport function viewportToElement (point: ViewportPoint, offset: Offset | Box) {\n return {\n x: point.x - offset.x,\n y: point.y - offset.y,\n } as ElementPoint\n}\n\n/** Get the difference between two points */\nexport function getOffset<T extends Point> (a: T, b: T) {\n return {\n x: a.x - b.x,\n y: a.y - b.y,\n } as Offset\n}\n\n/** Convert an anchor object to a point in local space */\nexport function anchorToPoint (anchor: ParsedAnchor, box: Box): ViewportPoint {\n if (anchor.side === 'top' || anchor.side === 'bottom') {\n const { side, align } = anchor\n\n const x: number =\n align === '
|
|
1
|
+
{"version":3,"file":"point.mjs","names":["elementToViewport","point","offset","x","y","viewportToElement","getOffset","a","b","anchorToPoint","anchor","box","side","align","width","height"],"sources":["../../../../src/components/VOverlay/util/point.ts"],"sourcesContent":["import type { ParsedAnchor } from '@/util'\nimport type { Box } from '@/util/box'\n\ntype Point = { x: number, y: number }\ndeclare class As<T extends string> {\n private as: T\n}\ntype ElementPoint = Point & As<'element'>\ntype ViewportPoint = Point & As<'viewport'>\ntype Offset = Point & As<'offset'>\n\n/** Convert a point in local space to viewport space */\nexport function elementToViewport (point: ElementPoint, offset: Offset | Box) {\n return {\n x: point.x + offset.x,\n y: point.y + offset.y,\n } as ViewportPoint\n}\n\n/** Convert a point in viewport space to local space */\nexport function viewportToElement (point: ViewportPoint, offset: Offset | Box) {\n return {\n x: point.x - offset.x,\n y: point.y - offset.y,\n } as ElementPoint\n}\n\n/** Get the difference between two points */\nexport function getOffset<T extends Point> (a: T, b: T) {\n return {\n x: a.x - b.x,\n y: a.y - b.y,\n } as Offset\n}\n\n/** Convert an anchor object to a point in local space */\nexport function anchorToPoint (anchor: ParsedAnchor, box: Box): ViewportPoint {\n if (anchor.side === 'top' || anchor.side === 'bottom') {\n const { side, align } = anchor\n\n const x: number =\n align === 'left' ? 0\n : align === 'center' ? box.width / 2\n : align === 'right' ? box.width\n : align\n const y: number =\n side === 'top' ? 0\n : side === 'bottom' ? box.height\n : side\n\n return elementToViewport({ x, y } as ElementPoint, box)\n } else if (anchor.side === 'left' || anchor.side === 'right') {\n const { side, align } = anchor\n\n const x: number =\n side === 'left' ? 0\n : side === 'right' ? box.width\n : side\n const y: number =\n align === 'top' ? 0\n : align === 'center' ? box.height / 2\n : align === 'bottom' ? box.height\n : align\n\n return elementToViewport({ x, y } as ElementPoint, box)\n }\n\n return elementToViewport({\n x: box.width / 2,\n y: box.height / 2,\n } as ElementPoint, box)\n}\n"],"mappings":"AAWA;AACA,OAAO,SAASA,iBAAT,CAA4BC,KAA5B,EAAiDC,MAAjD,EAAuE;EAC5E,OAAO;IACLC,CAAC,EAAEF,KAAK,CAACE,CAAN,GAAUD,MAAM,CAACC,CADf;IAELC,CAAC,EAAEH,KAAK,CAACG,CAAN,GAAUF,MAAM,CAACE;EAFf,CAAP;AAID;AAED;;AACA,OAAO,SAASC,iBAAT,CAA4BJ,KAA5B,EAAkDC,MAAlD,EAAwE;EAC7E,OAAO;IACLC,CAAC,EAAEF,KAAK,CAACE,CAAN,GAAUD,MAAM,CAACC,CADf;IAELC,CAAC,EAAEH,KAAK,CAACG,CAAN,GAAUF,MAAM,CAACE;EAFf,CAAP;AAID;AAED;;AACA,OAAO,SAASE,SAAT,CAAqCC,CAArC,EAA2CC,CAA3C,EAAiD;EACtD,OAAO;IACLL,CAAC,EAAEI,CAAC,CAACJ,CAAF,GAAMK,CAAC,CAACL,CADN;IAELC,CAAC,EAAEG,CAAC,CAACH,CAAF,GAAMI,CAAC,CAACJ;EAFN,CAAP;AAID;AAED;;AACA,OAAO,SAASK,aAAT,CAAwBC,MAAxB,EAA8CC,GAA9C,EAAuE;EAC5E,IAAID,MAAM,CAACE,IAAP,KAAgB,KAAhB,IAAyBF,MAAM,CAACE,IAAP,KAAgB,QAA7C,EAAuD;IACrD,MAAM;MAAEA,IAAF;MAAQC;IAAR,IAAkBH,MAAxB;IAEA,MAAMP,CAAS,GACbU,KAAK,KAAK,MAAV,GAAmB,CAAnB,GACEA,KAAK,KAAK,QAAV,GAAqBF,GAAG,CAACG,KAAJ,GAAY,CAAjC,GACAD,KAAK,KAAK,OAAV,GAAoBF,GAAG,CAACG,KAAxB,GACAD,KAJJ;IAKA,MAAMT,CAAS,GACbQ,IAAI,KAAK,KAAT,GAAiB,CAAjB,GACEA,IAAI,KAAK,QAAT,GAAoBD,GAAG,CAACI,MAAxB,GACAH,IAHJ;IAKA,OAAOZ,iBAAiB,CAAC;MAAEG,CAAF;MAAKC;IAAL,CAAD,EAA2BO,GAA3B,CAAxB;EACD,CAdD,MAcO,IAAID,MAAM,CAACE,IAAP,KAAgB,MAAhB,IAA0BF,MAAM,CAACE,IAAP,KAAgB,OAA9C,EAAuD;IAC5D,MAAM;MAAEA,IAAF;MAAQC;IAAR,IAAkBH,MAAxB;IAEA,MAAMP,CAAS,GACbS,IAAI,KAAK,MAAT,GAAkB,CAAlB,GACEA,IAAI,KAAK,OAAT,GAAmBD,GAAG,CAACG,KAAvB,GACAF,IAHJ;IAIA,MAAMR,CAAS,GACbS,KAAK,KAAK,KAAV,GAAkB,CAAlB,GACEA,KAAK,KAAK,QAAV,GAAqBF,GAAG,CAACI,MAAJ,GAAa,CAAlC,GACAF,KAAK,KAAK,QAAV,GAAqBF,GAAG,CAACI,MAAzB,GACAF,KAJJ;IAMA,OAAOb,iBAAiB,CAAC;MAAEG,CAAF;MAAKC;IAAL,CAAD,EAA2BO,GAA3B,CAAxB;EACD;;EAED,OAAOX,iBAAiB,CAAC;IACvBG,CAAC,EAAEQ,GAAG,CAACG,KAAJ,GAAY,CADQ;IAEvBV,CAAC,EAAEO,GAAG,CAACI,MAAJ,GAAa;EAFO,CAAD,EAGLJ,GAHK,CAAxB;AAID"}
|
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
import { createVNode as _createVNode } from "vue";
|
|
2
|
+
// Styles
|
|
2
3
|
import "./VPagination.css"; // Components
|
|
3
4
|
|
|
4
5
|
import { VBtn } from "../VBtn/index.mjs"; // Composables
|
|
5
6
|
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { useRtl } from "../../composables/rtl.mjs";
|
|
9
|
-
import { makeElevationProps } from "../../composables/elevation.mjs";
|
|
7
|
+
import { IconValue } from "../../composables/icons.mjs";
|
|
8
|
+
import { makeBorderProps } from "../../composables/border.mjs";
|
|
10
9
|
import { makeDensityProps } from "../../composables/density.mjs";
|
|
10
|
+
import { makeElevationProps } from "../../composables/elevation.mjs";
|
|
11
|
+
import { makeRoundedProps } from "../../composables/rounded.mjs";
|
|
11
12
|
import { makeSizeProps } from "../../composables/size.mjs";
|
|
13
|
+
import { makeTagProps } from "../../composables/tag.mjs";
|
|
12
14
|
import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
|
|
13
15
|
import { makeVariantProps } from "../../composables/variant.mjs";
|
|
14
|
-
import { useResizeObserver } from "../../composables/resizeObserver.mjs";
|
|
15
|
-
import { makeBorderProps } from "../../composables/border.mjs";
|
|
16
|
-
import { useRefs } from "../../composables/refs.mjs";
|
|
17
|
-
import { useProxiedModel } from "../../composables/proxiedModel.mjs";
|
|
18
16
|
import { provideDefaults } from "../../composables/defaults.mjs";
|
|
19
|
-
import {
|
|
17
|
+
import { useLocale } from "../../composables/locale.mjs";
|
|
18
|
+
import { useProxiedModel } from "../../composables/proxiedModel.mjs";
|
|
19
|
+
import { useRefs } from "../../composables/refs.mjs";
|
|
20
|
+
import { useResizeObserver } from "../../composables/resizeObserver.mjs";
|
|
21
|
+
import { useRtl } from "../../composables/rtl.mjs"; // Utilities
|
|
20
22
|
|
|
21
23
|
import { computed, nextTick, ref, toRef } from 'vue';
|
|
22
|
-
import { createRange, defineComponent, keyValues } from "../../util/index.mjs"; // Types
|
|
24
|
+
import { createRange, defineComponent, keyValues, useRender } from "../../util/index.mjs"; // Types
|
|
23
25
|
|
|
24
|
-
import { makeRoundedProps } from "../../composables/rounded.mjs";
|
|
25
26
|
export const VPagination = defineComponent({
|
|
26
27
|
name: 'VPagination',
|
|
27
28
|
props: {
|
|
@@ -89,10 +90,10 @@ export const VPagination = defineComponent({
|
|
|
89
90
|
default: '...'
|
|
90
91
|
},
|
|
91
92
|
showFirstLastPage: Boolean,
|
|
92
|
-
...makeRoundedProps(),
|
|
93
93
|
...makeBorderProps(),
|
|
94
94
|
...makeDensityProps(),
|
|
95
95
|
...makeElevationProps(),
|
|
96
|
+
...makeRoundedProps(),
|
|
96
97
|
...makeSizeProps(),
|
|
97
98
|
...makeTagProps({
|
|
98
99
|
tag: 'nav'
|
|
@@ -284,7 +285,7 @@ export const VPagination = defineComponent({
|
|
|
284
285
|
}
|
|
285
286
|
}
|
|
286
287
|
|
|
287
|
-
|
|
288
|
+
useRender(() => _createVNode(props.tag, {
|
|
288
289
|
"ref": resizeRef,
|
|
289
290
|
"class": ['v-pagination', themeClasses.value],
|
|
290
291
|
"role": "navigation",
|
|
@@ -295,6 +296,7 @@ export const VPagination = defineComponent({
|
|
|
295
296
|
default: () => [_createVNode("ul", {
|
|
296
297
|
"class": "v-pagination__list"
|
|
297
298
|
}, [props.showFirstLastPage && _createVNode("li", {
|
|
299
|
+
"key": "first",
|
|
298
300
|
"class": "v-pagination__first",
|
|
299
301
|
"data-test": "v-pagination-first"
|
|
300
302
|
}, [slots.first ? slots.first(controls.value.first) : _createVNode(VBtn, controls.value.first, null)]), _createVNode("li", {
|
|
@@ -312,10 +314,12 @@ export const VPagination = defineComponent({
|
|
|
312
314
|
"class": "v-pagination__next",
|
|
313
315
|
"data-test": "v-pagination-next"
|
|
314
316
|
}, [slots.next ? slots.next(controls.value.next) : _createVNode(VBtn, controls.value.next, null)]), props.showFirstLastPage && _createVNode("li", {
|
|
317
|
+
"key": "last",
|
|
315
318
|
"class": "v-pagination__last",
|
|
316
319
|
"data-test": "v-pagination-last"
|
|
317
320
|
}, [slots.last ? slots.last(controls.value.last) : _createVNode(VBtn, controls.value.last, null)])])]
|
|
318
|
-
});
|
|
321
|
+
}));
|
|
322
|
+
return {};
|
|
319
323
|
}
|
|
320
324
|
|
|
321
325
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VPagination.mjs","names":["VBtn","makeTagProps","useLocale","useRtl","makeElevationProps","makeDensityProps","makeSizeProps","makeThemeProps","provideTheme","makeVariantProps","useResizeObserver","makeBorderProps","useRefs","useProxiedModel","provideDefaults","IconValue","computed","nextTick","ref","toRef","createRange","defineComponent","keyValues","makeRoundedProps","VPagination","name","props","start","type","Number","String","default","modelValue","disabled","Boolean","length","validator","val","totalVisible","firstIcon","prevIcon","nextIcon","lastIcon","ariaLabel","pageAriaLabel","currentPageAriaLabel","firstAriaLabel","previousAriaLabel","nextAriaLabel","lastAriaLabel","ellipsis","showFirstLastPage","tag","variant","emits","value","first","prev","next","last","setup","slots","emit","page","t","n","isRtl","themeClasses","maxButtons","undefined","scoped","resizeRef","entries","target","contentRect","firstItem","querySelector","totalWidth","width","itemWidth","getBoundingClientRect","Math","max","floor","parseInt","min","range","even","middle","left","right","rangeLength","rangeStart","ceil","setValue","e","event","preventDefault","refs","updateRef","border","density","size","items","map","item","index","isActive","icon","elevation","rounded","color","ariaCurrent","onClick","controls","prevDisabled","nextDisabled","ariaDisabled","updateFocus","currentIndex","$el","focus","onKeydown","key"],"sources":["../../../src/components/VPagination/VPagination.tsx"],"sourcesContent":["import './VPagination.sass'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\nimport { useLocale } from '@/composables/locale'\nimport { useRtl } from '@/composables/rtl'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeBorderProps } from '@/composables/border'\nimport { useRefs } from '@/composables/refs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { provideDefaults } from '@/composables/defaults'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, nextTick, ref, toRef } from 'vue'\nimport { createRange, defineComponent, keyValues } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance } from 'vue'\nimport { makeRoundedProps } from '@/composables/rounded'\n\nexport const VPagination = defineComponent({\n name: 'VPagination',\n\n props: {\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n firstIcon: {\n type: IconValue,\n default: '$first',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n lastIcon: {\n type: IconValue,\n default: '$last',\n },\n ariaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.root',\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n firstAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.first',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n lastAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.last',\n },\n ellipsis: {\n type: String,\n default: '...',\n },\n showFirstLastPage: Boolean,\n\n ...makeRoundedProps(),\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n },\n\n emits: {\n 'update:modelValue': (value: number) => true,\n first: (value: number) => true,\n prev: (value: number) => true,\n next: (value: number) => true,\n last: (value: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const page = useProxiedModel(props, 'modelValue')\n const { t, n } = useLocale()\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const maxButtons = ref(-1)\n\n provideDefaults(undefined, { scoped: true })\n\n const { resizeRef } = useResizeObserver((entries: ResizeObserverEntry[]) => {\n if (!entries.length) return\n\n const { target, contentRect } = entries[0]\n\n const firstItem = target.querySelector('.v-pagination__list > *')\n\n if (!firstItem) return\n\n const totalWidth = contentRect.width\n const itemWidth = firstItem.getBoundingClientRect().width + 10\n\n maxButtons.value = Math.max(0, Math.floor((totalWidth - 96) / itemWidth))\n })\n\n const length = computed(() => parseInt(props.length, 10))\n const start = computed(() => parseInt(props.start, 10))\n\n const totalVisible = computed(() => {\n if (props.totalVisible) return Math.min(parseInt(props.totalVisible ?? '', 10), length.value)\n else if (maxButtons.value >= 0) return maxButtons.value\n return length.value\n })\n\n const range = computed(() => {\n if (length.value <= 0) return []\n\n if (totalVisible.value <= 2) return [page.value]\n\n if (length.value <= totalVisible.value) {\n return createRange(length.value, start.value)\n }\n\n const even = totalVisible.value % 2 === 0\n const middle = even ? totalVisible.value / 2 : Math.floor(totalVisible.value / 2)\n const left = even ? middle : middle + 1\n const right = length.value - middle\n\n if (left - page.value >= 0) {\n return [...createRange(Math.max(1, totalVisible.value - 1), start.value), props.ellipsis, length.value]\n } else if (page.value - right >= 0) {\n const rangeLength = totalVisible.value - 1\n const rangeStart = length.value - rangeLength + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart)]\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3)\n const rangeStart = rangeLength === 1 ? page.value : page.value - Math.ceil(rangeLength / 2) + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart), props.ellipsis, length.value]\n }\n })\n\n // TODO: 'first' | 'prev' | 'next' | 'last' does not work here?\n function setValue (e: Event, value: number, event?: any) {\n e.preventDefault()\n page.value = value\n event && emit(event, value)\n }\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>()\n\n provideDefaults({\n VBtn: {\n border: toRef(props, 'border'),\n density: toRef(props, 'density'),\n size: toRef(props, 'size'),\n variant: toRef(props, 'variant'),\n },\n })\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index)\n\n if (typeof item === 'string') {\n return {\n isActive: false,\n page: item,\n props: {\n ref,\n ellipsis: true,\n icon: true,\n disabled: true,\n },\n }\n } else {\n const isActive = item === page.value\n return {\n isActive,\n page: n(item),\n props: {\n ref,\n ellipsis: false,\n icon: true,\n disabled: !!props.disabled || props.length < 2,\n elevation: props.elevation,\n rounded: props.rounded,\n color: isActive ? props.color : undefined,\n ariaCurrent: isActive,\n ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, index + 1),\n onClick: (e: Event) => setValue(e, item),\n },\n }\n }\n })\n })\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value\n const nextDisabled = !!props.disabled || page.value >= start.value + length.value - 1\n\n return {\n first: props.showFirstLastPage ? {\n icon: isRtl.value ? props.lastIcon : props.firstIcon,\n onClick: (e: Event) => setValue(e, start.value, 'first'),\n disabled: prevDisabled,\n ariaLabel: t(props.firstAriaLabel),\n ariaDisabled: prevDisabled,\n } : undefined,\n prev: {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n onClick: (e: Event) => setValue(e, page.value - 1, 'prev'),\n disabled: prevDisabled,\n ariaLabel: t(props.previousAriaLabel),\n ariaDisabled: prevDisabled,\n },\n next: {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n onClick: (e: Event) => setValue(e, page.value + 1, 'next'),\n disabled: nextDisabled,\n ariaLabel: t(props.nextAriaLabel),\n ariaDisabled: nextDisabled,\n },\n last: props.showFirstLastPage ? {\n icon: isRtl.value ? props.firstIcon : props.lastIcon,\n onClick: (e: Event) => setValue(e, start.value + length.value - 1, 'last'),\n disabled: nextDisabled,\n ariaLabel: t(props.lastAriaLabel),\n ariaDisabled: nextDisabled,\n } : undefined,\n }\n })\n\n function updateFocus () {\n const currentIndex = page.value - start.value\n refs.value[currentIndex]?.$el.focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === keyValues.left && !props.disabled && page.value > props.start) {\n page.value = page.value - 1\n nextTick(updateFocus)\n } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {\n page.value = page.value + 1\n nextTick(updateFocus)\n }\n }\n\n return () => (\n <props.tag\n ref={ resizeRef }\n class={[\n 'v-pagination',\n themeClasses.value,\n ]}\n role=\"navigation\"\n aria-label={ t(props.ariaLabel) }\n onKeydown={ onKeydown }\n data-test=\"v-pagination-root\"\n >\n <ul class=\"v-pagination__list\">\n { props.showFirstLastPage && (\n <li class=\"v-pagination__first\" data-test=\"v-pagination-first\">\n { slots.first ? slots.first(controls.value.first) : (\n <VBtn {...controls.value.first} />\n ) }\n </li>\n ) }\n\n <li class=\"v-pagination__prev\" data-test=\"v-pagination-prev\">\n { slots.prev ? slots.prev(controls.value.prev) : (\n <VBtn {...controls.value.prev} />\n ) }\n </li>\n\n { items.value.map((item, index) => (\n <li\n key={ `${index}_${item.page}` }\n class={[\n 'v-pagination__item',\n {\n 'v-pagination__item--is-active': item.isActive,\n },\n ]}\n data-test=\"v-pagination-item\"\n >\n { slots.item ? slots.item(item) : (\n <VBtn {...item.props}>{ item.page }</VBtn>\n ) }\n </li>\n )) }\n\n <li class=\"v-pagination__next\" data-test=\"v-pagination-next\">\n { slots.next ? slots.next(controls.value.next) : (\n <VBtn {...controls.value.next} />\n ) }\n </li>\n\n { props.showFirstLastPage && (\n <li class=\"v-pagination__last\" data-test=\"v-pagination-last\">\n { slots.last ? slots.last(controls.value.last) : (\n <VBtn {...controls.value.last} />\n ) }\n </li>\n ) }\n </ul>\n </props.tag>\n )\n },\n})\n\nexport type VPagination = InstanceType<typeof VPagination>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VPagination.mjs","names":["VBtn","IconValue","makeBorderProps","makeDensityProps","makeElevationProps","makeRoundedProps","makeSizeProps","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","provideDefaults","useLocale","useProxiedModel","useRefs","useResizeObserver","useRtl","computed","nextTick","ref","toRef","createRange","defineComponent","keyValues","useRender","VPagination","name","props","start","type","Number","String","default","modelValue","disabled","Boolean","length","validator","val","totalVisible","firstIcon","prevIcon","nextIcon","lastIcon","ariaLabel","pageAriaLabel","currentPageAriaLabel","firstAriaLabel","previousAriaLabel","nextAriaLabel","lastAriaLabel","ellipsis","showFirstLastPage","tag","variant","emits","value","first","prev","next","last","setup","slots","emit","page","t","n","isRtl","themeClasses","maxButtons","undefined","scoped","resizeRef","entries","target","contentRect","firstItem","querySelector","totalWidth","width","itemWidth","getBoundingClientRect","Math","max","floor","parseInt","min","range","even","middle","left","right","rangeLength","rangeStart","ceil","setValue","e","event","preventDefault","refs","updateRef","border","density","size","items","map","item","index","isActive","icon","elevation","rounded","color","ariaCurrent","onClick","controls","prevDisabled","nextDisabled","ariaDisabled","updateFocus","currentIndex","$el","focus","onKeydown","key"],"sources":["../../../src/components/VPagination/VPagination.tsx"],"sourcesContent":["// Styles\nimport './VPagination.sass'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeBorderProps } from '@/composables/border'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRefs } from '@/composables/refs'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { computed, nextTick, ref, toRef } from 'vue'\nimport { createRange, defineComponent, keyValues, useRender } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance } from 'vue'\n\nexport const VPagination = defineComponent({\n name: 'VPagination',\n\n props: {\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n firstIcon: {\n type: IconValue,\n default: '$first',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n lastIcon: {\n type: IconValue,\n default: '$last',\n },\n ariaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.root',\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n firstAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.first',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n lastAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.last',\n },\n ellipsis: {\n type: String,\n default: '...',\n },\n showFirstLastPage: Boolean,\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n },\n\n emits: {\n 'update:modelValue': (value: number) => true,\n first: (value: number) => true,\n prev: (value: number) => true,\n next: (value: number) => true,\n last: (value: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const page = useProxiedModel(props, 'modelValue')\n const { t, n } = useLocale()\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const maxButtons = ref(-1)\n\n provideDefaults(undefined, { scoped: true })\n\n const { resizeRef } = useResizeObserver((entries: ResizeObserverEntry[]) => {\n if (!entries.length) return\n\n const { target, contentRect } = entries[0]\n\n const firstItem = target.querySelector('.v-pagination__list > *')\n\n if (!firstItem) return\n\n const totalWidth = contentRect.width\n const itemWidth = firstItem.getBoundingClientRect().width + 10\n\n maxButtons.value = Math.max(0, Math.floor((totalWidth - 96) / itemWidth))\n })\n\n const length = computed(() => parseInt(props.length, 10))\n const start = computed(() => parseInt(props.start, 10))\n\n const totalVisible = computed(() => {\n if (props.totalVisible) return Math.min(parseInt(props.totalVisible ?? '', 10), length.value)\n else if (maxButtons.value >= 0) return maxButtons.value\n return length.value\n })\n\n const range = computed(() => {\n if (length.value <= 0) return []\n\n if (totalVisible.value <= 2) return [page.value]\n\n if (length.value <= totalVisible.value) {\n return createRange(length.value, start.value)\n }\n\n const even = totalVisible.value % 2 === 0\n const middle = even ? totalVisible.value / 2 : Math.floor(totalVisible.value / 2)\n const left = even ? middle : middle + 1\n const right = length.value - middle\n\n if (left - page.value >= 0) {\n return [...createRange(Math.max(1, totalVisible.value - 1), start.value), props.ellipsis, length.value]\n } else if (page.value - right >= 0) {\n const rangeLength = totalVisible.value - 1\n const rangeStart = length.value - rangeLength + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart)]\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3)\n const rangeStart = rangeLength === 1 ? page.value : page.value - Math.ceil(rangeLength / 2) + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart), props.ellipsis, length.value]\n }\n })\n\n // TODO: 'first' | 'prev' | 'next' | 'last' does not work here?\n function setValue (e: Event, value: number, event?: any) {\n e.preventDefault()\n page.value = value\n event && emit(event, value)\n }\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>()\n\n provideDefaults({\n VBtn: {\n border: toRef(props, 'border'),\n density: toRef(props, 'density'),\n size: toRef(props, 'size'),\n variant: toRef(props, 'variant'),\n },\n })\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index)\n\n if (typeof item === 'string') {\n return {\n isActive: false,\n page: item,\n props: {\n ref,\n ellipsis: true,\n icon: true,\n disabled: true,\n },\n }\n } else {\n const isActive = item === page.value\n return {\n isActive,\n page: n(item),\n props: {\n ref,\n ellipsis: false,\n icon: true,\n disabled: !!props.disabled || props.length < 2,\n elevation: props.elevation,\n rounded: props.rounded,\n color: isActive ? props.color : undefined,\n ariaCurrent: isActive,\n ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, index + 1),\n onClick: (e: Event) => setValue(e, item),\n },\n }\n }\n })\n })\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value\n const nextDisabled = !!props.disabled || page.value >= start.value + length.value - 1\n\n return {\n first: props.showFirstLastPage ? {\n icon: isRtl.value ? props.lastIcon : props.firstIcon,\n onClick: (e: Event) => setValue(e, start.value, 'first'),\n disabled: prevDisabled,\n ariaLabel: t(props.firstAriaLabel),\n ariaDisabled: prevDisabled,\n } : undefined,\n prev: {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n onClick: (e: Event) => setValue(e, page.value - 1, 'prev'),\n disabled: prevDisabled,\n ariaLabel: t(props.previousAriaLabel),\n ariaDisabled: prevDisabled,\n },\n next: {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n onClick: (e: Event) => setValue(e, page.value + 1, 'next'),\n disabled: nextDisabled,\n ariaLabel: t(props.nextAriaLabel),\n ariaDisabled: nextDisabled,\n },\n last: props.showFirstLastPage ? {\n icon: isRtl.value ? props.firstIcon : props.lastIcon,\n onClick: (e: Event) => setValue(e, start.value + length.value - 1, 'last'),\n disabled: nextDisabled,\n ariaLabel: t(props.lastAriaLabel),\n ariaDisabled: nextDisabled,\n } : undefined,\n }\n })\n\n function updateFocus () {\n const currentIndex = page.value - start.value\n refs.value[currentIndex]?.$el.focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === keyValues.left && !props.disabled && page.value > props.start) {\n page.value = page.value - 1\n nextTick(updateFocus)\n } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {\n page.value = page.value + 1\n nextTick(updateFocus)\n }\n }\n\n useRender(() => (\n <props.tag\n ref={ resizeRef }\n class={[\n 'v-pagination',\n themeClasses.value,\n ]}\n role=\"navigation\"\n aria-label={ t(props.ariaLabel) }\n onKeydown={ onKeydown }\n data-test=\"v-pagination-root\"\n >\n <ul class=\"v-pagination__list\">\n { props.showFirstLastPage && (\n <li key=\"first\" class=\"v-pagination__first\" data-test=\"v-pagination-first\">\n { slots.first ? slots.first(controls.value.first) : (\n <VBtn {...controls.value.first} />\n ) }\n </li>\n ) }\n\n <li class=\"v-pagination__prev\" data-test=\"v-pagination-prev\">\n { slots.prev ? slots.prev(controls.value.prev) : (\n <VBtn {...controls.value.prev} />\n ) }\n </li>\n\n { items.value.map((item, index) => (\n <li\n key={ `${index}_${item.page}` }\n class={[\n 'v-pagination__item',\n {\n 'v-pagination__item--is-active': item.isActive,\n },\n ]}\n data-test=\"v-pagination-item\"\n >\n { slots.item ? slots.item(item) : (\n <VBtn {...item.props}>{ item.page }</VBtn>\n ) }\n </li>\n )) }\n\n <li class=\"v-pagination__next\" data-test=\"v-pagination-next\">\n { slots.next ? slots.next(controls.value.next) : (\n <VBtn {...controls.value.next} />\n ) }\n </li>\n\n { props.showFirstLastPage && (\n <li key=\"last\" class=\"v-pagination__last\" data-test=\"v-pagination-last\">\n { slots.last ? slots.last(controls.value.last) : (\n <VBtn {...controls.value.last} />\n ) }\n </li>\n ) }\n </ul>\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VPagination = InstanceType<typeof VPagination>\n"],"mappings":";AAAA;AACA,2B,CAEA;;SACSA,I,6BAET;;SACSC,S;SACAC,e;SACAC,gB;SACAC,kB;SACAC,gB;SACAC,a;SACAC,Y;SACAC,c,EAAgBC,Y;SAChBC,gB;SACAC,e;SACAC,S;SACAC,e;SACAC,O;SACAC,iB;SACAC,M,qCAET;;AACA,SAASC,QAAT,EAAmBC,QAAnB,EAA6BC,GAA7B,EAAkCC,KAAlC,QAA+C,KAA/C;SACSC,W,EAAaC,e,EAAiBC,S,EAAWC,S,gCAElD;;AAGA,OAAO,MAAMC,WAAW,GAAGH,eAAe,CAAC;EACzCI,IAAI,EAAE,aADmC;EAGzCC,KAAK,EAAE;IACLC,KAAK,EAAE;MACLC,IAAI,EAAE,CAACC,MAAD,EAASC,MAAT,CADD;MAELC,OAAO,EAAE;IAFJ,CADF;IAKLC,UAAU,EAAE;MACVJ,IAAI,EAAEC,MADI;MAEVE,OAAO,EAAGL,KAAD,IAAgBA,KAAK,CAACC;IAFrB,CALP;IASLM,QAAQ,EAAEC,OATL;IAULC,MAAM,EAAE;MACNP,IAAI,EAAE,CAACC,MAAD,EAASC,MAAT,CADA;MAENC,OAAO,EAAE,CAFH;MAGNK,SAAS,EAAGC,GAAD,IAAiBA,GAAG,GAAG,CAAN,KAAY;IAHlC,CAVH;IAeLC,YAAY,EAAE,CAACT,MAAD,EAASC,MAAT,CAfT;IAgBLS,SAAS,EAAE;MACTX,IAAI,EAAE5B,SADG;MAET+B,OAAO,EAAE;IAFA,CAhBN;IAoBLS,QAAQ,EAAE;MACRZ,IAAI,EAAE5B,SADE;MAER+B,OAAO,EAAE;IAFD,CApBL;IAwBLU,QAAQ,EAAE;MACRb,IAAI,EAAE5B,SADE;MAER+B,OAAO,EAAE;IAFD,CAxBL;IA4BLW,QAAQ,EAAE;MACRd,IAAI,EAAE5B,SADE;MAER+B,OAAO,EAAE;IAFD,CA5BL;IAgCLY,SAAS,EAAE;MACTf,IAAI,EAAEE,MADG;MAETC,OAAO,EAAE;IAFA,CAhCN;IAoCLa,aAAa,EAAE;MACbhB,IAAI,EAAEE,MADO;MAEbC,OAAO,EAAE;IAFI,CApCV;IAwCLc,oBAAoB,EAAE;MACpBjB,IAAI,EAAEE,MADc;MAEpBC,OAAO,EAAE;IAFW,CAxCjB;IA4CLe,cAAc,EAAE;MACdlB,IAAI,EAAEE,MADQ;MAEdC,OAAO,EAAE;IAFK,CA5CX;IAgDLgB,iBAAiB,EAAE;MACjBnB,IAAI,EAAEE,MADW;MAEjBC,OAAO,EAAE;IAFQ,CAhDd;IAoDLiB,aAAa,EAAE;MACbpB,IAAI,EAAEE,MADO;MAEbC,OAAO,EAAE;IAFI,CApDV;IAwDLkB,aAAa,EAAE;MACbrB,IAAI,EAAEE,MADO;MAEbC,OAAO,EAAE;IAFI,CAxDV;IA4DLmB,QAAQ,EAAE;MACRtB,IAAI,EAAEE,MADE;MAERC,OAAO,EAAE;IAFD,CA5DL;IAgELoB,iBAAiB,EAAEjB,OAhEd;IAkEL,GAAGjC,eAAe,EAlEb;IAmEL,GAAGC,gBAAgB,EAnEd;IAoEL,GAAGC,kBAAkB,EApEhB;IAqEL,GAAGC,gBAAgB,EArEd;IAsEL,GAAGC,aAAa,EAtEX;IAuEL,GAAGC,YAAY,CAAC;MAAE8C,GAAG,EAAE;IAAP,CAAD,CAvEV;IAwEL,GAAG7C,cAAc,EAxEZ;IAyEL,GAAGE,gBAAgB,CAAC;MAAE4C,OAAO,EAAE;IAAX,CAAD;EAzEd,CAHkC;EA+EzCC,KAAK,EAAE;IACL,qBAAsBC,KAAD,IAAmB,IADnC;IAELC,KAAK,EAAGD,KAAD,IAAmB,IAFrB;IAGLE,IAAI,EAAGF,KAAD,IAAmB,IAHpB;IAILG,IAAI,EAAGH,KAAD,IAAmB,IAJpB;IAKLI,IAAI,EAAGJ,KAAD,IAAmB;EALpB,CA/EkC;;EAuFzCK,KAAK,CAAElC,KAAF,QAA0B;IAAA,IAAjB;MAAEmC,KAAF;MAASC;IAAT,CAAiB;IAC7B,MAAMC,IAAI,GAAGnD,eAAe,CAACc,KAAD,EAAQ,YAAR,CAA5B;IACA,MAAM;MAAEsC,CAAF;MAAKC;IAAL,IAAWtD,SAAS,EAA1B;IACA,MAAM;MAAEuD;IAAF,IAAYnD,MAAM,EAAxB;IACA,MAAM;MAAEoD;IAAF,IAAmB3D,YAAY,CAACkB,KAAD,CAArC;IACA,MAAM0C,UAAU,GAAGlD,GAAG,CAAC,CAAC,CAAF,CAAtB;IAEAR,eAAe,CAAC2D,SAAD,EAAY;MAAEC,MAAM,EAAE;IAAV,CAAZ,CAAf;IAEA,MAAM;MAAEC;IAAF,IAAgBzD,iBAAiB,CAAE0D,OAAD,IAAoC;MAC1E,IAAI,CAACA,OAAO,CAACrC,MAAb,EAAqB;MAErB,MAAM;QAAEsC,MAAF;QAAUC;MAAV,IAA0BF,OAAO,CAAC,CAAD,CAAvC;MAEA,MAAMG,SAAS,GAAGF,MAAM,CAACG,aAAP,CAAqB,yBAArB,CAAlB;MAEA,IAAI,CAACD,SAAL,EAAgB;MAEhB,MAAME,UAAU,GAAGH,WAAW,CAACI,KAA/B;MACA,MAAMC,SAAS,GAAGJ,SAAS,CAACK,qBAAV,GAAkCF,KAAlC,GAA0C,EAA5D;MAEAV,UAAU,CAACb,KAAX,GAAmB0B,IAAI,CAACC,GAAL,CAAS,CAAT,EAAYD,IAAI,CAACE,KAAL,CAAW,CAACN,UAAU,GAAG,EAAd,IAAoBE,SAA/B,CAAZ,CAAnB;IACD,CAbsC,CAAvC;IAeA,MAAM5C,MAAM,GAAGnB,QAAQ,CAAC,MAAMoE,QAAQ,CAAC1D,KAAK,CAACS,MAAP,EAAe,EAAf,CAAf,CAAvB;IACA,MAAMR,KAAK,GAAGX,QAAQ,CAAC,MAAMoE,QAAQ,CAAC1D,KAAK,CAACC,KAAP,EAAc,EAAd,CAAf,CAAtB;IAEA,MAAMW,YAAY,GAAGtB,QAAQ,CAAC,MAAM;MAAA;;MAClC,IAAIU,KAAK,CAACY,YAAV,EAAwB,OAAO2C,IAAI,CAACI,GAAL,CAASD,QAAQ,wBAAC1D,KAAK,CAACY,YAAP,kCAAuB,EAAvB,EAA2B,EAA3B,CAAjB,EAAiDH,MAAM,CAACoB,KAAxD,CAAP,CAAxB,KACK,IAAIa,UAAU,CAACb,KAAX,IAAoB,CAAxB,EAA2B,OAAOa,UAAU,CAACb,KAAlB;MAChC,OAAOpB,MAAM,CAACoB,KAAd;IACD,CAJ4B,CAA7B;IAMA,MAAM+B,KAAK,GAAGtE,QAAQ,CAAC,MAAM;MAC3B,IAAImB,MAAM,CAACoB,KAAP,IAAgB,CAApB,EAAuB,OAAO,EAAP;MAEvB,IAAIjB,YAAY,CAACiB,KAAb,IAAsB,CAA1B,EAA6B,OAAO,CAACQ,IAAI,CAACR,KAAN,CAAP;;MAE7B,IAAIpB,MAAM,CAACoB,KAAP,IAAgBjB,YAAY,CAACiB,KAAjC,EAAwC;QACtC,OAAOnC,WAAW,CAACe,MAAM,CAACoB,KAAR,EAAe5B,KAAK,CAAC4B,KAArB,CAAlB;MACD;;MAED,MAAMgC,IAAI,GAAGjD,YAAY,CAACiB,KAAb,GAAqB,CAArB,KAA2B,CAAxC;MACA,MAAMiC,MAAM,GAAGD,IAAI,GAAGjD,YAAY,CAACiB,KAAb,GAAqB,CAAxB,GAA4B0B,IAAI,CAACE,KAAL,CAAW7C,YAAY,CAACiB,KAAb,GAAqB,CAAhC,CAA/C;MACA,MAAMkC,IAAI,GAAGF,IAAI,GAAGC,MAAH,GAAYA,MAAM,GAAG,CAAtC;MACA,MAAME,KAAK,GAAGvD,MAAM,CAACoB,KAAP,GAAeiC,MAA7B;;MAEA,IAAIC,IAAI,GAAG1B,IAAI,CAACR,KAAZ,IAAqB,CAAzB,EAA4B;QAC1B,OAAO,CAAC,GAAGnC,WAAW,CAAC6D,IAAI,CAACC,GAAL,CAAS,CAAT,EAAY5C,YAAY,CAACiB,KAAb,GAAqB,CAAjC,CAAD,EAAsC5B,KAAK,CAAC4B,KAA5C,CAAf,EAAmE7B,KAAK,CAACwB,QAAzE,EAAmFf,MAAM,CAACoB,KAA1F,CAAP;MACD,CAFD,MAEO,IAAIQ,IAAI,CAACR,KAAL,GAAamC,KAAb,IAAsB,CAA1B,EAA6B;QAClC,MAAMC,WAAW,GAAGrD,YAAY,CAACiB,KAAb,GAAqB,CAAzC;QACA,MAAMqC,UAAU,GAAGzD,MAAM,CAACoB,KAAP,GAAeoC,WAAf,GAA6BhE,KAAK,CAAC4B,KAAtD;QACA,OAAO,CAAC5B,KAAK,CAAC4B,KAAP,EAAc7B,KAAK,CAACwB,QAApB,EAA8B,GAAG9B,WAAW,CAACuE,WAAD,EAAcC,UAAd,CAA5C,CAAP;MACD,CAJM,MAIA;QACL,MAAMD,WAAW,GAAGV,IAAI,CAACC,GAAL,CAAS,CAAT,EAAY5C,YAAY,CAACiB,KAAb,GAAqB,CAAjC,CAApB;QACA,MAAMqC,UAAU,GAAGD,WAAW,KAAK,CAAhB,GAAoB5B,IAAI,CAACR,KAAzB,GAAiCQ,IAAI,CAACR,KAAL,GAAa0B,IAAI,CAACY,IAAL,CAAUF,WAAW,GAAG,CAAxB,CAAb,GAA0ChE,KAAK,CAAC4B,KAApG;QACA,OAAO,CAAC5B,KAAK,CAAC4B,KAAP,EAAc7B,KAAK,CAACwB,QAApB,EAA8B,GAAG9B,WAAW,CAACuE,WAAD,EAAcC,UAAd,CAA5C,EAAuElE,KAAK,CAACwB,QAA7E,EAAuFf,MAAM,CAACoB,KAA9F,CAAP;MACD;IACF,CAzBqB,CAAtB,CAjC6B,CA4D7B;;IACA,SAASuC,QAAT,CAAmBC,CAAnB,EAA6BxC,KAA7B,EAA4CyC,KAA5C,EAAyD;MACvDD,CAAC,CAACE,cAAF;MACAlC,IAAI,CAACR,KAAL,GAAaA,KAAb;MACAyC,KAAK,IAAIlC,IAAI,CAACkC,KAAD,EAAQzC,KAAR,CAAb;IACD;;IAED,MAAM;MAAE2C,IAAF;MAAQC;IAAR,IAAsBtF,OAAO,EAAnC;IAEAH,eAAe,CAAC;MACdX,IAAI,EAAE;QACJqG,MAAM,EAAEjF,KAAK,CAACO,KAAD,EAAQ,QAAR,CADT;QAEJ2E,OAAO,EAAElF,KAAK,CAACO,KAAD,EAAQ,SAAR,CAFV;QAGJ4E,IAAI,EAAEnF,KAAK,CAACO,KAAD,EAAQ,MAAR,CAHP;QAIJ2B,OAAO,EAAElC,KAAK,CAACO,KAAD,EAAQ,SAAR;MAJV;IADQ,CAAD,CAAf;IASA,MAAM6E,KAAK,GAAGvF,QAAQ,CAAC,MAAM;MAC3B,OAAOsE,KAAK,CAAC/B,KAAN,CAAYiD,GAAZ,CAAgB,CAACC,IAAD,EAAOC,KAAP,KAAiB;QACtC,MAAMxF,GAAG,GAAI6E,CAAD,IAAYI,SAAS,CAACJ,CAAD,EAAIW,KAAJ,CAAjC;;QAEA,IAAI,OAAOD,IAAP,KAAgB,QAApB,EAA8B;UAC5B,OAAO;YACLE,QAAQ,EAAE,KADL;YAEL5C,IAAI,EAAE0C,IAFD;YAGL/E,KAAK,EAAE;cACLR,GADK;cAELgC,QAAQ,EAAE,IAFL;cAGL0D,IAAI,EAAE,IAHD;cAIL3E,QAAQ,EAAE;YAJL;UAHF,CAAP;QAUD,CAXD,MAWO;UACL,MAAM0E,QAAQ,GAAGF,IAAI,KAAK1C,IAAI,CAACR,KAA/B;UACA,OAAO;YACLoD,QADK;YAEL5C,IAAI,EAAEE,CAAC,CAACwC,IAAD,CAFF;YAGL/E,KAAK,EAAE;cACLR,GADK;cAELgC,QAAQ,EAAE,KAFL;cAGL0D,IAAI,EAAE,IAHD;cAIL3E,QAAQ,EAAE,CAAC,CAACP,KAAK,CAACO,QAAR,IAAoBP,KAAK,CAACS,MAAN,GAAe,CAJxC;cAKL0E,SAAS,EAAEnF,KAAK,CAACmF,SALZ;cAMLC,OAAO,EAAEpF,KAAK,CAACoF,OANV;cAOLC,KAAK,EAAEJ,QAAQ,GAAGjF,KAAK,CAACqF,KAAT,GAAiB1C,SAP3B;cAQL2C,WAAW,EAAEL,QARR;cASLhE,SAAS,EAAEqB,CAAC,CAAC2C,QAAQ,GAAGjF,KAAK,CAACmB,oBAAT,GAAgCnB,KAAK,CAACkB,aAA/C,EAA8D8D,KAAK,GAAG,CAAtE,CATP;cAULO,OAAO,EAAGlB,CAAD,IAAcD,QAAQ,CAACC,CAAD,EAAIU,IAAJ;YAV1B;UAHF,CAAP;QAgBD;MACF,CAjCM,CAAP;IAkCD,CAnCqB,CAAtB;IAqCA,MAAMS,QAAQ,GAAGlG,QAAQ,CAAC,MAAM;MAC9B,MAAMmG,YAAY,GAAG,CAAC,CAACzF,KAAK,CAACO,QAAR,IAAoB8B,IAAI,CAACR,KAAL,IAAc5B,KAAK,CAAC4B,KAA7D;MACA,MAAM6D,YAAY,GAAG,CAAC,CAAC1F,KAAK,CAACO,QAAR,IAAoB8B,IAAI,CAACR,KAAL,IAAc5B,KAAK,CAAC4B,KAAN,GAAcpB,MAAM,CAACoB,KAArB,GAA6B,CAApF;MAEA,OAAO;QACLC,KAAK,EAAE9B,KAAK,CAACyB,iBAAN,GAA0B;UAC/ByD,IAAI,EAAE1C,KAAK,CAACX,KAAN,GAAc7B,KAAK,CAACgB,QAApB,GAA+BhB,KAAK,CAACa,SADZ;UAE/B0E,OAAO,EAAGlB,CAAD,IAAcD,QAAQ,CAACC,CAAD,EAAIpE,KAAK,CAAC4B,KAAV,EAAiB,OAAjB,CAFA;UAG/BtB,QAAQ,EAAEkF,YAHqB;UAI/BxE,SAAS,EAAEqB,CAAC,CAACtC,KAAK,CAACoB,cAAP,CAJmB;UAK/BuE,YAAY,EAAEF;QALiB,CAA1B,GAMH9C,SAPC;QAQLZ,IAAI,EAAE;UACJmD,IAAI,EAAE1C,KAAK,CAACX,KAAN,GAAc7B,KAAK,CAACe,QAApB,GAA+Bf,KAAK,CAACc,QADvC;UAEJyE,OAAO,EAAGlB,CAAD,IAAcD,QAAQ,CAACC,CAAD,EAAIhC,IAAI,CAACR,KAAL,GAAa,CAAjB,EAAoB,MAApB,CAF3B;UAGJtB,QAAQ,EAAEkF,YAHN;UAIJxE,SAAS,EAAEqB,CAAC,CAACtC,KAAK,CAACqB,iBAAP,CAJR;UAKJsE,YAAY,EAAEF;QALV,CARD;QAeLzD,IAAI,EAAE;UACJkD,IAAI,EAAE1C,KAAK,CAACX,KAAN,GAAc7B,KAAK,CAACc,QAApB,GAA+Bd,KAAK,CAACe,QADvC;UAEJwE,OAAO,EAAGlB,CAAD,IAAcD,QAAQ,CAACC,CAAD,EAAIhC,IAAI,CAACR,KAAL,GAAa,CAAjB,EAAoB,MAApB,CAF3B;UAGJtB,QAAQ,EAAEmF,YAHN;UAIJzE,SAAS,EAAEqB,CAAC,CAACtC,KAAK,CAACsB,aAAP,CAJR;UAKJqE,YAAY,EAAED;QALV,CAfD;QAsBLzD,IAAI,EAAEjC,KAAK,CAACyB,iBAAN,GAA0B;UAC9ByD,IAAI,EAAE1C,KAAK,CAACX,KAAN,GAAc7B,KAAK,CAACa,SAApB,GAAgCb,KAAK,CAACgB,QADd;UAE9BuE,OAAO,EAAGlB,CAAD,IAAcD,QAAQ,CAACC,CAAD,EAAIpE,KAAK,CAAC4B,KAAN,GAAcpB,MAAM,CAACoB,KAArB,GAA6B,CAAjC,EAAoC,MAApC,CAFD;UAG9BtB,QAAQ,EAAEmF,YAHoB;UAI9BzE,SAAS,EAAEqB,CAAC,CAACtC,KAAK,CAACuB,aAAP,CAJkB;UAK9BoE,YAAY,EAAED;QALgB,CAA1B,GAMF/C;MA5BC,CAAP;IA8BD,CAlCwB,CAAzB;;IAoCA,SAASiD,WAAT,GAAwB;MAAA;;MACtB,MAAMC,YAAY,GAAGxD,IAAI,CAACR,KAAL,GAAa5B,KAAK,CAAC4B,KAAxC;MACA,yBAAA2C,IAAI,CAAC3C,KAAL,CAAWgE,YAAX,4CAA0BC,GAA1B,CAA8BC,KAA9B;IACD;;IAED,SAASC,SAAT,CAAoB3B,CAApB,EAAsC;MACpC,IAAIA,CAAC,CAAC4B,GAAF,KAAUrG,SAAS,CAACmE,IAApB,IAA4B,CAAC/D,KAAK,CAACO,QAAnC,IAA+C8B,IAAI,CAACR,KAAL,GAAa7B,KAAK,CAACC,KAAtE,EAA6E;QAC3EoC,IAAI,CAACR,KAAL,GAAaQ,IAAI,CAACR,KAAL,GAAa,CAA1B;QACAtC,QAAQ,CAACqG,WAAD,CAAR;MACD,CAHD,MAGO,IAAIvB,CAAC,CAAC4B,GAAF,KAAUrG,SAAS,CAACoE,KAApB,IAA6B,CAAChE,KAAK,CAACO,QAApC,IAAgD8B,IAAI,CAACR,KAAL,GAAa5B,KAAK,CAAC4B,KAAN,GAAcpB,MAAM,CAACoB,KAArB,GAA6B,CAA9F,EAAiG;QACtGQ,IAAI,CAACR,KAAL,GAAaQ,IAAI,CAACR,KAAL,GAAa,CAA1B;QACAtC,QAAQ,CAACqG,WAAD,CAAR;MACD;IACF;;IAED/F,SAAS,CAAC;MAAA,OAEAgD,SAFA;MAAA,SAGC,CACL,cADK,EAELJ,YAAY,CAACZ,KAFR,CAHD;MAAA,QAOD,YAPC;MAAA,cAQOS,CAAC,CAACtC,KAAK,CAACiB,SAAP,CARR;MAAA,aASM+E,SATN;MAAA,aAUI;IAVJ;MAAA;QAAA,SAYI;MAZJ,IAaFhG,KAAK,CAACyB,iBAAN;QAAA,OACQ,OADR;QAAA,SACsB,qBADtB;QAAA,aACsD;MADtD,IAEIU,KAAK,CAACL,KAAN,GAAcK,KAAK,CAACL,KAAN,CAAY0D,QAAQ,CAAC3D,KAAT,CAAeC,KAA3B,CAAd,sBACU0D,QAAQ,CAAC3D,KAAT,CAAeC,KADzB,OAFJ,EAbE;QAAA,SAqBM,oBArBN;QAAA,aAqBqC;MArBrC,IAsBAK,KAAK,CAACJ,IAAN,GAAaI,KAAK,CAACJ,IAAN,CAAWyD,QAAQ,CAAC3D,KAAT,CAAeE,IAA1B,CAAb,sBACUyD,QAAQ,CAAC3D,KAAT,CAAeE,IADzB,OAtBA,IA2BF8C,KAAK,CAAChD,KAAN,CAAYiD,GAAZ,CAAgB,CAACC,IAAD,EAAOC,KAAP;QAAA,OAEP,GAAEA,KAAM,IAAGD,IAAI,CAAC1C,IAAK,EAFd;QAAA,SAGP,CACL,oBADK,EAEL;UACE,iCAAiC0C,IAAI,CAACE;QADxC,CAFK,CAHO;QAAA,aASJ;MATI,IAWZ9C,KAAK,CAAC4C,IAAN,GAAa5C,KAAK,CAAC4C,IAAN,CAAWA,IAAX,CAAb,sBACUA,IAAI,CAAC/E,KADf;QAAA,gBACwB+E,IAAI,CAAC1C,IAD7B;MAAA,EAXY,EAAhB,CA3BE;QAAA,SA4CM,oBA5CN;QAAA,aA4CqC;MA5CrC,IA6CAF,KAAK,CAACH,IAAN,GAAaG,KAAK,CAACH,IAAN,CAAWwD,QAAQ,CAAC3D,KAAT,CAAeG,IAA1B,CAAb,sBACUwD,QAAQ,CAAC3D,KAAT,CAAeG,IADzB,OA7CA,IAkDFhC,KAAK,CAACyB,iBAAN;QAAA,OACQ,MADR;QAAA,SACqB,oBADrB;QAAA,aACoD;MADpD,IAEIU,KAAK,CAACF,IAAN,GAAaE,KAAK,CAACF,IAAN,CAAWuD,QAAQ,CAAC3D,KAAT,CAAeI,IAA1B,CAAb,sBACUuD,QAAQ,CAAC3D,KAAT,CAAeI,IADzB,OAFJ,EAlDE;IAAA,EAAD,CAAT;IA6DA,OAAO,EAAP;EACD;;AA3TwC,CAAD,CAAnC"}
|
|
@@ -6,8 +6,8 @@ import { VImg } from "../VImg/index.mjs"; // Composables
|
|
|
6
6
|
|
|
7
7
|
import { useIntersectionObserver } from "../../composables/intersectionObserver.mjs"; // Utilities
|
|
8
8
|
|
|
9
|
+
import { defineComponent, getScrollParent, useRender } from "../../util/index.mjs";
|
|
9
10
|
import { onBeforeUnmount, ref, watch, watchEffect } from 'vue';
|
|
10
|
-
import { defineComponent, getScrollParent } from "../../util/index.mjs";
|
|
11
11
|
|
|
12
12
|
function floor(val) {
|
|
13
13
|
return Math.floor(Math.abs(val)) * Math.sign(val);
|
|
@@ -24,14 +24,13 @@ export const VParallax = defineComponent({
|
|
|
24
24
|
|
|
25
25
|
setup(props, _ref) {
|
|
26
26
|
let {
|
|
27
|
-
attrs,
|
|
28
27
|
slots
|
|
29
28
|
} = _ref;
|
|
30
|
-
const root = ref();
|
|
31
29
|
const {
|
|
32
30
|
intersectionRef,
|
|
33
31
|
isIntersecting
|
|
34
32
|
} = useIntersectionObserver();
|
|
33
|
+
const root = ref();
|
|
35
34
|
watchEffect(() => {
|
|
36
35
|
var _root$value;
|
|
37
36
|
|
|
@@ -75,7 +74,7 @@ export const VParallax = defineComponent({
|
|
|
75
74
|
});
|
|
76
75
|
}
|
|
77
76
|
|
|
78
|
-
|
|
77
|
+
useRender(() => _createVNode(VImg, {
|
|
79
78
|
"class": ['v-parallax', {
|
|
80
79
|
'v-parallax--active': isIntersecting.value
|
|
81
80
|
}],
|
|
@@ -83,7 +82,8 @@ export const VParallax = defineComponent({
|
|
|
83
82
|
"cover": true,
|
|
84
83
|
"onLoadstart": onScroll,
|
|
85
84
|
"onLoad": onScroll
|
|
86
|
-
}, slots);
|
|
85
|
+
}, slots));
|
|
86
|
+
return {};
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VParallax.mjs","names":["VImg","useIntersectionObserver","
|
|
1
|
+
{"version":3,"file":"VParallax.mjs","names":["VImg","useIntersectionObserver","defineComponent","getScrollParent","useRender","onBeforeUnmount","ref","watch","watchEffect","floor","val","Math","abs","sign","VParallax","name","props","scale","type","Number","String","default","setup","slots","intersectionRef","isIntersecting","root","value","$el","scrollParent","document","scrollingElement","addEventListener","onScroll","passive","removeEventListener","frame","cancelAnimationFrame","requestAnimationFrame","el","querySelector","rect","getBoundingClientRect","scrollHeight","clientHeight","window","innerHeight","scrollPos","scrollTop","scrollY","top","progress","height","translate","style","setProperty"],"sources":["../../../src/components/VParallax/VParallax.tsx"],"sourcesContent":["// Styles\nimport './VParallax.sass'\n\n// Components\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\n\n// Utilities\nimport { defineComponent, getScrollParent, useRender } from '@/util'\nimport { onBeforeUnmount, ref, watch, watchEffect } from 'vue'\n\nfunction floor (val: number) {\n return Math.floor(Math.abs(val)) * Math.sign(val)\n}\n\nexport const VParallax = defineComponent({\n name: 'VParallax',\n\n props: {\n scale: {\n type: [Number, String],\n default: 1.3,\n },\n },\n\n setup (props, { slots }) {\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n\n const root = ref<VImg>()\n\n watchEffect(() => {\n intersectionRef.value = root.value?.$el\n })\n\n let scrollParent: Element\n watch(isIntersecting, val => {\n if (val) {\n scrollParent = getScrollParent(intersectionRef.value)\n scrollParent = scrollParent === document.scrollingElement ? document as any : scrollParent\n scrollParent.addEventListener('scroll', onScroll, { passive: true })\n onScroll()\n } else {\n scrollParent.removeEventListener('scroll', onScroll)\n }\n })\n\n onBeforeUnmount(() => {\n scrollParent?.removeEventListener('scroll', onScroll)\n })\n\n let frame = -1\n function onScroll () {\n if (!isIntersecting.value) return\n\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => {\n const el: HTMLElement | null = (root.value?.$el as Element).querySelector('.v-img__img')\n if (!el) return\n\n const rect = intersectionRef.value!.getBoundingClientRect()\n const scrollHeight = scrollParent.clientHeight ?? window.innerHeight\n const scrollPos = scrollParent.scrollTop ?? window.scrollY\n const top = rect.top + scrollPos\n const progress = (scrollPos + scrollHeight - top) / (rect.height + scrollHeight)\n const translate = floor((rect.height * +props.scale - rect.height) * (-progress + 0.5))\n\n el.style.setProperty('transform', `translateY(${translate}px) scale(${props.scale})`)\n })\n }\n\n useRender(() => (\n <VImg\n class={[\n 'v-parallax',\n { 'v-parallax--active': isIntersecting.value },\n ]}\n ref={ root }\n cover\n onLoadstart={ onScroll }\n onLoad={ onScroll }\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VParallax = InstanceType<typeof VParallax>\n"],"mappings":"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"}
|
|
@@ -6,11 +6,11 @@ import { makeSizeProps, useSize } from "../../composables/size.mjs";
|
|
|
6
6
|
import { makeTagProps } from "../../composables/tag.mjs";
|
|
7
7
|
import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
|
|
8
8
|
import { useIntersectionObserver } from "../../composables/intersectionObserver.mjs";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
9
|
+
import { useResizeObserver } from "../../composables/resizeObserver.mjs";
|
|
10
|
+
import { useTextColor } from "../../composables/color.mjs"; // Utilities
|
|
11
11
|
|
|
12
12
|
import { computed, ref, toRef, watchEffect } from 'vue';
|
|
13
|
-
import { convertToUnit, defineComponent } from "../../util/index.mjs"; // Types
|
|
13
|
+
import { convertToUnit, defineComponent, useRender } from "../../util/index.mjs"; // Types
|
|
14
14
|
|
|
15
15
|
export const VProgressCircular = defineComponent({
|
|
16
16
|
name: 'VProgressCircular',
|
|
@@ -80,7 +80,7 @@ export const VProgressCircular = defineComponent({
|
|
|
80
80
|
intersectionRef.value = root.value;
|
|
81
81
|
resizeRef.value = root.value;
|
|
82
82
|
});
|
|
83
|
-
|
|
83
|
+
useRender(() => _createVNode(props.tag, {
|
|
84
84
|
"ref": root,
|
|
85
85
|
"class": ['v-progress-circular', {
|
|
86
86
|
'v-progress-circular--indeterminate': !!props.indeterminate,
|
|
@@ -123,7 +123,8 @@ export const VProgressCircular = defineComponent({
|
|
|
123
123
|
}, [slots.default({
|
|
124
124
|
value: normalizedValue.value
|
|
125
125
|
})])]
|
|
126
|
-
});
|
|
126
|
+
}));
|
|
127
|
+
return {};
|
|
127
128
|
}
|
|
128
129
|
|
|
129
130
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VProgressCircular.mjs","names":["makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","useIntersectionObserver","
|
|
1
|
+
{"version":3,"file":"VProgressCircular.mjs","names":["makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","useIntersectionObserver","useResizeObserver","useTextColor","computed","ref","toRef","watchEffect","convertToUnit","defineComponent","useRender","VProgressCircular","name","props","bgColor","String","color","indeterminate","Boolean","modelValue","type","Number","default","rotate","width","tag","setup","slots","MAGIC_RADIUS_CONSTANT","CIRCUMFERENCE","Math","PI","root","themeClasses","sizeClasses","sizeStyles","textColorClasses","textColorStyles","underlayColorClasses","underlayColorStyles","intersectionRef","isIntersecting","resizeRef","contentRect","normalizedValue","max","min","parseFloat","size","value","diameter","strokeWidth","strokeDashOffset","undefined","transform"],"sources":["../../../src/components/VProgressCircular/VProgressCircular.tsx"],"sourcesContent":["// Styles\nimport './VProgressCircular.sass'\n\n// Composables\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, toRef, watchEffect } from 'vue'\nimport { convertToUnit, defineComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VProgressCircular = defineComponent({\n name: 'VProgressCircular',\n\n props: {\n bgColor: String,\n color: String,\n indeterminate: [Boolean, String] as PropType<boolean | 'disable-shrink'>,\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n rotate: {\n type: [Number, String],\n default: 0,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'div' }),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const MAGIC_RADIUS_CONSTANT = 20\n const CIRCUMFERENCE = 2 * Math.PI * MAGIC_RADIUS_CONSTANT\n\n const root = ref<HTMLElement>()\n\n const { themeClasses } = provideTheme(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n const { textColorClasses: underlayColorClasses, textColorStyles: underlayColorStyles } = useTextColor(toRef(props, 'bgColor'))\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n const { resizeRef, contentRect } = useResizeObserver()\n\n const normalizedValue = computed(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))))\n const width = computed(() => Number(props.width))\n const size = computed(() => {\n // Get size from element if size prop value is small, large etc\n return sizeStyles.value\n ? Number(props.size)\n : contentRect.value\n ? contentRect.value.width\n : Math.max(width.value, 32)\n })\n const diameter = computed(() => (MAGIC_RADIUS_CONSTANT / (1 - width.value / size.value)) * 2)\n const strokeWidth = computed(() => width.value / size.value * diameter.value)\n const strokeDashOffset = computed(() => convertToUnit(((100 - normalizedValue.value) / 100) * CIRCUMFERENCE))\n\n watchEffect(() => {\n intersectionRef.value = root.value\n resizeRef.value = root.value\n })\n\n useRender(() => (\n <props.tag\n ref={ root }\n class={[\n 'v-progress-circular',\n {\n 'v-progress-circular--indeterminate': !!props.indeterminate,\n 'v-progress-circular--visible': isIntersecting.value,\n 'v-progress-circular--disable-shrink': props.indeterminate === 'disable-shrink',\n },\n themeClasses.value,\n sizeClasses.value,\n textColorClasses.value,\n ]}\n style={[\n sizeStyles.value,\n textColorStyles.value,\n ]}\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow={ props.indeterminate ? undefined : normalizedValue.value }\n >\n <svg\n style={{\n transform: `rotate(calc(-90deg + ${Number(props.rotate)}deg))`,\n }}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={ `0 0 ${diameter.value} ${diameter.value}` }\n >\n <circle\n class={[\n 'v-progress-circular__underlay',\n underlayColorClasses.value,\n ]}\n style={ underlayColorStyles.value }\n fill=\"transparent\"\n cx=\"50%\"\n cy=\"50%\"\n r={ MAGIC_RADIUS_CONSTANT }\n stroke-width={ strokeWidth.value }\n stroke-dasharray={ CIRCUMFERENCE }\n stroke-dashoffset={ 0 }\n />\n\n <circle\n class=\"v-progress-circular__overlay\"\n fill=\"transparent\"\n cx=\"50%\"\n cy=\"50%\"\n r={ MAGIC_RADIUS_CONSTANT }\n stroke-width={ strokeWidth.value }\n stroke-dasharray={ CIRCUMFERENCE }\n stroke-dashoffset={ strokeDashOffset.value }\n />\n </svg>\n\n { slots.default && (\n <div class=\"v-progress-circular__content\">\n { slots.default({ value: normalizedValue.value }) }\n </div>\n ) }\n </props.tag>\n ))\n\n return {}\n },\n})\n"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// VProgressCircular
|
|
1
2
|
$progress-circular-intermediate-svg-transition: all 0.2s ease-in-out !default;
|
|
2
3
|
$progress-circular-overlay-transition: all 0.2s ease-in-out, stroke-width 0s !default;
|
|
3
4
|
$progress-circular-rotate-animation: progress-circular-rotate 1.4s linear infinite !default;
|
|
@@ -5,6 +6,7 @@ $progress-circular-rotate-dash: progress-circular-dash 1.4s ease-in-out infinite
|
|
|
5
6
|
$progress-circular-size: 32px !default;
|
|
6
7
|
$progress-circular-underlay-color: rgba(var(--v-border-color), var(--v-border-opacity)) !default;
|
|
7
8
|
|
|
9
|
+
// Lists
|
|
8
10
|
$progress-circular-sizes: (
|
|
9
11
|
'x-small': -2,
|
|
10
12
|
'small': -1,
|
|
@@ -10,8 +10,8 @@ import { useIntersectionObserver } from "../../composables/intersectionObserver.
|
|
|
10
10
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs";
|
|
11
11
|
import { useRtl } from "../../composables/rtl.mjs"; // Utilities
|
|
12
12
|
|
|
13
|
-
import { convertToUnit, defineComponent } from "../../util/index.mjs";
|
|
14
13
|
import { computed, Transition } from 'vue';
|
|
14
|
+
import { convertToUnit, defineComponent, useRender } from "../../util/index.mjs";
|
|
15
15
|
export const VProgressLinear = defineComponent({
|
|
16
16
|
name: 'VProgressLinear',
|
|
17
17
|
props: {
|
|
@@ -103,7 +103,7 @@ export const VProgressLinear = defineComponent({
|
|
|
103
103
|
progress.value = Math.round(value / width * max.value);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
|
|
106
|
+
useRender(() => _createVNode(props.tag, {
|
|
107
107
|
"ref": intersectionRef,
|
|
108
108
|
"class": ['v-progress-linear', {
|
|
109
109
|
'v-progress-linear--active': props.active && isIntersecting.value,
|
|
@@ -123,6 +123,7 @@ export const VProgressLinear = defineComponent({
|
|
|
123
123
|
"onClick": props.clickable && handleClick
|
|
124
124
|
}, {
|
|
125
125
|
default: () => [props.stream && _createVNode("div", {
|
|
126
|
+
"key": "stream",
|
|
126
127
|
"class": ['v-progress-linear__stream', textColorClasses.value],
|
|
127
128
|
"style": { ...textColorStyles.value,
|
|
128
129
|
[isReversed.value ? 'left' : 'right']: convertToUnit(-height.value),
|
|
@@ -159,7 +160,8 @@ export const VProgressLinear = defineComponent({
|
|
|
159
160
|
value: normalizedValue.value,
|
|
160
161
|
buffer: normalizedBuffer.value
|
|
161
162
|
})])]
|
|
162
|
-
});
|
|
163
|
+
}));
|
|
164
|
+
return {};
|
|
163
165
|
}
|
|
164
166
|
|
|
165
167
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VProgressLinear.mjs","names":["makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","useBackgroundColor","useTextColor","useIntersectionObserver","useProxiedModel","useRtl","convertToUnit","defineComponent","computed","Transition","VProgressLinear","name","props","active","type","Boolean","default","bgColor","String","bgOpacity","Number","bufferValue","clickable","color","height","indeterminate","max","modelValue","reverse","stream","striped","roundedBar","emits","value","setup","slots","progress","isRtl","themeClasses","textColorClasses","textColorStyles","backgroundColorClasses","backgroundColorStyles","barColorClasses","barColorStyles","roundedClasses","intersectionRef","isIntersecting","parseInt","normalizedBuffer","parseFloat","normalizedValue","isReversed","transition","opacity","handleClick","e","left","right","width","getBoundingClientRect","clientX","Math","round","rounded","undefined","borderTop","top","map","bar","buffer"],"sources":["../../../src/components/VProgressLinear/VProgressLinear.tsx"],"sourcesContent":["// Styles\nimport './VProgressLinear.sass'\n\n// Composables\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { convertToUnit, defineComponent } from '@/util'\nimport { computed, Transition } from 'vue'\n\nexport const VProgressLinear = defineComponent({\n name: 'VProgressLinear',\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n bgColor: String,\n bgOpacity: [Number, String],\n bufferValue: {\n type: [Number, String],\n default: 0,\n },\n clickable: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n reverse: Boolean,\n stream: Boolean,\n striped: Boolean,\n roundedBar: Boolean,\n\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (value: number) => true,\n },\n\n setup (props, { slots }) {\n const progress = useProxiedModel(props, 'modelValue')\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { textColorClasses, textColorStyles } = useTextColor(props, 'color')\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(computed(() => props.bgColor || props.color))\n const { backgroundColorClasses: barColorClasses, backgroundColorStyles: barColorStyles } = useBackgroundColor(props, 'color')\n const { roundedClasses } = useRounded(props)\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n\n const max = computed(() => parseInt(props.max, 10))\n const height = computed(() => parseInt(props.height, 10))\n const normalizedBuffer = computed(() => parseFloat(props.bufferValue) / max.value * 100)\n const normalizedValue = computed(() => parseFloat(progress.value) / max.value * 100)\n const isReversed = computed(() => isRtl.value !== props.reverse)\n const transition = computed(() => props.indeterminate ? 'fade-transition' : 'slide-x-transition')\n const opacity = computed(() => {\n return props.bgOpacity == null\n ? props.bgOpacity\n : parseFloat(props.bgOpacity)\n })\n\n function handleClick (e: MouseEvent) {\n if (!intersectionRef.value) return\n\n const { left, right, width } = intersectionRef.value.getBoundingClientRect()\n const value = isReversed.value ? (width - e.clientX) + (right - width) : e.clientX - left\n\n progress.value = Math.round(value / width * max.value)\n }\n\n return () => (\n <props.tag\n ref={ intersectionRef }\n class={[\n 'v-progress-linear',\n {\n 'v-progress-linear--active': props.active && isIntersecting.value,\n 'v-progress-linear--reverse': isReversed.value,\n 'v-progress-linear--rounded': props.rounded,\n 'v-progress-linear--rounded-bar': props.roundedBar,\n 'v-progress-linear--striped': props.striped,\n },\n roundedClasses.value,\n themeClasses.value,\n ]}\n style={{\n height: props.active ? convertToUnit(height.value) : 0,\n '--v-progress-linear-height': convertToUnit(height.value),\n }}\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax={ props.max }\n aria-valuenow={ props.indeterminate ? undefined : normalizedValue.value }\n onClick={ props.clickable && handleClick }\n >\n { props.stream && (\n <div\n class={[\n 'v-progress-linear__stream',\n textColorClasses.value,\n ]}\n style={{\n ...textColorStyles.value,\n [isReversed.value ? 'left' : 'right']: convertToUnit(-height.value),\n borderTop: `${convertToUnit(height.value / 2)} dotted`,\n opacity: opacity.value,\n top: `calc(50% - ${convertToUnit(height.value / 4)})`,\n width: convertToUnit(100 - normalizedBuffer.value, '%'),\n '--v-progress-linear-stream-to': convertToUnit(height.value * (isReversed.value ? 1 : -1)),\n }}\n />\n ) }\n\n <div\n class={[\n 'v-progress-linear__background',\n backgroundColorClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n {\n opacity: opacity.value,\n width: convertToUnit((!props.stream ? 100 : normalizedBuffer.value), '%'),\n },\n ]}\n />\n\n <Transition name={ transition.value }>\n { !props.indeterminate ? (\n <div\n class={[\n 'v-progress-linear__determinate',\n barColorClasses.value,\n ]}\n style={[\n barColorStyles.value,\n { width: convertToUnit(normalizedValue.value, '%') },\n ]}\n />\n ) : (\n <div class=\"v-progress-linear__indeterminate\">\n { ['long', 'short'].map(bar => (\n <div\n key={ bar }\n class={[\n 'v-progress-linear__indeterminate',\n bar,\n barColorClasses.value,\n ]}\n style={ barColorStyles.value }\n />\n )) }\n </div>\n ) }\n </Transition>\n\n { slots.default && (\n <div class=\"v-progress-linear__content\">\n { slots.default({ value: normalizedValue.value, buffer: normalizedBuffer.value }) }\n </div>\n ) }\n </props.tag>\n )\n },\n})\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VProgressLinear.mjs","names":["makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","useBackgroundColor","useTextColor","useIntersectionObserver","useProxiedModel","useRtl","computed","Transition","convertToUnit","defineComponent","useRender","VProgressLinear","name","props","active","type","Boolean","default","bgColor","String","bgOpacity","Number","bufferValue","clickable","color","height","indeterminate","max","modelValue","reverse","stream","striped","roundedBar","emits","value","setup","slots","progress","isRtl","themeClasses","textColorClasses","textColorStyles","backgroundColorClasses","backgroundColorStyles","barColorClasses","barColorStyles","roundedClasses","intersectionRef","isIntersecting","parseInt","normalizedBuffer","parseFloat","normalizedValue","isReversed","transition","opacity","handleClick","e","left","right","width","getBoundingClientRect","clientX","Math","round","rounded","undefined","borderTop","top","map","bar","buffer"],"sources":["../../../src/components/VProgressLinear/VProgressLinear.tsx"],"sourcesContent":["// Styles\nimport './VProgressLinear.sass'\n\n// Composables\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { computed, Transition } from 'vue'\nimport { convertToUnit, defineComponent, useRender } from '@/util'\n\nexport const VProgressLinear = defineComponent({\n name: 'VProgressLinear',\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n bgColor: String,\n bgOpacity: [Number, String],\n bufferValue: {\n type: [Number, String],\n default: 0,\n },\n clickable: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n reverse: Boolean,\n stream: Boolean,\n striped: Boolean,\n roundedBar: Boolean,\n\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (value: number) => true,\n },\n\n setup (props, { slots }) {\n const progress = useProxiedModel(props, 'modelValue')\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { textColorClasses, textColorStyles } = useTextColor(props, 'color')\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(computed(() => props.bgColor || props.color))\n const { backgroundColorClasses: barColorClasses, backgroundColorStyles: barColorStyles } = useBackgroundColor(props, 'color')\n const { roundedClasses } = useRounded(props)\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n\n const max = computed(() => parseInt(props.max, 10))\n const height = computed(() => parseInt(props.height, 10))\n const normalizedBuffer = computed(() => parseFloat(props.bufferValue) / max.value * 100)\n const normalizedValue = computed(() => parseFloat(progress.value) / max.value * 100)\n const isReversed = computed(() => isRtl.value !== props.reverse)\n const transition = computed(() => props.indeterminate ? 'fade-transition' : 'slide-x-transition')\n const opacity = computed(() => {\n return props.bgOpacity == null\n ? props.bgOpacity\n : parseFloat(props.bgOpacity)\n })\n\n function handleClick (e: MouseEvent) {\n if (!intersectionRef.value) return\n\n const { left, right, width } = intersectionRef.value.getBoundingClientRect()\n const value = isReversed.value ? (width - e.clientX) + (right - width) : e.clientX - left\n\n progress.value = Math.round(value / width * max.value)\n }\n\n useRender(() => (\n <props.tag\n ref={ intersectionRef }\n class={[\n 'v-progress-linear',\n {\n 'v-progress-linear--active': props.active && isIntersecting.value,\n 'v-progress-linear--reverse': isReversed.value,\n 'v-progress-linear--rounded': props.rounded,\n 'v-progress-linear--rounded-bar': props.roundedBar,\n 'v-progress-linear--striped': props.striped,\n },\n roundedClasses.value,\n themeClasses.value,\n ]}\n style={{\n height: props.active ? convertToUnit(height.value) : 0,\n '--v-progress-linear-height': convertToUnit(height.value),\n }}\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax={ props.max }\n aria-valuenow={ props.indeterminate ? undefined : normalizedValue.value }\n onClick={ props.clickable && handleClick }\n >\n { props.stream && (\n <div\n key=\"stream\"\n class={[\n 'v-progress-linear__stream',\n textColorClasses.value,\n ]}\n style={{\n ...textColorStyles.value,\n [isReversed.value ? 'left' : 'right']: convertToUnit(-height.value),\n borderTop: `${convertToUnit(height.value / 2)} dotted`,\n opacity: opacity.value,\n top: `calc(50% - ${convertToUnit(height.value / 4)})`,\n width: convertToUnit(100 - normalizedBuffer.value, '%'),\n '--v-progress-linear-stream-to': convertToUnit(height.value * (isReversed.value ? 1 : -1)),\n }}\n />\n ) }\n\n <div\n class={[\n 'v-progress-linear__background',\n backgroundColorClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n {\n opacity: opacity.value,\n width: convertToUnit((!props.stream ? 100 : normalizedBuffer.value), '%'),\n },\n ]}\n />\n\n <Transition name={ transition.value }>\n { !props.indeterminate ? (\n <div\n class={[\n 'v-progress-linear__determinate',\n barColorClasses.value,\n ]}\n style={[\n barColorStyles.value,\n { width: convertToUnit(normalizedValue.value, '%') },\n ]}\n />\n ) : (\n <div class=\"v-progress-linear__indeterminate\">\n { ['long', 'short'].map(bar => (\n <div\n key={ bar }\n class={[\n 'v-progress-linear__indeterminate',\n bar,\n barColorClasses.value,\n ]}\n style={ barColorStyles.value }\n />\n )) }\n </div>\n ) }\n </Transition>\n\n { slots.default && (\n <div class=\"v-progress-linear__content\">\n { slots.default({ value: normalizedValue.value, buffer: normalizedBuffer.value }) }\n </div>\n ) }\n </props.tag>\n ))\n\n return {}\n },\n})\n"],"mappings":"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"}
|
|
@@ -2,10 +2,10 @@ import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, creat
|
|
|
2
2
|
// Styles
|
|
3
3
|
import "./VRadioGroup.css"; // Components
|
|
4
4
|
|
|
5
|
+
import { filterControlProps, makeSelectionControlProps } from "../VSelectionControl/VSelectionControl.mjs";
|
|
5
6
|
import { filterInputProps, makeVInputProps, VInput } from "../VInput/VInput.mjs";
|
|
6
7
|
import { VLabel } from "../VLabel/index.mjs";
|
|
7
|
-
import { VSelectionControlGroup } from "../VSelectionControlGroup/index.mjs";
|
|
8
|
-
import { filterControlProps, makeSelectionControlProps } from "../VSelectionControl/VSelectionControl.mjs"; // Composables
|
|
8
|
+
import { VSelectionControlGroup } from "../VSelectionControlGroup/index.mjs"; // Composables
|
|
9
9
|
|
|
10
10
|
import { IconValue } from "../../composables/icons.mjs"; // Utilities
|
|
11
11
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VRadioGroup.mjs","names":["
|
|
1
|
+
{"version":3,"file":"VRadioGroup.mjs","names":["filterControlProps","makeSelectionControlProps","filterInputProps","makeVInputProps","VInput","VLabel","VSelectionControlGroup","IconValue","computed","defineComponent","filterInputAttrs","getUid","useRender","VRadioGroup","name","inheritAttrs","props","height","type","Number","String","default","trueIcon","falseIcon","setup","attrs","slots","uid","id","inputAttrs","controlAttrs","inputProps","_1","controlProps","_2","label","for","value","isDisabled","isReadonly"],"sources":["../../../src/components/VRadioGroup/VRadioGroup.tsx"],"sourcesContent":["// Styles\nimport './VRadioGroup.sass'\n\n// Components\nimport { filterControlProps, makeSelectionControlProps } from '@/components/VSelectionControl/VSelectionControl'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\nimport { VSelectionControlGroup } from '@/components/VSelectionControlGroup'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent, filterInputAttrs, getUid, useRender } from '@/util'\n\nexport const VRadioGroup = defineComponent({\n name: 'VRadioGroup',\n\n inheritAttrs: false,\n\n props: {\n height: {\n type: [Number, String],\n default: 'auto',\n },\n\n ...makeVInputProps(),\n ...makeSelectionControlProps(),\n\n trueIcon: {\n type: IconValue,\n default: '$radioOn',\n },\n falseIcon: {\n type: IconValue,\n default: '$radioOff',\n },\n type: {\n type: String,\n default: 'radio',\n },\n },\n\n setup (props, { attrs, slots }) {\n const uid = getUid()\n const id = computed(() => props.id || `radio-group-${uid}`)\n\n useRender(() => {\n const [inputAttrs, controlAttrs] = filterInputAttrs(attrs)\n const [inputProps, _1] = filterInputProps(props)\n const [controlProps, _2] = filterControlProps(props)\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n\n return (\n <VInput\n class=\"v-radio-group\"\n { ...inputAttrs }\n { ...inputProps }\n id={ id.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isReadonly,\n }) => (\n <>\n { label && (\n <VLabel for={ id.value }>\n { label }\n </VLabel>\n ) }\n\n <VSelectionControlGroup\n { ...controlProps }\n id={ id.value }\n trueIcon={ props.trueIcon }\n falseIcon={ props.falseIcon }\n type={ props.type }\n disabled={ isDisabled.value }\n readonly={ isReadonly.value }\n { ...controlAttrs }\n v-slots={ slots }\n />\n </>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n"],"mappings":";AAAA;AACA,2B,CAEA;;SACSA,kB,EAAoBC,yB;SACpBC,gB,EAAkBC,e,EAAiBC,M;SACnCC,M;SACAC,sB,+CAET;;SACSC,S,uCAET;;AACA,SAASC,QAAT,QAAyB,KAAzB;SACSC,e,EAAiBC,gB,EAAkBC,M,EAAQC,S;AAEpD,OAAO,MAAMC,WAAW,GAAGJ,eAAe,CAAC;EACzCK,IAAI,EAAE,aADmC;EAGzCC,YAAY,EAAE,KAH2B;EAKzCC,KAAK,EAAE;IACLC,MAAM,EAAE;MACNC,IAAI,EAAE,CAACC,MAAD,EAASC,MAAT,CADA;MAENC,OAAO,EAAE;IAFH,CADH;IAML,GAAGlB,eAAe,EANb;IAOL,GAAGF,yBAAyB,EAPvB;IASLqB,QAAQ,EAAE;MACRJ,IAAI,EAAEX,SADE;MAERc,OAAO,EAAE;IAFD,CATL;IAaLE,SAAS,EAAE;MACTL,IAAI,EAAEX,SADG;MAETc,OAAO,EAAE;IAFA,CAbN;IAiBLH,IAAI,EAAE;MACJA,IAAI,EAAEE,MADF;MAEJC,OAAO,EAAE;IAFL;EAjBD,CALkC;;EA4BzCG,KAAK,CAAER,KAAF,QAA2B;IAAA,IAAlB;MAAES,KAAF;MAASC;IAAT,CAAkB;IAC9B,MAAMC,GAAG,GAAGhB,MAAM,EAAlB;IACA,MAAMiB,EAAE,GAAGpB,QAAQ,CAAC,MAAMQ,KAAK,CAACY,EAAN,IAAa,eAAcD,GAAI,EAAtC,CAAnB;IAEAf,SAAS,CAAC,MAAM;MACd,MAAM,CAACiB,UAAD,EAAaC,YAAb,IAA6BpB,gBAAgB,CAACe,KAAD,CAAnD;MACA,MAAM,CAACM,UAAD,EAAaC,EAAb,IAAmB9B,gBAAgB,CAACc,KAAD,CAAzC;MACA,MAAM,CAACiB,YAAD,EAAeC,EAAf,IAAqBlC,kBAAkB,CAACgB,KAAD,CAA7C;MACA,MAAMmB,KAAK,GAAGT,KAAK,CAACS,KAAN,GACVT,KAAK,CAACS,KAAN,CAAY;QACZA,KAAK,EAAEnB,KAAK,CAACmB,KADD;QAEZnB,KAAK,EAAE;UAAEoB,GAAG,EAAER,EAAE,CAACS;QAAV;MAFK,CAAZ,CADU,GAKVrB,KAAK,CAACmB,KALV;MAOA;QAAA,SAEU;MAFV,GAGSN,UAHT,EAISE,UAJT;QAAA,MAKSH,EAAE,CAACS;MALZ,MAQM,GAAGX,KART;QASML,OAAO,EAAE;UAAA,IAAC;YACRO,EADQ;YAERU,UAFQ;YAGRC;UAHQ,CAAD;UAAA,sCAMHJ,KAAK;YAAA,OACSP,EAAE,CAACS;UADZ;YAAA,gBAEDF,KAFC;UAAA,EANF,mDAaEF,YAbF;YAAA,MAcEL,EAAE,CAACS,KAdL;YAAA,YAeQrB,KAAK,CAACM,QAfd;YAAA,aAgBSN,KAAK,CAACO,SAhBf;YAAA,QAiBIP,KAAK,CAACE,IAjBV;YAAA,YAkBQoB,UAAU,CAACD,KAlBnB;YAAA,YAmBQE,UAAU,CAACF;UAnBnB,GAoBEP,YApBF,GAqBOJ,KArBP;QAAA;MATf;IAqCD,CAhDQ,CAAT;IAkDA,OAAO,EAAP;EACD;;AAnFwC,CAAD,CAAnC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
@use './variables' as *
|
|
2
|
+
|
|
1
3
|
.v-radio-group
|
|
2
4
|
grid-template-areas: "prepend label append" ". control ." "a messages b"
|
|
3
5
|
|
|
4
6
|
> .v-label
|
|
5
|
-
grid-area: label
|
|
6
|
-
margin-inline-start:
|
|
7
|
+
grid-area: $radio-group-label-grid-area
|
|
8
|
+
margin-inline-start: $radio-group-label-margin-inline-start
|
|
7
9
|
|
|
8
10
|
+ .v-selection-control-group
|
|
9
|
-
margin-top:
|
|
11
|
+
margin-top: $radio-group-label-selection-group-margin-top
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
// Defaults
|
|
1
|
+
$radio-group-label-grid-area: label !default;
|
|
2
|
+
$radio-group-label-margin-inline-start: 12px !default;
|
|
3
|
+
$radio-group-label-selection-group-margin-top: 16px !default;
|