11<template >
22 <div >
3- <div class =" mx-auto grid grid-cols-2 gap-4 mb-2" >
3+ <div class =" mx-auto grid grid-cols-2 gap-4 mb-2" :class = " {hidden: column.type === 'time'} " >
44 <div class =" relative" >
55 <div class =" absolute inset-y-0 end-0 top-0 flex items-center pe-3.5 pointer-events-none" >
66 <IconCalendar class =" w-4 h-4 text-gray-500 dark:text-gray-400" />
5151
5252 <button type =" button"
5353 class =" text-lightPrimary dark:text-darkPrimary text-base font-medium hover:underline p-0 inline-flex items-center mb-2"
54+ :class =" {hidden: column.type !== 'datetime'}"
5455 @click =" toggleTimeInputs" >{{ showTimeInputs ? $t('Hide time') : $t('Show time') }}
5556 <svg class =" w-8 h-8 ms-0.5 relative top-px" :class =" {'rotate-180': showTimeInputs}" aria-hidden =" true"
5657 xmlns =" http://www.w3.org/2000/svg" width =" 24" height =" 24"
@@ -93,7 +94,7 @@ const emit = defineEmits(['update:valueStart', 'update:valueEnd']);
9394const datepickerStartEl = ref ();
9495const datepickerEndEl = ref ();
9596
96- const showTimeInputs = ref (false );
97+ const showTimeInputs = ref (props . column ? . type === ' time ' );
9798
9899const startDate = ref (' ' );
99100const endDate = ref (' ' );
@@ -105,12 +106,20 @@ const datepickerStartObject = ref('')
105106const datepickerEndObject = ref (' ' )
106107
107108const start = computed (() => {
109+ if (props .column ? .type === ' time' ) {
110+ return formatTime (startTime .value );
111+ }
112+
108113 if (! startDate .value ) {
109114 return ;
110115 }
111116
112117 let date = dayjs (startDate .value );
113118
119+ if (props .column ? .type === ' date' ) {
120+ return date .format (' YYYY-MM-DD' );
121+ }
122+
114123 if (startTime .value ) {
115124 date = addTimeToDate (formatTime (startTime .value ), date)
116125 }
@@ -119,12 +128,20 @@ const start = computed(() => {
119128})
120129
121130const end = computed (() => {
131+ if (props .column ? .type === ' time' ) {
132+ return formatTime (endTime .value );
133+ }
134+
122135 if (! endDate .value ) {
123136 return ;
124137 }
125138
126139 let date = dayjs (endDate .value );
127140
141+ if (props .column ? .type === ' date' ) {
142+ return date .format (' YYYY-MM-DD' );
143+ }
144+
128145 if (endTime .value ) {
129146 date = addTimeToDate (formatTime (endTime .value ), date)
130147 } else {
@@ -135,7 +152,12 @@ const end = computed(() => {
135152})
136153
137154function updateFromProps () {
138- if (props .valueStart ) {
155+ if (! props .valueStart ) {
156+ datepickerStartEl .value .value = ' ' ;
157+ startTime .value = ' ' ;
158+ } else if (props .column .type === ' time' ) {
159+ startTime .value = props .valueStart ;
160+ } else {
139161 const date = dayjs (props .valueStart );
140162 datepickerStartEl .value .value = date .format (' DD MMM YYYY' );
141163 if (date .format (' HH:mm' ) !== ' 00:00' ) {
@@ -145,11 +167,14 @@ function updateFromProps() {
145167 startTime .value = ' ' ;
146168 }
147169 startDate .value = date .toString ();
148- } else {
149- datepickerStartEl .value .value = ' ' ;
150- startTime .value = ' ' ;
151170 }
152- if (props .valueEnd ) {
171+
172+ if (! props .valueEnd ) {
173+ datepickerEndEl .value .value = ' ' ;
174+ endTime .value = ' ' ;
175+ } else if (props .column .type === ' time' ) {
176+ endTime .value = props .valueEnd ;
177+ } else {
153178 const date = dayjs (props .valueEnd );
154179 datepickerEndEl .value .value = date .format (' DD MMM YYYY' );
155180 if (date .format (' HH:mm' ) !== ' 00:00' ) {
@@ -159,9 +184,6 @@ function updateFromProps() {
159184 endTime .value = ' ' ;
160185 }
161186 endDate .value = date .toString ();
162- } else {
163- datepickerEndEl .value .value = ' ' ;
164- endTime .value = ' ' ;
165187 }
166188}
167189
0 commit comments