11/* eslint-disable @typescript-eslint/ban-types */
22import { DefineComponent , ComputedOptions , ComponentOptionsMixin , MethodOptions } from 'vue' ;
33
4- interface ITimeObj {
5- hours : number | string ;
6- minutes : number | string ;
7- }
8-
9- interface IMonthObj {
10- month : number | string ;
11- year : number | string ;
12- }
13-
14- type ModelValDef = Date | Date [ ] | string | string [ ] | ITimeObj | ITimeObj [ ] | IMonthObj | null ;
15-
16- type FormatFnc = string | ( ( date : Date | Date [ ] | ITimeObj | ITimeObj [ ] | IMonthObj ) => string ) ;
17-
184type EmitEvents = 'update:modelValue' | 'textSubmit' | 'closed' | 'cleared' ;
195
206interface Vue3DatePicker {
@@ -23,7 +9,21 @@ interface Vue3DatePicker {
239 enableTimePicker ?: boolean ;
2410 range ?: boolean ;
2511 twoCalendars ?: boolean ;
26- modelValue ?: ModelValDef ;
12+ modelValue ?:
13+ | Date
14+ | Date [ ]
15+ | string
16+ | string [ ]
17+ | {
18+ hours : number | string ;
19+ minutes : number | string ;
20+ }
21+ | {
22+ hours : number | string ;
23+ minutes : number | string ;
24+ } [ ]
25+ | { month : number | string ; year : number | string }
26+ | null ;
2727 locale ?: string ;
2828 position ?: 'left' | 'center' | 'right' ;
2929 dark ?: boolean ;
@@ -40,8 +40,44 @@ interface Vue3DatePicker {
4040 weekStart ?: string | number ;
4141 disabled ?: boolean ;
4242 readonly ?: boolean ;
43- format ?: FormatFnc ;
44- previewFormat ?: FormatFnc ;
43+ format ?:
44+ | string
45+ | ( (
46+ date :
47+ | Date
48+ | Date [ ]
49+ | {
50+ hours : number | string ;
51+ minutes : number | string ;
52+ }
53+ | {
54+ hours : number | string ;
55+ minutes : number | string ;
56+ } [ ]
57+ | {
58+ month : number | string ;
59+ year : number | string ;
60+ } ,
61+ ) => string ) ;
62+ previewFormat ?:
63+ | string
64+ | ( (
65+ date :
66+ | Date
67+ | Date [ ]
68+ | {
69+ hours : number | string ;
70+ minutes : number | string ;
71+ }
72+ | {
73+ hours : number | string ;
74+ minutes : number | string ;
75+ } [ ]
76+ | {
77+ month : number | string ;
78+ year : number | string ;
79+ } ,
80+ ) => string ) ;
4581 inputClassName ?: string ;
4682 menuClassName ?: string ;
4783 calendarClassName ?: string ;
@@ -77,7 +113,15 @@ interface Vue3DatePicker {
77113 teleport ?: string ;
78114 monthNameFormat ?: 'long' | 'short' ;
79115 startDate ?: string | Date ;
80- startTime ?: ITimeObj | ITimeObj [ ] ;
116+ startTime ?:
117+ | {
118+ hours : number | string ;
119+ minutes : number | string ;
120+ }
121+ | {
122+ hours : number | string ;
123+ minutes : number | string ;
124+ } [ ] ;
81125 monthYearComponent ?: DefineComponent ;
82126 timePickerComponent ?: DefineComponent ;
83127 actionRowComponent ?: DefineComponent ;
0 commit comments