import regex from '@/utils/regex'

const findEle = (parent, type) => {
  return parent.tagName.toLowerCase() === type ? parent : parent.querySelector(type)
}

const trigger = (el, type) => {
  const e = document.createEvent('HTMLEvents')
  e.initEvent(type, true, true)
  el.dispatchEvent(e)
}

const emoji = {
  bind: function(el, binding, vnode) {
    // 正则规则可根据需求自定义
    const regRule = regex.emoji
    const $inp = findEle(el, 'input') || findEle(el, 'textarea')
    el.$inp = $inp
    // 监听触发内容
    $inp.handle = function() {
      // 取input值
      const val = $inp.value
      // 校验正则
      $inp.value = val.replace(regRule, '')
      trigger($inp, 'input')
    }
    // 添加监听 blur失去焦点触发
    $inp.addEventListener('blur', $inp.handle)
  },
  unbind: function(el) {
    el.$inp.removeEventListener('blur', el.$inp.handle)
  }
}

export default emoji
