vuetify 3.1.4 → 3.1.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/dist/json/attributes.json +2734 -2738
- package/dist/json/importMap.json +58 -58
- package/dist/json/tags.json +0 -1
- package/dist/json/web-types.json +9073 -6416
- package/dist/vuetify-labs.css +3038 -5928
- package/dist/vuetify-labs.d.ts +12865 -20825
- package/dist/vuetify-labs.esm.js +1580 -1859
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +1579 -1858
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +120 -3019
- package/dist/vuetify.d.ts +12208 -20176
- package/dist/vuetify.esm.js +1406 -1686
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +1405 -1685
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1099 -1323
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.ts +9 -9
- package/lib/blueprints/md1.d.ts +9 -9
- package/lib/blueprints/md2.d.ts +9 -9
- package/lib/blueprints/md3.d.ts +9 -9
- package/lib/blueprints/md3.mjs.map +1 -1
- package/lib/components/VAlert/VAlert.mjs +5 -6
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/index.d.ts +135 -157
- package/lib/components/VApp/VApp.mjs +9 -12
- package/lib/components/VApp/VApp.mjs.map +1 -1
- package/lib/components/VApp/index.d.ts +27 -13
- package/lib/components/VAppBar/VAppBar.mjs +9 -5
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarNavIcon.mjs +2 -2
- package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs +2 -2
- package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.ts +169 -350
- package/lib/components/VAutocomplete/VAutocomplete.mjs +100 -104
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.ts +494 -636
- package/lib/components/VAvatar/VAvatar.mjs +19 -22
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/index.d.ts +46 -66
- package/lib/components/VBadge/VBadge.mjs +7 -5
- package/lib/components/VBadge/VBadge.mjs.map +1 -1
- package/lib/components/VBadge/index.d.ts +74 -100
- package/lib/components/VBanner/VBanner.mjs +3 -4
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/VBannerActions.mjs +5 -8
- package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
- package/lib/components/VBanner/index.d.ts +134 -98
- package/lib/components/VBottomNavigation/VBottomNavigation.css +2 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +8 -4
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.sass +2 -1
- package/lib/components/VBottomNavigation/_variables.scss +1 -1
- package/lib/components/VBottomNavigation/index.d.ts +67 -131
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +9 -16
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +5 -8
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +4 -8
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.ts +87 -61
- package/lib/components/VBtn/VBtn.mjs +14 -17
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/index.d.ts +118 -179
- package/lib/components/VBtnGroup/VBtnGroup.mjs +5 -2
- package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
- package/lib/components/VBtnGroup/index.d.ts +42 -57
- package/lib/components/VBtnToggle/VBtnToggle.mjs +1 -2
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VBtnToggle/index.d.ts +60 -247
- package/lib/components/VCalendar/mixins/mouse.mjs +2 -3
- package/lib/components/VCalendar/mixins/mouse.mjs.map +1 -1
- package/lib/components/VCard/VCard.mjs +5 -6
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCardActions.mjs +5 -8
- package/lib/components/VCard/VCardActions.mjs.map +1 -1
- package/lib/components/VCard/VCardItem.mjs +7 -8
- package/lib/components/VCard/VCardItem.mjs.map +1 -1
- package/lib/components/VCard/index.d.ts +286 -186
- package/lib/components/VCarousel/VCarousel.mjs +2 -2
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/VCarouselItem.mjs +2 -2
- package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
- package/lib/components/VCarousel/index.d.ts +238 -61
- package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +2 -2
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.ts +277 -254
- package/lib/components/VChip/VChip.mjs +15 -14
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/index.d.ts +118 -168
- package/lib/components/VChipGroup/VChipGroup.css +1 -0
- package/lib/components/VChipGroup/VChipGroup.mjs +15 -18
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VChipGroup/VChipGroup.sass +1 -0
- package/lib/components/VChipGroup/index.d.ts +49 -68
- package/lib/components/VCode/index.d.ts +21 -9
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +4 -9
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs +12 -16
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +43 -46
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/index.d.ts +1 -1
- package/lib/components/VColorPicker/util/index.mjs +1 -2
- package/lib/components/VColorPicker/util/index.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +104 -113
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +496 -638
- package/lib/components/VCounter/VCounter.mjs +2 -2
- package/lib/components/VCounter/VCounter.mjs.map +1 -1
- package/lib/components/VCounter/index.d.ts +139 -197
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +4 -9
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
- package/lib/components/VDefaultsProvider/index.d.ts +33 -14
- package/lib/components/VDialog/VDialog.mjs +6 -9
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/index.d.ts +430 -1610
- package/lib/components/VDivider/VDivider.mjs +2 -2
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VDivider/index.d.ts +35 -15
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +4 -5
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +11 -14
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +19 -22
- 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.ts +180 -158
- package/lib/components/VField/VField.mjs +3 -6
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VFieldLabel.mjs +2 -2
- package/lib/components/VField/VFieldLabel.mjs.map +1 -1
- package/lib/components/VField/index.d.ts +46 -34
- package/lib/components/VFileInput/VFileInput.mjs +16 -18
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.ts +330 -355
- package/lib/components/VFooter/VFooter.mjs +2 -2
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VFooter/index.d.ts +45 -65
- package/lib/components/VForm/VForm.mjs +10 -14
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VForm/index.d.ts +29 -23
- package/lib/components/VGrid/VCol.mjs +5 -8
- 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/VGrid.css +0 -125
- package/lib/components/VGrid/VRow.mjs +5 -8
- package/lib/components/VGrid/VRow.mjs.map +1 -1
- package/lib/components/VGrid/index.d.ts +112 -121
- package/lib/components/VHover/VHover.mjs +9 -12
- package/lib/components/VHover/VHover.mjs.map +1 -1
- package/lib/components/VHover/index.d.ts +53 -15
- package/lib/components/VIcon/VIcon.mjs +22 -26
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/index.d.ts +68 -56
- package/lib/components/VImg/VImg.mjs +7 -11
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/index.d.ts +67 -58
- package/lib/components/VInput/VInput.mjs +5 -6
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/index.d.ts +94 -283
- package/lib/components/VItemGroup/VItem.mjs +8 -11
- package/lib/components/VItemGroup/VItem.mjs.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.mjs +13 -16
- package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
- package/lib/components/VItemGroup/index.d.ts +76 -149
- package/lib/components/VKbd/index.d.ts +21 -9
- package/lib/components/VLabel/VLabel.mjs +7 -10
- package/lib/components/VLabel/VLabel.mjs.map +1 -1
- package/lib/components/VLabel/index.d.ts +29 -9
- package/lib/components/VLayout/VLayout.mjs +9 -12
- package/lib/components/VLayout/VLayout.mjs.map +1 -1
- package/lib/components/VLayout/VLayoutItem.mjs +6 -9
- package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
- package/lib/components/VLayout/index.d.ts +60 -43
- package/lib/components/VLazy/VLazy.mjs +12 -15
- package/lib/components/VLazy/VLazy.mjs.map +1 -1
- package/lib/components/VLazy/index.d.ts +48 -71
- package/lib/components/VList/VList.mjs +4 -8
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListChildren.mjs +59 -77
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +33 -39
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +2 -2
- package/lib/components/VList/VListItem.mjs +10 -18
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +0 -2
- package/lib/components/VList/VListItemAction.mjs +2 -2
- package/lib/components/VList/VListItemAction.mjs.map +1 -1
- package/lib/components/VList/VListItemMedia.mjs +2 -2
- package/lib/components/VList/VListItemMedia.mjs.map +1 -1
- package/lib/components/VList/VListSubheader.mjs +3 -4
- package/lib/components/VList/VListSubheader.mjs.map +1 -1
- package/lib/components/VList/index.d.ts +418 -686
- package/lib/components/VList/list.mjs +1 -1
- package/lib/components/VList/list.mjs.map +1 -1
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs +5 -8
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
- package/lib/components/VLocaleProvider/index.d.ts +28 -16
- package/lib/components/VMain/VMain.mjs +12 -15
- package/lib/components/VMain/VMain.mjs.map +1 -1
- package/lib/components/VMain/index.d.ts +23 -17
- package/lib/components/VMenu/VMenu.mjs +10 -10
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.ts +428 -1641
- package/lib/components/VMessages/VMessages.mjs +2 -2
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VMessages/index.d.ts +144 -204
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +6 -7
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/index.d.ts +92 -124
- package/lib/components/VNoSsr/VNoSsr.mjs +1 -4
- package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
- package/lib/components/VNoSsr/index.d.ts +20 -4
- package/lib/components/VOtpInput/VOtpInput.mjs +5 -6
- package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.mjs +44 -47
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.ts +150 -468
- package/lib/components/VOverlay/locationStrategies.mjs +3 -6
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.mjs +7 -12
- 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/VPagination/VPagination.mjs +4 -5
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/index.d.ts +107 -207
- package/lib/components/VParallax/VParallax.mjs +12 -15
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VParallax/index.d.ts +39 -9
- package/lib/components/VProgressCircular/VProgressCircular.mjs +2 -2
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressCircular/index.d.ts +41 -58
- package/lib/components/VProgressLinear/VProgressLinear.mjs +2 -2
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/index.d.ts +91 -95
- package/lib/components/VRadio/VRadio.mjs +2 -2
- package/lib/components/VRadio/VRadio.mjs.map +1 -1
- package/lib/components/VRadio/index.d.ts +108 -85
- package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.d.ts +164 -147
- package/lib/components/VRangeSlider/VRangeSlider.mjs +21 -31
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.ts +154 -210
- package/lib/components/VRating/VRating.mjs +28 -34
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/index.d.ts +77 -311
- package/lib/components/VResponsive/VResponsive.mjs +11 -14
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VResponsive/index.d.ts +44 -20
- package/lib/components/VSelect/VSelect.mjs +100 -102
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +729 -673
- package/lib/components/VSelectionControl/VSelectionControl.mjs +3 -4
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.ts +31 -19
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +8 -11
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/index.d.ts +58 -70
- package/lib/components/VSheet/VSheet.mjs +2 -2
- package/lib/components/VSheet/VSheet.mjs.map +1 -1
- package/lib/components/VSheet/index.d.ts +52 -56
- package/lib/components/VSlideGroup/VSlideGroup.mjs +51 -60
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs +6 -9
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.ts +144 -366
- package/lib/components/VSlider/VSlider.mjs +8 -14
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.css +0 -1
- package/lib/components/VSlider/VSliderThumb.mjs +4 -5
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.mjs +4 -5
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/index.d.ts +151 -207
- package/lib/components/VSlider/slider.mjs +3 -6
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.mjs +1 -1
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/index.d.ts +358 -1519
- package/lib/components/VSwitch/VSwitch.mjs +3 -4
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/index.d.ts +180 -151
- package/lib/components/VSystemBar/VSystemBar.mjs +8 -4
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VSystemBar/index.d.ts +43 -51
- package/lib/components/VTable/VTable.mjs +19 -22
- package/lib/components/VTable/VTable.mjs.map +1 -1
- package/lib/components/VTable/index.d.ts +54 -30
- package/lib/components/VTabs/VTab.mjs +3 -4
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.mjs +2 -2
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/index.d.ts +122 -150
- package/lib/components/VTextField/VTextField.mjs +16 -19
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/index.d.ts +331 -1489
- package/lib/components/VTextarea/VTextarea.mjs +17 -19
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/index.d.ts +320 -334
- package/lib/components/VThemeProvider/VThemeProvider.mjs +4 -5
- package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
- package/lib/components/VThemeProvider/index.d.ts +27 -13
- package/lib/components/VTimeline/VTimeline.mjs +2 -2
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineDivider.mjs +20 -23
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs +33 -34
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VTimeline/index.d.ts +123 -135
- package/lib/components/VToolbar/VToolbar.css +1 -0
- package/lib/components/VToolbar/VToolbar.mjs +7 -9
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.sass +1 -0
- package/lib/components/VToolbar/VToolbarItems.mjs +5 -8
- package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbarTitle.mjs +1 -2
- package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
- package/lib/components/VToolbar/index.d.ts +146 -351
- package/lib/components/VTooltip/VTooltip.mjs +1 -2
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/index.d.ts +361 -1619
- package/lib/components/VValidation/VValidation.mjs +3 -6
- package/lib/components/VValidation/VValidation.mjs.map +1 -1
- package/lib/components/VValidation/index.d.ts +48 -46
- package/lib/components/VWindow/VWindow.mjs +19 -22
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindowItem.mjs +10 -14
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/VWindow/index.d.ts +152 -284
- package/lib/components/index.d.ts +13684 -21652
- package/lib/components/transitions/createTransition.mjs +4 -4
- package/lib/components/transitions/createTransition.mjs.map +1 -1
- package/lib/components/transitions/dialog-transition.mjs +8 -8
- package/lib/components/transitions/dialog-transition.mjs.map +1 -1
- package/lib/components/transitions/index.d.ts +477 -342
- package/lib/composables/defaults.mjs +6 -4
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/delay.mjs +1 -1
- package/lib/composables/delay.mjs.map +1 -1
- package/lib/composables/filter.mjs +11 -12
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/composables/group.mjs +2 -2
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/icons.mjs +4 -6
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/composables/intersectionObserver.mjs +1 -1
- package/lib/composables/intersectionObserver.mjs.map +1 -1
- package/lib/composables/layout.mjs +2 -5
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/composables/loader.mjs +2 -3
- package/lib/composables/loader.mjs.map +1 -1
- package/lib/composables/locale.mjs +2 -2
- package/lib/composables/locale.mjs.map +1 -1
- package/lib/composables/mutationObserver.mjs +8 -8
- package/lib/composables/mutationObserver.mjs.map +1 -1
- package/lib/composables/nested/selectStrategies.mjs +1 -1
- package/lib/composables/nested/selectStrategies.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs +9 -10
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/resizeObserver.mjs +1 -1
- package/lib/composables/resizeObserver.mjs.map +1 -1
- package/lib/composables/router.mjs +12 -21
- package/lib/composables/router.mjs.map +1 -1
- package/lib/composables/scroll.mjs +2 -4
- package/lib/composables/scroll.mjs.map +1 -1
- package/lib/composables/selectLink.mjs +1 -4
- package/lib/composables/selectLink.mjs.map +1 -1
- package/lib/composables/stack.mjs +6 -8
- package/lib/composables/stack.mjs.map +1 -1
- package/lib/composables/teleport.mjs +1 -1
- package/lib/composables/teleport.mjs.map +1 -1
- package/lib/composables/theme.mjs +2 -3
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/toggleScope.mjs +3 -6
- package/lib/composables/toggleScope.mjs.map +1 -1
- package/lib/composables/touch.mjs +1 -2
- package/lib/composables/touch.mjs.map +1 -1
- package/lib/composables/validation.mjs +7 -7
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/directives/click-outside/index.mjs +2 -3
- package/lib/directives/click-outside/index.mjs.map +1 -1
- package/lib/directives/index.d.ts +1 -1
- package/lib/directives/intersect/index.mjs +2 -4
- package/lib/directives/intersect/index.mjs.map +1 -1
- package/lib/directives/mutate/index.mjs +7 -8
- package/lib/directives/mutate/index.mjs.map +1 -1
- package/lib/directives/resize/index.mjs +3 -5
- package/lib/directives/resize/index.mjs.map +1 -1
- package/lib/directives/ripple/index.mjs +8 -13
- package/lib/directives/ripple/index.mjs.map +1 -1
- package/lib/directives/scroll/index.mjs +1 -2
- package/lib/directives/scroll/index.mjs.map +1 -1
- package/lib/directives/touch/index.mjs +9 -14
- package/lib/directives/touch/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +2 -3
- package/lib/framework.mjs.map +1 -1
- package/lib/iconsets/fa-svg.d.ts +2 -2
- package/lib/iconsets/fa.d.ts +2 -2
- package/lib/iconsets/fa4.d.ts +2 -2
- package/lib/iconsets/md.d.ts +2 -2
- package/lib/iconsets/mdi-svg.d.ts +2 -2
- package/lib/iconsets/mdi.d.ts +2 -2
- package/lib/index.d.ts +27 -27
- package/lib/labs/VDataTable/VDataTable.mjs +11 -14
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableColumn.mjs +1 -2
- package/lib/labs/VDataTable/VDataTableColumn.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.css +9 -0
- package/lib/labs/VDataTable/VDataTableFooter.mjs +80 -45
- package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.sass +7 -0
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs +6 -8
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableHeaders.mjs +3 -4
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRow.mjs +2 -4
- package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +45 -49
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +16 -19
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +2 -2
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/headers.mjs +3 -4
- package/lib/labs/VDataTable/composables/headers.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/paginate.mjs +1 -6
- package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/sort.mjs +1 -1
- package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.ts +583 -575
- package/lib/labs/VVirtualScroll/VVirtualScroll.mjs +11 -15
- package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs +7 -13
- package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
- package/lib/labs/VVirtualScroll/index.d.ts +18 -18
- package/lib/labs/components.d.ts +601 -593
- package/lib/locale/adapters/vue-i18n.d.ts +1 -1
- package/lib/locale/adapters/vuetify.mjs +3 -3
- package/lib/locale/adapters/vuetify.mjs.map +1 -1
- package/lib/styles/main.css +40 -2816
- package/lib/util/console.mjs +1 -1
- package/lib/util/console.mjs.map +1 -1
- package/lib/util/createSimpleFunctional.mjs +5 -8
- package/lib/util/createSimpleFunctional.mjs.map +1 -1
- package/lib/util/defineComponent.mjs +6 -8
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/getCurrentInstance.mjs +1 -1
- package/lib/util/getCurrentInstance.mjs.map +1 -1
- package/lib/util/helpers.mjs +2 -3
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +19 -19
|
@@ -6,7 +6,7 @@ function isLocaleInstance(obj) {
|
|
|
6
6
|
return obj.name != null;
|
|
7
7
|
}
|
|
8
8
|
export function createLocale(options) {
|
|
9
|
-
const i18n = options
|
|
9
|
+
const i18n = options?.adapter && isLocaleInstance(options?.adapter) ? options?.adapter : createVuetifyAdapter(options);
|
|
10
10
|
const rtl = createRtl(i18n, options);
|
|
11
11
|
return {
|
|
12
12
|
...i18n,
|
|
@@ -35,7 +35,7 @@ export function provideLocale(props) {
|
|
|
35
35
|
|
|
36
36
|
export const RtlSymbol = Symbol.for('vuetify:rtl');
|
|
37
37
|
export function createRtl(i18n, options) {
|
|
38
|
-
const rtl = ref(
|
|
38
|
+
const rtl = ref(options?.rtl ?? defaultRtl);
|
|
39
39
|
const isRtl = computed(() => rtl.value[i18n.current.value] ?? false);
|
|
40
40
|
return {
|
|
41
41
|
isRtl,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locale.mjs","names":["computed","inject","provide","ref","createVuetifyAdapter","defaultRtl","LocaleSymbol","Symbol","for","isLocaleInstance","obj","name","createLocale","options","i18n","adapter","rtl","createRtl","useLocale","locale","Error","provideLocale","props","provideRtl","data","RtlSymbol","isRtl","value","current","rtlClasses","useRtl"],"sources":["../../src/composables/locale.ts"],"sourcesContent":["import { computed, inject, provide, ref } from 'vue'\nimport { createVuetifyAdapter } from '@/locale/adapters/vuetify'\nimport { defaultRtl } from '@/locale'\n\nimport type { InjectionKey, Ref } from 'vue'\n\nexport interface LocaleMessages {\n [key: string]: LocaleMessages | string\n}\n\nexport interface LocaleOptions {\n messages?: LocaleMessages\n locale?: string\n fallback?: string\n adapter?: LocaleInstance\n}\n\nexport interface LocaleInstance {\n name: string\n messages: Ref<LocaleMessages>\n current: Ref<string>\n fallback: Ref<string>\n t: (key: string, ...params: unknown[]) => string\n n: (value: number) => string\n provide: (props: LocaleOptions) => LocaleInstance\n}\n\nexport const LocaleSymbol: InjectionKey<LocaleInstance & RtlInstance> = Symbol.for('vuetify:locale')\n\nfunction isLocaleInstance (obj: any): obj is LocaleInstance {\n return obj.name != null\n}\n\nexport function createLocale (options?: LocaleOptions & RtlOptions) {\n const i18n = options?.adapter && isLocaleInstance(options?.adapter) ? options?.adapter : createVuetifyAdapter(options)\n const rtl = createRtl(i18n, options)\n\n return { ...i18n, ...rtl }\n}\n\nexport function useLocale () {\n const locale = inject(LocaleSymbol)\n\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance')\n\n return locale\n}\n\nexport function provideLocale (props: LocaleOptions & RtlProps) {\n const locale = inject(LocaleSymbol)\n\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance')\n\n const i18n = locale.provide(props)\n const rtl = provideRtl(i18n, locale.rtl, props)\n\n const data = { ...i18n, ...rtl }\n\n provide(LocaleSymbol, data)\n\n return data\n}\n\n// RTL\n\nexport interface RtlOptions {\n rtl?: Record<string, boolean>\n}\n\nexport interface RtlProps {\n rtl?: boolean\n}\n\nexport interface RtlInstance {\n isRtl: Ref<boolean>\n rtl: Ref<Record<string, boolean>>\n rtlClasses: Ref<string>\n}\n\nexport const RtlSymbol: InjectionKey<RtlInstance> = Symbol.for('vuetify:rtl')\n\nexport function createRtl (i18n: LocaleInstance, options?: RtlOptions): RtlInstance {\n const rtl = ref(options?.rtl ?? defaultRtl)\n const isRtl = computed(() => rtl.value[i18n.current.value] ?? false)\n\n return {\n isRtl,\n rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`),\n }\n}\n\nexport function provideRtl (locale: LocaleInstance, rtl: RtlInstance['rtl'], props: RtlProps): RtlInstance {\n const isRtl = computed(() => props.rtl ?? rtl.value[locale.current.value] ?? false)\n\n return {\n isRtl,\n rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`),\n }\n}\n\nexport function useRtl () {\n const locale = inject(LocaleSymbol)\n\n if (!locale) throw new Error('[Vuetify] Could not find injected rtl instance')\n\n return { isRtl: locale.isRtl, rtlClasses: locale.rtlClasses }\n}\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,OAAO,EAAEC,GAAG,QAAQ,KAAK;AAAA,SAC3CC,oBAAoB;AAAA,SACpBC,UAAU;AAyBnB,OAAO,MAAMC,YAAwD,GAAGC,MAAM,CAACC,GAAG,CAAC,gBAAgB,CAAC;AAEpG,SAASC,gBAAgB,CAAEC,GAAQ,EAAyB;EAC1D,OAAOA,GAAG,CAACC,IAAI,IAAI,IAAI;AACzB;AAEA,OAAO,SAASC,YAAY,CAAEC,OAAoC,EAAE;EAClE,MAAMC,IAAI,GAAGD,OAAO,
|
|
1
|
+
{"version":3,"file":"locale.mjs","names":["computed","inject","provide","ref","createVuetifyAdapter","defaultRtl","LocaleSymbol","Symbol","for","isLocaleInstance","obj","name","createLocale","options","i18n","adapter","rtl","createRtl","useLocale","locale","Error","provideLocale","props","provideRtl","data","RtlSymbol","isRtl","value","current","rtlClasses","useRtl"],"sources":["../../src/composables/locale.ts"],"sourcesContent":["import { computed, inject, provide, ref } from 'vue'\nimport { createVuetifyAdapter } from '@/locale/adapters/vuetify'\nimport { defaultRtl } from '@/locale'\n\nimport type { InjectionKey, Ref } from 'vue'\n\nexport interface LocaleMessages {\n [key: string]: LocaleMessages | string\n}\n\nexport interface LocaleOptions {\n messages?: LocaleMessages\n locale?: string\n fallback?: string\n adapter?: LocaleInstance\n}\n\nexport interface LocaleInstance {\n name: string\n messages: Ref<LocaleMessages>\n current: Ref<string>\n fallback: Ref<string>\n t: (key: string, ...params: unknown[]) => string\n n: (value: number) => string\n provide: (props: LocaleOptions) => LocaleInstance\n}\n\nexport const LocaleSymbol: InjectionKey<LocaleInstance & RtlInstance> = Symbol.for('vuetify:locale')\n\nfunction isLocaleInstance (obj: any): obj is LocaleInstance {\n return obj.name != null\n}\n\nexport function createLocale (options?: LocaleOptions & RtlOptions) {\n const i18n = options?.adapter && isLocaleInstance(options?.adapter) ? options?.adapter : createVuetifyAdapter(options)\n const rtl = createRtl(i18n, options)\n\n return { ...i18n, ...rtl }\n}\n\nexport function useLocale () {\n const locale = inject(LocaleSymbol)\n\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance')\n\n return locale\n}\n\nexport function provideLocale (props: LocaleOptions & RtlProps) {\n const locale = inject(LocaleSymbol)\n\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance')\n\n const i18n = locale.provide(props)\n const rtl = provideRtl(i18n, locale.rtl, props)\n\n const data = { ...i18n, ...rtl }\n\n provide(LocaleSymbol, data)\n\n return data\n}\n\n// RTL\n\nexport interface RtlOptions {\n rtl?: Record<string, boolean>\n}\n\nexport interface RtlProps {\n rtl?: boolean\n}\n\nexport interface RtlInstance {\n isRtl: Ref<boolean>\n rtl: Ref<Record<string, boolean>>\n rtlClasses: Ref<string>\n}\n\nexport const RtlSymbol: InjectionKey<RtlInstance> = Symbol.for('vuetify:rtl')\n\nexport function createRtl (i18n: LocaleInstance, options?: RtlOptions): RtlInstance {\n const rtl = ref(options?.rtl ?? defaultRtl)\n const isRtl = computed(() => rtl.value[i18n.current.value] ?? false)\n\n return {\n isRtl,\n rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`),\n }\n}\n\nexport function provideRtl (locale: LocaleInstance, rtl: RtlInstance['rtl'], props: RtlProps): RtlInstance {\n const isRtl = computed(() => props.rtl ?? rtl.value[locale.current.value] ?? false)\n\n return {\n isRtl,\n rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`),\n }\n}\n\nexport function useRtl () {\n const locale = inject(LocaleSymbol)\n\n if (!locale) throw new Error('[Vuetify] Could not find injected rtl instance')\n\n return { isRtl: locale.isRtl, rtlClasses: locale.rtlClasses }\n}\n"],"mappings":"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"}
|
|
@@ -13,12 +13,12 @@ export function useMutationObserver(handler, options) {
|
|
|
13
13
|
} = options || {};
|
|
14
14
|
const defaultValue = !Object.keys(optionKeys).length;
|
|
15
15
|
const observer = new MutationObserver((mutations, observer) => {
|
|
16
|
-
handler
|
|
17
|
-
if (options
|
|
16
|
+
handler?.(mutations, observer);
|
|
17
|
+
if (options?.once) observer.disconnect();
|
|
18
18
|
});
|
|
19
19
|
onMounted(() => {
|
|
20
|
-
if (!
|
|
21
|
-
handler
|
|
20
|
+
if (!options?.immediate) return;
|
|
21
|
+
handler?.([], observer);
|
|
22
22
|
});
|
|
23
23
|
onBeforeUnmount(() => {
|
|
24
24
|
observer.disconnect();
|
|
@@ -28,10 +28,10 @@ export function useMutationObserver(handler, options) {
|
|
|
28
28
|
const el = isComponentInstance(newValue) ? newValue.$el : newValue;
|
|
29
29
|
if (!el) return;
|
|
30
30
|
observer.observe(el, {
|
|
31
|
-
attributes:
|
|
32
|
-
characterData:
|
|
33
|
-
childList:
|
|
34
|
-
subtree:
|
|
31
|
+
attributes: options?.attr ?? defaultValue,
|
|
32
|
+
characterData: options?.char ?? defaultValue,
|
|
33
|
+
childList: options?.child ?? defaultValue,
|
|
34
|
+
subtree: options?.sub ?? defaultValue
|
|
35
35
|
});
|
|
36
36
|
}, {
|
|
37
37
|
flush: 'post'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutationObserver.mjs","names":["isComponentInstance","onBeforeUnmount","onMounted","ref","watch","useMutationObserver","handler","options","mutationRef","once","immediate","optionKeys","defaultValue","Object","keys","length","observer","MutationObserver","mutations","disconnect","newValue","oldValue","el","$el","observe","attributes","attr","characterData","char","childList","child","subtree","sub","flush"],"sources":["../../src/composables/mutationObserver.ts"],"sourcesContent":["// Utilities\nimport { isComponentInstance } from '@/util'\nimport { onBeforeUnmount, onMounted, ref, watch } from 'vue'\n\n// Types\nimport type { ComponentPublicInstance } from 'vue'\n\nexport interface MutationOptions {\n attr?: boolean\n char?: boolean\n child?: boolean\n sub?: boolean\n once?: boolean\n immediate?: boolean\n}\n\nexport function useMutationObserver (\n handler?: MutationCallback,\n options?: MutationOptions,\n) {\n const mutationRef = ref<ComponentPublicInstance | HTMLElement>()\n const { once, immediate, ...optionKeys } = options || {}\n const defaultValue = !Object.keys(optionKeys).length\n\n const observer = new MutationObserver((\n mutations: MutationRecord[],\n observer: MutationObserver\n ) => {\n handler?.(mutations, observer)\n\n if (options?.once) observer.disconnect()\n })\n\n onMounted(() => {\n if (!options?.immediate) return\n\n handler?.([], observer)\n })\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(mutationRef, (newValue, oldValue) => {\n if (oldValue) observer.disconnect()\n\n const el = isComponentInstance(newValue) ? newValue.$el : newValue\n\n if (!el) return\n\n observer.observe(el, {\n attributes: options?.attr ?? defaultValue,\n characterData: options?.char ?? defaultValue,\n childList: options?.child ?? defaultValue,\n subtree: options?.sub ?? defaultValue,\n })\n }, {\n flush: 'post',\n })\n\n return { mutationRef }\n}\n"],"mappings":"AAAA;AAAA,SACSA,mBAAmB;AAC5B,SAASC,eAAe,EAAEC,SAAS,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;;AAE5D;;AAYA,OAAO,SAASC,mBAAmB,CACjCC,OAA0B,EAC1BC,OAAyB,EACzB;EACA,MAAMC,WAAW,GAAGL,GAAG,EAAyC;EAChE,MAAM;IAAEM,IAAI;IAAEC,SAAS;IAAE,GAAGC;EAAW,CAAC,GAAGJ,OAAO,IAAI,CAAC,CAAC;EACxD,MAAMK,YAAY,GAAG,CAACC,MAAM,CAACC,IAAI,CAACH,UAAU,CAAC,CAACI,MAAM;EAEpD,MAAMC,QAAQ,GAAG,IAAIC,gBAAgB,CAAC,CACpCC,SAA2B,EAC3BF,QAA0B,KACvB;IACHV,OAAO,
|
|
1
|
+
{"version":3,"file":"mutationObserver.mjs","names":["isComponentInstance","onBeforeUnmount","onMounted","ref","watch","useMutationObserver","handler","options","mutationRef","once","immediate","optionKeys","defaultValue","Object","keys","length","observer","MutationObserver","mutations","disconnect","newValue","oldValue","el","$el","observe","attributes","attr","characterData","char","childList","child","subtree","sub","flush"],"sources":["../../src/composables/mutationObserver.ts"],"sourcesContent":["// Utilities\nimport { isComponentInstance } from '@/util'\nimport { onBeforeUnmount, onMounted, ref, watch } from 'vue'\n\n// Types\nimport type { ComponentPublicInstance } from 'vue'\n\nexport interface MutationOptions {\n attr?: boolean\n char?: boolean\n child?: boolean\n sub?: boolean\n once?: boolean\n immediate?: boolean\n}\n\nexport function useMutationObserver (\n handler?: MutationCallback,\n options?: MutationOptions,\n) {\n const mutationRef = ref<ComponentPublicInstance | HTMLElement>()\n const { once, immediate, ...optionKeys } = options || {}\n const defaultValue = !Object.keys(optionKeys).length\n\n const observer = new MutationObserver((\n mutations: MutationRecord[],\n observer: MutationObserver\n ) => {\n handler?.(mutations, observer)\n\n if (options?.once) observer.disconnect()\n })\n\n onMounted(() => {\n if (!options?.immediate) return\n\n handler?.([], observer)\n })\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(mutationRef, (newValue, oldValue) => {\n if (oldValue) observer.disconnect()\n\n const el = isComponentInstance(newValue) ? newValue.$el : newValue\n\n if (!el) return\n\n observer.observe(el, {\n attributes: options?.attr ?? defaultValue,\n characterData: options?.char ?? defaultValue,\n childList: options?.child ?? defaultValue,\n subtree: options?.sub ?? defaultValue,\n })\n }, {\n flush: 'post',\n })\n\n return { mutationRef }\n}\n"],"mappings":"AAAA;AAAA,SACSA,mBAAmB;AAC5B,SAASC,eAAe,EAAEC,SAAS,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;;AAE5D;;AAYA,OAAO,SAASC,mBAAmB,CACjCC,OAA0B,EAC1BC,OAAyB,EACzB;EACA,MAAMC,WAAW,GAAGL,GAAG,EAAyC;EAChE,MAAM;IAAEM,IAAI;IAAEC,SAAS;IAAE,GAAGC;EAAW,CAAC,GAAGJ,OAAO,IAAI,CAAC,CAAC;EACxD,MAAMK,YAAY,GAAG,CAACC,MAAM,CAACC,IAAI,CAACH,UAAU,CAAC,CAACI,MAAM;EAEpD,MAAMC,QAAQ,GAAG,IAAIC,gBAAgB,CAAC,CACpCC,SAA2B,EAC3BF,QAA0B,KACvB;IACHV,OAAO,GAAGY,SAAS,EAAEF,QAAQ,CAAC;IAE9B,IAAIT,OAAO,EAAEE,IAAI,EAAEO,QAAQ,CAACG,UAAU,EAAE;EAC1C,CAAC,CAAC;EAEFjB,SAAS,CAAC,MAAM;IACd,IAAI,CAACK,OAAO,EAAEG,SAAS,EAAE;IAEzBJ,OAAO,GAAG,EAAE,EAAEU,QAAQ,CAAC;EACzB,CAAC,CAAC;EAEFf,eAAe,CAAC,MAAM;IACpBe,QAAQ,CAACG,UAAU,EAAE;EACvB,CAAC,CAAC;EAEFf,KAAK,CAACI,WAAW,EAAE,CAACY,QAAQ,EAAEC,QAAQ,KAAK;IACzC,IAAIA,QAAQ,EAAEL,QAAQ,CAACG,UAAU,EAAE;IAEnC,MAAMG,EAAE,GAAGtB,mBAAmB,CAACoB,QAAQ,CAAC,GAAGA,QAAQ,CAACG,GAAG,GAAGH,QAAQ;IAElE,IAAI,CAACE,EAAE,EAAE;IAETN,QAAQ,CAACQ,OAAO,CAACF,EAAE,EAAE;MACnBG,UAAU,EAAElB,OAAO,EAAEmB,IAAI,IAAId,YAAY;MACzCe,aAAa,EAAEpB,OAAO,EAAEqB,IAAI,IAAIhB,YAAY;MAC5CiB,SAAS,EAAEtB,OAAO,EAAEuB,KAAK,IAAIlB,YAAY;MACzCmB,OAAO,EAAExB,OAAO,EAAEyB,GAAG,IAAIpB;IAC3B,CAAC,CAAC;EACJ,CAAC,EAAE;IACDqB,KAAK,EAAE;EACT,CAAC,CAAC;EAEF,OAAO;IAAEzB;EAAY,CAAC;AACxB"}
|
|
@@ -61,7 +61,7 @@ export const independentSingleSelectStrategy = mandatory => {
|
|
|
61
61
|
},
|
|
62
62
|
in: (v, children, parents) => {
|
|
63
63
|
let map = new Map();
|
|
64
|
-
if (v
|
|
64
|
+
if (v?.length) {
|
|
65
65
|
map = parentStrategy.in(v.slice(0, 1), children, parents);
|
|
66
66
|
}
|
|
67
67
|
return map;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectStrategies.mjs","names":["independentSelectStrategy","mandatory","strategy","select","id","value","selected","on","Array","from","entries","reduce","arr","key","length","set","in","v","children","parents","map","Map","out","push","independentSingleSelectStrategy","parentStrategy","rest","singleSelected","has","get","slice","leafSelectStrategy","leafSingleSelectStrategy","classicSelectStrategy","original","items","item","shift","parent","childrenIds","everySelected","every","cid","noneSelected"],"sources":["../../../src/composables/nested/selectStrategies.ts"],"sourcesContent":["/* eslint-disable sonarjs/no-identical-functions */\nexport type SelectStrategyFn = (data: {\n id: unknown\n value: boolean\n selected: Map<unknown, 'on' | 'off' | 'indeterminate'>\n children: Map<unknown, unknown[]>\n parents: Map<unknown, unknown>\n event?: Event\n}) => Map<unknown, 'on' | 'off' | 'indeterminate'>\n\nexport type SelectStrategyTransformInFn = (\n v: unknown[] | undefined,\n children: Map<unknown, unknown[]>,\n parents: Map<unknown, unknown>,\n) => Map<unknown, 'on' | 'off' | 'indeterminate'>\n\nexport type SelectStrategyTransformOutFn = (\n v: Map<unknown, 'on' | 'off' | 'indeterminate'>,\n children: Map<unknown, unknown[]>,\n parents: Map<unknown, unknown>,\n) => unknown[]\n\nexport type SelectStrategy = {\n select: SelectStrategyFn\n in: SelectStrategyTransformInFn\n out: SelectStrategyTransformOutFn\n}\n\nexport const independentSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected }) => {\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value) {\n const on = Array.from(selected.entries()).reduce((arr, [key, value]) => value === 'on' ? [...arr, key] : arr, [] as unknown[])\n if (on.length === 1 && on[0] === id) return selected\n }\n\n selected.set(id, value ? 'on' : 'off')\n\n return selected\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n for (const id of (v || [])) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents,\n })\n }\n\n return map\n },\n out: v => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n\nexport const independentSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ selected, id, ...rest }) => {\n const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)!]]) : new Map()\n return parentStrategy.select({ ...rest, id, selected: singleSelected })\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n if (v?.length) {\n map = parentStrategy.in(v.slice(0, 1), children, parents)\n }\n\n return map\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents)\n },\n }\n\n return strategy\n}\n\nexport const leafSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const leafSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSingleSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const classicSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected, children, parents }) => {\n const original = new Map(selected)\n\n const items = [id]\n\n while (items.length) {\n const item = items.shift()!\n\n selected.set(item, value ? 'on' : 'off')\n\n if (children.has(item)) {\n items.push(...children.get(item)!)\n }\n }\n\n let parent = parents.get(id)\n\n while (parent) {\n const childrenIds = children.get(parent)!\n const everySelected = childrenIds.every(cid => selected.get(cid) === 'on')\n const noneSelected = childrenIds.every(cid => !selected.has(cid) || selected.get(cid) === 'off')\n\n selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate')\n\n parent = parents.get(parent)\n }\n\n // If mandatory and planned deselect results in no selected\n // items then we can't do it, so return original state\n if (mandatory && !value) {\n const on = Array.from(selected.entries()).reduce((arr, [key, value]) => value === 'on' ? [...arr, key] : arr, [] as unknown[])\n if (on.length === 0) return original\n }\n\n return selected\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n for (const id of (v || [])) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents,\n })\n }\n\n return map\n },\n out: (v, children) => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on' && !children.has(key)) arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"selectStrategies.mjs","names":["independentSelectStrategy","mandatory","strategy","select","id","value","selected","on","Array","from","entries","reduce","arr","key","length","set","in","v","children","parents","map","Map","out","push","independentSingleSelectStrategy","parentStrategy","rest","singleSelected","has","get","slice","leafSelectStrategy","leafSingleSelectStrategy","classicSelectStrategy","original","items","item","shift","parent","childrenIds","everySelected","every","cid","noneSelected"],"sources":["../../../src/composables/nested/selectStrategies.ts"],"sourcesContent":["/* eslint-disable sonarjs/no-identical-functions */\nexport type SelectStrategyFn = (data: {\n id: unknown\n value: boolean\n selected: Map<unknown, 'on' | 'off' | 'indeterminate'>\n children: Map<unknown, unknown[]>\n parents: Map<unknown, unknown>\n event?: Event\n}) => Map<unknown, 'on' | 'off' | 'indeterminate'>\n\nexport type SelectStrategyTransformInFn = (\n v: unknown[] | undefined,\n children: Map<unknown, unknown[]>,\n parents: Map<unknown, unknown>,\n) => Map<unknown, 'on' | 'off' | 'indeterminate'>\n\nexport type SelectStrategyTransformOutFn = (\n v: Map<unknown, 'on' | 'off' | 'indeterminate'>,\n children: Map<unknown, unknown[]>,\n parents: Map<unknown, unknown>,\n) => unknown[]\n\nexport type SelectStrategy = {\n select: SelectStrategyFn\n in: SelectStrategyTransformInFn\n out: SelectStrategyTransformOutFn\n}\n\nexport const independentSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected }) => {\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value) {\n const on = Array.from(selected.entries()).reduce((arr, [key, value]) => value === 'on' ? [...arr, key] : arr, [] as unknown[])\n if (on.length === 1 && on[0] === id) return selected\n }\n\n selected.set(id, value ? 'on' : 'off')\n\n return selected\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n for (const id of (v || [])) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents,\n })\n }\n\n return map\n },\n out: v => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n\nexport const independentSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ selected, id, ...rest }) => {\n const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)!]]) : new Map()\n return parentStrategy.select({ ...rest, id, selected: singleSelected })\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n if (v?.length) {\n map = parentStrategy.in(v.slice(0, 1), children, parents)\n }\n\n return map\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents)\n },\n }\n\n return strategy\n}\n\nexport const leafSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const leafSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSingleSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const classicSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected, children, parents }) => {\n const original = new Map(selected)\n\n const items = [id]\n\n while (items.length) {\n const item = items.shift()!\n\n selected.set(item, value ? 'on' : 'off')\n\n if (children.has(item)) {\n items.push(...children.get(item)!)\n }\n }\n\n let parent = parents.get(id)\n\n while (parent) {\n const childrenIds = children.get(parent)!\n const everySelected = childrenIds.every(cid => selected.get(cid) === 'on')\n const noneSelected = childrenIds.every(cid => !selected.has(cid) || selected.get(cid) === 'off')\n\n selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate')\n\n parent = parents.get(parent)\n }\n\n // If mandatory and planned deselect results in no selected\n // items then we can't do it, so return original state\n if (mandatory && !value) {\n const on = Array.from(selected.entries()).reduce((arr, [key, value]) => value === 'on' ? [...arr, key] : arr, [] as unknown[])\n if (on.length === 0) return original\n }\n\n return selected\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n for (const id of (v || [])) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents,\n })\n }\n\n return map\n },\n out: (v, children) => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on' && !children.has(key)) arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Utilities
|
|
2
|
-
import { computed, ref, watch } from 'vue';
|
|
2
|
+
import { computed, ref, toRaw, watch } from 'vue';
|
|
3
3
|
import { getCurrentInstance, toKebabCase } from "../util/index.mjs";
|
|
4
4
|
import { useToggleScope } from "./toggleScope.mjs"; // Types
|
|
5
5
|
// Composables
|
|
@@ -11,13 +11,11 @@ export function useProxiedModel(props, prop, defaultValue) {
|
|
|
11
11
|
const kebabProp = toKebabCase(prop);
|
|
12
12
|
const checkKebab = kebabProp !== prop;
|
|
13
13
|
const isControlled = checkKebab ? computed(() => {
|
|
14
|
-
var _vm$vnode$props, _vm$vnode$props2, _vm$vnode$props3, _vm$vnode$props4;
|
|
15
14
|
void props[prop];
|
|
16
|
-
return !!((
|
|
15
|
+
return !!((vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) && (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) || vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`)));
|
|
17
16
|
}) : computed(() => {
|
|
18
|
-
var _vm$vnode$props5, _vm$vnode$props6;
|
|
19
17
|
void props[prop];
|
|
20
|
-
return !!(
|
|
18
|
+
return !!(vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`));
|
|
21
19
|
});
|
|
22
20
|
useToggleScope(() => !isControlled.value, () => {
|
|
23
21
|
watch(() => props[prop], val => {
|
|
@@ -26,15 +24,16 @@ export function useProxiedModel(props, prop, defaultValue) {
|
|
|
26
24
|
});
|
|
27
25
|
const model = computed({
|
|
28
26
|
get() {
|
|
29
|
-
return transformIn(isControlled.value ? props[prop] : internal.value);
|
|
27
|
+
return transformIn(toRaw(isControlled.value ? props[prop] : internal.value));
|
|
30
28
|
},
|
|
31
|
-
set(
|
|
32
|
-
const newValue = transformOut(
|
|
33
|
-
|
|
29
|
+
set(internalValue) {
|
|
30
|
+
const newValue = transformOut(internalValue);
|
|
31
|
+
const value = toRaw(isControlled.value ? props[prop] : internal.value);
|
|
32
|
+
if (value === newValue || transformIn(value) === internalValue) {
|
|
34
33
|
return;
|
|
35
34
|
}
|
|
36
35
|
internal.value = newValue;
|
|
37
|
-
vm
|
|
36
|
+
vm?.emit(`update:${prop}`, newValue);
|
|
38
37
|
}
|
|
39
38
|
});
|
|
40
39
|
Object.defineProperty(model, 'externalValue', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxiedModel.mjs","names":["computed","ref","watch","getCurrentInstance","toKebabCase","useToggleScope","useProxiedModel","props","prop","defaultValue","transformIn","v","transformOut","vm","internal","undefined","kebabProp","checkKebab","isControlled","vnode","hasOwnProperty","value","val","model","get","set","newValue","emit","Object","defineProperty"],"sources":["../../src/composables/proxiedModel.ts"],"sourcesContent":["// Utilities\nimport { computed, ref, watch } from 'vue'\nimport { getCurrentInstance, toKebabCase } from '@/util'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Types\nimport type { Ref } from 'vue'\n\ntype InnerVal<T> = T extends any[] ? Readonly<T> : T\n\n// Composables\nexport function useProxiedModel<\n Props extends object & { [key in Prop as `onUpdate:${Prop}`]: ((val: any) => void) | undefined },\n Prop extends Extract<keyof Props, string>,\n Inner = Props[Prop],\n> (\n props: Props,\n prop: Prop,\n defaultValue?: Props[Prop],\n transformIn: (value?: Props[Prop]) => Inner = (v: any) => v,\n transformOut: (value: Inner) => Props[Prop] = (v: any) => v,\n) {\n const vm = getCurrentInstance('useProxiedModel')\n const internal = ref(props[prop] !== undefined ? props[prop] : defaultValue) as Ref<Props[Prop]>\n const kebabProp = toKebabCase(prop)\n const checkKebab = kebabProp !== prop\n\n const isControlled = checkKebab\n ? computed(() => {\n void props[prop]\n return !!(\n (vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) &&\n (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) || vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`))\n )\n })\n : computed(() => {\n void props[prop]\n return !!(vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`))\n })\n\n useToggleScope(() => !isControlled.value, () => {\n watch(() => props[prop], val => {\n internal.value = val\n })\n })\n\n const model = computed({\n get (): any {\n return transformIn(isControlled.value ? props[prop] : internal.value)\n },\n set (
|
|
1
|
+
{"version":3,"file":"proxiedModel.mjs","names":["computed","ref","toRaw","watch","getCurrentInstance","toKebabCase","useToggleScope","useProxiedModel","props","prop","defaultValue","transformIn","v","transformOut","vm","internal","undefined","kebabProp","checkKebab","isControlled","vnode","hasOwnProperty","value","val","model","get","set","internalValue","newValue","emit","Object","defineProperty"],"sources":["../../src/composables/proxiedModel.ts"],"sourcesContent":["// Utilities\nimport { computed, ref, toRaw, watch } from 'vue'\nimport { getCurrentInstance, toKebabCase } from '@/util'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Types\nimport type { Ref } from 'vue'\n\ntype InnerVal<T> = T extends any[] ? Readonly<T> : T\n\n// Composables\nexport function useProxiedModel<\n Props extends object & { [key in Prop as `onUpdate:${Prop}`]: ((val: any) => void) | undefined },\n Prop extends Extract<keyof Props, string>,\n Inner = Props[Prop],\n> (\n props: Props,\n prop: Prop,\n defaultValue?: Props[Prop],\n transformIn: (value?: Props[Prop]) => Inner = (v: any) => v,\n transformOut: (value: Inner) => Props[Prop] = (v: any) => v,\n) {\n const vm = getCurrentInstance('useProxiedModel')\n const internal = ref(props[prop] !== undefined ? props[prop] : defaultValue) as Ref<Props[Prop]>\n const kebabProp = toKebabCase(prop)\n const checkKebab = kebabProp !== prop\n\n const isControlled = checkKebab\n ? computed(() => {\n void props[prop]\n return !!(\n (vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) &&\n (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) || vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`))\n )\n })\n : computed(() => {\n void props[prop]\n return !!(vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`))\n })\n\n useToggleScope(() => !isControlled.value, () => {\n watch(() => props[prop], val => {\n internal.value = val\n })\n })\n\n const model = computed({\n get (): any {\n return transformIn(toRaw(isControlled.value ? props[prop] : internal.value))\n },\n set (internalValue) {\n const newValue = transformOut(internalValue)\n const value = toRaw(isControlled.value ? props[prop] : internal.value)\n if (value === newValue || transformIn(value) === internalValue) {\n return\n }\n internal.value = newValue\n vm?.emit(`update:${prop}`, newValue)\n },\n }) as any as Ref<InnerVal<Inner>> & { readonly externalValue: Props[Prop] }\n\n Object.defineProperty(model, 'externalValue', {\n get: () => isControlled.value ? props[prop] : internal.value,\n })\n\n return model\n}\n"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ export function useResizeObserver(callback) {
|
|
|
7
7
|
const contentRect = ref();
|
|
8
8
|
if (IN_BROWSER) {
|
|
9
9
|
const observer = new ResizeObserver(entries => {
|
|
10
|
-
callback
|
|
10
|
+
callback?.(entries, observer);
|
|
11
11
|
if (!entries.length) return;
|
|
12
12
|
contentRect.value = entries[0].contentRect;
|
|
13
13
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resizeObserver.mjs","names":["onBeforeUnmount","readonly","ref","watch","IN_BROWSER","useResizeObserver","callback","resizeRef","contentRect","observer","ResizeObserver","entries","length","value","disconnect","newValue","oldValue","unobserve","undefined","observe","flush"],"sources":["../../src/composables/resizeObserver.ts"],"sourcesContent":["// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue'\nimport type { DeepReadonly, Ref } from 'vue'\n\n// Globals\nimport { IN_BROWSER } from '@/util/globals'\n\ninterface ResizeState {\n resizeRef: Ref<Element | undefined>\n contentRect: DeepReadonly<Ref<DOMRectReadOnly | undefined>>\n}\n\nexport function useResizeObserver (callback?: ResizeObserverCallback): ResizeState {\n const resizeRef = ref<Element>()\n const contentRect = ref<DOMRectReadOnly>()\n\n if (IN_BROWSER) {\n const observer = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n callback?.(entries, observer)\n\n if (!entries.length) return\n\n contentRect.value = entries[0].contentRect\n })\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(resizeRef, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue)\n contentRect.value = undefined\n }\n\n if (newValue) observer.observe(newValue)\n }, {\n flush: 'post',\n })\n }\n\n return {\n resizeRef,\n contentRect: readonly(contentRect),\n }\n}\n"],"mappings":"AAAA;AACA,SAASA,eAAe,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAG3D;AAAA,SACSC,UAAU;AAOnB,OAAO,SAASC,iBAAiB,CAAEC,QAAiC,EAAe;EACjF,MAAMC,SAAS,GAAGL,GAAG,EAAW;EAChC,MAAMM,WAAW,GAAGN,GAAG,EAAmB;EAE1C,IAAIE,UAAU,EAAE;IACd,MAAMK,QAAQ,GAAG,IAAIC,cAAc,CAAEC,OAA8B,IAAK;MACtEL,QAAQ,
|
|
1
|
+
{"version":3,"file":"resizeObserver.mjs","names":["onBeforeUnmount","readonly","ref","watch","IN_BROWSER","useResizeObserver","callback","resizeRef","contentRect","observer","ResizeObserver","entries","length","value","disconnect","newValue","oldValue","unobserve","undefined","observe","flush"],"sources":["../../src/composables/resizeObserver.ts"],"sourcesContent":["// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue'\nimport type { DeepReadonly, Ref } from 'vue'\n\n// Globals\nimport { IN_BROWSER } from '@/util/globals'\n\ninterface ResizeState {\n resizeRef: Ref<Element | undefined>\n contentRect: DeepReadonly<Ref<DOMRectReadOnly | undefined>>\n}\n\nexport function useResizeObserver (callback?: ResizeObserverCallback): ResizeState {\n const resizeRef = ref<Element>()\n const contentRect = ref<DOMRectReadOnly>()\n\n if (IN_BROWSER) {\n const observer = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n callback?.(entries, observer)\n\n if (!entries.length) return\n\n contentRect.value = entries[0].contentRect\n })\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(resizeRef, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue)\n contentRect.value = undefined\n }\n\n if (newValue) observer.observe(newValue)\n }, {\n flush: 'post',\n })\n }\n\n return {\n resizeRef,\n contentRect: readonly(contentRect),\n }\n}\n"],"mappings":"AAAA;AACA,SAASA,eAAe,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAG3D;AAAA,SACSC,UAAU;AAOnB,OAAO,SAASC,iBAAiB,CAAEC,QAAiC,EAAe;EACjF,MAAMC,SAAS,GAAGL,GAAG,EAAW;EAChC,MAAMM,WAAW,GAAGN,GAAG,EAAmB;EAE1C,IAAIE,UAAU,EAAE;IACd,MAAMK,QAAQ,GAAG,IAAIC,cAAc,CAAEC,OAA8B,IAAK;MACtEL,QAAQ,GAAGK,OAAO,EAAEF,QAAQ,CAAC;MAE7B,IAAI,CAACE,OAAO,CAACC,MAAM,EAAE;MAErBJ,WAAW,CAACK,KAAK,GAAGF,OAAO,CAAC,CAAC,CAAC,CAACH,WAAW;IAC5C,CAAC,CAAC;IAEFR,eAAe,CAAC,MAAM;MACpBS,QAAQ,CAACK,UAAU,EAAE;IACvB,CAAC,CAAC;IAEFX,KAAK,CAACI,SAAS,EAAE,CAACQ,QAAQ,EAAEC,QAAQ,KAAK;MACvC,IAAIA,QAAQ,EAAE;QACZP,QAAQ,CAACQ,SAAS,CAACD,QAAQ,CAAC;QAC5BR,WAAW,CAACK,KAAK,GAAGK,SAAS;MAC/B;MAEA,IAAIH,QAAQ,EAAEN,QAAQ,CAACU,OAAO,CAACJ,QAAQ,CAAC;IAC1C,CAAC,EAAE;MACDK,KAAK,EAAE;IACT,CAAC,CAAC;EACJ;EAEA,OAAO;IACLb,SAAS;IACTC,WAAW,EAAEP,QAAQ,CAACO,WAAW;EACnC,CAAC;AACH"}
|
|
@@ -6,20 +6,16 @@ import { computed, nextTick, onScopeDispose, resolveDynamicComponent, toRef } fr
|
|
|
6
6
|
|
|
7
7
|
export function useRoute() {
|
|
8
8
|
const vm = getCurrentInstance('useRoute');
|
|
9
|
-
return computed(() =>
|
|
10
|
-
var _vm$proxy;
|
|
11
|
-
return vm == null ? void 0 : (_vm$proxy = vm.proxy) == null ? void 0 : _vm$proxy.$route;
|
|
12
|
-
});
|
|
9
|
+
return computed(() => vm?.proxy?.$route);
|
|
13
10
|
}
|
|
14
11
|
export function useRouter() {
|
|
15
|
-
|
|
16
|
-
return (_getCurrentInstance = getCurrentInstance('useRouter')) == null ? void 0 : (_getCurrentInstance$p = _getCurrentInstance.proxy) == null ? void 0 : _getCurrentInstance$p.$router;
|
|
12
|
+
return getCurrentInstance('useRouter')?.proxy?.$router;
|
|
17
13
|
}
|
|
18
14
|
export function useLink(props, attrs) {
|
|
19
15
|
const RouterLink = resolveDynamicComponent('RouterLink');
|
|
20
16
|
const isLink = computed(() => !!(props.href || props.to));
|
|
21
17
|
const isClickable = computed(() => {
|
|
22
|
-
return
|
|
18
|
+
return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click');
|
|
23
19
|
});
|
|
24
20
|
if (typeof RouterLink === 'string') {
|
|
25
21
|
return {
|
|
@@ -32,13 +28,10 @@ export function useLink(props, attrs) {
|
|
|
32
28
|
return {
|
|
33
29
|
isLink,
|
|
34
30
|
isClickable,
|
|
35
|
-
route: link
|
|
36
|
-
navigate: link
|
|
37
|
-
isActive: link && computed(() =>
|
|
38
|
-
|
|
39
|
-
return props.exact ? (_link$isExactActive = link.isExactActive) == null ? void 0 : _link$isExactActive.value : (_link$isActive = link.isActive) == null ? void 0 : _link$isActive.value;
|
|
40
|
-
}),
|
|
41
|
-
href: computed(() => props.to ? link == null ? void 0 : link.route.value.href : props.href)
|
|
31
|
+
route: link?.route,
|
|
32
|
+
navigate: link?.navigate,
|
|
33
|
+
isActive: link && computed(() => props.exact ? link.isExactActive?.value : link.isActive?.value),
|
|
34
|
+
href: computed(() => props.to ? link?.route.value.href : props.href)
|
|
42
35
|
};
|
|
43
36
|
}
|
|
44
37
|
export const makeRouterProps = propsFactory({
|
|
@@ -55,7 +48,7 @@ export function useBackButton(router, cb) {
|
|
|
55
48
|
if (IN_BROWSER) {
|
|
56
49
|
nextTick(() => {
|
|
57
50
|
window.addEventListener('popstate', onPopstate);
|
|
58
|
-
removeBefore = router
|
|
51
|
+
removeBefore = router?.beforeEach((to, from, next) => {
|
|
59
52
|
if (!inTransition) {
|
|
60
53
|
setTimeout(() => popped ? cb(next) : next());
|
|
61
54
|
} else {
|
|
@@ -63,20 +56,18 @@ export function useBackButton(router, cb) {
|
|
|
63
56
|
}
|
|
64
57
|
inTransition = true;
|
|
65
58
|
});
|
|
66
|
-
removeAfter = router
|
|
59
|
+
removeAfter = router?.afterEach(() => {
|
|
67
60
|
inTransition = false;
|
|
68
61
|
});
|
|
69
62
|
});
|
|
70
63
|
onScopeDispose(() => {
|
|
71
|
-
var _removeBefore, _removeAfter;
|
|
72
64
|
window.removeEventListener('popstate', onPopstate);
|
|
73
|
-
|
|
74
|
-
|
|
65
|
+
removeBefore?.();
|
|
66
|
+
removeAfter?.();
|
|
75
67
|
});
|
|
76
68
|
}
|
|
77
69
|
function onPopstate(e) {
|
|
78
|
-
|
|
79
|
-
if ((_e$state = e.state) != null && _e$state.replaced) return;
|
|
70
|
+
if (e.state?.replaced) return;
|
|
80
71
|
popped = true;
|
|
81
72
|
setTimeout(() => popped = false);
|
|
82
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.mjs","names":["getCurrentInstance","hasEvent","IN_BROWSER","propsFactory","computed","nextTick","onScopeDispose","resolveDynamicComponent","toRef","useRoute","vm","proxy","$route","useRouter","$router","useLink","props","attrs","RouterLink","isLink","href","to","isClickable","value","link","undefined","route","navigate","isActive","exact","isExactActive","makeRouterProps","String","replace","Boolean","Object","inTransition","useBackButton","router","cb","popped","removeBefore","removeAfter","window","addEventListener","onPopstate","beforeEach","from","next","setTimeout","afterEach","removeEventListener","e","state","replaced"],"sources":["../../src/composables/router.tsx"],"sourcesContent":["// Utilities\nimport { getCurrentInstance, hasEvent, IN_BROWSER, propsFactory } from '@/util'\nimport {\n computed,\n nextTick,\n onScopeDispose,\n resolveDynamicComponent,\n toRef,\n} from 'vue'\n\n// Types\nimport type { ComputedRef, PropType, Ref, SetupContext } from 'vue'\nimport type {\n RouterLink as _RouterLink,\n useLink as _useLink,\n NavigationGuardNext,\n RouteLocationNormalizedLoaded,\n RouteLocationRaw,\n Router,\n UseLinkOptions,\n} from 'vue-router'\nimport type { EventProp } from '@/util'\n\nexport function useRoute (): Ref<RouteLocationNormalizedLoaded | undefined> {\n const vm = getCurrentInstance('useRoute')\n\n return computed(() => vm?.proxy?.$route)\n}\n\nexport function useRouter (): Router | undefined {\n return getCurrentInstance('useRouter')?.proxy?.$router\n}\n\nexport interface LinkProps {\n href: string | undefined\n replace: boolean | undefined\n to: RouteLocationRaw | undefined\n exact: boolean | undefined\n}\n\nexport interface LinkListeners {\n onClick?: EventProp | undefined\n onClickOnce?: EventProp | undefined\n}\n\nexport interface UseLink extends Omit<Partial<ReturnType<typeof _useLink>>, 'href'> {\n isLink: ComputedRef<boolean>\n isClickable: ComputedRef<boolean>\n href: Ref<string | undefined>\n}\n\nexport function useLink (props: LinkProps & LinkListeners, attrs: SetupContext['attrs']): UseLink {\n const RouterLink = resolveDynamicComponent('RouterLink') as typeof _RouterLink | string\n\n const isLink = computed(() => !!(props.href || props.to))\n const isClickable = computed(() => {\n return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click')\n })\n\n if (typeof RouterLink === 'string') {\n return {\n isLink,\n isClickable,\n href: toRef(props, 'href'),\n }\n }\n\n const link = props.to ? RouterLink.useLink(props as UseLinkOptions) : undefined\n\n return {\n isLink,\n isClickable,\n route: link?.route,\n navigate: link?.navigate,\n isActive: link && computed(() => props.exact ? link.isExactActive?.value : link.isActive?.value),\n href: computed(() => props.to ? link?.route.value.href : props.href),\n }\n}\n\nexport const makeRouterProps = propsFactory({\n href: String,\n replace: Boolean,\n to: [String, Object] as PropType<RouteLocationRaw>,\n exact: Boolean,\n}, 'router')\n\nlet inTransition = false\nexport function useBackButton (router: Router | undefined, cb: (next: NavigationGuardNext) => void) {\n let popped = false\n let removeBefore: (() => void) | undefined\n let removeAfter: (() => void) | undefined\n\n if (IN_BROWSER) {\n nextTick(() => {\n window.addEventListener('popstate', onPopstate)\n removeBefore = router?.beforeEach((to, from, next) => {\n if (!inTransition) {\n setTimeout(() => popped ? cb(next) : next())\n } else {\n popped ? cb(next) : next()\n }\n inTransition = true\n })\n removeAfter = router?.afterEach(() => {\n inTransition = false\n })\n })\n onScopeDispose(() => {\n window.removeEventListener('popstate', onPopstate)\n removeBefore?.()\n removeAfter?.()\n })\n }\n\n function onPopstate (e: PopStateEvent) {\n if (e.state?.replaced) return\n\n popped = true\n setTimeout(() => (popped = false))\n }\n}\n"],"mappings":"AAAA;AAAA,SACSA,kBAAkB,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,YAAY;AAC/D,SACEC,QAAQ,EACRC,QAAQ,EACRC,cAAc,EACdC,uBAAuB,EACvBC,KAAK,QACA,KAAK;;AAEZ;;AAaA,OAAO,SAASC,QAAQ,GAAoD;EAC1E,MAAMC,EAAE,GAAGV,kBAAkB,CAAC,UAAU,CAAC;EAEzC,OAAOI,QAAQ,CAAC
|
|
1
|
+
{"version":3,"file":"router.mjs","names":["getCurrentInstance","hasEvent","IN_BROWSER","propsFactory","computed","nextTick","onScopeDispose","resolveDynamicComponent","toRef","useRoute","vm","proxy","$route","useRouter","$router","useLink","props","attrs","RouterLink","isLink","href","to","isClickable","value","link","undefined","route","navigate","isActive","exact","isExactActive","makeRouterProps","String","replace","Boolean","Object","inTransition","useBackButton","router","cb","popped","removeBefore","removeAfter","window","addEventListener","onPopstate","beforeEach","from","next","setTimeout","afterEach","removeEventListener","e","state","replaced"],"sources":["../../src/composables/router.tsx"],"sourcesContent":["// Utilities\nimport { getCurrentInstance, hasEvent, IN_BROWSER, propsFactory } from '@/util'\nimport {\n computed,\n nextTick,\n onScopeDispose,\n resolveDynamicComponent,\n toRef,\n} from 'vue'\n\n// Types\nimport type { ComputedRef, PropType, Ref, SetupContext } from 'vue'\nimport type {\n RouterLink as _RouterLink,\n useLink as _useLink,\n NavigationGuardNext,\n RouteLocationNormalizedLoaded,\n RouteLocationRaw,\n Router,\n UseLinkOptions,\n} from 'vue-router'\nimport type { EventProp } from '@/util'\n\nexport function useRoute (): Ref<RouteLocationNormalizedLoaded | undefined> {\n const vm = getCurrentInstance('useRoute')\n\n return computed(() => vm?.proxy?.$route)\n}\n\nexport function useRouter (): Router | undefined {\n return getCurrentInstance('useRouter')?.proxy?.$router\n}\n\nexport interface LinkProps {\n href: string | undefined\n replace: boolean | undefined\n to: RouteLocationRaw | undefined\n exact: boolean | undefined\n}\n\nexport interface LinkListeners {\n onClick?: EventProp | undefined\n onClickOnce?: EventProp | undefined\n}\n\nexport interface UseLink extends Omit<Partial<ReturnType<typeof _useLink>>, 'href'> {\n isLink: ComputedRef<boolean>\n isClickable: ComputedRef<boolean>\n href: Ref<string | undefined>\n}\n\nexport function useLink (props: LinkProps & LinkListeners, attrs: SetupContext['attrs']): UseLink {\n const RouterLink = resolveDynamicComponent('RouterLink') as typeof _RouterLink | string\n\n const isLink = computed(() => !!(props.href || props.to))\n const isClickable = computed(() => {\n return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click')\n })\n\n if (typeof RouterLink === 'string') {\n return {\n isLink,\n isClickable,\n href: toRef(props, 'href'),\n }\n }\n\n const link = props.to ? RouterLink.useLink(props as UseLinkOptions) : undefined\n\n return {\n isLink,\n isClickable,\n route: link?.route,\n navigate: link?.navigate,\n isActive: link && computed(() => props.exact ? link.isExactActive?.value : link.isActive?.value),\n href: computed(() => props.to ? link?.route.value.href : props.href),\n }\n}\n\nexport const makeRouterProps = propsFactory({\n href: String,\n replace: Boolean,\n to: [String, Object] as PropType<RouteLocationRaw>,\n exact: Boolean,\n}, 'router')\n\nlet inTransition = false\nexport function useBackButton (router: Router | undefined, cb: (next: NavigationGuardNext) => void) {\n let popped = false\n let removeBefore: (() => void) | undefined\n let removeAfter: (() => void) | undefined\n\n if (IN_BROWSER) {\n nextTick(() => {\n window.addEventListener('popstate', onPopstate)\n removeBefore = router?.beforeEach((to, from, next) => {\n if (!inTransition) {\n setTimeout(() => popped ? cb(next) : next())\n } else {\n popped ? cb(next) : next()\n }\n inTransition = true\n })\n removeAfter = router?.afterEach(() => {\n inTransition = false\n })\n })\n onScopeDispose(() => {\n window.removeEventListener('popstate', onPopstate)\n removeBefore?.()\n removeAfter?.()\n })\n }\n\n function onPopstate (e: PopStateEvent) {\n if (e.state?.replaced) return\n\n popped = true\n setTimeout(() => (popped = false))\n }\n}\n"],"mappings":"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"}
|
|
@@ -43,14 +43,13 @@ export function useScroll(props) {
|
|
|
43
43
|
});
|
|
44
44
|
onMounted(() => {
|
|
45
45
|
watch(() => props.scrollTarget, scrollTarget => {
|
|
46
|
-
var _target$value;
|
|
47
46
|
const newTarget = scrollTarget ? document.querySelector(scrollTarget) : window;
|
|
48
47
|
if (!newTarget) {
|
|
49
48
|
consoleWarn(`Unable to locate element with identifier ${scrollTarget}`, getCurrentInstance());
|
|
50
49
|
return;
|
|
51
50
|
}
|
|
52
51
|
if (newTarget === target.value) return;
|
|
53
|
-
|
|
52
|
+
target.value?.removeEventListener('scroll', onScroll);
|
|
54
53
|
target.value = newTarget;
|
|
55
54
|
target.value.addEventListener('scroll', onScroll, {
|
|
56
55
|
passive: true
|
|
@@ -60,8 +59,7 @@ export function useScroll(props) {
|
|
|
60
59
|
});
|
|
61
60
|
});
|
|
62
61
|
onBeforeUnmount(() => {
|
|
63
|
-
|
|
64
|
-
(_target$value2 = target.value) == null ? void 0 : _target$value2.removeEventListener('scroll', onScroll);
|
|
62
|
+
target.value?.removeEventListener('scroll', onScroll);
|
|
65
63
|
});
|
|
66
64
|
thresholdMetCallback && watch(() => Math.abs(currentScroll.value - savedScroll.value) > computedScrollThreshold.value, thresholdMet => {
|
|
67
65
|
thresholdMet && thresholdMetCallback({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll.mjs","names":["computed","getCurrentInstance","onBeforeUnmount","onMounted","ref","watch","consoleWarn","propsFactory","makeScrollProps","scrollTarget","type","String","scrollThreshold","Number","useScroll","props","args","thresholdMetCallback","canScroll","previousScroll","target","currentScroll","savedScroll","currentThreshold","isScrollActive","isScrollingUp","computedScrollThreshold","onScroll","targetEl","value","pageYOffset","scrollTop","Math","abs","newTarget","document","querySelector","window","removeEventListener","addEventListener","passive","immediate","thresholdMet"],"sources":["../../src/composables/scroll.ts"],"sourcesContent":["// Utilities\nimport {\n computed,\n getCurrentInstance,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n} from 'vue'\nimport { consoleWarn, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport interface ScrollProps {\n scrollTarget?: string\n scrollThreshold?: string | number\n}\n\nexport interface ThresholdMetCallbackData {\n isScrollingUp: boolean\n currentThreshold: number\n savedScroll: Ref<number>\n}\n\n// Composables\nexport const makeScrollProps = propsFactory({\n scrollTarget: {\n type: String,\n },\n scrollThreshold: {\n type: [String, Number],\n },\n}, 'scroll')\n\nexport interface ScrollArguments {\n thresholdMetCallback?: (data: ThresholdMetCallbackData) => void\n scrollThreshold?: Readonly<Ref<number>>\n canScroll?: Readonly<Ref<boolean>>\n}\n\nexport function useScroll (\n props: ScrollProps,\n args: ScrollArguments = {},\n) {\n const { thresholdMetCallback, scrollThreshold, canScroll } = args\n let previousScroll = 0\n const target = ref<Element | Window | null>(null)\n const currentScroll = ref(0)\n const savedScroll = ref(0)\n const currentThreshold = ref(0)\n const isScrollActive = ref(false)\n const isScrollingUp = ref(false)\n\n const computedScrollThreshold = computed(() => {\n return Number(props.scrollThreshold ?? scrollThreshold ?? 300)\n })\n\n const onScroll = () => {\n const targetEl = target.value\n\n if (!targetEl || (canScroll && !canScroll.value)) return\n\n previousScroll = currentScroll.value\n currentScroll.value = ('window' in targetEl) ? targetEl.pageYOffset : targetEl.scrollTop\n\n isScrollingUp.value = currentScroll.value < previousScroll\n currentThreshold.value = Math.abs(currentScroll.value - computedScrollThreshold.value)\n }\n\n watch(isScrollingUp, () => {\n savedScroll.value = savedScroll.value || currentScroll.value\n })\n\n watch(isScrollActive, () => {\n savedScroll.value = 0\n })\n\n onMounted(() => {\n watch(() => props.scrollTarget, scrollTarget => {\n const newTarget = scrollTarget ? document.querySelector(scrollTarget) : window\n\n if (!newTarget) {\n consoleWarn(`Unable to locate element with identifier ${scrollTarget}`, getCurrentInstance())\n return\n }\n\n if (newTarget === target.value) return\n\n target.value?.removeEventListener('scroll', onScroll)\n target.value = newTarget\n target.value.addEventListener('scroll', onScroll, { passive: true })\n }, { immediate: true })\n })\n\n onBeforeUnmount(() => {\n target.value?.removeEventListener('scroll', onScroll)\n })\n\n thresholdMetCallback && watch(() => (\n Math.abs(currentScroll.value - savedScroll.value) > computedScrollThreshold.value\n ), thresholdMet => {\n thresholdMet && thresholdMetCallback({\n currentThreshold: currentThreshold.value,\n isScrollingUp: isScrollingUp.value,\n savedScroll,\n })\n }, { immediate: true })\n\n // Do we need this? If yes - seems that\n // there's no need to expose onScroll\n canScroll && watch(canScroll, onScroll, { immediate: true })\n\n return {\n isScrollActive,\n\n // required only for testing\n // probably can be removed\n // later (2 chars chlng)\n isScrollingUp,\n savedScroll,\n }\n}\n"],"mappings":"AAAA;AACA,SACEA,QAAQ,EACRC,kBAAkB,EAClBC,eAAe,EACfC,SAAS,EACTC,GAAG,EACHC,KAAK,QACA,KAAK;AAAA,SACHC,WAAW,EAAEC,YAAY,6BAElC;AAcA;AACA,OAAO,MAAMC,eAAe,GAAGD,YAAY,CAAC;EAC1CE,YAAY,EAAE;IACZC,IAAI,EAAEC;EACR,CAAC;EACDC,eAAe,EAAE;IACfF,IAAI,EAAE,CAACC,MAAM,EAAEE,MAAM;EACvB;AACF,CAAC,EAAE,QAAQ,CAAC;AAQZ,OAAO,SAASC,SAAS,CACvBC,KAAkB,EAElB;EAAA,IADAC,IAAqB,uEAAG,CAAC,CAAC;EAE1B,MAAM;IAAEC,oBAAoB;IAAEL,eAAe;IAAEM;EAAU,CAAC,GAAGF,IAAI;EACjE,IAAIG,cAAc,GAAG,CAAC;EACtB,MAAMC,MAAM,GAAGhB,GAAG,CAA0B,IAAI,CAAC;EACjD,MAAMiB,aAAa,GAAGjB,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAMkB,WAAW,GAAGlB,GAAG,CAAC,CAAC,CAAC;EAC1B,MAAMmB,gBAAgB,GAAGnB,GAAG,CAAC,CAAC,CAAC;EAC/B,MAAMoB,cAAc,GAAGpB,GAAG,CAAC,KAAK,CAAC;EACjC,MAAMqB,aAAa,GAAGrB,GAAG,CAAC,KAAK,CAAC;EAEhC,MAAMsB,uBAAuB,GAAG1B,QAAQ,CAAC,MAAM;IAC7C,OAAOa,MAAM,CAACE,KAAK,CAACH,eAAe,IAAIA,eAAe,IAAI,GAAG,CAAC;EAChE,CAAC,CAAC;EAEF,MAAMe,QAAQ,GAAG,MAAM;IACrB,MAAMC,QAAQ,GAAGR,MAAM,CAACS,KAAK;IAE7B,IAAI,CAACD,QAAQ,IAAKV,SAAS,IAAI,CAACA,SAAS,CAACW,KAAM,EAAE;IAElDV,cAAc,GAAGE,aAAa,CAACQ,KAAK;IACpCR,aAAa,CAACQ,KAAK,GAAI,QAAQ,IAAID,QAAQ,GAAIA,QAAQ,CAACE,WAAW,GAAGF,QAAQ,CAACG,SAAS;IAExFN,aAAa,CAACI,KAAK,GAAGR,aAAa,CAACQ,KAAK,GAAGV,cAAc;IAC1DI,gBAAgB,CAACM,KAAK,GAAGG,IAAI,CAACC,GAAG,CAACZ,aAAa,CAACQ,KAAK,GAAGH,uBAAuB,CAACG,KAAK,CAAC;EACxF,CAAC;EAEDxB,KAAK,CAACoB,aAAa,EAAE,MAAM;IACzBH,WAAW,CAACO,KAAK,GAAGP,WAAW,CAACO,KAAK,IAAIR,aAAa,CAACQ,KAAK;EAC9D,CAAC,CAAC;EAEFxB,KAAK,CAACmB,cAAc,EAAE,MAAM;IAC1BF,WAAW,CAACO,KAAK,GAAG,CAAC;EACvB,CAAC,CAAC;EAEF1B,SAAS,CAAC,MAAM;IACdE,KAAK,CAAC,MAAMU,KAAK,CAACN,YAAY,EAAEA,YAAY,IAAI;
|
|
1
|
+
{"version":3,"file":"scroll.mjs","names":["computed","getCurrentInstance","onBeforeUnmount","onMounted","ref","watch","consoleWarn","propsFactory","makeScrollProps","scrollTarget","type","String","scrollThreshold","Number","useScroll","props","args","thresholdMetCallback","canScroll","previousScroll","target","currentScroll","savedScroll","currentThreshold","isScrollActive","isScrollingUp","computedScrollThreshold","onScroll","targetEl","value","pageYOffset","scrollTop","Math","abs","newTarget","document","querySelector","window","removeEventListener","addEventListener","passive","immediate","thresholdMet"],"sources":["../../src/composables/scroll.ts"],"sourcesContent":["// Utilities\nimport {\n computed,\n getCurrentInstance,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n} from 'vue'\nimport { consoleWarn, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport interface ScrollProps {\n scrollTarget?: string\n scrollThreshold?: string | number\n}\n\nexport interface ThresholdMetCallbackData {\n isScrollingUp: boolean\n currentThreshold: number\n savedScroll: Ref<number>\n}\n\n// Composables\nexport const makeScrollProps = propsFactory({\n scrollTarget: {\n type: String,\n },\n scrollThreshold: {\n type: [String, Number],\n },\n}, 'scroll')\n\nexport interface ScrollArguments {\n thresholdMetCallback?: (data: ThresholdMetCallbackData) => void\n scrollThreshold?: Readonly<Ref<number>>\n canScroll?: Readonly<Ref<boolean>>\n}\n\nexport function useScroll (\n props: ScrollProps,\n args: ScrollArguments = {},\n) {\n const { thresholdMetCallback, scrollThreshold, canScroll } = args\n let previousScroll = 0\n const target = ref<Element | Window | null>(null)\n const currentScroll = ref(0)\n const savedScroll = ref(0)\n const currentThreshold = ref(0)\n const isScrollActive = ref(false)\n const isScrollingUp = ref(false)\n\n const computedScrollThreshold = computed(() => {\n return Number(props.scrollThreshold ?? scrollThreshold ?? 300)\n })\n\n const onScroll = () => {\n const targetEl = target.value\n\n if (!targetEl || (canScroll && !canScroll.value)) return\n\n previousScroll = currentScroll.value\n currentScroll.value = ('window' in targetEl) ? targetEl.pageYOffset : targetEl.scrollTop\n\n isScrollingUp.value = currentScroll.value < previousScroll\n currentThreshold.value = Math.abs(currentScroll.value - computedScrollThreshold.value)\n }\n\n watch(isScrollingUp, () => {\n savedScroll.value = savedScroll.value || currentScroll.value\n })\n\n watch(isScrollActive, () => {\n savedScroll.value = 0\n })\n\n onMounted(() => {\n watch(() => props.scrollTarget, scrollTarget => {\n const newTarget = scrollTarget ? document.querySelector(scrollTarget) : window\n\n if (!newTarget) {\n consoleWarn(`Unable to locate element with identifier ${scrollTarget}`, getCurrentInstance())\n return\n }\n\n if (newTarget === target.value) return\n\n target.value?.removeEventListener('scroll', onScroll)\n target.value = newTarget\n target.value.addEventListener('scroll', onScroll, { passive: true })\n }, { immediate: true })\n })\n\n onBeforeUnmount(() => {\n target.value?.removeEventListener('scroll', onScroll)\n })\n\n thresholdMetCallback && watch(() => (\n Math.abs(currentScroll.value - savedScroll.value) > computedScrollThreshold.value\n ), thresholdMet => {\n thresholdMet && thresholdMetCallback({\n currentThreshold: currentThreshold.value,\n isScrollingUp: isScrollingUp.value,\n savedScroll,\n })\n }, { immediate: true })\n\n // Do we need this? If yes - seems that\n // there's no need to expose onScroll\n canScroll && watch(canScroll, onScroll, { immediate: true })\n\n return {\n isScrollActive,\n\n // required only for testing\n // probably can be removed\n // later (2 chars chlng)\n isScrollingUp,\n savedScroll,\n }\n}\n"],"mappings":"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"}
|
|
@@ -4,10 +4,7 @@ import { nextTick, watch } from 'vue';
|
|
|
4
4
|
// Types
|
|
5
5
|
|
|
6
6
|
export function useSelectLink(link, select) {
|
|
7
|
-
watch(() => {
|
|
8
|
-
var _link$isActive;
|
|
9
|
-
return (_link$isActive = link.isActive) == null ? void 0 : _link$isActive.value;
|
|
10
|
-
}, isActive => {
|
|
7
|
+
watch(() => link.isActive?.value, isActive => {
|
|
11
8
|
if (link.isLink.value && isActive && select) {
|
|
12
9
|
nextTick(() => {
|
|
13
10
|
select(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectLink.mjs","names":["nextTick","watch","useSelectLink","link","select","isActive","value","isLink","immediate"],"sources":["../../src/composables/selectLink.ts"],"sourcesContent":["// Utilities\nimport { nextTick, watch } from 'vue'\n\n// Types\nimport type { UseLink } from './router'\n\nexport function useSelectLink (link: UseLink, select?: (value: boolean, e?: Event) => void) {\n watch(() => link.isActive?.value, isActive => {\n if (link.isLink.value && isActive && select) {\n nextTick(() => {\n select(true)\n })\n }\n }, {\n immediate: true,\n })\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;;AAErC;;AAGA,OAAO,SAASC,aAAa,CAAEC,IAAa,EAAEC,MAA4C,EAAE;EAC1FH,KAAK,CAAC
|
|
1
|
+
{"version":3,"file":"selectLink.mjs","names":["nextTick","watch","useSelectLink","link","select","isActive","value","isLink","immediate"],"sources":["../../src/composables/selectLink.ts"],"sourcesContent":["// Utilities\nimport { nextTick, watch } from 'vue'\n\n// Types\nimport type { UseLink } from './router'\n\nexport function useSelectLink (link: UseLink, select?: (value: boolean, e?: Event) => void) {\n watch(() => link.isActive?.value, isActive => {\n if (link.isLink.value && isActive && select) {\n nextTick(() => {\n select(true)\n })\n }\n }, {\n immediate: true,\n })\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;;AAErC;;AAGA,OAAO,SAASC,aAAa,CAAEC,IAAa,EAAEC,MAA4C,EAAE;EAC1FH,KAAK,CAAC,MAAME,IAAI,CAACE,QAAQ,EAAEC,KAAK,EAAED,QAAQ,IAAI;IAC5C,IAAIF,IAAI,CAACI,MAAM,CAACD,KAAK,IAAID,QAAQ,IAAID,MAAM,EAAE;MAC3CJ,QAAQ,CAAC,MAAM;QACbI,MAAM,CAAC,IAAI,CAAC;MACd,CAAC,CAAC;IACJ;EACF,CAAC,EAAE;IACDI,SAAS,EAAE;EACb,CAAC,CAAC;AACJ"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useToggleScope } from "./toggleScope.mjs";
|
|
2
|
-
import { computed, inject, onScopeDispose, provide, reactive, readonly, ref, watchEffect } from 'vue';
|
|
2
|
+
import { computed, inject, onScopeDispose, provide, reactive, readonly, ref, toRaw, watchEffect } from 'vue';
|
|
3
3
|
import { getCurrentInstance } from "../util/index.mjs"; // Types
|
|
4
4
|
const StackSymbol = Symbol.for('vuetify:stack');
|
|
5
5
|
const globalStack = reactive([]);
|
|
@@ -13,26 +13,24 @@ export function useStack(isActive, zIndex, disableGlobalStack) {
|
|
|
13
13
|
provide(StackSymbol, stack);
|
|
14
14
|
const _zIndex = ref(+zIndex.value);
|
|
15
15
|
useToggleScope(isActive, () => {
|
|
16
|
-
|
|
17
|
-
const lastZIndex = (_globalStack$at = globalStack.at(-1)) == null ? void 0 : _globalStack$at[1];
|
|
16
|
+
const lastZIndex = globalStack.at(-1)?.[1];
|
|
18
17
|
_zIndex.value = lastZIndex ? lastZIndex + 10 : +zIndex.value;
|
|
19
18
|
if (createStackEntry) {
|
|
20
19
|
globalStack.push([vm.uid, _zIndex.value]);
|
|
21
20
|
}
|
|
22
|
-
parent
|
|
21
|
+
parent?.activeChildren.add(vm.uid);
|
|
23
22
|
onScopeDispose(() => {
|
|
24
23
|
if (createStackEntry) {
|
|
25
|
-
const idx = globalStack.findIndex(v => v[0] === vm.uid);
|
|
24
|
+
const idx = toRaw(globalStack).findIndex(v => v[0] === vm.uid);
|
|
26
25
|
globalStack.splice(idx, 1);
|
|
27
26
|
}
|
|
28
|
-
parent
|
|
27
|
+
parent?.activeChildren.delete(vm.uid);
|
|
29
28
|
});
|
|
30
29
|
});
|
|
31
30
|
const globalTop = ref(true);
|
|
32
31
|
if (createStackEntry) {
|
|
33
32
|
watchEffect(() => {
|
|
34
|
-
|
|
35
|
-
const _isTop = ((_globalStack$at2 = globalStack.at(-1)) == null ? void 0 : _globalStack$at2[0]) === vm.uid;
|
|
33
|
+
const _isTop = globalStack.at(-1)?.[0] === vm.uid;
|
|
36
34
|
setTimeout(() => globalTop.value = _isTop);
|
|
37
35
|
});
|
|
38
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack.mjs","names":["useToggleScope","computed","inject","onScopeDispose","provide","reactive","readonly","ref","watchEffect","getCurrentInstance","StackSymbol","Symbol","for","globalStack","useStack","isActive","zIndex","disableGlobalStack","vm","createStackEntry","parent","undefined","stack","activeChildren","Set","_zIndex","value","lastZIndex","at","push","uid","add","idx","findIndex","v","splice","delete","globalTop","_isTop","setTimeout","localTop","size","stackStyles"],"sources":["../../src/composables/stack.ts"],"sourcesContent":["import { useToggleScope } from '@/composables/toggleScope'\n\nimport { computed, inject, onScopeDispose, provide, reactive, readonly, ref, watchEffect } from 'vue'\nimport { getCurrentInstance } from '@/util'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\nconst StackSymbol: InjectionKey<StackProvide> = Symbol.for('vuetify:stack')\n\ninterface StackProvide {\n activeChildren: Set<number>\n}\n\nconst globalStack = reactive<[uid: number, zIndex: number][]>([])\n\nexport function useStack (\n isActive: Readonly<Ref<boolean>>,\n zIndex: Readonly<Ref<string | number>>,\n disableGlobalStack: boolean\n) {\n const vm = getCurrentInstance('useStack')\n const createStackEntry = !disableGlobalStack\n\n const parent = inject(StackSymbol, undefined)\n const stack: StackProvide = reactive({\n activeChildren: new Set<number>(),\n })\n provide(StackSymbol, stack)\n\n const _zIndex = ref(+zIndex.value)\n useToggleScope(isActive, () => {\n const lastZIndex = globalStack.at(-1)?.[1]\n _zIndex.value = lastZIndex ? lastZIndex + 10 : +zIndex.value\n\n if (createStackEntry) {\n globalStack.push([vm.uid, _zIndex.value])\n }\n\n parent?.activeChildren.add(vm.uid)\n\n onScopeDispose(() => {\n if (createStackEntry) {\n const idx = globalStack.findIndex(v => v[0] === vm.uid)\n globalStack.splice(idx, 1)\n }\n\n parent?.activeChildren.delete(vm.uid)\n })\n })\n\n const globalTop = ref(true)\n if (createStackEntry) {\n watchEffect(() => {\n const _isTop = globalStack.at(-1)?.[0] === vm.uid\n setTimeout(() => globalTop.value = _isTop)\n })\n }\n\n const localTop = computed(() => !stack.activeChildren.size)\n\n return {\n globalTop: readonly(globalTop),\n localTop,\n stackStyles: computed(() => ({ zIndex: _zIndex.value })),\n }\n}\n"],"mappings":"SAASA,cAAc;AAEvB,SAASC,QAAQ,EAAEC,MAAM,EAAEC,cAAc,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,WAAW,QAAQ,KAAK;AAAA,
|
|
1
|
+
{"version":3,"file":"stack.mjs","names":["useToggleScope","computed","inject","onScopeDispose","provide","reactive","readonly","ref","toRaw","watchEffect","getCurrentInstance","StackSymbol","Symbol","for","globalStack","useStack","isActive","zIndex","disableGlobalStack","vm","createStackEntry","parent","undefined","stack","activeChildren","Set","_zIndex","value","lastZIndex","at","push","uid","add","idx","findIndex","v","splice","delete","globalTop","_isTop","setTimeout","localTop","size","stackStyles"],"sources":["../../src/composables/stack.ts"],"sourcesContent":["import { useToggleScope } from '@/composables/toggleScope'\n\nimport { computed, inject, onScopeDispose, provide, reactive, readonly, ref, toRaw, watchEffect } from 'vue'\nimport { getCurrentInstance } from '@/util'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\nconst StackSymbol: InjectionKey<StackProvide> = Symbol.for('vuetify:stack')\n\ninterface StackProvide {\n activeChildren: Set<number>\n}\n\nconst globalStack = reactive<[uid: number, zIndex: number][]>([])\n\nexport function useStack (\n isActive: Readonly<Ref<boolean>>,\n zIndex: Readonly<Ref<string | number>>,\n disableGlobalStack: boolean\n) {\n const vm = getCurrentInstance('useStack')\n const createStackEntry = !disableGlobalStack\n\n const parent = inject(StackSymbol, undefined)\n const stack: StackProvide = reactive({\n activeChildren: new Set<number>(),\n })\n provide(StackSymbol, stack)\n\n const _zIndex = ref(+zIndex.value)\n useToggleScope(isActive, () => {\n const lastZIndex = globalStack.at(-1)?.[1]\n _zIndex.value = lastZIndex ? lastZIndex + 10 : +zIndex.value\n\n if (createStackEntry) {\n globalStack.push([vm.uid, _zIndex.value])\n }\n\n parent?.activeChildren.add(vm.uid)\n\n onScopeDispose(() => {\n if (createStackEntry) {\n const idx = toRaw(globalStack).findIndex(v => v[0] === vm.uid)\n globalStack.splice(idx, 1)\n }\n\n parent?.activeChildren.delete(vm.uid)\n })\n })\n\n const globalTop = ref(true)\n if (createStackEntry) {\n watchEffect(() => {\n const _isTop = globalStack.at(-1)?.[0] === vm.uid\n setTimeout(() => globalTop.value = _isTop)\n })\n }\n\n const localTop = computed(() => !stack.activeChildren.size)\n\n return {\n globalTop: readonly(globalTop),\n localTop,\n stackStyles: computed(() => ({ zIndex: _zIndex.value })),\n }\n}\n"],"mappings":"SAASA,cAAc;AAEvB,SAASC,QAAQ,EAAEC,MAAM,EAAEC,cAAc,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,KAAK,EAAEC,WAAW,QAAQ,KAAK;AAAA,SACnGC,kBAAkB,6BAE3B;AAGA,MAAMC,WAAuC,GAAGC,MAAM,CAACC,GAAG,CAAC,eAAe,CAAC;AAM3E,MAAMC,WAAW,GAAGT,QAAQ,CAAkC,EAAE,CAAC;AAEjE,OAAO,SAASU,QAAQ,CACtBC,QAAgC,EAChCC,MAAsC,EACtCC,kBAA2B,EAC3B;EACA,MAAMC,EAAE,GAAGT,kBAAkB,CAAC,UAAU,CAAC;EACzC,MAAMU,gBAAgB,GAAG,CAACF,kBAAkB;EAE5C,MAAMG,MAAM,GAAGnB,MAAM,CAACS,WAAW,EAAEW,SAAS,CAAC;EAC7C,MAAMC,KAAmB,GAAGlB,QAAQ,CAAC;IACnCmB,cAAc,EAAE,IAAIC,GAAG;EACzB,CAAC,CAAC;EACFrB,OAAO,CAACO,WAAW,EAAEY,KAAK,CAAC;EAE3B,MAAMG,OAAO,GAAGnB,GAAG,CAAC,CAACU,MAAM,CAACU,KAAK,CAAC;EAClC3B,cAAc,CAACgB,QAAQ,EAAE,MAAM;IAC7B,MAAMY,UAAU,GAAGd,WAAW,CAACe,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1CH,OAAO,CAACC,KAAK,GAAGC,UAAU,GAAGA,UAAU,GAAG,EAAE,GAAG,CAACX,MAAM,CAACU,KAAK;IAE5D,IAAIP,gBAAgB,EAAE;MACpBN,WAAW,CAACgB,IAAI,CAAC,CAACX,EAAE,CAACY,GAAG,EAAEL,OAAO,CAACC,KAAK,CAAC,CAAC;IAC3C;IAEAN,MAAM,EAAEG,cAAc,CAACQ,GAAG,CAACb,EAAE,CAACY,GAAG,CAAC;IAElC5B,cAAc,CAAC,MAAM;MACnB,IAAIiB,gBAAgB,EAAE;QACpB,MAAMa,GAAG,GAAGzB,KAAK,CAACM,WAAW,CAAC,CAACoB,SAAS,CAACC,CAAC,IAAIA,CAAC,CAAC,CAAC,CAAC,KAAKhB,EAAE,CAACY,GAAG,CAAC;QAC9DjB,WAAW,CAACsB,MAAM,CAACH,GAAG,EAAE,CAAC,CAAC;MAC5B;MAEAZ,MAAM,EAAEG,cAAc,CAACa,MAAM,CAAClB,EAAE,CAACY,GAAG,CAAC;IACvC,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,MAAMO,SAAS,GAAG/B,GAAG,CAAC,IAAI,CAAC;EAC3B,IAAIa,gBAAgB,EAAE;IACpBX,WAAW,CAAC,MAAM;MAChB,MAAM8B,MAAM,GAAGzB,WAAW,CAACe,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAKV,EAAE,CAACY,GAAG;MACjDS,UAAU,CAAC,MAAMF,SAAS,CAACX,KAAK,GAAGY,MAAM,CAAC;IAC5C,CAAC,CAAC;EACJ;EAEA,MAAME,QAAQ,GAAGxC,QAAQ,CAAC,MAAM,CAACsB,KAAK,CAACC,cAAc,CAACkB,IAAI,CAAC;EAE3D,OAAO;IACLJ,SAAS,EAAEhC,QAAQ,CAACgC,SAAS,CAAC;IAC9BG,QAAQ;IACRE,WAAW,EAAE1C,QAAQ,CAAC,OAAO;MAAEgB,MAAM,EAAES,OAAO,CAACC;IAAM,CAAC,CAAC;EACzD,CAAC;AACH"}
|
|
@@ -10,7 +10,7 @@ export function useTeleport(target) {
|
|
|
10
10
|
warn(`Unable to locate target ${_target}`);
|
|
11
11
|
return undefined;
|
|
12
12
|
}
|
|
13
|
-
let container = targetElement.querySelector('.v-overlay-container');
|
|
13
|
+
let container = targetElement.querySelector(':scope > .v-overlay-container');
|
|
14
14
|
if (!container) {
|
|
15
15
|
container = document.createElement('div');
|
|
16
16
|
container.className = 'v-overlay-container';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teleport.mjs","names":["computed","warn","IN_BROWSER","useTeleport","target","teleportTarget","_target","value","undefined","targetElement","document","body","querySelector","container","createElement","className","appendChild"],"sources":["../../src/composables/teleport.ts"],"sourcesContent":["// Utilities\nimport { computed, warn } from 'vue'\nimport { IN_BROWSER } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport function useTeleport (target: Ref<boolean | string | Element>) {\n const teleportTarget = computed(() => {\n const _target = target.value\n\n if (_target === true || !IN_BROWSER) return undefined\n\n const targetElement =\n _target === false ? document.body\n : typeof _target === 'string' ? document.querySelector(_target)\n : _target\n\n if (targetElement == null) {\n warn(`Unable to locate target ${_target}`)\n return undefined\n }\n\n let container = targetElement.querySelector('.v-overlay-container')\n\n if (!container) {\n container = document.createElement('div')\n container.className = 'v-overlay-container'\n targetElement.appendChild(container)\n }\n\n return container\n })\n\n return { teleportTarget }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,IAAI,QAAQ,KAAK;AAAA,SAC3BC,UAAU,6BAEnB;AAGA,OAAO,SAASC,WAAW,CAAEC,MAAuC,EAAE;EACpE,MAAMC,cAAc,GAAGL,QAAQ,CAAC,MAAM;IACpC,MAAMM,OAAO,GAAGF,MAAM,CAACG,KAAK;IAE5B,IAAID,OAAO,KAAK,IAAI,IAAI,CAACJ,UAAU,EAAE,OAAOM,SAAS;IAErD,MAAMC,aAAa,GACjBH,OAAO,KAAK,KAAK,GAAGI,QAAQ,CAACC,IAAI,GAC/B,OAAOL,OAAO,KAAK,QAAQ,GAAGI,QAAQ,CAACE,aAAa,CAACN,OAAO,CAAC,GAC7DA,OAAO;IAEX,IAAIG,aAAa,IAAI,IAAI,EAAE;MACzBR,IAAI,CAAE,2BAA0BK,OAAQ,EAAC,CAAC;MAC1C,OAAOE,SAAS;IAClB;IAEA,IAAIK,SAAS,GAAGJ,aAAa,CAACG,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"teleport.mjs","names":["computed","warn","IN_BROWSER","useTeleport","target","teleportTarget","_target","value","undefined","targetElement","document","body","querySelector","container","createElement","className","appendChild"],"sources":["../../src/composables/teleport.ts"],"sourcesContent":["// Utilities\nimport { computed, warn } from 'vue'\nimport { IN_BROWSER } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport function useTeleport (target: Ref<boolean | string | Element>) {\n const teleportTarget = computed(() => {\n const _target = target.value\n\n if (_target === true || !IN_BROWSER) return undefined\n\n const targetElement =\n _target === false ? document.body\n : typeof _target === 'string' ? document.querySelector(_target)\n : _target\n\n if (targetElement == null) {\n warn(`Unable to locate target ${_target}`)\n return undefined\n }\n\n let container = targetElement.querySelector(':scope > .v-overlay-container')\n\n if (!container) {\n container = document.createElement('div')\n container.className = 'v-overlay-container'\n targetElement.appendChild(container)\n }\n\n return container\n })\n\n return { teleportTarget }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,IAAI,QAAQ,KAAK;AAAA,SAC3BC,UAAU,6BAEnB;AAGA,OAAO,SAASC,WAAW,CAAEC,MAAuC,EAAE;EACpE,MAAMC,cAAc,GAAGL,QAAQ,CAAC,MAAM;IACpC,MAAMM,OAAO,GAAGF,MAAM,CAACG,KAAK;IAE5B,IAAID,OAAO,KAAK,IAAI,IAAI,CAACJ,UAAU,EAAE,OAAOM,SAAS;IAErD,MAAMC,aAAa,GACjBH,OAAO,KAAK,KAAK,GAAGI,QAAQ,CAACC,IAAI,GAC/B,OAAOL,OAAO,KAAK,QAAQ,GAAGI,QAAQ,CAACE,aAAa,CAACN,OAAO,CAAC,GAC7DA,OAAO;IAEX,IAAIG,aAAa,IAAI,IAAI,EAAE;MACzBR,IAAI,CAAE,2BAA0BK,OAAQ,EAAC,CAAC;MAC1C,OAAOE,SAAS;IAClB;IAEA,IAAIK,SAAS,GAAGJ,aAAa,CAACG,aAAa,CAAC,+BAA+B,CAAC;IAE5E,IAAI,CAACC,SAAS,EAAE;MACdA,SAAS,GAAGH,QAAQ,CAACI,aAAa,CAAC,KAAK,CAAC;MACzCD,SAAS,CAACE,SAAS,GAAG,qBAAqB;MAC3CN,aAAa,CAACO,WAAW,CAACH,SAAS,CAAC;IACtC;IAEA,OAAOA,SAAS;EAClB,CAAC,CAAC;EAEF,OAAO;IAAER;EAAe,CAAC;AAC3B"}
|
|
@@ -94,8 +94,7 @@ function parseThemeOptions() {
|
|
|
94
94
|
};
|
|
95
95
|
const themes = {};
|
|
96
96
|
for (const [key, theme] of Object.entries(options.themes ?? {})) {
|
|
97
|
-
|
|
98
|
-
const defaultTheme = theme.dark || key === 'dark' ? (_defaultThemeOptions$ = defaultThemeOptions.themes) == null ? void 0 : _defaultThemeOptions$.dark : (_defaultThemeOptions$2 = defaultThemeOptions.themes) == null ? void 0 : _defaultThemeOptions$2.light;
|
|
97
|
+
const defaultTheme = theme.dark || key === 'dark' ? defaultThemeOptions.themes?.dark : defaultThemeOptions.themes?.light;
|
|
99
98
|
themes[key] = mergeDeep(defaultTheme, theme);
|
|
100
99
|
}
|
|
101
100
|
return mergeDeep(defaultThemeOptions, {
|
|
@@ -242,7 +241,7 @@ export function provideTheme(props) {
|
|
|
242
241
|
const theme = inject(ThemeSymbol, null);
|
|
243
242
|
if (!theme) throw new Error('Could not find Vuetify theme injection');
|
|
244
243
|
const name = computed(() => {
|
|
245
|
-
return props.theme ??
|
|
244
|
+
return props.theme ?? theme?.name.value;
|
|
246
245
|
});
|
|
247
246
|
const themeClasses = computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
|
|
248
247
|
const newTheme = {
|