_selectNextNumber(firstSelected, lastSelected, direction, maxValue, newValue, delay) {
      const current = firstSelected > maxValue ? firstSelected - maxValue : firstSelected;
      if (firstSelected === lastSelected) {
        this._animationInProgress = false;
      }
      this._setSelectedValue(current);
      if (firstSelected !== lastSelected) {
        firstSelected += direction;
        setTimeout(() => {
          this._selectNextNumber(firstSelected, lastSelected, direction, maxValue, newValue, delay);
        }, delay);
      } else {
        // the new value is set, fire event
        setTimeout(() => {
          this.fireEvent("change", {
            "value": newValue,
            "stringValue": this._getStringValue(newValue),
            "finalChange": true
          });
        }, ANIMATION_DELAY_EVENT);
      }
    }
Does the animation step between old and new selected values.

@param {number} firstSelected first/current value to move from
@param {number} lastSelected last value to move to
@param {number} direction direction of the animation
@param {number} maxValue max clock value
@param {number} newValue new value
@param {number} delay delay of the single step