_spinValue(increment, resetVariables = false) {
      if (resetVariables) {
        this._waitTimeout = INITIAL_WAIT_TIMEOUT;
        this._speed = INITIAL_SPEED;
        this._btnDown = true;
      }
      this._spinTimeoutId = setTimeout(() => {
        if (this._btnDown) {
          this._spinStarted = true;
          this._modifyValue(increment ? this.step : -this.step);
          this._setButtonState();
          if (!this._incIconDisabled && increment || !this._decIconDisabled && !increment) {
            this._spinValue(increment);
          } else {
            this._resetSpin();
            this._fireChangeEvent();
          }
        }
      }, this._calcWaitTimeout());
    }
Called when the increment or decrement button is pressed and held to set new value.
@param {boolean} increment - is this the increment button or not so the values should be spin accordingly up or down
@param {boolean} resetVariables - whether to reset the spin-related variables or not