@@ -33,12 +33,16 @@ export function init(id, invoke) {
33
33
} )
34
34
}
35
35
36
- EventHandler . on ( input , 'blur' , e => {
36
+ ac . triggerBlur = ( ) => {
37
37
el . classList . remove ( 'show' ) ;
38
38
const triggerBlur = input . getAttribute ( 'data-bb-blur' ) === 'true' ;
39
39
if ( triggerBlur ) {
40
40
invoke . invokeMethodAsync ( 'TriggerBlur' ) ;
41
41
}
42
+ }
43
+
44
+ EventHandler . on ( menu , 'click' , '.dropdown-item' , e => {
45
+ ac . triggerBlur ( ) ;
42
46
} ) ;
43
47
44
48
EventHandler . on ( input , 'focus' , e => {
@@ -81,7 +85,11 @@ export function init(id, invoke) {
81
85
82
86
const el = a . querySelector ( '[data-bs-toggle="bb.dropdown"]' ) ;
83
87
if ( el === null ) {
84
- a . classList . remove ( 'show' ) ;
88
+ const id = a . getAttribute ( 'id' ) ;
89
+ const d = Data . get ( id ) ;
90
+ if ( d ) {
91
+ d . triggerBlur ( ) ;
92
+ }
85
93
}
86
94
} ) ;
87
95
}
@@ -99,7 +107,7 @@ const handlerKeyup = (ac, e) => {
99
107
const current = menu . querySelector ( '.active' ) ;
100
108
if ( current !== null ) {
101
109
current . click ( ) ;
102
- input . blur ( ) ;
110
+ ac . triggerBlur ( ) ;
103
111
}
104
112
invoke . invokeMethodAsync ( 'EnterCallback' , input . value ) ;
105
113
}
@@ -108,7 +116,7 @@ const handlerKeyup = (ac, e) => {
108
116
const skipEsc = el . getAttribute ( 'data-bb-skip-esc' ) === 'true' ;
109
117
if ( skipEsc === false ) {
110
118
invoke . invokeMethodAsync ( 'EscCallback' ) ;
111
- input . blur ( ) ;
119
+ ac . triggerBlur ( ) ;
112
120
}
113
121
}
114
122
else if ( key === 'ArrowUp' || key === 'ArrowDown' ) {
@@ -149,7 +157,7 @@ export function dispose(id) {
149
157
Data . remove ( id )
150
158
151
159
if ( ac ) {
152
- const { popover, input } = ac ;
160
+ const { popover, input, menu } = ac ;
153
161
if ( popover ) {
154
162
Popover . dispose ( popover )
155
163
if ( input ) {
@@ -158,14 +166,14 @@ export function dispose(id) {
158
166
}
159
167
EventHandler . off ( input , 'change' ) ;
160
168
EventHandler . off ( input , 'keyup' ) ;
161
- EventHandler . off ( input , 'blur ' ) ;
169
+ EventHandler . off ( menu , 'click ' ) ;
162
170
Input . dispose ( input ) ;
163
- }
164
171
165
- const { AutoComplete } = window . BootstrapBlazor ;
166
- AutoComplete . dispose ( id , ( ) => {
167
- EventHandler . off ( document , 'click' , ac . closePopover ) ;
168
- } ) ;
172
+ const { AutoComplete } = window . BootstrapBlazor ;
173
+ AutoComplete . dispose ( id , ( ) => {
174
+ EventHandler . off ( document , 'click' , ac . closePopover ) ;
175
+ } ) ;
176
+ }
169
177
}
170
178
171
179
const scrollIntoView = ( el , item ) => {
0 commit comments