all files / src/ click-outside.js

45.45% Statements 5/11
0% Branches 0/4
25% Functions 1/4
45.45% Lines 5/11
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24                                      
let onClickDocument = (e) => {
  let { target } = e
  callbacks.forEach(item => {
    if(item.el === target || 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}