(component, method = "hide")
| 3 | let addedEventsList = []; |
| 4 | |
| 5 | const enableDismissTrigger = (component, method = "hide") => { |
| 6 | const clickEvent = `click.dismiss${component.EVENT_KEY}`; |
| 7 | const name = component.NAME; |
| 8 | |
| 9 | if (addedEventsList.includes(name)) { |
| 10 | return; |
| 11 | } |
| 12 | |
| 13 | addedEventsList.push(name); |
| 14 | |
| 15 | EventHandler.on( |
| 16 | document, |
| 17 | clickEvent, |
| 18 | `[data-twe-${name}-dismiss]`, |
| 19 | function (event) { |
| 20 | if (["A", "AREA"].includes(this.tagName)) { |
| 21 | event.preventDefault(); |
| 22 | } |
| 23 | |
| 24 | if (isDisabled(this)) { |
| 25 | return; |
| 26 | } |
| 27 | |
| 28 | const target = |
| 29 | getElementFromSelector(this) || |
| 30 | this.closest(`.${name}`) || |
| 31 | this.closest(`[data-twe-${name}-init]`); |
| 32 | |
| 33 | if (!target) { |
| 34 | return; |
| 35 | } |
| 36 | const instance = component.getOrCreateInstance(target); |
| 37 | |
| 38 | // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method |
| 39 | instance[method](); |
| 40 | } |
| 41 | ); |
| 42 | }; |
| 43 | |
| 44 | export { enableDismissTrigger }; |
no test coverage detected