src/widgets/tube-base/tube-base.js
/**
   * Construct and dispatch a new CustomEvent
   * that is composed (traverses shadow boundary)
   * and that bubbles
   * @param {string} name - Event name to emit
   * @param {any} detail - The detail property of the CustomEvent
   * @return void
   */
Construct and dispatch a new CustomEvent
that is composed (traverses shadow boundary)
and that bubbles
@param {string} name - Event name to emit
@param {any} detail - The detail property of the CustomEvent
@return void
Construct and dispatch a new CustomEvent that is composed ( traverses shadow boundary ) and that bubbles @param { string } name - Event name to emit @param { any } detail - The detail property of the CustomEvent @return void
emitEvent(name, detail) {
    const customEvent = new CustomEvent(name, {
      detail,
      bubbles: true,
      composed: true,
      isTrusted:true
    });
    this.dispatchEvent(customEvent);
  }
emitEvent ( name , detail ) { const customEvent = new CustomEvent ( name , { detail , bubbles : true , composed : true , isTrusted : true } ) ; this . dispatchEvent ( customEvent ) ; }
Construct and dispatch a new CustomEvent
 that is composed (traverses shadow boundary)
 and that bubbles
 @param {string} name - Event name to emit
 @param {any} detail - The detail property of the CustomEvent
 @return void
Construct and dispatch a new CustomEvent that is composed ( traverses shadow boundary ) and that bubbles @param { string } name - Event name to emit @param { any } detail - The detail property of the CustomEvent @return void