11<template >
2- <div class =" relative inline-block afcl-select" :data-select-id = " internalID " >
2+ <div class =" relative inline-block afcl-select" ref = " internalSelect " >
33 <div class =" relative" >
44 <input
55 ref =" inputEl"
@@ -106,10 +106,6 @@ const props = defineProps({
106106 type: Boolean ,
107107 default: false ,
108108 },
109- selectID: {
110- type: String ,
111- required: false ,
112- },
113109});
114110
115111const emit = defineEmits ([' update:modelValue' ]);
@@ -126,7 +122,7 @@ const dropdownStyle = ref<{ top?: string; }>({
126122});
127123
128124const selectedItems: Ref <any []> = ref ([]);
129- const internalID = props . selectID || ` afcb-select-${ Math . random (). toString ( 36 ). substring ( 7 )} `
125+ const internalSelect = ref < HTMLElement | null >( null );
130126
131127function inputInput() {
132128 if (! props .multiple && selectedItems .value .length ) {
@@ -202,15 +198,9 @@ const filteredItems = computed(() => {
202198
203199const handleClickOutside = (event : MouseEvent ) => {
204200 const targetEl = event .target as HTMLElement | null ;
205- // Attempt to find a parent with data-select-id
206- const closestSelect = targetEl ?.closest (' [data-select-id]' );
207- const closestID = closestSelect ?.getAttribute (' data-select-id' );
208- console .log (' closestID' , closestID , ' closestSelect' , closestSelect , ' internalID' , internalID );
209-
210- if (! closestSelect || closestID !== internalID ) {
211- // then close this dropdown
201+ const closestSelect = targetEl ?.closest (' .afcl-select' );
202+ if (closestSelect !== internalSelect .value )
212203 showDropdown .value = false ;
213- }
214204};
215205
216206const addClickListener = () => {
0 commit comments