@vuetify/nightly 3.8.7-master.2025-05-29 → 3.8.7-master.2025-06-02
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 +3246 -3246
- package/dist/json/importMap-labs.json +18 -18
- package/dist/json/importMap.json +184 -184
- package/dist/json/web-types.json +6070 -6070
- package/dist/vuetify-labs.cjs +90 -88
- package/dist/vuetify-labs.css +6727 -6727
- package/dist/vuetify-labs.d.ts +61 -57
- package/dist/vuetify-labs.esm.js +90 -88
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +90 -88
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +82 -76
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +2975 -2975
- package/dist/vuetify.d.ts +61 -57
- package/dist/vuetify.esm.js +82 -76
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +82 -76
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +264 -265
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VCarousel/VCarousel.js +3 -3
- package/lib/components/VCarousel/VCarousel.js.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.js +3 -3
- package/lib/components/VColorPicker/VColorPickerPreview.js.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.js +3 -3
- package/lib/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
- package/lib/components/VDataTable/VDataTableColumn.js +3 -3
- package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.js +3 -3
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.js.map +1 -1
- package/lib/components/VDataTable/VDataTableVirtual.js +7 -7
- package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerControls.js +4 -4
- package/lib/components/VDatePicker/VDatePickerControls.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.js +4 -11
- package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonths.js +3 -3
- package/lib/components/VDatePicker/VDatePickerMonths.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerYears.js +3 -3
- package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
- package/lib/components/VEmptyState/VEmptyState.js +3 -3
- package/lib/components/VEmptyState/VEmptyState.js.map +1 -1
- package/lib/components/VImg/VImg.js +7 -7
- package/lib/components/VImg/VImg.js.map +1 -1
- package/lib/components/VInfiniteScroll/VInfiniteScroll.js +3 -3
- package/lib/components/VInfiniteScroll/VInfiniteScroll.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.js +2 -2
- package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.js +2 -2
- package/lib/components/VProgressCircular/VProgressCircular.js.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.js +3 -3
- package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.js +2 -2
- package/lib/components/VSelectionControl/VSelectionControl.js.map +1 -1
- package/lib/components/VSlider/VSliderThumb.js +4 -4
- package/lib/components/VSlider/VSliderThumb.js.map +1 -1
- package/lib/components/VSlider/VSliderTrack.js +6 -6
- package/lib/components/VSlider/VSliderTrack.js.map +1 -1
- package/lib/components/VTable/VTable.js +3 -3
- package/lib/components/VTable/VTable.js.map +1 -1
- package/lib/components/VToolbar/VToolbar.js +5 -5
- package/lib/components/VToolbar/VToolbar.js.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.js +7 -7
- package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
- package/lib/components/VWindow/VWindow.js +3 -3
- package/lib/components/VWindow/VWindow.js.map +1 -1
- package/lib/composables/date/date.d.ts +4 -0
- package/lib/composables/date/date.js +14 -1
- package/lib/composables/date/date.js.map +1 -1
- package/lib/entry-bundler.d.ts +3 -0
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +61 -57
- package/lib/framework.js +1 -1
- package/lib/labs/VDateInput/VDateInput.js +3 -7
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/labs/VPullToRefresh/VPullToRefresh.js +7 -7
- package/lib/labs/VPullToRefresh/VPullToRefresh.js.map +1 -1
- package/lib/labs/entry-bundler.d.ts +3 -0
- package/package.json +2 -2
package/lib/framework.d.ts
CHANGED
@@ -100,6 +100,7 @@ interface DateAdapter<T = unknown> {
|
|
100
100
|
|
101
101
|
interface DateInstance extends DateModule.InternalAdapter {
|
102
102
|
locale?: any;
|
103
|
+
createDateRange: (start: unknown, stop?: unknown) => unknown[];
|
103
104
|
}
|
104
105
|
/** Supports module augmentation to specify date adapter types */
|
105
106
|
declare namespace DateModule {
|
@@ -2449,6 +2450,7 @@ declare function createVuetify(vuetify?: VuetifyOptions): {
|
|
2449
2450
|
options: InternalDateOptions;
|
2450
2451
|
instance: {
|
2451
2452
|
locale?: any;
|
2453
|
+
createDateRange: (start: unknown, stop?: unknown) => unknown[];
|
2452
2454
|
date: (value?: any) => unknown;
|
2453
2455
|
format: (date: unknown, formatString: string) => string;
|
2454
2456
|
toJsDate: (value: unknown) => Date;
|
@@ -2492,6 +2494,8 @@ declare function createVuetify(vuetify?: VuetifyOptions): {
|
|
2492
2494
|
setHours: (date: unknown, hours: number) => unknown;
|
2493
2495
|
getMinutes: (date: unknown) => number;
|
2494
2496
|
setMinutes: (date: unknown, minutes: number) => unknown;
|
2497
|
+
} & {
|
2498
|
+
createDateRange(start: unknown, stop?: unknown): unknown[];
|
2495
2499
|
};
|
2496
2500
|
};
|
2497
2501
|
goTo: GoToInstance;
|
@@ -2539,36 +2543,41 @@ declare module 'vue' {
|
|
2539
2543
|
$children?: VNodeChild
|
2540
2544
|
}
|
2541
2545
|
export interface GlobalComponents {
|
2546
|
+
VAppBar: typeof import('vuetify/components')['VAppBar']
|
2547
|
+
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
2548
|
+
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
2549
|
+
VApp: typeof import('vuetify/components')['VApp']
|
2542
2550
|
VAlert: typeof import('vuetify/components')['VAlert']
|
2543
2551
|
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
2544
|
-
VApp: typeof import('vuetify/components')['VApp']
|
2545
2552
|
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
2546
|
-
VAvatar: typeof import('vuetify/components')['VAvatar']
|
2547
2553
|
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
2554
|
+
VAvatar: typeof import('vuetify/components')['VAvatar']
|
2555
|
+
VBadge: typeof import('vuetify/components')['VBadge']
|
2548
2556
|
VBanner: typeof import('vuetify/components')['VBanner']
|
2549
2557
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
2550
2558
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
2551
2559
|
VBtn: typeof import('vuetify/components')['VBtn']
|
2552
2560
|
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
2561
|
+
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
2562
|
+
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
2563
|
+
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
2564
|
+
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
2565
|
+
VCarousel: typeof import('vuetify/components')['VCarousel']
|
2566
|
+
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
2553
2567
|
VCard: typeof import('vuetify/components')['VCard']
|
2554
2568
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
2555
2569
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
2556
2570
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
2557
2571
|
VCardText: typeof import('vuetify/components')['VCardText']
|
2558
2572
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
2559
|
-
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
2560
|
-
VBadge: typeof import('vuetify/components')['VBadge']
|
2561
|
-
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
2562
|
-
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
2563
|
-
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
2564
|
-
VChip: typeof import('vuetify/components')['VChip']
|
2565
2573
|
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
2566
2574
|
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
2575
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
2567
2576
|
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
2568
|
-
|
2569
|
-
VCode: typeof import('vuetify/components')['VCode']
|
2577
|
+
VChip: typeof import('vuetify/components')['VChip']
|
2570
2578
|
VCombobox: typeof import('vuetify/components')['VCombobox']
|
2571
|
-
|
2579
|
+
VCode: typeof import('vuetify/components')['VCode']
|
2580
|
+
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
2572
2581
|
VCounter: typeof import('vuetify/components')['VCounter']
|
2573
2582
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
2574
2583
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
@@ -2577,8 +2586,6 @@ declare module 'vue' {
|
|
2577
2586
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
2578
2587
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
2579
2588
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
2580
|
-
VCarousel: typeof import('vuetify/components')['VCarousel']
|
2581
|
-
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
2582
2589
|
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
2583
2590
|
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
2584
2591
|
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
@@ -2586,46 +2593,58 @@ declare module 'vue' {
|
|
2586
2593
|
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
2587
2594
|
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
2588
2595
|
VDialog: typeof import('vuetify/components')['VDialog']
|
2596
|
+
VFab: typeof import('vuetify/components')['VFab']
|
2589
2597
|
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
2590
|
-
VField: typeof import('vuetify/components')['VField']
|
2591
|
-
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
2592
2598
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
2593
2599
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
2594
2600
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
2595
2601
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
2602
|
+
VDivider: typeof import('vuetify/components')['VDivider']
|
2596
2603
|
VFileInput: typeof import('vuetify/components')['VFileInput']
|
2597
|
-
|
2604
|
+
VField: typeof import('vuetify/components')['VField']
|
2605
|
+
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
2598
2606
|
VFooter: typeof import('vuetify/components')['VFooter']
|
2599
|
-
VDivider: typeof import('vuetify/components')['VDivider']
|
2600
2607
|
VImg: typeof import('vuetify/components')['VImg']
|
2608
|
+
VInput: typeof import('vuetify/components')['VInput']
|
2609
|
+
VIcon: typeof import('vuetify/components')['VIcon']
|
2610
|
+
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
2611
|
+
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
2612
|
+
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
2613
|
+
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
2601
2614
|
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
2602
2615
|
VItem: typeof import('vuetify/components')['VItem']
|
2616
|
+
VList: typeof import('vuetify/components')['VList']
|
2617
|
+
VListGroup: typeof import('vuetify/components')['VListGroup']
|
2618
|
+
VListImg: typeof import('vuetify/components')['VListImg']
|
2619
|
+
VListItem: typeof import('vuetify/components')['VListItem']
|
2620
|
+
VListItemAction: typeof import('vuetify/components')['VListItemAction']
|
2621
|
+
VListItemMedia: typeof import('vuetify/components')['VListItemMedia']
|
2622
|
+
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
2623
|
+
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
2624
|
+
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
2603
2625
|
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
2604
2626
|
VKbd: typeof import('vuetify/components')['VKbd']
|
2605
2627
|
VLabel: typeof import('vuetify/components')['VLabel']
|
2606
|
-
|
2607
|
-
VMain: typeof import('vuetify/components')['VMain']
|
2608
|
-
VMenu: typeof import('vuetify/components')['VMenu']
|
2609
|
-
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
2628
|
+
VMessages: typeof import('vuetify/components')['VMessages']
|
2610
2629
|
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
2630
|
+
VMenu: typeof import('vuetify/components')['VMenu']
|
2631
|
+
VMain: typeof import('vuetify/components')['VMain']
|
2611
2632
|
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
2612
|
-
|
2613
|
-
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
2633
|
+
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
2614
2634
|
VOverlay: typeof import('vuetify/components')['VOverlay']
|
2635
|
+
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
2615
2636
|
VPagination: typeof import('vuetify/components')['VPagination']
|
2616
2637
|
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
2617
2638
|
VRating: typeof import('vuetify/components')['VRating']
|
2639
|
+
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
2618
2640
|
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
2619
2641
|
VSelect: typeof import('vuetify/components')['VSelect']
|
2620
|
-
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
2621
2642
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
2622
2643
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
2623
|
-
|
2644
|
+
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
2624
2645
|
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
2625
2646
|
VSheet: typeof import('vuetify/components')['VSheet']
|
2626
|
-
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
2627
2647
|
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
2628
|
-
VSwitch: typeof import('vuetify/components')['VSwitch']
|
2629
2648
|
VStepper: typeof import('vuetify/components')['VStepper']
|
2630
2649
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
2631
2650
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
@@ -2636,52 +2655,38 @@ declare module 'vue' {
|
|
2636
2655
|
VTabs: typeof import('vuetify/components')['VTabs']
|
2637
2656
|
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
2638
2657
|
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
2658
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
2639
2659
|
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
2660
|
+
VSwitch: typeof import('vuetify/components')['VSwitch']
|
2640
2661
|
VTable: typeof import('vuetify/components')['VTable']
|
2641
|
-
VTextarea: typeof import('vuetify/components')['VTextarea']
|
2642
|
-
VTooltip: typeof import('vuetify/components')['VTooltip']
|
2643
2662
|
VTimeline: typeof import('vuetify/components')['VTimeline']
|
2644
2663
|
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
2664
|
+
VTextarea: typeof import('vuetify/components')['VTextarea']
|
2665
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
2645
2666
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
2646
2667
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
2647
2668
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
2648
|
-
VTextField: typeof import('vuetify/components')['VTextField']
|
2649
2669
|
VWindow: typeof import('vuetify/components')['VWindow']
|
2650
2670
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
2651
|
-
|
2652
|
-
|
2653
|
-
|
2654
|
-
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
2655
|
-
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
2656
|
-
VList: typeof import('vuetify/components')['VList']
|
2657
|
-
VListGroup: typeof import('vuetify/components')['VListGroup']
|
2658
|
-
VListImg: typeof import('vuetify/components')['VListImg']
|
2659
|
-
VListItem: typeof import('vuetify/components')['VListItem']
|
2660
|
-
VListItemAction: typeof import('vuetify/components')['VListItemAction']
|
2661
|
-
VListItemMedia: typeof import('vuetify/components')['VListItemMedia']
|
2662
|
-
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
2663
|
-
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
2664
|
-
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
2671
|
+
VTooltip: typeof import('vuetify/components')['VTooltip']
|
2672
|
+
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
2673
|
+
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
2665
2674
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
2666
2675
|
VForm: typeof import('vuetify/components')['VForm']
|
2676
|
+
VHover: typeof import('vuetify/components')['VHover']
|
2667
2677
|
VContainer: typeof import('vuetify/components')['VContainer']
|
2668
2678
|
VCol: typeof import('vuetify/components')['VCol']
|
2669
2679
|
VRow: typeof import('vuetify/components')['VRow']
|
2670
2680
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
2671
|
-
VHover: typeof import('vuetify/components')['VHover']
|
2672
|
-
VLazy: typeof import('vuetify/components')['VLazy']
|
2673
|
-
VAppBar: typeof import('vuetify/components')['VAppBar']
|
2674
|
-
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
2675
|
-
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
2676
|
-
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
2677
2681
|
VLayout: typeof import('vuetify/components')['VLayout']
|
2678
2682
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
2683
|
+
VLazy: typeof import('vuetify/components')['VLazy']
|
2679
2684
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
2680
2685
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
2681
2686
|
VParallax: typeof import('vuetify/components')['VParallax']
|
2682
2687
|
VRadio: typeof import('vuetify/components')['VRadio']
|
2683
|
-
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
2684
2688
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
2689
|
+
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
2685
2690
|
VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
|
2686
2691
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
2687
2692
|
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
@@ -2704,29 +2709,28 @@ declare module 'vue' {
|
|
2704
2709
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
2705
2710
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
2706
2711
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
2707
|
-
|
2712
|
+
VColorInput: typeof import('vuetify/labs/components')['VColorInput']
|
2708
2713
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
2709
2714
|
VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
|
2710
2715
|
VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
|
2711
2716
|
VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
|
2712
2717
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
2713
2718
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
2714
|
-
|
2719
|
+
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
2720
|
+
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
2721
|
+
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
2715
2722
|
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
2716
2723
|
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
2717
2724
|
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
2718
2725
|
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
2719
2726
|
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
2720
|
-
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
2721
|
-
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
2722
|
-
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
2723
2727
|
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
2724
2728
|
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
2725
2729
|
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
2730
|
+
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
2726
2731
|
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
2727
2732
|
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
2728
2733
|
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
2729
|
-
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
2730
2734
|
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
2731
2735
|
}
|
2732
2736
|
}
|
package/lib/framework.js
CHANGED
@@ -12,7 +12,7 @@ import { forwardRefs } from "../../composables/forwardRefs.js";
|
|
12
12
|
import { useLocale } from "../../composables/locale.js";
|
13
13
|
import { useProxiedModel } from "../../composables/proxiedModel.js"; // Utilities
|
14
14
|
import { computed, ref, shallowRef, watch } from 'vue';
|
15
|
-
import {
|
15
|
+
import { genericComponent, omit, propsFactory, useRender, wrapInArray } from "../../util/index.js"; // Types
|
16
16
|
// Types
|
17
17
|
export const makeVDateInputProps = propsFactory({
|
18
18
|
displayFormat: [Function, String],
|
@@ -175,18 +175,14 @@ export const VDateInput = genericComponent()({
|
|
175
175
|
const parts = value.trim().split(/\D+-\D+|[^\d\-/.]+/);
|
176
176
|
if (parts.every(isValid)) {
|
177
177
|
if (props.multiple === 'range') {
|
178
|
-
|
178
|
+
const [start, stop] = parts.map(parseDate).toSorted((a, b) => adapter.isAfter(a, b) ? 1 : -1);
|
179
|
+
model.value = adapter.createDateRange(start, stop);
|
179
180
|
} else {
|
180
181
|
model.value = parts.map(parseDate);
|
181
182
|
}
|
182
183
|
}
|
183
184
|
}
|
184
185
|
}
|
185
|
-
function getRange(inputDates) {
|
186
|
-
const [start, stop] = inputDates.map(parseDate).toSorted((a, b) => adapter.isAfter(a, b) ? 1 : -1);
|
187
|
-
const diff = adapter.getDiff(stop ?? start, start, 'days');
|
188
|
-
return [start, ...createRange(diff, 1).map(i => adapter.addDays(start, i))];
|
189
|
-
}
|
190
186
|
useRender(() => {
|
191
187
|
const confirmEditProps = VConfirmEdit.filterProps(props);
|
192
188
|
const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VDateInput.js","names":["makeVConfirmEditProps","VConfirmEdit","makeVDatePickerProps","VDatePicker","VMenu","makeVTextFieldProps","VTextField","useDate","makeDateFormatProps","useDateFormat","makeDisplayProps","useDisplay","makeFocusProps","useFocus","forwardRefs","useLocale","useProxiedModel","computed","ref","shallowRef","watch","createRange","genericComponent","omit","propsFactory","useRender","wrapInArray","makeVDateInputProps","displayFormat","Function","String","location","type","default","menu","Boolean","updateOn","Array","mobile","hideActions","prependIcon","hideHeader","showAdjacentMonths","VDateInput","name","props","emits","save","value","cancel","val","setup","_ref","emit","slots","t","current","currentLocale","adapter","isValid","parseDate","formatDate","parserFormat","isFocused","focus","blur","emptyModelValue","multiple","model","isArray","map","item","toJsDate","date","isEditingInput","vTextFieldRef","disabledActions","format","display","length","start","end","inputmode","undefined","isInteractive","disabled","readonly","isReadonly","onKeydown","e","key","includes","onUserInput","target","onClick","preventDefault","stopPropagation","onCancel","onSave","onUpdateDisplayModel","onBlur","_ref2","trim","parts","split","every","getRange","inputDates","stop","toSorted","a","b","isAfter","diff","getDiff","i","addDays","confirmEditProps","filterProps","datePickerProps","textFieldProps","_createVNode","_mergeProps","class","style","placeholder","_createElementVNode","_Fragment","$event","_ref3","actions","proxyModel","isPristine","onUpdateModel"],"sources":["../../../src/labs/VDateInput/VDateInput.tsx"],"sourcesContent":["// Components\nimport { makeVConfirmEditProps, VConfirmEdit } from '@/components/VConfirmEdit/VConfirmEdit'\nimport { makeVDatePickerProps, VDatePicker } from '@/components/VDatePicker/VDatePicker'\nimport { VMenu } from '@/components/VMenu/VMenu'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\n\n// Composables\nimport { useDate } from '@/composables/date'\nimport { makeDateFormatProps, useDateFormat } from '@/composables/dateFormat'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, shallowRef, watch } from 'vue'\nimport { createRange, genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { StrategyProps } from '@/components/VOverlay/locationStrategies'\nimport type { VTextFieldSlots } from '@/components/VTextField/VTextField'\n\n// Types\nexport type VDateInputActionsSlot = {\n save: () => void\n cancel: () => void\n isPristine: boolean\n}\n\nexport type VDateInputSlots = Omit<VTextFieldSlots, 'default'> & {\n actions: VDateInputActionsSlot\n default: never\n}\n\nexport const makeVDateInputProps = propsFactory({\n displayFormat: [Function, String],\n location: {\n type: String as PropType<StrategyProps['location']>,\n default: 'bottom start',\n },\n menu: Boolean,\n updateOn: {\n type: Array as PropType<('blur' | 'enter')[]>,\n default: () => ['blur', 'enter'],\n },\n\n ...makeDateFormatProps(),\n ...makeDisplayProps({\n mobile: null,\n }),\n ...makeFocusProps(),\n ...makeVConfirmEditProps({\n hideActions: true,\n }),\n ...makeVTextFieldProps({\n prependIcon: '$calendar',\n }),\n ...omit(makeVDatePickerProps({\n hideHeader: true,\n showAdjacentMonths: true,\n }), ['active', 'location', 'rounded']),\n}, 'VDateInput')\n\nexport const VDateInput = genericComponent<VDateInputSlots>()({\n name: 'VDateInput',\n\n props: makeVDateInputProps(),\n\n emits: {\n save: (value: string) => true,\n cancel: () => true,\n 'update:modelValue': (val: string) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t, current: currentLocale } = useLocale()\n const adapter = useDate()\n const { isValid, parseDate, formatDate, parserFormat } = useDateFormat(props, currentLocale)\n const { mobile } = useDisplay(props)\n const { isFocused, focus, blur } = useFocus(props)\n\n const emptyModelValue = () => props.multiple ? [] : null\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n emptyModelValue(),\n val => Array.isArray(val) ? val.map(item => adapter.toJsDate(item)) : val ? adapter.toJsDate(val) : val,\n val => Array.isArray(val) ? val.map(item => adapter.date(item)) : val ? adapter.date(val) : val\n )\n\n const menu = useProxiedModel(props, 'menu')\n const isEditingInput = shallowRef(false)\n const vTextFieldRef = ref<VTextField>()\n const disabledActions = ref<typeof VConfirmEdit['props']['disabled']>(['save'])\n\n function format (date: unknown) {\n if (typeof props.displayFormat === 'function') {\n return props.displayFormat(date)\n }\n if (props.displayFormat) {\n return adapter.format(date, props.displayFormat ?? 'keyboardDate')\n }\n return formatDate(date)\n }\n\n const display = computed(() => {\n const value = wrapInArray(model.value)\n\n if (!value.length) return null\n\n if (props.multiple === true) {\n return t('$vuetify.datePicker.itemsSelected', value.length)\n }\n\n if (props.multiple === 'range') {\n const start = value[0]\n const end = value[value.length - 1]\n\n if (!adapter.isValid(start) || !adapter.isValid(end)) return ''\n\n return `${format(adapter.date(start))} - ${format(adapter.date(end))}`\n }\n\n return adapter.isValid(model.value) ? format(adapter.date(model.value)) : ''\n })\n\n const inputmode = computed(() => {\n if (!mobile.value) return undefined\n if (isEditingInput.value) return 'text'\n\n return 'none'\n })\n\n const isInteractive = computed(() => !props.disabled && !props.readonly)\n\n const isReadonly = computed(() => {\n if (!props.updateOn.length) return true\n\n return !(mobile.value && isEditingInput.value) && props.readonly\n })\n\n watch(menu, val => {\n if (val) return\n\n isEditingInput.value = false\n disabledActions.value = ['save']\n })\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key !== 'Enter') return\n\n if (!menu.value || !isFocused.value) {\n menu.value = true\n }\n\n if (props.updateOn.includes('enter')) {\n onUserInput(e.target as HTMLInputElement)\n }\n }\n\n function onClick (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n\n if (menu.value && mobile.value) {\n isEditingInput.value = true\n } else {\n menu.value = true\n }\n }\n\n function onCancel () {\n emit('cancel')\n menu.value = false\n isEditingInput.value = false\n }\n\n function onSave (value: string) {\n emit('save', value)\n menu.value = false\n }\n\n function onUpdateDisplayModel (value: unknown) {\n if (value != null) return\n\n model.value = emptyModelValue()\n }\n\n function onBlur (e: FocusEvent) {\n if (props.updateOn.includes('blur')) {\n onUserInput(e.target as HTMLInputElement)\n }\n\n blur()\n\n // When in mobile mode and editing is done (due to keyboard dismissal), close the menu\n if (mobile.value && isEditingInput.value && !isFocused.value) {\n menu.value = false\n isEditingInput.value = false\n }\n }\n\n function onUserInput ({ value }: HTMLInputElement) {\n if (!value.trim()) {\n model.value = emptyModelValue()\n } else if (!props.multiple) {\n if (isValid(value)) {\n model.value = parseDate(value)\n }\n } else {\n const parts = value.trim().split(/\\D+-\\D+|[^\\d\\-/.]+/)\n if (parts.every(isValid)) {\n if (props.multiple === 'range') {\n model.value = getRange(parts)\n } else {\n model.value = parts.map(parseDate)\n }\n }\n }\n }\n\n function getRange (inputDates: string[]) {\n const [start, stop] = inputDates.map(parseDate).toSorted((a, b) => adapter.isAfter(a, b) ? 1 : -1)\n const diff = adapter.getDiff(stop ?? start, start, 'days')\n return [start, ...createRange(diff, 1)\n .map(i => adapter.addDays(start, i))]\n }\n\n useRender(() => {\n const confirmEditProps = VConfirmEdit.filterProps(props)\n const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']))\n const textFieldProps = VTextField.filterProps(omit(props, ['placeholder']))\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n class={ props.class }\n style={ props.style }\n modelValue={ display.value }\n inputmode={ inputmode.value }\n placeholder={ props.placeholder ?? parserFormat.value }\n readonly={ isReadonly.value }\n onKeydown={ isInteractive.value ? onKeydown : undefined }\n focused={ menu.value || isFocused.value }\n onFocus={ focus }\n onBlur={ onBlur }\n validationValue={ model.value }\n onClick:control={ isInteractive.value ? onClick : undefined }\n onClick:prepend={ isInteractive.value ? onClick : undefined }\n onUpdate:modelValue={ onUpdateDisplayModel }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n min-width=\"0\"\n eager={ isFocused.value }\n location={ props.location }\n closeOnContentClick={ false }\n openOnClick={ false }\n >\n <VConfirmEdit\n { ...confirmEditProps }\n v-model={ model.value }\n disabled={ disabledActions.value }\n onSave={ onSave }\n onCancel={ onCancel }\n >\n {{\n default: ({ actions, model: proxyModel, save, cancel, isPristine }) => {\n function onUpdateModel (value: string) {\n if (!props.hideActions) {\n proxyModel.value = value\n } else {\n model.value = value\n\n if (!props.multiple) {\n menu.value = false\n }\n }\n\n emit('save', value)\n\n disabledActions.value = []\n }\n\n return (\n <VDatePicker\n { ...datePickerProps }\n modelValue={ props.hideActions ? model.value : proxyModel.value }\n onUpdate:modelValue={ value => onUpdateModel(value) }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n >\n {{\n actions: !props.hideActions ? () => slots.actions?.({ save, cancel, isPristine }) ?? actions() : undefined,\n }}\n </VDatePicker>\n )\n },\n }}\n </VConfirmEdit>\n </VMenu>\n\n { slots.default?.() }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({}, vTextFieldRef)\n },\n})\n\nexport type VDateInput = InstanceType<typeof VDateInput>\n"],"mappings":";AAAA;AAAA,SACSA,qBAAqB,EAAEC,YAAY;AAAA,SACnCC,oBAAoB,EAAEC,WAAW;AAAA,SACjCC,KAAK;AAAA,SACLC,mBAAmB,EAAEC,UAAU,qDAExC;AAAA,SACSC,OAAO;AAAA,SACPC,mBAAmB,EAAEC,aAAa;AAAA,SAClCC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,cAAc,EAAEC,QAAQ;AAAA,SACxBC,WAAW;AAAA,SACXC,SAAS;AAAA,SACTC,eAAe,6CAExB;AACA,SAASC,QAAQ,EAAEC,GAAG,EAAEC,UAAU,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC7CC,WAAW,EAAEC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,EAAEC,WAAW,+BAElF;AAKA;AAYA,OAAO,MAAMC,mBAAmB,GAAGH,YAAY,CAAC;EAC9CI,aAAa,EAAE,CAACC,QAAQ,EAAEC,MAAM,CAAC;EACjCC,QAAQ,EAAE;IACRC,IAAI,EAAEF,MAA6C;IACnDG,OAAO,EAAE;EACX,CAAC;EACDC,IAAI,EAAEC,OAAO;EACbC,QAAQ,EAAE;IACRJ,IAAI,EAAEK,KAAuC;IAC7CJ,OAAO,EAAEA,CAAA,KAAM,CAAC,MAAM,EAAE,OAAO;EACjC,CAAC;EAED,GAAGzB,mBAAmB,CAAC,CAAC;EACxB,GAAGE,gBAAgB,CAAC;IAClB4B,MAAM,EAAE;EACV,CAAC,CAAC;EACF,GAAG1B,cAAc,CAAC,CAAC;EACnB,GAAGZ,qBAAqB,CAAC;IACvBuC,WAAW,EAAE;EACf,CAAC,CAAC;EACF,GAAGlC,mBAAmB,CAAC;IACrBmC,WAAW,EAAE;EACf,CAAC,CAAC;EACF,GAAGjB,IAAI,CAACrB,oBAAoB,CAAC;IAC3BuC,UAAU,EAAE,IAAI;IAChBC,kBAAkB,EAAE;EACtB,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC;AACvC,CAAC,EAAE,YAAY,CAAC;AAEhB,OAAO,MAAMC,UAAU,GAAGrB,gBAAgB,CAAkB,CAAC,CAAC;EAC5DsB,IAAI,EAAE,YAAY;EAElBC,KAAK,EAAElB,mBAAmB,CAAC,CAAC;EAE5BmB,KAAK,EAAE;IACLC,IAAI,EAAGC,KAAa,IAAK,IAAI;IAC7BC,MAAM,EAAEA,CAAA,KAAM,IAAI;IAClB,mBAAmB,EAAGC,GAAW,IAAK,IAAI;IAC1C,aAAa,EAAGA,GAAY,IAAK;EACnC,CAAC;EAEDC,KAAKA,CAAEN,KAAK,EAAAO,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAM;MAAEG,CAAC;MAAEC,OAAO,EAAEC;IAAc,CAAC,GAAG1C,SAAS,CAAC,CAAC;IACjD,MAAM2C,OAAO,GAAGnD,OAAO,CAAC,CAAC;IACzB,MAAM;MAAEoD,OAAO;MAAEC,SAAS;MAAEC,UAAU;MAAEC;IAAa,CAAC,GAAGrD,aAAa,CAACoC,KAAK,EAAEY,aAAa,CAAC;IAC5F,MAAM;MAAEnB;IAAO,CAAC,GAAG3B,UAAU,CAACkC,KAAK,CAAC;IACpC,MAAM;MAAEkB,SAAS;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAGpD,QAAQ,CAACgC,KAAK,CAAC;IAElD,MAAMqB,eAAe,GAAGA,CAAA,KAAMrB,KAAK,CAACsB,QAAQ,GAAG,EAAE,GAAG,IAAI;IAExD,MAAMC,KAAK,GAAGpD,eAAe,CAC3B6B,KAAK,EACL,YAAY,EACZqB,eAAe,CAAC,CAAC,EACjBhB,GAAG,IAAIb,KAAK,CAACgC,OAAO,CAACnB,GAAG,CAAC,GAAGA,GAAG,CAACoB,GAAG,CAACC,IAAI,IAAIb,OAAO,CAACc,QAAQ,CAACD,IAAI,CAAC,CAAC,GAAGrB,GAAG,GAAGQ,OAAO,CAACc,QAAQ,CAACtB,GAAG,CAAC,GAAGA,GAAG,EACvGA,GAAG,IAAIb,KAAK,CAACgC,OAAO,CAACnB,GAAG,CAAC,GAAGA,GAAG,CAACoB,GAAG,CAACC,IAAI,IAAIb,OAAO,CAACe,IAAI,CAACF,IAAI,CAAC,CAAC,GAAGrB,GAAG,GAAGQ,OAAO,CAACe,IAAI,CAACvB,GAAG,CAAC,GAAGA,GAC9F,CAAC;IAED,MAAMhB,IAAI,GAAGlB,eAAe,CAAC6B,KAAK,EAAE,MAAM,CAAC;IAC3C,MAAM6B,cAAc,GAAGvD,UAAU,CAAC,KAAK,CAAC;IACxC,MAAMwD,aAAa,GAAGzD,GAAG,CAAa,CAAC;IACvC,MAAM0D,eAAe,GAAG1D,GAAG,CAA2C,CAAC,MAAM,CAAC,CAAC;IAE/E,SAAS2D,MAAMA,CAAEJ,IAAa,EAAE;MAC9B,IAAI,OAAO5B,KAAK,CAACjB,aAAa,KAAK,UAAU,EAAE;QAC7C,OAAOiB,KAAK,CAACjB,aAAa,CAAC6C,IAAI,CAAC;MAClC;MACA,IAAI5B,KAAK,CAACjB,aAAa,EAAE;QACvB,OAAO8B,OAAO,CAACmB,MAAM,CAACJ,IAAI,EAAE5B,KAAK,CAACjB,aAAa,IAAI,cAAc,CAAC;MACpE;MACA,OAAOiC,UAAU,CAACY,IAAI,CAAC;IACzB;IAEA,MAAMK,OAAO,GAAG7D,QAAQ,CAAC,MAAM;MAC7B,MAAM+B,KAAK,GAAGtB,WAAW,CAAC0C,KAAK,CAACpB,KAAK,CAAC;MAEtC,IAAI,CAACA,KAAK,CAAC+B,MAAM,EAAE,OAAO,IAAI;MAE9B,IAAIlC,KAAK,CAACsB,QAAQ,KAAK,IAAI,EAAE;QAC3B,OAAOZ,CAAC,CAAC,mCAAmC,EAAEP,KAAK,CAAC+B,MAAM,CAAC;MAC7D;MAEA,IAAIlC,KAAK,CAACsB,QAAQ,KAAK,OAAO,EAAE;QAC9B,MAAMa,KAAK,GAAGhC,KAAK,CAAC,CAAC,CAAC;QACtB,MAAMiC,GAAG,GAAGjC,KAAK,CAACA,KAAK,CAAC+B,MAAM,GAAG,CAAC,CAAC;QAEnC,IAAI,CAACrB,OAAO,CAACC,OAAO,CAACqB,KAAK,CAAC,IAAI,CAACtB,OAAO,CAACC,OAAO,CAACsB,GAAG,CAAC,EAAE,OAAO,EAAE;QAE/D,OAAO,GAAGJ,MAAM,CAACnB,OAAO,CAACe,IAAI,CAACO,KAAK,CAAC,CAAC,MAAMH,MAAM,CAACnB,OAAO,CAACe,IAAI,CAACQ,GAAG,CAAC,CAAC,EAAE;MACxE;MAEA,OAAOvB,OAAO,CAACC,OAAO,CAACS,KAAK,CAACpB,KAAK,CAAC,GAAG6B,MAAM,CAACnB,OAAO,CAACe,IAAI,CAACL,KAAK,CAACpB,KAAK,CAAC,CAAC,GAAG,EAAE;IAC9E,CAAC,CAAC;IAEF,MAAMkC,SAAS,GAAGjE,QAAQ,CAAC,MAAM;MAC/B,IAAI,CAACqB,MAAM,CAACU,KAAK,EAAE,OAAOmC,SAAS;MACnC,IAAIT,cAAc,CAAC1B,KAAK,EAAE,OAAO,MAAM;MAEvC,OAAO,MAAM;IACf,CAAC,CAAC;IAEF,MAAMoC,aAAa,GAAGnE,QAAQ,CAAC,MAAM,CAAC4B,KAAK,CAACwC,QAAQ,IAAI,CAACxC,KAAK,CAACyC,QAAQ,CAAC;IAExE,MAAMC,UAAU,GAAGtE,QAAQ,CAAC,MAAM;MAChC,IAAI,CAAC4B,KAAK,CAACT,QAAQ,CAAC2C,MAAM,EAAE,OAAO,IAAI;MAEvC,OAAO,EAAEzC,MAAM,CAACU,KAAK,IAAI0B,cAAc,CAAC1B,KAAK,CAAC,IAAIH,KAAK,CAACyC,QAAQ;IAClE,CAAC,CAAC;IAEFlE,KAAK,CAACc,IAAI,EAAEgB,GAAG,IAAI;MACjB,IAAIA,GAAG,EAAE;MAETwB,cAAc,CAAC1B,KAAK,GAAG,KAAK;MAC5B4B,eAAe,CAAC5B,KAAK,GAAG,CAAC,MAAM,CAAC;IAClC,CAAC,CAAC;IAEF,SAASwC,SAASA,CAAEC,CAAgB,EAAE;MACpC,IAAIA,CAAC,CAACC,GAAG,KAAK,OAAO,EAAE;MAEvB,IAAI,CAACxD,IAAI,CAACc,KAAK,IAAI,CAACe,SAAS,CAACf,KAAK,EAAE;QACnCd,IAAI,CAACc,KAAK,GAAG,IAAI;MACnB;MAEA,IAAIH,KAAK,CAACT,QAAQ,CAACuD,QAAQ,CAAC,OAAO,CAAC,EAAE;QACpCC,WAAW,CAACH,CAAC,CAACI,MAA0B,CAAC;MAC3C;IACF;IAEA,SAASC,OAAOA,CAAEL,CAAa,EAAE;MAC/BA,CAAC,CAACM,cAAc,CAAC,CAAC;MAClBN,CAAC,CAACO,eAAe,CAAC,CAAC;MAEnB,IAAI9D,IAAI,CAACc,KAAK,IAAIV,MAAM,CAACU,KAAK,EAAE;QAC9B0B,cAAc,CAAC1B,KAAK,GAAG,IAAI;MAC7B,CAAC,MAAM;QACLd,IAAI,CAACc,KAAK,GAAG,IAAI;MACnB;IACF;IAEA,SAASiD,QAAQA,CAAA,EAAI;MACnB5C,IAAI,CAAC,QAAQ,CAAC;MACdnB,IAAI,CAACc,KAAK,GAAG,KAAK;MAClB0B,cAAc,CAAC1B,KAAK,GAAG,KAAK;IAC9B;IAEA,SAASkD,MAAMA,CAAElD,KAAa,EAAE;MAC9BK,IAAI,CAAC,MAAM,EAAEL,KAAK,CAAC;MACnBd,IAAI,CAACc,KAAK,GAAG,KAAK;IACpB;IAEA,SAASmD,oBAAoBA,CAAEnD,KAAc,EAAE;MAC7C,IAAIA,KAAK,IAAI,IAAI,EAAE;MAEnBoB,KAAK,CAACpB,KAAK,GAAGkB,eAAe,CAAC,CAAC;IACjC;IAEA,SAASkC,MAAMA,CAAEX,CAAa,EAAE;MAC9B,IAAI5C,KAAK,CAACT,QAAQ,CAACuD,QAAQ,CAAC,MAAM,CAAC,EAAE;QACnCC,WAAW,CAACH,CAAC,CAACI,MAA0B,CAAC;MAC3C;MAEA5B,IAAI,CAAC,CAAC;;MAEN;MACA,IAAI3B,MAAM,CAACU,KAAK,IAAI0B,cAAc,CAAC1B,KAAK,IAAI,CAACe,SAAS,CAACf,KAAK,EAAE;QAC5Dd,IAAI,CAACc,KAAK,GAAG,KAAK;QAClB0B,cAAc,CAAC1B,KAAK,GAAG,KAAK;MAC9B;IACF;IAEA,SAAS4C,WAAWA,CAAAS,KAAA,EAA+B;MAAA,IAA7B;QAAErD;MAAwB,CAAC,GAAAqD,KAAA;MAC/C,IAAI,CAACrD,KAAK,CAACsD,IAAI,CAAC,CAAC,EAAE;QACjBlC,KAAK,CAACpB,KAAK,GAAGkB,eAAe,CAAC,CAAC;MACjC,CAAC,MAAM,IAAI,CAACrB,KAAK,CAACsB,QAAQ,EAAE;QAC1B,IAAIR,OAAO,CAACX,KAAK,CAAC,EAAE;UAClBoB,KAAK,CAACpB,KAAK,GAAGY,SAAS,CAACZ,KAAK,CAAC;QAChC;MACF,CAAC,MAAM;QACL,MAAMuD,KAAK,GAAGvD,KAAK,CAACsD,IAAI,CAAC,CAAC,CAACE,KAAK,CAAC,oBAAoB,CAAC;QACtD,IAAID,KAAK,CAACE,KAAK,CAAC9C,OAAO,CAAC,EAAE;UACxB,IAAId,KAAK,CAACsB,QAAQ,KAAK,OAAO,EAAE;YAC9BC,KAAK,CAACpB,KAAK,GAAG0D,QAAQ,CAACH,KAAK,CAAC;UAC/B,CAAC,MAAM;YACLnC,KAAK,CAACpB,KAAK,GAAGuD,KAAK,CAACjC,GAAG,CAACV,SAAS,CAAC;UACpC;QACF;MACF;IACF;IAEA,SAAS8C,QAAQA,CAAEC,UAAoB,EAAE;MACvC,MAAM,CAAC3B,KAAK,EAAE4B,IAAI,CAAC,GAAGD,UAAU,CAACrC,GAAG,CAACV,SAAS,CAAC,CAACiD,QAAQ,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKrD,OAAO,CAACsD,OAAO,CAACF,CAAC,EAAEC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;MAClG,MAAME,IAAI,GAAGvD,OAAO,CAACwD,OAAO,CAACN,IAAI,IAAI5B,KAAK,EAAEA,KAAK,EAAE,MAAM,CAAC;MAC1D,OAAO,CAACA,KAAK,EAAE,GAAG3D,WAAW,CAAC4F,IAAI,EAAE,CAAC,CAAC,CACnC3C,GAAG,CAAC6C,CAAC,IAAIzD,OAAO,CAAC0D,OAAO,CAACpC,KAAK,EAAEmC,CAAC,CAAC,CAAC,CAAC;IACzC;IAEA1F,SAAS,CAAC,MAAM;MACd,MAAM4F,gBAAgB,GAAGpH,YAAY,CAACqH,WAAW,CAACzE,KAAK,CAAC;MACxD,MAAM0E,eAAe,GAAGpH,WAAW,CAACmH,WAAW,CAAC/F,IAAI,CAACsB,KAAK,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;MAC/F,MAAM2E,cAAc,GAAGlH,UAAU,CAACgH,WAAW,CAAC/F,IAAI,CAACsB,KAAK,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;MAE3E,OAAA4E,YAAA,CAAAnH,UAAA,EAAAoH,WAAA;QAAA,OAEU/C;MAAa,GACd6C,cAAc;QAAA,SACX3E,KAAK,CAAC8E,KAAK;QAAA,SACX9E,KAAK,CAAC+E,KAAK;QAAA,cACN9C,OAAO,CAAC9B,KAAK;QAAA,aACdkC,SAAS,CAAClC,KAAK;QAAA,eACbH,KAAK,CAACgF,WAAW,IAAI/D,YAAY,CAACd,KAAK;QAAA,YAC1CuC,UAAU,CAACvC,KAAK;QAAA,aACfoC,aAAa,CAACpC,KAAK,GAAGwC,SAAS,GAAGL,SAAS;QAAA,WAC7CjD,IAAI,CAACc,KAAK,IAAIe,SAAS,CAACf,KAAK;QAAA,WAC7BgB,KAAK;QAAA,UACNoC,MAAM;QAAA,mBACGhC,KAAK,CAACpB,KAAK;QAAA,mBACXoC,aAAa,CAACpC,KAAK,GAAG8C,OAAO,GAAGX,SAAS;QAAA,mBACzCC,aAAa,CAACpC,KAAK,GAAG8C,OAAO,GAAGX,SAAS;QAAA,uBACrCgB;MAAoB;QAGxC,GAAG7C,KAAK;QACRrB,OAAO,EAAEA,CAAA,KAAA6F,mBAAA,CAAAC,SAAA,SAAAN,YAAA,CAAArH,KAAA;UAAA,cAGO8B,IAAI,CAACc,KAAK;UAAA,uBAAAgF,MAAA,IAAV9F,IAAI,CAACc,KAAK,GAAAgF,MAAA;UAAA;UAAA;UAAA,SAGZjE,SAAS,CAACf,KAAK;UAAA,YACZH,KAAK,CAACd,QAAQ;UAAA,uBACH,KAAK;UAAA,eACb;QAAK;UAAAE,OAAA,EAAAA,CAAA,MAAAwF,YAAA,CAAAxH,YAAA,EAAAyH,WAAA,CAGZL,gBAAgB;YAAA,cACXjD,KAAK,CAACpB,KAAK;YAAA,uBAAAgF,MAAA,IAAX5D,KAAK,CAACpB,KAAK,GAAAgF,MAAA;YAAA,YACVpD,eAAe,CAAC5B,KAAK;YAAA,UACvBkD,MAAM;YAAA,YACJD;UAAQ;YAGjBhE,OAAO,EAAEgG,KAAA,IAA8D;cAAA,IAA7D;gBAAEC,OAAO;gBAAE9D,KAAK,EAAE+D,UAAU;gBAAEpF,IAAI;gBAAEE,MAAM;gBAAEmF;cAAW,CAAC,GAAAH,KAAA;cAChE,SAASI,aAAaA,CAAErF,KAAa,EAAE;gBACrC,IAAI,CAACH,KAAK,CAACN,WAAW,EAAE;kBACtB4F,UAAU,CAACnF,KAAK,GAAGA,KAAK;gBAC1B,CAAC,MAAM;kBACLoB,KAAK,CAACpB,KAAK,GAAGA,KAAK;kBAEnB,IAAI,CAACH,KAAK,CAACsB,QAAQ,EAAE;oBACnBjC,IAAI,CAACc,KAAK,GAAG,KAAK;kBACpB;gBACF;gBAEAK,IAAI,CAAC,MAAM,EAAEL,KAAK,CAAC;gBAEnB4B,eAAe,CAAC5B,KAAK,GAAG,EAAE;cAC5B;cAEA,OAAAyE,YAAA,CAAAtH,WAAA,EAAAuH,WAAA,CAESH,eAAe;gBAAA,cACP1E,KAAK,CAACN,WAAW,GAAG6B,KAAK,CAACpB,KAAK,GAAGmF,UAAU,CAACnF,KAAK;gBAAA,uBACzCA,KAAK,IAAIqF,aAAa,CAACrF,KAAK,CAAC;gBAAA,eACpCyC,CAAa,IAAKA,CAAC,CAACM,cAAc,CAAC;cAAC;gBAGjDmC,OAAO,EAAE,CAACrF,KAAK,CAACN,WAAW,GAAG,MAAMe,KAAK,CAAC4E,OAAO,GAAG;kBAAEnF,IAAI;kBAAEE,MAAM;kBAAEmF;gBAAW,CAAC,CAAC,IAAIF,OAAO,CAAC,CAAC,GAAG/C;cAAS;YAIlH;UAAC;QAAA,IAKL7B,KAAK,CAACrB,OAAO,GAAG,CAAC;MAEtB;IAIT,CAAC,CAAC;IAEF,OAAOnB,WAAW,CAAC,CAAC,CAAC,EAAE6D,aAAa,CAAC;EACvC;AACF,CAAC,CAAC","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VDateInput.js","names":["makeVConfirmEditProps","VConfirmEdit","makeVDatePickerProps","VDatePicker","VMenu","makeVTextFieldProps","VTextField","useDate","makeDateFormatProps","useDateFormat","makeDisplayProps","useDisplay","makeFocusProps","useFocus","forwardRefs","useLocale","useProxiedModel","computed","ref","shallowRef","watch","genericComponent","omit","propsFactory","useRender","wrapInArray","makeVDateInputProps","displayFormat","Function","String","location","type","default","menu","Boolean","updateOn","Array","mobile","hideActions","prependIcon","hideHeader","showAdjacentMonths","VDateInput","name","props","emits","save","value","cancel","val","setup","_ref","emit","slots","t","current","currentLocale","adapter","isValid","parseDate","formatDate","parserFormat","isFocused","focus","blur","emptyModelValue","multiple","model","isArray","map","item","toJsDate","date","isEditingInput","vTextFieldRef","disabledActions","format","display","length","start","end","inputmode","undefined","isInteractive","disabled","readonly","isReadonly","onKeydown","e","key","includes","onUserInput","target","onClick","preventDefault","stopPropagation","onCancel","onSave","onUpdateDisplayModel","onBlur","_ref2","trim","parts","split","every","stop","toSorted","a","b","isAfter","createDateRange","confirmEditProps","filterProps","datePickerProps","textFieldProps","_createVNode","_mergeProps","class","style","placeholder","_createElementVNode","_Fragment","$event","_ref3","actions","proxyModel","isPristine","onUpdateModel"],"sources":["../../../src/labs/VDateInput/VDateInput.tsx"],"sourcesContent":["// Components\nimport { makeVConfirmEditProps, VConfirmEdit } from '@/components/VConfirmEdit/VConfirmEdit'\nimport { makeVDatePickerProps, VDatePicker } from '@/components/VDatePicker/VDatePicker'\nimport { VMenu } from '@/components/VMenu/VMenu'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\n\n// Composables\nimport { useDate } from '@/composables/date'\nimport { makeDateFormatProps, useDateFormat } from '@/composables/dateFormat'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { StrategyProps } from '@/components/VOverlay/locationStrategies'\nimport type { VTextFieldSlots } from '@/components/VTextField/VTextField'\n\n// Types\nexport type VDateInputActionsSlot = {\n save: () => void\n cancel: () => void\n isPristine: boolean\n}\n\nexport type VDateInputSlots = Omit<VTextFieldSlots, 'default'> & {\n actions: VDateInputActionsSlot\n default: never\n}\n\nexport const makeVDateInputProps = propsFactory({\n displayFormat: [Function, String],\n location: {\n type: String as PropType<StrategyProps['location']>,\n default: 'bottom start',\n },\n menu: Boolean,\n updateOn: {\n type: Array as PropType<('blur' | 'enter')[]>,\n default: () => ['blur', 'enter'],\n },\n\n ...makeDateFormatProps(),\n ...makeDisplayProps({\n mobile: null,\n }),\n ...makeFocusProps(),\n ...makeVConfirmEditProps({\n hideActions: true,\n }),\n ...makeVTextFieldProps({\n prependIcon: '$calendar',\n }),\n ...omit(makeVDatePickerProps({\n hideHeader: true,\n showAdjacentMonths: true,\n }), ['active', 'location', 'rounded']),\n}, 'VDateInput')\n\nexport const VDateInput = genericComponent<VDateInputSlots>()({\n name: 'VDateInput',\n\n props: makeVDateInputProps(),\n\n emits: {\n save: (value: string) => true,\n cancel: () => true,\n 'update:modelValue': (val: string) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t, current: currentLocale } = useLocale()\n const adapter = useDate()\n const { isValid, parseDate, formatDate, parserFormat } = useDateFormat(props, currentLocale)\n const { mobile } = useDisplay(props)\n const { isFocused, focus, blur } = useFocus(props)\n\n const emptyModelValue = () => props.multiple ? [] : null\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n emptyModelValue(),\n val => Array.isArray(val) ? val.map(item => adapter.toJsDate(item)) : val ? adapter.toJsDate(val) : val,\n val => Array.isArray(val) ? val.map(item => adapter.date(item)) : val ? adapter.date(val) : val\n )\n\n const menu = useProxiedModel(props, 'menu')\n const isEditingInput = shallowRef(false)\n const vTextFieldRef = ref<VTextField>()\n const disabledActions = ref<typeof VConfirmEdit['props']['disabled']>(['save'])\n\n function format (date: unknown) {\n if (typeof props.displayFormat === 'function') {\n return props.displayFormat(date)\n }\n if (props.displayFormat) {\n return adapter.format(date, props.displayFormat ?? 'keyboardDate')\n }\n return formatDate(date)\n }\n\n const display = computed(() => {\n const value = wrapInArray(model.value)\n\n if (!value.length) return null\n\n if (props.multiple === true) {\n return t('$vuetify.datePicker.itemsSelected', value.length)\n }\n\n if (props.multiple === 'range') {\n const start = value[0]\n const end = value[value.length - 1]\n\n if (!adapter.isValid(start) || !adapter.isValid(end)) return ''\n\n return `${format(adapter.date(start))} - ${format(adapter.date(end))}`\n }\n\n return adapter.isValid(model.value) ? format(adapter.date(model.value)) : ''\n })\n\n const inputmode = computed(() => {\n if (!mobile.value) return undefined\n if (isEditingInput.value) return 'text'\n\n return 'none'\n })\n\n const isInteractive = computed(() => !props.disabled && !props.readonly)\n\n const isReadonly = computed(() => {\n if (!props.updateOn.length) return true\n\n return !(mobile.value && isEditingInput.value) && props.readonly\n })\n\n watch(menu, val => {\n if (val) return\n\n isEditingInput.value = false\n disabledActions.value = ['save']\n })\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key !== 'Enter') return\n\n if (!menu.value || !isFocused.value) {\n menu.value = true\n }\n\n if (props.updateOn.includes('enter')) {\n onUserInput(e.target as HTMLInputElement)\n }\n }\n\n function onClick (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n\n if (menu.value && mobile.value) {\n isEditingInput.value = true\n } else {\n menu.value = true\n }\n }\n\n function onCancel () {\n emit('cancel')\n menu.value = false\n isEditingInput.value = false\n }\n\n function onSave (value: string) {\n emit('save', value)\n menu.value = false\n }\n\n function onUpdateDisplayModel (value: unknown) {\n if (value != null) return\n\n model.value = emptyModelValue()\n }\n\n function onBlur (e: FocusEvent) {\n if (props.updateOn.includes('blur')) {\n onUserInput(e.target as HTMLInputElement)\n }\n\n blur()\n\n // When in mobile mode and editing is done (due to keyboard dismissal), close the menu\n if (mobile.value && isEditingInput.value && !isFocused.value) {\n menu.value = false\n isEditingInput.value = false\n }\n }\n\n function onUserInput ({ value }: HTMLInputElement) {\n if (!value.trim()) {\n model.value = emptyModelValue()\n } else if (!props.multiple) {\n if (isValid(value)) {\n model.value = parseDate(value)\n }\n } else {\n const parts = value.trim().split(/\\D+-\\D+|[^\\d\\-/.]+/)\n if (parts.every(isValid)) {\n if (props.multiple === 'range') {\n const [start, stop] = parts.map(parseDate).toSorted((a, b) => adapter.isAfter(a, b) ? 1 : -1)\n model.value = adapter.createDateRange(start, stop)\n } else {\n model.value = parts.map(parseDate)\n }\n }\n }\n }\n\n useRender(() => {\n const confirmEditProps = VConfirmEdit.filterProps(props)\n const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']))\n const textFieldProps = VTextField.filterProps(omit(props, ['placeholder']))\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n class={ props.class }\n style={ props.style }\n modelValue={ display.value }\n inputmode={ inputmode.value }\n placeholder={ props.placeholder ?? parserFormat.value }\n readonly={ isReadonly.value }\n onKeydown={ isInteractive.value ? onKeydown : undefined }\n focused={ menu.value || isFocused.value }\n onFocus={ focus }\n onBlur={ onBlur }\n validationValue={ model.value }\n onClick:control={ isInteractive.value ? onClick : undefined }\n onClick:prepend={ isInteractive.value ? onClick : undefined }\n onUpdate:modelValue={ onUpdateDisplayModel }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n min-width=\"0\"\n eager={ isFocused.value }\n location={ props.location }\n closeOnContentClick={ false }\n openOnClick={ false }\n >\n <VConfirmEdit\n { ...confirmEditProps }\n v-model={ model.value }\n disabled={ disabledActions.value }\n onSave={ onSave }\n onCancel={ onCancel }\n >\n {{\n default: ({ actions, model: proxyModel, save, cancel, isPristine }) => {\n function onUpdateModel (value: string) {\n if (!props.hideActions) {\n proxyModel.value = value\n } else {\n model.value = value\n\n if (!props.multiple) {\n menu.value = false\n }\n }\n\n emit('save', value)\n\n disabledActions.value = []\n }\n\n return (\n <VDatePicker\n { ...datePickerProps }\n modelValue={ props.hideActions ? model.value : proxyModel.value }\n onUpdate:modelValue={ value => onUpdateModel(value) }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n >\n {{\n actions: !props.hideActions ? () => slots.actions?.({ save, cancel, isPristine }) ?? actions() : undefined,\n }}\n </VDatePicker>\n )\n },\n }}\n </VConfirmEdit>\n </VMenu>\n\n { slots.default?.() }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({}, vTextFieldRef)\n },\n})\n\nexport type VDateInput = InstanceType<typeof VDateInput>\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { createVNode as _createVNode,
|
1
|
+
import { createVNode as _createVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode } from "vue";
|
2
2
|
// Styles
|
3
3
|
import "./VPullToRefresh.css";
|
4
4
|
|
@@ -76,7 +76,7 @@ export const VPullToRefresh = genericComponent()({
|
|
76
76
|
});
|
77
77
|
useRender(() => {
|
78
78
|
return _createElementVNode("div", {
|
79
|
-
"class": ['v-pull-to-refresh'],
|
79
|
+
"class": _normalizeClass(['v-pull-to-refresh']),
|
80
80
|
"onTouchstart": onTouchstart,
|
81
81
|
"onTouchmove": onTouchmove,
|
82
82
|
"onTouchend": onTouchend,
|
@@ -89,16 +89,16 @@ export const VPullToRefresh = genericComponent()({
|
|
89
89
|
"class": _normalizeClass(['v-pull-to-refresh__pull-down', {
|
90
90
|
'v-pull-to-refresh__pull-down--touching': touching.value
|
91
91
|
}]),
|
92
|
-
"style":
|
92
|
+
"style": {
|
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
|
-
"class": ['v-pull-to-refresh__pull-down-default']
|
101
|
+
"class": _normalizeClass(['v-pull-to-refresh__pull-down-default'])
|
102
102
|
}, [refreshing.value ? _createVNode(VProgressCircular, {
|
103
103
|
"indeterminate": true,
|
104
104
|
"active": false
|
@@ -108,9 +108,9 @@ export const VPullToRefresh = genericComponent()({
|
|
108
108
|
"class": _normalizeClass(['v-pull-to-refresh__scroll-container', {
|
109
109
|
'v-pull-to-refresh__scroll-container--touching': touching.value
|
110
110
|
}]),
|
111
|
-
"style":
|
111
|
+
"style": {
|
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","_createElementVNode","_normalizeClass","
|
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","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":[]}
|
@@ -27,6 +27,7 @@ export declare const createVuetify: (options?: VuetifyOptions) => {
|
|
27
27
|
options: import("../composables/date/date.js").InternalDateOptions;
|
28
28
|
instance: {
|
29
29
|
locale?: any;
|
30
|
+
createDateRange: (start: unknown, stop?: unknown) => unknown[];
|
30
31
|
date: (value?: any) => unknown;
|
31
32
|
format: (date: unknown, formatString: string) => string;
|
32
33
|
toJsDate: (value: unknown) => Date;
|
@@ -70,6 +71,8 @@ export declare const createVuetify: (options?: VuetifyOptions) => {
|
|
70
71
|
setHours: (date: unknown, hours: number) => unknown;
|
71
72
|
getMinutes: (date: unknown) => number;
|
72
73
|
setMinutes: (date: unknown, minutes: number) => unknown;
|
74
|
+
} & {
|
75
|
+
createDateRange(start: unknown, stop?: unknown): unknown[];
|
73
76
|
};
|
74
77
|
};
|
75
78
|
goTo: import("../framework.js").GoToInstance;
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vuetify/nightly",
|
3
3
|
"description": "Vue Material Component Framework",
|
4
|
-
"version": "3.8.7-master.2025-
|
4
|
+
"version": "3.8.7-master.2025-06-02",
|
5
5
|
"author": {
|
6
6
|
"name": "John Leider",
|
7
7
|
"email": "john@vuetifyjs.com"
|
@@ -155,7 +155,7 @@
|
|
155
155
|
"@vue/reactivity": "^3.5.13",
|
156
156
|
"@vue/shared": "^3.5.13",
|
157
157
|
"@vue/test-utils": "^2.4.6",
|
158
|
-
"@vuetify/babel-plugin-jsx": "^1.5.
|
158
|
+
"@vuetify/babel-plugin-jsx": "^1.5.2",
|
159
159
|
"acorn-walk": "^8.3.4",
|
160
160
|
"autoprefixer": "^10.4.21",
|
161
161
|
"babel-plugin-add-import-extension": "1.5.1",
|