|
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,7 @@ const Popover = { |
131 | 131 | } |
132 | 132 | } |
133 | 133 |
|
134 | | - const closePopover = e => { |
| 134 | + popover.closePopover = e => { |
135 | 135 | const selector = `.${popover.class}.show`; |
136 | 136 | const el = e.target; |
137 | 137 | if (el.closest(selector)) { |
@@ -161,11 +161,20 @@ const Popover = { |
161 | 161 | } |
162 | 162 | }) |
163 | 163 |
|
164 | | - if (!window.bb_dropdown) { |
165 | | - window.bb_dropdown = true |
| 164 | + const module = registerBootstrapBlazorModule('Popover', { |
| 165 | + handle: false, |
| 166 | + items: [], |
| 167 | + registerClosePopupHandler: function () { |
| 168 | + if (this.handle === false) { |
| 169 | + this.handle = true; |
| 170 | + |
| 171 | + EventHandler.on(document, 'click', popover.closePopover); |
| 172 | + } |
| 173 | + } |
| 174 | + }); |
| 175 | + module.registerClosePopupHandler(); |
| 176 | + module.items.push(popover); |
166 | 177 |
|
167 | | - EventHandler.on(document, 'click', closePopover); |
168 | | - } |
169 | 178 |
|
170 | 179 | // update handler |
171 | 180 | if (popover.toggleMenu) { |
@@ -207,6 +216,12 @@ const Popover = { |
207 | 216 | EventHandler.off(popover.el, 'hide.bs.popover') |
208 | 217 | EventHandler.off(popover.el, 'click', '.dropdown-toggle') |
209 | 218 | EventHandler.off(popover.toggleMenu, 'click', '.dropdown-item') |
| 219 | + |
| 220 | + const { Popover } = window.BootstrapBlazor; |
| 221 | + Popover.items.pop(popover) |
| 222 | + if (Popover.items.length === 0) { |
| 223 | + EventHandler.off(document, 'click', popover.closePopover) |
| 224 | + } |
210 | 225 | } |
211 | 226 | else { |
212 | 227 | EventHandler.off(popover.el, 'show.bs.dropdown') |
|
0 commit comments