@@ -108,17 +108,15 @@ const emits = defineEmits<{
108108 */
109109 change: [value : ModelValue ];
110110 /**
111- * on open event
112- * @param method {string} open method
111+ * on active state changes to true
113112 * @param event {Event} - native event
114113 */
115- open: [method : string , event : Event ];
114+ open: [event : Event ];
116115 /**
117- * on close event
118- * @param method {string} close method
116+ * on active state changes to false
119117 * @param event {Event} - native event
120118 */
121- close: [method : string , event : Event ];
119+ close: [event : Event ];
122120 /** the list inside the dropdown reached the start */
123121 " scroll-start" : [];
124122 /** the list inside the dropdown reached it's end */
@@ -204,27 +202,29 @@ const hoverable = computed(() => props.triggers.includes("hover"));
204202
205203const toggleScroll = usePreventScrolling (props .clipScroll );
206204
207- // set infinite scroll handler
208- if (isClient && props .scrollable )
209- useScrollEvents (
210- menuRef ,
211- {
212- onScrollEnd : () => emits (" scroll-end" ),
213- onScrollStart : () => emits (" scroll-start" ),
214- },
215- { passive: true },
216- );
205+ if (isClient ) {
206+ // set infinite scroll handler
207+ if (props .scrollable )
208+ useScrollEvents (
209+ menuRef ,
210+ {
211+ onScrollEnd : () => emits (" scroll-end" ),
212+ onScrollStart : () => emits (" scroll-start" ),
213+ },
214+ { passive: true },
215+ );
217216
218- // set click outside handler
219- if ( isClient && props .closeOnOutside )
220- useClickOutside ([menuRef , triggerRef ], onClickedOutside , {
221- trigger: isActive ,
222- passive: true ,
223- });
217+ // set click outside handler
218+ if ( props .closeOnOutside )
219+ useClickOutside ([menuRef , triggerRef ], onClickedOutside , {
220+ trigger: isActive ,
221+ passive: true ,
222+ });
224223
225- // set scroll page event
226- if (isClient && props .closeOnScroll )
227- useEventListener (window , " scroll" , onPageScroll , { passive: true });
224+ // set scroll page event
225+ if (props .closeOnScroll )
226+ useEventListener (window , " scroll" , onPageScroll , { passive: true });
227+ }
228228
229229watch (
230230 isActive ,
@@ -258,76 +258,76 @@ watch(
258258function onClickedOutside(event : Event ): void {
259259 if (! isActive .value || props .inline ) return ;
260260 if (! props .closeOnOutside ) return ;
261- close (" outside " , event );
261+ close (event );
262262}
263263
264264/** Close dropdown if page get scrolled. */
265265function onPageScroll(event : Event ): void {
266266 if (! isActive .value || props .inline ) return ;
267267 if (! props .closeOnScroll ) return ;
268- close (" scroll " , event );
268+ close (event );
269269}
270270
271271function onTriggerClick(event : Event ): void {
272272 // check if is mobile native and hoverable together
273- if (isMobileNative && hoverable .value ) toggle (" click " , event );
273+ if (isMobileNative && hoverable .value ) toggle (event );
274274 // check normal click conditions
275275 if (! props .triggers .includes (" click" )) return ;
276- toggle (" click " , event );
276+ toggle (event );
277277}
278278
279279function onTriggerContextMenu(event : Event ): void {
280280 if (! props .triggers .includes (" contextmenu" )) return ;
281281 event .preventDefault ();
282- open (" contextmenu " , event );
282+ open (event );
283283}
284284
285285function onTriggerFocus(event : Event ): void {
286286 if (! props .triggers .includes (" focus" )) return ;
287- open (" focus " , event );
287+ open (event );
288288}
289289
290290function onTriggerHover(event : Event ): void {
291291 if (isMobileNative ) return ;
292292 if (! props .triggers .includes (" hover" )) return ;
293- open (" hover " , event );
293+ open (event );
294294}
295295
296296function onTriggerHoverLeave(event : Event ): void {
297297 if (isMobileNative ) return ;
298298 if (! props .triggers .includes (" hover" )) return ;
299- close (" outside " , event );
299+ close (event );
300300}
301301
302302/** Toggle dropdown if it's not disabled. */
303- function toggle(method : string , event : Event ): void {
303+ function toggle(event : Event ): void {
304304 if (props .disabled ) return ;
305- if (! isActive .value ) open (method , event );
306- else close (method , event );
305+ if (! isActive .value ) open (event );
306+ else close (event );
307307}
308308
309309let timer: ReturnType <typeof setTimeout > | undefined ;
310310
311- function open(method : string , event : Event ): void {
311+ function open(event : Event ): void {
312312 if (props .disabled ) return ;
313313 if (isActive .value ) return ;
314314 if (props .delay ) {
315315 timer = setTimeout (() => {
316316 isActive .value = true ;
317- emits (" open" , method , event );
318317 timer = undefined ;
318+ emits (" open" , event );
319319 }, props .delay );
320320 } else {
321321 // if not active, toggle after clickOutside event
322322 // this fixes toggling programmatic
323323 nextTick (() => (isActive .value = true ));
324- emits (" open" , method , event );
324+ emits (" open" , event );
325325 }
326326}
327327
328- function close(method : string , event : Event ): void {
328+ function close(event : Event ): void {
329329 if (! isActive .value ) return ;
330- emits (" close" , method , event );
330+ emits (" close" , event );
331331
332332 // select item when dropdown closed
333333 if (props .selectOnClose && focusedItem .value ?.data .value )
@@ -383,7 +383,7 @@ function selectItem(item: DropdownChildItem<T>, event?: Event): void {
383383
384384 triggerRef .value ?.focus ();
385385 if (props .keepOpen || ! isActive .value || ! event ) return ;
386- close (" content " , event );
386+ close (event );
387387}
388388
389389// #endregion --- Select Feature ---
@@ -425,12 +425,12 @@ function setFocus(item: DropdownChildItem<T>): void {
425425}
426426
427427function onUpPressed(event : Event ): void {
428- if (! isActive .value ) return open (" keydown " , event );
428+ if (! isActive .value ) return open (event );
429429 moveFocus (- 1 );
430430}
431431
432432function onDownPressed(event : Event ): void {
433- if (! isActive .value ) return open (" keydown " , event );
433+ if (! isActive .value ) return open (event );
434434 moveFocus (1 );
435435}
436436
@@ -449,7 +449,7 @@ function onHomePressed(event: Event): void {
449449 if (target .tagName !== " INPUT" && target .tagName !== " TEXTAREA" )
450450 event .preventDefault ();
451451
452- open (" keydown " , event );
452+ open (event );
453453 if (! isNotEmpty .value ) return ;
454454 const item = getFirstViableItem (0 , 1 );
455455 setFocus (item );
@@ -462,14 +462,14 @@ function onEndPressed(event: Event): void {
462462 if (target .tagName !== " INPUT" && target .tagName !== " TEXTAREA" )
463463 event .preventDefault ();
464464
465- open (" keydown " , event );
465+ open (event );
466466 if (! isNotEmpty .value ) return ;
467467 const item = getFirstViableItem (childItems .value .length - 1 , - 1 );
468468 setFocus (item );
469469}
470470
471471function onEscape(event : Event ): void {
472- close (" escape " , event );
472+ close (event );
473473}
474474
475475/**
0 commit comments