_showOverlayCondition({ lastKey }) {
    const alwaysHideOn = ['Tab', 'Escape'];
    const notMultipleChoiceHideOn = ['Enter'];
    if (
      lastKey &&
      (alwaysHideOn.includes(lastKey) ||
        (!this.multipleChoice && notMultipleChoiceHideOn.includes(lastKey)))
    ) {
      return false;
    }
    if (
      this.filled ||
      this.showAllOnEmpty ||
      (!this.filled && this.multipleChoice && this.__prevCboxValueNonSelected)
    ) {
      return true;
    }
    // when no keyboard action involved (on focused change), return current opened state
    return /** @type {boolean} */ (this.opened);
  }
@overridable
Allows Sub Classer to control when the overlay should become visible
Note that this condition is separate from whether the option listbox is
shown (use 'showAllOnEmpty, matchMode and autocomplete configurations for this')

Separating these conditions allows the user to show different content in the dialog/overlay
that wraps the listbox with options

@example
_showOverlayCondition({ lastKey }) {
  return lastKey === 'ArrowDown';
}

@example
_showOverlayCondition(options) {
  return options.currentValue.length > 4 && super._showOverlayCondition(options);
}

@param {{ currentValue?: string, lastKey?: string }} options
@protected
@returns {boolean}