vuetify 3.2.2 → 3.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/json/attributes.json +549 -253
- package/dist/json/importMap.json +20 -20
- package/dist/json/tags.json +77 -2
- package/dist/json/web-types.json +1292 -566
- package/dist/vuetify-labs.css +113 -110
- package/dist/vuetify-labs.d.ts +2593 -11751
- package/dist/vuetify-labs.esm.js +2352 -2248
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +2352 -2248
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +38 -35
- package/dist/vuetify.d.ts +1264 -11210
- package/dist/vuetify.esm.js +1818 -1702
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +1818 -1702
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +652 -652
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.ts +1 -3
- package/lib/blueprints/md1.d.ts +1 -3
- package/lib/blueprints/md2.d.ts +1 -3
- package/lib/blueprints/md3.d.ts +1 -3
- package/lib/components/VAlert/VAlert.mjs +48 -48
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/index.d.ts +2 -2
- package/lib/components/VApp/VApp.mjs +9 -8
- package/lib/components/VApp/VApp.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBar.mjs +23 -22
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarNavIcon.mjs +9 -7
- package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs +1 -2
- package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.ts +4 -4
- package/lib/components/VAutocomplete/VAutocomplete.css +0 -4
- package/lib/components/VAutocomplete/VAutocomplete.mjs +33 -38
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +0 -5
- package/lib/components/VAutocomplete/index.d.ts +76 -1183
- package/lib/components/VBadge/VBadge.mjs +33 -32
- package/lib/components/VBadge/VBadge.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.mjs +21 -20
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/VBannerActions.mjs +7 -6
- package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
- package/lib/components/VBanner/index.d.ts +2 -2
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +35 -34
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +24 -23
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +6 -5
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +15 -14
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.ts +1 -0
- package/lib/components/VBtnToggle/VBtnToggle.mjs +6 -5
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VCard/VCard.mjs +38 -37
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCardItem.mjs +12 -11
- package/lib/components/VCard/VCardItem.mjs.map +1 -1
- package/lib/components/VCard/index.d.ts +4 -4
- package/lib/components/VCarousel/VCarousel.mjs +28 -27
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/VCarouselItem.mjs +18 -16
- package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
- package/lib/components/VCarousel/index.d.ts +170 -20
- package/lib/components/VCheckbox/VCheckbox.mjs +6 -5
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.ts +24 -12
- package/lib/components/VChip/VChip.css +7 -0
- package/lib/components/VChip/VChip.mjs +60 -57
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/VChip.sass +9 -0
- package/lib/components/VChip/index.d.ts +8 -8
- package/lib/components/VChipGroup/VChipGroup.mjs +19 -18
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.mjs +44 -39
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +26 -25
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs +17 -16
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +10 -9
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs +12 -11
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VColorPicker/index.d.ts +4 -4
- package/lib/components/VColorPicker/util/index.mjs +2 -2
- package/lib/components/VColorPicker/util/index.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +37 -41
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +76 -1180
- package/lib/components/VCounter/VCounter.mjs +16 -15
- package/lib/components/VCounter/VCounter.mjs.map +1 -1
- package/lib/components/VCounter/index.d.ts +25 -1774
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +9 -8
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.mjs +18 -17
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/index.d.ts +130 -1120
- package/lib/components/VDivider/VDivider.mjs +11 -10
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +15 -15
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +6 -5
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +3 -5
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs +15 -14
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.ts +15 -15
- package/lib/components/VField/VField.mjs +6 -2
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VFieldLabel.mjs +6 -5
- package/lib/components/VField/VFieldLabel.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.mjs +35 -34
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.ts +3 -3
- package/lib/components/VFooter/VFooter.mjs +21 -20
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VForm/VForm.mjs +6 -5
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VForm/index.d.ts +6 -6
- package/lib/components/VGrid/VCol.mjs +26 -25
- package/lib/components/VGrid/VCol.mjs.map +1 -1
- package/lib/components/VGrid/VContainer.mjs +16 -11
- package/lib/components/VGrid/VContainer.mjs.map +1 -1
- package/lib/components/VGrid/VRow.mjs +26 -25
- package/lib/components/VGrid/VRow.mjs.map +1 -1
- package/lib/components/VHover/VHover.mjs +10 -9
- package/lib/components/VHover/VHover.mjs.map +1 -1
- package/lib/components/VImg/VImg.mjs +35 -34
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/index.d.ts +12 -12
- package/lib/components/VItemGroup/VItemGroup.mjs +10 -9
- package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
- package/lib/components/VLabel/VLabel.mjs +8 -7
- package/lib/components/VLabel/VLabel.mjs.map +1 -1
- package/lib/components/VLayout/VLayout.mjs +6 -5
- package/lib/components/VLayout/VLayout.mjs.map +1 -1
- package/lib/components/VLayout/VLayoutItem.mjs +15 -14
- package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
- package/lib/components/VLazy/VLazy.mjs +21 -20
- package/lib/components/VLazy/VLazy.mjs.map +1 -1
- package/lib/components/VList/VList.mjs +35 -34
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListChildren.mjs +5 -4
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +2 -4
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +42 -41
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItemAction.mjs +8 -7
- package/lib/components/VList/VListItemAction.mjs.map +1 -1
- package/lib/components/VList/VListItemMedia.mjs +8 -7
- package/lib/components/VList/VListItemMedia.mjs.map +1 -1
- package/lib/components/VList/VListSubheader.mjs +10 -9
- package/lib/components/VList/VListSubheader.mjs.map +1 -1
- package/lib/components/VList/index.d.ts +38 -38
- package/lib/components/VList/list.mjs +4 -4
- package/lib/components/VList/list.mjs.map +1 -1
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs +12 -11
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
- package/lib/components/VMain/VMain.mjs +9 -8
- package/lib/components/VMain/VMain.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.mjs +21 -20
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.ts +43 -1033
- package/lib/components/VMessages/VMessages.mjs +18 -17
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VMessages/index.d.ts +25 -1774
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +50 -49
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/index.d.ts +3 -3
- package/lib/components/VNavigationDrawer/sticky.mjs +14 -7
- package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/touch.mjs +4 -4
- package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
- package/lib/components/VOverlay/locationStrategies.mjs +5 -3
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +84 -83
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/index.d.ts +8 -8
- package/lib/components/VParallax/VParallax.mjs +9 -8
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.mjs +25 -24
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs +44 -42
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/index.d.ts +8 -8
- package/lib/components/VRadio/VRadio.mjs +8 -7
- package/lib/components/VRadio/VRadio.mjs.map +1 -1
- package/lib/components/VRadio/index.d.ts +18 -12
- package/lib/components/VRadioGroup/VRadioGroup.mjs +22 -21
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.d.ts +16 -10
- package/lib/components/VRangeSlider/VRangeSlider.mjs +18 -13
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRating/VRating.mjs +49 -45
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/index.d.ts +8 -8
- package/lib/components/VResponsive/VResponsive.mjs +8 -7
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +22 -21
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +73 -2515
- package/lib/components/VSelectionControl/VSelectionControl.mjs +3 -3
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.ts +45 -39
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +10 -10
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/index.d.ts +28 -28
- package/lib/components/VSheet/VSheet.mjs +1 -3
- package/lib/components/VSheet/VSheet.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.mjs +7 -7
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs +1 -3
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.ts +3 -3
- package/lib/components/VSlider/VSlider.mjs +18 -13
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.mjs +26 -25
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.mjs +13 -12
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/slider.mjs +3 -3
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.mjs +20 -19
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.mjs +13 -12
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/index.d.ts +18 -12
- package/lib/components/VSystemBar/VSystemBar.mjs +15 -14
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VTable/VTable.mjs +12 -11
- package/lib/components/VTable/VTable.mjs.map +1 -1
- package/lib/components/VTabs/VTab.mjs +19 -19
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.mjs +28 -27
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/index.d.ts +12 -12
- package/lib/components/VTextField/index.d.ts +3 -3
- package/lib/components/VTextarea/VTextarea.mjs +31 -27
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/index.d.ts +3 -3
- package/lib/components/VThemeProvider/VThemeProvider.mjs +8 -7
- package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.mjs +46 -41
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineDivider.mjs +14 -13
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs +23 -22
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.mjs +8 -4
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbarItems.mjs +8 -7
- package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
- package/lib/components/VToolbar/index.d.ts +11 -11
- package/lib/components/VTooltip/VTooltip.mjs +20 -19
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VValidation/VValidation.mjs +1 -3
- package/lib/components/VValidation/VValidation.mjs.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs +14 -13
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs +6 -5
- package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
- package/lib/components/VWindow/VWindow.mjs +3 -3
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindowItem.mjs +18 -17
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/VWindow/index.d.ts +9 -9
- package/lib/components/index.d.ts +1328 -11279
- package/lib/components/transitions/createTransition.mjs +16 -15
- package/lib/components/transitions/createTransition.mjs.map +1 -1
- package/lib/components/transitions/dialog-transition.mjs +5 -4
- package/lib/components/transitions/dialog-transition.mjs.map +1 -1
- package/lib/components/transitions/index.d.ts +143 -143
- package/lib/composables/display.mjs +3 -3
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/form.mjs +4 -4
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/forwardRefs.mjs.map +1 -1
- package/lib/composables/hydration.mjs +6 -6
- package/lib/composables/hydration.mjs.map +1 -1
- package/lib/composables/intersectionObserver.mjs +2 -2
- package/lib/composables/intersectionObserver.mjs.map +1 -1
- package/lib/composables/layout.mjs +3 -3
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/composables/lazy.mjs +2 -2
- package/lib/composables/lazy.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs +5 -4
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/scroll.mjs +6 -6
- package/lib/composables/scroll.mjs.map +1 -1
- package/lib/composables/ssrBoot.mjs +2 -2
- package/lib/composables/ssrBoot.mjs.map +1 -1
- package/lib/composables/stack.mjs +5 -4
- package/lib/composables/stack.mjs.map +1 -1
- package/lib/composables/theme.mjs +3 -3
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/transition.mjs +5 -2
- package/lib/composables/transition.mjs.map +1 -1
- package/lib/composables/validation.mjs +3 -3
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/directives/click-outside/index.mjs +1 -1
- package/lib/directives/click-outside/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.ts +15 -10
- package/lib/labs/VDataTable/VDataTable.mjs +54 -59
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.mjs +64 -63
- package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs +8 -7
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableHeaders.mjs +16 -15
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRow.mjs +7 -6
- package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +20 -19
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +54 -64
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +70 -77
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/virtual.mjs +3 -3
- package/lib/labs/VDataTable/composables/virtual.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.ts +991 -206
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +54 -48
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
- package/lib/labs/VInfiniteScroll/index.d.ts +16 -1
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +18 -17
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
- package/lib/labs/VSkeletonLoader/index.d.ts +9 -9
- package/lib/labs/components.d.ts +1011 -211
- package/lib/labs/date/date.mjs +7 -7
- package/lib/labs/date/date.mjs.map +1 -1
- package/lib/labs/date/index.d.ts +1 -3
- package/lib/locale/adapters/vuetify.mjs +8 -5
- package/lib/locale/adapters/vuetify.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Utilities
|
|
2
|
-
import { inject, reactive,
|
|
2
|
+
import { inject, reactive, shallowRef, toRefs, watchEffect } from 'vue';
|
|
3
3
|
import { mergeDeep } from "../util/index.mjs"; // Globals
|
|
4
4
|
import { IN_BROWSER, SUPPORTS_TOUCH } from "../util/globals.mjs"; // Types
|
|
5
5
|
export const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl']; // no xs
|
|
@@ -63,10 +63,10 @@ export function createDisplay(options, ssr) {
|
|
|
63
63
|
thresholds,
|
|
64
64
|
mobileBreakpoint
|
|
65
65
|
} = parseDisplayOptions(options);
|
|
66
|
-
const height =
|
|
66
|
+
const height = shallowRef(getClientHeight(ssr));
|
|
67
67
|
const platform = shallowRef(getPlatform(ssr));
|
|
68
68
|
const state = reactive({});
|
|
69
|
-
const width =
|
|
69
|
+
const width = shallowRef(getClientWidth(ssr));
|
|
70
70
|
function updateSize() {
|
|
71
71
|
height.value = getClientHeight();
|
|
72
72
|
width.value = getClientWidth();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display.mjs","names":["inject","reactive","ref","shallowRef","toRefs","watchEffect","mergeDeep","IN_BROWSER","SUPPORTS_TOUCH","breakpoints","DisplaySymbol","Symbol","for","defaultDisplayOptions","mobileBreakpoint","thresholds","xs","sm","md","lg","xl","xxl","parseDisplayOptions","options","arguments","length","undefined","getClientWidth","isHydrate","window","innerWidth","getClientHeight","innerHeight","getPlatform","userAgent","navigator","match","regexp","Boolean","android","ios","cordova","electron","chrome","edge","firefox","opera","win","mac","linux","touch","ssr","createDisplay","height","platform","state","width","updateSize","value","update","name","breakpointValue","mobile","smAndUp","mdAndUp","lgAndUp","xlAndUp","smAndDown","mdAndDown","lgAndDown","xlAndDown","addEventListener","passive","useDisplay","display","Error"],"sources":["../../src/composables/display.ts"],"sourcesContent":["// Utilities\nimport { inject, reactive, ref, shallowRef, toRefs, watchEffect } from 'vue'\nimport { mergeDeep } from '@/util'\n\n// Globals\nimport { IN_BROWSER, SUPPORTS_TOUCH } from '@/util/globals'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\nexport const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl'] as const // no xs\n\nexport type Breakpoint = typeof breakpoints[number]\n\nexport type DisplayBreakpoint = 'xs' | Breakpoint\n\nexport type DisplayThresholds = {\n [key in DisplayBreakpoint]: number\n}\n\nexport interface DisplayOptions {\n mobileBreakpoint?: number | DisplayBreakpoint\n thresholds?: Partial<DisplayThresholds>\n}\n\nexport interface InternalDisplayOptions {\n mobileBreakpoint: number | DisplayBreakpoint\n thresholds: DisplayThresholds\n}\n\nexport interface DisplayPlatform {\n android: boolean\n ios: boolean\n cordova: boolean\n electron: boolean\n chrome: boolean\n edge: boolean\n firefox: boolean\n opera: boolean\n win: boolean\n mac: boolean\n linux: boolean\n touch: boolean\n ssr: boolean\n}\n\nexport interface DisplayInstance {\n xs: Ref<boolean>\n sm: Ref<boolean>\n md: Ref<boolean>\n lg: Ref<boolean>\n xl: Ref<boolean>\n xxl: Ref<boolean>\n smAndUp: Ref<boolean>\n mdAndUp: Ref<boolean>\n lgAndUp: Ref<boolean>\n xlAndUp: Ref<boolean>\n smAndDown: Ref<boolean>\n mdAndDown: Ref<boolean>\n lgAndDown: Ref<boolean>\n xlAndDown: Ref<boolean>\n name: Ref<DisplayBreakpoint>\n height: Ref<number>\n width: Ref<number>\n mobile: Ref<boolean>\n mobileBreakpoint: Ref<number | DisplayBreakpoint>\n platform: Ref<DisplayPlatform>\n thresholds: Ref<DisplayThresholds>\n\n /** @internal */\n ssr: boolean\n\n update (): void\n}\n\nexport const DisplaySymbol: InjectionKey<DisplayInstance> = Symbol.for('vuetify:display')\n\nconst defaultDisplayOptions: DisplayOptions = {\n mobileBreakpoint: 'lg',\n thresholds: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560,\n },\n}\n\nconst parseDisplayOptions = (options: DisplayOptions = defaultDisplayOptions) => {\n return mergeDeep(defaultDisplayOptions, options) as InternalDisplayOptions\n}\n\nfunction getClientWidth (isHydrate?: boolean) {\n return IN_BROWSER && !isHydrate\n ? window.innerWidth\n : 0\n}\n\nfunction getClientHeight (isHydrate?: boolean) {\n return IN_BROWSER && !isHydrate\n ? window.innerHeight\n : 0\n}\n\nfunction getPlatform (isHydrate?: boolean): DisplayPlatform {\n const userAgent = IN_BROWSER && !isHydrate\n ? window.navigator.userAgent\n : 'ssr'\n\n function match (regexp: RegExp) {\n return Boolean(userAgent.match(regexp))\n }\n\n const android = match(/android/i)\n const ios = match(/iphone|ipad|ipod/i)\n const cordova = match(/cordova/i)\n const electron = match(/electron/i)\n const chrome = match(/chrome/i)\n const edge = match(/edge/i)\n const firefox = match(/firefox/i)\n const opera = match(/opera/i)\n const win = match(/win/i)\n const mac = match(/mac/i)\n const linux = match(/linux/i)\n\n return {\n android,\n ios,\n cordova,\n electron,\n chrome,\n edge,\n firefox,\n opera,\n win,\n mac,\n linux,\n touch: SUPPORTS_TOUCH,\n ssr: userAgent === 'ssr',\n }\n}\n\nexport function createDisplay (options?: DisplayOptions, ssr?: boolean): DisplayInstance {\n const { thresholds, mobileBreakpoint } = parseDisplayOptions(options)\n\n const height = ref(getClientHeight(ssr))\n const platform = shallowRef(getPlatform(ssr))\n const state = reactive({} as DisplayInstance)\n const width = ref(getClientWidth(ssr))\n\n function updateSize () {\n height.value = getClientHeight()\n width.value = getClientWidth()\n }\n function update () {\n updateSize()\n platform.value = getPlatform()\n }\n\n // eslint-disable-next-line max-statements\n watchEffect(() => {\n const xs = width.value < thresholds.sm\n const sm = width.value < thresholds.md && !xs\n const md = width.value < thresholds.lg && !(sm || xs)\n const lg = width.value < thresholds.xl && !(md || sm || xs)\n const xl = width.value < thresholds.xxl && !(lg || md || sm || xs)\n const xxl = width.value >= thresholds.xxl\n const name =\n xs ? 'xs'\n : sm ? 'sm'\n : md ? 'md'\n : lg ? 'lg'\n : xl ? 'xl'\n : 'xxl'\n const breakpointValue = typeof mobileBreakpoint === 'number' ? mobileBreakpoint : thresholds[mobileBreakpoint]\n const mobile = width.value < breakpointValue\n\n state.xs = xs\n state.sm = sm\n state.md = md\n state.lg = lg\n state.xl = xl\n state.xxl = xxl\n state.smAndUp = !xs\n state.mdAndUp = !(xs || sm)\n state.lgAndUp = !(xs || sm || md)\n state.xlAndUp = !(xs || sm || md || lg)\n state.smAndDown = !(md || lg || xl || xxl)\n state.mdAndDown = !(lg || xl || xxl)\n state.lgAndDown = !(xl || xxl)\n state.xlAndDown = !xxl\n state.name = name\n state.height = height.value\n state.width = width.value\n state.mobile = mobile\n state.mobileBreakpoint = mobileBreakpoint\n state.platform = platform.value\n state.thresholds = thresholds\n })\n\n if (IN_BROWSER) {\n window.addEventListener('resize', updateSize, { passive: true })\n }\n\n return { ...toRefs(state), update, ssr: !!ssr }\n}\n\nexport function useDisplay () {\n const display = inject(DisplaySymbol)\n\n if (!display) throw new Error('Could not find Vuetify display injection')\n\n return display\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"display.mjs","names":["inject","reactive","shallowRef","toRefs","watchEffect","mergeDeep","IN_BROWSER","SUPPORTS_TOUCH","breakpoints","DisplaySymbol","Symbol","for","defaultDisplayOptions","mobileBreakpoint","thresholds","xs","sm","md","lg","xl","xxl","parseDisplayOptions","options","arguments","length","undefined","getClientWidth","isHydrate","window","innerWidth","getClientHeight","innerHeight","getPlatform","userAgent","navigator","match","regexp","Boolean","android","ios","cordova","electron","chrome","edge","firefox","opera","win","mac","linux","touch","ssr","createDisplay","height","platform","state","width","updateSize","value","update","name","breakpointValue","mobile","smAndUp","mdAndUp","lgAndUp","xlAndUp","smAndDown","mdAndDown","lgAndDown","xlAndDown","addEventListener","passive","useDisplay","display","Error"],"sources":["../../src/composables/display.ts"],"sourcesContent":["// Utilities\nimport { inject, reactive, shallowRef, toRefs, watchEffect } from 'vue'\nimport { mergeDeep } from '@/util'\n\n// Globals\nimport { IN_BROWSER, SUPPORTS_TOUCH } from '@/util/globals'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\nexport const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl'] as const // no xs\n\nexport type Breakpoint = typeof breakpoints[number]\n\nexport type DisplayBreakpoint = 'xs' | Breakpoint\n\nexport type DisplayThresholds = {\n [key in DisplayBreakpoint]: number\n}\n\nexport interface DisplayOptions {\n mobileBreakpoint?: number | DisplayBreakpoint\n thresholds?: Partial<DisplayThresholds>\n}\n\nexport interface InternalDisplayOptions {\n mobileBreakpoint: number | DisplayBreakpoint\n thresholds: DisplayThresholds\n}\n\nexport interface DisplayPlatform {\n android: boolean\n ios: boolean\n cordova: boolean\n electron: boolean\n chrome: boolean\n edge: boolean\n firefox: boolean\n opera: boolean\n win: boolean\n mac: boolean\n linux: boolean\n touch: boolean\n ssr: boolean\n}\n\nexport interface DisplayInstance {\n xs: Ref<boolean>\n sm: Ref<boolean>\n md: Ref<boolean>\n lg: Ref<boolean>\n xl: Ref<boolean>\n xxl: Ref<boolean>\n smAndUp: Ref<boolean>\n mdAndUp: Ref<boolean>\n lgAndUp: Ref<boolean>\n xlAndUp: Ref<boolean>\n smAndDown: Ref<boolean>\n mdAndDown: Ref<boolean>\n lgAndDown: Ref<boolean>\n xlAndDown: Ref<boolean>\n name: Ref<DisplayBreakpoint>\n height: Ref<number>\n width: Ref<number>\n mobile: Ref<boolean>\n mobileBreakpoint: Ref<number | DisplayBreakpoint>\n platform: Ref<DisplayPlatform>\n thresholds: Ref<DisplayThresholds>\n\n /** @internal */\n ssr: boolean\n\n update (): void\n}\n\nexport const DisplaySymbol: InjectionKey<DisplayInstance> = Symbol.for('vuetify:display')\n\nconst defaultDisplayOptions: DisplayOptions = {\n mobileBreakpoint: 'lg',\n thresholds: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560,\n },\n}\n\nconst parseDisplayOptions = (options: DisplayOptions = defaultDisplayOptions) => {\n return mergeDeep(defaultDisplayOptions, options) as InternalDisplayOptions\n}\n\nfunction getClientWidth (isHydrate?: boolean) {\n return IN_BROWSER && !isHydrate\n ? window.innerWidth\n : 0\n}\n\nfunction getClientHeight (isHydrate?: boolean) {\n return IN_BROWSER && !isHydrate\n ? window.innerHeight\n : 0\n}\n\nfunction getPlatform (isHydrate?: boolean): DisplayPlatform {\n const userAgent = IN_BROWSER && !isHydrate\n ? window.navigator.userAgent\n : 'ssr'\n\n function match (regexp: RegExp) {\n return Boolean(userAgent.match(regexp))\n }\n\n const android = match(/android/i)\n const ios = match(/iphone|ipad|ipod/i)\n const cordova = match(/cordova/i)\n const electron = match(/electron/i)\n const chrome = match(/chrome/i)\n const edge = match(/edge/i)\n const firefox = match(/firefox/i)\n const opera = match(/opera/i)\n const win = match(/win/i)\n const mac = match(/mac/i)\n const linux = match(/linux/i)\n\n return {\n android,\n ios,\n cordova,\n electron,\n chrome,\n edge,\n firefox,\n opera,\n win,\n mac,\n linux,\n touch: SUPPORTS_TOUCH,\n ssr: userAgent === 'ssr',\n }\n}\n\nexport function createDisplay (options?: DisplayOptions, ssr?: boolean): DisplayInstance {\n const { thresholds, mobileBreakpoint } = parseDisplayOptions(options)\n\n const height = shallowRef(getClientHeight(ssr))\n const platform = shallowRef(getPlatform(ssr))\n const state = reactive({} as DisplayInstance)\n const width = shallowRef(getClientWidth(ssr))\n\n function updateSize () {\n height.value = getClientHeight()\n width.value = getClientWidth()\n }\n function update () {\n updateSize()\n platform.value = getPlatform()\n }\n\n // eslint-disable-next-line max-statements\n watchEffect(() => {\n const xs = width.value < thresholds.sm\n const sm = width.value < thresholds.md && !xs\n const md = width.value < thresholds.lg && !(sm || xs)\n const lg = width.value < thresholds.xl && !(md || sm || xs)\n const xl = width.value < thresholds.xxl && !(lg || md || sm || xs)\n const xxl = width.value >= thresholds.xxl\n const name =\n xs ? 'xs'\n : sm ? 'sm'\n : md ? 'md'\n : lg ? 'lg'\n : xl ? 'xl'\n : 'xxl'\n const breakpointValue = typeof mobileBreakpoint === 'number' ? mobileBreakpoint : thresholds[mobileBreakpoint]\n const mobile = width.value < breakpointValue\n\n state.xs = xs\n state.sm = sm\n state.md = md\n state.lg = lg\n state.xl = xl\n state.xxl = xxl\n state.smAndUp = !xs\n state.mdAndUp = !(xs || sm)\n state.lgAndUp = !(xs || sm || md)\n state.xlAndUp = !(xs || sm || md || lg)\n state.smAndDown = !(md || lg || xl || xxl)\n state.mdAndDown = !(lg || xl || xxl)\n state.lgAndDown = !(xl || xxl)\n state.xlAndDown = !xxl\n state.name = name\n state.height = height.value\n state.width = width.value\n state.mobile = mobile\n state.mobileBreakpoint = mobileBreakpoint\n state.platform = platform.value\n state.thresholds = thresholds\n })\n\n if (IN_BROWSER) {\n window.addEventListener('resize', updateSize, { passive: true })\n }\n\n return { ...toRefs(state), update, ssr: !!ssr }\n}\n\nexport function useDisplay () {\n const display = inject(DisplaySymbol)\n\n if (!display) throw new Error('Could not find Vuetify display injection')\n\n return display\n}\n"],"mappings":"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"}
|
package/lib/composables/form.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
//
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
// Composables
|
|
2
|
+
import { useProxiedModel } from "./proxiedModel.mjs"; // Utilities
|
|
3
|
+
import { computed, inject, provide, ref, shallowRef, toRef, watch } from 'vue';
|
|
4
4
|
import { consoleWarn, propsFactory } from "../util/index.mjs"; // Types
|
|
5
5
|
export const FormKey = Symbol.for('vuetify:form');
|
|
6
6
|
export const makeFormProps = propsFactory({
|
|
@@ -20,7 +20,7 @@ export function createForm(props) {
|
|
|
20
20
|
const model = useProxiedModel(props, 'modelValue');
|
|
21
21
|
const isDisabled = computed(() => props.disabled);
|
|
22
22
|
const isReadonly = computed(() => props.readonly);
|
|
23
|
-
const isValidating =
|
|
23
|
+
const isValidating = shallowRef(false);
|
|
24
24
|
const items = ref([]);
|
|
25
25
|
const errors = ref([]);
|
|
26
26
|
async function validate() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.mjs","names":["computed","inject","provide","ref","
|
|
1
|
+
{"version":3,"file":"form.mjs","names":["useProxiedModel","computed","inject","provide","ref","shallowRef","toRef","watch","consoleWarn","propsFactory","FormKey","Symbol","for","makeFormProps","disabled","Boolean","fastFail","readonly","modelValue","type","default","validateOn","String","createForm","props","model","isDisabled","isReadonly","isValidating","items","errors","validate","results","valid","value","item","itemErrorMessages","length","push","id","errorMessages","reset","forEach","resetValidation","invalid","isValid","deep","register","_ref","some","unregister","filter","update","found","find","useForm"],"sources":["../../src/composables/form.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, ref, shallowRef, toRef, watch } from 'vue'\nimport { consoleWarn, propsFactory } from '@/util'\n\n// Types\nimport type { ComputedRef, InjectionKey, PropType, Ref } from 'vue'\nimport type { ValidationProps } from './validation'\n\nexport interface FormProvide {\n register: (item: {\n id: number | string\n validate: () => Promise<string[]>\n reset: () => void\n resetValidation: () => void\n }) => void\n unregister: (id: number | string) => void\n update: (id: number | string, isValid: boolean | null, errorMessages: string[]) => void\n items: Ref<FormField[]>\n isDisabled: ComputedRef<boolean>\n isReadonly: ComputedRef<boolean>\n isValidating: Ref<boolean>\n validateOn: Ref<FormProps['validateOn']>\n}\n\nexport interface FormField {\n id: number | string\n validate: () => Promise<string[]>\n reset: () => void\n resetValidation: () => void\n isValid: boolean | null\n errorMessages: string[]\n}\n\nexport interface FieldValidationResult {\n id: number | string\n errorMessages: string[]\n}\n\nexport interface FormValidationResult {\n valid: boolean\n errors: FieldValidationResult[]\n}\n\nexport interface SubmitEventPromise extends SubmitEvent, Promise<FormValidationResult> {}\n\nexport const FormKey: InjectionKey<FormProvide> = Symbol.for('vuetify:form')\n\nexport interface FormProps {\n disabled: boolean\n fastFail: boolean\n readonly: boolean\n modelValue: boolean | null\n 'onUpdate:modelValue': ((val: boolean | null) => void) | undefined\n validateOn: ValidationProps['validateOn']\n}\n\nexport const makeFormProps = propsFactory({\n disabled: Boolean,\n fastFail: Boolean,\n readonly: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n validateOn: {\n type: String as PropType<FormProps['validateOn']>,\n default: 'input',\n },\n}, 'form')\n\nexport function createForm (props: FormProps) {\n const model = useProxiedModel(props, 'modelValue')\n\n const isDisabled = computed(() => props.disabled)\n const isReadonly = computed(() => props.readonly)\n const isValidating = shallowRef(false)\n const items = ref<FormField[]>([])\n const errors = ref<FieldValidationResult[]>([])\n\n async function validate () {\n const results = []\n let valid = true\n\n errors.value = []\n isValidating.value = true\n\n for (const item of items.value) {\n const itemErrorMessages = await item.validate()\n\n if (itemErrorMessages.length > 0) {\n valid = false\n\n results.push({\n id: item.id,\n errorMessages: itemErrorMessages,\n })\n }\n\n if (!valid && props.fastFail) break\n }\n\n errors.value = results\n isValidating.value = false\n\n return { valid, errors: errors.value }\n }\n\n function reset () {\n items.value.forEach(item => item.reset())\n model.value = null\n }\n\n function resetValidation () {\n items.value.forEach(item => item.resetValidation())\n errors.value = []\n model.value = null\n }\n\n watch(items, () => {\n let valid = 0\n let invalid = 0\n const results = []\n\n for (const item of items.value) {\n if (item.isValid === false) {\n invalid++\n results.push({\n id: item.id,\n errorMessages: item.errorMessages,\n })\n } else if (item.isValid === true) valid++\n }\n\n errors.value = results\n model.value =\n invalid > 0 ? false\n : valid === items.value.length ? true\n : null\n }, { deep: true })\n\n provide(FormKey, {\n register: ({ id, validate, reset, resetValidation }) => {\n if (items.value.some(item => item.id === id)) {\n consoleWarn(`Duplicate input name \"${id}\"`)\n }\n\n items.value.push({\n id,\n validate,\n reset,\n resetValidation,\n isValid: null,\n errorMessages: [],\n })\n },\n unregister: id => {\n items.value = items.value.filter(item => {\n return item.id !== id\n })\n },\n update: (id, isValid, errorMessages) => {\n const found = items.value.find(item => item.id === id)\n\n if (!found) return\n\n found.isValid = isValid\n found.errorMessages = errorMessages\n },\n isDisabled,\n isReadonly,\n isValidating,\n items,\n validateOn: toRef(props, 'validateOn'),\n })\n\n return {\n errors,\n isDisabled,\n isReadonly,\n isValidating,\n items,\n validate,\n reset,\n resetValidation,\n }\n}\n\nexport function useForm () {\n return inject(FormKey, null)\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forwardRefs.mjs","names":["Refs","Symbol","getDescriptor","obj","key","currentObj","descriptor","Reflect","getOwnPropertyDescriptor","Object","getPrototypeOf","undefined","forwardRefs","target","_len","arguments","length","refs","Array","_key","Proxy","get","has","startsWith","ref","value","val","bind","_","setupState","childRefs","queue","slice","shift","push"],"sources":["../../src/composables/forwardRefs.ts"],"sourcesContent":["import type { ComponentPublicInstance, Ref, UnwrapRef } from 'vue'\nimport type { UnionToIntersection } from '@/util'\n\nconst Refs = Symbol('Forwarded refs')\n\n/** Omit properties starting with P */\ntype OmitPrefix<T, P extends string> = [Extract<keyof T, `${P}${any}`>] extends [never] ? T : Omit<T, `${P}${any}`>\n\ntype OmitProps<T> = T extends { $props: any } ? Omit<T, keyof T['$props']> :
|
|
1
|
+
{"version":3,"file":"forwardRefs.mjs","names":["Refs","Symbol","getDescriptor","obj","key","currentObj","descriptor","Reflect","getOwnPropertyDescriptor","Object","getPrototypeOf","undefined","forwardRefs","target","_len","arguments","length","refs","Array","_key","Proxy","get","has","startsWith","ref","value","val","bind","_","setupState","childRefs","queue","slice","shift","push"],"sources":["../../src/composables/forwardRefs.ts"],"sourcesContent":["import type { ComponentPublicInstance, Ref, UnwrapRef } from 'vue'\nimport type { UnionToIntersection } from '@/util'\n\nconst Refs = Symbol('Forwarded refs')\n\n/** Omit properties starting with P */\ntype OmitPrefix<T, P extends string> = [Extract<keyof T, `${P}${any}`>] extends [never] ? T : Omit<T, `${P}${any}`>\n\ntype OmitProps<T> = T extends { $props: any } ? Omit<T, keyof T['$props']> : T\n\nfunction getDescriptor (obj: any, key: PropertyKey) {\n let currentObj = obj\n while (currentObj) {\n const descriptor = Reflect.getOwnPropertyDescriptor(currentObj, key)\n if (descriptor) return descriptor\n currentObj = Object.getPrototypeOf(currentObj)\n }\n return undefined\n}\n\nexport function forwardRefs<T extends {}, U extends Ref<HTMLElement | Omit<ComponentPublicInstance, '$emit'> | undefined>[]> (\n target: T,\n ...refs: U\n): T & UnionToIntersection<{ [K in keyof U]: OmitPrefix<OmitProps<NonNullable<UnwrapRef<U[K]>>>, '$'> }[number]> {\n (target as any)[Refs] = refs\n\n return new Proxy(target, {\n get (target, key) {\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key)\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('__')) return\n\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n const val = Reflect.get(ref.value, key)\n return typeof val === 'function'\n ? val.bind(ref.value)\n : val\n }\n }\n },\n has (target, key) {\n if (Reflect.has(target, key)) {\n return true\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('__')) return false\n\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return true\n }\n }\n return false\n },\n getOwnPropertyDescriptor (target, key) {\n const descriptor = Reflect.getOwnPropertyDescriptor(target, key)\n if (descriptor) return descriptor\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('__')) return\n\n // Check each ref's own properties\n for (const ref of refs) {\n if (!ref.value) continue\n const descriptor = getDescriptor(ref.value, key) ?? ('_' in ref.value ? getDescriptor(ref.value._?.setupState, key) : undefined)\n if (descriptor) return descriptor\n }\n\n // Recursive search up each ref's prototype\n for (const ref of refs) {\n const childRefs = ref.value && (ref.value as any)[Refs]\n if (!childRefs) continue\n const queue = childRefs.slice()\n while (queue.length) {\n const ref = queue.shift()\n const descriptor = getDescriptor(ref.value, key)\n if (descriptor) return descriptor\n const childRefs = ref.value && (ref.value as any)[Refs]\n if (childRefs) queue.push(...childRefs)\n }\n }\n\n return undefined\n },\n }) as any\n}\n"],"mappings":"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"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
//
|
|
2
|
-
import {
|
|
1
|
+
// Composables
|
|
2
|
+
import { useDisplay } from "./display.mjs"; // Utilities
|
|
3
3
|
import { IN_BROWSER } from "../util/index.mjs";
|
|
4
|
-
import {
|
|
4
|
+
import { onMounted, shallowRef } from 'vue';
|
|
5
5
|
export function useHydration() {
|
|
6
|
-
if (!IN_BROWSER) return
|
|
6
|
+
if (!IN_BROWSER) return shallowRef(false);
|
|
7
7
|
const {
|
|
8
8
|
ssr
|
|
9
9
|
} = useDisplay();
|
|
10
10
|
if (ssr) {
|
|
11
|
-
const isMounted =
|
|
11
|
+
const isMounted = shallowRef(false);
|
|
12
12
|
onMounted(() => {
|
|
13
13
|
isMounted.value = true;
|
|
14
14
|
});
|
|
15
15
|
return isMounted;
|
|
16
16
|
} else {
|
|
17
|
-
return
|
|
17
|
+
return shallowRef(true);
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
//# sourceMappingURL=hydration.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydration.mjs","names":["
|
|
1
|
+
{"version":3,"file":"hydration.mjs","names":["useDisplay","IN_BROWSER","onMounted","shallowRef","useHydration","ssr","isMounted","value"],"sources":["../../src/composables/hydration.ts"],"sourcesContent":["// Composables\nimport { useDisplay } from '@/composables/display'\n\n// Utilities\nimport { IN_BROWSER } from '@/util'\nimport { onMounted, shallowRef } from 'vue'\n\nexport function useHydration () {\n if (!IN_BROWSER) return shallowRef(false)\n\n const { ssr } = useDisplay()\n\n if (ssr) {\n const isMounted = shallowRef(false)\n onMounted(() => {\n isMounted.value = true\n })\n return isMounted\n } else {\n return shallowRef(true)\n }\n}\n"],"mappings":"AAAA;AAAA,SACSA,UAAU,yBAEnB;AAAA,SACSC,UAAU;AACnB,SAASC,SAAS,EAAEC,UAAU,QAAQ,KAAK;AAE3C,OAAO,SAASC,YAAYA,CAAA,EAAI;EAC9B,IAAI,CAACH,UAAU,EAAE,OAAOE,UAAU,CAAC,KAAK,CAAC;EAEzC,MAAM;IAAEE;EAAI,CAAC,GAAGL,UAAU,EAAE;EAE5B,IAAIK,GAAG,EAAE;IACP,MAAMC,SAAS,GAAGH,UAAU,CAAC,KAAK,CAAC;IACnCD,SAAS,CAAC,MAAM;MACdI,SAAS,CAACC,KAAK,GAAG,IAAI;IACxB,CAAC,CAAC;IACF,OAAOD,SAAS;EAClB,CAAC,MAAM;IACL,OAAOH,UAAU,CAAC,IAAI,CAAC;EACzB;AACF"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// Utilities
|
|
2
|
-
import { onBeforeUnmount, ref, watch } from 'vue';
|
|
2
|
+
import { onBeforeUnmount, ref, shallowRef, watch } from 'vue';
|
|
3
3
|
import { SUPPORTS_INTERSECTION } from "../util/index.mjs";
|
|
4
4
|
export function useIntersectionObserver(callback, options) {
|
|
5
5
|
const intersectionRef = ref();
|
|
6
|
-
const isIntersecting =
|
|
6
|
+
const isIntersecting = shallowRef(false);
|
|
7
7
|
if (SUPPORTS_INTERSECTION) {
|
|
8
8
|
const observer = new IntersectionObserver(entries => {
|
|
9
9
|
callback?.(entries, observer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intersectionObserver.mjs","names":["onBeforeUnmount","ref","watch","SUPPORTS_INTERSECTION","useIntersectionObserver","callback","options","intersectionRef","isIntersecting","observer","IntersectionObserver","entries","value","find","entry","disconnect","newValue","oldValue","unobserve","observe","flush"],"sources":["../../src/composables/intersectionObserver.ts"],"sourcesContent":["// Utilities\nimport { onBeforeUnmount, ref, watch } from 'vue'\nimport { SUPPORTS_INTERSECTION } from '@/util'\n\nexport function useIntersectionObserver (callback?: IntersectionObserverCallback, options?: IntersectionObserverInit) {\n const intersectionRef = ref<HTMLElement>()\n const isIntersecting =
|
|
1
|
+
{"version":3,"file":"intersectionObserver.mjs","names":["onBeforeUnmount","ref","shallowRef","watch","SUPPORTS_INTERSECTION","useIntersectionObserver","callback","options","intersectionRef","isIntersecting","observer","IntersectionObserver","entries","value","find","entry","disconnect","newValue","oldValue","unobserve","observe","flush"],"sources":["../../src/composables/intersectionObserver.ts"],"sourcesContent":["// Utilities\nimport { onBeforeUnmount, ref, shallowRef, watch } from 'vue'\nimport { SUPPORTS_INTERSECTION } from '@/util'\n\nexport function useIntersectionObserver (callback?: IntersectionObserverCallback, options?: IntersectionObserverInit) {\n const intersectionRef = ref<HTMLElement>()\n const isIntersecting = shallowRef(false)\n\n if (SUPPORTS_INTERSECTION) {\n const observer = new IntersectionObserver((entries: IntersectionObserverEntry[]) => {\n callback?.(entries, observer)\n\n isIntersecting.value = !!entries.find(entry => entry.isIntersecting)\n }, options)\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(intersectionRef, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue)\n isIntersecting.value = false\n }\n\n if (newValue) observer.observe(newValue)\n }, {\n flush: 'post',\n })\n }\n\n return { intersectionRef, isIntersecting }\n}\n"],"mappings":"AAAA;AACA,SAASA,eAAe,EAAEC,GAAG,EAAEC,UAAU,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACpDC,qBAAqB;AAE9B,OAAO,SAASC,uBAAuBA,CAAEC,QAAuC,EAAEC,OAAkC,EAAE;EACpH,MAAMC,eAAe,GAAGP,GAAG,EAAe;EAC1C,MAAMQ,cAAc,GAAGP,UAAU,CAAC,KAAK,CAAC;EAExC,IAAIE,qBAAqB,EAAE;IACzB,MAAMM,QAAQ,GAAG,IAAIC,oBAAoB,CAAEC,OAAoC,IAAK;MAClFN,QAAQ,GAAGM,OAAO,EAAEF,QAAQ,CAAC;MAE7BD,cAAc,CAACI,KAAK,GAAG,CAAC,CAACD,OAAO,CAACE,IAAI,CAACC,KAAK,IAAIA,KAAK,CAACN,cAAc,CAAC;IACtE,CAAC,EAAEF,OAAO,CAAC;IAEXP,eAAe,CAAC,MAAM;MACpBU,QAAQ,CAACM,UAAU,EAAE;IACvB,CAAC,CAAC;IAEFb,KAAK,CAACK,eAAe,EAAE,CAACS,QAAQ,EAAEC,QAAQ,KAAK;MAC7C,IAAIA,QAAQ,EAAE;QACZR,QAAQ,CAACS,SAAS,CAACD,QAAQ,CAAC;QAC5BT,cAAc,CAACI,KAAK,GAAG,KAAK;MAC9B;MAEA,IAAII,QAAQ,EAAEP,QAAQ,CAACU,OAAO,CAACH,QAAQ,CAAC;IAC1C,CAAC,EAAE;MACDI,KAAK,EAAE;IACT,CAAC,CAAC;EACJ;EAEA,OAAO;IAAEb,eAAe;IAAEC;EAAe,CAAC;AAC5C"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Composables
|
|
2
2
|
import { useResizeObserver } from "./resizeObserver.mjs"; // Utilities
|
|
3
|
-
import { computed, inject, onActivated, onBeforeUnmount, onDeactivated, onMounted, provide, reactive, ref } from 'vue';
|
|
3
|
+
import { computed, inject, onActivated, onBeforeUnmount, onDeactivated, onMounted, provide, reactive, ref, shallowRef } from 'vue';
|
|
4
4
|
import { convertToUnit, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory } from "../util/index.mjs"; // Types
|
|
5
5
|
export const VuetifyLayoutKey = Symbol.for('vuetify:layout');
|
|
6
6
|
export const VuetifyLayoutItemKey = Symbol.for('vuetify:layout-item');
|
|
@@ -41,7 +41,7 @@ export function useLayoutItem(options) {
|
|
|
41
41
|
provide(VuetifyLayoutItemKey, {
|
|
42
42
|
id
|
|
43
43
|
});
|
|
44
|
-
const isKeptAlive =
|
|
44
|
+
const isKeptAlive = shallowRef(false);
|
|
45
45
|
onDeactivated(() => isKeptAlive.value = true);
|
|
46
46
|
onActivated(() => isKeptAlive.value = false);
|
|
47
47
|
const {
|
|
@@ -172,7 +172,7 @@ export function createLayout(props) {
|
|
|
172
172
|
return items.value.find(item => item.id === id);
|
|
173
173
|
};
|
|
174
174
|
const rootVm = getCurrentInstance('createLayout');
|
|
175
|
-
const isMounted =
|
|
175
|
+
const isMounted = shallowRef(false);
|
|
176
176
|
onMounted(() => {
|
|
177
177
|
isMounted.value = true;
|
|
178
178
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.mjs","names":["useResizeObserver","computed","inject","onActivated","onBeforeUnmount","onDeactivated","onMounted","provide","reactive","ref","convertToUnit","findChildrenWithProvide","getCurrentInstance","getUid","propsFactory","VuetifyLayoutKey","Symbol","for","VuetifyLayoutItemKey","ROOT_ZINDEX","makeLayoutProps","overlaps","type","Array","default","fullHeight","Boolean","makeLayoutItemProps","name","String","order","Number","absolute","useLayout","layout","Error","getLayoutItem","mainRect","mainStyles","useLayoutItem","options","id","vm","isKeptAlive","value","layoutItemStyles","layoutItemScrimStyles","register","active","unregister","layoutRect","generateLayers","positions","layoutSizes","activeItems","previousLayer","top","left","right","bottom","layers","layer","position","get","amount","parseInt","push","createLayout","props","parentLayout","rootZIndex","registered","Map","priorities","disabledTransitions","resizeRef","contentRect","computedOverlaps","map","overlap","filter","item","includes","split","topPosition","bottomPosition","topAmount","bottomAmount","set","uniquePriorities","Set","values","p","sort","a","b","items","transitionsEnabled","from","some","length","undefined","transition","slice","_ref","index","size","find","rootVm","isMounted","_ref2","layoutSize","elementSize","disableTransitions","instances","vnode","instanceIndex","indexOf","splice","findIndex","i","zIndex","isHorizontal","isOppositeHorizontal","isOppositeVertical","styles","transform","height","width","delete","v","layoutClasses","layoutStyles","overflow","layoutRef"],"sources":["../../src/composables/layout.ts"],"sourcesContent":["// Composables\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport {\n computed,\n inject,\n onActivated,\n onBeforeUnmount,\n onDeactivated,\n onMounted,\n provide,\n reactive,\n ref,\n} from 'vue'\nimport { convertToUnit, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, CSSProperties, InjectionKey, Prop, Ref } from 'vue'\n\ntype Position = 'top' | 'left' | 'right' | 'bottom'\n\ninterface Layer {\n top: number\n bottom: number\n left: number\n right: number\n}\n\ninterface LayoutItem extends Layer {\n id: string\n size: number\n position: Position\n}\n\ninterface LayoutProvide {\n register: (\n vm: ComponentInternalInstance,\n options: {\n id: string\n order: Ref<number>\n position: Ref<Position>\n layoutSize: Ref<number | string>\n elementSize: Ref<number | string | undefined>\n active: Ref<boolean>\n disableTransitions?: Ref<boolean>\n absolute: Ref<boolean | undefined>\n }\n ) => {\n layoutItemStyles: Ref<CSSProperties>\n layoutItemScrimStyles: Ref<CSSProperties>\n zIndex: Ref<number>\n }\n unregister: (id: string) => void\n mainRect: Ref<Layer>\n mainStyles: Ref<CSSProperties>\n getLayoutItem: (id: string) => LayoutItem | undefined\n items: Ref<LayoutItem[]>\n layoutRect: Ref<DOMRectReadOnly | undefined>\n rootZIndex: Ref<number>\n}\n\nexport const VuetifyLayoutKey: InjectionKey<LayoutProvide> = Symbol.for('vuetify:layout')\nexport const VuetifyLayoutItemKey: InjectionKey<{ id: string }> = Symbol.for('vuetify:layout-item')\n\nconst ROOT_ZINDEX = 1000\n\nexport const makeLayoutProps = propsFactory({\n overlaps: {\n type: Array,\n default: () => ([]),\n } as Prop<string[]>,\n fullHeight: Boolean,\n}, 'layout')\n\n// Composables\nexport const makeLayoutItemProps = propsFactory({\n name: {\n type: String,\n },\n order: {\n type: [Number, String],\n default: 0,\n },\n absolute: Boolean,\n}, 'layout-item')\n\nexport function useLayout () {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('[Vuetify] Could not find injected layout')\n\n return {\n getLayoutItem: layout.getLayoutItem,\n mainRect: layout.mainRect,\n mainStyles: layout.mainStyles,\n }\n}\n\nexport function useLayoutItem (options: {\n id: string | undefined\n order: Ref<number>\n position: Ref<Position>\n layoutSize: Ref<number | string>\n elementSize: Ref<number | string | undefined>\n active: Ref<boolean>\n disableTransitions?: Ref<boolean>\n absolute: Ref<boolean | undefined>\n}) {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('[Vuetify] Could not find injected layout')\n\n const id = options.id ?? `layout-item-${getUid()}`\n\n const vm = getCurrentInstance('useLayoutItem')\n\n provide(VuetifyLayoutItemKey, { id })\n\n const isKeptAlive = ref(false)\n onDeactivated(() => isKeptAlive.value = true)\n onActivated(() => isKeptAlive.value = false)\n\n const {\n layoutItemStyles,\n layoutItemScrimStyles,\n } = layout.register(vm, {\n ...options,\n active: computed(() => isKeptAlive.value ? false : options.active.value),\n id,\n })\n\n onBeforeUnmount(() => layout.unregister(id))\n\n return { layoutItemStyles, layoutRect: layout.layoutRect, layoutItemScrimStyles }\n}\n\nconst generateLayers = (\n layout: string[],\n positions: Map<string, Ref<Position>>,\n layoutSizes: Map<string, Ref<number | string>>,\n activeItems: Map<string, Ref<boolean>>,\n): { id: string, layer: Layer }[] => {\n let previousLayer: Layer = { top: 0, left: 0, right: 0, bottom: 0 }\n const layers = [{ id: '', layer: { ...previousLayer } }]\n for (const id of layout) {\n const position = positions.get(id)\n const amount = layoutSizes.get(id)\n const active = activeItems.get(id)\n if (!position || !amount || !active) continue\n\n const layer = {\n ...previousLayer,\n [position.value]: parseInt(previousLayer[position.value], 10) + (active.value ? parseInt(amount.value, 10) : 0),\n }\n\n layers.push({\n id,\n layer,\n })\n\n previousLayer = layer\n }\n\n return layers\n}\n\nexport function createLayout (props: { overlaps?: string[], fullHeight?: boolean }) {\n const parentLayout = inject(VuetifyLayoutKey, null)\n const rootZIndex = computed(() => parentLayout ? parentLayout.rootZIndex.value - 100 : ROOT_ZINDEX)\n const registered = ref<string[]>([])\n const positions = reactive(new Map<string, Ref<Position>>())\n const layoutSizes = reactive(new Map<string, Ref<number | string>>())\n const priorities = reactive(new Map<string, Ref<number>>())\n const activeItems = reactive(new Map<string, Ref<boolean>>())\n const disabledTransitions = reactive(new Map<string, Ref<boolean>>())\n const { resizeRef, contentRect: layoutRect } = useResizeObserver()\n\n const computedOverlaps = computed(() => {\n const map = new Map<string, { position: Position, amount: number }>()\n const overlaps = props.overlaps ?? []\n for (const overlap of overlaps.filter(item => item.includes(':'))) {\n const [top, bottom] = overlap.split(':')\n if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue\n\n const topPosition = positions.get(top)\n const bottomPosition = positions.get(bottom)\n const topAmount = layoutSizes.get(top)\n const bottomAmount = layoutSizes.get(bottom)\n\n if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue\n\n map.set(bottom, { position: topPosition.value, amount: parseInt(topAmount.value, 10) })\n map.set(top, { position: bottomPosition.value, amount: -parseInt(bottomAmount.value, 10) })\n }\n\n return map\n })\n\n const layers = computed(() => {\n const uniquePriorities = [...new Set([...priorities.values()].map(p => p.value))].sort((a, b) => a - b)\n const layout = []\n for (const p of uniquePriorities) {\n const items = registered.value.filter(id => priorities.get(id)?.value === p)\n layout.push(...items)\n }\n return generateLayers(layout, positions, layoutSizes, activeItems)\n })\n\n const transitionsEnabled = computed(() => {\n return !Array.from(disabledTransitions.values()).some(ref => ref.value)\n })\n\n const mainRect = computed(() => {\n return layers.value[layers.value.length - 1].layer\n })\n\n const mainStyles = computed<CSSProperties>(() => {\n return {\n '--v-layout-left': convertToUnit(mainRect.value.left),\n '--v-layout-right': convertToUnit(mainRect.value.right),\n '--v-layout-top': convertToUnit(mainRect.value.top),\n '--v-layout-bottom': convertToUnit(mainRect.value.bottom),\n ...(transitionsEnabled.value ? undefined : { transition: 'none' }),\n }\n })\n\n const items = computed(() => {\n return layers.value.slice(1).map(({ id }, index) => {\n const { layer } = layers.value[index]\n const size = layoutSizes.get(id)\n const position = positions.get(id)\n\n return {\n id,\n ...layer,\n size: Number(size!.value),\n position: position!.value,\n }\n })\n })\n\n const getLayoutItem = (id: string) => {\n return items.value.find(item => item.id === id)\n }\n\n const rootVm = getCurrentInstance('createLayout')\n\n const isMounted = ref(false)\n onMounted(() => {\n isMounted.value = true\n })\n\n provide(VuetifyLayoutKey, {\n register: (\n vm: ComponentInternalInstance,\n {\n id,\n order,\n position,\n layoutSize,\n elementSize,\n active,\n disableTransitions,\n absolute,\n }\n ) => {\n priorities.set(id, order)\n positions.set(id, position)\n layoutSizes.set(id, layoutSize)\n activeItems.set(id, active)\n disableTransitions && disabledTransitions.set(id, disableTransitions)\n\n const instances = findChildrenWithProvide(VuetifyLayoutItemKey, rootVm?.vnode)\n const instanceIndex = instances.indexOf(vm)\n\n if (instanceIndex > -1) registered.value.splice(instanceIndex, 0, id)\n else registered.value.push(id)\n\n const index = computed(() => items.value.findIndex(i => i.id === id))\n const zIndex = computed(() => rootZIndex.value + (layers.value.length * 2) - (index.value * 2))\n\n const layoutItemStyles = computed<CSSProperties>(() => {\n const isHorizontal = position.value === 'left' || position.value === 'right'\n const isOppositeHorizontal = position.value === 'right'\n const isOppositeVertical = position.value === 'bottom'\n\n const styles = {\n [position.value]: 0,\n zIndex: zIndex.value,\n transform: `translate${isHorizontal ? 'X' : 'Y'}(${(active.value ? 0 : -110) * (isOppositeHorizontal || isOppositeVertical ? -1 : 1)}%)`,\n position: absolute.value || rootZIndex.value !== ROOT_ZINDEX ? 'absolute' : 'fixed',\n ...(transitionsEnabled.value ? undefined : { transition: 'none' }),\n } as const\n\n if (!isMounted.value) return styles\n\n const item = items.value[index.value]\n\n if (!item) throw new Error(`[Vuetify] Could not find layout item \"${id}\"`)\n\n const overlap = computedOverlaps.value.get(id)\n if (overlap) {\n item[overlap.position] += overlap.amount\n }\n\n return {\n ...styles,\n height:\n isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)`\n : elementSize.value ? `${elementSize.value}px`\n : undefined,\n left: isOppositeHorizontal ? undefined : `${item.left}px`,\n right: isOppositeHorizontal ? `${item.right}px` : undefined,\n top: position.value !== 'bottom' ? `${item.top}px` : undefined,\n bottom: position.value !== 'top' ? `${item.bottom}px` : undefined,\n width:\n !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)`\n : elementSize.value ? `${elementSize.value}px`\n : undefined,\n }\n })\n\n const layoutItemScrimStyles = computed<CSSProperties>(() => ({\n zIndex: zIndex.value - 1,\n }))\n\n return { layoutItemStyles, layoutItemScrimStyles, zIndex }\n },\n unregister: (id: string) => {\n priorities.delete(id)\n positions.delete(id)\n layoutSizes.delete(id)\n activeItems.delete(id)\n disabledTransitions.delete(id)\n registered.value = registered.value.filter(v => v !== id)\n },\n mainRect,\n mainStyles,\n getLayoutItem,\n items,\n layoutRect,\n rootZIndex,\n })\n\n const layoutClasses = computed(() => [\n 'v-layout',\n { 'v-layout--full-height': props.fullHeight },\n ])\n\n const layoutStyles = computed(() => ({\n zIndex: rootZIndex.value,\n position: parentLayout ? 'relative' as const : undefined,\n overflow: parentLayout ? 'hidden' : undefined,\n }))\n\n return {\n layoutClasses,\n layoutStyles,\n getLayoutItem,\n items,\n layoutRect,\n layoutRef: resizeRef,\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"layout.mjs","names":["useResizeObserver","computed","inject","onActivated","onBeforeUnmount","onDeactivated","onMounted","provide","reactive","ref","shallowRef","convertToUnit","findChildrenWithProvide","getCurrentInstance","getUid","propsFactory","VuetifyLayoutKey","Symbol","for","VuetifyLayoutItemKey","ROOT_ZINDEX","makeLayoutProps","overlaps","type","Array","default","fullHeight","Boolean","makeLayoutItemProps","name","String","order","Number","absolute","useLayout","layout","Error","getLayoutItem","mainRect","mainStyles","useLayoutItem","options","id","vm","isKeptAlive","value","layoutItemStyles","layoutItemScrimStyles","register","active","unregister","layoutRect","generateLayers","positions","layoutSizes","activeItems","previousLayer","top","left","right","bottom","layers","layer","position","get","amount","parseInt","push","createLayout","props","parentLayout","rootZIndex","registered","Map","priorities","disabledTransitions","resizeRef","contentRect","computedOverlaps","map","overlap","filter","item","includes","split","topPosition","bottomPosition","topAmount","bottomAmount","set","uniquePriorities","Set","values","p","sort","a","b","items","transitionsEnabled","from","some","length","undefined","transition","slice","_ref","index","size","find","rootVm","isMounted","_ref2","layoutSize","elementSize","disableTransitions","instances","vnode","instanceIndex","indexOf","splice","findIndex","i","zIndex","isHorizontal","isOppositeHorizontal","isOppositeVertical","styles","transform","height","width","delete","v","layoutClasses","layoutStyles","overflow","layoutRef"],"sources":["../../src/composables/layout.ts"],"sourcesContent":["// Composables\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport {\n computed,\n inject,\n onActivated,\n onBeforeUnmount,\n onDeactivated,\n onMounted,\n provide,\n reactive,\n ref,\n shallowRef,\n} from 'vue'\nimport { convertToUnit, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, CSSProperties, InjectionKey, Prop, Ref } from 'vue'\n\ntype Position = 'top' | 'left' | 'right' | 'bottom'\n\ninterface Layer {\n top: number\n bottom: number\n left: number\n right: number\n}\n\ninterface LayoutItem extends Layer {\n id: string\n size: number\n position: Position\n}\n\ninterface LayoutProvide {\n register: (\n vm: ComponentInternalInstance,\n options: {\n id: string\n order: Ref<number>\n position: Ref<Position>\n layoutSize: Ref<number | string>\n elementSize: Ref<number | string | undefined>\n active: Ref<boolean>\n disableTransitions?: Ref<boolean>\n absolute: Ref<boolean | undefined>\n }\n ) => {\n layoutItemStyles: Ref<CSSProperties>\n layoutItemScrimStyles: Ref<CSSProperties>\n zIndex: Ref<number>\n }\n unregister: (id: string) => void\n mainRect: Ref<Layer>\n mainStyles: Ref<CSSProperties>\n getLayoutItem: (id: string) => LayoutItem | undefined\n items: Ref<LayoutItem[]>\n layoutRect: Ref<DOMRectReadOnly | undefined>\n rootZIndex: Ref<number>\n}\n\nexport const VuetifyLayoutKey: InjectionKey<LayoutProvide> = Symbol.for('vuetify:layout')\nexport const VuetifyLayoutItemKey: InjectionKey<{ id: string }> = Symbol.for('vuetify:layout-item')\n\nconst ROOT_ZINDEX = 1000\n\nexport const makeLayoutProps = propsFactory({\n overlaps: {\n type: Array,\n default: () => ([]),\n } as Prop<string[]>,\n fullHeight: Boolean,\n}, 'layout')\n\n// Composables\nexport const makeLayoutItemProps = propsFactory({\n name: {\n type: String,\n },\n order: {\n type: [Number, String],\n default: 0,\n },\n absolute: Boolean,\n}, 'layout-item')\n\nexport function useLayout () {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('[Vuetify] Could not find injected layout')\n\n return {\n getLayoutItem: layout.getLayoutItem,\n mainRect: layout.mainRect,\n mainStyles: layout.mainStyles,\n }\n}\n\nexport function useLayoutItem (options: {\n id: string | undefined\n order: Ref<number>\n position: Ref<Position>\n layoutSize: Ref<number | string>\n elementSize: Ref<number | string | undefined>\n active: Ref<boolean>\n disableTransitions?: Ref<boolean>\n absolute: Ref<boolean | undefined>\n}) {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('[Vuetify] Could not find injected layout')\n\n const id = options.id ?? `layout-item-${getUid()}`\n\n const vm = getCurrentInstance('useLayoutItem')\n\n provide(VuetifyLayoutItemKey, { id })\n\n const isKeptAlive = shallowRef(false)\n onDeactivated(() => isKeptAlive.value = true)\n onActivated(() => isKeptAlive.value = false)\n\n const {\n layoutItemStyles,\n layoutItemScrimStyles,\n } = layout.register(vm, {\n ...options,\n active: computed(() => isKeptAlive.value ? false : options.active.value),\n id,\n })\n\n onBeforeUnmount(() => layout.unregister(id))\n\n return { layoutItemStyles, layoutRect: layout.layoutRect, layoutItemScrimStyles }\n}\n\nconst generateLayers = (\n layout: string[],\n positions: Map<string, Ref<Position>>,\n layoutSizes: Map<string, Ref<number | string>>,\n activeItems: Map<string, Ref<boolean>>,\n): { id: string, layer: Layer }[] => {\n let previousLayer: Layer = { top: 0, left: 0, right: 0, bottom: 0 }\n const layers = [{ id: '', layer: { ...previousLayer } }]\n for (const id of layout) {\n const position = positions.get(id)\n const amount = layoutSizes.get(id)\n const active = activeItems.get(id)\n if (!position || !amount || !active) continue\n\n const layer = {\n ...previousLayer,\n [position.value]: parseInt(previousLayer[position.value], 10) + (active.value ? parseInt(amount.value, 10) : 0),\n }\n\n layers.push({\n id,\n layer,\n })\n\n previousLayer = layer\n }\n\n return layers\n}\n\nexport function createLayout (props: { overlaps?: string[], fullHeight?: boolean }) {\n const parentLayout = inject(VuetifyLayoutKey, null)\n const rootZIndex = computed(() => parentLayout ? parentLayout.rootZIndex.value - 100 : ROOT_ZINDEX)\n const registered = ref<string[]>([])\n const positions = reactive(new Map<string, Ref<Position>>())\n const layoutSizes = reactive(new Map<string, Ref<number | string>>())\n const priorities = reactive(new Map<string, Ref<number>>())\n const activeItems = reactive(new Map<string, Ref<boolean>>())\n const disabledTransitions = reactive(new Map<string, Ref<boolean>>())\n const { resizeRef, contentRect: layoutRect } = useResizeObserver()\n\n const computedOverlaps = computed(() => {\n const map = new Map<string, { position: Position, amount: number }>()\n const overlaps = props.overlaps ?? []\n for (const overlap of overlaps.filter(item => item.includes(':'))) {\n const [top, bottom] = overlap.split(':')\n if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue\n\n const topPosition = positions.get(top)\n const bottomPosition = positions.get(bottom)\n const topAmount = layoutSizes.get(top)\n const bottomAmount = layoutSizes.get(bottom)\n\n if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue\n\n map.set(bottom, { position: topPosition.value, amount: parseInt(topAmount.value, 10) })\n map.set(top, { position: bottomPosition.value, amount: -parseInt(bottomAmount.value, 10) })\n }\n\n return map\n })\n\n const layers = computed(() => {\n const uniquePriorities = [...new Set([...priorities.values()].map(p => p.value))].sort((a, b) => a - b)\n const layout = []\n for (const p of uniquePriorities) {\n const items = registered.value.filter(id => priorities.get(id)?.value === p)\n layout.push(...items)\n }\n return generateLayers(layout, positions, layoutSizes, activeItems)\n })\n\n const transitionsEnabled = computed(() => {\n return !Array.from(disabledTransitions.values()).some(ref => ref.value)\n })\n\n const mainRect = computed(() => {\n return layers.value[layers.value.length - 1].layer\n })\n\n const mainStyles = computed<CSSProperties>(() => {\n return {\n '--v-layout-left': convertToUnit(mainRect.value.left),\n '--v-layout-right': convertToUnit(mainRect.value.right),\n '--v-layout-top': convertToUnit(mainRect.value.top),\n '--v-layout-bottom': convertToUnit(mainRect.value.bottom),\n ...(transitionsEnabled.value ? undefined : { transition: 'none' }),\n }\n })\n\n const items = computed(() => {\n return layers.value.slice(1).map(({ id }, index) => {\n const { layer } = layers.value[index]\n const size = layoutSizes.get(id)\n const position = positions.get(id)\n\n return {\n id,\n ...layer,\n size: Number(size!.value),\n position: position!.value,\n }\n })\n })\n\n const getLayoutItem = (id: string) => {\n return items.value.find(item => item.id === id)\n }\n\n const rootVm = getCurrentInstance('createLayout')\n\n const isMounted = shallowRef(false)\n onMounted(() => {\n isMounted.value = true\n })\n\n provide(VuetifyLayoutKey, {\n register: (\n vm: ComponentInternalInstance,\n {\n id,\n order,\n position,\n layoutSize,\n elementSize,\n active,\n disableTransitions,\n absolute,\n }\n ) => {\n priorities.set(id, order)\n positions.set(id, position)\n layoutSizes.set(id, layoutSize)\n activeItems.set(id, active)\n disableTransitions && disabledTransitions.set(id, disableTransitions)\n\n const instances = findChildrenWithProvide(VuetifyLayoutItemKey, rootVm?.vnode)\n const instanceIndex = instances.indexOf(vm)\n\n if (instanceIndex > -1) registered.value.splice(instanceIndex, 0, id)\n else registered.value.push(id)\n\n const index = computed(() => items.value.findIndex(i => i.id === id))\n const zIndex = computed(() => rootZIndex.value + (layers.value.length * 2) - (index.value * 2))\n\n const layoutItemStyles = computed<CSSProperties>(() => {\n const isHorizontal = position.value === 'left' || position.value === 'right'\n const isOppositeHorizontal = position.value === 'right'\n const isOppositeVertical = position.value === 'bottom'\n\n const styles = {\n [position.value]: 0,\n zIndex: zIndex.value,\n transform: `translate${isHorizontal ? 'X' : 'Y'}(${(active.value ? 0 : -110) * (isOppositeHorizontal || isOppositeVertical ? -1 : 1)}%)`,\n position: absolute.value || rootZIndex.value !== ROOT_ZINDEX ? 'absolute' : 'fixed',\n ...(transitionsEnabled.value ? undefined : { transition: 'none' }),\n } as const\n\n if (!isMounted.value) return styles\n\n const item = items.value[index.value]\n\n if (!item) throw new Error(`[Vuetify] Could not find layout item \"${id}\"`)\n\n const overlap = computedOverlaps.value.get(id)\n if (overlap) {\n item[overlap.position] += overlap.amount\n }\n\n return {\n ...styles,\n height:\n isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)`\n : elementSize.value ? `${elementSize.value}px`\n : undefined,\n left: isOppositeHorizontal ? undefined : `${item.left}px`,\n right: isOppositeHorizontal ? `${item.right}px` : undefined,\n top: position.value !== 'bottom' ? `${item.top}px` : undefined,\n bottom: position.value !== 'top' ? `${item.bottom}px` : undefined,\n width:\n !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)`\n : elementSize.value ? `${elementSize.value}px`\n : undefined,\n }\n })\n\n const layoutItemScrimStyles = computed<CSSProperties>(() => ({\n zIndex: zIndex.value - 1,\n }))\n\n return { layoutItemStyles, layoutItemScrimStyles, zIndex }\n },\n unregister: (id: string) => {\n priorities.delete(id)\n positions.delete(id)\n layoutSizes.delete(id)\n activeItems.delete(id)\n disabledTransitions.delete(id)\n registered.value = registered.value.filter(v => v !== id)\n },\n mainRect,\n mainStyles,\n getLayoutItem,\n items,\n layoutRect,\n rootZIndex,\n })\n\n const layoutClasses = computed(() => [\n 'v-layout',\n { 'v-layout--full-height': props.fullHeight },\n ])\n\n const layoutStyles = computed(() => ({\n zIndex: rootZIndex.value,\n position: parentLayout ? 'relative' as const : undefined,\n overflow: parentLayout ? 'hidden' : undefined,\n }))\n\n return {\n layoutClasses,\n layoutStyles,\n getLayoutItem,\n items,\n layoutRect,\n layoutRef: resizeRef,\n }\n}\n"],"mappings":"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"}
|
package/lib/composables/lazy.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Utilities
|
|
2
|
-
import { computed,
|
|
2
|
+
import { computed, shallowRef, watch } from 'vue';
|
|
3
3
|
|
|
4
4
|
// Types
|
|
5
5
|
import { propsFactory } from "../util/index.mjs";
|
|
@@ -7,7 +7,7 @@ export const makeLazyProps = propsFactory({
|
|
|
7
7
|
eager: Boolean
|
|
8
8
|
}, 'lazy');
|
|
9
9
|
export function useLazy(props, active) {
|
|
10
|
-
const isBooted =
|
|
10
|
+
const isBooted = shallowRef(false);
|
|
11
11
|
const hasContent = computed(() => isBooted.value || props.eager || active.value);
|
|
12
12
|
watch(active, () => isBooted.value = true);
|
|
13
13
|
function onAfterLeave() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy.mjs","names":["computed","
|
|
1
|
+
{"version":3,"file":"lazy.mjs","names":["computed","shallowRef","watch","propsFactory","makeLazyProps","eager","Boolean","useLazy","props","active","isBooted","hasContent","value","onAfterLeave"],"sources":["../../src/composables/lazy.ts"],"sourcesContent":["// Utilities\nimport { computed, shallowRef, watch } from 'vue'\n\n// Types\nimport type { Ref } from 'vue'\nimport { propsFactory } from '@/util'\n\nexport const makeLazyProps = propsFactory({\n eager: Boolean,\n}, 'lazy')\n\nexport function useLazy (props: { eager: boolean }, active: Ref<boolean>) {\n const isBooted = shallowRef(false)\n const hasContent = computed(() => isBooted.value || props.eager || active.value)\n\n watch(active, () => isBooted.value = true)\n\n function onAfterLeave () {\n if (!props.eager) isBooted.value = false\n }\n\n return { isBooted, hasContent, onAfterLeave }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,UAAU,EAAEC,KAAK,QAAQ,KAAK;;AAEjD;AAAA,SAESC,YAAY;AAErB,OAAO,MAAMC,aAAa,GAAGD,YAAY,CAAC;EACxCE,KAAK,EAAEC;AACT,CAAC,EAAE,MAAM,CAAC;AAEV,OAAO,SAASC,OAAOA,CAAEC,KAAyB,EAAEC,MAAoB,EAAE;EACxE,MAAMC,QAAQ,GAAGT,UAAU,CAAC,KAAK,CAAC;EAClC,MAAMU,UAAU,GAAGX,QAAQ,CAAC,MAAMU,QAAQ,CAACE,KAAK,IAAIJ,KAAK,CAACH,KAAK,IAAII,MAAM,CAACG,KAAK,CAAC;EAEhFV,KAAK,CAACO,MAAM,EAAE,MAAMC,QAAQ,CAACE,KAAK,GAAG,IAAI,CAAC;EAE1C,SAASC,YAAYA,CAAA,EAAI;IACvB,IAAI,CAACL,KAAK,CAACH,KAAK,EAAEK,QAAQ,CAACE,KAAK,GAAG,KAAK;EAC1C;EAEA,OAAO;IAAEF,QAAQ;IAAEC,UAAU;IAAEE;EAAa,CAAC;AAC/C"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
// Composables
|
|
2
|
+
import { useProxiedModel } from "../proxiedModel.mjs"; // Utilities
|
|
3
|
+
import { computed, inject, onBeforeUnmount, provide, ref, shallowRef, toRaw } from 'vue';
|
|
2
4
|
import { getCurrentInstance, getUid, propsFactory } from "../../util/index.mjs";
|
|
3
|
-
import { computed, inject, onBeforeUnmount, provide, ref, toRaw } from 'vue';
|
|
4
5
|
import { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from "./openStrategies.mjs";
|
|
5
6
|
import { classicSelectStrategy, independentSelectStrategy, independentSingleSelectStrategy, leafSelectStrategy, leafSingleSelectStrategy } from "./selectStrategies.mjs"; // Types
|
|
6
7
|
export const VNestedSymbol = Symbol.for('vuetify:nested');
|
|
7
8
|
export const emptyNested = {
|
|
8
|
-
id:
|
|
9
|
+
id: shallowRef(),
|
|
9
10
|
root: {
|
|
10
11
|
register: () => null,
|
|
11
12
|
unregister: () => null,
|
|
@@ -74,7 +75,7 @@ export const useNested = props => {
|
|
|
74
75
|
}
|
|
75
76
|
const vm = getCurrentInstance('nested');
|
|
76
77
|
const nested = {
|
|
77
|
-
id:
|
|
78
|
+
id: shallowRef(),
|
|
78
79
|
root: {
|
|
79
80
|
opened,
|
|
80
81
|
selected,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nested.mjs","names":["useProxiedModel","getCurrentInstance","getUid","propsFactory","computed","inject","onBeforeUnmount","provide","ref","toRaw","listOpenStrategy","multipleOpenStrategy","singleOpenStrategy","classicSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","leafSelectStrategy","leafSingleSelectStrategy","VNestedSymbol","Symbol","for","emptyNested","id","root","register","unregister","parents","Map","children","open","openOnSelect","select","opened","Set","selected","selectedValues","makeNestedProps","selectStrategy","String","Function","openStrategy","Object","Array","mandatory","Boolean","useNested","props","isUnmounted","v","values","value","in","out","getPath","path","parent","unshift","get","vm","nested","arr","key","entries","push","parentId","isGroup","set","delete","list","filter","child","event","emit","newOpened","newSelected","useNestedItem","uidSymbol","computedId","item","e","isOpen","has","isSelected","isIndeterminate","isLeaf","isGroupActivator","useNestedGroupActivator"],"sources":["../../../src/composables/nested/nested.ts"],"sourcesContent":["import { useProxiedModel } from '@/composables/proxiedModel'\nimport { getCurrentInstance, getUid, propsFactory } from '@/util'\nimport { computed, inject, onBeforeUnmount, provide, ref, toRaw } from 'vue'\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './openStrategies'\nimport {\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n} from './selectStrategies'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { SelectStrategyFn } from './selectStrategies'\nimport type { OpenStrategy } from './openStrategies'\n\nexport type SelectStrategy = 'single-leaf' | 'leaf' | 'independent' | 'single-independent' | 'classic' | SelectStrategyFn\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\n\nexport interface NestedProps {\n selectStrategy: SelectStrategy | undefined\n openStrategy: OpenStrategyProp | undefined\n selected: unknown[] | undefined\n opened: unknown[] | undefined\n mandatory: boolean\n 'onUpdate:selected': ((val: unknown[]) => void) | undefined\n 'onUpdate:opened': ((val: unknown[]) => void) | undefined\n}\n\ntype NestedProvide = {\n id: Ref<unknown>\n isGroupActivator?: boolean\n root: {\n children: Ref<Map<unknown, unknown[]>>\n parents: Ref<Map<unknown, unknown>>\n opened: Ref<Set<unknown>>\n selected: Ref<Map<unknown, 'on' | 'off' | 'indeterminate'>>\n selectedValues: Ref<unknown[]>\n register: (id: unknown, parentId: unknown, isGroup?: boolean) => void\n unregister: (id: unknown) => void\n open: (id: unknown, value: boolean, event?: Event) => void\n select: (id: unknown, value: boolean, event?: Event) => void\n openOnSelect: (id: unknown, value: boolean, event?: Event) => void\n }\n}\n\nexport const VNestedSymbol: InjectionKey<NestedProvide> = Symbol.for('vuetify:nested')\n\nexport const emptyNested: NestedProvide = {\n id: ref(),\n root: {\n register: () => null,\n unregister: () => null,\n parents: ref(new Map()),\n children: ref(new Map()),\n open: () => null,\n openOnSelect: () => null,\n select: () => null,\n opened: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n },\n}\n\nexport const makeNestedProps = propsFactory({\n selectStrategy: [String, Function] as PropType<SelectStrategy>,\n openStrategy: [String, Object] as PropType<OpenStrategyProp>,\n opened: Array as PropType<unknown[]>,\n selected: Array as PropType<unknown[]>,\n mandatory: Boolean,\n}, 'nested')\n\nexport const useNested = (props: NestedProps) => {\n let isUnmounted = false\n const children = ref(new Map<unknown, unknown[]>())\n const parents = ref(new Map<unknown, unknown>())\n\n const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()])\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n\n switch (props.selectStrategy) {\n case 'single-leaf': return leafSingleSelectStrategy(props.mandatory)\n case 'leaf': return leafSelectStrategy(props.mandatory)\n case 'independent': return independentSelectStrategy(props.mandatory)\n case 'single-independent': return independentSingleSelectStrategy(props.mandatory)\n case 'classic':\n default: return classicSelectStrategy(props.mandatory)\n }\n })\n\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'object') return props.openStrategy\n\n switch (props.openStrategy) {\n case 'list': return listOpenStrategy\n case 'single': return singleOpenStrategy\n case 'multiple':\n default: return multipleOpenStrategy\n }\n })\n\n const selected = useProxiedModel(\n props,\n 'selected',\n props.selected,\n v => selectStrategy.value.in(v, children.value, parents.value),\n v => selectStrategy.value.out(v, children.value, parents.value),\n )\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function getPath (id: unknown) {\n const path: unknown[] = []\n let parent: unknown = id\n\n while (parent != null) {\n path.unshift(parent)\n parent = parents.value.get(parent)\n }\n\n return path\n }\n\n const vm = getCurrentInstance('nested')\n\n const nested: NestedProvide = {\n id: ref(),\n root: {\n opened,\n selected,\n selectedValues: computed(() => {\n const arr = []\n\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n }),\n register: (id, parentId, isGroup) => {\n parentId && id !== parentId && parents.value.set(id, parentId)\n\n isGroup && children.value.set(id, [])\n\n if (parentId != null) {\n children.value.set(parentId, [...children.value.get(parentId) || [], id])\n }\n },\n unregister: id => {\n if (isUnmounted) return\n\n children.value.delete(id)\n const parent = parents.value.get(id)\n if (parent) {\n const list = children.value.get(parent) ?? []\n children.value.set(parent, list.filter(child => child !== id))\n }\n parents.value.delete(id)\n opened.value.delete(id)\n },\n open: (id, value, event) => {\n vm.emit('click:open', { id, value, path: getPath(id), event })\n\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newOpened && (opened.value = newOpened)\n },\n openOnSelect: (id, value, event) => {\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newOpened && (opened.value = newOpened)\n },\n select: (id, value, event) => {\n vm.emit('click:select', { id, value, path: getPath(id), event })\n\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newSelected && (selected.value = newSelected)\n\n nested.root.openOnSelect(id, value, event)\n },\n children,\n parents,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: Ref<unknown>, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const uidSymbol = Symbol(getUid())\n const computedId = computed(() => id.value ?? uidSymbol)\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(computedId.value, open, e),\n openOnSelect: (open: boolean, e?: Event) => parent.root.openOnSelect(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(computedId.value)),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n select: (selected: boolean, e?: Event) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator,\n }\n\n !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup)\n\n onBeforeUnmount(() => {\n !parent.isGroupActivator && parent.root.unregister(computedId.value)\n })\n\n isGroup && provide(VNestedSymbol, item)\n\n return item\n}\n\nexport const useNestedGroupActivator = () => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n provide(VNestedSymbol, { ...parent, isGroupActivator: true })\n}\n"],"mappings":"SAASA,eAAe;AAAA,SACfC,kBAAkB,EAAEC,MAAM,EAAEC,YAAY;AACjD,SAASC,QAAQ,EAAEC,MAAM,EAAEC,eAAe,EAAEC,OAAO,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACnEC,gBAAgB,EAAEC,oBAAoB,EAAEC,kBAAkB;AAAA,SAEjEC,qBAAqB,EACrBC,yBAAyB,EACzBC,+BAA+B,EAC/BC,kBAAkB,EAClBC,wBAAwB,kCAG1B;AAmCA,OAAO,MAAMC,aAA0C,GAAGC,MAAM,CAACC,GAAG,CAAC,gBAAgB,CAAC;AAEtF,OAAO,MAAMC,WAA0B,GAAG;EACxCC,EAAE,EAAEd,GAAG,EAAE;EACTe,IAAI,EAAE;IACJC,QAAQ,EAAEA,CAAA,KAAM,IAAI;IACpBC,UAAU,EAAEA,CAAA,KAAM,IAAI;IACtBC,OAAO,EAAElB,GAAG,CAAC,IAAImB,GAAG,EAAE,CAAC;IACvBC,QAAQ,EAAEpB,GAAG,CAAC,IAAImB,GAAG,EAAE,CAAC;IACxBE,IAAI,EAAEA,CAAA,KAAM,IAAI;IAChBC,YAAY,EAAEA,CAAA,KAAM,IAAI;IACxBC,MAAM,EAAEA,CAAA,KAAM,IAAI;IAClBC,MAAM,EAAExB,GAAG,CAAC,IAAIyB,GAAG,EAAE,CAAC;IACtBC,QAAQ,EAAE1B,GAAG,CAAC,IAAImB,GAAG,EAAE,CAAC;IACxBQ,cAAc,EAAE3B,GAAG,CAAC,EAAE;EACxB;AACF,CAAC;AAED,OAAO,MAAM4B,eAAe,GAAGjC,YAAY,CAAC;EAC1CkC,cAAc,EAAE,CAACC,MAAM,EAAEC,QAAQ,CAA6B;EAC9DC,YAAY,EAAE,CAACF,MAAM,EAAEG,MAAM,CAA+B;EAC5DT,MAAM,EAAEU,KAA4B;EACpCR,QAAQ,EAAEQ,KAA4B;EACtCC,SAAS,EAAEC;AACb,CAAC,EAAE,QAAQ,CAAC;AAEZ,OAAO,MAAMC,SAAS,GAAIC,KAAkB,IAAK;EAC/C,IAAIC,WAAW,GAAG,KAAK;EACvB,MAAMnB,QAAQ,GAAGpB,GAAG,CAAC,IAAImB,GAAG,EAAsB,CAAC;EACnD,MAAMD,OAAO,GAAGlB,GAAG,CAAC,IAAImB,GAAG,EAAoB,CAAC;EAEhD,MAAMK,MAAM,GAAGhC,eAAe,CAAC8C,KAAK,EAAE,QAAQ,EAAEA,KAAK,CAACd,MAAM,EAAEgB,CAAC,IAAI,IAAIf,GAAG,CAACe,CAAC,CAAC,EAAEA,CAAC,IAAI,CAAC,GAAGA,CAAC,CAACC,MAAM,EAAE,CAAC,CAAC;EAEpG,MAAMZ,cAAc,GAAGjC,QAAQ,CAAC,MAAM;IACpC,IAAI,OAAO0C,KAAK,CAACT,cAAc,KAAK,QAAQ,EAAE,OAAOS,KAAK,CAACT,cAAc;IAEzE,QAAQS,KAAK,CAACT,cAAc;MAC1B,KAAK,aAAa;QAAE,OAAOpB,wBAAwB,CAAC6B,KAAK,CAACH,SAAS,CAAC;MACpE,KAAK,MAAM;QAAE,OAAO3B,kBAAkB,CAAC8B,KAAK,CAACH,SAAS,CAAC;MACvD,KAAK,aAAa;QAAE,OAAO7B,yBAAyB,CAACgC,KAAK,CAACH,SAAS,CAAC;MACrE,KAAK,oBAAoB;QAAE,OAAO5B,+BAA+B,CAAC+B,KAAK,CAACH,SAAS,CAAC;MAClF,KAAK,SAAS;MACd;QAAS,OAAO9B,qBAAqB,CAACiC,KAAK,CAACH,SAAS,CAAC;IAAA;EAE1D,CAAC,CAAC;EAEF,MAAMH,YAAY,GAAGpC,QAAQ,CAAC,MAAM;IAClC,IAAI,OAAO0C,KAAK,CAACN,YAAY,KAAK,QAAQ,EAAE,OAAOM,KAAK,CAACN,YAAY;IAErE,QAAQM,KAAK,CAACN,YAAY;MACxB,KAAK,MAAM;QAAE,OAAO9B,gBAAgB;MACpC,KAAK,QAAQ;QAAE,OAAOE,kBAAkB;MACxC,KAAK,UAAU;MACf;QAAS,OAAOD,oBAAoB;IAAA;EAExC,CAAC,CAAC;EAEF,MAAMuB,QAAQ,GAAGlC,eAAe,CAC9B8C,KAAK,EACL,UAAU,EACVA,KAAK,CAACZ,QAAQ,EACdc,CAAC,IAAIX,cAAc,CAACa,KAAK,CAACC,EAAE,CAACH,CAAC,EAAEpB,QAAQ,CAACsB,KAAK,EAAExB,OAAO,CAACwB,KAAK,CAAC,EAC9DF,CAAC,IAAIX,cAAc,CAACa,KAAK,CAACE,GAAG,CAACJ,CAAC,EAAEpB,QAAQ,CAACsB,KAAK,EAAExB,OAAO,CAACwB,KAAK,CAAC,CAChE;EAED5C,eAAe,CAAC,MAAM;IACpByC,WAAW,GAAG,IAAI;EACpB,CAAC,CAAC;EAEF,SAASM,OAAOA,CAAE/B,EAAW,EAAE;IAC7B,MAAMgC,IAAe,GAAG,EAAE;IAC1B,IAAIC,MAAe,GAAGjC,EAAE;IAExB,OAAOiC,MAAM,IAAI,IAAI,EAAE;MACrBD,IAAI,CAACE,OAAO,CAACD,MAAM,CAAC;MACpBA,MAAM,GAAG7B,OAAO,CAACwB,KAAK,CAACO,GAAG,CAACF,MAAM,CAAC;IACpC;IAEA,OAAOD,IAAI;EACb;EAEA,MAAMI,EAAE,GAAGzD,kBAAkB,CAAC,QAAQ,CAAC;EAEvC,MAAM0D,MAAqB,GAAG;IAC5BrC,EAAE,EAAEd,GAAG,EAAE;IACTe,IAAI,EAAE;MACJS,MAAM;MACNE,QAAQ;MACRC,cAAc,EAAE/B,QAAQ,CAAC,MAAM;QAC7B,MAAMwD,GAAG,GAAG,EAAE;QAEd,KAAK,MAAM,CAACC,GAAG,EAAEX,KAAK,CAAC,IAAIhB,QAAQ,CAACgB,KAAK,CAACY,OAAO,EAAE,EAAE;UACnD,IAAIZ,KAAK,KAAK,IAAI,EAAEU,GAAG,CAACG,IAAI,CAACF,GAAG,CAAC;QACnC;QAEA,OAAOD,GAAG;MACZ,CAAC,CAAC;MACFpC,QAAQ,EAAEA,CAACF,EAAE,EAAE0C,QAAQ,EAAEC,OAAO,KAAK;QACnCD,QAAQ,IAAI1C,EAAE,KAAK0C,QAAQ,IAAItC,OAAO,CAACwB,KAAK,CAACgB,GAAG,CAAC5C,EAAE,EAAE0C,QAAQ,CAAC;QAE9DC,OAAO,IAAIrC,QAAQ,CAACsB,KAAK,CAACgB,GAAG,CAAC5C,EAAE,EAAE,EAAE,CAAC;QAErC,IAAI0C,QAAQ,IAAI,IAAI,EAAE;UACpBpC,QAAQ,CAACsB,KAAK,CAACgB,GAAG,CAACF,QAAQ,EAAE,CAAC,IAAGpC,QAAQ,CAACsB,KAAK,CAACO,GAAG,CAACO,QAAQ,CAAC,IAAI,EAAE,GAAE1C,EAAE,CAAC,CAAC;QAC3E;MACF,CAAC;MACDG,UAAU,EAAEH,EAAE,IAAI;QAChB,IAAIyB,WAAW,EAAE;QAEjBnB,QAAQ,CAACsB,KAAK,CAACiB,MAAM,CAAC7C,EAAE,CAAC;QACzB,MAAMiC,MAAM,GAAG7B,OAAO,CAACwB,KAAK,CAACO,GAAG,CAACnC,EAAE,CAAC;QACpC,IAAIiC,MAAM,EAAE;UACV,MAAMa,IAAI,GAAGxC,QAAQ,CAACsB,KAAK,CAACO,GAAG,CAACF,MAAM,CAAC,IAAI,EAAE;UAC7C3B,QAAQ,CAACsB,KAAK,CAACgB,GAAG,CAACX,MAAM,EAAEa,IAAI,CAACC,MAAM,CAACC,KAAK,IAAIA,KAAK,KAAKhD,EAAE,CAAC,CAAC;QAChE;QACAI,OAAO,CAACwB,KAAK,CAACiB,MAAM,CAAC7C,EAAE,CAAC;QACxBU,MAAM,CAACkB,KAAK,CAACiB,MAAM,CAAC7C,EAAE,CAAC;MACzB,CAAC;MACDO,IAAI,EAAEA,CAACP,EAAE,EAAE4B,KAAK,EAAEqB,KAAK,KAAK;QAC1Bb,EAAE,CAACc,IAAI,CAAC,YAAY,EAAE;UAAElD,EAAE;UAAE4B,KAAK;UAAEI,IAAI,EAAED,OAAO,CAAC/B,EAAE,CAAC;UAAEiD;QAAM,CAAC,CAAC;QAE9D,MAAME,SAAS,GAAGjC,YAAY,CAACU,KAAK,CAACrB,IAAI,CAAC;UACxCP,EAAE;UACF4B,KAAK;UACLlB,MAAM,EAAE,IAAIC,GAAG,CAACD,MAAM,CAACkB,KAAK,CAAC;UAC7BtB,QAAQ,EAAEA,QAAQ,CAACsB,KAAK;UACxBxB,OAAO,EAAEA,OAAO,CAACwB,KAAK;UACtBqB;QACF,CAAC,CAAC;QAEFE,SAAS,KAAKzC,MAAM,CAACkB,KAAK,GAAGuB,SAAS,CAAC;MACzC,CAAC;MACD3C,YAAY,EAAEA,CAACR,EAAE,EAAE4B,KAAK,EAAEqB,KAAK,KAAK;QAClC,MAAME,SAAS,GAAGjC,YAAY,CAACU,KAAK,CAACnB,MAAM,CAAC;UAC1CT,EAAE;UACF4B,KAAK;UACLhB,QAAQ,EAAE,IAAIP,GAAG,CAACO,QAAQ,CAACgB,KAAK,CAAC;UACjClB,MAAM,EAAE,IAAIC,GAAG,CAACD,MAAM,CAACkB,KAAK,CAAC;UAC7BtB,QAAQ,EAAEA,QAAQ,CAACsB,KAAK;UACxBxB,OAAO,EAAEA,OAAO,CAACwB,KAAK;UACtBqB;QACF,CAAC,CAAC;QACFE,SAAS,KAAKzC,MAAM,CAACkB,KAAK,GAAGuB,SAAS,CAAC;MACzC,CAAC;MACD1C,MAAM,EAAEA,CAACT,EAAE,EAAE4B,KAAK,EAAEqB,KAAK,KAAK;QAC5Bb,EAAE,CAACc,IAAI,CAAC,cAAc,EAAE;UAAElD,EAAE;UAAE4B,KAAK;UAAEI,IAAI,EAAED,OAAO,CAAC/B,EAAE,CAAC;UAAEiD;QAAM,CAAC,CAAC;QAEhE,MAAMG,WAAW,GAAGrC,cAAc,CAACa,KAAK,CAACnB,MAAM,CAAC;UAC9CT,EAAE;UACF4B,KAAK;UACLhB,QAAQ,EAAE,IAAIP,GAAG,CAACO,QAAQ,CAACgB,KAAK,CAAC;UACjCtB,QAAQ,EAAEA,QAAQ,CAACsB,KAAK;UACxBxB,OAAO,EAAEA,OAAO,CAACwB,KAAK;UACtBqB;QACF,CAAC,CAAC;QACFG,WAAW,KAAKxC,QAAQ,CAACgB,KAAK,GAAGwB,WAAW,CAAC;QAE7Cf,MAAM,CAACpC,IAAI,CAACO,YAAY,CAACR,EAAE,EAAE4B,KAAK,EAAEqB,KAAK,CAAC;MAC5C,CAAC;MACD3C,QAAQ;MACRF;IACF;EACF,CAAC;EAEDnB,OAAO,CAACW,aAAa,EAAEyC,MAAM,CAAC;EAE9B,OAAOA,MAAM,CAACpC,IAAI;AACpB,CAAC;AAED,OAAO,MAAMoD,aAAa,GAAGA,CAACrD,EAAgB,EAAE2C,OAAgB,KAAK;EACnE,MAAMV,MAAM,GAAGlD,MAAM,CAACa,aAAa,EAAEG,WAAW,CAAC;EAEjD,MAAMuD,SAAS,GAAGzD,MAAM,CAACjB,MAAM,EAAE,CAAC;EAClC,MAAM2E,UAAU,GAAGzE,QAAQ,CAAC,MAAMkB,EAAE,CAAC4B,KAAK,IAAI0B,SAAS,CAAC;EAExD,MAAME,IAAI,GAAG;IACX,GAAGvB,MAAM;IACTjC,EAAE,EAAEuD,UAAU;IACdhD,IAAI,EAAEA,CAACA,IAAa,EAAEkD,CAAQ,KAAKxB,MAAM,CAAChC,IAAI,CAACM,IAAI,CAACgD,UAAU,CAAC3B,KAAK,EAAErB,IAAI,EAAEkD,CAAC,CAAC;IAC9EjD,YAAY,EAAEA,CAACD,IAAa,EAAEkD,CAAS,KAAKxB,MAAM,CAAChC,IAAI,CAACO,YAAY,CAAC+C,UAAU,CAAC3B,KAAK,EAAErB,IAAI,EAAEkD,CAAC,CAAC;IAC/FC,MAAM,EAAE5E,QAAQ,CAAC,MAAMmD,MAAM,CAAChC,IAAI,CAACS,MAAM,CAACkB,KAAK,CAAC+B,GAAG,CAACJ,UAAU,CAAC3B,KAAK,CAAC,CAAC;IACtEK,MAAM,EAAEnD,QAAQ,CAAC,MAAMmD,MAAM,CAAChC,IAAI,CAACG,OAAO,CAACwB,KAAK,CAACO,GAAG,CAACoB,UAAU,CAAC3B,KAAK,CAAC,CAAC;IACvEnB,MAAM,EAAEA,CAACG,QAAiB,EAAE6C,CAAS,KAAKxB,MAAM,CAAChC,IAAI,CAACQ,MAAM,CAAC8C,UAAU,CAAC3B,KAAK,EAAEhB,QAAQ,EAAE6C,CAAC,CAAC;IAC3FG,UAAU,EAAE9E,QAAQ,CAAC,MAAMmD,MAAM,CAAChC,IAAI,CAACW,QAAQ,CAACgB,KAAK,CAACO,GAAG,CAAChD,KAAK,CAACoE,UAAU,CAAC3B,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC;IAC5FiC,eAAe,EAAE/E,QAAQ,CAAC,MAAMmD,MAAM,CAAChC,IAAI,CAACW,QAAQ,CAACgB,KAAK,CAACO,GAAG,CAACoB,UAAU,CAAC3B,KAAK,CAAC,KAAK,eAAe,CAAC;IACrGkC,MAAM,EAAEhF,QAAQ,CAAC,MAAM,CAACmD,MAAM,CAAChC,IAAI,CAACK,QAAQ,CAACsB,KAAK,CAACO,GAAG,CAACoB,UAAU,CAAC3B,KAAK,CAAC,CAAC;IACzEmC,gBAAgB,EAAE9B,MAAM,CAAC8B;EAC3B,CAAC;EAED,CAAC9B,MAAM,CAAC8B,gBAAgB,IAAI9B,MAAM,CAAChC,IAAI,CAACC,QAAQ,CAACqD,UAAU,CAAC3B,KAAK,EAAEK,MAAM,CAACjC,EAAE,CAAC4B,KAAK,EAAEe,OAAO,CAAC;EAE5F3D,eAAe,CAAC,MAAM;IACpB,CAACiD,MAAM,CAAC8B,gBAAgB,IAAI9B,MAAM,CAAChC,IAAI,CAACE,UAAU,CAACoD,UAAU,CAAC3B,KAAK,CAAC;EACtE,CAAC,CAAC;EAEFe,OAAO,IAAI1D,OAAO,CAACW,aAAa,EAAE4D,IAAI,CAAC;EAEvC,OAAOA,IAAI;AACb,CAAC;AAED,OAAO,MAAMQ,uBAAuB,GAAGA,CAAA,KAAM;EAC3C,MAAM/B,MAAM,GAAGlD,MAAM,CAACa,aAAa,EAAEG,WAAW,CAAC;EAEjDd,OAAO,CAACW,aAAa,EAAE;IAAE,GAAGqC,MAAM;IAAE8B,gBAAgB,EAAE;EAAK,CAAC,CAAC;AAC/D,CAAC"}
|
|
1
|
+
{"version":3,"file":"nested.mjs","names":["useProxiedModel","computed","inject","onBeforeUnmount","provide","ref","shallowRef","toRaw","getCurrentInstance","getUid","propsFactory","listOpenStrategy","multipleOpenStrategy","singleOpenStrategy","classicSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","leafSelectStrategy","leafSingleSelectStrategy","VNestedSymbol","Symbol","for","emptyNested","id","root","register","unregister","parents","Map","children","open","openOnSelect","select","opened","Set","selected","selectedValues","makeNestedProps","selectStrategy","String","Function","openStrategy","Object","Array","mandatory","Boolean","useNested","props","isUnmounted","v","values","value","in","out","getPath","path","parent","unshift","get","vm","nested","arr","key","entries","push","parentId","isGroup","set","delete","list","filter","child","event","emit","newOpened","newSelected","useNestedItem","uidSymbol","computedId","item","e","isOpen","has","isSelected","isIndeterminate","isLeaf","isGroupActivator","useNestedGroupActivator"],"sources":["../../../src/composables/nested/nested.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, provide, ref, shallowRef, toRaw } from 'vue'\nimport { getCurrentInstance, getUid, propsFactory } from '@/util'\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './openStrategies'\nimport {\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n} from './selectStrategies'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { OpenStrategy } from './openStrategies'\nimport type { SelectStrategyFn } from './selectStrategies'\n\nexport type SelectStrategy = 'single-leaf' | 'leaf' | 'independent' | 'single-independent' | 'classic' | SelectStrategyFn\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\n\nexport interface NestedProps {\n selectStrategy: SelectStrategy | undefined\n openStrategy: OpenStrategyProp | undefined\n selected: unknown[] | undefined\n opened: unknown[] | undefined\n mandatory: boolean\n 'onUpdate:selected': ((val: unknown[]) => void) | undefined\n 'onUpdate:opened': ((val: unknown[]) => void) | undefined\n}\n\ntype NestedProvide = {\n id: Ref<unknown>\n isGroupActivator?: boolean\n root: {\n children: Ref<Map<unknown, unknown[]>>\n parents: Ref<Map<unknown, unknown>>\n opened: Ref<Set<unknown>>\n selected: Ref<Map<unknown, 'on' | 'off' | 'indeterminate'>>\n selectedValues: Ref<unknown[]>\n register: (id: unknown, parentId: unknown, isGroup?: boolean) => void\n unregister: (id: unknown) => void\n open: (id: unknown, value: boolean, event?: Event) => void\n select: (id: unknown, value: boolean, event?: Event) => void\n openOnSelect: (id: unknown, value: boolean, event?: Event) => void\n }\n}\n\nexport const VNestedSymbol: InjectionKey<NestedProvide> = Symbol.for('vuetify:nested')\n\nexport const emptyNested: NestedProvide = {\n id: shallowRef(),\n root: {\n register: () => null,\n unregister: () => null,\n parents: ref(new Map()),\n children: ref(new Map()),\n open: () => null,\n openOnSelect: () => null,\n select: () => null,\n opened: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n },\n}\n\nexport const makeNestedProps = propsFactory({\n selectStrategy: [String, Function] as PropType<SelectStrategy>,\n openStrategy: [String, Object] as PropType<OpenStrategyProp>,\n opened: Array as PropType<unknown[]>,\n selected: Array as PropType<unknown[]>,\n mandatory: Boolean,\n}, 'nested')\n\nexport const useNested = (props: NestedProps) => {\n let isUnmounted = false\n const children = ref(new Map<unknown, unknown[]>())\n const parents = ref(new Map<unknown, unknown>())\n\n const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()])\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n\n switch (props.selectStrategy) {\n case 'single-leaf': return leafSingleSelectStrategy(props.mandatory)\n case 'leaf': return leafSelectStrategy(props.mandatory)\n case 'independent': return independentSelectStrategy(props.mandatory)\n case 'single-independent': return independentSingleSelectStrategy(props.mandatory)\n case 'classic':\n default: return classicSelectStrategy(props.mandatory)\n }\n })\n\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'object') return props.openStrategy\n\n switch (props.openStrategy) {\n case 'list': return listOpenStrategy\n case 'single': return singleOpenStrategy\n case 'multiple':\n default: return multipleOpenStrategy\n }\n })\n\n const selected = useProxiedModel(\n props,\n 'selected',\n props.selected,\n v => selectStrategy.value.in(v, children.value, parents.value),\n v => selectStrategy.value.out(v, children.value, parents.value),\n )\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function getPath (id: unknown) {\n const path: unknown[] = []\n let parent: unknown = id\n\n while (parent != null) {\n path.unshift(parent)\n parent = parents.value.get(parent)\n }\n\n return path\n }\n\n const vm = getCurrentInstance('nested')\n\n const nested: NestedProvide = {\n id: shallowRef(),\n root: {\n opened,\n selected,\n selectedValues: computed(() => {\n const arr = []\n\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n }),\n register: (id, parentId, isGroup) => {\n parentId && id !== parentId && parents.value.set(id, parentId)\n\n isGroup && children.value.set(id, [])\n\n if (parentId != null) {\n children.value.set(parentId, [...children.value.get(parentId) || [], id])\n }\n },\n unregister: id => {\n if (isUnmounted) return\n\n children.value.delete(id)\n const parent = parents.value.get(id)\n if (parent) {\n const list = children.value.get(parent) ?? []\n children.value.set(parent, list.filter(child => child !== id))\n }\n parents.value.delete(id)\n opened.value.delete(id)\n },\n open: (id, value, event) => {\n vm.emit('click:open', { id, value, path: getPath(id), event })\n\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newOpened && (opened.value = newOpened)\n },\n openOnSelect: (id, value, event) => {\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newOpened && (opened.value = newOpened)\n },\n select: (id, value, event) => {\n vm.emit('click:select', { id, value, path: getPath(id), event })\n\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newSelected && (selected.value = newSelected)\n\n nested.root.openOnSelect(id, value, event)\n },\n children,\n parents,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: Ref<unknown>, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const uidSymbol = Symbol(getUid())\n const computedId = computed(() => id.value ?? uidSymbol)\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(computedId.value, open, e),\n openOnSelect: (open: boolean, e?: Event) => parent.root.openOnSelect(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(computedId.value)),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n select: (selected: boolean, e?: Event) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator,\n }\n\n !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup)\n\n onBeforeUnmount(() => {\n !parent.isGroupActivator && parent.root.unregister(computedId.value)\n })\n\n isGroup && provide(VNestedSymbol, item)\n\n return item\n}\n\nexport const useNestedGroupActivator = () => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n provide(VNestedSymbol, { ...parent, isGroupActivator: true })\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Utilities
|
|
2
|
-
import { computed, getCurrentInstance, onBeforeUnmount, onMounted, ref, watch } from 'vue';
|
|
2
|
+
import { computed, getCurrentInstance, onBeforeUnmount, onMounted, ref, shallowRef, watch } from 'vue';
|
|
3
3
|
import { clamp, consoleWarn, propsFactory } from "../util/index.mjs"; // Types
|
|
4
4
|
// Composables
|
|
5
5
|
export const makeScrollProps = propsFactory({
|
|
@@ -18,11 +18,11 @@ export function useScroll(props) {
|
|
|
18
18
|
} = args;
|
|
19
19
|
let previousScroll = 0;
|
|
20
20
|
const target = ref(null);
|
|
21
|
-
const currentScroll =
|
|
22
|
-
const savedScroll =
|
|
23
|
-
const currentThreshold =
|
|
24
|
-
const isScrollActive =
|
|
25
|
-
const isScrollingUp =
|
|
21
|
+
const currentScroll = shallowRef(0);
|
|
22
|
+
const savedScroll = shallowRef(0);
|
|
23
|
+
const currentThreshold = shallowRef(0);
|
|
24
|
+
const isScrollActive = shallowRef(false);
|
|
25
|
+
const isScrollingUp = shallowRef(false);
|
|
26
26
|
const scrollThreshold = computed(() => {
|
|
27
27
|
return Number(props.scrollThreshold);
|
|
28
28
|
});
|