@vuetify/nightly 3.0.0-beta.0 → 3.0.0-beta.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/CHANGELOG.md +32 -2
- package/dist/_component-variables.sass +61 -0
- package/dist/json/attributes.json +662 -430
- package/dist/json/importMap.json +222 -198
- package/dist/json/tags.json +184 -96
- package/dist/json/web-types.json +2021 -1152
- package/dist/vuetify.css +1869 -1468
- package/dist/vuetify.d.ts +12840 -9217
- package/dist/vuetify.esm.js +6121 -5104
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +6120 -5103
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +3 -3
- package/dist/vuetify.min.js +1085 -964
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +34 -13
- package/lib/components/VAlert/VAlert.mjs +43 -24
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/VAlert.sass +26 -8
- package/lib/components/VAlert/VAlertTitle.mjs +1 -0
- package/lib/components/VAlert/VAlertTitle.mjs.map +1 -1
- package/lib/components/VAlert/_variables.scss +14 -7
- package/lib/components/VAlert/index.mjs.map +1 -1
- package/lib/components/VApp/VApp.css +1 -0
- package/lib/components/VApp/VApp.mjs.map +1 -1
- package/lib/components/VApp/VApp.sass +1 -0
- package/lib/components/VApp/index.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBar.mjs +11 -7
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBar.sass +0 -1
- package/lib/components/VAppBar/VAppBarNavIcon.mjs +4 -2
- package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs +3 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
- package/lib/components/VAppBar/index.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +133 -101
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +0 -2
- package/lib/components/VAutocomplete/index.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.css +1 -1
- package/lib/components/VAvatar/VAvatar.mjs +17 -15
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.sass +1 -2
- package/lib/components/VAvatar/_mixins.scss +0 -1
- package/lib/components/VAvatar/index.mjs.map +1 -1
- package/lib/components/VBadge/VBadge.css +3 -6
- package/lib/components/VBadge/VBadge.mjs +16 -44
- package/lib/components/VBadge/VBadge.mjs.map +1 -1
- package/lib/components/VBadge/VBadge.sass +2 -5
- package/lib/components/VBadge/_variables.scss +1 -2
- package/lib/components/VBadge/index.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.css +82 -58
- package/lib/components/VBanner/VBanner.mjs +49 -48
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.sass +61 -55
- package/lib/components/VBanner/VBannerActions.mjs +34 -2
- package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
- package/lib/components/VBanner/VBannerAvatar.mjs +20 -0
- package/lib/components/VBanner/VBannerAvatar.mjs.map +1 -0
- package/lib/components/VBanner/VBannerIcon.mjs +20 -0
- package/lib/components/VBanner/VBannerIcon.mjs.map +1 -0
- package/lib/components/VBanner/VBannerText.mjs.map +1 -1
- package/lib/components/VBanner/_variables.scss +10 -14
- package/lib/components/VBanner/index.mjs +2 -0
- package/lib/components/VBanner/index.mjs.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.css +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.sass +1 -2
- package/lib/components/VBottomNavigation/index.mjs.map +1 -1
- package/lib/components/VBottomSheet/VBottomSheet.mjs.map +1 -1
- package/lib/components/VBottomSheet/index.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +5 -2
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.sass +0 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +10 -9
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/shared.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.css +56 -11
- package/lib/components/VBtn/VBtn.mjs +51 -20
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +35 -4
- package/lib/components/VBtn/_variables.scss +2 -0
- package/lib/components/VBtn/index.mjs.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.css +14 -6
- package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.sass +14 -7
- package/lib/components/VBtnGroup/index.mjs.map +1 -1
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VBtnToggle/VBtnToggle.sass +0 -1
- package/lib/components/VBtnToggle/index.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendar.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarCategory.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarDaily.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarMonthly.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarWeekly.mjs.map +1 -1
- package/lib/components/VCalendar/index.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/calendar-base.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/calendar-with-events.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/mouse.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/times.mjs.map +1 -1
- package/lib/components/VCalendar/modes/column.mjs.map +1 -1
- package/lib/components/VCalendar/modes/common.mjs.map +1 -1
- package/lib/components/VCalendar/modes/index.mjs.map +1 -1
- package/lib/components/VCalendar/modes/stack.mjs.map +1 -1
- package/lib/components/VCalendar/util/events.mjs.map +1 -1
- package/lib/components/VCalendar/util/parser.mjs.map +1 -1
- package/lib/components/VCalendar/util/props.mjs.map +1 -1
- package/lib/components/VCalendar/util/timestamp.mjs.map +1 -1
- package/lib/components/VCard/VCard.css +23 -20
- package/lib/components/VCard/VCard.mjs +17 -9
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCard.sass +12 -10
- package/lib/components/VCard/VCardActions.mjs +1 -2
- package/lib/components/VCard/VCardActions.mjs.map +1 -1
- package/lib/components/VCard/VCardAvatar.mjs.map +1 -1
- package/lib/components/VCard/VCardContent.mjs +3 -0
- package/lib/components/VCard/VCardContent.mjs.map +1 -0
- package/lib/components/VCard/VCardHeader.mjs.map +1 -1
- package/lib/components/VCard/VCardHeaderText.mjs.map +1 -1
- package/lib/components/VCard/VCardImg.mjs.map +1 -1
- package/lib/components/VCard/VCardSubtitle.mjs.map +1 -1
- package/lib/components/VCard/VCardText.mjs.map +1 -1
- package/lib/components/VCard/VCardTitle.mjs.map +1 -1
- package/lib/components/VCard/_variables.scss +11 -5
- package/lib/components/VCard/index.mjs +1 -0
- package/lib/components/VCard/index.mjs.map +1 -1
- package/lib/components/VCarousel/VCarousel.mjs +4 -3
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/VCarousel.sass +0 -1
- package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
- package/lib/components/VCarousel/index.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckbox.mjs +15 -47
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckbox.sass +0 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +67 -0
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -0
- package/lib/components/VCheckbox/index.mjs +1 -0
- package/lib/components/VCheckbox/index.mjs.map +1 -1
- package/lib/components/VChip/VChip.css +8 -5
- package/lib/components/VChip/VChip.mjs +6 -5
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/VChip.sass +3 -1
- package/lib/components/VChip/_variables.scss +3 -0
- package/lib/components/VChip/index.mjs.map +1 -1
- package/lib/components/VChipGroup/VChipGroup.mjs +1 -1
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VChipGroup/index.mjs.map +1 -1
- package/lib/components/VCode/VCode.sass +1 -2
- package/lib/components/VCode/_variables.scss +1 -1
- package/lib/components/VCode/index.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.css +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.sass +0 -1
- package/lib/components/VColorPicker/index.mjs.map +1 -1
- package/lib/components/VColorPicker/util/index.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +140 -110
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +0 -2
- package/lib/components/VCombobox/index.mjs.map +1 -1
- package/lib/components/VCounter/VCounter.mjs.map +1 -1
- package/lib/components/VCounter/VCounter.sass +0 -1
- package/lib/components/VCounter/index.mjs.map +1 -1
- package/lib/components/VData/VData.mjs.map +1 -1
- package/lib/components/VData/index.mjs.map +1 -1
- package/lib/components/VDataIterator/VDataFooter.mjs.map +1 -1
- package/lib/components/VDataIterator/VDataIterator.mjs.map +1 -1
- package/lib/components/VDataIterator/index.mjs.map +1 -1
- package/lib/components/VDataTable/MobileRow.mjs.map +1 -1
- package/lib/components/VDataTable/Row.mjs.map +1 -1
- package/lib/components/VDataTable/RowGroup.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableHeader.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaderMobile.mjs.map +1 -1
- package/lib/components/VDataTable/VEditDialog.mjs.map +1 -1
- package/lib/components/VDataTable/VVirtualTable.mjs.map +1 -1
- package/lib/components/VDataTable/index.mjs.map +1 -1
- package/lib/components/VDataTable/mixins/header.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerDateTable.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonthTable.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerTitle.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
- package/lib/components/VDatePicker/index.mjs.map +1 -1
- package/lib/components/VDatePicker/mixins/date-picker-table.mjs.map +1 -1
- package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +1 -1
- package/lib/components/VDatePicker/util/eventHelpers.mjs.map +1 -1
- package/lib/components/VDatePicker/util/index.mjs.map +1 -1
- package/lib/components/VDatePicker/util/isDateAllowed.mjs.map +1 -1
- package/lib/components/VDatePicker/util/monthChange.mjs.map +1 -1
- package/lib/components/VDatePicker/util/pad.mjs.map +1 -1
- package/lib/components/VDatePicker/util/sanitizeDateString.mjs.map +1 -1
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
- package/lib/components/VDefaultsProvider/index.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.css +31 -12
- package/lib/components/VDialog/VDialog.mjs +14 -12
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +27 -12
- package/lib/components/VDialog/_variables.scss +3 -7
- package/lib/components/VDialog/index.mjs.map +1 -1
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VDivider/VDivider.sass +0 -1
- package/lib/components/VDivider/index.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.css +8 -6
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +6 -2
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.sass +0 -1
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +9 -6
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs +4 -0
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.mjs.map +1 -1
- package/lib/components/VField/VField.css +10 -10
- package/lib/components/VField/VField.mjs +12 -11
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +7 -9
- package/lib/components/VField/VFieldLabel.mjs.map +1 -1
- package/lib/components/VField/_variables.scss +3 -3
- package/lib/components/VField/index.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.mjs +5 -3
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.sass +0 -1
- package/lib/components/VFileInput/index.mjs.map +1 -1
- package/lib/components/VFooter/VFooter.mjs +32 -15
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VFooter/VFooter.sass +0 -1
- package/lib/components/VFooter/index.mjs.map +1 -1
- package/lib/components/VForm/VForm.mjs +25 -11
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VForm/index.mjs.map +1 -1
- package/lib/components/VGrid/VCol.mjs.map +1 -1
- package/lib/components/VGrid/VContainer.mjs.map +1 -1
- package/lib/components/VGrid/VRow.mjs.map +1 -1
- package/lib/components/VGrid/VSpacer.mjs.map +1 -1
- package/lib/components/VGrid/index.mjs.map +1 -1
- package/lib/components/VHover/VHover.mjs.map +1 -1
- package/lib/components/VHover/index.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.css +27 -12
- package/lib/components/VIcon/VIcon.mjs +18 -17
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.sass +27 -17
- package/lib/components/VIcon/_variables.scss +1 -0
- package/lib/components/VIcon/index.mjs.map +1 -1
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/VImg.sass +0 -1
- package/lib/components/VImg/index.mjs.map +1 -1
- package/lib/components/VInput/VInput.css +3 -1
- package/lib/components/VInput/VInput.mjs +10 -10
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/VInput.sass +3 -2
- package/lib/components/VInput/_variables.scss +4 -0
- package/lib/components/VInput/index.mjs.map +1 -1
- package/lib/components/VItemGroup/VItem.mjs.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.sass +0 -1
- package/lib/components/VItemGroup/index.mjs.map +1 -1
- package/lib/components/VKbd/VKbd.sass +0 -1
- package/lib/components/VKbd/_variables.scss +1 -1
- package/lib/components/VKbd/index.mjs.map +1 -1
- package/lib/components/VLabel/VLabel.mjs.map +1 -1
- package/lib/components/VLabel/VLabel.sass +0 -1
- package/lib/components/VLabel/index.mjs.map +1 -1
- package/lib/components/VLayout/VLayout.mjs.map +1 -1
- package/lib/components/VLayout/VLayoutItem.mjs +1 -1
- package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
- package/lib/components/VLayout/index.mjs.map +1 -1
- package/lib/components/VLazy/VLazy.mjs.map +1 -1
- package/lib/components/VLazy/index.mjs.map +1 -1
- package/lib/components/VList/VList.css +7 -12
- package/lib/components/VList/VList.mjs +83 -48
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VList.sass +3 -4
- package/lib/components/VList/VListChildren.mjs +41 -3
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +43 -15
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListImg.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +129 -51
- package/lib/components/VList/VListItem.mjs +49 -44
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +77 -30
- package/lib/components/VList/VListItemAction.mjs +29 -0
- package/lib/components/VList/VListItemAction.mjs.map +1 -0
- package/lib/components/VList/VListItemAvatar.mjs +10 -16
- package/lib/components/VList/VListItemAvatar.mjs.map +1 -1
- package/lib/components/VList/VListItemHeader.mjs.map +1 -1
- package/lib/components/VList/VListItemIcon.mjs +23 -0
- package/lib/components/VList/VListItemIcon.mjs.map +1 -0
- package/lib/components/VList/VListItemMedia.mjs +4 -4
- package/lib/components/VList/VListItemMedia.mjs.map +1 -1
- package/lib/components/VList/VListItemSubtitle.mjs.map +1 -1
- package/lib/components/VList/VListItemTitle.mjs.map +1 -1
- package/lib/components/VList/VListSubheader.mjs +3 -3
- package/lib/components/VList/VListSubheader.mjs.map +1 -1
- package/lib/components/VList/_variables.scss +12 -4
- package/lib/components/VList/index.mjs +2 -0
- package/lib/components/VList/index.mjs.map +1 -1
- package/lib/components/VList/list.mjs.map +1 -1
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
- package/lib/components/VLocaleProvider/index.mjs.map +1 -1
- package/lib/components/VMain/VMain.mjs.map +1 -1
- package/lib/components/VMain/VMain.sass +0 -1
- package/lib/components/VMain/index.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.css +2 -12
- package/lib/components/VMenu/VMenu.mjs +65 -31
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.sass +3 -7
- package/lib/components/VMenu/_variables.scss +0 -1
- package/lib/components/VMenu/index.mjs.map +1 -1
- package/lib/components/VMenu/shared.mjs +2 -0
- package/lib/components/VMenu/shared.mjs.map +1 -0
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VMessages/VMessages.sass +0 -1
- package/lib/components/VMessages/index.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +13 -9
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +0 -1
- package/lib/components/VNavigationDrawer/index.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
- package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
- package/lib/components/VNoSsr/index.mjs.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
- package/lib/components/VOtpInput/index.mjs.map +1 -1
- package/lib/components/VOverflowBtn/VOverflowBtn.mjs.map +1 -1
- package/lib/components/VOverflowBtn/index.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.css +7 -0
- package/lib/components/VOverlay/VOverlay.mjs +57 -32
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.sass +8 -1
- package/lib/components/VOverlay/index.mjs.map +1 -1
- package/lib/components/VOverlay/{positionStrategies.mjs → locationStrategies.mjs} +39 -36
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -0
- package/lib/components/VOverlay/requestNewFrame.mjs.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.mjs +11 -2
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +57 -15
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VOverlay/util/point.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +16 -17
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.sass +0 -1
- package/lib/components/VPagination/index.mjs.map +1 -1
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VParallax/index.mjs.map +1 -1
- package/lib/components/VPicker/VPicker.mjs.map +1 -1
- package/lib/components/VPicker/index.mjs.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.sass +0 -1
- package/lib/components/VProgressCircular/index.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.css +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.sass +0 -1
- package/lib/components/VProgressLinear/index.mjs.map +1 -1
- package/lib/components/VRadio/VRadio.mjs +6 -5
- package/lib/components/VRadio/VRadio.mjs.map +1 -1
- package/lib/components/VRadio/index.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +11 -6
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.mjs.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs +5 -2
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.mjs.map +1 -1
- package/lib/components/VRating/VRating.css +2 -2
- package/lib/components/VRating/VRating.mjs +17 -6
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/VRating.sass +2 -3
- package/lib/components/VRating/index.mjs.map +1 -1
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VResponsive/index.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +134 -107
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.sass +0 -2
- package/lib/components/VSelect/index.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.css +1 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs +15 -12
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.sass +1 -1
- package/lib/components/VSelectionControl/index.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +6 -5
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +0 -1
- package/lib/components/VSelectionControlGroup/index.mjs.map +1 -1
- package/lib/components/VSheet/VSheet.mjs +7 -3
- package/lib/components/VSheet/VSheet.mjs.map +1 -1
- package/lib/components/VSheet/VSheet.sass +0 -1
- package/lib/components/VSheet/index.mjs.map +1 -1
- package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
- package/lib/components/VSkeletonLoader/index.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.css +0 -5
- package/lib/components/VSlideGroup/VSlideGroup.mjs +40 -17
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.sass +0 -5
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs +3 -1
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
- package/lib/components/VSlideGroup/helpers.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.css +7 -2
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.sass +11 -7
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.sass +0 -2
- package/lib/components/VSlider/VSliderTrack.css +6 -6
- package/lib/components/VSlider/VSliderTrack.mjs +3 -2
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.sass +7 -9
- package/lib/components/VSlider/_variables.scss +5 -2
- package/lib/components/VSlider/index.mjs.map +1 -1
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.css +19 -36
- package/lib/components/VSnackbar/VSnackbar.mjs +38 -19
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.sass +15 -35
- package/lib/components/VSnackbar/_variables.scss +0 -4
- package/lib/components/VSnackbar/index.mjs.map +1 -1
- package/lib/components/VSparkline/VSparkline.mjs.map +1 -1
- package/lib/components/VSparkline/helpers/core.mjs.map +1 -1
- package/lib/components/VSparkline/helpers/math.mjs.map +1 -1
- package/lib/components/VSparkline/helpers/path.mjs.map +1 -1
- package/lib/components/VSparkline/index.mjs.map +1 -1
- package/lib/components/VSpeedDial/VSpeedDial.mjs.map +1 -1
- package/lib/components/VSpeedDial/index.mjs.map +1 -1
- package/lib/components/VStepper/VStepper.mjs.map +1 -1
- package/lib/components/VStepper/VStepperContent.mjs.map +1 -1
- package/lib/components/VStepper/VStepperStep.mjs.map +1 -1
- package/lib/components/VStepper/index.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.mjs +15 -6
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.sass +0 -1
- package/lib/components/VSwitch/index.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.css +0 -5
- package/lib/components/VSystemBar/VSystemBar.mjs +31 -14
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.sass +0 -6
- package/lib/components/VSystemBar/_variables.scss +0 -3
- package/lib/components/VSystemBar/index.mjs.map +1 -1
- package/lib/components/VTable/VTable.mjs.map +1 -1
- package/lib/components/VTable/VTable.sass +0 -1
- package/lib/components/VTable/index.mjs.map +1 -1
- package/lib/components/VTabs/VTab.css +1 -1
- package/lib/components/VTabs/VTab.mjs +33 -36
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTab.sass +1 -2
- package/lib/components/VTabs/VTabs.css +14 -11
- package/lib/components/VTabs/VTabs.mjs +7 -8
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.sass +10 -7
- package/lib/components/VTabs/_variables.scss +1 -1
- package/lib/components/VTabs/index.mjs.map +1 -1
- package/lib/components/VTabs/shared.mjs +2 -0
- package/lib/components/VTabs/shared.mjs.map +1 -0
- package/lib/components/VTextField/VTextField.css +4 -4
- package/lib/components/VTextField/VTextField.mjs +9 -10
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +5 -6
- package/lib/components/VTextField/index.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.css +7 -4
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.sass +9 -7
- package/lib/components/VTextarea/index.mjs.map +1 -1
- package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
- package/lib/components/VThemeProvider/index.mjs.map +1 -1
- package/lib/components/VTimePicker/SelectingTimes.mjs.map +1 -1
- package/lib/components/VTimePicker/VTimePicker.mjs.map +1 -1
- package/lib/components/VTimePicker/VTimePickerClock.mjs.map +1 -1
- package/lib/components/VTimePicker/VTimePickerTitle.mjs.map +1 -1
- package/lib/components/VTimePicker/index.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.css +187 -48
- package/lib/components/VTimeline/VTimeline.mjs +27 -11
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.sass +196 -52
- package/lib/components/VTimeline/VTimelineDivider.mjs +5 -3
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs +3 -2
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VTimeline/_variables.scss +2 -1
- package/lib/components/VTimeline/index.mjs.map +1 -1
- package/lib/components/VTimeline/shared.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.css +8 -1
- package/lib/components/VToolbar/VToolbar.mjs +21 -17
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.sass +2 -2
- package/lib/components/VToolbar/VToolbarItems.mjs +1 -2
- package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
- package/lib/components/VToolbar/_variables.scss +13 -1
- package/lib/components/VToolbar/index.mjs.map +1 -1
- package/lib/components/VTooltip/VTooltip.mjs +12 -7
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/VTooltip.sass +0 -1
- package/lib/components/VTooltip/index.mjs.map +1 -1
- package/lib/components/VTreeview/VTreeview.mjs.map +1 -1
- package/lib/components/VTreeview/VTreeviewNode.mjs.map +1 -1
- package/lib/components/VTreeview/index.mjs.map +1 -1
- package/lib/components/VTreeview/util/filterTreeItems.mjs.map +1 -1
- package/lib/components/VValidation/VValidation.mjs.map +1 -1
- package/lib/components/VValidation/index.mjs.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/components/VVirtualScroll/index.mjs.map +1 -1
- package/lib/components/VWindow/VWindow.mjs +2 -10
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindow.sass +0 -2
- package/lib/components/VWindow/VWindowItem.mjs +9 -3
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/VWindow/index.mjs.map +1 -1
- package/lib/components/index.d.ts +13464 -9854
- package/lib/components/index.mjs.map +1 -1
- package/lib/components/transitions/createTransition.mjs.map +1 -1
- package/lib/components/transitions/dialog-transition.mjs +61 -8
- package/lib/components/transitions/dialog-transition.mjs.map +1 -1
- package/lib/components/transitions/expand-transition.mjs.map +1 -1
- package/lib/components/transitions/index.mjs.map +1 -1
- package/lib/composables/border.mjs.map +1 -1
- package/lib/composables/color.mjs.map +1 -1
- package/lib/composables/defaults.mjs +2 -2
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/delay.mjs.map +1 -1
- package/lib/composables/density.mjs.map +1 -1
- package/lib/composables/dimensions.mjs.map +1 -1
- package/lib/composables/display.mjs +13 -11
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/elevation.mjs.map +1 -1
- package/lib/composables/filter.mjs +33 -13
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/composables/focus.mjs.map +1 -1
- package/lib/composables/form.mjs +24 -11
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/forwardRef.mjs +10 -6
- package/lib/composables/forwardRef.mjs.map +1 -1
- package/lib/composables/group.mjs +14 -6
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/hydration.mjs.map +1 -1
- package/lib/composables/icons.mjs +15 -3
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/composables/index.mjs.map +1 -1
- package/lib/composables/intersectionObserver.mjs.map +1 -1
- package/lib/composables/items.mjs +84 -0
- package/lib/composables/items.mjs.map +1 -0
- package/lib/composables/layout.mjs +10 -6
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/composables/lazy.mjs.map +1 -1
- package/lib/composables/loader.mjs.map +1 -1
- package/lib/composables/locale.mjs +11 -8
- package/lib/composables/locale.mjs.map +1 -1
- package/lib/composables/location.mjs +70 -0
- package/lib/composables/location.mjs.map +1 -0
- package/lib/composables/mutationObserver.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs +27 -14
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/nested/openStrategies.mjs +63 -36
- package/lib/composables/nested/openStrategies.mjs.map +1 -1
- package/lib/composables/nested/selectStrategies.mjs +163 -122
- package/lib/composables/nested/selectStrategies.mjs.map +1 -1
- package/lib/composables/position.mjs +4 -25
- package/lib/composables/position.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/refs.mjs.map +1 -1
- package/lib/composables/resizeObserver.mjs +1 -9
- package/lib/composables/resizeObserver.mjs.map +1 -1
- package/lib/composables/rounded.mjs.map +1 -1
- package/lib/composables/router.mjs +29 -15
- package/lib/composables/router.mjs.map +1 -1
- package/lib/composables/rtl.mjs.map +1 -1
- package/lib/composables/scopeId.mjs +11 -0
- package/lib/composables/scopeId.mjs.map +1 -0
- package/lib/composables/scroll.mjs.map +1 -1
- package/lib/composables/selectLink.mjs +19 -0
- package/lib/composables/selectLink.mjs.map +1 -0
- package/lib/composables/size.mjs.map +1 -1
- package/lib/composables/ssrBoot.mjs +3 -2
- package/lib/composables/ssrBoot.mjs.map +1 -1
- package/lib/composables/stack.mjs +27 -23
- package/lib/composables/stack.mjs.map +1 -1
- package/lib/composables/tag.mjs.map +1 -1
- package/lib/composables/teleport.mjs.map +1 -1
- package/lib/composables/theme.mjs +94 -93
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/toggleScope.mjs +18 -0
- package/lib/composables/toggleScope.mjs.map +1 -0
- package/lib/composables/touch.mjs.map +1 -1
- package/lib/composables/transition.mjs.map +1 -1
- package/lib/composables/validation.mjs +17 -6
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/composables/variant.mjs +3 -6
- package/lib/composables/variant.mjs.map +1 -1
- package/lib/directives/click-outside/index.mjs.map +1 -1
- package/lib/directives/color/index.mjs.map +1 -1
- package/lib/directives/index.mjs.map +1 -1
- package/lib/directives/intersect/index.mjs.map +1 -1
- package/lib/directives/mutate/index.mjs.map +1 -1
- package/lib/directives/resize/index.mjs.map +1 -1
- package/lib/directives/ripple/VRipple.sass +0 -1
- package/lib/directives/ripple/index.mjs +15 -3
- package/lib/directives/ripple/index.mjs.map +1 -1
- package/lib/directives/scroll/index.mjs.map +1 -1
- package/lib/directives/touch/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +39 -29
- package/lib/framework.mjs.map +1 -1
- package/lib/iconsets/fa-svg.d.ts +2 -1
- package/lib/iconsets/fa-svg.mjs.map +1 -1
- package/lib/iconsets/fa.d.ts +2 -1
- package/lib/iconsets/fa.mjs.map +1 -1
- package/lib/iconsets/fa4.d.ts +2 -1
- package/lib/iconsets/fa4.mjs.map +1 -1
- package/lib/iconsets/md.d.ts +2 -1
- package/lib/iconsets/md.mjs.map +1 -1
- package/lib/iconsets/mdi-svg.d.ts +2 -1
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/iconsets/mdi.d.ts +2 -1
- package/lib/iconsets/mdi.mjs.map +1 -1
- package/lib/index.d.ts +161 -138
- package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
- package/lib/locale/adapters/vue-intl.mjs.map +1 -1
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +9 -9
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.mjs.map +1 -1
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/lib/presets/default/index.mjs.map +1 -1
- package/lib/services/goto/easing-patterns.mjs.map +1 -1
- package/lib/services/goto/index.mjs.map +1 -1
- package/lib/services/goto/util.mjs.map +1 -1
- package/lib/styles/generic/_colors.scss +0 -1
- package/lib/styles/main.css +400 -392
- package/lib/styles/settings/_utilities.scss +54 -26
- package/lib/styles/tools/_states.sass +11 -3
- package/lib/styles/tools/_utilities.sass +1 -1
- package/lib/styles/tools/_variant.sass +6 -6
- package/lib/{components/VOverlay/util → util}/anchor.mjs +0 -0
- package/lib/util/anchor.mjs.map +1 -0
- package/lib/util/animation.mjs.map +1 -1
- package/lib/util/box.mjs.map +1 -1
- package/lib/util/color/APCA.mjs.map +1 -1
- package/lib/util/color/transformCIELAB.mjs.map +1 -1
- package/lib/util/color/transformSRGB.mjs.map +1 -1
- package/lib/util/colorUtils.mjs.map +1 -1
- package/lib/util/colors.mjs.map +1 -1
- package/lib/util/console.mjs.map +1 -1
- package/lib/util/createSimpleFunctional.mjs.map +1 -1
- package/lib/util/dateTimeUtils.mjs.map +1 -1
- package/lib/util/defineComponent.mjs +37 -6
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/dom.mjs.map +1 -1
- package/lib/util/easing.mjs.map +1 -1
- package/lib/util/getCurrentInstance.mjs +20 -1
- package/lib/util/getCurrentInstance.mjs.map +1 -1
- package/lib/util/getScrollParent.mjs.map +1 -1
- package/lib/util/globals.mjs +0 -3
- package/lib/util/globals.mjs.map +1 -1
- package/lib/util/helpers.mjs +1 -5
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/index.mjs +1 -0
- package/lib/util/index.mjs.map +1 -1
- package/lib/util/isFixedPosition.mjs.map +1 -1
- package/lib/util/propsFactory.mjs.map +1 -1
- package/lib/util/useRender.mjs.map +1 -1
- package/package.json +41 -31
- package/lib/components/VOverlay/positionStrategies.mjs.map +0 -1
- package/lib/components/VOverlay/util/anchor.mjs.map +0 -1
- package/lib/composables/overlay.mjs +0 -30
- package/lib/composables/overlay.mjs.map +0 -1
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// Utilities
|
|
2
|
+
import { computed } from 'vue';
|
|
3
|
+
import { getPropertyFromItem, pick, propsFactory } from "../util/index.mjs"; // Types
|
|
4
|
+
|
|
5
|
+
// Composables
|
|
6
|
+
export const makeItemsProps = propsFactory({
|
|
7
|
+
items: {
|
|
8
|
+
type: Array,
|
|
9
|
+
default: () => []
|
|
10
|
+
},
|
|
11
|
+
itemTitle: {
|
|
12
|
+
type: [String, Array, Function],
|
|
13
|
+
default: 'title'
|
|
14
|
+
},
|
|
15
|
+
itemValue: {
|
|
16
|
+
type: [String, Array, Function],
|
|
17
|
+
default: 'value'
|
|
18
|
+
},
|
|
19
|
+
itemChildren: {
|
|
20
|
+
type: [Boolean, String, Array, Function],
|
|
21
|
+
default: 'children'
|
|
22
|
+
},
|
|
23
|
+
itemProps: {
|
|
24
|
+
type: [Boolean, String, Array, Function],
|
|
25
|
+
default: 'props'
|
|
26
|
+
},
|
|
27
|
+
returnObject: Boolean
|
|
28
|
+
}, 'item');
|
|
29
|
+
export function transformItem(props, item) {
|
|
30
|
+
const title = getPropertyFromItem(item, props.itemTitle, item);
|
|
31
|
+
const value = getPropertyFromItem(item, props.itemValue, title);
|
|
32
|
+
const children = getPropertyFromItem(item, props.itemChildren);
|
|
33
|
+
const itemProps = props.itemProps === true ? pick(item, ['children'])[1] : getPropertyFromItem(item, props.itemProps);
|
|
34
|
+
const _props = {
|
|
35
|
+
title,
|
|
36
|
+
value,
|
|
37
|
+
...itemProps
|
|
38
|
+
};
|
|
39
|
+
return {
|
|
40
|
+
title: _props.title,
|
|
41
|
+
value: _props.value,
|
|
42
|
+
props: _props,
|
|
43
|
+
children: Array.isArray(children) ? transformItems(props, children) : undefined,
|
|
44
|
+
raw: item
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export function transformItems(props, items) {
|
|
48
|
+
const array = [];
|
|
49
|
+
|
|
50
|
+
for (const item of items) {
|
|
51
|
+
array.push(transformItem(props, item));
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return array;
|
|
55
|
+
}
|
|
56
|
+
export function useItems(props) {
|
|
57
|
+
const items = computed(() => transformItems(props, props.items));
|
|
58
|
+
|
|
59
|
+
function transformIn(value) {
|
|
60
|
+
return value.map(item => transformItem(props, item));
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function transformOut(value) {
|
|
64
|
+
if (props.returnObject) return value.map(_ref => {
|
|
65
|
+
let {
|
|
66
|
+
raw: item
|
|
67
|
+
} = _ref;
|
|
68
|
+
return item;
|
|
69
|
+
});
|
|
70
|
+
return value.map(_ref2 => {
|
|
71
|
+
let {
|
|
72
|
+
props
|
|
73
|
+
} = _ref2;
|
|
74
|
+
return props.value;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return {
|
|
79
|
+
items,
|
|
80
|
+
transformIn,
|
|
81
|
+
transformOut
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=items.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"items.mjs","names":["computed","getPropertyFromItem","pick","propsFactory","makeItemsProps","items","type","Array","default","itemTitle","String","Function","itemValue","itemChildren","Boolean","itemProps","returnObject","transformItem","props","item","title","value","children","_props","isArray","transformItems","undefined","raw","array","push","useItems","transformIn","map","transformOut"],"sources":["../../src/composables/items.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { getPropertyFromItem, pick, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { SelectItemKey } from '@/util'\n\nexport interface InternalItem {\n title: string\n value: any\n props: {\n [key: string]: any\n title: string\n value: any\n }\n children?: InternalItem[]\n raw: any\n}\n\nexport interface ItemProps {\n items: any[]\n itemTitle: SelectItemKey\n itemValue: SelectItemKey\n itemChildren: SelectItemKey\n itemProps: SelectItemKey\n returnObject: boolean\n}\n\n// Composables\nexport const makeItemsProps = propsFactory({\n items: {\n type: Array as PropType<ItemProps['items']>,\n default: () => ([]),\n },\n itemTitle: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'title',\n },\n itemValue: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'value',\n },\n itemChildren: {\n type: [Boolean, String, Array, Function] as PropType<SelectItemKey>,\n default: 'children',\n },\n itemProps: {\n type: [Boolean, String, Array, Function] as PropType<SelectItemKey>,\n default: 'props',\n },\n returnObject: Boolean,\n}, 'item')\n\nexport function transformItem (props: Omit<ItemProps, 'items'>, item: any) {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, title)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true ? pick(item, ['children'])[1] : getPropertyFromItem(item, props.itemProps)\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n title: _props.title,\n value: _props.value,\n props: _props,\n children: Array.isArray(children) ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nexport function transformItems (props: Omit<ItemProps, 'items'>, items: ItemProps['items']) {\n const array: InternalItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useItems (props: ItemProps) {\n const items = computed(() => transformItems(props, props.items))\n\n function transformIn (value: any[]): InternalItem[] {\n return value.map(item => transformItem(props, item))\n }\n\n function transformOut (value: InternalItem[]) {\n if (props.returnObject) return value.map(({ raw: item }) => item)\n return value.map(({ props }) => props.value)\n }\n\n return { items, transformIn, transformOut }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAT,QAAyB,KAAzB;SACSC,mB,EAAqBC,I,EAAMC,Y,6BAEpC;;AAyBA;AACA,OAAO,MAAMC,cAAc,GAAGD,YAAY,CAAC;EACzCE,KAAK,EAAE;IACLC,IAAI,EAAEC,KADD;IAELC,OAAO,EAAE,MAAO;EAFX,CADkC;EAKzCC,SAAS,EAAE;IACTH,IAAI,EAAE,CAACI,MAAD,EAASH,KAAT,EAAgBI,QAAhB,CADG;IAETH,OAAO,EAAE;EAFA,CAL8B;EASzCI,SAAS,EAAE;IACTN,IAAI,EAAE,CAACI,MAAD,EAASH,KAAT,EAAgBI,QAAhB,CADG;IAETH,OAAO,EAAE;EAFA,CAT8B;EAazCK,YAAY,EAAE;IACZP,IAAI,EAAE,CAACQ,OAAD,EAAUJ,MAAV,EAAkBH,KAAlB,EAAyBI,QAAzB,CADM;IAEZH,OAAO,EAAE;EAFG,CAb2B;EAiBzCO,SAAS,EAAE;IACTT,IAAI,EAAE,CAACQ,OAAD,EAAUJ,MAAV,EAAkBH,KAAlB,EAAyBI,QAAzB,CADG;IAETH,OAAO,EAAE;EAFA,CAjB8B;EAqBzCQ,YAAY,EAAEF;AArB2B,CAAD,EAsBvC,MAtBuC,CAAnC;AAwBP,OAAO,SAASG,aAAT,CAAwBC,KAAxB,EAAyDC,IAAzD,EAAoE;EACzE,MAAMC,KAAK,GAAGnB,mBAAmB,CAACkB,IAAD,EAAOD,KAAK,CAACT,SAAb,EAAwBU,IAAxB,CAAjC;EACA,MAAME,KAAK,GAAGpB,mBAAmB,CAACkB,IAAD,EAAOD,KAAK,CAACN,SAAb,EAAwBQ,KAAxB,CAAjC;EACA,MAAME,QAAQ,GAAGrB,mBAAmB,CAACkB,IAAD,EAAOD,KAAK,CAACL,YAAb,CAApC;EACA,MAAME,SAAS,GAAGG,KAAK,CAACH,SAAN,KAAoB,IAApB,GAA2Bb,IAAI,CAACiB,IAAD,EAAO,CAAC,UAAD,CAAP,CAAJ,CAAyB,CAAzB,CAA3B,GAAyDlB,mBAAmB,CAACkB,IAAD,EAAOD,KAAK,CAACH,SAAb,CAA9F;EAEA,MAAMQ,MAAM,GAAG;IACbH,KADa;IAEbC,KAFa;IAGb,GAAGN;EAHU,CAAf;EAMA,OAAO;IACLK,KAAK,EAAEG,MAAM,CAACH,KADT;IAELC,KAAK,EAAEE,MAAM,CAACF,KAFT;IAGLH,KAAK,EAAEK,MAHF;IAILD,QAAQ,EAAEf,KAAK,CAACiB,OAAN,CAAcF,QAAd,IAA0BG,cAAc,CAACP,KAAD,EAAQI,QAAR,CAAxC,GAA4DI,SAJjE;IAKLC,GAAG,EAAER;EALA,CAAP;AAOD;AAED,OAAO,SAASM,cAAT,CAAyBP,KAAzB,EAA0Db,KAA1D,EAAqF;EAC1F,MAAMuB,KAAqB,GAAG,EAA9B;;EAEA,KAAK,MAAMT,IAAX,IAAmBd,KAAnB,EAA0B;IACxBuB,KAAK,CAACC,IAAN,CAAWZ,aAAa,CAACC,KAAD,EAAQC,IAAR,CAAxB;EACD;;EAED,OAAOS,KAAP;AACD;AAED,OAAO,SAASE,QAAT,CAAmBZ,KAAnB,EAAqC;EAC1C,MAAMb,KAAK,GAAGL,QAAQ,CAAC,MAAMyB,cAAc,CAACP,KAAD,EAAQA,KAAK,CAACb,KAAd,CAArB,CAAtB;;EAEA,SAAS0B,WAAT,CAAsBV,KAAtB,EAAoD;IAClD,OAAOA,KAAK,CAACW,GAAN,CAAUb,IAAI,IAAIF,aAAa,CAACC,KAAD,EAAQC,IAAR,CAA/B,CAAP;EACD;;EAED,SAASc,YAAT,CAAuBZ,KAAvB,EAA8C;IAC5C,IAAIH,KAAK,CAACF,YAAV,EAAwB,OAAOK,KAAK,CAACW,GAAN,CAAU;MAAA,IAAC;QAAEL,GAAG,EAAER;MAAP,CAAD;MAAA,OAAmBA,IAAnB;IAAA,CAAV,CAAP;IACxB,OAAOE,KAAK,CAACW,GAAN,CAAU;MAAA,IAAC;QAAEd;MAAF,CAAD;MAAA,OAAeA,KAAK,CAACG,KAArB;IAAA,CAAV,CAAP;EACD;;EAED,OAAO;IAAEhB,KAAF;IAAS0B,WAAT;IAAsBE;EAAtB,CAAP;AACD"}
|
|
@@ -5,6 +5,7 @@ import { computed, inject, onActivated, onBeforeUnmount, onDeactivated, onMounte
|
|
|
5
5
|
import { convertToUnit, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory } from "../util/index.mjs"; // Types
|
|
6
6
|
|
|
7
7
|
export const VuetifyLayoutKey = Symbol.for('vuetify:layout');
|
|
8
|
+
export const VuetifyLayoutItemKey = Symbol.for('vuetify:layout-item');
|
|
8
9
|
const ROOT_ZINDEX = 1000;
|
|
9
10
|
export const makeLayoutProps = propsFactory({
|
|
10
11
|
overlaps: {
|
|
@@ -18,7 +19,7 @@ export const makeLayoutItemProps = propsFactory({
|
|
|
18
19
|
name: {
|
|
19
20
|
type: String
|
|
20
21
|
},
|
|
21
|
-
|
|
22
|
+
order: {
|
|
22
23
|
type: [Number, String],
|
|
23
24
|
default: 0
|
|
24
25
|
},
|
|
@@ -36,6 +37,9 @@ export function useLayoutItem(options) {
|
|
|
36
37
|
if (!layout) throw new Error('Could not find injected Vuetify layout');
|
|
37
38
|
const id = (_options$id = options.id) != null ? _options$id : `layout-item-${getUid()}`;
|
|
38
39
|
const vm = getCurrentInstance('useLayoutItem');
|
|
40
|
+
provide(VuetifyLayoutItemKey, {
|
|
41
|
+
id
|
|
42
|
+
});
|
|
39
43
|
const isKeptAlive = ref(false);
|
|
40
44
|
onDeactivated(() => isKeptAlive.value = true);
|
|
41
45
|
onActivated(() => isKeptAlive.value = false);
|
|
@@ -185,7 +189,7 @@ export function createLayout(props) {
|
|
|
185
189
|
register: (vm, _ref2) => {
|
|
186
190
|
let {
|
|
187
191
|
id,
|
|
188
|
-
|
|
192
|
+
order,
|
|
189
193
|
position,
|
|
190
194
|
layoutSize,
|
|
191
195
|
elementSize,
|
|
@@ -193,12 +197,12 @@ export function createLayout(props) {
|
|
|
193
197
|
disableTransitions,
|
|
194
198
|
absolute
|
|
195
199
|
} = _ref2;
|
|
196
|
-
priorities.set(id,
|
|
200
|
+
priorities.set(id, order);
|
|
197
201
|
positions.set(id, position);
|
|
198
202
|
layoutSizes.set(id, layoutSize);
|
|
199
203
|
activeItems.set(id, active);
|
|
200
204
|
disableTransitions && disabledTransitions.set(id, disableTransitions);
|
|
201
|
-
const instances = findChildrenWithProvide(
|
|
205
|
+
const instances = findChildrenWithProvide(VuetifyLayoutItemKey, rootVm == null ? void 0 : rootVm.vnode);
|
|
202
206
|
const instanceIndex = instances.indexOf(vm);
|
|
203
207
|
if (instanceIndex > -1) registered.value.splice(instanceIndex, 0, id);else registered.value.push(id);
|
|
204
208
|
const index = computed(() => items.value.findIndex(i => i.id === id));
|
|
@@ -227,12 +231,12 @@ export function createLayout(props) {
|
|
|
227
231
|
}
|
|
228
232
|
|
|
229
233
|
return { ...styles,
|
|
230
|
-
height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : `${elementSize.value}px
|
|
234
|
+
height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : elementSize.value ? `${elementSize.value}px` : undefined,
|
|
231
235
|
marginLeft: isOppositeHorizontal ? undefined : `${item.left}px`,
|
|
232
236
|
marginRight: isOppositeHorizontal ? `${item.right}px` : undefined,
|
|
233
237
|
marginTop: position.value !== 'bottom' ? `${item.top}px` : undefined,
|
|
234
238
|
marginBottom: position.value !== 'top' ? `${item.bottom}px` : undefined,
|
|
235
|
-
width: !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)` : `${elementSize.value}px`
|
|
239
|
+
width: !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)` : elementSize.value ? `${elementSize.value}px` : undefined
|
|
236
240
|
};
|
|
237
241
|
});
|
|
238
242
|
const layoutItemScrimStyles = computed(() => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/composables/layout.ts"],"names":["useResizeObserver","computed","inject","onActivated","onBeforeUnmount","onDeactivated","onMounted","provide","reactive","ref","convertToUnit","findChildrenWithProvide","getCurrentInstance","getUid","propsFactory","VuetifyLayoutKey","Symbol","for","ROOT_ZINDEX","makeLayoutProps","overlaps","type","Array","default","fullHeight","Boolean","makeLayoutItemProps","name","String","priority","Number","absolute","useLayout","layout","Error","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","mainStyles","length","paddingLeft","paddingRight","paddingTop","paddingBottom","undefined","transition","slice","index","size","getLayoutItem","find","rootVm","isMounted","layoutSize","elementSize","disableTransitions","instances","vnode","instanceIndex","indexOf","splice","findIndex","i","zIndex","isHorizontal","isOppositeHorizontal","isOppositeVertical","styles","transform","height","marginLeft","marginRight","marginTop","marginBottom","width","delete","v","layoutClasses","layoutStyles","layoutRef"],"mappings":"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","sourcesContent":["// Composables\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, inject, onActivated, onBeforeUnmount, onDeactivated, onMounted, provide, reactive, ref } from 'vue'\nimport { convertToUnit, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, InjectionKey, Prop, Ref } from 'vue'\n\ntype Position = 'top' | 'left' | 'right' | 'bottom'\n\ntype LayoutItem = {\n id: string\n top: number\n bottom: number\n left: number\n right: number\n size: number\n}\n\ninterface LayoutProvide {\n register: (\n vm: ComponentInternalInstance,\n options: {\n id: string\n priority: Ref<number>\n position: Ref<Position>\n layoutSize: Ref<number | string>\n elementSize: Ref<number | string>\n active: Ref<boolean>\n disableTransitions?: Ref<boolean>\n absolute: Ref<boolean | undefined>\n }\n ) => {\n layoutItemStyles: Ref<Record<string, unknown>>\n layoutItemScrimStyles: Ref<Record<string, unknown>>\n zIndex: Ref<number>\n }\n unregister: (id: string) => void\n mainStyles: Ref<Record<string, unknown>>\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')\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 priority: {\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('Could not find injected Vuetify layout')\n\n return layout\n}\n\nexport function useLayoutItem (options: {\n id: string | undefined\n priority: Ref<number>\n position: Ref<Position>\n layoutSize: Ref<number | string>\n elementSize: Ref<number | string>\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('Could not find injected Vuetify layout')\n\n const id = options.id ?? `layout-item-${getUid()}`\n\n const vm = getCurrentInstance('useLayoutItem')\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) => {\n let previousLayer = { 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 mainStyles = computed(() => {\n const layer = layers.value[layers.value.length - 1].layer\n\n return {\n position: 'relative',\n paddingLeft: convertToUnit(layer.left),\n paddingRight: convertToUnit(layer.right),\n paddingTop: convertToUnit(layer.top),\n paddingBottom: convertToUnit(layer.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\n return {\n id,\n ...layer,\n size: Number(size!.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 priority,\n position,\n layoutSize,\n elementSize,\n active,\n disableTransitions,\n absolute,\n }\n ) => {\n priorities.set(id, priority)\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(VuetifyLayoutKey, 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(() => {\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 }\n\n if (!isMounted.value) return styles\n\n if (index.value < 0) throw new Error(`Layout item \"${id}\" is missing`)\n\n const item = items.value[index.value]\n\n if (!item) throw new Error(`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: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : `${elementSize.value}px`,\n marginLeft: isOppositeHorizontal ? undefined : `${item.left}px`,\n marginRight: isOppositeHorizontal ? `${item.right}px` : undefined,\n marginTop: position.value !== 'bottom' ? `${item.top}px` : undefined,\n marginBottom: position.value !== 'top' ? `${item.bottom}px` : undefined,\n width: !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)` : `${elementSize.value}px`,\n }\n })\n\n const layoutItemScrimStyles = computed(() => ({\n zIndex: zIndex.value - 1,\n position: rootZIndex.value === ROOT_ZINDEX ? 'fixed' : 'absolute',\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 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 }))\n\n return {\n layoutClasses,\n layoutStyles,\n getLayoutItem,\n items,\n layoutRect,\n layoutRef: resizeRef,\n }\n}\n"],"file":"layout.mjs"}
|
|
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","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","mainStyles","length","paddingLeft","paddingRight","paddingTop","paddingBottom","undefined","transition","slice","index","size","getLayoutItem","find","rootVm","isMounted","layoutSize","elementSize","disableTransitions","instances","vnode","instanceIndex","indexOf","splice","findIndex","i","zIndex","isHorizontal","isOppositeHorizontal","isOppositeVertical","styles","transform","height","marginLeft","marginRight","marginTop","marginBottom","width","delete","v","layoutClasses","layoutStyles","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\ntype LayoutItem = {\n id: string\n top: number\n bottom: number\n left: number\n right: number\n size: number\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 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('Could not find injected Vuetify layout')\n\n return layout\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('Could not find injected Vuetify 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) => {\n let previousLayer = { 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 mainStyles = computed<CSSProperties>(() => {\n const layer = layers.value[layers.value.length - 1].layer\n\n return {\n position: 'relative',\n paddingLeft: convertToUnit(layer.left),\n paddingRight: convertToUnit(layer.right),\n paddingTop: convertToUnit(layer.top),\n paddingBottom: convertToUnit(layer.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\n return {\n id,\n ...layer,\n size: Number(size!.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 if (index.value < 0) throw new Error(`Layout item \"${id}\" is missing`)\n\n const item = items.value[index.value]\n\n if (!item) throw new Error(`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: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : elementSize.value ? `${elementSize.value}px` : undefined,\n marginLeft: isOppositeHorizontal ? undefined : `${item.left}px`,\n marginRight: isOppositeHorizontal ? `${item.right}px` : undefined,\n marginTop: position.value !== 'bottom' ? `${item.top}px` : undefined,\n marginBottom: position.value !== 'top' ? `${item.bottom}px` : undefined,\n width: !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)` : elementSize.value ? `${elementSize.value}px` : undefined,\n }\n })\n\n const layoutItemScrimStyles = computed<CSSProperties>(() => ({\n zIndex: zIndex.value - 1,\n position: rootZIndex.value === ROOT_ZINDEX ? 'fixed' : 'absolute',\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 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 }))\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 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"lazy.mjs","names":["computed","ref","watch","propsFactory","makeLazyProps","eager","Boolean","useLazy","props","active","isBooted","hasContent","value","onAfterLeave"],"sources":["../../src/composables/lazy.ts"],"sourcesContent":["// Utilities\nimport { computed, ref, 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 = ref(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,QAAT,EAAmBC,GAAnB,EAAwBC,KAAxB,QAAqC,KAArC,C,CAEA;;SAESC,Y;AAET,OAAO,MAAMC,aAAa,GAAGD,YAAY,CAAC;EACxCE,KAAK,EAAEC;AADiC,CAAD,EAEtC,MAFsC,CAAlC;AAIP,OAAO,SAASC,OAAT,CAAkBC,KAAlB,EAA6CC,MAA7C,EAAmE;EACxE,MAAMC,QAAQ,GAAGT,GAAG,CAAC,KAAD,CAApB;EACA,MAAMU,UAAU,GAAGX,QAAQ,CAAC,MAAMU,QAAQ,CAACE,KAAT,IAAkBJ,KAAK,CAACH,KAAxB,IAAiCI,MAAM,CAACG,KAA/C,CAA3B;EAEAV,KAAK,CAACO,MAAD,EAAS,MAAMC,QAAQ,CAACE,KAAT,GAAiB,IAAhC,CAAL;;EAEA,SAASC,YAAT,GAAyB;IACvB,IAAI,CAACL,KAAK,CAACH,KAAX,EAAkBK,QAAQ,CAACE,KAAT,GAAiB,KAAjB;EACnB;;EAED,OAAO;IAAEF,QAAF;IAAYC,UAAZ;IAAwBE;EAAxB,CAAP;AACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"loader.mjs","names":["VProgressLinear","computed","getCurrentInstanceName","propsFactory","makeLoaderProps","loading","Boolean","useLoader","props","name","loaderClasses","LoaderSlot","slots","default","color","isActive","active"],"sources":["../../src/composables/loader.tsx"],"sourcesContent":["// Components\nimport { VProgressLinear } from '@/components/VProgressLinear'\n\n// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, SetupContext } from 'vue'\nimport type { MakeSlots, SlotsToProps } from '@/util'\n\nexport interface LoaderSlotProps {\n color: string | undefined\n isActive: boolean\n}\n\nexport interface LoaderProps {\n loading: boolean | string\n}\n\n// Composables\nexport const makeLoaderProps = propsFactory({\n loading: Boolean,\n}, 'loader')\n\nexport function useLoader (\n props: LoaderProps,\n name = getCurrentInstanceName(),\n) {\n const loaderClasses = computed(() => ({\n [`${name}--loading`]: props.loading,\n }))\n\n return { loaderClasses }\n}\n\nexport function LoaderSlot (\n props: {\n active: boolean\n name: string\n color?: string\n } & ExtractPropTypes<SlotsToProps<MakeSlots<{\n default: [LoaderSlotProps]\n }>>>,\n { slots }: SetupContext,\n) {\n return (\n <div class={`${props.name}__loader`}>\n { slots.default?.({\n color: props.color,\n isActive: props.active,\n } as LoaderSlotProps) || (\n <VProgressLinear\n active={ props.active }\n color={ props.color }\n height=\"2\"\n indeterminate\n />\n )}\n </div>\n )\n}\n"],"mappings":";AAAA;SACSA,e,mDAET;;AACA,SAASC,QAAT,QAAyB,KAAzB;SACSC,sB,EAAwBC,Y,6BAEjC;;AAaA;AACA,OAAO,MAAMC,eAAe,GAAGD,YAAY,CAAC;EAC1CE,OAAO,EAAEC;AADiC,CAAD,EAExC,QAFwC,CAApC;AAIP,OAAO,SAASC,SAAT,CACLC,KADK,EAGL;EAAA,IADAC,IACA,uEADOP,sBAAsB,EAC7B;EACA,MAAMQ,aAAa,GAAGT,QAAQ,CAAC,OAAO;IACpC,CAAE,GAAEQ,IAAK,WAAT,GAAsBD,KAAK,CAACH;EADQ,CAAP,CAAD,CAA9B;EAIA,OAAO;IAAEK;EAAF,CAAP;AACD;AAED,OAAO,SAASC,UAAT,CACLH,KADK,QASL;EAAA;;EAAA,IADA;IAAEI;EAAF,CACA;EACA;IAAA,SACe,GAAEJ,KAAK,CAACC,IAAK;EAD5B,IAEM,mBAAAG,KAAK,CAACC,OAAN,yCAAAD,KAAK,EAAW;IAChBE,KAAK,EAAEN,KAAK,CAACM,KADG;IAEhBC,QAAQ,EAAEP,KAAK,CAACQ;EAFA,CAAX,CAAL;IAAA,UAKWR,KAAK,CAACQ,MALjB;IAAA,SAMUR,KAAK,CAACM,KANhB;IAAA,UAOS,GAPT;IAAA;EAAA,QAFN;AAeD"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
// Locales
|
|
2
|
+
import en from "../locale/en.mjs"; // Composables
|
|
3
|
+
|
|
4
|
+
import { createRtl, RtlSymbol } from "./rtl.mjs"; // Utilities
|
|
5
|
+
|
|
1
6
|
import { computed, inject, provide, ref } from 'vue';
|
|
2
|
-
import { consoleError, consoleWarn, getObjectValueByPath } from "../util/index.mjs";
|
|
3
|
-
import en from "../locale/en.mjs"; // Types
|
|
7
|
+
import { consoleError, consoleWarn, getObjectValueByPath } from "../util/index.mjs"; // Types
|
|
4
8
|
|
|
5
9
|
export const LocaleAdapterSymbol = Symbol.for('vuetify:locale-adapter');
|
|
6
10
|
export const VuetifyLocaleSymbol = Symbol.for('vuetify:locale');
|
|
@@ -19,13 +23,11 @@ function isLocaleAdapter(x) {
|
|
|
19
23
|
return !!x && x.hasOwnProperty('getScope') && x.hasOwnProperty('createScope') && x.hasOwnProperty('createRoot');
|
|
20
24
|
}
|
|
21
25
|
|
|
22
|
-
export function
|
|
26
|
+
export function createLocale(app, options) {
|
|
23
27
|
const adapter = isLocaleAdapter(options) ? options : createDefaultLocaleAdapter(options);
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
rootInstance
|
|
28
|
-
};
|
|
28
|
+
const instance = adapter.createRoot(app);
|
|
29
|
+
app == null ? void 0 : app.provide(RtlSymbol, createRtl(instance, options));
|
|
30
|
+
return adapter;
|
|
29
31
|
}
|
|
30
32
|
const LANG_PREFIX = '$vuetify.';
|
|
31
33
|
|
|
@@ -102,6 +104,7 @@ export function createDefaultLocaleAdapter(options) {
|
|
|
102
104
|
en
|
|
103
105
|
}
|
|
104
106
|
});
|
|
107
|
+
if (!app) throw new Error('[Vuetify] Could not find default app instance');
|
|
105
108
|
app.provide(VuetifyLocaleSymbol, rootScope);
|
|
106
109
|
return rootScope;
|
|
107
110
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/composables/locale.ts"],"names":["computed","inject","provide","ref","consoleError","consoleWarn","getObjectValueByPath","en","LocaleAdapterSymbol","Symbol","for","VuetifyLocaleSymbol","provideLocale","props","adapter","Error","createScope","useLocale","getScope","isLocaleAdapter","x","hasOwnProperty","createLocaleAdapter","app","options","createDefaultLocaleAdapter","rootInstance","createRoot","LANG_PREFIX","replace","str","params","match","index","String","createTranslateFunction","current","fallback","messages","key","startsWith","shortKey","currentLocale","value","fallbackLocale","createNumberFunction","numberFormat","Intl","NumberFormat","format","t","n","rootScope","defaultLocale","currentScope","newScope","locale"],"mappings":"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","sourcesContent":["import { computed, inject, provide, ref } from 'vue'\nimport { consoleError, consoleWarn, getObjectValueByPath } from '@/util'\n\nimport en from '@/locale/en'\n\n// Types\nimport type { App, InjectionKey, Ref } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport interface LocaleMessages {\n [key: string]: LocaleMessages | string\n}\n\nexport interface LocaleOptions {\n defaultLocale?: string\n fallbackLocale?: string\n messages?: LocaleMessages\n}\n\nexport interface LocaleProps {\n locale?: string\n fallbackLocale?: string\n messages?: LocaleMessages\n}\n\nexport interface LocaleInstance {\n current: Ref<string>\n fallback: Ref<string>\n messages: Ref<LocaleMessages>\n t: (key: string, ...params: unknown[]) => string\n n: (value: number) => string\n}\n\nexport interface LocaleAdapter {\n createRoot: (app: App) => LocaleInstance\n getScope: () => LocaleInstance\n createScope: (options?: LocaleProps) => LocaleInstance\n}\n\nexport const LocaleAdapterSymbol: InjectionKey<LocaleAdapter> = Symbol.for('vuetify:locale-adapter')\nexport const VuetifyLocaleSymbol: InjectionKey<LocaleInstance> = Symbol.for('vuetify:locale')\n\nexport function provideLocale (props?: LocaleProps) {\n const adapter = inject(LocaleAdapterSymbol)\n\n if (!adapter) throw new Error('[Vuetify] Could not find injected locale adapter')\n\n return adapter.createScope(props)\n}\n\nexport function useLocale () {\n const adapter = inject(LocaleAdapterSymbol)\n\n if (!adapter) throw new Error('[Vuetify] Could not find injected locale adapter')\n\n return adapter.getScope()\n}\n\nfunction isLocaleAdapter (x: any): x is LocaleAdapter {\n return !!x && x.hasOwnProperty('getScope') && x.hasOwnProperty('createScope') && x.hasOwnProperty('createRoot')\n}\n\nexport function createLocaleAdapter (app: App, options?: LocaleOptions | LocaleAdapter) {\n const adapter = isLocaleAdapter(options) ? options : createDefaultLocaleAdapter(options)\n\n const rootInstance = adapter.createRoot(app)\n\n return { adapter, rootInstance }\n}\n\nconst LANG_PREFIX = '$vuetify.'\n\nconst replace = (str: string, params: unknown[]) => {\n return str.replace(/\\{(\\d+)\\}/g, (match: string, index: string) => {\n /* istanbul ignore next */\n return String(params[+index])\n })\n}\n\nconst createTranslateFunction = (\n current: Ref<string>,\n fallback: Ref<string>,\n messages: Ref<LocaleMessages>,\n) => {\n return (key: string, ...params: unknown[]) => {\n if (!key.startsWith(LANG_PREFIX)) {\n return replace(key, params)\n }\n\n const shortKey = key.replace(LANG_PREFIX, '')\n const currentLocale = current.value && messages.value[current.value]\n const fallbackLocale = fallback.value && messages.value[fallback.value]\n\n let str: string = getObjectValueByPath(currentLocale, shortKey, null)\n\n if (!str) {\n consoleWarn(`Translation key \"${key}\" not found in \"${current.value}\", trying fallback locale`)\n str = getObjectValueByPath(fallbackLocale, shortKey, null)\n }\n\n if (!str) {\n consoleError(`Translation key \"${key}\" not found in fallback`)\n str = key\n }\n\n if (typeof str !== 'string') {\n consoleError(`Translation key \"${key}\" has a non-string value`)\n str = key\n }\n\n return replace(str, params)\n }\n}\n\nfunction createNumberFunction (current: Ref<string>, fallback: Ref<string>) {\n return (value: number, options?: Intl.NumberFormatOptions) => {\n const numberFormat = new Intl.NumberFormat([current.value, fallback.value], options)\n\n return numberFormat.format(value)\n }\n}\n\nexport function createDefaultLocaleAdapter (options?: LocaleOptions): LocaleAdapter {\n const createScope = (options: {\n current: MaybeRef<string>\n fallback: MaybeRef<string>\n messages: MaybeRef<LocaleMessages>\n }) => {\n const current = ref(options.current)\n const fallback = ref(options.fallback)\n const messages = ref(options.messages)\n\n return {\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n }\n }\n\n return {\n createRoot: app => {\n const rootScope = createScope({\n current: options?.defaultLocale ?? 'en',\n fallback: options?.fallbackLocale ?? 'en',\n messages: options?.messages ?? { en },\n })\n\n app.provide(VuetifyLocaleSymbol, rootScope)\n\n return rootScope\n },\n getScope: () => {\n const currentScope = inject(VuetifyLocaleSymbol)\n\n if (!currentScope) throw new Error('[Vuetify] Could not find injected locale instance')\n\n return currentScope\n },\n createScope: options => {\n const currentScope = inject(VuetifyLocaleSymbol)\n\n if (!currentScope) throw new Error('[Vuetify] Could not find injected locale instance')\n\n const newScope = createScope({\n current: computed(() => options?.locale ?? currentScope.current.value),\n fallback: computed(() => options?.locale ?? currentScope.fallback.value),\n messages: computed(() => options?.messages ?? currentScope.messages.value),\n })\n\n provide(VuetifyLocaleSymbol, newScope)\n\n return newScope\n },\n }\n}\n"],"file":"locale.mjs"}
|
|
1
|
+
{"version":3,"file":"locale.mjs","names":["en","createRtl","RtlSymbol","computed","inject","provide","ref","consoleError","consoleWarn","getObjectValueByPath","LocaleAdapterSymbol","Symbol","for","VuetifyLocaleSymbol","provideLocale","props","adapter","Error","createScope","useLocale","getScope","isLocaleAdapter","x","hasOwnProperty","createLocale","app","options","createDefaultLocaleAdapter","instance","createRoot","LANG_PREFIX","replace","str","params","match","index","String","createTranslateFunction","current","fallback","messages","key","startsWith","shortKey","currentLocale","value","fallbackLocale","createNumberFunction","numberFormat","Intl","NumberFormat","format","t","n","rootScope","defaultLocale","currentScope","newScope","locale"],"sources":["../../src/composables/locale.ts"],"sourcesContent":["// Locales\nimport en from '@/locale/en'\n\n// Composables\nimport { createRtl, RtlSymbol } from '@/composables/rtl'\n\n// Utilities\nimport { computed, inject, provide, ref } from 'vue'\nimport { consoleError, consoleWarn, getObjectValueByPath } from '@/util'\n\n// Types\nimport type { RtlOptions } from '@/composables/rtl'\nimport type { App, InjectionKey, Ref } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport interface LocaleMessages {\n [key: string]: LocaleMessages | string\n}\n\nexport interface LocaleOptions {\n defaultLocale?: string\n fallbackLocale?: string\n messages?: LocaleMessages\n}\n\nexport interface LocaleProps {\n locale?: string\n fallbackLocale?: string\n messages?: LocaleMessages\n}\n\nexport interface LocaleInstance {\n current: Ref<string>\n fallback: Ref<string>\n messages: Ref<LocaleMessages>\n t: (key: string, ...params: unknown[]) => string\n n: (value: number) => string\n}\n\nexport interface LocaleAdapter {\n createRoot: (app?: App) => LocaleInstance\n getScope: () => LocaleInstance\n createScope: (options?: LocaleProps) => LocaleInstance\n}\n\nexport const LocaleAdapterSymbol: InjectionKey<LocaleAdapter> = Symbol.for('vuetify:locale-adapter')\nexport const VuetifyLocaleSymbol: InjectionKey<LocaleInstance> = Symbol.for('vuetify:locale')\n\nexport function provideLocale (props?: LocaleProps) {\n const adapter = inject(LocaleAdapterSymbol)\n\n if (!adapter) throw new Error('[Vuetify] Could not find injected locale adapter')\n\n return adapter.createScope(props)\n}\n\nexport function useLocale () {\n const adapter = inject(LocaleAdapterSymbol)\n\n if (!adapter) throw new Error('[Vuetify] Could not find injected locale adapter')\n\n return adapter.getScope()\n}\n\nfunction isLocaleAdapter (x: any): x is LocaleAdapter {\n return !!x && x.hasOwnProperty('getScope') && x.hasOwnProperty('createScope') && x.hasOwnProperty('createRoot')\n}\n\nexport function createLocale (\n app: App,\n options?: (LocaleOptions & RtlOptions) | (LocaleAdapter & RtlOptions),\n) {\n const adapter = isLocaleAdapter(options) ? options : createDefaultLocaleAdapter(options)\n const instance = adapter.createRoot(app)\n\n app?.provide(RtlSymbol, createRtl(instance, options))\n\n return adapter\n}\n\nconst LANG_PREFIX = '$vuetify.'\n\nconst replace = (str: string, params: unknown[]) => {\n return str.replace(/\\{(\\d+)\\}/g, (match: string, index: string) => {\n /* istanbul ignore next */\n return String(params[+index])\n })\n}\n\nconst createTranslateFunction = (\n current: Ref<string>,\n fallback: Ref<string>,\n messages: Ref<LocaleMessages>,\n) => {\n return (key: string, ...params: unknown[]) => {\n if (!key.startsWith(LANG_PREFIX)) {\n return replace(key, params)\n }\n\n const shortKey = key.replace(LANG_PREFIX, '')\n const currentLocale = current.value && messages.value[current.value]\n const fallbackLocale = fallback.value && messages.value[fallback.value]\n\n let str: string = getObjectValueByPath(currentLocale, shortKey, null)\n\n if (!str) {\n consoleWarn(`Translation key \"${key}\" not found in \"${current.value}\", trying fallback locale`)\n str = getObjectValueByPath(fallbackLocale, shortKey, null)\n }\n\n if (!str) {\n consoleError(`Translation key \"${key}\" not found in fallback`)\n str = key\n }\n\n if (typeof str !== 'string') {\n consoleError(`Translation key \"${key}\" has a non-string value`)\n str = key\n }\n\n return replace(str, params)\n }\n}\n\nfunction createNumberFunction (current: Ref<string>, fallback: Ref<string>) {\n return (value: number, options?: Intl.NumberFormatOptions) => {\n const numberFormat = new Intl.NumberFormat([current.value, fallback.value], options)\n\n return numberFormat.format(value)\n }\n}\n\nexport function createDefaultLocaleAdapter (options?: LocaleOptions): LocaleAdapter {\n const createScope = (options: {\n current: MaybeRef<string>\n fallback: MaybeRef<string>\n messages: MaybeRef<LocaleMessages>\n }) => {\n const current = ref(options.current)\n const fallback = ref(options.fallback)\n const messages = ref(options.messages)\n\n return {\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n }\n }\n\n return {\n createRoot: app => {\n const rootScope = createScope({\n current: options?.defaultLocale ?? 'en',\n fallback: options?.fallbackLocale ?? 'en',\n messages: options?.messages ?? { en },\n })\n\n if (!app) throw new Error('[Vuetify] Could not find default app instance')\n\n app.provide(VuetifyLocaleSymbol, rootScope)\n\n return rootScope\n },\n getScope: () => {\n const currentScope = inject(VuetifyLocaleSymbol)\n\n if (!currentScope) throw new Error('[Vuetify] Could not find injected locale instance')\n\n return currentScope\n },\n createScope: options => {\n const currentScope = inject(VuetifyLocaleSymbol)\n\n if (!currentScope) throw new Error('[Vuetify] Could not find injected locale instance')\n\n const newScope = createScope({\n current: computed(() => options?.locale ?? currentScope.current.value),\n fallback: computed(() => options?.locale ?? currentScope.fallback.value),\n messages: computed(() => options?.messages ?? currentScope.messages.value),\n })\n\n provide(VuetifyLocaleSymbol, newScope)\n\n return newScope\n },\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// Composables
|
|
2
|
+
import { useRtl } from "./rtl.mjs"; // Utilities
|
|
3
|
+
|
|
4
|
+
import { computed } from 'vue';
|
|
5
|
+
import { parseAnchor, propsFactory } from "../util/index.mjs"; // Types
|
|
6
|
+
|
|
7
|
+
const oppositeMap = {
|
|
8
|
+
center: 'center',
|
|
9
|
+
top: 'bottom',
|
|
10
|
+
bottom: 'top',
|
|
11
|
+
left: 'right',
|
|
12
|
+
right: 'left'
|
|
13
|
+
};
|
|
14
|
+
export const makeLocationProps = propsFactory({
|
|
15
|
+
location: String
|
|
16
|
+
}, 'location');
|
|
17
|
+
export function useLocation(props) {
|
|
18
|
+
let opposite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
19
|
+
let offset = arguments.length > 2 ? arguments[2] : undefined;
|
|
20
|
+
const {
|
|
21
|
+
isRtl
|
|
22
|
+
} = useRtl();
|
|
23
|
+
|
|
24
|
+
function toPhysical(side) {
|
|
25
|
+
return side === 'start' ? isRtl.value ? 'right' : 'left' : side === 'end' ? isRtl.value ? 'left' : 'right' : side;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const locationStyles = computed(() => {
|
|
29
|
+
if (!props.location) return {};
|
|
30
|
+
const anchor = parseAnchor(props.location.split(' ').length > 1 ? props.location : `${props.location} center`);
|
|
31
|
+
const side = toPhysical(anchor.side);
|
|
32
|
+
const align = toPhysical(anchor.align);
|
|
33
|
+
|
|
34
|
+
function getOffset(side) {
|
|
35
|
+
return offset ? offset(side) : 0;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const styles = {};
|
|
39
|
+
|
|
40
|
+
if (side !== 'center') {
|
|
41
|
+
if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`;else styles[side] = 0;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (align !== 'center') {
|
|
45
|
+
if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`;else styles[align] = 0;
|
|
46
|
+
} else {
|
|
47
|
+
if (side === 'center') styles.top = styles.left = '50%';else {
|
|
48
|
+
styles[{
|
|
49
|
+
top: 'left',
|
|
50
|
+
bottom: 'left',
|
|
51
|
+
left: 'top',
|
|
52
|
+
right: 'top'
|
|
53
|
+
}[side]] = '50%';
|
|
54
|
+
}
|
|
55
|
+
styles.transform = {
|
|
56
|
+
top: 'translateX(-50%)',
|
|
57
|
+
bottom: 'translateX(-50%)',
|
|
58
|
+
left: 'translateY(-50%)',
|
|
59
|
+
right: 'translateY(-50%)',
|
|
60
|
+
center: 'translate(-50%, -50%)'
|
|
61
|
+
}[side];
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return styles;
|
|
65
|
+
});
|
|
66
|
+
return {
|
|
67
|
+
locationStyles
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=location.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"location.mjs","names":["useRtl","computed","parseAnchor","propsFactory","oppositeMap","center","top","bottom","left","right","makeLocationProps","location","String","useLocation","props","opposite","offset","isRtl","toPhysical","side","value","locationStyles","anchor","split","length","align","getOffset","styles","transform"],"sources":["../../src/composables/location.ts"],"sourcesContent":["// Composables\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { computed } from 'vue'\nimport { parseAnchor, propsFactory } from '@/util'\n\n// Types\nimport type { CSSProperties, PropType } from 'vue'\nimport type { Anchor } from '@/util'\n\nconst oppositeMap = {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n} as const\n\nexport interface LocationProps {\n location: Anchor | undefined\n}\n\nexport const makeLocationProps = propsFactory({\n location: String as PropType<Anchor>,\n}, 'location')\n\nexport function useLocation (props: LocationProps, opposite = false, offset?: (side: string) => number) {\n const { isRtl } = useRtl()\n\n function toPhysical (side: string) {\n return (\n side === 'start' ? (isRtl.value ? 'right' : 'left')\n : side === 'end' ? (isRtl.value ? 'left' : 'right')\n : side\n ) as 'right' | 'left' | 'top' | 'bottom' | 'center'\n }\n\n const locationStyles = computed(() => {\n if (!props.location) return {}\n\n const anchor = parseAnchor(\n props.location.split(' ').length > 1\n ? props.location\n : `${props.location} center` as Anchor\n )\n\n const side = toPhysical(anchor.side)\n const align = toPhysical(anchor.align)\n\n function getOffset (side: string) {\n return offset\n ? offset(side)\n : 0\n }\n\n const styles = {} as CSSProperties\n\n if (side !== 'center') {\n if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`\n else styles[side] = 0\n }\n if (align !== 'center') {\n if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`\n else styles[align] = 0\n } else {\n if (side === 'center') styles.top = styles.left = '50%'\n else {\n styles[({\n top: 'left',\n bottom: 'left',\n left: 'top',\n right: 'top',\n } as const)[side]] = '50%'\n }\n styles.transform = {\n top: 'translateX(-50%)',\n bottom: 'translateX(-50%)',\n left: 'translateY(-50%)',\n right: 'translateY(-50%)',\n center: 'translate(-50%, -50%)',\n }[side]\n }\n\n return styles\n })\n\n return { locationStyles }\n}\n"],"mappings":"AAAA;SACSA,M,qBAET;;AACA,SAASC,QAAT,QAAyB,KAAzB;SACSC,W,EAAaC,Y,6BAEtB;;AAIA,MAAMC,WAAW,GAAG;EAClBC,MAAM,EAAE,QADU;EAElBC,GAAG,EAAE,QAFa;EAGlBC,MAAM,EAAE,KAHU;EAIlBC,IAAI,EAAE,OAJY;EAKlBC,KAAK,EAAE;AALW,CAApB;AAYA,OAAO,MAAMC,iBAAiB,GAAGP,YAAY,CAAC;EAC5CQ,QAAQ,EAAEC;AADkC,CAAD,EAE1C,UAF0C,CAAtC;AAIP,OAAO,SAASC,WAAT,CAAsBC,KAAtB,EAAiG;EAAA,IAArDC,QAAqD,uEAA1C,KAA0C;EAAA,IAAnCC,MAAmC;EACtG,MAAM;IAAEC;EAAF,IAAYjB,MAAM,EAAxB;;EAEA,SAASkB,UAAT,CAAqBC,IAArB,EAAmC;IACjC,OACEA,IAAI,KAAK,OAAT,GAAoBF,KAAK,CAACG,KAAN,GAAc,OAAd,GAAwB,MAA5C,GACED,IAAI,KAAK,KAAT,GAAkBF,KAAK,CAACG,KAAN,GAAc,MAAd,GAAuB,OAAzC,GACAD,IAHJ;EAKD;;EAED,MAAME,cAAc,GAAGpB,QAAQ,CAAC,MAAM;IACpC,IAAI,CAACa,KAAK,CAACH,QAAX,EAAqB,OAAO,EAAP;IAErB,MAAMW,MAAM,GAAGpB,WAAW,CACxBY,KAAK,CAACH,QAAN,CAAeY,KAAf,CAAqB,GAArB,EAA0BC,MAA1B,GAAmC,CAAnC,GACIV,KAAK,CAACH,QADV,GAEK,GAAEG,KAAK,CAACH,QAAS,SAHE,CAA1B;IAMA,MAAMQ,IAAI,GAAGD,UAAU,CAACI,MAAM,CAACH,IAAR,CAAvB;IACA,MAAMM,KAAK,GAAGP,UAAU,CAACI,MAAM,CAACG,KAAR,CAAxB;;IAEA,SAASC,SAAT,CAAoBP,IAApB,EAAkC;MAChC,OAAOH,MAAM,GACTA,MAAM,CAACG,IAAD,CADG,GAET,CAFJ;IAGD;;IAED,MAAMQ,MAAM,GAAG,EAAf;;IAEA,IAAIR,IAAI,KAAK,QAAb,EAAuB;MACrB,IAAIJ,QAAJ,EAAcY,MAAM,CAACvB,WAAW,CAACe,IAAD,CAAZ,CAAN,GAA6B,eAAcO,SAAS,CAACP,IAAD,CAAO,KAA3D,CAAd,KACKQ,MAAM,CAACR,IAAD,CAAN,GAAe,CAAf;IACN;;IACD,IAAIM,KAAK,KAAK,QAAd,EAAwB;MACtB,IAAIV,QAAJ,EAAcY,MAAM,CAACvB,WAAW,CAACqB,KAAD,CAAZ,CAAN,GAA8B,eAAcC,SAAS,CAACD,KAAD,CAAQ,KAA7D,CAAd,KACKE,MAAM,CAACF,KAAD,CAAN,GAAgB,CAAhB;IACN,CAHD,MAGO;MACL,IAAIN,IAAI,KAAK,QAAb,EAAuBQ,MAAM,CAACrB,GAAP,GAAaqB,MAAM,CAACnB,IAAP,GAAc,KAA3B,CAAvB,KACK;QACHmB,MAAM,CAAE;UACNrB,GAAG,EAAE,MADC;UAENC,MAAM,EAAE,MAFF;UAGNC,IAAI,EAAE,KAHA;UAINC,KAAK,EAAE;QAJD,CAAD,CAKKU,IALL,CAAD,CAAN,GAKqB,KALrB;MAMD;MACDQ,MAAM,CAACC,SAAP,GAAmB;QACjBtB,GAAG,EAAE,kBADY;QAEjBC,MAAM,EAAE,kBAFS;QAGjBC,IAAI,EAAE,kBAHW;QAIjBC,KAAK,EAAE,kBAJU;QAKjBJ,MAAM,EAAE;MALS,EAMjBc,IANiB,CAAnB;IAOD;;IAED,OAAOQ,MAAP;EACD,CA/C8B,CAA/B;EAiDA,OAAO;IAAEN;EAAF,CAAP;AACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"mutationObserver.mjs","names":["isComponentInstance","onBeforeUnmount","onMounted","ref","watch","useMutationObserver","handler","options","mutationRef","once","immediate","optionKeys","defaultValue","Object","keys","length","observer","MutationObserver","mutations","disconnect","newValue","oldValue","el","$el","observe","attributes","attr","characterData","char","childList","child","subtree","sub","flush"],"sources":["../../src/composables/mutationObserver.ts"],"sourcesContent":["// Utilities\nimport { isComponentInstance } from '@/util'\nimport { onBeforeUnmount, onMounted, ref, watch } from 'vue'\n\n// Types\nimport type { ComponentPublicInstance } from 'vue'\n\nexport interface MutationOptions {\n attr?: boolean\n char?: boolean\n child?: boolean\n sub?: boolean\n once?: boolean\n immediate?: boolean\n}\n\nexport function useMutationObserver (\n handler?: MutationCallback,\n options?: MutationOptions,\n) {\n const mutationRef = ref<ComponentPublicInstance | HTMLElement>()\n const { once, immediate, ...optionKeys } = options || {}\n const defaultValue = !Object.keys(optionKeys).length\n\n const observer = new MutationObserver((\n mutations: MutationRecord[],\n observer: MutationObserver\n ) => {\n handler?.(mutations, observer)\n\n if (options?.once) observer.disconnect()\n })\n\n onMounted(() => {\n if (!options?.immediate) return\n\n handler?.([], observer)\n })\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(mutationRef, (newValue, oldValue) => {\n if (oldValue) observer.disconnect()\n\n const el = isComponentInstance(newValue) ? newValue.$el : newValue\n\n if (!el) return\n\n observer.observe(el, {\n attributes: options?.attr ?? defaultValue,\n characterData: options?.char ?? defaultValue,\n childList: options?.child ?? defaultValue,\n subtree: options?.sub ?? defaultValue,\n })\n }, {\n flush: 'post',\n })\n\n return { mutationRef }\n}\n"],"mappings":"AAAA;SACSA,mB;AACT,SAASC,eAAT,EAA0BC,SAA1B,EAAqCC,GAArC,EAA0CC,KAA1C,QAAuD,KAAvD,C,CAEA;;AAYA,OAAO,SAASC,mBAAT,CACLC,OADK,EAELC,OAFK,EAGL;EACA,MAAMC,WAAW,GAAGL,GAAG,EAAvB;EACA,MAAM;IAAEM,IAAF;IAAQC,SAAR;IAAmB,GAAGC;EAAtB,IAAqCJ,OAAO,IAAI,EAAtD;EACA,MAAMK,YAAY,GAAG,CAACC,MAAM,CAACC,IAAP,CAAYH,UAAZ,EAAwBI,MAA9C;EAEA,MAAMC,QAAQ,GAAG,IAAIC,gBAAJ,CAAqB,CACpCC,SADoC,EAEpCF,QAFoC,KAGjC;IACHV,OAAO,QAAP,YAAAA,OAAO,CAAGY,SAAH,EAAcF,QAAd,CAAP;IAEA,IAAIT,OAAJ,YAAIA,OAAO,CAAEE,IAAb,EAAmBO,QAAQ,CAACG,UAAT;EACpB,CAPgB,CAAjB;EASAjB,SAAS,CAAC,MAAM;IACd,IAAI,EAACK,OAAD,YAACA,OAAO,CAAEG,SAAV,CAAJ,EAAyB;IAEzBJ,OAAO,QAAP,YAAAA,OAAO,CAAG,EAAH,EAAOU,QAAP,CAAP;EACD,CAJQ,CAAT;EAMAf,eAAe,CAAC,MAAM;IACpBe,QAAQ,CAACG,UAAT;EACD,CAFc,CAAf;EAIAf,KAAK,CAACI,WAAD,EAAc,CAACY,QAAD,EAAWC,QAAX,KAAwB;IAAA;;IACzC,IAAIA,QAAJ,EAAcL,QAAQ,CAACG,UAAT;IAEd,MAAMG,EAAE,GAAGtB,mBAAmB,CAACoB,QAAD,CAAnB,GAAgCA,QAAQ,CAACG,GAAzC,GAA+CH,QAA1D;IAEA,IAAI,CAACE,EAAL,EAAS;IAETN,QAAQ,CAACQ,OAAT,CAAiBF,EAAjB,EAAqB;MACnBG,UAAU,mBAAElB,OAAF,oBAAEA,OAAO,CAAEmB,IAAX,4BAAmBd,YADV;MAEnBe,aAAa,mBAAEpB,OAAF,oBAAEA,OAAO,CAAEqB,IAAX,4BAAmBhB,YAFb;MAGnBiB,SAAS,oBAAEtB,OAAF,oBAAEA,OAAO,CAAEuB,KAAX,6BAAoBlB,YAHV;MAInBmB,OAAO,kBAAExB,OAAF,oBAAEA,OAAO,CAAEyB,GAAX,2BAAkBpB;IAJN,CAArB;EAMD,CAbI,EAaF;IACDqB,KAAK,EAAE;EADN,CAbE,CAAL;EAiBA,OAAO;IAAEzB;EAAF,CAAP;AACD"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useProxiedModel } from "../proxiedModel.mjs";
|
|
2
2
|
import { getCurrentInstance, getUid, propsFactory } from "../../util/index.mjs";
|
|
3
3
|
import { computed, inject, onBeforeUnmount, provide, ref } from 'vue';
|
|
4
|
-
import { multipleOpenStrategy, singleOpenStrategy } from "./openStrategies.mjs";
|
|
5
|
-
import { classicSelectStrategy, independentSelectStrategy, independentSingleSelectStrategy, leafSelectStrategy } from "./selectStrategies.mjs"; // Types
|
|
4
|
+
import { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from "./openStrategies.mjs";
|
|
5
|
+
import { classicSelectStrategy, independentSelectStrategy, independentSingleSelectStrategy, leafSelectStrategy, leafSingleSelectStrategy } from "./selectStrategies.mjs"; // Types
|
|
6
6
|
|
|
7
7
|
export const VNestedSymbol = Symbol.for('vuetify:nested');
|
|
8
8
|
export const emptyNested = {
|
|
@@ -36,26 +36,29 @@ export const useNested = props => {
|
|
|
36
36
|
|
|
37
37
|
switch (props.selectStrategy) {
|
|
38
38
|
case 'single-leaf':
|
|
39
|
-
return
|
|
39
|
+
return leafSingleSelectStrategy(props.mandatory);
|
|
40
40
|
|
|
41
41
|
case 'leaf':
|
|
42
|
-
return leafSelectStrategy();
|
|
42
|
+
return leafSelectStrategy(props.mandatory);
|
|
43
43
|
|
|
44
44
|
case 'independent':
|
|
45
|
-
return independentSelectStrategy;
|
|
45
|
+
return independentSelectStrategy(props.mandatory);
|
|
46
46
|
|
|
47
47
|
case 'single-independent':
|
|
48
|
-
return independentSingleSelectStrategy;
|
|
48
|
+
return independentSingleSelectStrategy(props.mandatory);
|
|
49
49
|
|
|
50
50
|
case 'classic':
|
|
51
51
|
default:
|
|
52
|
-
return classicSelectStrategy;
|
|
52
|
+
return classicSelectStrategy(props.mandatory);
|
|
53
53
|
}
|
|
54
54
|
});
|
|
55
55
|
const openStrategy = computed(() => {
|
|
56
56
|
if (typeof props.openStrategy === 'function') return props.openStrategy;
|
|
57
57
|
|
|
58
58
|
switch (props.openStrategy) {
|
|
59
|
+
case 'list':
|
|
60
|
+
return listOpenStrategy;
|
|
61
|
+
|
|
59
62
|
case 'single':
|
|
60
63
|
return singleOpenStrategy;
|
|
61
64
|
|
|
@@ -126,7 +129,7 @@ export const useNested = props => {
|
|
|
126
129
|
path: getPath(id),
|
|
127
130
|
event
|
|
128
131
|
});
|
|
129
|
-
const newOpened = openStrategy.value({
|
|
132
|
+
const newOpened = openStrategy.value.open({
|
|
130
133
|
id,
|
|
131
134
|
value,
|
|
132
135
|
opened: new Set(opened.value),
|
|
@@ -149,10 +152,19 @@ export const useNested = props => {
|
|
|
149
152
|
selected: new Map(selected.value),
|
|
150
153
|
children: children.value,
|
|
151
154
|
parents: parents.value,
|
|
152
|
-
event
|
|
153
|
-
mandatory: props.mandatory
|
|
155
|
+
event
|
|
154
156
|
});
|
|
155
157
|
newSelected && (selected.value = newSelected);
|
|
158
|
+
const newOpened = openStrategy.value.select({
|
|
159
|
+
id,
|
|
160
|
+
value,
|
|
161
|
+
selected: new Map(selected.value),
|
|
162
|
+
opened: new Set(opened.value),
|
|
163
|
+
children: children.value,
|
|
164
|
+
parents: parents.value,
|
|
165
|
+
event
|
|
166
|
+
});
|
|
167
|
+
newOpened && (opened.value = newOpened);
|
|
156
168
|
},
|
|
157
169
|
children,
|
|
158
170
|
parents
|
|
@@ -176,11 +188,12 @@ export const useNestedItem = (id, isGroup) => {
|
|
|
176
188
|
select: (selected, e) => parent.root.select(computedId.value, selected, e),
|
|
177
189
|
isSelected: computed(() => parent.root.selected.value.get(computedId.value) === 'on'),
|
|
178
190
|
isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),
|
|
179
|
-
isLeaf: computed(() => !parent.root.children.value.get(computedId.value))
|
|
191
|
+
isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),
|
|
192
|
+
isGroupActivator: parent.isGroupActivator
|
|
180
193
|
};
|
|
181
|
-
!parent.
|
|
194
|
+
!parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup);
|
|
182
195
|
onBeforeUnmount(() => {
|
|
183
|
-
!parent.
|
|
196
|
+
!parent.isGroupActivator && parent.root.unregister(computedId.value);
|
|
184
197
|
});
|
|
185
198
|
isGroup && provide(VNestedSymbol, item);
|
|
186
199
|
return item;
|
|
@@ -188,7 +201,7 @@ export const useNestedItem = (id, isGroup) => {
|
|
|
188
201
|
export const useNestedGroupActivator = () => {
|
|
189
202
|
const parent = inject(VNestedSymbol, emptyNested);
|
|
190
203
|
provide(VNestedSymbol, { ...parent,
|
|
191
|
-
|
|
204
|
+
isGroupActivator: true
|
|
192
205
|
});
|
|
193
206
|
};
|
|
194
207
|
//# sourceMappingURL=nested.mjs.map
|