File tree 2 files changed +16
-0
lines changed
2 files changed +16
-0
lines changed Original file line number Diff line number Diff line change 60
60
@date-update =" $emit('date-update', $event)"
61
61
@invalid-date =" $emit('invalid-date', $event)"
62
62
@overlay-toggle =" $emit('overlay-toggle', $event)"
63
+ @menu-blur =" $emit('blur')"
63
64
>
64
65
<template v-for =" (slot , i ) in slotList " #[slot ]=" args " :key =" i " >
65
66
<slot :name =" slot" v-bind =" { ...args }" />
Original file line number Diff line number Diff line change 167
167
' date-update' ,
168
168
' invalid-date' ,
169
169
' overlay-toggle' ,
170
+ ' menu-blur' ,
170
171
]);
171
172
172
173
const props = defineProps ({
202
203
const innerMenuRef = ref (null );
203
204
const menuMount = ref (false );
204
205
const dynCmpRef = ref <any >(null );
206
+ const isMenuActive = ref (false );
205
207
206
208
onMounted (() => {
207
209
if (! props .shadow ) {
216
218
}
217
219
if (menu ) {
218
220
const stopDefault = (event : Event ) => {
221
+ isMenuActive .value = true ;
219
222
if (defaultedConfig .value .allowPreventDefault ) {
220
223
event .preventDefault ();
221
224
}
225
228
menu .addEventListener (' mousedown' , stopDefault );
226
229
}
227
230
}
231
+ document .addEventListener (' mousedown' , handleClickOutside );
228
232
});
229
233
230
234
onUnmounted (() => {
231
235
window .removeEventListener (' resize' , getCalendarWidth );
236
+ document .addEventListener (' mousedown' , handleClickOutside );
232
237
});
233
238
234
239
const getCalendarWidth = (): void => {
419
424
}
420
425
};
421
426
427
+ const handleClickOutside = (event : MouseEvent ) => {
428
+ if (defaultedInline .value .enabled && ! defaultedInline .value .input ) {
429
+ const activeClick = dpMenuRef .value ?.contains (event .target as HTMLElement );
430
+ if (! activeClick && isMenuActive .value ) {
431
+ isMenuActive .value = false ;
432
+ emit (' menu-blur' );
433
+ }
434
+ }
435
+ };
436
+
422
437
defineExpose ({
423
438
updateMonthYear ,
424
439
switchView ,
You can’t perform that action at this time.
0 commit comments