@vuetify/nightly 3.8.0-beta.0-dev.2025-03-24 → 3.8.0-beta.0-dev.2025-03-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 +83 -3
- package/dist/json/attributes.json +1534 -1522
- package/dist/json/importMap-labs.json +30 -30
- package/dist/json/importMap.json +138 -138
- package/dist/json/tags.json +3 -0
- package/dist/json/web-types.json +3219 -3169
- package/dist/vuetify-labs.cjs +101 -28
- package/dist/vuetify-labs.css +3682 -3682
- package/dist/vuetify-labs.d.ts +124 -81
- package/dist/vuetify-labs.esm.js +101 -28
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +101 -28
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +25 -10
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +5460 -5460
- package/dist/vuetify.d.ts +82 -79
- package/dist/vuetify.esm.js +25 -10
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +25 -10
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +10 -10
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.d.ts +4 -4
- package/lib/components/VDataTable/VDataTableRow.d.ts +9 -6
- package/lib/components/VDataTable/VDataTableRow.js +18 -3
- package/lib/components/VDataTable/VDataTableRow.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRows.d.ts +4 -4
- package/lib/components/VDataTable/VDataTableServer.d.ts +4 -4
- package/lib/components/VDataTable/VDataTableVirtual.d.ts +4 -4
- package/lib/components/VDatePicker/VDatePicker.js +1 -1
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VIcon/VIcon.js +2 -2
- package/lib/components/VIcon/VIcon.js.map +1 -1
- package/lib/composables/calendar.js +1 -1
- package/lib/composables/calendar.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +47 -47
- package/lib/framework.js +1 -1
- package/lib/labs/VDateInput/VDateInput.d.ts +70 -3
- package/lib/labs/VDateInput/VDateInput.js +78 -19
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/util/helpers.js +1 -1
- package/lib/util/helpers.js.map +1 -1
- package/package.json +1 -1
package/lib/framework.d.ts
CHANGED
@@ -2568,42 +2568,39 @@ declare module 'vue' {
|
|
2568
2568
|
}
|
2569
2569
|
export interface GlobalComponents {
|
2570
2570
|
VApp: typeof import('vuetify/components')['VApp']
|
2571
|
+
VAlert: typeof import('vuetify/components')['VAlert']
|
2572
|
+
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
2573
|
+
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
2571
2574
|
VAvatar: typeof import('vuetify/components')['VAvatar']
|
2575
|
+
VBadge: typeof import('vuetify/components')['VBadge']
|
2576
|
+
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
2572
2577
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
2573
2578
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
2574
2579
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
2575
|
-
VAlert: typeof import('vuetify/components')['VAlert']
|
2576
|
-
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
2577
|
-
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
2578
2580
|
VBanner: typeof import('vuetify/components')['VBanner']
|
2579
2581
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
2580
2582
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
2581
|
-
VBadge: typeof import('vuetify/components')['VBadge']
|
2582
|
-
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
2583
|
-
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
2584
2583
|
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
2585
2584
|
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
2586
2585
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
2586
|
+
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
2587
|
+
VBtn: typeof import('vuetify/components')['VBtn']
|
2587
2588
|
VCarousel: typeof import('vuetify/components')['VCarousel']
|
2588
2589
|
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
2589
|
-
|
2590
|
-
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
2590
|
+
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
2591
2591
|
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
2592
|
+
VChip: typeof import('vuetify/components')['VChip']
|
2593
|
+
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
2594
|
+
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
2595
|
+
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
2596
|
+
VCode: typeof import('vuetify/components')['VCode']
|
2592
2597
|
VCard: typeof import('vuetify/components')['VCard']
|
2593
2598
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
2594
2599
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
2595
2600
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
2596
2601
|
VCardText: typeof import('vuetify/components')['VCardText']
|
2597
2602
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
2598
|
-
VChip: typeof import('vuetify/components')['VChip']
|
2599
|
-
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
2600
|
-
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
2601
|
-
VCode: typeof import('vuetify/components')['VCode']
|
2602
|
-
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
2603
|
-
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
2604
|
-
VCombobox: typeof import('vuetify/components')['VCombobox']
|
2605
2603
|
VCounter: typeof import('vuetify/components')['VCounter']
|
2606
|
-
VDialog: typeof import('vuetify/components')['VDialog']
|
2607
2604
|
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
2608
2605
|
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
2609
2606
|
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
@@ -2617,28 +2614,31 @@ declare module 'vue' {
|
|
2617
2614
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
2618
2615
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
2619
2616
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
2617
|
+
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
2618
|
+
VCombobox: typeof import('vuetify/components')['VCombobox']
|
2620
2619
|
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
2620
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
2621
2621
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
2622
2622
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
2623
2623
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
2624
2624
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
2625
2625
|
VDivider: typeof import('vuetify/components')['VDivider']
|
2626
|
-
VFooter: typeof import('vuetify/components')['VFooter']
|
2627
2626
|
VFab: typeof import('vuetify/components')['VFab']
|
2628
2627
|
VFileInput: typeof import('vuetify/components')['VFileInput']
|
2629
2628
|
VField: typeof import('vuetify/components')['VField']
|
2630
2629
|
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
2630
|
+
VFooter: typeof import('vuetify/components')['VFooter']
|
2631
|
+
VImg: typeof import('vuetify/components')['VImg']
|
2631
2632
|
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
2633
|
+
VKbd: typeof import('vuetify/components')['VKbd']
|
2634
|
+
VInput: typeof import('vuetify/components')['VInput']
|
2632
2635
|
VIcon: typeof import('vuetify/components')['VIcon']
|
2633
2636
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
2634
2637
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
2635
2638
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
2636
2639
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
2637
|
-
VKbd: typeof import('vuetify/components')['VKbd']
|
2638
|
-
VImg: typeof import('vuetify/components')['VImg']
|
2639
2640
|
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
2640
2641
|
VItem: typeof import('vuetify/components')['VItem']
|
2641
|
-
VInput: typeof import('vuetify/components')['VInput']
|
2642
2642
|
VLabel: typeof import('vuetify/components')['VLabel']
|
2643
2643
|
VMenu: typeof import('vuetify/components')['VMenu']
|
2644
2644
|
VList: typeof import('vuetify/components')['VList']
|
@@ -2650,43 +2650,43 @@ declare module 'vue' {
|
|
2650
2650
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
2651
2651
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
2652
2652
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
2653
|
-
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
2654
2653
|
VMain: typeof import('vuetify/components')['VMain']
|
2655
|
-
|
2654
|
+
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
2656
2655
|
VMessages: typeof import('vuetify/components')['VMessages']
|
2657
|
-
|
2656
|
+
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
2658
2657
|
VPagination: typeof import('vuetify/components')['VPagination']
|
2658
|
+
VOverlay: typeof import('vuetify/components')['VOverlay']
|
2659
|
+
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
2660
|
+
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
2659
2661
|
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
2660
|
-
|
2662
|
+
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
2661
2663
|
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
2662
|
-
VSelect: typeof import('vuetify/components')['VSelect']
|
2663
|
-
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
2664
2664
|
VRating: typeof import('vuetify/components')['VRating']
|
2665
|
-
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
2666
2665
|
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
2667
|
-
|
2668
|
-
VSlider: typeof import('vuetify/components')['VSlider']
|
2666
|
+
VSelect: typeof import('vuetify/components')['VSelect']
|
2669
2667
|
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
2668
|
+
VSheet: typeof import('vuetify/components')['VSheet']
|
2670
2669
|
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
2670
|
+
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
2671
|
+
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
2672
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
2671
2673
|
VStepper: typeof import('vuetify/components')['VStepper']
|
2672
2674
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
2673
2675
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
2674
2676
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
2675
2677
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
2676
2678
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
2677
|
-
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
2678
|
-
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
2679
2679
|
VTab: typeof import('vuetify/components')['VTab']
|
2680
2680
|
VTabs: typeof import('vuetify/components')['VTabs']
|
2681
2681
|
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
2682
2682
|
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
2683
2683
|
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
2684
|
-
VTextarea: typeof import('vuetify/components')['VTextarea']
|
2685
|
-
VTimeline: typeof import('vuetify/components')['VTimeline']
|
2686
|
-
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
2687
2684
|
VSwitch: typeof import('vuetify/components')['VSwitch']
|
2688
2685
|
VTable: typeof import('vuetify/components')['VTable']
|
2689
2686
|
VTextField: typeof import('vuetify/components')['VTextField']
|
2687
|
+
VTextarea: typeof import('vuetify/components')['VTextarea']
|
2688
|
+
VTimeline: typeof import('vuetify/components')['VTimeline']
|
2689
|
+
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
2690
2690
|
VTooltip: typeof import('vuetify/components')['VTooltip']
|
2691
2691
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
2692
2692
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
@@ -2701,10 +2701,10 @@ declare module 'vue' {
|
|
2701
2701
|
VCol: typeof import('vuetify/components')['VCol']
|
2702
2702
|
VRow: typeof import('vuetify/components')['VRow']
|
2703
2703
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
2704
|
-
VLayout: typeof import('vuetify/components')['VLayout']
|
2705
|
-
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
2706
2704
|
VHover: typeof import('vuetify/components')['VHover']
|
2707
2705
|
VLazy: typeof import('vuetify/components')['VLazy']
|
2706
|
+
VLayout: typeof import('vuetify/components')['VLayout']
|
2707
|
+
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
2708
2708
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
2709
2709
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
2710
2710
|
VParallax: typeof import('vuetify/components')['VParallax']
|
@@ -2712,8 +2712,8 @@ declare module 'vue' {
|
|
2712
2712
|
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
2713
2713
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
2714
2714
|
VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
|
2715
|
-
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
2716
2715
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
2716
|
+
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
2717
2717
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
2718
2718
|
VValidation: typeof import('vuetify/components')['VValidation']
|
2719
2719
|
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
@@ -2733,25 +2733,25 @@ declare module 'vue' {
|
|
2733
2733
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
2734
2734
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
2735
2735
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
2736
|
+
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
2737
|
+
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
2738
|
+
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
2739
|
+
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
2740
|
+
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
2736
2741
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
2737
2742
|
VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
|
2738
2743
|
VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
|
2739
2744
|
VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
|
2740
2745
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
2741
2746
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
2742
|
-
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
2743
|
-
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
2744
|
-
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
2745
|
-
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
2746
|
-
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
2747
|
-
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
2748
|
-
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
2749
|
-
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
2750
|
-
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
2751
|
-
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
2752
2747
|
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
2753
2748
|
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
2754
2749
|
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
2750
|
+
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
2751
|
+
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
2752
|
+
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
2753
|
+
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
2754
|
+
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
2755
2755
|
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
2756
2756
|
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
2757
2757
|
}
|
package/lib/framework.js
CHANGED
@@ -109,7 +109,7 @@ export function createVuetify() {
|
|
109
109
|
};
|
110
110
|
});
|
111
111
|
}
|
112
|
-
export const version = "3.8.0-beta.0-dev.2025-03-
|
112
|
+
export const version = "3.8.0-beta.0-dev.2025-03-26";
|
113
113
|
createVuetify.version = version;
|
114
114
|
|
115
115
|
// Vue's inject() can only be used in setup
|
@@ -112,6 +112,9 @@ export declare const makeVDateInputProps: <Defaults extends {
|
|
112
112
|
cancelText?: unknown;
|
113
113
|
okText?: unknown;
|
114
114
|
hideActions?: unknown;
|
115
|
+
mobile?: unknown;
|
116
|
+
mobileBreakpoint?: unknown;
|
117
|
+
displayFormat?: unknown;
|
115
118
|
location?: unknown;
|
116
119
|
} = {}>(defaults?: Defaults | undefined) => {
|
117
120
|
max: unknown extends Defaults["max"] ? PropType<unknown> : {
|
@@ -754,10 +757,34 @@ export declare const makeVDateInputProps: <Defaults extends {
|
|
754
757
|
type: PropType<unknown extends Defaults["okText"] ? string : string | Defaults["okText"]>;
|
755
758
|
default: unknown extends Defaults["okText"] ? string : string | Defaults["okText"];
|
756
759
|
};
|
757
|
-
hideActions: unknown extends Defaults["hideActions"] ?
|
760
|
+
hideActions: unknown extends Defaults["hideActions"] ? {
|
761
|
+
type: PropType<boolean>;
|
762
|
+
default: boolean;
|
763
|
+
} : Omit<{
|
764
|
+
type: PropType<boolean>;
|
765
|
+
default: boolean;
|
766
|
+
}, "type" | "default"> & {
|
758
767
|
type: PropType<unknown extends Defaults["hideActions"] ? boolean : boolean | Defaults["hideActions"]>;
|
759
768
|
default: unknown extends Defaults["hideActions"] ? boolean : boolean | Defaults["hideActions"];
|
760
769
|
};
|
770
|
+
mobile: unknown extends Defaults["mobile"] ? {
|
771
|
+
type: PropType<boolean | null>;
|
772
|
+
default: boolean;
|
773
|
+
} : Omit<{
|
774
|
+
type: PropType<boolean | null>;
|
775
|
+
default: boolean;
|
776
|
+
}, "type" | "default"> & {
|
777
|
+
type: PropType<unknown extends Defaults["mobile"] ? boolean | null : boolean | Defaults["mobile"] | null>;
|
778
|
+
default: unknown extends Defaults["mobile"] ? boolean | null : NonNullable<boolean | null> | Defaults["mobile"];
|
779
|
+
};
|
780
|
+
mobileBreakpoint: unknown extends Defaults["mobileBreakpoint"] ? PropType<number | import("../../composables/display.js").DisplayBreakpoint> : {
|
781
|
+
type: PropType<unknown extends Defaults["mobileBreakpoint"] ? number | import("../../composables/display.js").DisplayBreakpoint : number | import("../../composables/display.js").DisplayBreakpoint | Defaults["mobileBreakpoint"]>;
|
782
|
+
default: unknown extends Defaults["mobileBreakpoint"] ? number | import("../../composables/display.js").DisplayBreakpoint : NonNullable<number | import("../../composables/display.js").DisplayBreakpoint> | Defaults["mobileBreakpoint"];
|
783
|
+
};
|
784
|
+
displayFormat: unknown extends Defaults["displayFormat"] ? (FunctionConstructor | StringConstructor)[] : {
|
785
|
+
type: PropType<unknown extends Defaults["displayFormat"] ? string | Function : string | Function | Defaults["displayFormat"]>;
|
786
|
+
default: unknown extends Defaults["displayFormat"] ? string | Function : NonNullable<string | Function> | Defaults["displayFormat"];
|
787
|
+
};
|
761
788
|
location: unknown extends Defaults["location"] ? {
|
762
789
|
type: PropType<StrategyProps["location"]>;
|
763
790
|
default: string;
|
@@ -784,6 +811,7 @@ export declare const VDateInput: {
|
|
784
811
|
style: import("vue").StyleValue;
|
785
812
|
title: string;
|
786
813
|
autofocus: boolean;
|
814
|
+
mobile: boolean | null;
|
787
815
|
disabled: boolean;
|
788
816
|
readonly: boolean | null;
|
789
817
|
tag: string | import("../../util/index.js").JSXComponent;
|
@@ -848,6 +876,7 @@ export declare const VDateInput: {
|
|
848
876
|
theme?: string | undefined;
|
849
877
|
elevation?: string | number | undefined;
|
850
878
|
counter?: string | number | boolean | undefined;
|
879
|
+
mobileBreakpoint?: number | import("../../composables/display.js").DisplayBreakpoint | undefined;
|
851
880
|
'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
|
852
881
|
modelValue?: any;
|
853
882
|
validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
|
@@ -874,6 +903,7 @@ export declare const VDateInput: {
|
|
874
903
|
modelModifiers?: Record<string, boolean> | undefined;
|
875
904
|
firstDayOfWeek?: string | number | undefined;
|
876
905
|
allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
|
906
|
+
displayFormat?: string | Function | undefined;
|
877
907
|
} & {
|
878
908
|
$children?: import("vue").VNodeChild | (() => import("vue").VNodeChild) | {
|
879
909
|
message?: ((arg: import("../../components/VMessages/VMessages.js").VMessageSlot) => import("vue").VNodeChild) | undefined;
|
@@ -932,8 +962,12 @@ export declare const VDateInput: {
|
|
932
962
|
"v-slot:actions"?: false | ((arg: VDateInputActionsSlot) => import("vue").VNodeChild) | undefined;
|
933
963
|
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
934
964
|
} & {
|
965
|
+
onCancel?: (() => any) | undefined;
|
935
966
|
"onUpdate:modelValue"?: ((val: string) => any) | undefined;
|
967
|
+
onSave?: ((value: string) => any) | undefined;
|
936
968
|
}, any, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
969
|
+
save: (value: string) => true;
|
970
|
+
cancel: () => true;
|
937
971
|
'update:modelValue': (val: string) => true;
|
938
972
|
}, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
|
939
973
|
flat: boolean;
|
@@ -949,6 +983,7 @@ export declare const VDateInput: {
|
|
949
983
|
style: import("vue").StyleValue;
|
950
984
|
title: string;
|
951
985
|
autofocus: boolean;
|
986
|
+
mobile: boolean | null;
|
952
987
|
disabled: boolean;
|
953
988
|
readonly: boolean | null;
|
954
989
|
tag: string | import("../../util/index.js").JSXComponent;
|
@@ -1028,6 +1063,7 @@ export declare const VDateInput: {
|
|
1028
1063
|
style: import("vue").StyleValue;
|
1029
1064
|
title: string;
|
1030
1065
|
autofocus: boolean;
|
1066
|
+
mobile: boolean | null;
|
1031
1067
|
disabled: boolean;
|
1032
1068
|
readonly: boolean | null;
|
1033
1069
|
tag: string | import("../../util/index.js").JSXComponent;
|
@@ -1092,6 +1128,7 @@ export declare const VDateInput: {
|
|
1092
1128
|
theme?: string | undefined;
|
1093
1129
|
elevation?: string | number | undefined;
|
1094
1130
|
counter?: string | number | boolean | undefined;
|
1131
|
+
mobileBreakpoint?: number | import("../../composables/display.js").DisplayBreakpoint | undefined;
|
1095
1132
|
'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
|
1096
1133
|
modelValue?: any;
|
1097
1134
|
validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
|
@@ -1118,6 +1155,7 @@ export declare const VDateInput: {
|
|
1118
1155
|
modelModifiers?: Record<string, boolean> | undefined;
|
1119
1156
|
firstDayOfWeek?: string | number | undefined;
|
1120
1157
|
allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
|
1158
|
+
displayFormat?: string | Function | undefined;
|
1121
1159
|
} & {
|
1122
1160
|
$children?: import("vue").VNodeChild | (() => import("vue").VNodeChild) | {
|
1123
1161
|
message?: ((arg: import("../../components/VMessages/VMessages.js").VMessageSlot) => import("vue").VNodeChild) | undefined;
|
@@ -1176,7 +1214,9 @@ export declare const VDateInput: {
|
|
1176
1214
|
"v-slot:actions"?: false | ((arg: VDateInputActionsSlot) => import("vue").VNodeChild) | undefined;
|
1177
1215
|
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
1178
1216
|
} & {
|
1217
|
+
onCancel?: (() => any) | undefined;
|
1179
1218
|
"onUpdate:modelValue"?: ((val: string) => any) | undefined;
|
1219
|
+
onSave?: ((value: string) => any) | undefined;
|
1180
1220
|
}, any, {}, {}, {}, {
|
1181
1221
|
flat: boolean;
|
1182
1222
|
reverse: boolean;
|
@@ -1191,6 +1231,7 @@ export declare const VDateInput: {
|
|
1191
1231
|
style: import("vue").StyleValue;
|
1192
1232
|
title: string;
|
1193
1233
|
autofocus: boolean;
|
1234
|
+
mobile: boolean | null;
|
1194
1235
|
disabled: boolean;
|
1195
1236
|
readonly: boolean | null;
|
1196
1237
|
tag: string | import("../../util/index.js").JSXComponent;
|
@@ -1249,6 +1290,7 @@ export declare const VDateInput: {
|
|
1249
1290
|
style: import("vue").StyleValue;
|
1250
1291
|
title: string;
|
1251
1292
|
autofocus: boolean;
|
1293
|
+
mobile: boolean | null;
|
1252
1294
|
disabled: boolean;
|
1253
1295
|
readonly: boolean | null;
|
1254
1296
|
tag: string | import("../../util/index.js").JSXComponent;
|
@@ -1313,6 +1355,7 @@ export declare const VDateInput: {
|
|
1313
1355
|
theme?: string | undefined;
|
1314
1356
|
elevation?: string | number | undefined;
|
1315
1357
|
counter?: string | number | boolean | undefined;
|
1358
|
+
mobileBreakpoint?: number | import("../../composables/display.js").DisplayBreakpoint | undefined;
|
1316
1359
|
'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
|
1317
1360
|
modelValue?: any;
|
1318
1361
|
validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
|
@@ -1339,6 +1382,7 @@ export declare const VDateInput: {
|
|
1339
1382
|
modelModifiers?: Record<string, boolean> | undefined;
|
1340
1383
|
firstDayOfWeek?: string | number | undefined;
|
1341
1384
|
allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
|
1385
|
+
displayFormat?: string | Function | undefined;
|
1342
1386
|
} & {
|
1343
1387
|
$children?: import("vue").VNodeChild | (() => import("vue").VNodeChild) | {
|
1344
1388
|
message?: ((arg: import("../../components/VMessages/VMessages.js").VMessageSlot) => import("vue").VNodeChild) | undefined;
|
@@ -1397,8 +1441,12 @@ export declare const VDateInput: {
|
|
1397
1441
|
"v-slot:actions"?: false | ((arg: VDateInputActionsSlot) => import("vue").VNodeChild) | undefined;
|
1398
1442
|
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
1399
1443
|
} & {
|
1444
|
+
onCancel?: (() => any) | undefined;
|
1400
1445
|
"onUpdate:modelValue"?: ((val: string) => any) | undefined;
|
1446
|
+
onSave?: ((value: string) => any) | undefined;
|
1401
1447
|
}, any, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
1448
|
+
save: (value: string) => true;
|
1449
|
+
cancel: () => true;
|
1402
1450
|
'update:modelValue': (val: string) => true;
|
1403
1451
|
}, string, {
|
1404
1452
|
flat: boolean;
|
@@ -1414,6 +1462,7 @@ export declare const VDateInput: {
|
|
1414
1462
|
style: import("vue").StyleValue;
|
1415
1463
|
title: string;
|
1416
1464
|
autofocus: boolean;
|
1465
|
+
mobile: boolean | null;
|
1417
1466
|
disabled: boolean;
|
1418
1467
|
readonly: boolean | null;
|
1419
1468
|
tag: string | import("../../util/index.js").JSXComponent;
|
@@ -1693,7 +1742,16 @@ export declare const VDateInput: {
|
|
1693
1742
|
type: StringConstructor;
|
1694
1743
|
default: string;
|
1695
1744
|
};
|
1696
|
-
hideActions:
|
1745
|
+
hideActions: {
|
1746
|
+
type: PropType<boolean>;
|
1747
|
+
default: boolean;
|
1748
|
+
};
|
1749
|
+
mobile: {
|
1750
|
+
type: PropType<boolean | null>;
|
1751
|
+
default: boolean;
|
1752
|
+
};
|
1753
|
+
mobileBreakpoint: PropType<number | import("../../composables/display.js").DisplayBreakpoint>;
|
1754
|
+
displayFormat: (FunctionConstructor | StringConstructor)[];
|
1697
1755
|
location: {
|
1698
1756
|
type: PropType<StrategyProps["location"]>;
|
1699
1757
|
default: string;
|
@@ -1919,7 +1977,16 @@ export declare const VDateInput: {
|
|
1919
1977
|
type: StringConstructor;
|
1920
1978
|
default: string;
|
1921
1979
|
};
|
1922
|
-
hideActions:
|
1980
|
+
hideActions: {
|
1981
|
+
type: PropType<boolean>;
|
1982
|
+
default: boolean;
|
1983
|
+
};
|
1984
|
+
mobile: {
|
1985
|
+
type: PropType<boolean | null>;
|
1986
|
+
default: boolean;
|
1987
|
+
};
|
1988
|
+
mobileBreakpoint: PropType<number | import("../../composables/display.js").DisplayBreakpoint>;
|
1989
|
+
displayFormat: (FunctionConstructor | StringConstructor)[];
|
1923
1990
|
location: {
|
1924
1991
|
type: PropType<StrategyProps["location"]>;
|
1925
1992
|
default: string;
|
@@ -5,20 +5,25 @@ import { makeVDatePickerProps, VDatePicker } from "../../components/VDatePicker/
|
|
5
5
|
import { VMenu } from "../../components/VMenu/VMenu.js";
|
6
6
|
import { makeVTextFieldProps, VTextField } from "../../components/VTextField/VTextField.js"; // Composables
|
7
7
|
import { useDate } from "../../composables/date/index.js";
|
8
|
+
import { makeDisplayProps, useDisplay } from "../../composables/display.js";
|
8
9
|
import { makeFocusProps, useFocus } from "../../composables/focus.js";
|
9
10
|
import { forwardRefs } from "../../composables/forwardRefs.js";
|
10
11
|
import { useLocale } from "../../composables/locale.js";
|
11
12
|
import { useProxiedModel } from "../../composables/proxiedModel.js"; // Utilities
|
12
|
-
import { computed, ref, shallowRef } from 'vue';
|
13
|
+
import { computed, ref, shallowRef, watch } from 'vue';
|
13
14
|
import { genericComponent, omit, propsFactory, useRender, wrapInArray } from "../../util/index.js"; // Types
|
14
15
|
// Types
|
15
16
|
export const makeVDateInputProps = propsFactory({
|
17
|
+
displayFormat: [Function, String],
|
16
18
|
location: {
|
17
19
|
type: String,
|
18
20
|
default: 'bottom start'
|
19
21
|
},
|
22
|
+
...makeDisplayProps(),
|
20
23
|
...makeFocusProps(),
|
21
|
-
...makeVConfirmEditProps(
|
24
|
+
...makeVConfirmEditProps({
|
25
|
+
hideActions: true
|
26
|
+
}),
|
22
27
|
...makeVTextFieldProps({
|
23
28
|
placeholder: 'mm/dd/yyyy',
|
24
29
|
prependIcon: '$calendar'
|
@@ -32,16 +37,22 @@ export const VDateInput = genericComponent()({
|
|
32
37
|
name: 'VDateInput',
|
33
38
|
props: makeVDateInputProps(),
|
34
39
|
emits: {
|
40
|
+
save: value => true,
|
41
|
+
cancel: () => true,
|
35
42
|
'update:modelValue': val => true
|
36
43
|
},
|
37
44
|
setup(props, _ref) {
|
38
45
|
let {
|
46
|
+
emit,
|
39
47
|
slots
|
40
48
|
} = _ref;
|
41
49
|
const {
|
42
50
|
t
|
43
51
|
} = useLocale();
|
44
52
|
const adapter = useDate();
|
53
|
+
const {
|
54
|
+
mobile
|
55
|
+
} = useDisplay();
|
45
56
|
const {
|
46
57
|
isFocused,
|
47
58
|
focus,
|
@@ -49,7 +60,14 @@ export const VDateInput = genericComponent()({
|
|
49
60
|
} = useFocus(props);
|
50
61
|
const model = useProxiedModel(props, 'modelValue', props.multiple ? [] : null, val => Array.isArray(val) ? val.map(item => adapter.toJsDate(item)) : val ? adapter.toJsDate(val) : val, val => Array.isArray(val) ? val.map(item => adapter.date(item)) : val ? adapter.date(val) : val);
|
51
62
|
const menu = shallowRef(false);
|
63
|
+
const isEditingInput = shallowRef(false);
|
52
64
|
const vDateInputRef = ref();
|
65
|
+
function format(date) {
|
66
|
+
if (typeof props.displayFormat === 'function') {
|
67
|
+
return props.displayFormat(date);
|
68
|
+
}
|
69
|
+
return adapter.format(date, props.displayFormat ?? 'keyboardDate');
|
70
|
+
}
|
53
71
|
const display = computed(() => {
|
54
72
|
const value = wrapInArray(model.value);
|
55
73
|
if (!value.length) return null;
|
@@ -59,11 +77,22 @@ export const VDateInput = genericComponent()({
|
|
59
77
|
if (props.multiple === 'range') {
|
60
78
|
const start = value[0];
|
61
79
|
const end = value[value.length - 1];
|
62
|
-
|
80
|
+
if (!adapter.isValid(start) || !adapter.isValid(end)) return '';
|
81
|
+
return `${format(adapter.date(start))} - ${format(adapter.date(end))}`;
|
63
82
|
}
|
64
|
-
return adapter.isValid(model.value) ?
|
83
|
+
return adapter.isValid(model.value) ? format(adapter.date(model.value)) : '';
|
84
|
+
});
|
85
|
+
const inputmode = computed(() => {
|
86
|
+
if (!mobile.value) return undefined;
|
87
|
+
if (isEditingInput.value) return 'text';
|
88
|
+
return 'none';
|
65
89
|
});
|
66
90
|
const isInteractive = computed(() => !props.disabled && !props.readonly);
|
91
|
+
const isReadonly = computed(() => !(mobile.value && isEditingInput.value) && props.readonly);
|
92
|
+
watch(menu, val => {
|
93
|
+
if (val) return;
|
94
|
+
isEditingInput.value = false;
|
95
|
+
});
|
67
96
|
function onKeydown(e) {
|
68
97
|
if (e.key !== 'Enter') return;
|
69
98
|
if (!menu.value || !isFocused.value) {
|
@@ -76,15 +105,38 @@ export const VDateInput = genericComponent()({
|
|
76
105
|
function onClick(e) {
|
77
106
|
e.preventDefault();
|
78
107
|
e.stopPropagation();
|
79
|
-
menu.value
|
108
|
+
if (menu.value && mobile.value) {
|
109
|
+
isEditingInput.value = true;
|
110
|
+
} else {
|
111
|
+
menu.value = true;
|
112
|
+
}
|
80
113
|
}
|
81
|
-
function
|
114
|
+
function onCancel() {
|
115
|
+
emit('cancel');
|
82
116
|
menu.value = false;
|
117
|
+
isEditingInput.value = false;
|
83
118
|
}
|
84
|
-
function
|
119
|
+
function onSave(value) {
|
120
|
+
emit('save', value);
|
121
|
+
menu.value = false;
|
122
|
+
}
|
123
|
+
function onUpdateDisplayModel(value) {
|
85
124
|
if (value != null) return;
|
86
125
|
model.value = null;
|
87
126
|
}
|
127
|
+
function onUpdateMenuModel(isMenuOpen) {
|
128
|
+
if (isMenuOpen) return;
|
129
|
+
isEditingInput.value = false;
|
130
|
+
}
|
131
|
+
function onBlur() {
|
132
|
+
blur();
|
133
|
+
|
134
|
+
// When in mobile mode and editing is done (due to keyboard dismissal), close the menu
|
135
|
+
if (mobile.value && isEditingInput.value && !isFocused.value) {
|
136
|
+
menu.value = false;
|
137
|
+
isEditingInput.value = false;
|
138
|
+
}
|
139
|
+
}
|
88
140
|
useRender(() => {
|
89
141
|
const confirmEditProps = VConfirmEdit.filterProps(props);
|
90
142
|
const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']));
|
@@ -95,18 +147,20 @@ export const VDateInput = genericComponent()({
|
|
95
147
|
"class": props.class,
|
96
148
|
"style": props.style,
|
97
149
|
"modelValue": display.value,
|
150
|
+
"inputmode": inputmode.value,
|
151
|
+
"readonly": isReadonly.value,
|
98
152
|
"onKeydown": isInteractive.value ? onKeydown : undefined,
|
99
153
|
"focused": menu.value || isFocused.value,
|
100
154
|
"onFocus": focus,
|
101
|
-
"onBlur":
|
155
|
+
"onBlur": onBlur,
|
102
156
|
"onClick:control": isInteractive.value ? onClick : undefined,
|
103
157
|
"onClick:prepend": isInteractive.value ? onClick : undefined,
|
104
|
-
"onUpdate:modelValue":
|
158
|
+
"onUpdate:modelValue": onUpdateDisplayModel
|
105
159
|
}), {
|
106
160
|
...slots,
|
107
161
|
default: () => _createVNode(_Fragment, null, [_createVNode(VMenu, {
|
108
162
|
"modelValue": menu.value,
|
109
|
-
"onUpdate:modelValue": $event => menu.value = $event,
|
163
|
+
"onUpdate:modelValue": [$event => menu.value = $event, onUpdateMenuModel],
|
110
164
|
"activator": "parent",
|
111
165
|
"min-width": "0",
|
112
166
|
"eager": isFocused.value,
|
@@ -118,7 +172,7 @@ export const VDateInput = genericComponent()({
|
|
118
172
|
"modelValue": model.value,
|
119
173
|
"onUpdate:modelValue": $event => model.value = $event,
|
120
174
|
"onSave": onSave,
|
121
|
-
"onCancel":
|
175
|
+
"onCancel": onCancel
|
122
176
|
}), {
|
123
177
|
default: _ref2 => {
|
124
178
|
let {
|
@@ -128,16 +182,21 @@ export const VDateInput = genericComponent()({
|
|
128
182
|
cancel,
|
129
183
|
isPristine
|
130
184
|
} = _ref2;
|
185
|
+
function onUpdateModel(value) {
|
186
|
+
if (!props.hideActions) {
|
187
|
+
proxyModel.value = value;
|
188
|
+
} else {
|
189
|
+
model.value = value;
|
190
|
+
if (!props.multiple) {
|
191
|
+
menu.value = false;
|
192
|
+
}
|
193
|
+
}
|
194
|
+
emit('save', value);
|
195
|
+
vDateInputRef.value?.blur();
|
196
|
+
}
|
131
197
|
return _createVNode(VDatePicker, _mergeProps(datePickerProps, {
|
132
198
|
"modelValue": props.hideActions ? model.value : proxyModel.value,
|
133
|
-
"onUpdate:modelValue":
|
134
|
-
if (!props.hideActions) {
|
135
|
-
proxyModel.value = val;
|
136
|
-
} else {
|
137
|
-
model.value = val;
|
138
|
-
if (!props.multiple) menu.value = false;
|
139
|
-
}
|
140
|
-
},
|
199
|
+
"onUpdate:modelValue": value => onUpdateModel(value),
|
141
200
|
"onMousedown": e => e.preventDefault()
|
142
201
|
}), {
|
143
202
|
actions: !props.hideActions ? () => slots.actions?.({
|