fireEventOn(name, target = this._document, detail) {
    const event = new CustomEvent(name, detail ? {detail} : undefined);
    target.dispatchEvent(event);
  }
Fires a custom DOM event on target.
@param {string} name Name of the event.
@param {Node=} target DOM node to fire the event on.
@param {*=} detail Custom data to include.