all files / src/ clickOutside.js

90.91% Statements 10/11
100% Branches 4/4
75% Functions 3/4
90.91% Lines 10/11
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 42× 42× 42×   40×           12×              
let onClickDocument = (e) => {
  let {target} = e
  callbacks.forEach((item) => {
    if (target === item.el || item.el.contains(target)) {
      return
    } else {
      item.callback()
    }
  })
}
document.addEventListener('click', onClickDocument)
let callbacks = []
export default {
  bind: function (el, binding, vnode) {
    callbacks.push({el, callback: binding.value})
  }
}
 
let removeListener = () => {
  document.removeEventListener('click', onClickDocument)
}
 
export {removeListener}