1
- import { getDescribedElement , getDescribedOwner , hackTooltip , hackPopover , isDisabled } from "./utility.js"
1
+ import { getDescribedElement , getDescribedOwner , hackTooltip , hackPopover , isDisabled , registerBootstrapBlazorModule } from "./utility.js"
2
2
import EventHandler from "./event-handler.js"
3
3
4
4
const Popover = {
@@ -131,7 +131,18 @@ const Popover = {
131
131
}
132
132
}
133
133
134
- const closePopover = e => {
134
+
135
+ EventHandler . on ( el , 'show.bs.popover' , showPopover )
136
+ EventHandler . on ( el , 'inserted.bs.popover' , insertedPopover )
137
+ EventHandler . on ( el , 'hide.bs.popover' , hidePopover )
138
+ EventHandler . on ( el , 'click' , popover . toggleClass , active )
139
+ EventHandler . on ( popover . toggleMenu , 'click' , '.dropdown-item' , e => {
140
+ if ( popover . popover . _config . autoClose !== 'outside' ) {
141
+ popover . hide ( )
142
+ }
143
+ } )
144
+
145
+ popover . closePopover = e => {
135
146
const selector = `.${ popover . class } .show` ;
136
147
const el = e . target ;
137
148
if ( el . closest ( selector ) ) {
@@ -150,22 +161,9 @@ const Popover = {
150
161
}
151
162
} ) ;
152
163
}
153
-
154
- EventHandler . on ( el , 'show.bs.popover' , showPopover )
155
- EventHandler . on ( el , 'inserted.bs.popover' , insertedPopover )
156
- EventHandler . on ( el , 'hide.bs.popover' , hidePopover )
157
- EventHandler . on ( el , 'click' , popover . toggleClass , active )
158
- EventHandler . on ( popover . toggleMenu , 'click' , '.dropdown-item' , e => {
159
- if ( popover . popover . _config . autoClose !== 'outside' ) {
160
- popover . hide ( )
161
- }
162
- } )
163
-
164
- if ( ! window . bb_dropdown ) {
165
- window . bb_dropdown = true
166
-
167
- EventHandler . on ( document , 'click' , closePopover ) ;
168
- }
164
+ registerBootstrapBlazorModule ( 'Popover' , el , ( ) => {
165
+ EventHandler . on ( document , 'click' , popover . closePopover ) ;
166
+ } ) ;
169
167
170
168
// update handler
171
169
if ( popover . toggleMenu ) {
@@ -207,6 +205,11 @@ const Popover = {
207
205
EventHandler . off ( popover . el , 'hide.bs.popover' )
208
206
EventHandler . off ( popover . el , 'click' , '.dropdown-toggle' )
209
207
EventHandler . off ( popover . toggleMenu , 'click' , '.dropdown-item' )
208
+
209
+ const { Popover } = window . BootstrapBlazor ;
210
+ Popover . dispose ( popover , ( ) => {
211
+ EventHandler . off ( document , 'click' , popover . closePopover ) ;
212
+ } ) ;
210
213
}
211
214
else {
212
215
EventHandler . off ( popover . el , 'show.bs.dropdown' )
0 commit comments