docs: function handleWheel(element, event) {
  
    if (element.state.swipeAxis === 'vertical') {
      // This mixin currently only supports horizontal swiping.
      return;
    }
  
    // Since we have a new wheel event, reset our timer waiting for the last
    // wheel event to pass.
    if (element[lastWheelTimeoutSymbol]) {
      clearTimeout(element[lastWheelTimeoutSymbol]);
    }
    element[lastWheelTimeoutSymbol] = setTimeout(async () => {
      element[symbols.raiseChangeEvents] = true;
      wheelTimedOut(element);
      await Promise.resolve();
      element[symbols.raiseChangeEvents] = false;
    }, WHEEL_TIME);
  
    const deltaX = event.deltaX;
    const deltaY = event.deltaY;
  
    // See if component event represents acceleration or deceleration.
    const acceleration = Math.sign(deltaX) * (deltaX - element[lastDeltaXSymbol]);
    element[lastDeltaXSymbol] = deltaX;
  
    if (Math.abs(deltaX) < Math.abs(deltaY)) {
      // Move was mostly vertical. The user may be trying scroll with the
      // trackpad/wheel. To be on the safe, we ignore such events.
      return false;
    }
  
    if (element[postNavigateDelayCompleteSymbol]) {
      // It's too soon after a navigation; ignore the event.
      return true;
    }
  
    if (acceleration > 0) {
      // The events are not (or are no longer) decelerating, so we can start
      // paying attention to them again.
      element[absorbDecelerationSymbol] = false;
    } else if (element[absorbDecelerationSymbol]) {
      // The wheel event was likely faked to simulate deceleration; ignore it.
      return true;
    }
  
    element[wheelDistanceSymbol] -= deltaX;
  
    // Update the travel fraction of the component being navigated.
    const width = element[symbols.swipeTarget].offsetWidth;
    let swipeFraction = width > 0 ?
      element[wheelDistanceSymbol] / width :
      0;
    swipeFraction = Math.sign(swipeFraction) * Math.min(Math.abs(swipeFraction), 1);
  
    // If the user has dragged enough to reach the previous/next item, then
    // complete a navigation to that item.
    let gesture;
    if (swipeFraction === -1) {
      gesture = symbols.swipeLeft;
    } else if (swipeFraction === 1) {
      gesture = symbols.swipeRight;
    }
    if (gesture) {
      if (element[gesture]) {
        element[gesture]();
      }
      postNavigate(element);
    } else {
      element.setState({ swipeFraction });
    }
  
    return true;
  }