code: function adaptListeners_(object) {
    /** @type {SearchDirectiveListeners} */
    let typeaheadListeners;
    if (object === undefined) {
      typeaheadListeners = {
        open() {},
        close() {},
        cursorchange() {},
        datasetsempty() {},
        select() {},
        autocomplete() {},
        change() {}
      };
    } else {
      typeaheadListeners = {
        open: object.open !== undefined ?
          object.open : () => {},
        close: object.close !== undefined ?
          object.close : () => {},
        cursorchange: object.cursorchange !== undefined ?
          object.cursorchange : () => {},
        datasetsempty: object.datasetsempty !== undefined ?
          object.datasetsempty : () => {},
        select: object.select !== undefined ?
          object.select : () => {},
        autocomplete: object.autocomplete !== undefined ?
          object.autocomplete : () => {},
        change: object.change !== undefined ?
          object.change : () => {}
      };
    }
    return typeaheadListeners;
  }
docs: Create a real SearchDirectiveListeners object out of the object
  returned by $eval.
  @param {SearchDirectiveListeners} object Object.
  @return {SearchDirectiveListeners} The listeners object.
  @private
  @hidden