@vuetify/nightly 3.3.0 → 3.3.1-master.2023-05-25
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 +7 -34
- package/dist/json/attributes.json +74 -42
- package/dist/json/importMap.json +46 -46
- package/dist/json/tags.json +8 -0
- package/dist/json/web-types.json +551 -471
- package/dist/vuetify-labs.css +1430 -1428
- package/dist/vuetify-labs.d.ts +6842 -12057
- package/dist/vuetify-labs.esm.js +6539 -6310
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +6538 -6309
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +6 -5
- package/dist/vuetify.d.ts +5405 -9248
- package/dist/vuetify.esm.js +6933 -6844
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +6932 -6843
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +794 -793
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.mts +31 -31
- package/lib/blueprints/md1.d.mts +31 -31
- package/lib/blueprints/md2.d.mts +31 -31
- package/lib/blueprints/md3.d.mts +31 -31
- package/lib/components/VAlert/VAlert.mjs +5 -5
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/_variables.scss +2 -2
- package/lib/components/VAlert/index.d.mts +16 -74
- package/lib/components/VApp/VApp.mjs +3 -3
- package/lib/components/VApp/VApp.mjs.map +1 -1
- package/lib/components/VApp/index.d.mts +0 -15
- package/lib/components/VAppBar/VAppBar.mjs +8 -5
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.mts +1 -82
- package/lib/components/VAutocomplete/VAutocomplete.mjs +6 -7
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +205 -259
- package/lib/components/VAvatar/VAvatar.mjs +3 -3
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/_variables.scss +1 -1
- package/lib/components/VAvatar/index.d.mts +0 -15
- package/lib/components/VBadge/VBadge.mjs +5 -5
- package/lib/components/VBadge/VBadge.mjs.map +1 -1
- package/lib/components/VBadge/index.d.mts +0 -19
- package/lib/components/VBanner/VBanner.mjs +6 -9
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/VBannerActions.mjs +1 -1
- package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
- package/lib/components/VBanner/VBannerText.mjs +1 -0
- package/lib/components/VBanner/VBannerText.mjs.map +1 -1
- package/lib/components/VBanner/index.d.mts +1 -58
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +7 -7
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBottomNavigation/index.d.mts +0 -15
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +5 -8
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +2 -2
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.mts +30 -60
- package/lib/components/VBtn/VBtn.mjs +5 -5
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/_variables.scss +15 -15
- package/lib/components/VBtn/index.d.mts +0 -27
- package/lib/components/VBtnGroup/VBtnGroup.mjs +3 -3
- package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
- package/lib/components/VBtnGroup/index.d.mts +0 -15
- package/lib/components/VBtnToggle/VBtnToggle.mjs +1 -1
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VBtnToggle/index.d.mts +19 -34
- package/lib/components/VCard/VCard.mjs +6 -6
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCard.sass +2 -2
- package/lib/components/VCard/VCardItem.mjs +3 -3
- package/lib/components/VCard/VCardItem.mjs.map +1 -1
- package/lib/components/VCard/VCardSubtitle.mjs +1 -0
- package/lib/components/VCard/VCardSubtitle.mjs.map +1 -1
- package/lib/components/VCard/VCardText.mjs +1 -0
- package/lib/components/VCard/VCardText.mjs.map +1 -1
- package/lib/components/VCard/VCardTitle.mjs +1 -0
- package/lib/components/VCard/VCardTitle.mjs.map +1 -1
- package/lib/components/VCard/_variables.scss +10 -11
- package/lib/components/VCard/index.d.mts +16 -158
- package/lib/components/VCarousel/VCarousel.mjs +3 -6
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/index.d.mts +79 -237
- package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +1 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.mts +191 -277
- package/lib/components/VChip/VChip.mjs +6 -6
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/index.d.mts +19 -82
- package/lib/components/VChipGroup/VChipGroup.mjs +3 -6
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VChipGroup/index.d.mts +19 -58
- package/lib/components/VCode/index.d.mts +0 -15
- package/lib/components/VCode/index.mjs +3 -0
- package/lib/components/VCode/index.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.mjs +6 -9
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +1 -4
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs +2 -2
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +2 -2
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +8 -8
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +205 -259
- package/lib/components/VCounter/VCounter.mjs +1 -1
- package/lib/components/VCounter/VCounter.mjs.map +1 -1
- package/lib/components/VCounter/index.d.mts +19 -34
- package/lib/components/VDefaultsProvider/index.d.mts +1 -16
- package/lib/components/VDialog/VDialog.mjs +5 -5
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/index.d.mts +175 -301
- package/lib/components/VDivider/VDivider.mjs +2 -2
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VDivider/index.d.mts +0 -15
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +4 -4
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +2 -2
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +4 -4
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs +2 -2
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.mts +35 -107
- package/lib/components/VField/VField.mjs +7 -7
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +0 -1
- package/lib/components/VField/_variables.scss +1 -0
- package/lib/components/VField/index.d.mts +39 -54
- package/lib/components/VFileInput/VFileInput.mjs +4 -4
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.mts +381 -537
- package/lib/components/VFooter/VFooter.mjs +3 -3
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VFooter/_variables.scss +1 -1
- package/lib/components/VFooter/index.d.mts +0 -15
- package/lib/components/VForm/VForm.mjs +2 -2
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VForm/index.d.mts +19 -146
- package/lib/components/VGrid/VCol.mjs +1 -1
- package/lib/components/VGrid/VCol.mjs.map +1 -1
- package/lib/components/VGrid/VContainer.mjs +2 -2
- package/lib/components/VGrid/VContainer.mjs.map +1 -1
- package/lib/components/VGrid/VRow.mjs +1 -1
- package/lib/components/VGrid/VRow.mjs.map +1 -1
- package/lib/components/VGrid/VSpacer.mjs +1 -0
- package/lib/components/VGrid/VSpacer.mjs.map +1 -1
- package/lib/components/VGrid/index.d.mts +0 -60
- package/lib/components/VHover/VHover.mjs.map +1 -1
- package/lib/components/VHover/index.d.mts +19 -46
- package/lib/components/VIcon/VIcon.mjs +3 -3
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/index.d.mts +0 -30
- package/lib/components/VImg/VImg.mjs +4 -3
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/index.d.mts +0 -27
- package/lib/components/VInput/InputIcon.mjs +3 -2
- package/lib/components/VInput/InputIcon.mjs.map +1 -1
- package/lib/components/VInput/VInput.mjs +3 -3
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/_variables.scss +1 -1
- package/lib/components/VInput/index.d.mts +88 -119
- package/lib/components/VItemGroup/VItem.mjs +2 -2
- package/lib/components/VItemGroup/VItem.mjs.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
- package/lib/components/VItemGroup/index.d.mts +38 -120
- package/lib/components/VKbd/index.d.mts +0 -15
- package/lib/components/VKbd/index.mjs +3 -0
- package/lib/components/VKbd/index.mjs.map +1 -1
- package/lib/components/VLabel/index.d.mts +0 -15
- package/lib/components/VLayout/VLayout.mjs +2 -2
- package/lib/components/VLayout/VLayout.mjs.map +1 -1
- package/lib/components/VLayout/index.d.mts +0 -30
- package/lib/components/VLazy/VLazy.mjs +2 -2
- package/lib/components/VLazy/VLazy.mjs.map +1 -1
- package/lib/components/VLazy/index.d.mts +0 -15
- package/lib/components/VList/VList.mjs +3 -3
- 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 +7 -7
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListImg.mjs +1 -0
- package/lib/components/VList/VListImg.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +8 -8
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItemSubtitle.mjs +1 -0
- package/lib/components/VList/VListItemSubtitle.mjs.map +1 -1
- package/lib/components/VList/VListItemTitle.mjs +1 -0
- package/lib/components/VList/VListItemTitle.mjs.map +1 -1
- package/lib/components/VList/VListSubheader.mjs +2 -2
- package/lib/components/VList/VListSubheader.mjs.map +1 -1
- package/lib/components/VList/_variables.scss +6 -6
- package/lib/components/VList/index.d.mts +185 -337
- package/lib/components/VLocaleProvider/index.d.mts +0 -15
- package/lib/components/VMain/VMain.mjs +2 -2
- package/lib/components/VMain/VMain.mjs.map +1 -1
- package/lib/components/VMain/index.d.mts +0 -15
- package/lib/components/VMenu/VMenu.mjs +5 -5
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.mts +222 -348
- package/lib/components/VMenu/shared.mjs +2 -0
- package/lib/components/VMenu/shared.mjs.map +1 -1
- package/lib/components/VMessages/VMessages.mjs +2 -2
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VMessages/index.d.mts +15 -30
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +9 -9
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/index.d.mts +15 -42
- package/lib/components/VOverlay/VOverlay.mjs +10 -13
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.mts +55 -94
- package/lib/components/VOverlay/locationStrategies.mjs +4 -4
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.mjs +2 -2
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +4 -7
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VOverlay/util/point.mjs +2 -0
- package/lib/components/VOverlay/util/point.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +8 -8
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/index.d.mts +75 -106
- package/lib/components/VParallax/VParallax.mjs +2 -5
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VParallax/index.d.mts +0 -27
- package/lib/components/VProgressCircular/VProgressCircular.mjs +4 -4
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressCircular/index.d.mts +19 -42
- package/lib/components/VProgressLinear/VProgressLinear.mjs +5 -5
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/index.d.mts +19 -46
- package/lib/components/VRadio/index.d.mts +33 -68
- package/lib/components/VRadioGroup/VRadioGroup.mjs +3 -3
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.d.mts +140 -191
- package/lib/components/VRangeSlider/VRangeSlider.mjs +3 -3
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.mts +100 -143
- package/lib/components/VRating/VRating.mjs +5 -8
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/index.d.mts +30 -49
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VResponsive/index.d.mts +0 -19
- package/lib/components/VSelect/VSelect.mjs +7 -7
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +205 -259
- package/lib/components/VSelectionControl/VSelectionControl.mjs +4 -4
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.mts +24 -24
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +4 -4
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/index.d.mts +0 -15
- package/lib/components/VSheet/VSheet.mjs +3 -3
- package/lib/components/VSheet/VSheet.mjs.map +1 -1
- package/lib/components/VSheet/index.d.mts +0 -15
- package/lib/components/VSlideGroup/VSlideGroup.mjs +6 -6
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs +2 -2
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.mts +68 -126
- package/lib/components/VSlider/VSlider.css +5 -4
- package/lib/components/VSlider/VSlider.mjs +5 -5
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.sass +5 -4
- package/lib/components/VSlider/VSliderThumb.mjs +5 -5
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.mjs +2 -2
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/index.d.mts +100 -143
- package/lib/components/VSlider/slider.mjs +3 -6
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.mjs +6 -6
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/_variables.scss +1 -1
- package/lib/components/VSnackbar/index.d.mts +167 -289
- package/lib/components/VStepper/index.mjs +3 -2
- package/lib/components/VStepper/index.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.mjs +4 -4
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/index.d.mts +164 -219
- package/lib/components/VSystemBar/VSystemBar.mjs +3 -3
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VSystemBar/_variables.scss +2 -2
- package/lib/components/VSystemBar/index.d.mts +0 -15
- package/lib/components/VTable/VTable.mjs.map +1 -1
- package/lib/components/VTable/_variables.scss +1 -1
- package/lib/components/VTable/index.d.mts +0 -27
- package/lib/components/VTabs/VTab.mjs +2 -2
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.mjs +6 -6
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/index.d.mts +0 -30
- package/lib/components/VTabs/shared.mjs +2 -0
- package/lib/components/VTabs/shared.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.mjs +5 -5
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/index.d.mts +423 -559
- package/lib/components/VTextarea/VTextarea.mjs +7 -10
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/index.d.mts +362 -494
- package/lib/components/VThemeProvider/index.d.mts +0 -15
- package/lib/components/VTimeline/VTimeline.mjs +3 -3
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineDivider.mjs +4 -4
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs +3 -6
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VTimeline/index.d.mts +0 -38
- package/lib/components/VToolbar/VToolbar.mjs +7 -7
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbarItems.mjs +3 -3
- package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
- package/lib/components/VToolbar/_variables.scss +2 -2
- package/lib/components/VToolbar/index.d.mts +1 -70
- package/lib/components/VTooltip/VTooltip.mjs +5 -5
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/index.d.mts +222 -348
- package/lib/components/VValidation/VValidation.mjs.map +1 -1
- package/lib/components/VValidation/index.d.mts +19 -90
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs +1 -1
- package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
- package/lib/components/VVirtualScroll/index.d.mts +17 -17
- package/lib/components/VWindow/VWindow.mjs +5 -5
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindowItem.mjs +4 -4
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/VWindow/index.d.mts +64 -138
- package/lib/components/index.d.mts +4451 -8296
- package/lib/components/transitions/createTransition.mjs +1 -4
- package/lib/components/transitions/createTransition.mjs.map +1 -1
- package/lib/components/transitions/dialog-transition.mjs +1 -3
- package/lib/components/transitions/dialog-transition.mjs.map +1 -1
- package/lib/components/transitions/index.d.mts +0 -240
- package/lib/composables/display.mjs +1 -1
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/filter.mjs +2 -4
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/composables/focus.mjs +1 -1
- package/lib/composables/focus.mjs.map +1 -1
- package/lib/composables/forwardRefs.mjs +2 -0
- package/lib/composables/forwardRefs.mjs.map +1 -1
- package/lib/composables/hydration.mjs +1 -1
- package/lib/composables/hydration.mjs.map +1 -1
- package/lib/composables/icons.mjs +7 -1
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/composables/lazy.mjs +1 -3
- package/lib/composables/lazy.mjs.map +1 -1
- package/lib/composables/loader.mjs.map +1 -1
- package/lib/composables/locale.mjs +2 -1
- package/lib/composables/locale.mjs.map +1 -1
- package/lib/composables/mutationObserver.mjs +1 -4
- package/lib/composables/mutationObserver.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs +2 -2
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/nested/selectStrategies.mjs +1 -0
- package/lib/composables/nested/selectStrategies.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs +3 -3
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/refs.mjs +4 -1
- package/lib/composables/refs.mjs.map +1 -1
- package/lib/composables/resizeObserver.mjs +1 -2
- package/lib/composables/resizeObserver.mjs.map +1 -1
- package/lib/composables/router.mjs +1 -4
- package/lib/composables/router.mjs.map +1 -1
- package/lib/composables/scopeId.mjs +1 -0
- package/lib/composables/scopeId.mjs.map +1 -1
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/toggleScope.mjs +4 -0
- package/lib/composables/toggleScope.mjs.map +1 -1
- package/lib/composables/touch.mjs +1 -0
- package/lib/composables/touch.mjs.map +1 -1
- package/lib/composables/validation.mjs +2 -2
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/directives/click-outside/index.mjs +2 -1
- package/lib/directives/click-outside/index.mjs.map +1 -1
- package/lib/directives/intersect/index.mjs +1 -1
- package/lib/directives/intersect/index.mjs.map +1 -1
- package/lib/directives/resize/index.mjs +2 -0
- package/lib/directives/resize/index.mjs.map +1 -1
- package/lib/directives/scroll/index.mjs +2 -0
- package/lib/directives/scroll/index.mjs.map +1 -1
- package/lib/directives/touch/index.mjs +1 -2
- package/lib/directives/touch/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +7 -2
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +4 -6
- package/lib/framework.mjs.map +1 -1
- package/lib/iconsets/fa.mjs +1 -1
- package/lib/iconsets/fa.mjs.map +1 -1
- package/lib/iconsets/fa4.mjs +4 -3
- package/lib/iconsets/fa4.mjs.map +1 -1
- package/lib/iconsets/md.mjs +4 -3
- package/lib/iconsets/md.mjs.map +1 -1
- package/lib/iconsets/mdi-svg.mjs +1 -1
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/iconsets/mdi.mjs +4 -3
- package/lib/iconsets/mdi.mjs.map +1 -1
- package/lib/index.d.mts +45 -43
- package/lib/labs/VBottomSheet/index.d.mts +55 -94
- package/lib/labs/VDataIterator/VDataIterator.mjs +10 -7
- package/lib/labs/VDataIterator/VDataIterator.mjs.map +1 -1
- package/lib/labs/VDataIterator/composables/items.mjs +7 -1
- package/lib/labs/VDataIterator/composables/items.mjs.map +1 -1
- package/lib/labs/VDataIterator/index.d.mts +142 -132
- package/lib/labs/VDataTable/VDataTable.css +1 -0
- package/lib/labs/VDataTable/VDataTable.mjs +11 -8
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTable.sass +1 -0
- package/lib/labs/VDataTable/VDataTableColumn.mjs +2 -1
- package/lib/labs/VDataTable/VDataTableColumn.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.mjs +2 -2
- package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs +4 -4
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableHeaders.mjs +9 -8
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRow.mjs +1 -0
- package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +2 -2
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +14 -9
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +12 -9
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/expand.mjs +3 -3
- package/lib/labs/VDataTable/composables/expand.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/group.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/headers.mjs +1 -1
- package/lib/labs/VDataTable/composables/headers.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/items.mjs +7 -1
- package/lib/labs/VDataTable/composables/items.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/select.mjs +124 -8
- package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/sort.mjs +3 -8
- package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.mts +1665 -2951
- package/lib/labs/VDataTable/types.mjs.map +1 -1
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
- package/lib/labs/VInfiniteScroll/index.d.mts +60 -91
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +3 -3
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
- package/lib/labs/VSkeletonLoader/index.d.mts +0 -15
- package/lib/labs/components.d.mts +1935 -3305
- package/lib/labs/date/date.mjs.map +1 -1
- package/lib/labs/entry-bundler.mjs +3 -1
- package/lib/labs/entry-bundler.mjs.map +1 -1
- package/lib/locale/adapters/vue-i18n.d.mts +1 -1
- package/lib/locale/adapters/vue-i18n.mjs +5 -1
- package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
- package/lib/locale/adapters/vuetify.mjs +1 -3
- package/lib/locale/adapters/vuetify.mjs.map +1 -1
- package/lib/styles/settings/_colors.scss +18 -15
- package/lib/util/anchor.mjs +1 -0
- package/lib/util/anchor.mjs.map +1 -1
- package/lib/util/animation.mjs +1 -0
- package/lib/util/animation.mjs.map +1 -1
- package/lib/util/color/APCA.mjs +1 -0
- package/lib/util/color/APCA.mjs.map +1 -1
- package/lib/util/color/transformCIELAB.mjs +2 -0
- package/lib/util/color/transformCIELAB.mjs.map +1 -1
- package/lib/util/color/transformSRGB.mjs +3 -1
- package/lib/util/color/transformSRGB.mjs.map +1 -1
- package/lib/util/colorUtils.mjs +2 -2
- package/lib/util/colorUtils.mjs.map +1 -1
- package/lib/util/console.mjs +1 -0
- package/lib/util/console.mjs.map +1 -1
- package/lib/util/createSimpleFunctional.mjs +2 -1
- package/lib/util/createSimpleFunctional.mjs.map +1 -1
- package/lib/util/defineComponent.mjs +3 -3
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/getCurrentInstance.mjs +1 -2
- package/lib/util/getCurrentInstance.mjs.map +1 -1
- package/lib/util/injectSelf.mjs +2 -1
- package/lib/util/injectSelf.mjs.map +1 -1
- package/lib/util/propsFactory.mjs +1 -0
- package/lib/util/propsFactory.mjs.map +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VValidation.mjs","names":["makeValidationProps","useValidation","genericComponent","VValidation","name","props","emits","val","setup","_ref","slots","validation","default"],"sources":["../../../src/components/VValidation/VValidation.tsx"],"sourcesContent":["// Composables\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { genericComponent } from '@/util'\n\nexport type VValidationSlots = {\n default:
|
|
1
|
+
{"version":3,"file":"VValidation.mjs","names":["makeValidationProps","useValidation","genericComponent","VValidation","name","props","emits","val","setup","_ref","slots","validation","default"],"sources":["../../../src/components/VValidation/VValidation.tsx"],"sourcesContent":["// Composables\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { genericComponent } from '@/util'\n\nexport type VValidationSlots = {\n default: ReturnType<typeof useValidation>\n}\n\nexport const VValidation = genericComponent<VValidationSlots>()({\n name: 'VValidation',\n\n props: makeValidationProps(),\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { slots }) {\n const validation = useValidation(props, 'validation')\n\n return () => slots.default?.(validation)\n },\n})\n\nexport type VValidation = InstanceType<typeof VValidation>\n"],"mappings":"AAAA;AAAA,SACSA,mBAAmB,EAAEC,aAAa,4CAE3C;AAAA,SACSC,gBAAgB;AAMzB,OAAO,MAAMC,WAAW,GAAGD,gBAAgB,EAAoB,CAAC;EAC9DE,IAAI,EAAE,aAAa;EAEnBC,KAAK,EAAEL,mBAAmB,EAAE;EAE5BM,KAAK,EAAE;IACL,mBAAmB,EAAGC,GAAQ,IAAK;EACrC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,UAAU,GAAGV,aAAa,CAACI,KAAK,EAAE,YAAY,CAAC;IAErD,OAAO,MAAMK,KAAK,CAACE,OAAO,GAAGD,UAAU,CAAC;EAC1C;AACF,CAAC,CAAC"}
|
|
@@ -29,7 +29,7 @@ declare const VValidation: {
|
|
|
29
29
|
style?: unknown;
|
|
30
30
|
class?: unknown;
|
|
31
31
|
$children?: vue.VNodeChild | {
|
|
32
|
-
default?: ((
|
|
32
|
+
default?: ((arg: {
|
|
33
33
|
errorMessages: vue.ComputedRef<string[]>;
|
|
34
34
|
isDirty: vue.ComputedRef<boolean>;
|
|
35
35
|
isDisabled: vue.ComputedRef<boolean>;
|
|
@@ -44,7 +44,7 @@ declare const VValidation: {
|
|
|
44
44
|
[x: string]: boolean;
|
|
45
45
|
}>;
|
|
46
46
|
}) => vue.VNodeChild) | undefined;
|
|
47
|
-
} | ((
|
|
47
|
+
} | ((arg: {
|
|
48
48
|
errorMessages: vue.ComputedRef<string[]>;
|
|
49
49
|
isDirty: vue.ComputedRef<boolean>;
|
|
50
50
|
isDisabled: vue.ComputedRef<boolean>;
|
|
@@ -62,7 +62,7 @@ declare const VValidation: {
|
|
|
62
62
|
ref?: vue.VNodeRef | undefined;
|
|
63
63
|
ref_for?: boolean | undefined;
|
|
64
64
|
ref_key?: string | undefined;
|
|
65
|
-
"v-slot:default"?: false | ((
|
|
65
|
+
"v-slot:default"?: false | ((arg: {
|
|
66
66
|
errorMessages: vue.ComputedRef<string[]>;
|
|
67
67
|
isDirty: vue.ComputedRef<boolean>;
|
|
68
68
|
isDisabled: vue.ComputedRef<boolean>;
|
|
@@ -78,24 +78,7 @@ declare const VValidation: {
|
|
|
78
78
|
}>;
|
|
79
79
|
}) => vue.VNodeChild) | undefined;
|
|
80
80
|
'v-slots'?: {
|
|
81
|
-
default?: false | ((
|
|
82
|
-
errorMessages: vue.ComputedRef<string[]>;
|
|
83
|
-
isDirty: vue.ComputedRef<boolean>;
|
|
84
|
-
isDisabled: vue.ComputedRef<boolean>;
|
|
85
|
-
isReadonly: vue.ComputedRef<boolean>;
|
|
86
|
-
isPristine: vue.ShallowRef<boolean>;
|
|
87
|
-
isValid: vue.ComputedRef<boolean | null>;
|
|
88
|
-
isValidating: vue.ShallowRef<boolean>;
|
|
89
|
-
reset: () => void;
|
|
90
|
-
resetValidation: () => void;
|
|
91
|
-
validate: (silent?: boolean) => Promise<string[]>;
|
|
92
|
-
validationClasses: vue.ComputedRef<{
|
|
93
|
-
[x: string]: boolean;
|
|
94
|
-
}>;
|
|
95
|
-
}) => vue.VNodeChild) | undefined;
|
|
96
|
-
} | undefined;
|
|
97
|
-
$slots?: {
|
|
98
|
-
default?: ((args_0: {
|
|
81
|
+
default?: false | ((arg: {
|
|
99
82
|
errorMessages: vue.ComputedRef<string[]>;
|
|
100
83
|
isDirty: vue.ComputedRef<boolean>;
|
|
101
84
|
isDisabled: vue.ComputedRef<boolean>;
|
|
@@ -162,7 +145,7 @@ declare const VValidation: {
|
|
|
162
145
|
[x: string]: unknown;
|
|
163
146
|
};
|
|
164
147
|
$slots: Readonly<{
|
|
165
|
-
default?: ((
|
|
148
|
+
default?: ((arg: {
|
|
166
149
|
errorMessages: vue.ComputedRef<string[]>;
|
|
167
150
|
isDirty: vue.ComputedRef<boolean>;
|
|
168
151
|
isDisabled: vue.ComputedRef<boolean>;
|
|
@@ -201,7 +184,7 @@ declare const VValidation: {
|
|
|
201
184
|
validationValue?: any;
|
|
202
185
|
} & {
|
|
203
186
|
$children?: vue.VNodeChild | {
|
|
204
|
-
default?: ((
|
|
187
|
+
default?: ((arg: {
|
|
205
188
|
errorMessages: vue.ComputedRef<string[]>;
|
|
206
189
|
isDirty: vue.ComputedRef<boolean>;
|
|
207
190
|
isDisabled: vue.ComputedRef<boolean>;
|
|
@@ -216,7 +199,7 @@ declare const VValidation: {
|
|
|
216
199
|
[x: string]: boolean;
|
|
217
200
|
}>;
|
|
218
201
|
}) => vue.VNodeChild) | undefined;
|
|
219
|
-
} | ((
|
|
202
|
+
} | ((arg: {
|
|
220
203
|
errorMessages: vue.ComputedRef<string[]>;
|
|
221
204
|
isDirty: vue.ComputedRef<boolean>;
|
|
222
205
|
isDisabled: vue.ComputedRef<boolean>;
|
|
@@ -232,7 +215,7 @@ declare const VValidation: {
|
|
|
232
215
|
}>;
|
|
233
216
|
}) => vue.VNodeChild);
|
|
234
217
|
'v-slots'?: {
|
|
235
|
-
default?: false | ((
|
|
218
|
+
default?: false | ((arg: {
|
|
236
219
|
errorMessages: vue.ComputedRef<string[]>;
|
|
237
220
|
isDirty: vue.ComputedRef<boolean>;
|
|
238
221
|
isDisabled: vue.ComputedRef<boolean>;
|
|
@@ -249,7 +232,7 @@ declare const VValidation: {
|
|
|
249
232
|
}) => vue.VNodeChild) | undefined;
|
|
250
233
|
} | undefined;
|
|
251
234
|
} & {
|
|
252
|
-
"v-slot:default"?: false | ((
|
|
235
|
+
"v-slot:default"?: false | ((arg: {
|
|
253
236
|
errorMessages: vue.ComputedRef<string[]>;
|
|
254
237
|
isDirty: vue.ComputedRef<boolean>;
|
|
255
238
|
isDisabled: vue.ComputedRef<boolean>;
|
|
@@ -264,24 +247,6 @@ declare const VValidation: {
|
|
|
264
247
|
[x: string]: boolean;
|
|
265
248
|
}>;
|
|
266
249
|
}) => vue.VNodeChild) | undefined;
|
|
267
|
-
} & {
|
|
268
|
-
$slots?: {
|
|
269
|
-
default?: ((args_0: {
|
|
270
|
-
errorMessages: vue.ComputedRef<string[]>;
|
|
271
|
-
isDirty: vue.ComputedRef<boolean>;
|
|
272
|
-
isDisabled: vue.ComputedRef<boolean>;
|
|
273
|
-
isReadonly: vue.ComputedRef<boolean>;
|
|
274
|
-
isPristine: vue.ShallowRef<boolean>;
|
|
275
|
-
isValid: vue.ComputedRef<boolean | null>;
|
|
276
|
-
isValidating: vue.ShallowRef<boolean>;
|
|
277
|
-
reset: () => void;
|
|
278
|
-
resetValidation: () => void;
|
|
279
|
-
validate: (silent?: boolean) => Promise<string[]>;
|
|
280
|
-
validationClasses: vue.ComputedRef<{
|
|
281
|
-
[x: string]: boolean;
|
|
282
|
-
}>;
|
|
283
|
-
}) => vue.VNodeChild) | undefined;
|
|
284
|
-
} | undefined;
|
|
285
250
|
} & {
|
|
286
251
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
287
252
|
}, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
@@ -297,7 +262,7 @@ declare const VValidation: {
|
|
|
297
262
|
maxErrors: string | number;
|
|
298
263
|
rules: readonly ValidationRule[];
|
|
299
264
|
}, {}, string, vue.SlotsType<Partial<{
|
|
300
|
-
default: (
|
|
265
|
+
default: (arg: {
|
|
301
266
|
errorMessages: vue.ComputedRef<string[]>;
|
|
302
267
|
isDirty: vue.ComputedRef<boolean>;
|
|
303
268
|
isDisabled: vue.ComputedRef<boolean>;
|
|
@@ -351,7 +316,7 @@ declare const VValidation: {
|
|
|
351
316
|
validationValue?: any;
|
|
352
317
|
} & {
|
|
353
318
|
$children?: vue.VNodeChild | {
|
|
354
|
-
default?: ((
|
|
319
|
+
default?: ((arg: {
|
|
355
320
|
errorMessages: vue.ComputedRef<string[]>;
|
|
356
321
|
isDirty: vue.ComputedRef<boolean>;
|
|
357
322
|
isDisabled: vue.ComputedRef<boolean>;
|
|
@@ -366,7 +331,7 @@ declare const VValidation: {
|
|
|
366
331
|
[x: string]: boolean;
|
|
367
332
|
}>;
|
|
368
333
|
}) => vue.VNodeChild) | undefined;
|
|
369
|
-
} | ((
|
|
334
|
+
} | ((arg: {
|
|
370
335
|
errorMessages: vue.ComputedRef<string[]>;
|
|
371
336
|
isDirty: vue.ComputedRef<boolean>;
|
|
372
337
|
isDisabled: vue.ComputedRef<boolean>;
|
|
@@ -382,7 +347,7 @@ declare const VValidation: {
|
|
|
382
347
|
}>;
|
|
383
348
|
}) => vue.VNodeChild);
|
|
384
349
|
'v-slots'?: {
|
|
385
|
-
default?: false | ((
|
|
350
|
+
default?: false | ((arg: {
|
|
386
351
|
errorMessages: vue.ComputedRef<string[]>;
|
|
387
352
|
isDirty: vue.ComputedRef<boolean>;
|
|
388
353
|
isDisabled: vue.ComputedRef<boolean>;
|
|
@@ -399,7 +364,7 @@ declare const VValidation: {
|
|
|
399
364
|
}) => vue.VNodeChild) | undefined;
|
|
400
365
|
} | undefined;
|
|
401
366
|
} & {
|
|
402
|
-
"v-slot:default"?: false | ((
|
|
367
|
+
"v-slot:default"?: false | ((arg: {
|
|
403
368
|
errorMessages: vue.ComputedRef<string[]>;
|
|
404
369
|
isDirty: vue.ComputedRef<boolean>;
|
|
405
370
|
isDisabled: vue.ComputedRef<boolean>;
|
|
@@ -414,24 +379,6 @@ declare const VValidation: {
|
|
|
414
379
|
[x: string]: boolean;
|
|
415
380
|
}>;
|
|
416
381
|
}) => vue.VNodeChild) | undefined;
|
|
417
|
-
} & {
|
|
418
|
-
$slots?: {
|
|
419
|
-
default?: ((args_0: {
|
|
420
|
-
errorMessages: vue.ComputedRef<string[]>;
|
|
421
|
-
isDirty: vue.ComputedRef<boolean>;
|
|
422
|
-
isDisabled: vue.ComputedRef<boolean>;
|
|
423
|
-
isReadonly: vue.ComputedRef<boolean>;
|
|
424
|
-
isPristine: vue.ShallowRef<boolean>;
|
|
425
|
-
isValid: vue.ComputedRef<boolean | null>;
|
|
426
|
-
isValidating: vue.ShallowRef<boolean>;
|
|
427
|
-
reset: () => void;
|
|
428
|
-
resetValidation: () => void;
|
|
429
|
-
validate: (silent?: boolean) => Promise<string[]>;
|
|
430
|
-
validationClasses: vue.ComputedRef<{
|
|
431
|
-
[x: string]: boolean;
|
|
432
|
-
}>;
|
|
433
|
-
}) => vue.VNodeChild) | undefined;
|
|
434
|
-
} | undefined;
|
|
435
382
|
} & {
|
|
436
383
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
437
384
|
} & vue.ShallowUnwrapRef<() => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
@@ -457,7 +404,7 @@ declare const VValidation: {
|
|
|
457
404
|
validationValue?: any;
|
|
458
405
|
} & {
|
|
459
406
|
$children?: vue.VNodeChild | {
|
|
460
|
-
default?: ((
|
|
407
|
+
default?: ((arg: {
|
|
461
408
|
errorMessages: vue.ComputedRef<string[]>;
|
|
462
409
|
isDirty: vue.ComputedRef<boolean>;
|
|
463
410
|
isDisabled: vue.ComputedRef<boolean>;
|
|
@@ -472,7 +419,7 @@ declare const VValidation: {
|
|
|
472
419
|
[x: string]: boolean;
|
|
473
420
|
}>;
|
|
474
421
|
}) => vue.VNodeChild) | undefined;
|
|
475
|
-
} | ((
|
|
422
|
+
} | ((arg: {
|
|
476
423
|
errorMessages: vue.ComputedRef<string[]>;
|
|
477
424
|
isDirty: vue.ComputedRef<boolean>;
|
|
478
425
|
isDisabled: vue.ComputedRef<boolean>;
|
|
@@ -488,7 +435,7 @@ declare const VValidation: {
|
|
|
488
435
|
}>;
|
|
489
436
|
}) => vue.VNodeChild);
|
|
490
437
|
'v-slots'?: {
|
|
491
|
-
default?: false | ((
|
|
438
|
+
default?: false | ((arg: {
|
|
492
439
|
errorMessages: vue.ComputedRef<string[]>;
|
|
493
440
|
isDirty: vue.ComputedRef<boolean>;
|
|
494
441
|
isDisabled: vue.ComputedRef<boolean>;
|
|
@@ -505,7 +452,7 @@ declare const VValidation: {
|
|
|
505
452
|
}) => vue.VNodeChild) | undefined;
|
|
506
453
|
} | undefined;
|
|
507
454
|
} & {
|
|
508
|
-
"v-slot:default"?: false | ((
|
|
455
|
+
"v-slot:default"?: false | ((arg: {
|
|
509
456
|
errorMessages: vue.ComputedRef<string[]>;
|
|
510
457
|
isDirty: vue.ComputedRef<boolean>;
|
|
511
458
|
isDisabled: vue.ComputedRef<boolean>;
|
|
@@ -520,24 +467,6 @@ declare const VValidation: {
|
|
|
520
467
|
[x: string]: boolean;
|
|
521
468
|
}>;
|
|
522
469
|
}) => vue.VNodeChild) | undefined;
|
|
523
|
-
} & {
|
|
524
|
-
$slots?: {
|
|
525
|
-
default?: ((args_0: {
|
|
526
|
-
errorMessages: vue.ComputedRef<string[]>;
|
|
527
|
-
isDirty: vue.ComputedRef<boolean>;
|
|
528
|
-
isDisabled: vue.ComputedRef<boolean>;
|
|
529
|
-
isReadonly: vue.ComputedRef<boolean>;
|
|
530
|
-
isPristine: vue.ShallowRef<boolean>;
|
|
531
|
-
isValid: vue.ComputedRef<boolean | null>;
|
|
532
|
-
isValidating: vue.ShallowRef<boolean>;
|
|
533
|
-
reset: () => void;
|
|
534
|
-
resetValidation: () => void;
|
|
535
|
-
validate: (silent?: boolean) => Promise<string[]>;
|
|
536
|
-
validationClasses: vue.ComputedRef<{
|
|
537
|
-
[x: string]: boolean;
|
|
538
|
-
}>;
|
|
539
|
-
}) => vue.VNodeChild) | undefined;
|
|
540
|
-
} | undefined;
|
|
541
470
|
} & {
|
|
542
471
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
543
472
|
}, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
@@ -553,7 +482,7 @@ declare const VValidation: {
|
|
|
553
482
|
maxErrors: string | number;
|
|
554
483
|
rules: readonly ValidationRule[];
|
|
555
484
|
}, {}, string, vue.SlotsType<Partial<{
|
|
556
|
-
default: (
|
|
485
|
+
default: (arg: {
|
|
557
486
|
errorMessages: vue.ComputedRef<string[]>;
|
|
558
487
|
isDirty: vue.ComputedRef<boolean>;
|
|
559
488
|
isDisabled: vue.ComputedRef<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VVirtualScroll.mjs","names":["VVirtualScrollItem","makeComponentProps","makeDimensionProps","useDimension","useDisplay","useResizeObserver","computed","onMounted","ref","shallowRef","watch","watchEffect","clamp","convertToUnit","createRange","genericComponent","propsFactory","useRender","UP","DOWN","makeVVirtualScrollProps","items","type","Array","default","itemHeight","Number","String","VVirtualScroll","name","props","setup","_ref","slots","first","baseItemHeight","get","parseInt","value","set","val","rootEl","resizeRef","contentRect","display","sizeMap","Map","sizes","length","map","visibleItems","Math","max","ceil","height","handleItemResize","index","calculateOffset","slice","reduce","curr","calculateMidPointIndex","scrollTop","end","middle","middleOffset","lastScrollTop","handleScroll","direction","midPointIndex","buffer","round","scrollToIndex","offset","item","raw","last","min","computedItems","paddingTop","paddingBottom","dimensionStyles","forEach","indexOf","delete","_createVNode","class","style"],"sources":["../../../src/components/VVirtualScroll/VVirtualScroll.tsx"],"sourcesContent":["// Styles\nimport './VVirtualScroll.sass'\n\n// Components\nimport { VVirtualScrollItem } from './VVirtualScrollItem'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useDisplay } from '@/composables/display'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, onMounted, ref, shallowRef, watch, watchEffect } from 'vue'\nimport {\n clamp,\n convertToUnit,\n createRange,\n genericComponent,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { GenericProps } from '@/util'\n\nconst UP = -1\nconst DOWN = 1\n\nexport interface VVirtualScrollSlot<T> {\n item: T\n index: number\n}\n\nexport const makeVVirtualScrollProps = propsFactory({\n items: {\n type: Array,\n default: () => ([]),\n },\n itemHeight: [Number, String],\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n}, 'v-virtual-scroll')\n\nexport const VVirtualScroll = genericComponent<new <T>(\n props: {\n items?: readonly T[]\n },\n slots: {\n default: [VVirtualScrollSlot<T>]\n }\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VVirtualScroll',\n\n props: makeVVirtualScrollProps(),\n\n setup (props, { slots }) {\n const first = shallowRef(0)\n const baseItemHeight = shallowRef(props.itemHeight)\n const itemHeight = computed({\n get: () => parseInt(baseItemHeight.value ?? 0, 10),\n set (val) {\n baseItemHeight.value = val\n },\n })\n const rootEl = ref<HTMLDivElement>()\n const { resizeRef, contentRect } = useResizeObserver()\n watchEffect(() => {\n resizeRef.value = rootEl.value\n })\n const display = useDisplay()\n\n const sizeMap = new Map<any, number>()\n let sizes = createRange(props.items.length).map(() => itemHeight.value)\n const visibleItems = computed(() => {\n return Math.max(12,\n Math.ceil(((contentRect.value?.height ?? display.height.value) / itemHeight.value) * 1.7 + 1)\n )\n })\n\n function handleItemResize (index: number, height: number) {\n itemHeight.value = Math.max(itemHeight.value, height)\n sizes[index] = height\n sizeMap.set(props.items[index], height)\n }\n\n function calculateOffset (index: number) {\n return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0)\n }\n\n function calculateMidPointIndex (scrollTop: number) {\n const end = props.items.length\n\n let middle = 0\n let middleOffset = 0\n while (middleOffset < scrollTop && middle < end) {\n middleOffset += sizes[middle++] || itemHeight.value\n }\n\n return middle - 1\n }\n\n let lastScrollTop = 0\n function handleScroll () {\n if (!rootEl.value || !contentRect.value) return\n\n const height = contentRect.value.height\n const scrollTop = rootEl.value.scrollTop\n const direction = scrollTop < lastScrollTop ? UP : DOWN\n\n const midPointIndex = calculateMidPointIndex(scrollTop + height / 2)\n const buffer = Math.round(visibleItems.value / 3)\n if (direction === UP && midPointIndex <= first.value + (buffer * 2) - 1) {\n first.value = clamp(midPointIndex - buffer, 0, props.items.length)\n } else if (direction === DOWN && midPointIndex >= first.value + (buffer * 2) - 1) {\n first.value = clamp(midPointIndex - buffer, 0, props.items.length - visibleItems.value)\n }\n\n lastScrollTop = rootEl.value.scrollTop\n }\n\n function scrollToIndex (index: number) {\n if (!rootEl.value) return\n\n const offset = calculateOffset(index)\n rootEl.value.scrollTop = offset\n }\n\n const items = computed(() => props.items.map((item, index) => ({\n raw: item,\n index,\n })))\n const last = computed(() => Math.min(props.items.length, first.value + visibleItems.value))\n const computedItems = computed(() => items.value.slice(first.value, last.value))\n const paddingTop = computed(() => calculateOffset(first.value))\n const paddingBottom = computed(() => calculateOffset(props.items.length) - calculateOffset(last.value))\n\n const { dimensionStyles } = useDimension(props)\n\n onMounted(() => {\n if (!itemHeight.value) {\n // If itemHeight prop is not set, then calculate an estimated height from the average of inital items\n itemHeight.value = sizes.slice(first.value, last.value).reduce((curr, height) => curr + height, 0) / (visibleItems.value)\n }\n })\n\n watch(() => props.items.length, () => {\n sizes = createRange(props.items.length).map(() => itemHeight.value)\n sizeMap.forEach((height, item) => {\n const index = props.items.indexOf(item)\n if (index === -1) {\n sizeMap.delete(item)\n } else {\n sizes[index] = height\n }\n })\n })\n\n useRender(() => (\n <div\n ref={ rootEl }\n class={[\n 'v-virtual-scroll',\n props.class,\n ]}\n onScroll={ handleScroll }\n style={[\n dimensionStyles.value,\n props.style,\n ]}\n >\n <div\n class=\"v-virtual-scroll__container\"\n style={{\n paddingTop: convertToUnit(paddingTop.value),\n paddingBottom: convertToUnit(paddingBottom.value),\n }}\n >\n { computedItems.value.map(item => (\n <VVirtualScrollItem\n key={ item.index }\n dynamicHeight={ !props.itemHeight }\n onUpdate:height={ height => handleItemResize(item.index, height) }\n >\n { slots.default?.({ item: item.raw, index: item.index }) }\n </VVirtualScrollItem>\n ))}\n </div>\n </div>\n ))\n\n return {\n scrollToIndex,\n }\n },\n})\n\nexport type VVirtualScroll = InstanceType<typeof VVirtualScroll>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VVirtualScroll.mjs","names":["VVirtualScrollItem","makeComponentProps","makeDimensionProps","useDimension","useDisplay","useResizeObserver","computed","onMounted","ref","shallowRef","watch","watchEffect","clamp","convertToUnit","createRange","genericComponent","propsFactory","useRender","UP","DOWN","makeVVirtualScrollProps","items","type","Array","default","itemHeight","Number","String","VVirtualScroll","name","props","setup","_ref","slots","first","baseItemHeight","get","parseInt","value","set","val","rootEl","resizeRef","contentRect","display","sizeMap","Map","sizes","length","map","visibleItems","Math","max","ceil","height","handleItemResize","index","calculateOffset","slice","reduce","curr","calculateMidPointIndex","scrollTop","end","middle","middleOffset","lastScrollTop","handleScroll","direction","midPointIndex","buffer","round","scrollToIndex","offset","item","raw","last","min","computedItems","paddingTop","paddingBottom","dimensionStyles","forEach","indexOf","delete","_createVNode","class","style"],"sources":["../../../src/components/VVirtualScroll/VVirtualScroll.tsx"],"sourcesContent":["// Styles\nimport './VVirtualScroll.sass'\n\n// Components\nimport { VVirtualScrollItem } from './VVirtualScrollItem'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useDisplay } from '@/composables/display'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, onMounted, ref, shallowRef, watch, watchEffect } from 'vue'\nimport {\n clamp,\n convertToUnit,\n createRange,\n genericComponent,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { GenericProps } from '@/util'\n\nconst UP = -1\nconst DOWN = 1\n\nexport interface VVirtualScrollSlot<T> {\n item: T\n index: number\n}\n\nexport const makeVVirtualScrollProps = propsFactory({\n items: {\n type: Array,\n default: () => ([]),\n },\n itemHeight: [Number, String],\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n}, 'v-virtual-scroll')\n\nexport const VVirtualScroll = genericComponent<new <T>(\n props: {\n items?: readonly T[]\n },\n slots: {\n default: VVirtualScrollSlot<T>\n }\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VVirtualScroll',\n\n props: makeVVirtualScrollProps(),\n\n setup (props, { slots }) {\n const first = shallowRef(0)\n const baseItemHeight = shallowRef(props.itemHeight)\n const itemHeight = computed({\n get: () => parseInt(baseItemHeight.value ?? 0, 10),\n set (val) {\n baseItemHeight.value = val\n },\n })\n const rootEl = ref<HTMLDivElement>()\n const { resizeRef, contentRect } = useResizeObserver()\n watchEffect(() => {\n resizeRef.value = rootEl.value\n })\n const display = useDisplay()\n\n const sizeMap = new Map<any, number>()\n let sizes = createRange(props.items.length).map(() => itemHeight.value)\n const visibleItems = computed(() => {\n return Math.max(12,\n Math.ceil(((contentRect.value?.height ?? display.height.value) / itemHeight.value) * 1.7 + 1)\n )\n })\n\n function handleItemResize (index: number, height: number) {\n itemHeight.value = Math.max(itemHeight.value, height)\n sizes[index] = height\n sizeMap.set(props.items[index], height)\n }\n\n function calculateOffset (index: number) {\n return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0)\n }\n\n function calculateMidPointIndex (scrollTop: number) {\n const end = props.items.length\n\n let middle = 0\n let middleOffset = 0\n while (middleOffset < scrollTop && middle < end) {\n middleOffset += sizes[middle++] || itemHeight.value\n }\n\n return middle - 1\n }\n\n let lastScrollTop = 0\n function handleScroll () {\n if (!rootEl.value || !contentRect.value) return\n\n const height = contentRect.value.height\n const scrollTop = rootEl.value.scrollTop\n const direction = scrollTop < lastScrollTop ? UP : DOWN\n\n const midPointIndex = calculateMidPointIndex(scrollTop + height / 2)\n const buffer = Math.round(visibleItems.value / 3)\n if (direction === UP && midPointIndex <= first.value + (buffer * 2) - 1) {\n first.value = clamp(midPointIndex - buffer, 0, props.items.length)\n } else if (direction === DOWN && midPointIndex >= first.value + (buffer * 2) - 1) {\n first.value = clamp(midPointIndex - buffer, 0, props.items.length - visibleItems.value)\n }\n\n lastScrollTop = rootEl.value.scrollTop\n }\n\n function scrollToIndex (index: number) {\n if (!rootEl.value) return\n\n const offset = calculateOffset(index)\n rootEl.value.scrollTop = offset\n }\n\n const items = computed(() => props.items.map((item, index) => ({\n raw: item,\n index,\n })))\n const last = computed(() => Math.min(props.items.length, first.value + visibleItems.value))\n const computedItems = computed(() => items.value.slice(first.value, last.value))\n const paddingTop = computed(() => calculateOffset(first.value))\n const paddingBottom = computed(() => calculateOffset(props.items.length) - calculateOffset(last.value))\n\n const { dimensionStyles } = useDimension(props)\n\n onMounted(() => {\n if (!itemHeight.value) {\n // If itemHeight prop is not set, then calculate an estimated height from the average of inital items\n itemHeight.value = sizes.slice(first.value, last.value).reduce((curr, height) => curr + height, 0) / (visibleItems.value)\n }\n })\n\n watch(() => props.items.length, () => {\n sizes = createRange(props.items.length).map(() => itemHeight.value)\n sizeMap.forEach((height, item) => {\n const index = props.items.indexOf(item)\n if (index === -1) {\n sizeMap.delete(item)\n } else {\n sizes[index] = height\n }\n })\n })\n\n useRender(() => (\n <div\n ref={ rootEl }\n class={[\n 'v-virtual-scroll',\n props.class,\n ]}\n onScroll={ handleScroll }\n style={[\n dimensionStyles.value,\n props.style,\n ]}\n >\n <div\n class=\"v-virtual-scroll__container\"\n style={{\n paddingTop: convertToUnit(paddingTop.value),\n paddingBottom: convertToUnit(paddingBottom.value),\n }}\n >\n { computedItems.value.map(item => (\n <VVirtualScrollItem\n key={ item.index }\n dynamicHeight={ !props.itemHeight }\n onUpdate:height={ height => handleItemResize(item.index, height) }\n >\n { slots.default?.({ item: item.raw, index: item.index }) }\n </VVirtualScrollItem>\n ))}\n </div>\n </div>\n ))\n\n return {\n scrollToIndex,\n }\n },\n})\n\nexport type VVirtualScroll = InstanceType<typeof VVirtualScroll>\n"],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ import { createVNode as _createVNode } from "vue";
|
|
|
3
3
|
import { makeComponentProps } from "../../composables/component.mjs";
|
|
4
4
|
import { useResizeObserver } from "../../composables/resizeObserver.mjs";
|
|
5
5
|
import { useToggleScope } from "../../composables/toggleScope.mjs"; // Utilities
|
|
6
|
-
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs";
|
|
7
6
|
import { onUpdated, watch } from 'vue';
|
|
7
|
+
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs";
|
|
8
8
|
export const makeVVirtualScrollItemProps = propsFactory({
|
|
9
9
|
dynamicHeight: Boolean,
|
|
10
10
|
...makeComponentProps()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VVirtualScrollItem.mjs","names":["makeComponentProps","useResizeObserver","useToggleScope","
|
|
1
|
+
{"version":3,"file":"VVirtualScrollItem.mjs","names":["makeComponentProps","useResizeObserver","useToggleScope","onUpdated","watch","genericComponent","propsFactory","useRender","makeVVirtualScrollItemProps","dynamicHeight","Boolean","VVirtualScrollItem","name","props","emits","height","setup","_ref","emit","slots","resizeRef","contentRect","value","updateHeight","_createVNode","undefined","class","style","default"],"sources":["../../../src/components/VVirtualScroll/VVirtualScrollItem.tsx"],"sourcesContent":["// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { onUpdated, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVVirtualScrollItemProps = propsFactory({\n dynamicHeight: Boolean,\n\n ...makeComponentProps(),\n}, 'v-virtual-scroll-item')\n\nexport const VVirtualScrollItem = genericComponent()({\n name: 'VVirtualScrollItem',\n\n props: makeVVirtualScrollItemProps(),\n\n emits: {\n 'update:height': (height: number) => true,\n },\n\n setup (props, { emit, slots }) {\n const { resizeRef, contentRect } = useResizeObserver()\n\n useToggleScope(() => props.dynamicHeight, () => {\n watch(() => contentRect.value?.height, height => {\n if (height != null) emit('update:height', height)\n })\n })\n\n function updateHeight () {\n if (props.dynamicHeight && contentRect.value) {\n emit('update:height', contentRect.value.height)\n }\n }\n\n onUpdated(updateHeight)\n\n useRender(() => (\n <div\n ref={ props.dynamicHeight ? resizeRef : undefined }\n class={[\n 'v-virtual-scroll__item',\n props.class,\n ]}\n style={ props.style }\n >\n { slots.default?.() }\n </div>\n ))\n },\n})\n"],"mappings":";AAAA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,iBAAiB;AAAA,SACjBC,cAAc,6CAEvB;AACA,SAASC,SAAS,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC7BC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAElD,OAAO,MAAMC,2BAA2B,GAAGF,YAAY,CAAC;EACtDG,aAAa,EAAEC,OAAO;EAEtB,GAAGV,kBAAkB;AACvB,CAAC,EAAE,uBAAuB,CAAC;AAE3B,OAAO,MAAMW,kBAAkB,GAAGN,gBAAgB,EAAE,CAAC;EACnDO,IAAI,EAAE,oBAAoB;EAE1BC,KAAK,EAAEL,2BAA2B,EAAE;EAEpCM,KAAK,EAAE;IACL,eAAe,EAAGC,MAAc,IAAK;EACvC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAM;MAAEG,SAAS;MAAEC;IAAY,CAAC,GAAGpB,iBAAiB,EAAE;IAEtDC,cAAc,CAAC,MAAMW,KAAK,CAACJ,aAAa,EAAE,MAAM;MAC9CL,KAAK,CAAC,MAAMiB,WAAW,CAACC,KAAK,EAAEP,MAAM,EAAEA,MAAM,IAAI;QAC/C,IAAIA,MAAM,IAAI,IAAI,EAAEG,IAAI,CAAC,eAAe,EAAEH,MAAM,CAAC;MACnD,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,SAASQ,YAAYA,CAAA,EAAI;MACvB,IAAIV,KAAK,CAACJ,aAAa,IAAIY,WAAW,CAACC,KAAK,EAAE;QAC5CJ,IAAI,CAAC,eAAe,EAAEG,WAAW,CAACC,KAAK,CAACP,MAAM,CAAC;MACjD;IACF;IAEAZ,SAAS,CAACoB,YAAY,CAAC;IAEvBhB,SAAS,CAAC,MAAAiB,YAAA;MAAA,OAEAX,KAAK,CAACJ,aAAa,GAAGW,SAAS,GAAGK,SAAS;MAAA,SAC1C,CACL,wBAAwB,EACxBZ,KAAK,CAACa,KAAK,CACZ;MAAA,SACOb,KAAK,CAACc;IAAK,IAEjBR,KAAK,CAACS,OAAO,IAAI,EAEtB,CAAC;EACJ;AACF,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as vue from 'vue';
|
|
2
|
-
import { ComponentPropsOptions, ExtractPropTypes, VNodeChild } from 'vue';
|
|
2
|
+
import { ComponentPropsOptions, ExtractPropTypes, VNodeChild, VNode } from 'vue';
|
|
3
3
|
|
|
4
|
-
type SlotsToProps<U extends RawSlots,
|
|
4
|
+
type SlotsToProps<U extends RawSlots, T = MakeInternalSlots<U>> = {
|
|
5
5
|
$children?: (VNodeChild | (T extends {
|
|
6
6
|
default: infer V;
|
|
7
7
|
} ? V : {}) | {
|
|
@@ -12,18 +12,18 @@ type SlotsToProps<U extends RawSlots, Generic extends boolean = false, T = U ext
|
|
|
12
12
|
};
|
|
13
13
|
} & {
|
|
14
14
|
[K in keyof T as `v-slot:${K & string}`]?: T[K] | false;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
};
|
|
16
|
+
type RawSlots = Record<string, unknown>;
|
|
17
|
+
type Slot<T> = [T] extends [never] ? () => VNodeChild : (arg: T) => VNodeChild;
|
|
18
|
+
type VueSlot<T> = [T] extends [never] ? () => VNode[] : (arg: T) => VNode[];
|
|
19
|
+
type MakeInternalSlots<T extends RawSlots> = {
|
|
20
|
+
[K in keyof T]: Slot<T[K]>;
|
|
21
|
+
};
|
|
22
22
|
type MakeSlots<T extends RawSlots> = {
|
|
23
|
-
[K in keyof T]:
|
|
23
|
+
[K in keyof T]: VueSlot<T[K]>;
|
|
24
24
|
};
|
|
25
|
-
type GenericProps<Props, Slots extends Record<string,
|
|
26
|
-
$props: Props & SlotsToProps<Slots
|
|
25
|
+
type GenericProps<Props, Slots extends Record<string, unknown>> = {
|
|
26
|
+
$props: Props & SlotsToProps<Slots>;
|
|
27
27
|
$slots: MakeSlots<Slots>;
|
|
28
28
|
};
|
|
29
29
|
interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
|
|
@@ -98,7 +98,7 @@ declare const VVirtualScroll: {
|
|
|
98
98
|
[x: string]: unknown;
|
|
99
99
|
};
|
|
100
100
|
$slots: Readonly<{
|
|
101
|
-
default?: ((
|
|
101
|
+
default?: ((arg: VVirtualScrollSlot<unknown>) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
102
102
|
[key: string]: any;
|
|
103
103
|
}>[]) | undefined;
|
|
104
104
|
}>;
|
|
@@ -122,7 +122,7 @@ declare const VVirtualScroll: {
|
|
|
122
122
|
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<Record<string, any>, "$children" | "v-slot:default" | "items" | "v-slots">, string, {
|
|
123
123
|
style: vue.StyleValue;
|
|
124
124
|
}, {}, string, vue.SlotsType<Partial<{
|
|
125
|
-
default: (
|
|
125
|
+
default: (arg: VVirtualScrollSlot<unknown>) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
126
126
|
[key: string]: any;
|
|
127
127
|
}>[];
|
|
128
128
|
}>>> & {
|
|
@@ -178,17 +178,17 @@ declare const VVirtualScroll: {
|
|
|
178
178
|
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<Record<string, any>, "$children" | "v-slot:default" | "items" | "v-slots">, string, {
|
|
179
179
|
style: vue.StyleValue;
|
|
180
180
|
}, {}, string, vue.SlotsType<Partial<{
|
|
181
|
-
default: (
|
|
181
|
+
default: (arg: VVirtualScrollSlot<unknown>) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
182
182
|
[key: string]: any;
|
|
183
183
|
}>[];
|
|
184
184
|
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new <T_1>(props: {
|
|
185
185
|
items?: readonly T_1[] | undefined;
|
|
186
186
|
}, slots: {
|
|
187
|
-
default:
|
|
187
|
+
default: VVirtualScrollSlot<T_1>;
|
|
188
188
|
}) => GenericProps<{
|
|
189
189
|
items?: readonly T_1[] | undefined;
|
|
190
190
|
}, {
|
|
191
|
-
default:
|
|
191
|
+
default: VVirtualScrollSlot<T_1>;
|
|
192
192
|
}>) & FilterPropsOptions<{
|
|
193
193
|
height: (StringConstructor | NumberConstructor)[];
|
|
194
194
|
maxHeight: (StringConstructor | NumberConstructor)[];
|
|
@@ -3,13 +3,13 @@ import { withDirectives as _withDirectives, resolveDirective as _resolveDirectiv
|
|
|
3
3
|
import "./VWindow.css";
|
|
4
4
|
|
|
5
5
|
// Components
|
|
6
|
-
import { VBtn } from "../VBtn/index.mjs"; //
|
|
7
|
-
import { Touch } from "../../directives/touch/index.mjs"; // Composables
|
|
6
|
+
import { VBtn } from "../VBtn/index.mjs"; // Composables
|
|
8
7
|
import { makeComponentProps } from "../../composables/component.mjs";
|
|
9
|
-
import { makeTagProps } from "../../composables/tag.mjs";
|
|
10
|
-
import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
|
|
11
8
|
import { useGroup } from "../../composables/group.mjs";
|
|
12
|
-
import { useLocale, useRtl } from "../../composables/locale.mjs";
|
|
9
|
+
import { useLocale, useRtl } from "../../composables/locale.mjs";
|
|
10
|
+
import { makeTagProps } from "../../composables/tag.mjs";
|
|
11
|
+
import { makeThemeProps, provideTheme } from "../../composables/theme.mjs"; // Directives
|
|
12
|
+
import { Touch } from "../../directives/touch/index.mjs"; // Utilities
|
|
13
13
|
import { computed, provide, ref, shallowRef, watch } from 'vue';
|
|
14
14
|
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
15
15
|
export const VWindowSymbol = Symbol.for('vuetify:v-window');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VWindow.mjs","names":["VBtn","Touch","makeComponentProps","makeTagProps","makeThemeProps","provideTheme","useGroup","useLocale","useRtl","computed","provide","ref","shallowRef","watch","genericComponent","propsFactory","useRender","VWindowSymbol","Symbol","for","VWindowGroupSymbol","makeVWindowProps","continuous","Boolean","nextIcon","type","String","Function","Object","default","prevIcon","reverse","showArrows","validator","v","touch","undefined","direction","modelValue","disabled","selectedClass","mandatory","VWindow","name","directives","props","emits","setup","_ref","slots","themeClasses","isRtl","t","group","rootRef","isRtlReverse","value","isReversed","transition","axis","transitionCount","transitionHeight","activeIndex","items","findIndex","item","selected","includes","id","newVal","oldVal","itemsLength","length","lastIndex","canMoveBack","canMoveForward","prev","next","arrows","prevProps","icon","class","onClick","ariaLabel","push","_createVNode","nextProps","touchOptions","options","left","right","start","_ref2","originalEvent","stopPropagation","_withDirectives","tag","style","height","additional","_resolveDirective"],"sources":["../../../src/components/VWindow/VWindow.tsx"],"sourcesContent":["// Styles\nimport './VWindow.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Directives\nimport { Touch } from '@/directives/touch'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useGroup } from '@/composables/group'\nimport { useLocale, useRtl } from '@/composables/locale'\n\n// Utilities\nimport { computed, provide, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, InjectionKey, PropType, Ref } from 'vue'\nimport type { GroupItemProvide, GroupProvide } from '@/composables/group'\nimport type { IconValue } from '@/composables/icons'\nimport type { TouchHandlers } from '@/directives/touch'\n\nexport type VWindowSlots = {\n default: [{ group: GroupProvide }]\n additional: [{ group: GroupProvide }]\n prev: [{ props: ControlProps }]\n next: [{ props: ControlProps }]\n}\n\ntype WindowProvide = {\n transition: ComputedRef<undefined | string>\n transitionCount: Ref<number>\n transitionHeight: Ref<undefined | string>\n isReversed: Ref<boolean>\n rootRef: Ref<HTMLElement | undefined>\n}\n\ntype ControlProps = {\n icon: IconValue\n class: string\n onClick: () => void\n ariaLabel: string\n}\n\nexport const VWindowSymbol: InjectionKey<WindowProvide> = Symbol.for('vuetify:v-window')\nexport const VWindowGroupSymbol: InjectionKey<GroupItemProvide> = Symbol.for('vuetify:v-window-group')\n\nexport const makeVWindowProps = propsFactory({\n continuous: Boolean,\n nextIcon: {\n type: [Boolean, String, Function, Object] as PropType<IconValue>,\n default: '$next',\n },\n prevIcon: {\n type: [Boolean, String, Function, Object] as PropType<IconValue>,\n default: '$prev',\n },\n reverse: Boolean,\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => typeof v === 'boolean' || v === 'hover',\n },\n touch: {\n type: [Object, Boolean] as PropType<boolean | TouchHandlers>,\n default: undefined,\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n\n modelValue: null,\n disabled: Boolean,\n selectedClass: {\n type: String,\n default: 'v-window-item--active',\n },\n // TODO: mandatory should probably not be exposed but do this for now\n mandatory: {\n default: 'force' as const,\n },\n\n ...makeComponentProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'v-window')\n\nexport const VWindow = genericComponent<VWindowSlots>()({\n name: 'VWindow',\n\n directives: {\n Touch,\n },\n\n props: makeVWindowProps(),\n\n emits: {\n 'update:modelValue': (v: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isRtl } = useRtl()\n const { t } = useLocale()\n\n const group = useGroup(props, VWindowGroupSymbol)\n\n const rootRef = ref()\n const isRtlReverse = computed(() => isRtl.value ? !props.reverse : props.reverse)\n const isReversed = shallowRef(false)\n const transition = computed(() => {\n const axis = props.direction === 'vertical' ? 'y' : 'x'\n const reverse = isRtlReverse.value ? !isReversed.value : isReversed.value\n const direction = reverse ? '-reverse' : ''\n\n return `v-window-${axis}${direction}-transition`\n })\n const transitionCount = shallowRef(0)\n const transitionHeight = ref<undefined | string>(undefined)\n\n const activeIndex = computed(() => {\n return group.items.value.findIndex(item => group.selected.value.includes(item.id))\n })\n\n watch(activeIndex, (newVal, oldVal) => {\n const itemsLength = group.items.value.length\n const lastIndex = itemsLength - 1\n\n if (itemsLength <= 2) {\n isReversed.value = newVal < oldVal\n } else if (newVal === lastIndex && oldVal === 0) {\n isReversed.value = true\n } else if (newVal === 0 && oldVal === lastIndex) {\n isReversed.value = false\n } else {\n isReversed.value = newVal < oldVal\n }\n })\n\n provide(VWindowSymbol, {\n transition,\n isReversed,\n transitionCount,\n transitionHeight,\n rootRef,\n })\n\n const canMoveBack = computed(() => props.continuous || activeIndex.value !== 0)\n const canMoveForward = computed(() => props.continuous || activeIndex.value !== group.items.value.length - 1)\n\n function prev () {\n canMoveBack.value && group.prev()\n }\n\n function next () {\n canMoveForward.value && group.next()\n }\n\n const arrows = computed(() => {\n const arrows = []\n\n const prevProps = {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n class: `v-window__${isRtlReverse.value ? 'right' : 'left'}`,\n onClick: group.prev,\n ariaLabel: t('$vuetify.carousel.prev'),\n }\n\n arrows.push(canMoveBack.value\n ? slots.prev\n ? slots.prev({ props: prevProps })\n : <VBtn { ...prevProps } />\n : <div />\n )\n\n const nextProps = {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n class: `v-window__${isRtlReverse.value ? 'left' : 'right'}`,\n onClick: group.next,\n ariaLabel: t('$vuetify.carousel.next'),\n }\n\n arrows.push(canMoveForward.value\n ? slots.next\n ? slots.next({ props: nextProps })\n : <VBtn { ...nextProps } />\n : <div />\n )\n\n return arrows\n })\n\n const touchOptions = computed(() => {\n if (props.touch === false) return props.touch\n\n const options: TouchHandlers = {\n left: () => {\n isRtlReverse.value ? prev() : next()\n },\n right: () => {\n isRtlReverse.value ? next() : prev()\n },\n start: ({ originalEvent }) => {\n originalEvent.stopPropagation()\n },\n }\n\n return {\n ...options,\n ...(props.touch === true ? {} : props.touch),\n }\n })\n\n useRender(() => (\n <props.tag\n ref={ rootRef }\n class={[\n 'v-window',\n {\n 'v-window--show-arrows-on-hover': props.showArrows === 'hover',\n },\n themeClasses.value,\n props.class,\n ]}\n style={ props.style }\n v-touch={ touchOptions.value }\n >\n <div\n class=\"v-window__container\"\n style={{\n height: transitionHeight.value,\n }}\n >\n { slots.default?.({ group }) }\n\n { props.showArrows !== false && (\n <div class=\"v-window__controls\">\n { arrows.value }\n </div>\n )}\n </div>\n\n { slots.additional?.({ group }) }\n </props.tag>\n ))\n\n return {\n group,\n }\n },\n})\n\nexport type VWindow = InstanceType<typeof VWindow>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VWindow.mjs","names":["VBtn","makeComponentProps","useGroup","useLocale","useRtl","makeTagProps","makeThemeProps","provideTheme","Touch","computed","provide","ref","shallowRef","watch","genericComponent","propsFactory","useRender","VWindowSymbol","Symbol","for","VWindowGroupSymbol","makeVWindowProps","continuous","Boolean","nextIcon","type","String","Function","Object","default","prevIcon","reverse","showArrows","validator","v","touch","undefined","direction","modelValue","disabled","selectedClass","mandatory","VWindow","name","directives","props","emits","setup","_ref","slots","themeClasses","isRtl","t","group","rootRef","isRtlReverse","value","isReversed","transition","axis","transitionCount","transitionHeight","activeIndex","items","findIndex","item","selected","includes","id","newVal","oldVal","itemsLength","length","lastIndex","canMoveBack","canMoveForward","prev","next","arrows","prevProps","icon","class","onClick","ariaLabel","push","_createVNode","nextProps","touchOptions","options","left","right","start","_ref2","originalEvent","stopPropagation","_withDirectives","tag","style","height","additional","_resolveDirective"],"sources":["../../../src/components/VWindow/VWindow.tsx"],"sourcesContent":["// Styles\nimport './VWindow.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useGroup } from '@/composables/group'\nimport { useLocale, useRtl } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Directives\nimport { Touch } from '@/directives/touch'\n\n// Utilities\nimport { computed, provide, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, InjectionKey, PropType, Ref } from 'vue'\nimport type { GroupItemProvide, GroupProvide } from '@/composables/group'\nimport type { IconValue } from '@/composables/icons'\nimport type { TouchHandlers } from '@/directives/touch'\n\nexport type VWindowSlots = {\n default: { group: GroupProvide }\n additional: { group: GroupProvide }\n prev: { props: ControlProps }\n next: { props: ControlProps }\n}\n\ntype WindowProvide = {\n transition: ComputedRef<undefined | string>\n transitionCount: Ref<number>\n transitionHeight: Ref<undefined | string>\n isReversed: Ref<boolean>\n rootRef: Ref<HTMLElement | undefined>\n}\n\ntype ControlProps = {\n icon: IconValue\n class: string\n onClick: () => void\n ariaLabel: string\n}\n\nexport const VWindowSymbol: InjectionKey<WindowProvide> = Symbol.for('vuetify:v-window')\nexport const VWindowGroupSymbol: InjectionKey<GroupItemProvide> = Symbol.for('vuetify:v-window-group')\n\nexport const makeVWindowProps = propsFactory({\n continuous: Boolean,\n nextIcon: {\n type: [Boolean, String, Function, Object] as PropType<IconValue>,\n default: '$next',\n },\n prevIcon: {\n type: [Boolean, String, Function, Object] as PropType<IconValue>,\n default: '$prev',\n },\n reverse: Boolean,\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => typeof v === 'boolean' || v === 'hover',\n },\n touch: {\n type: [Object, Boolean] as PropType<boolean | TouchHandlers>,\n default: undefined,\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n\n modelValue: null,\n disabled: Boolean,\n selectedClass: {\n type: String,\n default: 'v-window-item--active',\n },\n // TODO: mandatory should probably not be exposed but do this for now\n mandatory: {\n default: 'force' as const,\n },\n\n ...makeComponentProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'v-window')\n\nexport const VWindow = genericComponent<VWindowSlots>()({\n name: 'VWindow',\n\n directives: {\n Touch,\n },\n\n props: makeVWindowProps(),\n\n emits: {\n 'update:modelValue': (v: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isRtl } = useRtl()\n const { t } = useLocale()\n\n const group = useGroup(props, VWindowGroupSymbol)\n\n const rootRef = ref()\n const isRtlReverse = computed(() => isRtl.value ? !props.reverse : props.reverse)\n const isReversed = shallowRef(false)\n const transition = computed(() => {\n const axis = props.direction === 'vertical' ? 'y' : 'x'\n const reverse = isRtlReverse.value ? !isReversed.value : isReversed.value\n const direction = reverse ? '-reverse' : ''\n\n return `v-window-${axis}${direction}-transition`\n })\n const transitionCount = shallowRef(0)\n const transitionHeight = ref<undefined | string>(undefined)\n\n const activeIndex = computed(() => {\n return group.items.value.findIndex(item => group.selected.value.includes(item.id))\n })\n\n watch(activeIndex, (newVal, oldVal) => {\n const itemsLength = group.items.value.length\n const lastIndex = itemsLength - 1\n\n if (itemsLength <= 2) {\n isReversed.value = newVal < oldVal\n } else if (newVal === lastIndex && oldVal === 0) {\n isReversed.value = true\n } else if (newVal === 0 && oldVal === lastIndex) {\n isReversed.value = false\n } else {\n isReversed.value = newVal < oldVal\n }\n })\n\n provide(VWindowSymbol, {\n transition,\n isReversed,\n transitionCount,\n transitionHeight,\n rootRef,\n })\n\n const canMoveBack = computed(() => props.continuous || activeIndex.value !== 0)\n const canMoveForward = computed(() => props.continuous || activeIndex.value !== group.items.value.length - 1)\n\n function prev () {\n canMoveBack.value && group.prev()\n }\n\n function next () {\n canMoveForward.value && group.next()\n }\n\n const arrows = computed(() => {\n const arrows = []\n\n const prevProps = {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n class: `v-window__${isRtlReverse.value ? 'right' : 'left'}`,\n onClick: group.prev,\n ariaLabel: t('$vuetify.carousel.prev'),\n }\n\n arrows.push(canMoveBack.value\n ? slots.prev\n ? slots.prev({ props: prevProps })\n : <VBtn { ...prevProps } />\n : <div />\n )\n\n const nextProps = {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n class: `v-window__${isRtlReverse.value ? 'left' : 'right'}`,\n onClick: group.next,\n ariaLabel: t('$vuetify.carousel.next'),\n }\n\n arrows.push(canMoveForward.value\n ? slots.next\n ? slots.next({ props: nextProps })\n : <VBtn { ...nextProps } />\n : <div />\n )\n\n return arrows\n })\n\n const touchOptions = computed(() => {\n if (props.touch === false) return props.touch\n\n const options: TouchHandlers = {\n left: () => {\n isRtlReverse.value ? prev() : next()\n },\n right: () => {\n isRtlReverse.value ? next() : prev()\n },\n start: ({ originalEvent }) => {\n originalEvent.stopPropagation()\n },\n }\n\n return {\n ...options,\n ...(props.touch === true ? {} : props.touch),\n }\n })\n\n useRender(() => (\n <props.tag\n ref={ rootRef }\n class={[\n 'v-window',\n {\n 'v-window--show-arrows-on-hover': props.showArrows === 'hover',\n },\n themeClasses.value,\n props.class,\n ]}\n style={ props.style }\n v-touch={ touchOptions.value }\n >\n <div\n class=\"v-window__container\"\n style={{\n height: transitionHeight.value,\n }}\n >\n { slots.default?.({ group }) }\n\n { props.showArrows !== false && (\n <div class=\"v-window__controls\">\n { arrows.value }\n </div>\n )}\n </div>\n\n { slots.additional?.({ group }) }\n </props.tag>\n ))\n\n return {\n group,\n }\n },\n})\n\nexport type VWindow = InstanceType<typeof VWindow>\n"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { withDirectives as _withDirectives, createVNode as _createVNode, vShow as _vShow } from "vue";
|
|
2
|
-
//
|
|
3
|
-
import Touch from "../../directives/touch/index.mjs"; // Composables
|
|
2
|
+
// Composables
|
|
4
3
|
import { makeComponentProps } from "../../composables/component.mjs";
|
|
5
4
|
import { makeGroupItemProps, useGroupItem } from "../../composables/group.mjs";
|
|
6
5
|
import { makeLazyProps, useLazy } from "../../composables/lazy.mjs";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
6
|
+
import { useSsrBoot } from "../../composables/ssrBoot.mjs";
|
|
7
|
+
import { MaybeTransition } from "../../composables/transition.mjs"; // Directives
|
|
8
|
+
import Touch from "../../directives/touch/index.mjs"; // Utilities
|
|
9
9
|
import { computed, inject, nextTick, shallowRef } from 'vue';
|
|
10
10
|
import { convertToUnit, genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
11
11
|
import { VWindowGroupSymbol, VWindowSymbol } from "./VWindow.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VWindowItem.mjs","names":["
|
|
1
|
+
{"version":3,"file":"VWindowItem.mjs","names":["makeComponentProps","makeGroupItemProps","useGroupItem","makeLazyProps","useLazy","useSsrBoot","MaybeTransition","Touch","computed","inject","nextTick","shallowRef","convertToUnit","genericComponent","propsFactory","useRender","VWindowGroupSymbol","VWindowSymbol","makeVWindowItemProps","reverseTransition","type","Boolean","String","default","undefined","transition","VWindowItem","name","directives","props","emits","val","setup","_ref","slots","window","groupItem","isBooted","Error","isTransitioning","hasTransition","value","isReversed","onAfterTransition","transitionCount","transitionHeight","onBeforeTransition","rootRef","clientHeight","onTransitionCancelled","onEnterTransition","el","onBeforeEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onAfterLeave","onLeaveCancelled","onEnter","hasContent","isSelected","_createVNode","_withDirectives","selectedClass","class","style","_vShow"],"sources":["../../../src/components/VWindow/VWindowItem.tsx"],"sourcesContent":["// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeLazyProps, useLazy } from '@/composables/lazy'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport Touch from '@/directives/touch'\n\n// Utilities\nimport { computed, inject, nextTick, shallowRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport { VWindowGroupSymbol, VWindowSymbol } from './VWindow'\n\nexport const makeVWindowItemProps = propsFactory({\n reverseTransition: {\n type: [Boolean, String],\n default: undefined,\n },\n transition: {\n type: [Boolean, String],\n default: undefined,\n },\n\n ...makeComponentProps(),\n ...makeGroupItemProps(),\n ...makeLazyProps(),\n}, 'v-window-item')\n\nexport const VWindowItem = genericComponent()({\n name: 'VWindowItem',\n\n directives: {\n Touch,\n },\n\n props: makeVWindowItemProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const window = inject(VWindowSymbol)\n const groupItem = useGroupItem(props, VWindowGroupSymbol)\n const { isBooted } = useSsrBoot()\n\n if (!window || !groupItem) throw new Error('[Vuetify] VWindowItem must be used inside VWindow')\n\n const isTransitioning = shallowRef(false)\n const hasTransition = computed(() => isBooted.value && (\n window.isReversed.value\n ? props.reverseTransition !== false\n : props.transition !== false\n ))\n\n function onAfterTransition () {\n if (!isTransitioning.value || !window) {\n return\n }\n\n // Finalize transition state.\n isTransitioning.value = false\n if (window.transitionCount.value > 0) {\n window.transitionCount.value -= 1\n\n // Remove container height if we are out of transition.\n if (window.transitionCount.value === 0) {\n window.transitionHeight.value = undefined\n }\n }\n }\n\n function onBeforeTransition () {\n if (isTransitioning.value || !window) {\n return\n }\n\n // Initialize transition state here.\n isTransitioning.value = true\n\n if (window.transitionCount.value === 0) {\n // Set initial height for height transition.\n window.transitionHeight.value = convertToUnit(window.rootRef.value?.clientHeight)\n }\n\n window.transitionCount.value += 1\n }\n\n function onTransitionCancelled () {\n onAfterTransition() // This should have the same path as normal transition end.\n }\n\n function onEnterTransition (el: Element) {\n if (!isTransitioning.value) {\n return\n }\n\n nextTick(() => {\n // Do not set height if no transition or cancelled.\n if (!hasTransition.value || !isTransitioning.value || !window) {\n return\n }\n\n // Set transition target height.\n window.transitionHeight.value = convertToUnit(el.clientHeight)\n })\n }\n\n const transition = computed(() => {\n const name = window.isReversed.value\n ? props.reverseTransition\n : props.transition\n\n return !hasTransition.value ? false : {\n name: typeof name !== 'string' ? window.transition.value : name,\n onBeforeEnter: onBeforeTransition,\n onAfterEnter: onAfterTransition,\n onEnterCancelled: onTransitionCancelled,\n onBeforeLeave: onBeforeTransition,\n onAfterLeave: onAfterTransition,\n onLeaveCancelled: onTransitionCancelled,\n onEnter: onEnterTransition,\n }\n })\n\n const { hasContent } = useLazy(props, groupItem.isSelected)\n\n useRender(() => (\n <MaybeTransition transition={ transition.value } disabled={ !isBooted.value }>\n <div\n class={[\n 'v-window-item',\n groupItem.selectedClass.value,\n props.class,\n ]}\n style={ props.style }\n v-show={ groupItem.isSelected.value }\n >\n { hasContent.value && slots.default?.() }\n </div>\n </MaybeTransition>\n ))\n\n return {}\n },\n})\n\nexport type VWindowItem = InstanceType<typeof VWindowItem>\n"],"mappings":"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"}
|