@vuetify/nightly 3.7.18-master.2025-03-24 → 3.7.18-master.2025-03-25
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 +13 -3
- package/dist/json/attributes.json +3264 -3252
- package/dist/json/importMap-labs.json +12 -12
- package/dist/json/importMap.json +140 -140
- package/dist/json/tags.json +3 -0
- package/dist/json/web-types.json +5936 -5886
- package/dist/vuetify-labs.css +2746 -2746
- package/dist/vuetify-labs.d.ts +39 -0
- package/dist/vuetify-labs.esm.js +76 -20
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +76 -20
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +5058 -5058
- package/dist/vuetify.d.ts +47 -47
- package/dist/vuetify.esm.js +3 -3
- package/dist/vuetify.js +3 -3
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +3 -3
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +47 -47
- package/lib/labs/VDateInput/VDateInput.mjs +75 -18
- package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
- package/lib/labs/VDateInput/index.d.mts +43 -0
- package/lib/labs/components.d.mts +43 -4
- package/package.json +1 -1
package/dist/vuetify.min.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.7.18-master.2025-03-
|
2
|
+
* Vuetify v3.7.18-master.2025-03-25
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -2124,8 +2124,8 @@ if(d.install(e),e.provide(kt,u),e.provide(hn,c),e.provide(Va,d),e.provide(Ot,v),
|
|
2124
2124
|
else{const{mount:a}=e
|
2125
2125
|
e.mount=function(){const l=a(...arguments)
|
2126
2126
|
return t.nextTick((()=>c.update())),e.mount=a,l}}St.reset(),("boolean"!=typeof __VUE_OPTIONS_API__||__VUE_OPTIONS_API__)&&e.mixin({computed:{$vuetify(){return t.reactive({defaults:rf.call(this,kt),display:rf.call(this,hn),theme:rf.call(this,Va),icons:rf.call(this,Ot),locale:rf.call(this,ma),date:rf.call(this,fu)})}}})},defaults:u,display:c,theme:d,icons:v,locale:p,date:f,goTo:m}}function rf(e){const t=this.$,a=t.parent?.provides??t.vnode.appContext?.provides
|
2127
|
-
if(a&&e in a)return a[e]}nf.version="3.7.18-master.2025-03-
|
2128
|
-
const sf=function(){return nf({components:Xp,directives:of,...arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}})},uf="3.7.18-master.2025-03-
|
2127
|
+
if(a&&e in a)return a[e]}nf.version="3.7.18-master.2025-03-25"
|
2128
|
+
const sf=function(){return nf({components:Xp,directives:of,...arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}})},uf="3.7.18-master.2025-03-25"
|
2129
2129
|
sf.version=uf,e.blueprints=Zt,e.components=Xp,e.createVuetify=sf,e.directives=of,e.useDate=gu,e.useDefaults=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0
|
2130
2130
|
const{props:a,provideSubDefaults:l}=Ct(e,t)
|
2131
2131
|
return l(),a},e.useDisplay=xn,e.useGoTo=Bn,e.useLayout=la,e.useLocale=ha,e.useRtl=ba,e.useTheme=xa,e.version=uf}))
|
package/lib/entry-bundler.mjs
CHANGED
@@ -16,7 +16,7 @@ export const createVuetify = function () {
|
|
16
16
|
...options
|
17
17
|
});
|
18
18
|
};
|
19
|
-
export const version = "3.7.18-master.2025-03-
|
19
|
+
export const version = "3.7.18-master.2025-03-25";
|
20
20
|
createVuetify.version = version;
|
21
21
|
export { blueprints, components, directives };
|
22
22
|
export * from "./composables/index.mjs";
|
package/lib/framework.mjs
CHANGED
package/lib/index.d.mts
CHANGED
@@ -486,41 +486,40 @@ declare module 'vue' {
|
|
486
486
|
$children?: VNodeChild
|
487
487
|
}
|
488
488
|
export interface GlobalComponents {
|
489
|
+
VAlert: typeof import('vuetify/components')['VAlert']
|
490
|
+
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
489
491
|
VApp: typeof import('vuetify/components')['VApp']
|
490
|
-
VAvatar: typeof import('vuetify/components')['VAvatar']
|
491
492
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
492
493
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
493
494
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
495
|
+
VAvatar: typeof import('vuetify/components')['VAvatar']
|
494
496
|
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
497
|
+
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
495
498
|
VBadge: typeof import('vuetify/components')['VBadge']
|
499
|
+
VBtn: typeof import('vuetify/components')['VBtn']
|
496
500
|
VBanner: typeof import('vuetify/components')['VBanner']
|
497
501
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
498
502
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
503
|
+
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
499
504
|
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
500
505
|
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
501
506
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
502
|
-
VAlert: typeof import('vuetify/components')['VAlert']
|
503
|
-
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
504
|
-
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
505
|
-
VBtn: typeof import('vuetify/components')['VBtn']
|
506
|
-
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
507
|
-
VCarousel: typeof import('vuetify/components')['VCarousel']
|
508
|
-
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
509
|
-
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
510
|
-
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
511
|
-
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
512
507
|
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
508
|
+
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
513
509
|
VCard: typeof import('vuetify/components')['VCard']
|
514
510
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
515
511
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
516
512
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
517
513
|
VCardText: typeof import('vuetify/components')['VCardText']
|
518
514
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
515
|
+
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
516
|
+
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
517
|
+
VCarousel: typeof import('vuetify/components')['VCarousel']
|
518
|
+
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
519
519
|
VChip: typeof import('vuetify/components')['VChip']
|
520
|
+
VCombobox: typeof import('vuetify/components')['VCombobox']
|
520
521
|
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
521
|
-
VCode: typeof import('vuetify/components')['VCode']
|
522
522
|
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
523
|
-
VCombobox: typeof import('vuetify/components')['VCombobox']
|
524
523
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
525
524
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
526
525
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
@@ -528,36 +527,38 @@ declare module 'vue' {
|
|
528
527
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
529
528
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
530
529
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
530
|
+
VCode: typeof import('vuetify/components')['VCode']
|
531
|
+
VCounter: typeof import('vuetify/components')['VCounter']
|
532
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
533
|
+
VDivider: typeof import('vuetify/components')['VDivider']
|
534
|
+
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
531
535
|
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
532
536
|
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
533
537
|
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
534
538
|
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
535
539
|
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
536
540
|
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
+
VFileInput: typeof import('vuetify/components')['VFileInput']
|
542
|
+
VFab: typeof import('vuetify/components')['VFab']
|
543
|
+
VField: typeof import('vuetify/components')['VField']
|
544
|
+
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
541
545
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
542
546
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
543
547
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
544
548
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
545
|
-
|
546
|
-
|
547
|
-
|
549
|
+
VFooter: typeof import('vuetify/components')['VFooter']
|
550
|
+
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
551
|
+
VImg: typeof import('vuetify/components')['VImg']
|
552
|
+
VKbd: typeof import('vuetify/components')['VKbd']
|
548
553
|
VIcon: typeof import('vuetify/components')['VIcon']
|
549
554
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
550
555
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
551
556
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
552
557
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
553
|
-
VFileInput: typeof import('vuetify/components')['VFileInput']
|
554
|
-
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
555
|
-
VImg: typeof import('vuetify/components')['VImg']
|
556
558
|
VInput: typeof import('vuetify/components')['VInput']
|
557
|
-
VLabel: typeof import('vuetify/components')['VLabel']
|
558
559
|
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
559
560
|
VItem: typeof import('vuetify/components')['VItem']
|
560
|
-
|
561
|
+
VLabel: typeof import('vuetify/components')['VLabel']
|
561
562
|
VList: typeof import('vuetify/components')['VList']
|
562
563
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
563
564
|
VListImg: typeof import('vuetify/components')['VListImg']
|
@@ -567,70 +568,70 @@ declare module 'vue' {
|
|
567
568
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
568
569
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
569
570
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
570
|
-
|
571
|
-
VMenu: typeof import('vuetify/components')['VMenu']
|
571
|
+
VMain: typeof import('vuetify/components')['VMain']
|
572
572
|
VMessages: typeof import('vuetify/components')['VMessages']
|
573
|
+
VMenu: typeof import('vuetify/components')['VMenu']
|
574
|
+
VOverlay: typeof import('vuetify/components')['VOverlay']
|
573
575
|
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
574
|
-
VMain: typeof import('vuetify/components')['VMain']
|
575
576
|
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
576
|
-
VOverlay: typeof import('vuetify/components')['VOverlay']
|
577
577
|
VPagination: typeof import('vuetify/components')['VPagination']
|
578
578
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
579
579
|
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
580
|
-
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
581
|
-
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
582
580
|
VSelect: typeof import('vuetify/components')['VSelect']
|
583
|
-
VRating: typeof import('vuetify/components')['VRating']
|
584
581
|
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
585
|
-
|
586
|
-
|
582
|
+
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
583
|
+
VRating: typeof import('vuetify/components')['VRating']
|
587
584
|
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
585
|
+
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
588
586
|
VSheet: typeof import('vuetify/components')['VSheet']
|
589
587
|
VSlider: typeof import('vuetify/components')['VSlider']
|
588
|
+
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
589
|
+
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
590
|
+
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
590
591
|
VStepper: typeof import('vuetify/components')['VStepper']
|
591
592
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
592
593
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
593
594
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
594
595
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
595
596
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
596
|
-
VSwitch: typeof import('vuetify/components')['VSwitch']
|
597
|
-
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
598
597
|
VTable: typeof import('vuetify/components')['VTable']
|
598
|
+
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
599
|
+
VSwitch: typeof import('vuetify/components')['VSwitch']
|
599
600
|
VTab: typeof import('vuetify/components')['VTab']
|
600
601
|
VTabs: typeof import('vuetify/components')['VTabs']
|
601
602
|
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
602
603
|
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
603
|
-
|
604
|
+
VTextarea: typeof import('vuetify/components')['VTextarea']
|
605
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
604
606
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
605
607
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
606
608
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
607
|
-
|
608
|
-
VTextField: typeof import('vuetify/components')['VTextField']
|
609
|
+
VTooltip: typeof import('vuetify/components')['VTooltip']
|
609
610
|
VWindow: typeof import('vuetify/components')['VWindow']
|
610
611
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
611
|
-
VTooltip: typeof import('vuetify/components')['VTooltip']
|
612
612
|
VTimeline: typeof import('vuetify/components')['VTimeline']
|
613
613
|
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
614
614
|
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
615
615
|
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
616
616
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
617
|
+
VForm: typeof import('vuetify/components')['VForm']
|
617
618
|
VContainer: typeof import('vuetify/components')['VContainer']
|
618
619
|
VCol: typeof import('vuetify/components')['VCol']
|
619
620
|
VRow: typeof import('vuetify/components')['VRow']
|
620
621
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
621
|
-
VForm: typeof import('vuetify/components')['VForm']
|
622
622
|
VHover: typeof import('vuetify/components')['VHover']
|
623
623
|
VLazy: typeof import('vuetify/components')['VLazy']
|
624
624
|
VLayout: typeof import('vuetify/components')['VLayout']
|
625
625
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
626
|
-
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
627
626
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
627
|
+
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
628
628
|
VParallax: typeof import('vuetify/components')['VParallax']
|
629
629
|
VRadio: typeof import('vuetify/components')['VRadio']
|
630
630
|
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
631
631
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
632
|
-
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
633
632
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
633
|
+
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
634
|
+
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
634
635
|
VValidation: typeof import('vuetify/components')['VValidation']
|
635
636
|
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
636
637
|
VFabTransition: typeof import('vuetify/components')['VFabTransition']
|
@@ -649,20 +650,19 @@ declare module 'vue' {
|
|
649
650
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
650
651
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
651
652
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
652
|
-
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
653
653
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
654
654
|
VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
|
655
655
|
VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
|
656
656
|
VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
|
657
657
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
658
658
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
659
|
+
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
660
|
+
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
659
661
|
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
660
662
|
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
661
663
|
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
662
664
|
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
663
665
|
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
664
|
-
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
665
|
-
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
666
666
|
VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
|
667
667
|
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
668
668
|
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
@@ -671,7 +671,7 @@ declare module 'vue' {
|
|
671
671
|
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
672
672
|
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
673
673
|
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
674
|
-
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
675
674
|
VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
|
675
|
+
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
676
676
|
}
|
677
677
|
}
|
@@ -5,19 +5,22 @@ import { makeVDatePickerProps, VDatePicker } from "../../components/VDatePicker/
|
|
5
5
|
import { VMenu } from "../../components/VMenu/VMenu.mjs";
|
6
6
|
import { makeVTextFieldProps, VTextField } from "../../components/VTextField/VTextField.mjs"; // Composables
|
7
7
|
import { useDate } from "../../composables/date/index.mjs";
|
8
|
+
import { makeDisplayProps, useDisplay } from "../../composables/display.mjs";
|
8
9
|
import { makeFocusProps, useFocus } from "../../composables/focus.mjs";
|
9
10
|
import { forwardRefs } from "../../composables/forwardRefs.mjs";
|
10
11
|
import { useLocale } from "../../composables/locale.mjs";
|
11
12
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // 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.mjs"; // Types
|
14
15
|
// Types
|
15
16
|
export const makeVDateInputProps = propsFactory({
|
17
|
+
displayFormat: [Function, String],
|
16
18
|
hideActions: Boolean,
|
17
19
|
location: {
|
18
20
|
type: String,
|
19
21
|
default: 'bottom start'
|
20
22
|
},
|
23
|
+
...makeDisplayProps(),
|
21
24
|
...makeFocusProps(),
|
22
25
|
...makeVConfirmEditProps(),
|
23
26
|
...makeVTextFieldProps({
|
@@ -33,16 +36,22 @@ export const VDateInput = genericComponent()({
|
|
33
36
|
name: 'VDateInput',
|
34
37
|
props: makeVDateInputProps(),
|
35
38
|
emits: {
|
39
|
+
save: value => true,
|
40
|
+
cancel: () => true,
|
36
41
|
'update:modelValue': val => true
|
37
42
|
},
|
38
43
|
setup(props, _ref) {
|
39
44
|
let {
|
45
|
+
emit,
|
40
46
|
slots
|
41
47
|
} = _ref;
|
42
48
|
const {
|
43
49
|
t
|
44
50
|
} = useLocale();
|
45
51
|
const adapter = useDate();
|
52
|
+
const {
|
53
|
+
mobile
|
54
|
+
} = useDisplay();
|
46
55
|
const {
|
47
56
|
isFocused,
|
48
57
|
focus,
|
@@ -50,7 +59,14 @@ export const VDateInput = genericComponent()({
|
|
50
59
|
} = useFocus(props);
|
51
60
|
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);
|
52
61
|
const menu = shallowRef(false);
|
62
|
+
const isEditingInput = shallowRef(false);
|
53
63
|
const vDateInputRef = ref();
|
64
|
+
function format(date) {
|
65
|
+
if (typeof props.displayFormat === 'function') {
|
66
|
+
return props.displayFormat(date);
|
67
|
+
}
|
68
|
+
return adapter.format(date, props.displayFormat ?? 'keyboardDate');
|
69
|
+
}
|
54
70
|
const display = computed(() => {
|
55
71
|
const value = wrapInArray(model.value);
|
56
72
|
if (!value.length) return null;
|
@@ -60,11 +76,22 @@ export const VDateInput = genericComponent()({
|
|
60
76
|
if (props.multiple === 'range') {
|
61
77
|
const start = value[0];
|
62
78
|
const end = value[value.length - 1];
|
63
|
-
|
79
|
+
if (!adapter.isValid(start) || !adapter.isValid(end)) return '';
|
80
|
+
return `${format(adapter.date(start))} - ${format(adapter.date(end))}`;
|
64
81
|
}
|
65
|
-
return adapter.isValid(model.value) ?
|
82
|
+
return adapter.isValid(model.value) ? format(adapter.date(model.value)) : '';
|
83
|
+
});
|
84
|
+
const inputmode = computed(() => {
|
85
|
+
if (!mobile.value) return undefined;
|
86
|
+
if (isEditingInput.value) return 'text';
|
87
|
+
return 'none';
|
66
88
|
});
|
67
89
|
const isInteractive = computed(() => !props.disabled && !props.readonly);
|
90
|
+
const isReadonly = computed(() => !(mobile.value && isEditingInput.value) && props.readonly);
|
91
|
+
watch(menu, val => {
|
92
|
+
if (val) return;
|
93
|
+
isEditingInput.value = false;
|
94
|
+
});
|
68
95
|
function onKeydown(e) {
|
69
96
|
if (e.key !== 'Enter') return;
|
70
97
|
if (!menu.value || !isFocused.value) {
|
@@ -77,15 +104,38 @@ export const VDateInput = genericComponent()({
|
|
77
104
|
function onClick(e) {
|
78
105
|
e.preventDefault();
|
79
106
|
e.stopPropagation();
|
80
|
-
menu.value
|
107
|
+
if (menu.value && mobile.value) {
|
108
|
+
isEditingInput.value = true;
|
109
|
+
} else {
|
110
|
+
menu.value = true;
|
111
|
+
}
|
81
112
|
}
|
82
|
-
function
|
113
|
+
function onCancel() {
|
114
|
+
emit('cancel');
|
83
115
|
menu.value = false;
|
116
|
+
isEditingInput.value = false;
|
84
117
|
}
|
85
|
-
function
|
118
|
+
function onSave(value) {
|
119
|
+
emit('save', value);
|
120
|
+
menu.value = false;
|
121
|
+
}
|
122
|
+
function onUpdateDisplayModel(value) {
|
86
123
|
if (value != null) return;
|
87
124
|
model.value = null;
|
88
125
|
}
|
126
|
+
function onUpdateMenuModel(isMenuOpen) {
|
127
|
+
if (isMenuOpen) return;
|
128
|
+
isEditingInput.value = false;
|
129
|
+
}
|
130
|
+
function onBlur() {
|
131
|
+
blur();
|
132
|
+
|
133
|
+
// When in mobile mode and editing is done (due to keyboard dismissal), close the menu
|
134
|
+
if (mobile.value && isEditingInput.value && !isFocused.value) {
|
135
|
+
menu.value = false;
|
136
|
+
isEditingInput.value = false;
|
137
|
+
}
|
138
|
+
}
|
89
139
|
useRender(() => {
|
90
140
|
const confirmEditProps = VConfirmEdit.filterProps(props);
|
91
141
|
const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']));
|
@@ -96,18 +146,20 @@ export const VDateInput = genericComponent()({
|
|
96
146
|
"class": props.class,
|
97
147
|
"style": props.style,
|
98
148
|
"modelValue": display.value,
|
149
|
+
"inputmode": inputmode.value,
|
150
|
+
"readonly": isReadonly.value,
|
99
151
|
"onKeydown": isInteractive.value ? onKeydown : undefined,
|
100
152
|
"focused": menu.value || isFocused.value,
|
101
153
|
"onFocus": focus,
|
102
|
-
"onBlur":
|
154
|
+
"onBlur": onBlur,
|
103
155
|
"onClick:control": isInteractive.value ? onClick : undefined,
|
104
156
|
"onClick:prepend": isInteractive.value ? onClick : undefined,
|
105
|
-
"onUpdate:modelValue":
|
157
|
+
"onUpdate:modelValue": onUpdateDisplayModel
|
106
158
|
}), {
|
107
159
|
...slots,
|
108
160
|
default: () => _createVNode(_Fragment, null, [_createVNode(VMenu, {
|
109
161
|
"modelValue": menu.value,
|
110
|
-
"onUpdate:modelValue": $event => menu.value = $event,
|
162
|
+
"onUpdate:modelValue": [$event => menu.value = $event, onUpdateMenuModel],
|
111
163
|
"activator": "parent",
|
112
164
|
"min-width": "0",
|
113
165
|
"eager": isFocused.value,
|
@@ -119,7 +171,7 @@ export const VDateInput = genericComponent()({
|
|
119
171
|
"modelValue": model.value,
|
120
172
|
"onUpdate:modelValue": $event => model.value = $event,
|
121
173
|
"onSave": onSave,
|
122
|
-
"onCancel":
|
174
|
+
"onCancel": onCancel
|
123
175
|
}), {
|
124
176
|
default: _ref2 => {
|
125
177
|
let {
|
@@ -129,16 +181,21 @@ export const VDateInput = genericComponent()({
|
|
129
181
|
cancel,
|
130
182
|
isPristine
|
131
183
|
} = _ref2;
|
184
|
+
function onUpdateModel(value) {
|
185
|
+
if (!props.hideActions) {
|
186
|
+
proxyModel.value = value;
|
187
|
+
} else {
|
188
|
+
model.value = value;
|
189
|
+
if (!props.multiple) {
|
190
|
+
menu.value = false;
|
191
|
+
}
|
192
|
+
}
|
193
|
+
emit('save', value);
|
194
|
+
vDateInputRef.value?.blur();
|
195
|
+
}
|
132
196
|
return _createVNode(VDatePicker, _mergeProps(datePickerProps, {
|
133
197
|
"modelValue": props.hideActions ? model.value : proxyModel.value,
|
134
|
-
"onUpdate:modelValue":
|
135
|
-
if (!props.hideActions) {
|
136
|
-
proxyModel.value = val;
|
137
|
-
} else {
|
138
|
-
model.value = val;
|
139
|
-
if (!props.multiple) menu.value = false;
|
140
|
-
}
|
141
|
-
},
|
198
|
+
"onUpdate:modelValue": value => onUpdateModel(value),
|
142
199
|
"onMousedown": e => e.preventDefault()
|
143
200
|
}), {
|
144
201
|
actions: !props.hideActions ? () => slots.actions?.({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VDateInput.mjs","names":["makeVConfirmEditProps","VConfirmEdit","makeVDatePickerProps","VDatePicker","VMenu","makeVTextFieldProps","VTextField","useDate","makeFocusProps","useFocus","forwardRefs","useLocale","useProxiedModel","computed","ref","shallowRef","genericComponent","omit","propsFactory","useRender","wrapInArray","makeVDateInputProps","hideActions","Boolean","location","type","String","default","placeholder","prependIcon","hideHeader","showAdjacentMonths","VDateInput","name","props","emits","val","setup","_ref","slots","t","adapter","isFocused","focus","blur","model","multiple","Array","isArray","map","item","toJsDate","date","menu","vDateInputRef","display","value","length","start","end","isValid","format","isInteractive","disabled","readonly","onKeydown","e","key","target","onClick","preventDefault","stopPropagation","onSave","onUpdateModel","confirmEditProps","filterProps","datePickerProps","textFieldProps","_createVNode","_mergeProps","class","style","undefined","_Fragment","$event","onCancel","_ref2","actions","proxyModel","save","cancel","isPristine"],"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 { 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 } 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 hideActions: Boolean,\n location: {\n type: String as PropType<StrategyProps['location']>,\n default: 'bottom start',\n },\n ...makeFocusProps(),\n ...makeVConfirmEditProps(),\n ...makeVTextFieldProps({\n placeholder: 'mm/dd/yyyy',\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 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const adapter = useDate()\n const { isFocused, focus, blur } = useFocus(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n props.multiple ? [] : null,\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 = shallowRef(false)\n const vDateInputRef = ref()\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 return adapter.isValid(start) && adapter.isValid(end)\n ? `${adapter.format(adapter.date(start), 'keyboardDate')} - ${adapter.format(adapter.date(end), 'keyboardDate')}`\n : ''\n }\n\n return adapter.isValid(model.value) ? adapter.format(adapter.date(model.value), 'keyboardDate') : ''\n })\n\n const isInteractive = computed(() => !props.disabled && !props.readonly)\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 return\n }\n\n const target = e.target as HTMLInputElement\n\n model.value = target.value === '' ? null : target.value\n }\n\n function onClick (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n\n menu.value = true\n }\n\n function onSave () {\n menu.value = false\n }\n\n function onUpdateModel (value: string) {\n if (value != null) return\n\n model.value = null\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(props)\n\n return (\n <VTextField\n ref={ vDateInputRef }\n { ...textFieldProps }\n class={ props.class }\n style={ props.style }\n modelValue={ display.value }\n onKeydown={ isInteractive.value ? onKeydown : undefined }\n focused={ menu.value || isFocused.value }\n onFocus={ focus }\n onBlur={ blur }\n onClick:control={ isInteractive.value ? onClick : undefined }\n onClick:prepend={ isInteractive.value ? onClick : undefined }\n onUpdate:modelValue={ onUpdateModel }\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 onSave={ onSave }\n onCancel={ () => menu.value = false }\n >\n {{\n default: ({ actions, model: proxyModel, save, cancel, isPristine }) => {\n return (\n <VDatePicker\n { ...datePickerProps }\n modelValue={ props.hideActions ? model.value : proxyModel.value }\n onUpdate:modelValue={ val => {\n if (!props.hideActions) {\n proxyModel.value = val\n } else {\n model.value = val\n\n if (!props.multiple) menu.value = false\n }\n }}\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({}, vDateInputRef)\n },\n})\n\nexport type VDateInput = InstanceType<typeof VDateInput>\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VDateInput.mjs","names":["makeVConfirmEditProps","VConfirmEdit","makeVDatePickerProps","VDatePicker","VMenu","makeVTextFieldProps","VTextField","useDate","makeDisplayProps","useDisplay","makeFocusProps","useFocus","forwardRefs","useLocale","useProxiedModel","computed","ref","shallowRef","watch","genericComponent","omit","propsFactory","useRender","wrapInArray","makeVDateInputProps","displayFormat","Function","String","hideActions","Boolean","location","type","default","placeholder","prependIcon","hideHeader","showAdjacentMonths","VDateInput","name","props","emits","save","value","cancel","val","setup","_ref","emit","slots","t","adapter","mobile","isFocused","focus","blur","model","multiple","Array","isArray","map","item","toJsDate","date","menu","isEditingInput","vDateInputRef","format","display","length","start","end","isValid","inputmode","undefined","isInteractive","disabled","readonly","isReadonly","onKeydown","e","key","target","onClick","preventDefault","stopPropagation","onCancel","onSave","onUpdateDisplayModel","onUpdateMenuModel","isMenuOpen","onBlur","confirmEditProps","filterProps","datePickerProps","textFieldProps","_createVNode","_mergeProps","class","style","_Fragment","$event","_ref2","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 { 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 hideActions: Boolean,\n location: {\n type: String as PropType<StrategyProps['location']>,\n default: 'bottom start',\n },\n\n ...makeDisplayProps(),\n ...makeFocusProps(),\n ...makeVConfirmEditProps(),\n ...makeVTextFieldProps({\n placeholder: 'mm/dd/yyyy',\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 },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n const adapter = useDate()\n const { mobile } = useDisplay()\n const { isFocused, focus, blur } = useFocus(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n props.multiple ? [] : null,\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 = shallowRef(false)\n const isEditingInput = shallowRef(false)\n const vDateInputRef = ref()\n\n function format (date: unknown) {\n if (typeof props.displayFormat === 'function') {\n return props.displayFormat(date)\n }\n\n return adapter.format(date, props.displayFormat ?? 'keyboardDate')\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 const isReadonly = computed(() => !(mobile.value && isEditingInput.value) && props.readonly)\n\n watch(menu, val => {\n if (val) return\n\n isEditingInput.value = false\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 return\n }\n\n const target = e.target as HTMLInputElement\n\n model.value = target.value === '' ? null : target.value\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: string) {\n if (value != null) return\n\n model.value = null\n }\n\n function onUpdateMenuModel (isMenuOpen: boolean) {\n if (isMenuOpen) return\n\n isEditingInput.value = false\n }\n\n function onBlur () {\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 useRender(() => {\n const confirmEditProps = VConfirmEdit.filterProps(props)\n const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']))\n const textFieldProps = VTextField.filterProps(props)\n\n return (\n <VTextField\n ref={ vDateInputRef }\n { ...textFieldProps }\n class={ props.class }\n style={ props.style }\n modelValue={ display.value }\n inputmode={ inputmode.value }\n readonly={ isReadonly.value }\n onKeydown={ isInteractive.value ? onKeydown : undefined }\n focused={ menu.value || isFocused.value }\n onFocus={ focus }\n onBlur={ onBlur }\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 onUpdate:modelValue={ onUpdateMenuModel }\n >\n <VConfirmEdit\n { ...confirmEditProps }\n v-model={ model.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 vDateInputRef.value?.blur()\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({}, vDateInputRef)\n },\n})\n\nexport type VDateInput = InstanceType<typeof VDateInput>\n"],"mappings":"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","ignoreList":[]}
|