code: function addEvent(eventName, {
      onElement,
      withCallback,
      avoidDuplicate = true,
      once = false,
      useCapture = false} = { }, thisArg) {
      let element = onElement || []
      if (utils.isString(element)) {
          element =  document.querySelectorAll(element)
      }
      function handler(event) {
          if (utils.isFunction(withCallback)) {
              withCallback.call(thisArg, event, this)
          }
          if (once) {
              handler.destroy();
          }
      }
      handler.destroy = function() {
          each(element, (el) => {
              const events = getNodeEvents(el, eventName, handler);
              if (events.found) { events.all.splice(events.evt, 1); }
              if (el.removeEventListener) el.removeEventListener(eventName, handler, useCapture)
          })
      }
      each(element, (el) => {
          const events = getNodeEvents(el, eventName, handler);
          if (el.addEventListener && (avoidDuplicate && !events.found) || !avoidDuplicate) {
              el.addEventListener(eventName, handler, useCapture)
              events.all.push({ eventName: eventName, fn: handler});
          }
      })
      return handler
  }
docs: Add Event
  Add an event listener
  
  @param {string} eventName
  @param {object} detials