vuetify 3.7.17 → 3.7.19
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/dist/json/attributes.json +3397 -3385
- package/dist/json/importMap-labs.json +16 -16
- package/dist/json/importMap.json +168 -168
- package/dist/json/tags.json +3 -0
- package/dist/json/web-types.json +6343 -6293
- package/dist/vuetify-labs.css +3200 -3200
- package/dist/vuetify-labs.d.ts +77 -35
- package/dist/vuetify-labs.esm.js +116 -37
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +116 -37
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +2769 -2769
- package/dist/vuetify.d.ts +95 -92
- package/dist/vuetify.esm.js +43 -20
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +43 -20
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +12 -12
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRow.mjs +18 -3
- package/lib/components/VDataTable/VDataTableRow.mjs.map +1 -1
- package/lib/components/VDataTable/index.d.mts +91 -88
- package/lib/components/VDatePicker/VDatePicker.mjs +1 -1
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.mjs +21 -12
- package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
- package/lib/components/VDatePicker/index.d.mts +3 -3
- package/lib/components/VIcon/VIcon.mjs +2 -2
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/index.d.mts +38 -35
- package/lib/composables/calendar.mjs +1 -1
- package/lib/composables/calendar.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +57 -57
- 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/lib/util/helpers.mjs +1 -1
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +2 -2
package/lib/index.d.mts
CHANGED
|
@@ -486,49 +486,43 @@ declare module 'vue' {
|
|
|
486
486
|
$children?: VNodeChild
|
|
487
487
|
}
|
|
488
488
|
export interface GlobalComponents {
|
|
489
|
-
VApp: typeof import('vuetify/components')['VApp']
|
|
490
489
|
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
|
491
|
-
|
|
490
|
+
VAppBar: typeof import('vuetify/components')['VAppBar']
|
|
491
|
+
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
|
492
|
+
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
|
492
493
|
VAlert: typeof import('vuetify/components')['VAlert']
|
|
493
494
|
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
|
495
|
+
VApp: typeof import('vuetify/components')['VApp']
|
|
494
496
|
VAvatar: typeof import('vuetify/components')['VAvatar']
|
|
497
|
+
VBadge: typeof import('vuetify/components')['VBadge']
|
|
498
|
+
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
|
495
499
|
VBanner: typeof import('vuetify/components')['VBanner']
|
|
496
500
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
|
497
501
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
|
502
|
+
VBtn: typeof import('vuetify/components')['VBtn']
|
|
503
|
+
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
|
498
504
|
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
|
499
505
|
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
|
500
506
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
|
507
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
|
508
|
+
VCarousel: typeof import('vuetify/components')['VCarousel']
|
|
509
|
+
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
|
505
510
|
VCard: typeof import('vuetify/components')['VCard']
|
|
506
511
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
|
507
512
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
|
508
513
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
|
509
514
|
VCardText: typeof import('vuetify/components')['VCardText']
|
|
510
515
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
|
511
|
-
|
|
512
|
-
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
|
513
|
-
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
|
514
|
-
VCarousel: typeof import('vuetify/components')['VCarousel']
|
|
515
|
-
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
|
516
|
-
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
|
517
|
-
VChip: typeof import('vuetify/components')['VChip']
|
|
516
|
+
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
|
518
517
|
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
|
519
518
|
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
|
520
|
-
VCode: typeof import('vuetify/components')['VCode']
|
|
521
|
-
VCombobox: typeof import('vuetify/components')['VCombobox']
|
|
522
519
|
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
|
523
520
|
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
|
527
|
-
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
|
528
|
-
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
|
529
|
-
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
|
521
|
+
VChip: typeof import('vuetify/components')['VChip']
|
|
522
|
+
VCode: typeof import('vuetify/components')['VCode']
|
|
530
523
|
VCounter: typeof import('vuetify/components')['VCounter']
|
|
531
|
-
|
|
524
|
+
VCombobox: typeof import('vuetify/components')['VCombobox']
|
|
525
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
|
532
526
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
|
533
527
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
|
534
528
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
|
@@ -536,30 +530,31 @@ declare module 'vue' {
|
|
|
536
530
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
|
537
531
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
|
538
532
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
|
539
|
-
|
|
540
|
-
|
|
533
|
+
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
|
534
|
+
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
|
535
|
+
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
|
536
|
+
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
|
537
|
+
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
|
538
|
+
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
|
539
|
+
VDivider: typeof import('vuetify/components')['VDivider']
|
|
541
540
|
VFab: typeof import('vuetify/components')['VFab']
|
|
541
|
+
VFileInput: typeof import('vuetify/components')['VFileInput']
|
|
542
|
+
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
|
542
543
|
VField: typeof import('vuetify/components')['VField']
|
|
543
544
|
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
|
544
|
-
VFileInput: typeof import('vuetify/components')['VFileInput']
|
|
545
|
-
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
|
546
|
-
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
|
547
|
-
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
|
548
|
-
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
|
549
545
|
VFooter: typeof import('vuetify/components')['VFooter']
|
|
550
|
-
|
|
546
|
+
VInput: typeof import('vuetify/components')['VInput']
|
|
551
547
|
VIcon: typeof import('vuetify/components')['VIcon']
|
|
552
548
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
|
553
549
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
|
554
550
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
|
555
551
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
|
556
|
-
|
|
557
|
-
VKbd: typeof import('vuetify/components')['VKbd']
|
|
558
|
-
VInput: typeof import('vuetify/components')['VInput']
|
|
552
|
+
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
|
559
553
|
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
|
560
554
|
VItem: typeof import('vuetify/components')['VItem']
|
|
561
555
|
VLabel: typeof import('vuetify/components')['VLabel']
|
|
562
|
-
|
|
556
|
+
VImg: typeof import('vuetify/components')['VImg']
|
|
557
|
+
VKbd: typeof import('vuetify/components')['VKbd']
|
|
563
558
|
VList: typeof import('vuetify/components')['VList']
|
|
564
559
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
|
565
560
|
VListImg: typeof import('vuetify/components')['VListImg']
|
|
@@ -569,64 +564,69 @@ declare module 'vue' {
|
|
|
569
564
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
|
570
565
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
|
571
566
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
|
572
|
-
|
|
567
|
+
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
|
568
|
+
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
|
569
|
+
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
|
570
|
+
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
|
573
571
|
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
|
572
|
+
VMain: typeof import('vuetify/components')['VMain']
|
|
573
|
+
VMenu: typeof import('vuetify/components')['VMenu']
|
|
574
574
|
VMessages: typeof import('vuetify/components')['VMessages']
|
|
575
|
+
VOverlay: typeof import('vuetify/components')['VOverlay']
|
|
575
576
|
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
|
576
|
-
VPagination: typeof import('vuetify/components')['VPagination']
|
|
577
577
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
|
578
|
-
|
|
579
|
-
VRating: typeof import('vuetify/components')['VRating']
|
|
578
|
+
VPagination: typeof import('vuetify/components')['VPagination']
|
|
580
579
|
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
|
581
580
|
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
|
582
|
-
|
|
581
|
+
VSelect: typeof import('vuetify/components')['VSelect']
|
|
582
|
+
VRating: typeof import('vuetify/components')['VRating']
|
|
583
|
+
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
|
584
|
+
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
|
583
585
|
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
|
584
586
|
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
|
585
|
-
|
|
586
|
-
|
|
587
|
+
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
|
588
|
+
VSheet: typeof import('vuetify/components')['VSheet']
|
|
587
589
|
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
|
590
|
+
VSwitch: typeof import('vuetify/components')['VSwitch']
|
|
591
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
|
592
|
+
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
|
588
593
|
VStepper: typeof import('vuetify/components')['VStepper']
|
|
589
594
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
|
590
595
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
|
591
596
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
|
592
597
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
|
593
598
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
|
594
|
-
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
|
595
|
-
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
|
596
|
-
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
|
597
|
-
VTable: typeof import('vuetify/components')['VTable']
|
|
598
|
-
VSwitch: typeof import('vuetify/components')['VSwitch']
|
|
599
|
-
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
|
600
599
|
VTab: typeof import('vuetify/components')['VTab']
|
|
601
600
|
VTabs: typeof import('vuetify/components')['VTabs']
|
|
602
601
|
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
|
603
602
|
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
|
604
|
-
|
|
605
|
-
VTooltip: typeof import('vuetify/components')['VTooltip']
|
|
603
|
+
VTextarea: typeof import('vuetify/components')['VTextarea']
|
|
606
604
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
|
607
605
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
|
608
606
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
|
609
|
-
|
|
607
|
+
VTable: typeof import('vuetify/components')['VTable']
|
|
610
608
|
VTimeline: typeof import('vuetify/components')['VTimeline']
|
|
611
609
|
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
|
610
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
|
611
|
+
VTooltip: typeof import('vuetify/components')['VTooltip']
|
|
612
612
|
VWindow: typeof import('vuetify/components')['VWindow']
|
|
613
613
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
|
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
|
-
VHover: typeof import('vuetify/components')['VHover']
|
|
618
|
-
VForm: typeof import('vuetify/components')['VForm']
|
|
619
617
|
VContainer: typeof import('vuetify/components')['VContainer']
|
|
620
618
|
VCol: typeof import('vuetify/components')['VCol']
|
|
621
619
|
VRow: typeof import('vuetify/components')['VRow']
|
|
622
620
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
|
621
|
+
VHover: typeof import('vuetify/components')['VHover']
|
|
622
|
+
VForm: typeof import('vuetify/components')['VForm']
|
|
623
623
|
VLayout: typeof import('vuetify/components')['VLayout']
|
|
624
624
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
|
625
625
|
VLazy: typeof import('vuetify/components')['VLazy']
|
|
626
626
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
|
627
627
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
|
628
|
-
VParallax: typeof import('vuetify/components')['VParallax']
|
|
629
628
|
VRadio: typeof import('vuetify/components')['VRadio']
|
|
629
|
+
VParallax: typeof import('vuetify/components')['VParallax']
|
|
630
630
|
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
|
631
631
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
|
632
632
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
|
@@ -656,22 +656,22 @@ declare module 'vue' {
|
|
|
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']
|
|
661
|
+
VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
|
|
659
662
|
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
|
660
663
|
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
|
661
664
|
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
|
662
665
|
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
|
663
666
|
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
|
664
|
-
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
|
665
|
-
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
|
666
|
-
VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
|
|
667
667
|
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
|
668
668
|
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
|
669
669
|
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
|
670
670
|
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
|
671
671
|
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
|
672
672
|
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
|
673
|
-
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
|
674
673
|
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
|
674
|
+
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
|
675
675
|
VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
|
|
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":[]}
|