2017-08-19 15:24:45 +00:00
|
|
|
/**
|
|
|
|
|
* --------------------------------------------------------------------------
|
2017-08-21 07:11:37 +00:00
|
|
|
* Bootstrap (v4.0.0-beta): dom/eventHandler.js
|
2017-08-19 15:24:45 +00:00
|
|
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
|
|
|
* --------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
|
2017-08-21 07:11:37 +00:00
|
|
|
const EventHandler = {
|
2017-08-19 15:24:45 +00:00
|
|
|
on(element, event, handler) {
|
2017-08-21 07:11:37 +00:00
|
|
|
if (typeof event !== 'string' || typeof element === 'undefined') {
|
2017-08-19 15:24:45 +00:00
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
element.addEventListener(event, handler, false)
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
one(element, event, handler) {
|
|
|
|
|
const complete = () => {
|
|
|
|
|
/* eslint func-style: off */
|
|
|
|
|
handler()
|
|
|
|
|
element.removeEventListener(event, complete, false)
|
|
|
|
|
}
|
2017-08-21 07:11:37 +00:00
|
|
|
EventHandler.on(element, event, complete)
|
2017-08-19 15:24:45 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
|
|
trigger(element, event) {
|
2017-08-21 07:11:37 +00:00
|
|
|
if (typeof event !== 'string' || typeof element === 'undefined') {
|
|
|
|
|
return null
|
2017-08-19 15:24:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const eventToDispatch = new CustomEvent(event, {
|
|
|
|
|
bubbles: true,
|
|
|
|
|
cancelable: true
|
|
|
|
|
})
|
|
|
|
|
element.dispatchEvent(eventToDispatch)
|
2017-08-21 07:11:37 +00:00
|
|
|
|
|
|
|
|
return eventToDispatch
|
2017-08-19 15:24:45 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2017-08-21 07:11:37 +00:00
|
|
|
export default EventHandler
|