function withHotKeysIgnoreOverride(Component, hotKeysIgnoreOptions = { only: [], except: [] }, eventManagerMethod) {
  /**
   * A component that causes React Hotkeys to ignore the results of
   * Configuration.ignoreEventCondition and instead either force the event to be
   * ignored or observed. By default, this is all key events, but you can use
   * the only prop to provide a whitelist, or the except prop to pass a blacklist.
   * @class
   */
  return class HotKeysIgnoreOverride extends PureComponent {
    static propTypes = propTypes;

    static defaultProps = hotKeysIgnoreOptions;

    constructor(props) {
      super(props);

      this._manager = new HotKeysIgnoreOverrideManager(eventManagerMethod);
    }

    render() {
      const {
        // Props used by HotKeysIgnoreOverride
        only, except,

        ...props
      } = this.props;

      return (
        <Component
          hotKeys={ this._manager.getComponentProps(() => this.props) }
          {...props }
        />
      )
    }
  }
}
Wraps a React component in a HotKeysIgnoreOverride component, which passes down the
callbacks and options necessary for React Hotkeys to work as a single prop value,
hotkeys. These must be unwrapped and applied to a DOM-mountable element within
the wrapped component (e.g. div, span, input, etc) in order for the key events
to be recorded.

@param {React.ComponentClass} Component - Component class to wrap
@param {Object} hotKeysIgnoreOptions - Options that become the wrapping component's
                default prop values
@param {string} eventManagerMethod - Name of EventManager method to use to handle a
       key event
@returns {React.ComponentClass} Wrapped component that is passed all of the React
hotkeys props in a single value, hotkeys.