@vuetify/nightly 3.8.6-master.2025-05-23 → 3.8.6-master.2025-05-26
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 +9 -3
- package/dist/json/attributes.json +2828 -2828
- package/dist/json/importMap-labs.json +24 -24
- package/dist/json/importMap.json +190 -190
- package/dist/json/web-types.json +5204 -5204
- package/dist/vuetify-labs.cjs +876 -873
- package/dist/vuetify-labs.css +5138 -5138
- package/dist/vuetify-labs.d.ts +69 -69
- package/dist/vuetify-labs.esm.js +877 -874
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +876 -873
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +763 -760
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +5182 -5182
- package/dist/vuetify.d.ts +69 -69
- package/dist/vuetify.esm.js +764 -761
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +763 -760
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +960 -960
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.js +11 -11
- package/lib/components/VAlert/VAlert.js.map +1 -1
- package/lib/components/VApp/VApp.js +5 -5
- package/lib/components/VApp/VApp.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.js +9 -9
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VAvatar/VAvatar.js +4 -4
- package/lib/components/VAvatar/VAvatar.js.map +1 -1
- package/lib/components/VBadge/VBadge.js +3 -3
- package/lib/components/VBadge/VBadge.js.map +1 -1
- package/lib/components/VBanner/VBanner.js +6 -6
- package/lib/components/VBanner/VBanner.js.map +1 -1
- package/lib/components/VBanner/VBannerActions.js +4 -4
- package/lib/components/VBanner/VBannerActions.js.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.js +6 -6
- package/lib/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.js +5 -5
- package/lib/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.js +4 -4
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.js.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js +5 -5
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
- package/lib/components/VBtn/VBtn.js +7 -7
- package/lib/components/VBtn/VBtn.js.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.js +4 -4
- package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
- package/lib/components/VCard/VCard.js +5 -5
- package/lib/components/VCard/VCard.js.map +1 -1
- package/lib/components/VCard/VCardActions.js +4 -4
- package/lib/components/VCard/VCardActions.js.map +1 -1
- package/lib/components/VCard/VCardItem.js +9 -9
- package/lib/components/VCard/VCardItem.js.map +1 -1
- package/lib/components/VCard/VCardSubtitle.js +4 -4
- package/lib/components/VCard/VCardSubtitle.js.map +1 -1
- package/lib/components/VCard/VCardText.js +4 -4
- package/lib/components/VCard/VCardText.js.map +1 -1
- package/lib/components/VCarousel/VCarousel.js +4 -4
- package/lib/components/VCarousel/VCarousel.js.map +1 -1
- package/lib/components/VChip/VChip.js +11 -11
- package/lib/components/VChip/VChip.js.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.js +3 -3
- package/lib/components/VColorPicker/VColorPicker.js.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.js +9 -9
- package/lib/components/VColorPicker/VColorPickerCanvas.js.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.js +6 -6
- package/lib/components/VColorPicker/VColorPickerEdit.js.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.js +11 -11
- package/lib/components/VColorPicker/VColorPickerPreview.js.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.js +10 -10
- package/lib/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.js +9 -9
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VConfirmEdit/VConfirmEdit.js +3 -3
- package/lib/components/VConfirmEdit/VConfirmEdit.js.map +1 -1
- package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.js +3 -3
- package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.js.map +1 -1
- package/lib/components/VCounter/VCounter.js +5 -5
- package/lib/components/VCounter/VCounter.js.map +1 -1
- package/lib/components/VDataIterator/VDataIterator.js +5 -5
- package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.js +4 -4
- package/lib/components/VDataTable/VDataTable.js.map +1 -1
- package/lib/components/VDataTable/VDataTableColumn.js +5 -5
- package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
- package/lib/components/VDataTable/VDataTableFooter.js +6 -6
- package/lib/components/VDataTable/VDataTableFooter.js.map +1 -1
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.js +7 -7
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.js +11 -11
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRow.js +6 -6
- package/lib/components/VDataTable/VDataTableRow.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRows.js +7 -7
- package/lib/components/VDataTable/VDataTableRows.js.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.js +4 -4
- package/lib/components/VDataTable/VDataTableServer.js.map +1 -1
- package/lib/components/VDataTable/VDataTableVirtual.js +14 -14
- package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.js +3 -3
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerControls.js +5 -5
- package/lib/components/VDatePicker/VDatePickerControls.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerHeader.js +8 -8
- package/lib/components/VDatePicker/VDatePickerHeader.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.js +10 -10
- package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonths.js +5 -5
- package/lib/components/VDatePicker/VDatePickerMonths.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerYears.js +5 -5
- package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
- package/lib/components/VDialog/__test__/VDialog.spec.browser.js +5 -5
- package/lib/components/VDialog/__test__/VDialog.spec.browser.js.map +1 -1
- package/lib/components/VDivider/VDivider.js +10 -10
- package/lib/components/VDivider/VDivider.js.map +1 -1
- package/lib/components/VEmptyState/VEmptyState.js +14 -14
- package/lib/components/VEmptyState/VEmptyState.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.js +6 -6
- package/lib/components/VExpansionPanel/VExpansionPanel.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelText.js +5 -5
- package/lib/components/VExpansionPanel/VExpansionPanelText.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.js +10 -10
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.js +4 -4
- package/lib/components/VExpansionPanel/VExpansionPanels.js.map +1 -1
- package/lib/components/VFab/VFab.js +7 -7
- package/lib/components/VFab/VFab.js.map +1 -1
- package/lib/components/VField/VField.js +20 -18
- package/lib/components/VField/VField.js.map +1 -1
- package/lib/components/VField/VFieldLabel.js +4 -4
- package/lib/components/VField/VFieldLabel.js.map +1 -1
- package/lib/components/VFileInput/VFileInput.js +5 -5
- package/lib/components/VFileInput/VFileInput.js.map +1 -1
- package/lib/components/VFooter/VFooter.js +4 -4
- package/lib/components/VFooter/VFooter.js.map +1 -1
- package/lib/components/VForm/VForm.js +4 -4
- package/lib/components/VForm/VForm.js.map +1 -1
- package/lib/components/VGrid/VContainer.js +4 -4
- package/lib/components/VGrid/VContainer.js.map +1 -1
- package/lib/components/VIcon/VIcon.js +5 -5
- package/lib/components/VIcon/VIcon.js.map +1 -1
- package/lib/components/VImg/VImg.js +19 -19
- package/lib/components/VImg/VImg.js.map +1 -1
- package/lib/components/VInfiniteScroll/VInfiniteScroll.js +10 -10
- package/lib/components/VInfiniteScroll/VInfiniteScroll.js.map +1 -1
- package/lib/components/VInput/InputIcon.d.ts +1 -1
- package/lib/components/VInput/InputIcon.js +5 -4
- package/lib/components/VInput/InputIcon.js.map +1 -1
- package/lib/components/VInput/VInput.js +9 -9
- package/lib/components/VInput/VInput.js.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.js +3 -3
- package/lib/components/VItemGroup/VItemGroup.js.map +1 -1
- package/lib/components/VLabel/VLabel.js +5 -5
- package/lib/components/VLabel/VLabel.js.map +1 -1
- package/lib/components/VLayout/VLayout.js +4 -4
- package/lib/components/VLayout/VLayout.js.map +1 -1
- package/lib/components/VLayout/VLayoutItem.js +4 -4
- package/lib/components/VLayout/VLayoutItem.js.map +1 -1
- package/lib/components/VLazy/VLazy.js +6 -6
- package/lib/components/VLazy/VLazy.js.map +1 -1
- package/lib/components/VList/VList.js +4 -4
- package/lib/components/VList/VList.js.map +1 -1
- package/lib/components/VList/VListGroup.js +5 -5
- package/lib/components/VList/VListGroup.js.map +1 -1
- package/lib/components/VList/VListItem.js +11 -11
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VList/VListItemAction.js +4 -4
- package/lib/components/VList/VListItemAction.js.map +1 -1
- package/lib/components/VList/VListItemMedia.js +4 -4
- package/lib/components/VList/VListItemMedia.js.map +1 -1
- package/lib/components/VList/VListItemSubtitle.js +4 -4
- package/lib/components/VList/VListItemSubtitle.js.map +1 -1
- package/lib/components/VList/VListSubheader.js +6 -6
- package/lib/components/VList/VListSubheader.js.map +1 -1
- package/lib/components/VLocaleProvider/VLocaleProvider.js +4 -4
- package/lib/components/VLocaleProvider/VLocaleProvider.js.map +1 -1
- package/lib/components/VMain/VMain.js +5 -5
- package/lib/components/VMain/VMain.js.map +1 -1
- package/lib/components/VMessages/VMessages.js +4 -4
- package/lib/components/VMessages/VMessages.js.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.js +7 -7
- package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.js +8 -8
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.js +7 -7
- package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
- package/lib/components/VOverlay/VOverlay.js +8 -8
- package/lib/components/VOverlay/VOverlay.js.map +1 -1
- package/lib/components/VPagination/VPagination.js +11 -11
- package/lib/components/VPagination/VPagination.js.map +1 -1
- package/lib/components/VParallax/VParallax.js +4 -4
- package/lib/components/VParallax/VParallax.js.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.js +12 -12
- package/lib/components/VProgressCircular/VProgressCircular.js.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.js +26 -26
- package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.js +2 -2
- package/lib/components/VRadioGroup/VRadioGroup.js.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.js +5 -5
- package/lib/components/VRangeSlider/VRangeSlider.js.map +1 -1
- package/lib/components/VRating/VRating.js +14 -14
- package/lib/components/VRating/VRating.js.map +1 -1
- package/lib/components/VResponsive/VResponsive.js +9 -9
- package/lib/components/VResponsive/VResponsive.js.map +1 -1
- package/lib/components/VSelect/VSelect.js +7 -7
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.js +11 -11
- package/lib/components/VSelectionControl/VSelectionControl.js.map +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js +5 -5
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js.map +1 -1
- package/lib/components/VSheet/VSheet.js +3 -3
- package/lib/components/VSheet/VSheet.js.map +1 -1
- package/lib/components/VSkeletonLoader/VSkeletonLoader.js +4 -4
- package/lib/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.js +12 -12
- package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
- package/lib/components/VSlider/VSlider.js +4 -4
- package/lib/components/VSlider/VSlider.js.map +1 -1
- package/lib/components/VSlider/VSliderThumb.js +19 -19
- package/lib/components/VSlider/VSliderThumb.js.map +1 -1
- package/lib/components/VSlider/VSliderTrack.js +23 -23
- package/lib/components/VSlider/VSliderTrack.js.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.js +4 -4
- package/lib/components/VSnackbar/VSnackbar.js.map +1 -1
- package/lib/components/VSnackbarQueue/VSnackbarQueue.js +3 -3
- package/lib/components/VSnackbarQueue/VSnackbarQueue.js.map +1 -1
- package/lib/components/VSparkline/VBarline.js +12 -12
- package/lib/components/VSparkline/VBarline.js.map +1 -1
- package/lib/components/VSparkline/VTrendline.js +8 -8
- package/lib/components/VSparkline/VTrendline.js.map +1 -1
- package/lib/components/VStepper/VStepper.js +2 -2
- package/lib/components/VStepper/VStepper.js.map +1 -1
- package/lib/components/VStepper/VStepperActions.js +2 -2
- package/lib/components/VStepper/VStepperActions.js.map +1 -1
- package/lib/components/VStepper/VStepperItem.js +10 -10
- package/lib/components/VStepper/VStepperItem.js.map +1 -1
- package/lib/components/VSwitch/VSwitch.js +10 -10
- package/lib/components/VSwitch/VSwitch.js.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.js +4 -4
- package/lib/components/VSystemBar/VSystemBar.js.map +1 -1
- package/lib/components/VTable/VTable.js +8 -8
- package/lib/components/VTable/VTable.js.map +1 -1
- package/lib/components/VTabs/VTab.js +4 -4
- package/lib/components/VTabs/VTab.js.map +1 -1
- package/lib/components/VTabs/VTabs.js +2 -2
- package/lib/components/VTabs/VTabs.js.map +1 -1
- package/lib/components/VTextField/VTextField.js +12 -12
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/components/VTextarea/VTextarea.js +10 -10
- package/lib/components/VTextarea/VTextarea.js.map +1 -1
- package/lib/components/VThemeProvider/VThemeProvider.js +3 -3
- package/lib/components/VThemeProvider/VThemeProvider.js.map +1 -1
- package/lib/components/VTimeline/VTimeline.js +5 -5
- package/lib/components/VTimeline/VTimeline.js.map +1 -1
- package/lib/components/VTimeline/VTimelineDivider.js +17 -17
- package/lib/components/VTimeline/VTimelineDivider.js.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.js +9 -9
- package/lib/components/VTimeline/VTimelineItem.js.map +1 -1
- package/lib/components/VToolbar/VToolbar.js +13 -13
- package/lib/components/VToolbar/VToolbar.js.map +1 -1
- package/lib/components/VToolbar/VToolbarItems.js +4 -4
- package/lib/components/VToolbar/VToolbarItems.js.map +1 -1
- package/lib/components/VToolbar/VToolbarTitle.js +4 -4
- package/lib/components/VToolbar/VToolbarTitle.js.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.js +13 -13
- package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScrollItem.js +3 -3
- package/lib/components/VVirtualScroll/VVirtualScrollItem.js.map +1 -1
- package/lib/components/VWindow/VWindow.js +13 -13
- package/lib/components/VWindow/VWindow.js.map +1 -1
- package/lib/components/VWindow/VWindowItem.js +6 -6
- package/lib/components/VWindow/VWindowItem.js.map +1 -1
- package/lib/composables/filter.js +8 -8
- package/lib/composables/filter.js.map +1 -1
- package/lib/composables/icons.js +6 -6
- package/lib/composables/icons.js.map +1 -1
- package/lib/composables/loader.js +3 -3
- package/lib/composables/loader.js.map +1 -1
- package/lib/composables/variant.js +5 -5
- package/lib/composables/variant.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +69 -69
- package/lib/framework.js +1 -1
- package/lib/labs/VCalendar/VCalendar.js +15 -15
- package/lib/labs/VCalendar/VCalendar.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarDay.js +4 -4
- package/lib/labs/VCalendar/VCalendarDay.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarHeader.js +4 -4
- package/lib/labs/VCalendar/VCalendarHeader.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarInterval.js +10 -10
- package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarIntervalEvent.js +2 -2
- package/lib/labs/VCalendar/VCalendarIntervalEvent.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarMonthDay.js +6 -6
- package/lib/labs/VCalendar/VCalendarMonthDay.js.map +1 -1
- package/lib/labs/VColorInput/VColorInput.js +3 -3
- package/lib/labs/VColorInput/VColorInput.js.map +1 -1
- package/lib/labs/VDateInput/VDateInput.js +2 -2
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/labs/VFileUpload/VFileUpload.js +9 -9
- package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
- package/lib/labs/VFileUpload/VFileUploadItem.js +3 -3
- package/lib/labs/VFileUpload/VFileUploadItem.js.map +1 -1
- package/lib/labs/VIconBtn/VIconBtn.js +7 -7
- package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
- package/lib/labs/VPicker/VPicker.js +7 -7
- package/lib/labs/VPicker/VPicker.js.map +1 -1
- package/lib/labs/VPullToRefresh/VPullToRefresh.js +13 -13
- package/lib/labs/VPullToRefresh/VPullToRefresh.js.map +1 -1
- package/lib/labs/VStepperVertical/VStepperVertical.js +2 -2
- package/lib/labs/VStepperVertical/VStepperVertical.js.map +1 -1
- package/lib/labs/VStepperVertical/VStepperVerticalItem.js +5 -5
- package/lib/labs/VStepperVertical/VStepperVerticalItem.js.map +1 -1
- package/lib/labs/VTimePicker/VTimePicker.js +2 -2
- package/lib/labs/VTimePicker/VTimePicker.js.map +1 -1
- package/lib/labs/VTimePicker/VTimePickerClock.js +15 -15
- package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
- package/lib/labs/VTimePicker/VTimePickerControls.js +24 -24
- package/lib/labs/VTimePicker/VTimePickerControls.js.map +1 -1
- package/lib/labs/VTreeview/VTreeviewChildren.js +2 -2
- package/lib/labs/VTreeview/VTreeviewChildren.js.map +1 -1
- package/lib/labs/VTreeview/VTreeviewGroup.js +2 -2
- package/lib/labs/VTreeview/VTreeviewGroup.js.map +1 -1
- package/lib/labs/VTreeview/VTreeviewItem.js +3 -3
- package/lib/labs/VTreeview/VTreeviewItem.js.map +1 -1
- package/package.json +2 -2
@@ -1,4 +1,4 @@
|
|
1
|
-
import { mergeProps as _mergeProps,
|
1
|
+
import { mergeProps as _mergeProps, createElementVNode as _createElementVNode, Fragment as _Fragment, createVNode as _createVNode } from "vue";
|
2
2
|
// Styles
|
3
3
|
import "./VFileUpload.css";
|
4
4
|
|
@@ -120,7 +120,7 @@ export const VFileUpload = genericComponent()({
|
|
120
120
|
const cardProps = VSheet.filterProps(props);
|
121
121
|
const dividerProps = VDivider.filterProps(props);
|
122
122
|
const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
|
123
|
-
const inputNode =
|
123
|
+
const inputNode = _createElementVNode("input", _mergeProps({
|
124
124
|
"ref": inputRef,
|
125
125
|
"type": "file",
|
126
126
|
"disabled": props.disabled,
|
@@ -132,7 +132,7 @@ export const VFileUpload = genericComponent()({
|
|
132
132
|
model.value = [...(target.files ?? [])];
|
133
133
|
}
|
134
134
|
}, inputAttrs), null);
|
135
|
-
return
|
135
|
+
return _createElementVNode(_Fragment, null, [_createVNode(VSheet, _mergeProps({
|
136
136
|
"ref": vSheetRef
|
137
137
|
}, cardProps, {
|
138
138
|
"class": ['v-file-upload', {
|
@@ -146,7 +146,7 @@ export const VFileUpload = genericComponent()({
|
|
146
146
|
"onDrop": onDrop,
|
147
147
|
"onClick": !hasBrowse ? onClick : undefined
|
148
148
|
}, rootAttrs), {
|
149
|
-
default: () => [hasIcon &&
|
149
|
+
default: () => [hasIcon && _createElementVNode("div", {
|
150
150
|
"key": "icon",
|
151
151
|
"class": "v-file-upload-icon"
|
152
152
|
}, [!slots.icon ? _createVNode(VIcon, {
|
@@ -161,15 +161,15 @@ export const VFileUpload = genericComponent()({
|
|
161
161
|
}
|
162
162
|
}, {
|
163
163
|
default: () => [slots.icon()]
|
164
|
-
})]), hasTitle &&
|
164
|
+
})]), hasTitle && _createElementVNode("div", {
|
165
165
|
"key": "title",
|
166
166
|
"class": "v-file-upload-title"
|
167
|
-
}, [slots.title?.() ?? t(props.title)]), props.density === 'default' &&
|
167
|
+
}, [slots.title?.() ?? t(props.title)]), props.density === 'default' && _createElementVNode(_Fragment, null, [_createElementVNode("div", {
|
168
168
|
"key": "upload-divider",
|
169
169
|
"class": "v-file-upload-divider"
|
170
170
|
}, [slots.divider?.() ?? _createVNode(VDivider, dividerProps, {
|
171
171
|
default: () => [t(props.dividerText)]
|
172
|
-
})]), hasBrowse &&
|
172
|
+
})]), hasBrowse && _createElementVNode(_Fragment, null, [!slots.browse ? _createVNode(VBtn, {
|
173
173
|
"readonly": props.disabled,
|
174
174
|
"size": "large",
|
175
175
|
"text": t(props.browseText),
|
@@ -190,7 +190,7 @@ export const VFileUpload = genericComponent()({
|
|
190
190
|
onClick
|
191
191
|
}
|
192
192
|
})]
|
193
|
-
})]), props.subtitle &&
|
193
|
+
})]), props.subtitle && _createElementVNode("div", {
|
194
194
|
"class": "v-file-upload-subtitle"
|
195
195
|
}, [props.subtitle])]), _createVNode(VOverlay, {
|
196
196
|
"model-value": isDragging.value,
|
@@ -199,7 +199,7 @@ export const VFileUpload = genericComponent()({
|
|
199
199
|
}, null), slots.input?.({
|
200
200
|
inputNode
|
201
201
|
}) ?? inputNode]
|
202
|
-
}), model.value.length > 0 &&
|
202
|
+
}), model.value.length > 0 && _createElementVNode("div", {
|
203
203
|
"class": "v-file-upload-items"
|
204
204
|
}, [model.value.map((file, i) => {
|
205
205
|
const slotProps = {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VFileUpload.js","names":["VFileUploadItem","VBtn","VDefaultsProvider","makeVDividerProps","VDivider","VIcon","VOverlay","makeVSheetProps","VSheet","makeDelayProps","makeDensityProps","useDensity","IconValue","useLocale","useProxiedModel","ref","shallowRef","filterInputAttrs","genericComponent","pick","propsFactory","useRender","wrapInArray","makeVFileUploadProps","browseText","type","String","default","dividerText","title","subtitle","icon","modelValue","Array","Object","validator","val","every","v","clearable","Boolean","disabled","hideBrowse","multiple","scrim","showSize","name","length","VFileUpload","inheritAttrs","props","emits","files","setup","_ref","attrs","slots","t","densityClasses","model","isArray","isDragging","vSheetRef","inputRef","onDragover","e","preventDefault","stopImmediatePropagation","value","onDragleave","onDrop","dataTransfer","DataTransfer","file","items","add","dispatchEvent","Event","bubbles","onClick","click","onClickRemove","index","newValue","filter","_","i","hasTitle","hasIcon","hasBrowse","browse","density","cardProps","filterProps","dividerProps","rootAttrs","inputAttrs","inputNode","_createVNode","_mergeProps","target","_Fragment","class","style","undefined","divider","readonly","size","text","variant","input","map","slotProps","onClick:remove","item"],"sources":["../../../src/labs/VFileUpload/VFileUpload.tsx"],"sourcesContent":["// Styles\nimport './VFileUpload.sass'\n\n// Components\nimport { VFileUploadItem } from './VFileUploadItem'\nimport { VBtn } from '@/components/VBtn/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider/VDefaultsProvider'\nimport { makeVDividerProps, VDivider } from '@/components/VDivider/VDivider'\nimport { VIcon } from '@/components/VIcon/VIcon'\nimport { VOverlay } from '@/components/VOverlay/VOverlay'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { makeDelayProps } from '@/composables/delay'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { ref, shallowRef } from 'vue'\nimport { filterInputAttrs, genericComponent, pick, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType, VNode } from 'vue'\n\nexport type VFileUploadSlots = {\n browse: {\n props: { onClick: (e: MouseEvent) => void }\n }\n default: never\n icon: never\n input: {\n inputNode: VNode\n }\n item: {\n file: File\n props: { 'onClick:remove': () => void }\n }\n title: never\n divider: never\n}\n\nexport const makeVFileUploadProps = propsFactory({\n browseText: {\n type: String,\n default: '$vuetify.fileUpload.browse',\n },\n dividerText: {\n type: String,\n default: '$vuetify.fileUpload.divider',\n },\n title: {\n type: String,\n default: '$vuetify.fileUpload.title',\n },\n subtitle: String,\n icon: {\n type: IconValue,\n default: '$upload',\n },\n modelValue: {\n type: [Array, Object] as PropType<File[] | File>,\n default: null,\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n clearable: Boolean,\n disabled: Boolean,\n hideBrowse: Boolean,\n multiple: Boolean,\n scrim: {\n type: [Boolean, String],\n default: true,\n },\n showSize: Boolean,\n name: String,\n\n ...makeDelayProps(),\n ...makeDensityProps(),\n ...pick(makeVDividerProps({\n length: 150,\n }), ['length', 'thickness', 'opacity']),\n ...makeVSheetProps(),\n}, 'VFileUpload')\n\nexport const VFileUpload = genericComponent<VFileUploadSlots>()({\n name: 'VFileUpload',\n\n inheritAttrs: false,\n\n props: makeVFileUploadProps(),\n\n emits: {\n 'update:modelValue': (files: File[]) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { t } = useLocale()\n const { densityClasses } = useDensity(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n props.modelValue,\n val => wrapInArray(val),\n val => (props.multiple || Array.isArray(props.modelValue)) ? val : val[0],\n )\n\n const isDragging = shallowRef(false)\n const vSheetRef = ref<InstanceType<typeof VSheet> | null>(null)\n const inputRef = ref<HTMLInputElement | null>(null)\n\n function onDragover (e: DragEvent) {\n e.preventDefault()\n e.stopImmediatePropagation()\n isDragging.value = true\n }\n\n function onDragleave (e: DragEvent) {\n e.preventDefault()\n isDragging.value = false\n }\n\n function onDrop (e: DragEvent) {\n e.preventDefault()\n e.stopImmediatePropagation()\n isDragging.value = false\n\n if (!e.dataTransfer?.files?.length || !inputRef.value) return\n\n const dataTransfer = new DataTransfer()\n\n for (const file of e.dataTransfer.files) {\n dataTransfer.items.add(file)\n }\n\n inputRef.value.files = dataTransfer.files\n inputRef.value.dispatchEvent(new Event('change', { bubbles: true }))\n }\n\n function onClick () {\n inputRef.value?.click()\n }\n\n function onClickRemove (index: number) {\n const newValue = model.value.filter((_, i) => i !== index)\n model.value = newValue\n\n if (newValue.length > 0 || !inputRef.value) return\n\n inputRef.value.value = ''\n }\n\n useRender(() => {\n const hasTitle = !!(slots.title || props.title)\n const hasIcon = !!(slots.icon || props.icon)\n const hasBrowse = !!(!props.hideBrowse && (slots.browse || props.density === 'default'))\n const cardProps = VSheet.filterProps(props)\n const dividerProps = VDivider.filterProps(props)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n\n const inputNode = (\n <input\n ref={ inputRef }\n type=\"file\"\n disabled={ props.disabled }\n multiple={ props.multiple }\n name={ props.name }\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n }}\n { ...inputAttrs }\n />\n )\n\n return (\n <>\n <VSheet\n ref={ vSheetRef }\n { ...cardProps }\n class={[\n 'v-file-upload',\n {\n 'v-file-upload--clickable': !hasBrowse,\n 'v-file-upload--disabled': props.disabled,\n 'v-file-upload--dragging': isDragging.value,\n },\n densityClasses.value,\n props.class,\n ]}\n style={[\n props.style,\n ]}\n onDragleave={ onDragleave }\n onDragover={ onDragover }\n onDrop={ onDrop }\n onClick={ !hasBrowse ? onClick : undefined }\n { ...rootAttrs }\n >\n { hasIcon && (\n <div key=\"icon\" class=\"v-file-upload-icon\">\n { !slots.icon ? (\n <VIcon\n key=\"icon-icon\"\n icon={ props.icon }\n />\n ) : (\n <VDefaultsProvider\n key=\"icon-defaults\"\n defaults={{\n VIcon: {\n icon: props.icon,\n },\n }}\n >\n { slots.icon() }\n </VDefaultsProvider>\n )}\n </div>\n )}\n\n { hasTitle && (\n <div key=\"title\" class=\"v-file-upload-title\">\n { slots.title?.() ?? t(props.title) }\n </div>\n )}\n\n { props.density === 'default' && (\n <>\n <div key=\"upload-divider\" class=\"v-file-upload-divider\">\n { slots.divider?.() ?? (\n <VDivider { ...dividerProps }>\n { t(props.dividerText) }\n </VDivider>\n )}\n </div>\n\n { hasBrowse && (\n <>\n { !slots.browse ? (\n <VBtn\n readonly={ props.disabled }\n size=\"large\"\n text={ t(props.browseText) }\n variant=\"tonal\"\n onClick={ onClick }\n />\n ) : (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n readonly: props.disabled,\n size: 'large',\n text: t(props.browseText),\n variant: 'tonal',\n },\n }}\n >\n { slots.browse({ props: { onClick } }) }\n </VDefaultsProvider>\n )}\n </>\n )}\n\n { props.subtitle && (\n <div class=\"v-file-upload-subtitle\">\n { props.subtitle }\n </div>\n )}\n </>\n )}\n\n <VOverlay\n model-value={ isDragging.value }\n contained\n scrim={ props.scrim }\n />\n\n { slots.input?.({ inputNode }) ?? inputNode }\n </VSheet>\n\n { model.value.length > 0 && (\n <div class=\"v-file-upload-items\">\n { model.value.map((file, i) => {\n const slotProps = {\n file,\n props: {\n 'onClick:remove': () => onClickRemove(i),\n },\n }\n\n return (\n <VDefaultsProvider\n key={ i }\n defaults={{\n VFileUploadItem: {\n file,\n clearable: props.clearable,\n disabled: props.disabled,\n showSize: props.showSize,\n },\n }}\n >\n { slots.item?.(slotProps) ?? (\n <VFileUploadItem\n key={ i }\n onClick:remove={ () => onClickRemove(i) }\n v-slots={ slots }\n />\n )}\n </VDefaultsProvider>\n )\n })}\n </div>\n )}\n </>\n )\n })\n },\n})\n\nexport type VFileUpload = InstanceType<typeof VFileUpload>\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VFileUpload.js","names":["VFileUploadItem","VBtn","VDefaultsProvider","makeVDividerProps","VDivider","VIcon","VOverlay","makeVSheetProps","VSheet","makeDelayProps","makeDensityProps","useDensity","IconValue","useLocale","useProxiedModel","ref","shallowRef","filterInputAttrs","genericComponent","pick","propsFactory","useRender","wrapInArray","makeVFileUploadProps","browseText","type","String","default","dividerText","title","subtitle","icon","modelValue","Array","Object","validator","val","every","v","clearable","Boolean","disabled","hideBrowse","multiple","scrim","showSize","name","length","VFileUpload","inheritAttrs","props","emits","files","setup","_ref","attrs","slots","t","densityClasses","model","isArray","isDragging","vSheetRef","inputRef","onDragover","e","preventDefault","stopImmediatePropagation","value","onDragleave","onDrop","dataTransfer","DataTransfer","file","items","add","dispatchEvent","Event","bubbles","onClick","click","onClickRemove","index","newValue","filter","_","i","hasTitle","hasIcon","hasBrowse","browse","density","cardProps","filterProps","dividerProps","rootAttrs","inputAttrs","inputNode","_createElementVNode","_mergeProps","target","_Fragment","_createVNode","class","style","undefined","divider","readonly","size","text","variant","input","map","slotProps","onClick:remove","item"],"sources":["../../../src/labs/VFileUpload/VFileUpload.tsx"],"sourcesContent":["// Styles\nimport './VFileUpload.sass'\n\n// Components\nimport { VFileUploadItem } from './VFileUploadItem'\nimport { VBtn } from '@/components/VBtn/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider/VDefaultsProvider'\nimport { makeVDividerProps, VDivider } from '@/components/VDivider/VDivider'\nimport { VIcon } from '@/components/VIcon/VIcon'\nimport { VOverlay } from '@/components/VOverlay/VOverlay'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { makeDelayProps } from '@/composables/delay'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { ref, shallowRef } from 'vue'\nimport { filterInputAttrs, genericComponent, pick, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType, VNode } from 'vue'\n\nexport type VFileUploadSlots = {\n browse: {\n props: { onClick: (e: MouseEvent) => void }\n }\n default: never\n icon: never\n input: {\n inputNode: VNode\n }\n item: {\n file: File\n props: { 'onClick:remove': () => void }\n }\n title: never\n divider: never\n}\n\nexport const makeVFileUploadProps = propsFactory({\n browseText: {\n type: String,\n default: '$vuetify.fileUpload.browse',\n },\n dividerText: {\n type: String,\n default: '$vuetify.fileUpload.divider',\n },\n title: {\n type: String,\n default: '$vuetify.fileUpload.title',\n },\n subtitle: String,\n icon: {\n type: IconValue,\n default: '$upload',\n },\n modelValue: {\n type: [Array, Object] as PropType<File[] | File>,\n default: null,\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n clearable: Boolean,\n disabled: Boolean,\n hideBrowse: Boolean,\n multiple: Boolean,\n scrim: {\n type: [Boolean, String],\n default: true,\n },\n showSize: Boolean,\n name: String,\n\n ...makeDelayProps(),\n ...makeDensityProps(),\n ...pick(makeVDividerProps({\n length: 150,\n }), ['length', 'thickness', 'opacity']),\n ...makeVSheetProps(),\n}, 'VFileUpload')\n\nexport const VFileUpload = genericComponent<VFileUploadSlots>()({\n name: 'VFileUpload',\n\n inheritAttrs: false,\n\n props: makeVFileUploadProps(),\n\n emits: {\n 'update:modelValue': (files: File[]) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { t } = useLocale()\n const { densityClasses } = useDensity(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n props.modelValue,\n val => wrapInArray(val),\n val => (props.multiple || Array.isArray(props.modelValue)) ? val : val[0],\n )\n\n const isDragging = shallowRef(false)\n const vSheetRef = ref<InstanceType<typeof VSheet> | null>(null)\n const inputRef = ref<HTMLInputElement | null>(null)\n\n function onDragover (e: DragEvent) {\n e.preventDefault()\n e.stopImmediatePropagation()\n isDragging.value = true\n }\n\n function onDragleave (e: DragEvent) {\n e.preventDefault()\n isDragging.value = false\n }\n\n function onDrop (e: DragEvent) {\n e.preventDefault()\n e.stopImmediatePropagation()\n isDragging.value = false\n\n if (!e.dataTransfer?.files?.length || !inputRef.value) return\n\n const dataTransfer = new DataTransfer()\n\n for (const file of e.dataTransfer.files) {\n dataTransfer.items.add(file)\n }\n\n inputRef.value.files = dataTransfer.files\n inputRef.value.dispatchEvent(new Event('change', { bubbles: true }))\n }\n\n function onClick () {\n inputRef.value?.click()\n }\n\n function onClickRemove (index: number) {\n const newValue = model.value.filter((_, i) => i !== index)\n model.value = newValue\n\n if (newValue.length > 0 || !inputRef.value) return\n\n inputRef.value.value = ''\n }\n\n useRender(() => {\n const hasTitle = !!(slots.title || props.title)\n const hasIcon = !!(slots.icon || props.icon)\n const hasBrowse = !!(!props.hideBrowse && (slots.browse || props.density === 'default'))\n const cardProps = VSheet.filterProps(props)\n const dividerProps = VDivider.filterProps(props)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n\n const inputNode = (\n <input\n ref={ inputRef }\n type=\"file\"\n disabled={ props.disabled }\n multiple={ props.multiple }\n name={ props.name }\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n }}\n { ...inputAttrs }\n />\n )\n\n return (\n <>\n <VSheet\n ref={ vSheetRef }\n { ...cardProps }\n class={[\n 'v-file-upload',\n {\n 'v-file-upload--clickable': !hasBrowse,\n 'v-file-upload--disabled': props.disabled,\n 'v-file-upload--dragging': isDragging.value,\n },\n densityClasses.value,\n props.class,\n ]}\n style={[\n props.style,\n ]}\n onDragleave={ onDragleave }\n onDragover={ onDragover }\n onDrop={ onDrop }\n onClick={ !hasBrowse ? onClick : undefined }\n { ...rootAttrs }\n >\n { hasIcon && (\n <div key=\"icon\" class=\"v-file-upload-icon\">\n { !slots.icon ? (\n <VIcon\n key=\"icon-icon\"\n icon={ props.icon }\n />\n ) : (\n <VDefaultsProvider\n key=\"icon-defaults\"\n defaults={{\n VIcon: {\n icon: props.icon,\n },\n }}\n >\n { slots.icon() }\n </VDefaultsProvider>\n )}\n </div>\n )}\n\n { hasTitle && (\n <div key=\"title\" class=\"v-file-upload-title\">\n { slots.title?.() ?? t(props.title) }\n </div>\n )}\n\n { props.density === 'default' && (\n <>\n <div key=\"upload-divider\" class=\"v-file-upload-divider\">\n { slots.divider?.() ?? (\n <VDivider { ...dividerProps }>\n { t(props.dividerText) }\n </VDivider>\n )}\n </div>\n\n { hasBrowse && (\n <>\n { !slots.browse ? (\n <VBtn\n readonly={ props.disabled }\n size=\"large\"\n text={ t(props.browseText) }\n variant=\"tonal\"\n onClick={ onClick }\n />\n ) : (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n readonly: props.disabled,\n size: 'large',\n text: t(props.browseText),\n variant: 'tonal',\n },\n }}\n >\n { slots.browse({ props: { onClick } }) }\n </VDefaultsProvider>\n )}\n </>\n )}\n\n { props.subtitle && (\n <div class=\"v-file-upload-subtitle\">\n { props.subtitle }\n </div>\n )}\n </>\n )}\n\n <VOverlay\n model-value={ isDragging.value }\n contained\n scrim={ props.scrim }\n />\n\n { slots.input?.({ inputNode }) ?? inputNode }\n </VSheet>\n\n { model.value.length > 0 && (\n <div class=\"v-file-upload-items\">\n { model.value.map((file, i) => {\n const slotProps = {\n file,\n props: {\n 'onClick:remove': () => onClickRemove(i),\n },\n }\n\n return (\n <VDefaultsProvider\n key={ i }\n defaults={{\n VFileUploadItem: {\n file,\n clearable: props.clearable,\n disabled: props.disabled,\n showSize: props.showSize,\n },\n }}\n >\n { slots.item?.(slotProps) ?? (\n <VFileUploadItem\n key={ i }\n onClick:remove={ () => onClickRemove(i) }\n v-slots={ slots }\n />\n )}\n </VDefaultsProvider>\n )\n })}\n </div>\n )}\n </>\n )\n })\n },\n})\n\nexport type VFileUpload = InstanceType<typeof VFileUpload>\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
|
1
|
+
import { Fragment as _Fragment, createVNode as _createVNode, createElementVNode as _createElementVNode, mergeProps as _mergeProps } from "vue";
|
2
2
|
// Components
|
3
3
|
import { VAvatar } from "../../components/VAvatar/VAvatar.js";
|
4
4
|
import { VBtn } from "../../components/VBtn/VBtn.js";
|
@@ -52,7 +52,7 @@ export const VFileUploadItem = genericComponent()({
|
|
52
52
|
"class": "v-file-upload-item"
|
53
53
|
}), {
|
54
54
|
...slots,
|
55
|
-
prepend: slotProps =>
|
55
|
+
prepend: slotProps => _createElementVNode(_Fragment, null, [!slots.prepend ? _createVNode(VAvatar, {
|
56
56
|
"icon": props.fileIcon,
|
57
57
|
"image": preview.value,
|
58
58
|
"rounded": true
|
@@ -67,7 +67,7 @@ export const VFileUploadItem = genericComponent()({
|
|
67
67
|
}, {
|
68
68
|
default: () => [slots.prepend?.(slotProps) ?? _createVNode(VAvatar, null, null)]
|
69
69
|
})]),
|
70
|
-
append: slotProps =>
|
70
|
+
append: slotProps => _createElementVNode(_Fragment, null, [props.clearable && _createElementVNode(_Fragment, null, [!slots.clear ? _createVNode(VBtn, {
|
71
71
|
"icon": "$clear",
|
72
72
|
"density": "comfortable",
|
73
73
|
"variant": "text",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VFileUploadItem.js","names":["VAvatar","VBtn","VDefaultsProvider","makeVListItemProps","VListItem","computed","ref","watchEffect","genericComponent","humanReadableFileSize","propsFactory","useRender","makeVFileUploadItemProps","clearable","Boolean","file","type","Object","default","fileIcon","String","showSize","border","rounded","lines","VFileUploadItem","name","props","emits","click:remove","click","e","setup","_ref","emit","slots","preview","base","undefined","onClickRemove","value","startsWith","URL","createObjectURL","listItemProps","filterProps","_createVNode","_mergeProps","title","size","prepend","slotProps","_Fragment","image","icon","append","clear","density","variant","onClick"],"sources":["../../../src/labs/VFileUpload/VFileUploadItem.tsx"],"sourcesContent":["// Components\nimport { VAvatar } from '@/components/VAvatar/VAvatar'\nimport { VBtn } from '@/components/VBtn/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider/VDefaultsProvider'\nimport { makeVListItemProps, VListItem } from '@/components/VList/VListItem'\n\n// Utilities\nimport { computed, ref, watchEffect } from 'vue'\nimport { genericComponent, humanReadableFileSize, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VListItemSlots } from '@/components/VList/VListItem'\n\nexport type VFileUploadItemSlots = {\n clear: {\n props: { onClick: () => void }\n }\n} & VListItemSlots\n\nexport const makeVFileUploadItemProps = propsFactory({\n clearable: Boolean,\n file: {\n type: Object as PropType<File>,\n default: null,\n },\n fileIcon: {\n type: String,\n // TODO: setup up a proper aliased icon\n default: 'mdi-file-document',\n },\n showSize: Boolean,\n\n ...makeVListItemProps({\n border: true,\n rounded: true,\n lines: 'two' as const,\n }),\n}, 'VFileUploadItem')\n\nexport const VFileUploadItem = genericComponent<VFileUploadItemSlots>()({\n name: 'VFileUploadItem',\n\n props: makeVFileUploadItemProps(),\n\n emits: {\n 'click:remove': () => true,\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { emit, slots }) {\n const preview = ref()\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n\n function onClickRemove () {\n emit('click:remove')\n }\n\n watchEffect(() => {\n preview.value = props.file?.type.startsWith('image') ? URL.createObjectURL(props.file) : undefined\n })\n\n useRender(() => {\n const listItemProps = VListItem.filterProps(props)\n\n return (\n <VListItem\n { ...listItemProps }\n title={ props.title ?? props.file?.name }\n subtitle={ props.showSize ? humanReadableFileSize(props.file?.size, base.value) : props.file?.type }\n class=\"v-file-upload-item\"\n >\n {{\n ...slots,\n prepend: slotProps => (\n <>\n { !slots.prepend ? (\n <VAvatar\n icon={ props.fileIcon }\n image={ preview.value }\n rounded\n />\n ) : (\n <VDefaultsProvider\n defaults={{\n VAvatar: {\n image: preview.value,\n icon: !preview.value ? props.fileIcon : undefined,\n rounded: true,\n },\n }}\n >\n { slots.prepend?.(slotProps) ?? (\n <VAvatar />\n )}\n </VDefaultsProvider>\n )}\n </>\n ),\n append: slotProps => (\n <>\n { props.clearable && (\n <>\n { !slots.clear ? (\n <VBtn\n icon=\"$clear\"\n density=\"comfortable\"\n variant=\"text\"\n onClick={ onClickRemove }\n />\n ) : (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n icon: '$clear',\n density: 'comfortable',\n variant: 'text',\n },\n }}\n >\n { slots.clear?.({\n ...slotProps,\n props: { onClick: onClickRemove },\n }) ?? (<VBtn />)}\n </VDefaultsProvider>\n )}\n </>\n )}\n\n { slots.append?.(slotProps) }\n </>\n ),\n }}\n </VListItem>\n )\n })\n },\n})\n\nexport type VFileUploadItem = InstanceType<typeof VFileUploadItem>\n"],"mappings":";AAAA;AAAA,SACSA,OAAO;AAAA,SACPC,IAAI;AAAA,SACJC,iBAAiB;AAAA,SACjBC,kBAAkB,EAAEC,SAAS,+CAEtC;AACA,SAASC,QAAQ,EAAEC,GAAG,EAAEC,WAAW,QAAQ,KAAK;AAAA,SACvCC,gBAAgB,EAAEC,qBAAqB,EAAEC,YAAY,EAAEC,SAAS,+BAEzE;AAUA,OAAO,MAAMC,wBAAwB,GAAGF,YAAY,CAAC;EACnDG,SAAS,EAAEC,OAAO;EAClBC,IAAI,EAAE;IACJC,IAAI,EAAEC,MAAwB;IAC9BC,OAAO,EAAE;EACX,CAAC;EACDC,QAAQ,EAAE;IACRH,IAAI,EAAEI,MAAM;IACZ;IACAF,OAAO,EAAE;EACX,CAAC;EACDG,QAAQ,EAAEP,OAAO;EAEjB,GAAGX,kBAAkB,CAAC;IACpBmB,MAAM,EAAE,IAAI;IACZC,OAAO,EAAE,IAAI;IACbC,KAAK,EAAE;EACT,CAAC;AACH,CAAC,EAAE,iBAAiB,CAAC;AAErB,OAAO,MAAMC,eAAe,GAAGjB,gBAAgB,CAAuB,CAAC,CAAC;EACtEkB,IAAI,EAAE,iBAAiB;EAEvBC,KAAK,EAAEf,wBAAwB,CAAC,CAAC;EAEjCgB,KAAK,EAAE;IACL,cAAc,EAAEC,CAAA,KAAM,IAAI;IAC1BC,KAAK,EAAGC,CAA6B,IAAK;EAC5C,CAAC;EAEDC,KAAKA,CAAEL,KAAK,EAAAM,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAMG,OAAO,GAAG9B,GAAG,CAAC,CAAC;IACrB,MAAM+B,IAAI,GAAGhC,QAAQ,CAAC,MAAM,OAAOsB,KAAK,CAACN,QAAQ,KAAK,SAAS,GAAGM,KAAK,CAACN,QAAQ,GAAGiB,SAAS,CAAC;IAE7F,SAASC,aAAaA,CAAA,EAAI;MACxBL,IAAI,CAAC,cAAc,CAAC;IACtB;IAEA3B,WAAW,CAAC,MAAM;MAChB6B,OAAO,CAACI,KAAK,GAAGb,KAAK,CAACZ,IAAI,EAAEC,IAAI,CAACyB,UAAU,CAAC,OAAO,CAAC,GAAGC,GAAG,CAACC,eAAe,CAAChB,KAAK,CAACZ,IAAI,CAAC,GAAGuB,SAAS;IACpG,CAAC,CAAC;IAEF3B,SAAS,CAAC,MAAM;MACd,MAAMiC,aAAa,GAAGxC,SAAS,CAACyC,WAAW,CAAClB,KAAK,CAAC;MAElD,OAAAmB,YAAA,CAAA1C,SAAA,EAAA2C,WAAA,CAESH,aAAa;QAAA,SACVjB,KAAK,CAACqB,KAAK,IAAIrB,KAAK,CAACZ,IAAI,EAAEW,IAAI;QAAA,YAC5BC,KAAK,CAACN,QAAQ,GAAGZ,qBAAqB,CAACkB,KAAK,CAACZ,IAAI,EAAEkC,IAAI,EAAEZ,IAAI,CAACG,KAAK,CAAC,GAAGb,KAAK,CAACZ,IAAI,EAAEC,IAAI;QAAA;MAAA;QAIhG,GAAGmB,KAAK;QACRe,OAAO,EAAEC,SAAS,
|
1
|
+
{"version":3,"file":"VFileUploadItem.js","names":["VAvatar","VBtn","VDefaultsProvider","makeVListItemProps","VListItem","computed","ref","watchEffect","genericComponent","humanReadableFileSize","propsFactory","useRender","makeVFileUploadItemProps","clearable","Boolean","file","type","Object","default","fileIcon","String","showSize","border","rounded","lines","VFileUploadItem","name","props","emits","click:remove","click","e","setup","_ref","emit","slots","preview","base","undefined","onClickRemove","value","startsWith","URL","createObjectURL","listItemProps","filterProps","_createVNode","_mergeProps","title","size","prepend","slotProps","_createElementVNode","_Fragment","image","icon","append","clear","density","variant","onClick"],"sources":["../../../src/labs/VFileUpload/VFileUploadItem.tsx"],"sourcesContent":["// Components\nimport { VAvatar } from '@/components/VAvatar/VAvatar'\nimport { VBtn } from '@/components/VBtn/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider/VDefaultsProvider'\nimport { makeVListItemProps, VListItem } from '@/components/VList/VListItem'\n\n// Utilities\nimport { computed, ref, watchEffect } from 'vue'\nimport { genericComponent, humanReadableFileSize, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VListItemSlots } from '@/components/VList/VListItem'\n\nexport type VFileUploadItemSlots = {\n clear: {\n props: { onClick: () => void }\n }\n} & VListItemSlots\n\nexport const makeVFileUploadItemProps = propsFactory({\n clearable: Boolean,\n file: {\n type: Object as PropType<File>,\n default: null,\n },\n fileIcon: {\n type: String,\n // TODO: setup up a proper aliased icon\n default: 'mdi-file-document',\n },\n showSize: Boolean,\n\n ...makeVListItemProps({\n border: true,\n rounded: true,\n lines: 'two' as const,\n }),\n}, 'VFileUploadItem')\n\nexport const VFileUploadItem = genericComponent<VFileUploadItemSlots>()({\n name: 'VFileUploadItem',\n\n props: makeVFileUploadItemProps(),\n\n emits: {\n 'click:remove': () => true,\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { emit, slots }) {\n const preview = ref()\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n\n function onClickRemove () {\n emit('click:remove')\n }\n\n watchEffect(() => {\n preview.value = props.file?.type.startsWith('image') ? URL.createObjectURL(props.file) : undefined\n })\n\n useRender(() => {\n const listItemProps = VListItem.filterProps(props)\n\n return (\n <VListItem\n { ...listItemProps }\n title={ props.title ?? props.file?.name }\n subtitle={ props.showSize ? humanReadableFileSize(props.file?.size, base.value) : props.file?.type }\n class=\"v-file-upload-item\"\n >\n {{\n ...slots,\n prepend: slotProps => (\n <>\n { !slots.prepend ? (\n <VAvatar\n icon={ props.fileIcon }\n image={ preview.value }\n rounded\n />\n ) : (\n <VDefaultsProvider\n defaults={{\n VAvatar: {\n image: preview.value,\n icon: !preview.value ? props.fileIcon : undefined,\n rounded: true,\n },\n }}\n >\n { slots.prepend?.(slotProps) ?? (\n <VAvatar />\n )}\n </VDefaultsProvider>\n )}\n </>\n ),\n append: slotProps => (\n <>\n { props.clearable && (\n <>\n { !slots.clear ? (\n <VBtn\n icon=\"$clear\"\n density=\"comfortable\"\n variant=\"text\"\n onClick={ onClickRemove }\n />\n ) : (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n icon: '$clear',\n density: 'comfortable',\n variant: 'text',\n },\n }}\n >\n { slots.clear?.({\n ...slotProps,\n props: { onClick: onClickRemove },\n }) ?? (<VBtn />)}\n </VDefaultsProvider>\n )}\n </>\n )}\n\n { slots.append?.(slotProps) }\n </>\n ),\n }}\n </VListItem>\n )\n })\n },\n})\n\nexport type VFileUploadItem = InstanceType<typeof VFileUploadItem>\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
|
1
|
+
import { mergeProps as _mergeProps, createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from "vue";
|
2
2
|
// Styles
|
3
3
|
import "./VIconBtn.css";
|
4
4
|
|
@@ -134,23 +134,23 @@ export const VIconBtn = genericComponent()({
|
|
134
134
|
opacity: props.opacity
|
135
135
|
};
|
136
136
|
return _createVNode(props.tag, {
|
137
|
-
"class": [{
|
137
|
+
"class": _normalizeClass([{
|
138
138
|
'v-icon-btn': true,
|
139
139
|
'v-icon-btn--active': isActive.value,
|
140
140
|
'v-icon-btn--disabled': props.disabled,
|
141
141
|
'v-icon-btn--loading': props.loading,
|
142
142
|
'v-icon-btn--readonly': props.readonly,
|
143
143
|
[`v-icon-btn--${props.size}`]: true
|
144
|
-
}, themeClasses.value, colorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
145
|
-
"style": [{
|
144
|
+
}, themeClasses.value, colorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, variantClasses.value, props.class]),
|
145
|
+
"style": _normalizeStyle([{
|
146
146
|
'--v-icon-btn-rotate': convertToUnit(props.rotate, 'deg'),
|
147
147
|
'--v-icon-btn-height': convertToUnit(btnHeight),
|
148
148
|
'--v-icon-btn-width': convertToUnit(btnWidth)
|
149
|
-
}, colorStyles.value, props.style],
|
149
|
+
}, colorStyles.value, props.style]),
|
150
150
|
"tabindex": props.disabled || props.readonly ? -1 : 0,
|
151
151
|
"onClick": onClick
|
152
152
|
}, {
|
153
|
-
default: () => [genOverlays(!props.hideOverlay, 'v-icon-btn'),
|
153
|
+
default: () => [genOverlays(!props.hideOverlay, 'v-icon-btn'), _createElementVNode("div", {
|
154
154
|
"class": "v-icon-btn__content",
|
155
155
|
"data-no-activator": ""
|
156
156
|
}, [!slots.default && icon ? _createVNode(VIcon, _mergeProps({
|
@@ -165,7 +165,7 @@ export const VIconBtn = genericComponent()({
|
|
165
165
|
}
|
166
166
|
}, {
|
167
167
|
default: () => slots.default?.() ?? toDisplayString(props.text)
|
168
|
-
})]), !!props.loading &&
|
168
|
+
})]), !!props.loading && _createElementVNode("span", {
|
169
169
|
"key": "loader",
|
170
170
|
"class": "v-icon-btn__loader"
|
171
171
|
}, [slots.loader?.() ?? _createVNode(VProgressCircular, {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VIconBtn.js","names":["VDefaultsProvider","VIcon","VProgressCircular","makeBorderProps","useBorder","makeComponentProps","makeElevationProps","useElevation","useProxiedModel","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","genOverlays","makeVariantProps","useVariant","toDisplayString","convertToUnit","genericComponent","propsFactory","useRender","makeVIconBtnProps","active","type","Boolean","default","undefined","activeColor","String","activeIcon","Function","Object","activeVariant","baseVariant","disabled","height","Number","width","hideOverlay","icon","iconColor","iconSize","iconSizes","Array","loading","opacity","readonly","rotate","size","sizes","text","tag","variant","VIconBtn","name","props","emits","value","setup","_ref","attrs","slots","isActive","themeClasses","borderClasses","elevationClasses","roundedClasses","colorClasses","colorStyles","variantClasses","color","btnSizeMap","Map","iconSizeMap","onClick","href","_btnSize","hasNamedSize","has","btnSize","get","btnHeight","btnWidth","_iconSize","hasNamedIconSize","iconProps","_createVNode","class","style","_mergeProps","loader"],"sources":["../../../src/labs/VIconBtn/VIconBtn.tsx"],"sourcesContent":["// Styles\nimport './VIconBtn.scss'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Utilities\nimport { toDisplayString } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { IconValue } from '@/composables/icons'\nimport type { Variant } from '@/composables/variant'\n\nexport type VIconBtnSlots = {\n default: never\n loader: never\n}\n\nexport type VIconBtnSizes = 'x-small' | 'small' | 'default' | 'large' | 'x-large'\n\nexport const makeVIconBtnProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined,\n },\n activeColor: String,\n activeIcon: [String, Function, Object] as PropType<IconValue>,\n activeVariant: String as PropType<Variant>,\n baseVariant: {\n type: String as PropType<Variant>,\n default: 'tonal',\n },\n disabled: Boolean,\n height: [Number, String],\n width: [Number, String],\n hideOverlay: Boolean,\n icon: [String, Function, Object] as PropType<IconValue>,\n iconColor: String,\n iconSize: [Number, String] as PropType<VIconBtnSizes | number | string>,\n iconSizes: {\n type: Array as PropType<[VIconBtnSizes, number][]>,\n default: () => ([\n ['x-small', 10],\n ['small', 16],\n ['default', 24],\n ['large', 28],\n ['x-large', 32],\n ]),\n },\n loading: Boolean,\n opacity: [Number, String],\n readonly: Boolean,\n rotate: [Number, String],\n size: {\n type: [Number, String] as PropType<VIconBtnSizes | number | string>,\n default: 'default',\n },\n sizes: {\n type: Array as PropType<[VIconBtnSizes, number][]>,\n default: () => ([\n ['x-small', 16],\n ['small', 24],\n ['default', 40],\n ['large', 48],\n ['x-large', 56],\n ]),\n },\n text: {\n type: [String, Number, Boolean],\n default: undefined,\n },\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'button' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'flat' } as const),\n}, 'VIconBtn')\n\nexport const VIconBtn = genericComponent<VIconBtnSlots>()({\n name: 'VIconBtn',\n\n props: makeVIconBtnProps(),\n\n emits: {\n 'update:active': (value: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const isActive = useProxiedModel(props, 'active')\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n\n const { colorClasses, colorStyles, variantClasses } = useVariant(() => ({\n color: (() => {\n if (props.disabled) return undefined\n if (!isActive.value) return props.color\n // Use an inline fallback as opposed to setting a default color\n // because non-toggle buttons are default flat whereas toggle\n // buttons are default tonal and active flat. The exact use\n // case for this is a toggle button with no active color.\n return props.activeColor ?? props.color ?? 'surface-variant'\n })(),\n variant: (() => {\n if (isActive.value === undefined) return props.variant\n if (isActive.value) return props.activeVariant ?? props.variant\n return props.baseVariant ?? props.variant\n })(),\n }))\n\n const btnSizeMap = new Map(props.sizes)\n const iconSizeMap = new Map(props.iconSizes)\n\n function onClick () {\n if (\n props.disabled ||\n props.readonly ||\n isActive.value === undefined ||\n (props.tag === 'a' && attrs.href)\n ) return\n\n isActive.value = !isActive.value\n }\n\n useRender(() => {\n const icon = isActive.value ? props.activeIcon ?? props.icon : props.icon\n\n const _btnSize = props.size as VIconBtnSizes\n const hasNamedSize = btnSizeMap.has(_btnSize)\n const btnSize = hasNamedSize ? btnSizeMap.get(_btnSize) : _btnSize\n const btnHeight = props.height ?? btnSize\n const btnWidth = props.width ?? btnSize\n\n const _iconSize = props.iconSize as VIconBtnSizes\n const hasNamedIconSize = iconSizeMap.has(_iconSize)\n\n const iconSize = !_iconSize\n ? hasNamedSize ? iconSizeMap.get(_btnSize) : iconSizeMap.get('default')\n : hasNamedIconSize ? iconSizeMap.get(_iconSize) : _iconSize\n\n const iconProps = { icon, size: iconSize, iconColor: props.iconColor, opacity: props.opacity }\n\n return (\n <props.tag\n class={[\n {\n 'v-icon-btn': true,\n 'v-icon-btn--active': isActive.value,\n 'v-icon-btn--disabled': props.disabled,\n 'v-icon-btn--loading': props.loading,\n 'v-icon-btn--readonly': props.readonly,\n [`v-icon-btn--${props.size}`]: true,\n },\n themeClasses.value,\n colorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n variantClasses.value,\n props.class,\n ]}\n style={[\n {\n '--v-icon-btn-rotate': convertToUnit(props.rotate, 'deg'),\n '--v-icon-btn-height': convertToUnit(btnHeight),\n '--v-icon-btn-width': convertToUnit(btnWidth),\n },\n colorStyles.value,\n props.style,\n ]}\n tabindex={ props.disabled || props.readonly ? -1 : 0 }\n onClick={ onClick }\n >\n { genOverlays(!props.hideOverlay, 'v-icon-btn') }\n\n <div class=\"v-icon-btn__content\" data-no-activator=\"\">\n { (!slots.default && icon) ? (\n <VIcon\n key=\"content-icon\"\n { ...iconProps }\n />\n ) : (\n <VDefaultsProvider\n key=\"content-defaults\"\n disabled={ !icon }\n defaults={{ VIcon: { ...iconProps } }}\n v-slots={{\n default: () => slots.default?.() ?? toDisplayString(props.text),\n }}\n />\n )}\n </div>\n\n { !!props.loading && (\n <span key=\"loader\" class=\"v-icon-btn__loader\">\n { slots.loader?.() ?? (\n <VProgressCircular\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n indeterminate=\"disable-shrink\"\n width=\"2\"\n size={ iconSize }\n />\n )}\n </span>\n )}\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VIconBtn = InstanceType<typeof VIconBtn>\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VIconBtn.js","names":["VDefaultsProvider","VIcon","VProgressCircular","makeBorderProps","useBorder","makeComponentProps","makeElevationProps","useElevation","useProxiedModel","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","genOverlays","makeVariantProps","useVariant","toDisplayString","convertToUnit","genericComponent","propsFactory","useRender","makeVIconBtnProps","active","type","Boolean","default","undefined","activeColor","String","activeIcon","Function","Object","activeVariant","baseVariant","disabled","height","Number","width","hideOverlay","icon","iconColor","iconSize","iconSizes","Array","loading","opacity","readonly","rotate","size","sizes","text","tag","variant","VIconBtn","name","props","emits","value","setup","_ref","attrs","slots","isActive","themeClasses","borderClasses","elevationClasses","roundedClasses","colorClasses","colorStyles","variantClasses","color","btnSizeMap","Map","iconSizeMap","onClick","href","_btnSize","hasNamedSize","has","btnSize","get","btnHeight","btnWidth","_iconSize","hasNamedIconSize","iconProps","_createVNode","_normalizeClass","class","_normalizeStyle","style","_createElementVNode","_mergeProps","loader"],"sources":["../../../src/labs/VIconBtn/VIconBtn.tsx"],"sourcesContent":["// Styles\nimport './VIconBtn.scss'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Utilities\nimport { toDisplayString } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { IconValue } from '@/composables/icons'\nimport type { Variant } from '@/composables/variant'\n\nexport type VIconBtnSlots = {\n default: never\n loader: never\n}\n\nexport type VIconBtnSizes = 'x-small' | 'small' | 'default' | 'large' | 'x-large'\n\nexport const makeVIconBtnProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined,\n },\n activeColor: String,\n activeIcon: [String, Function, Object] as PropType<IconValue>,\n activeVariant: String as PropType<Variant>,\n baseVariant: {\n type: String as PropType<Variant>,\n default: 'tonal',\n },\n disabled: Boolean,\n height: [Number, String],\n width: [Number, String],\n hideOverlay: Boolean,\n icon: [String, Function, Object] as PropType<IconValue>,\n iconColor: String,\n iconSize: [Number, String] as PropType<VIconBtnSizes | number | string>,\n iconSizes: {\n type: Array as PropType<[VIconBtnSizes, number][]>,\n default: () => ([\n ['x-small', 10],\n ['small', 16],\n ['default', 24],\n ['large', 28],\n ['x-large', 32],\n ]),\n },\n loading: Boolean,\n opacity: [Number, String],\n readonly: Boolean,\n rotate: [Number, String],\n size: {\n type: [Number, String] as PropType<VIconBtnSizes | number | string>,\n default: 'default',\n },\n sizes: {\n type: Array as PropType<[VIconBtnSizes, number][]>,\n default: () => ([\n ['x-small', 16],\n ['small', 24],\n ['default', 40],\n ['large', 48],\n ['x-large', 56],\n ]),\n },\n text: {\n type: [String, Number, Boolean],\n default: undefined,\n },\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'button' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'flat' } as const),\n}, 'VIconBtn')\n\nexport const VIconBtn = genericComponent<VIconBtnSlots>()({\n name: 'VIconBtn',\n\n props: makeVIconBtnProps(),\n\n emits: {\n 'update:active': (value: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const isActive = useProxiedModel(props, 'active')\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n\n const { colorClasses, colorStyles, variantClasses } = useVariant(() => ({\n color: (() => {\n if (props.disabled) return undefined\n if (!isActive.value) return props.color\n // Use an inline fallback as opposed to setting a default color\n // because non-toggle buttons are default flat whereas toggle\n // buttons are default tonal and active flat. The exact use\n // case for this is a toggle button with no active color.\n return props.activeColor ?? props.color ?? 'surface-variant'\n })(),\n variant: (() => {\n if (isActive.value === undefined) return props.variant\n if (isActive.value) return props.activeVariant ?? props.variant\n return props.baseVariant ?? props.variant\n })(),\n }))\n\n const btnSizeMap = new Map(props.sizes)\n const iconSizeMap = new Map(props.iconSizes)\n\n function onClick () {\n if (\n props.disabled ||\n props.readonly ||\n isActive.value === undefined ||\n (props.tag === 'a' && attrs.href)\n ) return\n\n isActive.value = !isActive.value\n }\n\n useRender(() => {\n const icon = isActive.value ? props.activeIcon ?? props.icon : props.icon\n\n const _btnSize = props.size as VIconBtnSizes\n const hasNamedSize = btnSizeMap.has(_btnSize)\n const btnSize = hasNamedSize ? btnSizeMap.get(_btnSize) : _btnSize\n const btnHeight = props.height ?? btnSize\n const btnWidth = props.width ?? btnSize\n\n const _iconSize = props.iconSize as VIconBtnSizes\n const hasNamedIconSize = iconSizeMap.has(_iconSize)\n\n const iconSize = !_iconSize\n ? hasNamedSize ? iconSizeMap.get(_btnSize) : iconSizeMap.get('default')\n : hasNamedIconSize ? iconSizeMap.get(_iconSize) : _iconSize\n\n const iconProps = { icon, size: iconSize, iconColor: props.iconColor, opacity: props.opacity }\n\n return (\n <props.tag\n class={[\n {\n 'v-icon-btn': true,\n 'v-icon-btn--active': isActive.value,\n 'v-icon-btn--disabled': props.disabled,\n 'v-icon-btn--loading': props.loading,\n 'v-icon-btn--readonly': props.readonly,\n [`v-icon-btn--${props.size}`]: true,\n },\n themeClasses.value,\n colorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n variantClasses.value,\n props.class,\n ]}\n style={[\n {\n '--v-icon-btn-rotate': convertToUnit(props.rotate, 'deg'),\n '--v-icon-btn-height': convertToUnit(btnHeight),\n '--v-icon-btn-width': convertToUnit(btnWidth),\n },\n colorStyles.value,\n props.style,\n ]}\n tabindex={ props.disabled || props.readonly ? -1 : 0 }\n onClick={ onClick }\n >\n { genOverlays(!props.hideOverlay, 'v-icon-btn') }\n\n <div class=\"v-icon-btn__content\" data-no-activator=\"\">\n { (!slots.default && icon) ? (\n <VIcon\n key=\"content-icon\"\n { ...iconProps }\n />\n ) : (\n <VDefaultsProvider\n key=\"content-defaults\"\n disabled={ !icon }\n defaults={{ VIcon: { ...iconProps } }}\n v-slots={{\n default: () => slots.default?.() ?? toDisplayString(props.text),\n }}\n />\n )}\n </div>\n\n { !!props.loading && (\n <span key=\"loader\" class=\"v-icon-btn__loader\">\n { slots.loader?.() ?? (\n <VProgressCircular\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n indeterminate=\"disable-shrink\"\n width=\"2\"\n size={ iconSize }\n />\n )}\n </span>\n )}\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VIconBtn = InstanceType<typeof VIconBtn>\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
|
1
|
+
import { createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, mergeProps as _mergeProps } from "vue";
|
2
2
|
// Styles
|
3
3
|
import "./VPicker.css";
|
4
4
|
|
@@ -39,17 +39,17 @@ export const VPicker = genericComponent()({
|
|
39
39
|
}, props.class],
|
40
40
|
"style": props.style
|
41
41
|
}), {
|
42
|
-
default: () => [!props.hideHeader &&
|
42
|
+
default: () => [!props.hideHeader && _createElementVNode("div", {
|
43
43
|
"key": "header",
|
44
|
-
"class": [backgroundColorClasses.value],
|
45
|
-
"style": [backgroundColorStyles.value]
|
44
|
+
"class": _normalizeClass([backgroundColorClasses.value]),
|
45
|
+
"style": _normalizeStyle([backgroundColorStyles.value])
|
46
46
|
}, [hasTitle && _createVNode(VPickerTitle, {
|
47
47
|
"key": "picker-title"
|
48
48
|
}, {
|
49
49
|
default: () => [slots.title?.() ?? props.title]
|
50
|
-
}), slots.header &&
|
50
|
+
}), slots.header && _createElementVNode("div", {
|
51
51
|
"class": "v-picker__header"
|
52
|
-
}, [slots.header()])]),
|
52
|
+
}, [slots.header()])]), _createElementVNode("div", {
|
53
53
|
"class": "v-picker__body"
|
54
54
|
}, [slots.default?.()]), slots.actions && _createVNode(VDefaultsProvider, {
|
55
55
|
"defaults": {
|
@@ -59,7 +59,7 @@ export const VPicker = genericComponent()({
|
|
59
59
|
}
|
60
60
|
}
|
61
61
|
}, {
|
62
|
-
default: () => [
|
62
|
+
default: () => [_createElementVNode("div", {
|
63
63
|
"class": "v-picker__actions"
|
64
64
|
}, [slots.actions()])]
|
65
65
|
})]
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VPicker.js","names":["VPickerTitle","VDefaultsProvider","makeVSheetProps","VSheet","useBackgroundColor","genericComponent","propsFactory","useRender","makeVPickerProps","bgColor","String","divided","Boolean","landscape","title","hideHeader","VPicker","name","props","setup","_ref","slots","backgroundColorClasses","backgroundColorStyles","color","sheetProps","filterProps","hasTitle","_createVNode","_mergeProps","actions","class","style","default","value","header","VBtn","slim","variant"],"sources":["../../../src/labs/VPicker/VPicker.tsx"],"sourcesContent":["// Styles\nimport './VPicker.sass'\n\n// Components\nimport { VPickerTitle } from './VPickerTitle'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider/VDefaultsProvider'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VPickerSlots = {\n header: never\n default: never\n actions: never\n title: never\n}\n\nexport const makeVPickerProps = propsFactory({\n bgColor: String,\n divided: Boolean,\n landscape: Boolean,\n title: String,\n hideHeader: Boolean,\n\n ...makeVSheetProps(),\n}, 'VPicker')\n\nexport const VPicker = genericComponent<VPickerSlots>()({\n name: 'VPicker',\n\n props: makeVPickerProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.color)\n useRender(() => {\n const sheetProps = VSheet.filterProps(props)\n const hasTitle = !!(props.title || slots.title)\n\n return (\n <VSheet\n { ...sheetProps }\n color={ props.bgColor }\n class={[\n 'v-picker',\n {\n 'v-picker--divided': props.divided,\n 'v-picker--landscape': props.landscape,\n 'v-picker--with-actions': !!slots.actions,\n },\n props.class,\n ]}\n style={ props.style }\n >\n { !props.hideHeader && (\n <div\n key=\"header\"\n class={[\n backgroundColorClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n ]}\n >\n { hasTitle && (\n <VPickerTitle key=\"picker-title\">\n { slots.title?.() ?? props.title }\n </VPickerTitle>\n )}\n\n { slots.header && (\n <div class=\"v-picker__header\">\n { slots.header() }\n </div>\n )}\n </div>\n )}\n\n <div class=\"v-picker__body\">\n { slots.default?.() }\n </div>\n\n { slots.actions && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n slim: true,\n variant: 'text',\n },\n }}\n >\n <div class=\"v-picker__actions\">\n { slots.actions() }\n </div>\n </VDefaultsProvider>\n )}\n </VSheet>\n )\n })\n\n return {}\n },\n})\n\nexport type VPicker = InstanceType<typeof VPicker>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,YAAY;AAAA,SACZC,iBAAiB;AAAA,SACjBC,eAAe,EAAEC,MAAM,6CAEhC;AAAA,SACSC,kBAAkB,sCAE3B;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,+BAElD;AAQA,OAAO,MAAMC,gBAAgB,GAAGF,YAAY,CAAC;EAC3CG,OAAO,EAAEC,MAAM;EACfC,OAAO,EAAEC,OAAO;EAChBC,SAAS,EAAED,OAAO;EAClBE,KAAK,EAAEJ,MAAM;EACbK,UAAU,EAAEH,OAAO;EAEnB,GAAGV,eAAe,CAAC;AACrB,CAAC,EAAE,SAAS,CAAC;AAEb,OAAO,MAAMc,OAAO,GAAGX,gBAAgB,CAAe,CAAC,CAAC;EACtDY,IAAI,EAAE,SAAS;EAEfC,KAAK,EAAEV,gBAAgB,CAAC,CAAC;EAEzBW,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE,sBAAsB;MAAEC;IAAsB,CAAC,GAAGnB,kBAAkB,CAAC,MAAMc,KAAK,CAACM,KAAK,CAAC;IAC/FjB,SAAS,CAAC,MAAM;MACd,MAAMkB,UAAU,GAAGtB,MAAM,CAACuB,WAAW,CAACR,KAAK,CAAC;MAC5C,MAAMS,QAAQ,GAAG,CAAC,EAAET,KAAK,CAACJ,KAAK,IAAIO,KAAK,CAACP,KAAK,CAAC;MAE/C,OAAAc,YAAA,CAAAzB,MAAA,EAAA0B,WAAA,CAESJ,UAAU;QAAA,SACPP,KAAK,CAACT,OAAO;QAAA,SACd,CACL,UAAU,EACV;UACE,mBAAmB,EAAES,KAAK,CAACP,OAAO;UAClC,qBAAqB,EAAEO,KAAK,CAACL,SAAS;UACtC,wBAAwB,EAAE,CAAC,CAACQ,KAAK,CAACS;QACpC,CAAC,EACDZ,KAAK,CAACa,KAAK,CACZ;QAAA,SACOb,KAAK,CAACc;MAAK;QAAAC,OAAA,EAAAA,CAAA,MAEjB,CAACf,KAAK,CAACH,UAAU,
|
1
|
+
{"version":3,"file":"VPicker.js","names":["VPickerTitle","VDefaultsProvider","makeVSheetProps","VSheet","useBackgroundColor","genericComponent","propsFactory","useRender","makeVPickerProps","bgColor","String","divided","Boolean","landscape","title","hideHeader","VPicker","name","props","setup","_ref","slots","backgroundColorClasses","backgroundColorStyles","color","sheetProps","filterProps","hasTitle","_createVNode","_mergeProps","actions","class","style","default","_createElementVNode","_normalizeClass","value","_normalizeStyle","header","VBtn","slim","variant"],"sources":["../../../src/labs/VPicker/VPicker.tsx"],"sourcesContent":["// Styles\nimport './VPicker.sass'\n\n// Components\nimport { VPickerTitle } from './VPickerTitle'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider/VDefaultsProvider'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VPickerSlots = {\n header: never\n default: never\n actions: never\n title: never\n}\n\nexport const makeVPickerProps = propsFactory({\n bgColor: String,\n divided: Boolean,\n landscape: Boolean,\n title: String,\n hideHeader: Boolean,\n\n ...makeVSheetProps(),\n}, 'VPicker')\n\nexport const VPicker = genericComponent<VPickerSlots>()({\n name: 'VPicker',\n\n props: makeVPickerProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.color)\n useRender(() => {\n const sheetProps = VSheet.filterProps(props)\n const hasTitle = !!(props.title || slots.title)\n\n return (\n <VSheet\n { ...sheetProps }\n color={ props.bgColor }\n class={[\n 'v-picker',\n {\n 'v-picker--divided': props.divided,\n 'v-picker--landscape': props.landscape,\n 'v-picker--with-actions': !!slots.actions,\n },\n props.class,\n ]}\n style={ props.style }\n >\n { !props.hideHeader && (\n <div\n key=\"header\"\n class={[\n backgroundColorClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n ]}\n >\n { hasTitle && (\n <VPickerTitle key=\"picker-title\">\n { slots.title?.() ?? props.title }\n </VPickerTitle>\n )}\n\n { slots.header && (\n <div class=\"v-picker__header\">\n { slots.header() }\n </div>\n )}\n </div>\n )}\n\n <div class=\"v-picker__body\">\n { slots.default?.() }\n </div>\n\n { slots.actions && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n slim: true,\n variant: 'text',\n },\n }}\n >\n <div class=\"v-picker__actions\">\n { slots.actions() }\n </div>\n </VDefaultsProvider>\n )}\n </VSheet>\n )\n })\n\n return {}\n },\n})\n\nexport type VPicker = InstanceType<typeof VPicker>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,YAAY;AAAA,SACZC,iBAAiB;AAAA,SACjBC,eAAe,EAAEC,MAAM,6CAEhC;AAAA,SACSC,kBAAkB,sCAE3B;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,+BAElD;AAQA,OAAO,MAAMC,gBAAgB,GAAGF,YAAY,CAAC;EAC3CG,OAAO,EAAEC,MAAM;EACfC,OAAO,EAAEC,OAAO;EAChBC,SAAS,EAAED,OAAO;EAClBE,KAAK,EAAEJ,MAAM;EACbK,UAAU,EAAEH,OAAO;EAEnB,GAAGV,eAAe,CAAC;AACrB,CAAC,EAAE,SAAS,CAAC;AAEb,OAAO,MAAMc,OAAO,GAAGX,gBAAgB,CAAe,CAAC,CAAC;EACtDY,IAAI,EAAE,SAAS;EAEfC,KAAK,EAAEV,gBAAgB,CAAC,CAAC;EAEzBW,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE,sBAAsB;MAAEC;IAAsB,CAAC,GAAGnB,kBAAkB,CAAC,MAAMc,KAAK,CAACM,KAAK,CAAC;IAC/FjB,SAAS,CAAC,MAAM;MACd,MAAMkB,UAAU,GAAGtB,MAAM,CAACuB,WAAW,CAACR,KAAK,CAAC;MAC5C,MAAMS,QAAQ,GAAG,CAAC,EAAET,KAAK,CAACJ,KAAK,IAAIO,KAAK,CAACP,KAAK,CAAC;MAE/C,OAAAc,YAAA,CAAAzB,MAAA,EAAA0B,WAAA,CAESJ,UAAU;QAAA,SACPP,KAAK,CAACT,OAAO;QAAA,SACd,CACL,UAAU,EACV;UACE,mBAAmB,EAAES,KAAK,CAACP,OAAO;UAClC,qBAAqB,EAAEO,KAAK,CAACL,SAAS;UACtC,wBAAwB,EAAE,CAAC,CAACQ,KAAK,CAACS;QACpC,CAAC,EACDZ,KAAK,CAACa,KAAK,CACZ;QAAA,SACOb,KAAK,CAACc;MAAK;QAAAC,OAAA,EAAAA,CAAA,MAEjB,CAACf,KAAK,CAACH,UAAU,IAAAmB,mBAAA;UAAA;UAAA,SAAAC,eAAA,CAGR,CACLb,sBAAsB,CAACc,KAAK,CAC7B;UAAA,SAAAC,eAAA,CACM,CACLd,qBAAqB,CAACa,KAAK,CAC5B;QAAA,IAECT,QAAQ,IAAAC,YAAA,CAAA5B,YAAA;UAAA;QAAA;UAAAiC,OAAA,EAAAA,CAAA,MAEJZ,KAAK,CAACP,KAAK,GAAG,CAAC,IAAII,KAAK,CAACJ,KAAK;QAAA,EAEnC,EAECO,KAAK,CAACiB,MAAM,IAAAJ,mBAAA;UAAA;QAAA,IAERb,KAAK,CAACiB,MAAM,CAAC,CAAC,EAEnB,EAEJ,EAAAJ,mBAAA;UAAA;QAAA,IAGGb,KAAK,CAACY,OAAO,GAAG,CAAC,IAGnBZ,KAAK,CAACS,OAAO,IAAAF,YAAA,CAAA3B,iBAAA;UAAA,YAED;YACRsC,IAAI,EAAE;cACJC,IAAI,EAAE,IAAI;cACVC,OAAO,EAAE;YACX;UACF;QAAC;UAAAR,OAAA,EAAAA,CAAA,MAAAC,mBAAA;YAAA;UAAA,IAGGb,KAAK,CAACS,OAAO,CAAC,CAAC;QAAA,EAGtB;MAAA;IAGP,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { createVNode as _createVNode } from "vue";
|
1
|
+
import { createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from "vue";
|
2
2
|
// Styles
|
3
3
|
import "./VPullToRefresh.css";
|
4
4
|
|
@@ -75,7 +75,7 @@ export const VPullToRefresh = genericComponent()({
|
|
75
75
|
goingUp.value = newVal < oldVal;
|
76
76
|
});
|
77
77
|
useRender(() => {
|
78
|
-
return
|
78
|
+
return _createElementVNode("div", {
|
79
79
|
"class": ['v-pull-to-refresh'],
|
80
80
|
"onTouchstart": onTouchstart,
|
81
81
|
"onTouchmove": onTouchmove,
|
@@ -85,32 +85,32 @@ export const VPullToRefresh = genericComponent()({
|
|
85
85
|
"onMouseleave": onTouchend,
|
86
86
|
"onMousemove": onTouchmove,
|
87
87
|
"ref": containerRef
|
88
|
-
}, [
|
89
|
-
"class": ['v-pull-to-refresh__pull-down', {
|
88
|
+
}, [_createElementVNode("div", {
|
89
|
+
"class": _normalizeClass(['v-pull-to-refresh__pull-down', {
|
90
90
|
'v-pull-to-refresh__pull-down--touching': touching.value
|
91
|
-
}],
|
92
|
-
"style": {
|
91
|
+
}]),
|
92
|
+
"style": _normalizeStyle({
|
93
93
|
top: convertToUnit(-1 * props.pullDownThreshold + topOffset.value),
|
94
94
|
height: convertToUnit(props.pullDownThreshold)
|
95
|
-
}
|
95
|
+
})
|
96
96
|
}, [slots.pullDownPanel ? slots.pullDownPanel({
|
97
97
|
canRefresh: canRefresh.value,
|
98
98
|
goingUp: goingUp.value,
|
99
99
|
refreshing: refreshing.value
|
100
|
-
}) :
|
100
|
+
}) : _createElementVNode("div", {
|
101
101
|
"class": ['v-pull-to-refresh__pull-down-default']
|
102
102
|
}, [refreshing.value ? _createVNode(VProgressCircular, {
|
103
103
|
"indeterminate": true,
|
104
104
|
"active": false
|
105
105
|
}, null) : _createVNode(VIcon, {
|
106
106
|
"icon": canRefresh.value || goingUp.value ? '$sortAsc' : '$sortDesc'
|
107
|
-
}, null)])]),
|
108
|
-
"class": ['v-pull-to-refresh__scroll-container', {
|
107
|
+
}, null)])]), _createElementVNode("div", {
|
108
|
+
"class": _normalizeClass(['v-pull-to-refresh__scroll-container', {
|
109
109
|
'v-pull-to-refresh__scroll-container--touching': touching.value
|
110
|
-
}],
|
111
|
-
"style": {
|
110
|
+
}]),
|
111
|
+
"style": _normalizeStyle({
|
112
112
|
top: convertToUnit(topOffset.value)
|
113
|
-
}
|
113
|
+
})
|
114
114
|
}, [slots.default?.()])]);
|
115
115
|
});
|
116
116
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VPullToRefresh.js","names":["VIcon","VProgressCircular","computed","onMounted","ref","shallowRef","watch","clamp","convertToUnit","genericComponent","getScrollParents","useRender","VPullToRefresh","name","props","disabled","Boolean","pullDownThreshold","type","Number","default","emits","load","options","setup","_ref","slots","emit","touchstartY","scrollParents","touchDiff","containerRef","refreshing","goingUp","touching","canRefresh","value","topOffset","onTouchstart","e","clientY","touches","onTouchmove","touchY","length","scrollTop","onTouchend","done","stopScrolling","forEach","p","style","overflow","newVal","oldVal","
|
1
|
+
{"version":3,"file":"VPullToRefresh.js","names":["VIcon","VProgressCircular","computed","onMounted","ref","shallowRef","watch","clamp","convertToUnit","genericComponent","getScrollParents","useRender","VPullToRefresh","name","props","disabled","Boolean","pullDownThreshold","type","Number","default","emits","load","options","setup","_ref","slots","emit","touchstartY","scrollParents","touchDiff","containerRef","refreshing","goingUp","touching","canRefresh","value","topOffset","onTouchstart","e","clientY","touches","onTouchmove","touchY","length","scrollTop","onTouchend","done","stopScrolling","forEach","p","style","overflow","newVal","oldVal","_createElementVNode","_normalizeClass","_normalizeStyle","top","height","pullDownPanel","_createVNode"],"sources":["../../../src/labs/VPullToRefresh/VPullToRefresh.tsx"],"sourcesContent":["// Styles\nimport './VPullToRefresh.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Utilities\nimport { computed, onMounted, ref, shallowRef, watch } from 'vue'\nimport { clamp, convertToUnit, genericComponent, getScrollParents, useRender } from '@/util'\n\nexport type VPullToRefreshSlots = {\n default: never\n pullDownPanel: {\n canRefresh: boolean\n goingUp: boolean\n refreshing: boolean\n }\n}\n\nexport const VPullToRefresh = genericComponent<VPullToRefreshSlots>()({\n name: 'VPullToRefresh',\n\n props: {\n disabled: Boolean,\n pullDownThreshold: {\n type: Number,\n default: 64,\n },\n },\n\n emits: {\n load: (options: { done: () => void }) => true,\n },\n\n setup (props, { slots, emit }) {\n let touchstartY = 0\n let scrollParents: HTMLElement[] = []\n\n const touchDiff = shallowRef(0)\n const containerRef = ref<HTMLElement>()\n\n const refreshing = shallowRef(false)\n const goingUp = shallowRef(false)\n const touching = shallowRef(false)\n\n const canRefresh = computed(() => touchDiff.value >= props.pullDownThreshold && !refreshing.value)\n const topOffset = computed(() => clamp(touchDiff.value, 0, props.pullDownThreshold))\n\n function onTouchstart (e: TouchEvent | MouseEvent) {\n if (refreshing.value || props.disabled) return\n touching.value = true\n touchstartY = 'clientY' in e ? e.clientY : e.touches[0].clientY\n }\n\n function onTouchmove (e: TouchEvent | MouseEvent) {\n if (refreshing.value || !touching.value || props.disabled) return\n\n const touchY = 'clientY' in e ? e.clientY : e.touches[0].clientY\n\n if (scrollParents.length && !scrollParents[0].scrollTop) {\n touchDiff.value = touchY - touchstartY\n }\n }\n\n function onTouchend (e: TouchEvent | MouseEvent) {\n if (refreshing.value || props.disabled) return\n touching.value = false\n if (canRefresh.value) {\n function done () {\n if (!refreshing.value) return\n touchDiff.value = 0\n refreshing.value = false\n }\n emit('load', { done })\n refreshing.value = true\n } else {\n touchDiff.value = 0\n }\n }\n\n onMounted(() => {\n scrollParents = getScrollParents(containerRef.value)\n })\n\n watch([topOffset, refreshing], () => {\n if (scrollParents.length) {\n const stopScrolling = topOffset.value && !refreshing.value\n scrollParents.forEach(p => p.style.overflow = stopScrolling ? 'hidden' : 'auto')\n }\n })\n\n watch(topOffset, (newVal, oldVal) => {\n goingUp.value = newVal < oldVal\n })\n\n useRender(() => {\n return (\n <div\n class={[\n 'v-pull-to-refresh',\n ]}\n onTouchstart={ onTouchstart }\n onTouchmove={ onTouchmove }\n onTouchend={ onTouchend }\n onMousedown={ onTouchstart }\n onMouseup={ onTouchend }\n onMouseleave={ onTouchend }\n onMousemove={ onTouchmove }\n ref={ containerRef }\n >\n <div\n class={[\n 'v-pull-to-refresh__pull-down',\n {\n 'v-pull-to-refresh__pull-down--touching': touching.value,\n },\n ]}\n style={{\n top: convertToUnit(-1 * props.pullDownThreshold + topOffset.value),\n height: convertToUnit(props.pullDownThreshold),\n }}\n >\n { slots.pullDownPanel\n ? slots.pullDownPanel({\n canRefresh: canRefresh.value,\n goingUp: goingUp.value,\n refreshing: refreshing.value,\n }) : (\n <div\n class={[\n 'v-pull-to-refresh__pull-down-default',\n ]}\n >\n {\n refreshing.value ? (\n <VProgressCircular\n indeterminate\n active={ false }\n />\n ) : (\n <VIcon\n icon={ canRefresh.value || goingUp.value ? '$sortAsc' : '$sortDesc' }\n />\n )\n }\n </div>\n )\n }\n </div>\n <div\n class={[\n 'v-pull-to-refresh__scroll-container',\n {\n 'v-pull-to-refresh__scroll-container--touching': touching.value,\n },\n ]}\n style={{ top: convertToUnit(topOffset.value) }}\n >\n { slots.default?.() }\n </div>\n </div>\n )\n })\n },\n})\n\nexport type VPullToRefresh = InstanceType<typeof VPullToRefresh>\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
|
1
|
+
import { Fragment as _Fragment, createVNode as _createVNode, createElementVNode as _createElementVNode, mergeProps as _mergeProps } from "vue";
|
2
2
|
// Components
|
3
3
|
import { VStepperVerticalItem } from "./VStepperVerticalItem.js";
|
4
4
|
import { makeVExpansionPanelsProps, VExpansionPanels } from "../../components/VExpansionPanel/VExpansionPanels.js";
|
@@ -85,7 +85,7 @@ export const VStepperVertical = genericComponent()({
|
|
85
85
|
prev,
|
86
86
|
next
|
87
87
|
} = _ref2;
|
88
|
-
return
|
88
|
+
return _createElementVNode(_Fragment, null, [items.value.map(_ref3 => {
|
89
89
|
let {
|
90
90
|
raw,
|
91
91
|
...item
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VStepperVertical.js","names":["VStepperVerticalItem","makeVExpansionPanelsProps","VExpansionPanels","makeStepperProps","provideDefaults","useProxiedModel","computed","ref","toRefs","genericComponent","getPropertyFromItem","omit","propsFactory","useRender","makeVStepperVerticalProps","prevText","type","String","default","nextText","mandatory","variant","VStepperVertical","name","props","emits","val","setup","_ref","slots","vExpansionPanelsRef","color","eager","editable","hideActions","model","items","map","item","index","title","itemTitle","value","itemValue","raw","static","VStepperActions","expansionPanelProps","filterProps","_createVNode","_mergeProps","$event","altLabels","flat","nonLinear","mobile","class","style","_ref2","prev","next","_Fragment","_ref3","step"],"sources":["../../../src/labs/VStepperVertical/VStepperVertical.tsx"],"sourcesContent":["// Components\nimport { VStepperVerticalItem } from './VStepperVerticalItem'\nimport { makeVExpansionPanelsProps, VExpansionPanels } from '@/components/VExpansionPanel/VExpansionPanels'\nimport { makeStepperProps } from '@/components/VStepper/VStepper'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, toRefs } from 'vue'\nimport { genericComponent, getPropertyFromItem, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { StepperVerticalItemActionSlot } from './VStepperVerticalItem'\nimport type { VStepperSlot } from '@/components/VStepper/VStepper'\nimport type { StepperItemSlot } from '@/components/VStepper/VStepperItem'\nimport type { GenericProps } from '@/util'\n\nexport type VStepperVerticalSlots<T> = {\n actions: StepperVerticalItemActionSlot<T>\n default: VStepperSlot & { step: T }\n icon: StepperItemSlot<T>\n title: StepperItemSlot<T>\n subtitle: StepperItemSlot<T>\n prev: StepperVerticalItemActionSlot<T>\n next: StepperVerticalItemActionSlot<T>\n} & {\n [key: `header-item.${string}`]: StepperItemSlot<T>\n [key: `item.${string}`]: StepperItemSlot<T>\n}\n\nexport const makeVStepperVerticalProps = propsFactory({\n prevText: {\n type: String,\n default: '$vuetify.stepper.prev',\n },\n nextText: {\n type: String,\n default: '$vuetify.stepper.next',\n },\n\n ...makeStepperProps(),\n ...omit(makeVExpansionPanelsProps({\n mandatory: 'force' as const,\n variant: 'accordion' as const,\n }), ['static']),\n}, 'VStepperVertical')\n\nexport const VStepperVertical = genericComponent<new <T = number>(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VStepperVerticalSlots<T>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VStepperVertical',\n\n props: makeVStepperVerticalProps(),\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { slots }) {\n const vExpansionPanelsRef = ref<typeof VExpansionPanels>()\n const { color, eager, editable, prevText, nextText, hideActions } = toRefs(props)\n\n const model = useProxiedModel(props, 'modelValue')\n const items = computed(() => props.items.map((item, index) => {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, index + 1)\n\n return {\n title,\n value,\n raw: item,\n }\n }))\n\n provideDefaults({\n VStepperVerticalItem: {\n color,\n eager,\n editable,\n prevText,\n nextText,\n hideActions,\n static: true,\n },\n VStepperActions: {\n color,\n },\n })\n\n useRender(() => {\n const expansionPanelProps = VExpansionPanels.filterProps(props)\n\n return (\n <VExpansionPanels\n { ...expansionPanelProps }\n v-model={ model.value }\n ref={ vExpansionPanelsRef }\n class={[\n 'v-stepper',\n {\n 'v-stepper--alt-labels': props.altLabels,\n 'v-stepper--flat': props.flat,\n 'v-stepper--non-linear': props.nonLinear,\n 'v-stepper--mobile': props.mobile,\n },\n props.class,\n ]}\n style={ props.style }\n >\n {{\n ...slots,\n default: ({ prev, next }) => {\n return (\n <>\n { items.value.map(({ raw, ...item }) => (\n <VStepperVerticalItem { ...item }>\n {{\n ...slots,\n default: slots[`item.${item.value}`],\n }}\n </VStepperVerticalItem>\n ))}\n\n { slots.default?.({ prev, next, step: model.value }) }\n </>\n )\n },\n }}\n </VExpansionPanels>\n )\n })\n\n return {}\n },\n})\n\nexport type VStepperVertical = InstanceType<typeof VStepperVertical>\n"],"mappings":"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
|
1
|
+
{"version":3,"file":"VStepperVertical.js","names":["VStepperVerticalItem","makeVExpansionPanelsProps","VExpansionPanels","makeStepperProps","provideDefaults","useProxiedModel","computed","ref","toRefs","genericComponent","getPropertyFromItem","omit","propsFactory","useRender","makeVStepperVerticalProps","prevText","type","String","default","nextText","mandatory","variant","VStepperVertical","name","props","emits","val","setup","_ref","slots","vExpansionPanelsRef","color","eager","editable","hideActions","model","items","map","item","index","title","itemTitle","value","itemValue","raw","static","VStepperActions","expansionPanelProps","filterProps","_createVNode","_mergeProps","$event","altLabels","flat","nonLinear","mobile","class","style","_ref2","prev","next","_createElementVNode","_Fragment","_ref3","step"],"sources":["../../../src/labs/VStepperVertical/VStepperVertical.tsx"],"sourcesContent":["// Components\nimport { VStepperVerticalItem } from './VStepperVerticalItem'\nimport { makeVExpansionPanelsProps, VExpansionPanels } from '@/components/VExpansionPanel/VExpansionPanels'\nimport { makeStepperProps } from '@/components/VStepper/VStepper'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, toRefs } from 'vue'\nimport { genericComponent, getPropertyFromItem, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { StepperVerticalItemActionSlot } from './VStepperVerticalItem'\nimport type { VStepperSlot } from '@/components/VStepper/VStepper'\nimport type { StepperItemSlot } from '@/components/VStepper/VStepperItem'\nimport type { GenericProps } from '@/util'\n\nexport type VStepperVerticalSlots<T> = {\n actions: StepperVerticalItemActionSlot<T>\n default: VStepperSlot & { step: T }\n icon: StepperItemSlot<T>\n title: StepperItemSlot<T>\n subtitle: StepperItemSlot<T>\n prev: StepperVerticalItemActionSlot<T>\n next: StepperVerticalItemActionSlot<T>\n} & {\n [key: `header-item.${string}`]: StepperItemSlot<T>\n [key: `item.${string}`]: StepperItemSlot<T>\n}\n\nexport const makeVStepperVerticalProps = propsFactory({\n prevText: {\n type: String,\n default: '$vuetify.stepper.prev',\n },\n nextText: {\n type: String,\n default: '$vuetify.stepper.next',\n },\n\n ...makeStepperProps(),\n ...omit(makeVExpansionPanelsProps({\n mandatory: 'force' as const,\n variant: 'accordion' as const,\n }), ['static']),\n}, 'VStepperVertical')\n\nexport const VStepperVertical = genericComponent<new <T = number>(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VStepperVerticalSlots<T>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VStepperVertical',\n\n props: makeVStepperVerticalProps(),\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { slots }) {\n const vExpansionPanelsRef = ref<typeof VExpansionPanels>()\n const { color, eager, editable, prevText, nextText, hideActions } = toRefs(props)\n\n const model = useProxiedModel(props, 'modelValue')\n const items = computed(() => props.items.map((item, index) => {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, index + 1)\n\n return {\n title,\n value,\n raw: item,\n }\n }))\n\n provideDefaults({\n VStepperVerticalItem: {\n color,\n eager,\n editable,\n prevText,\n nextText,\n hideActions,\n static: true,\n },\n VStepperActions: {\n color,\n },\n })\n\n useRender(() => {\n const expansionPanelProps = VExpansionPanels.filterProps(props)\n\n return (\n <VExpansionPanels\n { ...expansionPanelProps }\n v-model={ model.value }\n ref={ vExpansionPanelsRef }\n class={[\n 'v-stepper',\n {\n 'v-stepper--alt-labels': props.altLabels,\n 'v-stepper--flat': props.flat,\n 'v-stepper--non-linear': props.nonLinear,\n 'v-stepper--mobile': props.mobile,\n },\n props.class,\n ]}\n style={ props.style }\n >\n {{\n ...slots,\n default: ({ prev, next }) => {\n return (\n <>\n { items.value.map(({ raw, ...item }) => (\n <VStepperVerticalItem { ...item }>\n {{\n ...slots,\n default: slots[`item.${item.value}`],\n }}\n </VStepperVerticalItem>\n ))}\n\n { slots.default?.({ prev, next, step: model.value }) }\n </>\n )\n },\n }}\n </VExpansionPanels>\n )\n })\n\n return {}\n },\n})\n\nexport type VStepperVertical = InstanceType<typeof VStepperVertical>\n"],"mappings":"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","ignoreList":[]}
|