8d77b50386265bc6f5fc04da202d2bdc.json 56.8 KB
{"ast":null,"code":"import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\n\nvar _trimAlignValue = function trimAlignValue(_ref) {\n  var value = _ref.value,\n      handle = _ref.handle,\n      bounds = _ref.bounds,\n      props = _ref.props;\n  var allowCross = props.allowCross,\n      pushable = props.pushable;\n  var thershold = Number(pushable);\n  var valInRange = utils.ensureValueInRange(value, props);\n  var valNotConflict = valInRange;\n\n  if (!allowCross && handle != null && bounds !== undefined) {\n    if (handle > 0 && valInRange <= bounds[handle - 1] + thershold) {\n      valNotConflict = bounds[handle - 1] + thershold;\n    }\n\n    if (handle < bounds.length - 1 && valInRange >= bounds[handle + 1] - thershold) {\n      valNotConflict = bounds[handle + 1] - thershold;\n    }\n  }\n\n  return utils.ensureValuePrecision(valNotConflict, props);\n};\n\nvar Range = /*#__PURE__*/function (_React$Component) {\n  _inherits(Range, _React$Component);\n\n  var _super = _createSuper(Range);\n\n  function Range(props) {\n    var _this;\n\n    _classCallCheck(this, Range);\n\n    _this = _super.call(this, props);\n\n    _this.onEnd = function (force) {\n      var handle = _this.state.handle;\n\n      _this.removeDocumentEvents();\n\n      if (handle !== null || force) {\n        _this.props.onAfterChange(_this.getValue());\n      }\n\n      _this.setState({\n        handle: null\n      });\n    };\n\n    var count = props.count,\n        min = props.min,\n        max = props.max;\n    var initialValue = Array.apply(void 0, _toConsumableArray(Array(count + 1))).map(function () {\n      return min;\n    });\n    var defaultValue = 'defaultValue' in props ? props.defaultValue : initialValue;\n    var value = props.value !== undefined ? props.value : defaultValue;\n    var bounds = value.map(function (v, i) {\n      return _trimAlignValue({\n        value: v,\n        handle: i,\n        props: props\n      });\n    });\n    var recent = bounds[0] === max ? 0 : bounds.length - 1;\n    _this.state = {\n      handle: null,\n      recent: recent,\n      bounds: bounds\n    };\n    return _this;\n  }\n  /**\n   * [Legacy] Used for inherit other component.\n   * It's a bad code style which should be refactor.\n   */\n\n  /* eslint-disable @typescript-eslint/no-unused-vars, class-methods-use-this */\n\n\n  _createClass(Range, [{\n    key: \"calcValueByPos\",\n    value: function calcValueByPos(value) {\n      return 0;\n    }\n  }, {\n    key: \"calcOffset\",\n    value: function calcOffset(value) {\n      return 0;\n    }\n  }, {\n    key: \"saveHandle\",\n    value: function saveHandle(index, h) {}\n  }, {\n    key: \"removeDocumentEvents\",\n    value: function removeDocumentEvents() {}\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps, prevState) {\n      var _this2 = this;\n\n      var _this$props = this.props,\n          onChange = _this$props.onChange,\n          value = _this$props.value,\n          min = _this$props.min,\n          max = _this$props.max;\n\n      if (!('min' in this.props || 'max' in this.props)) {\n        return;\n      }\n\n      if (min === prevProps.min && max === prevProps.max) {\n        return;\n      }\n\n      var currentValue = value || prevState.bounds;\n\n      if (currentValue.some(function (v) {\n        return utils.isValueOutOfRange(v, _this2.props);\n      })) {\n        var newValues = currentValue.map(function (v) {\n          return utils.ensureValueInRange(v, _this2.props);\n        });\n        onChange(newValues);\n      }\n    }\n  }, {\n    key: \"onChange\",\n    value: function onChange(state) {\n      var props = this.props;\n      var isNotControlled = !('value' in props);\n\n      if (isNotControlled) {\n        this.setState(state);\n      } else {\n        var controlledState = {};\n        ['handle', 'recent'].forEach(function (item) {\n          if (state[item] !== undefined) {\n            controlledState[item] = state[item];\n          }\n        });\n\n        if (Object.keys(controlledState).length) {\n          this.setState(controlledState);\n        }\n      }\n\n      var data = _objectSpread(_objectSpread({}, this.state), state);\n\n      var changedValue = data.bounds;\n      props.onChange(changedValue);\n    }\n  }, {\n    key: \"onStart\",\n    value: function onStart(position) {\n      var props = this.props,\n          state = this.state;\n      var bounds = this.getValue();\n      props.onBeforeChange(bounds);\n      var value = this.calcValueByPos(position);\n      this.startValue = value;\n      this.startPosition = position;\n      var closestBound = this.getClosestBound(value);\n      this.prevMovedHandleIndex = this.getBoundNeedMoving(value, closestBound);\n      this.setState({\n        handle: this.prevMovedHandleIndex,\n        recent: this.prevMovedHandleIndex\n      });\n      var prevValue = bounds[this.prevMovedHandleIndex];\n      if (value === prevValue) return;\n\n      var nextBounds = _toConsumableArray(state.bounds);\n\n      nextBounds[this.prevMovedHandleIndex] = value;\n      this.onChange({\n        bounds: nextBounds\n      });\n    }\n  }, {\n    key: \"onMove\",\n    value: function onMove(e, position) {\n      utils.pauseEvent(e);\n      var state = this.state;\n      var value = this.calcValueByPos(position);\n      var oldValue = state.bounds[state.handle];\n      if (value === oldValue) return;\n      this.moveTo(value);\n    }\n  }, {\n    key: \"onKeyboard\",\n    value: function onKeyboard(e) {\n      var _this$props2 = this.props,\n          reverse = _this$props2.reverse,\n          vertical = _this$props2.vertical;\n      var valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);\n\n      if (valueMutator) {\n        utils.pauseEvent(e);\n        var state = this.state,\n            props = this.props;\n        var bounds = state.bounds,\n            handle = state.handle;\n        var oldValue = bounds[handle === null ? state.recent : handle];\n        var mutatedValue = valueMutator(oldValue, props);\n\n        var value = _trimAlignValue({\n          value: mutatedValue,\n          handle: handle,\n          bounds: state.bounds,\n          props: props\n        });\n\n        if (value === oldValue) return;\n        var isFromKeyboardEvent = true;\n        this.moveTo(value, isFromKeyboardEvent);\n      }\n    }\n  }, {\n    key: \"getValue\",\n    value: function getValue() {\n      return this.state.bounds;\n    }\n  }, {\n    key: \"getClosestBound\",\n    value: function getClosestBound(value) {\n      var bounds = this.state.bounds;\n      var closestBound = 0;\n\n      for (var i = 1; i < bounds.length - 1; i += 1) {\n        if (value >= bounds[i]) {\n          closestBound = i;\n        }\n      }\n\n      if (Math.abs(bounds[closestBound + 1] - value) < Math.abs(bounds[closestBound] - value)) {\n        closestBound += 1;\n      }\n\n      return closestBound;\n    }\n  }, {\n    key: \"getBoundNeedMoving\",\n    value: function getBoundNeedMoving(value, closestBound) {\n      var _this$state = this.state,\n          bounds = _this$state.bounds,\n          recent = _this$state.recent;\n      var boundNeedMoving = closestBound;\n      var isAtTheSamePoint = bounds[closestBound + 1] === bounds[closestBound];\n\n      if (isAtTheSamePoint && bounds[recent] === bounds[closestBound]) {\n        boundNeedMoving = recent;\n      }\n\n      if (isAtTheSamePoint && value !== bounds[closestBound + 1]) {\n        boundNeedMoving = value < bounds[closestBound + 1] ? closestBound : closestBound + 1;\n      }\n\n      return boundNeedMoving;\n    }\n  }, {\n    key: \"getLowerBound\",\n    value: function getLowerBound() {\n      return this.state.bounds[0];\n    }\n  }, {\n    key: \"getUpperBound\",\n    value: function getUpperBound() {\n      var bounds = this.state.bounds;\n      return bounds[bounds.length - 1];\n    }\n    /**\n     * Returns an array of possible slider points, taking into account both\n     * `marks` and `step`. The result is cached.\n     */\n\n  }, {\n    key: \"getPoints\",\n    value: function getPoints() {\n      var _this$props3 = this.props,\n          marks = _this$props3.marks,\n          step = _this$props3.step,\n          min = _this$props3.min,\n          max = _this$props3.max;\n      var cache = this.internalPointsCache;\n\n      if (!cache || cache.marks !== marks || cache.step !== step) {\n        var pointsObject = _objectSpread({}, marks);\n\n        if (step !== null) {\n          for (var point = min; point <= max; point += step) {\n            pointsObject[point] = point;\n          }\n        }\n\n        var points = Object.keys(pointsObject).map(parseFloat);\n        points.sort(function (a, b) {\n          return a - b;\n        });\n        this.internalPointsCache = {\n          marks: marks,\n          step: step,\n          points: points\n        };\n      }\n\n      return this.internalPointsCache.points;\n    }\n  }, {\n    key: \"moveTo\",\n    value: function moveTo(value, isFromKeyboardEvent) {\n      var _this3 = this;\n\n      var state = this.state,\n          props = this.props;\n\n      var nextBounds = _toConsumableArray(state.bounds);\n\n      var handle = state.handle === null ? state.recent : state.handle;\n      nextBounds[handle] = value;\n      var nextHandle = handle;\n\n      if (props.pushable !== false) {\n        this.pushSurroundingHandles(nextBounds, nextHandle);\n      } else if (props.allowCross) {\n        nextBounds.sort(function (a, b) {\n          return a - b;\n        });\n        nextHandle = nextBounds.indexOf(value);\n      }\n\n      this.onChange({\n        recent: nextHandle,\n        handle: nextHandle,\n        bounds: nextBounds\n      });\n\n      if (isFromKeyboardEvent) {\n        // known problem: because setState is async,\n        // so trigger focus will invoke handler's onEnd and another handler's onStart too early,\n        // cause onBeforeChange and onAfterChange receive wrong value.\n        // here use setState callback to hack,but not elegant\n        this.props.onAfterChange(nextBounds);\n        this.setState({}, function () {\n          _this3.handlesRefs[nextHandle].focus();\n        });\n        this.onEnd();\n      }\n    }\n  }, {\n    key: \"pushSurroundingHandles\",\n    value: function pushSurroundingHandles(bounds, handle) {\n      var value = bounds[handle];\n      var pushable = this.props.pushable;\n      var threshold = Number(pushable);\n      var direction = 0;\n\n      if (bounds[handle + 1] - value < threshold) {\n        direction = +1; // push to right\n      }\n\n      if (value - bounds[handle - 1] < threshold) {\n        direction = -1; // push to left\n      }\n\n      if (direction === 0) {\n        return;\n      }\n\n      var nextHandle = handle + direction;\n      var diffToNext = direction * (bounds[nextHandle] - value);\n\n      if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n        // revert to original value if pushing is impossible\n        // eslint-disable-next-line no-param-reassign\n        bounds[handle] = bounds[nextHandle] - direction * threshold;\n      }\n    }\n  }, {\n    key: \"pushHandle\",\n    value: function pushHandle(bounds, handle, direction, amount) {\n      var originalValue = bounds[handle];\n      var currentValue = bounds[handle];\n\n      while (direction * (currentValue - originalValue) < amount) {\n        if (!this.pushHandleOnePoint(bounds, handle, direction)) {\n          // can't push handle enough to create the needed `amount` gap, so we\n          // revert its position to the original value\n          // eslint-disable-next-line no-param-reassign\n          bounds[handle] = originalValue;\n          return false;\n        }\n\n        currentValue = bounds[handle];\n      } // the handle was pushed enough to create the needed `amount` gap\n\n\n      return true;\n    }\n  }, {\n    key: \"pushHandleOnePoint\",\n    value: function pushHandleOnePoint(bounds, handle, direction) {\n      var points = this.getPoints();\n      var pointIndex = points.indexOf(bounds[handle]);\n      var nextPointIndex = pointIndex + direction;\n\n      if (nextPointIndex >= points.length || nextPointIndex < 0) {\n        // reached the minimum or maximum available point, can't push anymore\n        return false;\n      }\n\n      var nextHandle = handle + direction;\n      var nextValue = points[nextPointIndex];\n      var pushable = this.props.pushable;\n      var threshold = Number(pushable);\n      var diffToNext = direction * (bounds[nextHandle] - nextValue);\n\n      if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n        // couldn't push next handle, so we won't push this one either\n        return false;\n      } // push the handle\n      // eslint-disable-next-line no-param-reassign\n\n\n      bounds[handle] = nextValue;\n      return true;\n    }\n  }, {\n    key: \"trimAlignValue\",\n    value: function trimAlignValue(value) {\n      var _this$state2 = this.state,\n          handle = _this$state2.handle,\n          bounds = _this$state2.bounds;\n      return _trimAlignValue({\n        value: value,\n        handle: handle,\n        bounds: bounds,\n        props: this.props\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this4 = this;\n\n      var _this$state3 = this.state,\n          handle = _this$state3.handle,\n          bounds = _this$state3.bounds;\n      var _this$props4 = this.props,\n          prefixCls = _this$props4.prefixCls,\n          vertical = _this$props4.vertical,\n          included = _this$props4.included,\n          disabled = _this$props4.disabled,\n          min = _this$props4.min,\n          max = _this$props4.max,\n          reverse = _this$props4.reverse,\n          handleGenerator = _this$props4.handle,\n          trackStyle = _this$props4.trackStyle,\n          handleStyle = _this$props4.handleStyle,\n          tabIndex = _this$props4.tabIndex,\n          ariaLabelGroupForHandles = _this$props4.ariaLabelGroupForHandles,\n          ariaLabelledByGroupForHandles = _this$props4.ariaLabelledByGroupForHandles,\n          ariaValueTextFormatterGroupForHandles = _this$props4.ariaValueTextFormatterGroupForHandles;\n      var offsets = bounds.map(function (v) {\n        return _this4.calcOffset(v);\n      });\n      var handleClassName = \"\".concat(prefixCls, \"-handle\");\n      var handles = bounds.map(function (v, i) {\n        var _classNames;\n\n        var mergedTabIndex = tabIndex[i] || 0;\n\n        if (disabled || tabIndex[i] === null) {\n          mergedTabIndex = null;\n        }\n\n        var dragging = handle === i;\n        return handleGenerator({\n          className: classNames((_classNames = {}, _defineProperty(_classNames, handleClassName, true), _defineProperty(_classNames, \"\".concat(handleClassName, \"-\").concat(i + 1), true), _defineProperty(_classNames, \"\".concat(handleClassName, \"-dragging\"), dragging), _classNames)),\n          prefixCls: prefixCls,\n          vertical: vertical,\n          dragging: dragging,\n          offset: offsets[i],\n          value: v,\n          index: i,\n          tabIndex: mergedTabIndex,\n          min: min,\n          max: max,\n          reverse: reverse,\n          disabled: disabled,\n          style: handleStyle[i],\n          ref: function ref(h) {\n            return _this4.saveHandle(i, h);\n          },\n          ariaLabel: ariaLabelGroupForHandles[i],\n          ariaLabelledBy: ariaLabelledByGroupForHandles[i],\n          ariaValueTextFormatter: ariaValueTextFormatterGroupForHandles[i]\n        });\n      });\n      var tracks = bounds.slice(0, -1).map(function (_, index) {\n        var _classNames2;\n\n        var i = index + 1;\n        var trackClassName = classNames((_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-track\"), true), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-track-\").concat(i), true), _classNames2));\n        return React.createElement(Track, {\n          className: trackClassName,\n          vertical: vertical,\n          reverse: reverse,\n          included: included,\n          offset: offsets[i - 1],\n          length: offsets[i] - offsets[i - 1],\n          style: trackStyle[index],\n          key: i\n        });\n      });\n      return {\n        tracks: tracks,\n        handles: handles\n      };\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(props, state) {\n      if (!('value' in props || 'min' in props || 'max' in props)) {\n        return null;\n      }\n\n      var value = props.value || state.bounds;\n      var nextBounds = value.map(function (v, i) {\n        return _trimAlignValue({\n          value: v,\n          handle: i,\n          bounds: state.bounds,\n          props: props\n        });\n      });\n\n      if (state.bounds.length === nextBounds.length) {\n        if (nextBounds.every(function (v, i) {\n          return v === state.bounds[i];\n        })) {\n          return null;\n        }\n      } else {\n        nextBounds = value.map(function (v, i) {\n          return _trimAlignValue({\n            value: v,\n            handle: i,\n            props: props\n          });\n        });\n      }\n\n      return _objectSpread(_objectSpread({}, state), {}, {\n        bounds: nextBounds\n      });\n    }\n  }]);\n\n  return Range;\n}(React.Component);\n/* eslint-enable */\n\n\nRange.displayName = 'Range';\nRange.defaultProps = {\n  count: 1,\n  allowCross: true,\n  pushable: false,\n  tabIndex: [],\n  ariaLabelGroupForHandles: [],\n  ariaLabelledByGroupForHandles: [],\n  ariaValueTextFormatterGroupForHandles: []\n};\nexport default createSlider(Range);","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/rc-slider/es/Range.js"],"names":["_defineProperty","_objectSpread","_toConsumableArray","_classCallCheck","_createClass","_inherits","_createSuper","React","classNames","Track","createSlider","utils","_trimAlignValue","trimAlignValue","_ref","value","handle","bounds","props","allowCross","pushable","thershold","Number","valInRange","ensureValueInRange","valNotConflict","undefined","length","ensureValuePrecision","Range","_React$Component","_super","_this","call","onEnd","force","state","removeDocumentEvents","onAfterChange","getValue","setState","count","min","max","initialValue","Array","apply","map","defaultValue","v","i","recent","key","calcValueByPos","calcOffset","saveHandle","index","h","componentDidUpdate","prevProps","prevState","_this2","_this$props","onChange","currentValue","some","isValueOutOfRange","newValues","isNotControlled","controlledState","forEach","item","Object","keys","data","changedValue","onStart","position","onBeforeChange","startValue","startPosition","closestBound","getClosestBound","prevMovedHandleIndex","getBoundNeedMoving","prevValue","nextBounds","onMove","e","pauseEvent","oldValue","moveTo","onKeyboard","_this$props2","reverse","vertical","valueMutator","getKeyboardValueMutator","mutatedValue","isFromKeyboardEvent","Math","abs","_this$state","boundNeedMoving","isAtTheSamePoint","getLowerBound","getUpperBound","getPoints","_this$props3","marks","step","cache","internalPointsCache","pointsObject","point","points","parseFloat","sort","a","b","_this3","nextHandle","pushSurroundingHandles","indexOf","handlesRefs","focus","threshold","direction","diffToNext","pushHandle","amount","originalValue","pushHandleOnePoint","pointIndex","nextPointIndex","nextValue","_this$state2","render","_this4","_this$state3","_this$props4","prefixCls","included","disabled","handleGenerator","trackStyle","handleStyle","tabIndex","ariaLabelGroupForHandles","ariaLabelledByGroupForHandles","ariaValueTextFormatterGroupForHandles","offsets","handleClassName","concat","handles","_classNames","mergedTabIndex","dragging","className","offset","style","ref","ariaLabel","ariaLabelledBy","ariaValueTextFormatter","tracks","slice","_","_classNames2","trackClassName","createElement","getDerivedStateFromProps","every","Component","displayName","defaultProps"],"mappings":"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","sourcesContent":["import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\n\nvar _trimAlignValue = function trimAlignValue(_ref) {\n  var value = _ref.value,\n      handle = _ref.handle,\n      bounds = _ref.bounds,\n      props = _ref.props;\n  var allowCross = props.allowCross,\n      pushable = props.pushable;\n  var thershold = Number(pushable);\n  var valInRange = utils.ensureValueInRange(value, props);\n  var valNotConflict = valInRange;\n\n  if (!allowCross && handle != null && bounds !== undefined) {\n    if (handle > 0 && valInRange <= bounds[handle - 1] + thershold) {\n      valNotConflict = bounds[handle - 1] + thershold;\n    }\n\n    if (handle < bounds.length - 1 && valInRange >= bounds[handle + 1] - thershold) {\n      valNotConflict = bounds[handle + 1] - thershold;\n    }\n  }\n\n  return utils.ensureValuePrecision(valNotConflict, props);\n};\n\nvar Range = /*#__PURE__*/function (_React$Component) {\n  _inherits(Range, _React$Component);\n\n  var _super = _createSuper(Range);\n\n  function Range(props) {\n    var _this;\n\n    _classCallCheck(this, Range);\n\n    _this = _super.call(this, props);\n\n    _this.onEnd = function (force) {\n      var handle = _this.state.handle;\n\n      _this.removeDocumentEvents();\n\n      if (handle !== null || force) {\n        _this.props.onAfterChange(_this.getValue());\n      }\n\n      _this.setState({\n        handle: null\n      });\n    };\n\n    var count = props.count,\n        min = props.min,\n        max = props.max;\n    var initialValue = Array.apply(void 0, _toConsumableArray(Array(count + 1))).map(function () {\n      return min;\n    });\n    var defaultValue = 'defaultValue' in props ? props.defaultValue : initialValue;\n    var value = props.value !== undefined ? props.value : defaultValue;\n    var bounds = value.map(function (v, i) {\n      return _trimAlignValue({\n        value: v,\n        handle: i,\n        props: props\n      });\n    });\n    var recent = bounds[0] === max ? 0 : bounds.length - 1;\n    _this.state = {\n      handle: null,\n      recent: recent,\n      bounds: bounds\n    };\n    return _this;\n  }\n  /**\n   * [Legacy] Used for inherit other component.\n   * It's a bad code style which should be refactor.\n   */\n\n  /* eslint-disable @typescript-eslint/no-unused-vars, class-methods-use-this */\n\n\n  _createClass(Range, [{\n    key: \"calcValueByPos\",\n    value: function calcValueByPos(value) {\n      return 0;\n    }\n  }, {\n    key: \"calcOffset\",\n    value: function calcOffset(value) {\n      return 0;\n    }\n  }, {\n    key: \"saveHandle\",\n    value: function saveHandle(index, h) {}\n  }, {\n    key: \"removeDocumentEvents\",\n    value: function removeDocumentEvents() {}\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps, prevState) {\n      var _this2 = this;\n\n      var _this$props = this.props,\n          onChange = _this$props.onChange,\n          value = _this$props.value,\n          min = _this$props.min,\n          max = _this$props.max;\n\n      if (!('min' in this.props || 'max' in this.props)) {\n        return;\n      }\n\n      if (min === prevProps.min && max === prevProps.max) {\n        return;\n      }\n\n      var currentValue = value || prevState.bounds;\n\n      if (currentValue.some(function (v) {\n        return utils.isValueOutOfRange(v, _this2.props);\n      })) {\n        var newValues = currentValue.map(function (v) {\n          return utils.ensureValueInRange(v, _this2.props);\n        });\n        onChange(newValues);\n      }\n    }\n  }, {\n    key: \"onChange\",\n    value: function onChange(state) {\n      var props = this.props;\n      var isNotControlled = !('value' in props);\n\n      if (isNotControlled) {\n        this.setState(state);\n      } else {\n        var controlledState = {};\n        ['handle', 'recent'].forEach(function (item) {\n          if (state[item] !== undefined) {\n            controlledState[item] = state[item];\n          }\n        });\n\n        if (Object.keys(controlledState).length) {\n          this.setState(controlledState);\n        }\n      }\n\n      var data = _objectSpread(_objectSpread({}, this.state), state);\n\n      var changedValue = data.bounds;\n      props.onChange(changedValue);\n    }\n  }, {\n    key: \"onStart\",\n    value: function onStart(position) {\n      var props = this.props,\n          state = this.state;\n      var bounds = this.getValue();\n      props.onBeforeChange(bounds);\n      var value = this.calcValueByPos(position);\n      this.startValue = value;\n      this.startPosition = position;\n      var closestBound = this.getClosestBound(value);\n      this.prevMovedHandleIndex = this.getBoundNeedMoving(value, closestBound);\n      this.setState({\n        handle: this.prevMovedHandleIndex,\n        recent: this.prevMovedHandleIndex\n      });\n      var prevValue = bounds[this.prevMovedHandleIndex];\n      if (value === prevValue) return;\n\n      var nextBounds = _toConsumableArray(state.bounds);\n\n      nextBounds[this.prevMovedHandleIndex] = value;\n      this.onChange({\n        bounds: nextBounds\n      });\n    }\n  }, {\n    key: \"onMove\",\n    value: function onMove(e, position) {\n      utils.pauseEvent(e);\n      var state = this.state;\n      var value = this.calcValueByPos(position);\n      var oldValue = state.bounds[state.handle];\n      if (value === oldValue) return;\n      this.moveTo(value);\n    }\n  }, {\n    key: \"onKeyboard\",\n    value: function onKeyboard(e) {\n      var _this$props2 = this.props,\n          reverse = _this$props2.reverse,\n          vertical = _this$props2.vertical;\n      var valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);\n\n      if (valueMutator) {\n        utils.pauseEvent(e);\n        var state = this.state,\n            props = this.props;\n        var bounds = state.bounds,\n            handle = state.handle;\n        var oldValue = bounds[handle === null ? state.recent : handle];\n        var mutatedValue = valueMutator(oldValue, props);\n\n        var value = _trimAlignValue({\n          value: mutatedValue,\n          handle: handle,\n          bounds: state.bounds,\n          props: props\n        });\n\n        if (value === oldValue) return;\n        var isFromKeyboardEvent = true;\n        this.moveTo(value, isFromKeyboardEvent);\n      }\n    }\n  }, {\n    key: \"getValue\",\n    value: function getValue() {\n      return this.state.bounds;\n    }\n  }, {\n    key: \"getClosestBound\",\n    value: function getClosestBound(value) {\n      var bounds = this.state.bounds;\n      var closestBound = 0;\n\n      for (var i = 1; i < bounds.length - 1; i += 1) {\n        if (value >= bounds[i]) {\n          closestBound = i;\n        }\n      }\n\n      if (Math.abs(bounds[closestBound + 1] - value) < Math.abs(bounds[closestBound] - value)) {\n        closestBound += 1;\n      }\n\n      return closestBound;\n    }\n  }, {\n    key: \"getBoundNeedMoving\",\n    value: function getBoundNeedMoving(value, closestBound) {\n      var _this$state = this.state,\n          bounds = _this$state.bounds,\n          recent = _this$state.recent;\n      var boundNeedMoving = closestBound;\n      var isAtTheSamePoint = bounds[closestBound + 1] === bounds[closestBound];\n\n      if (isAtTheSamePoint && bounds[recent] === bounds[closestBound]) {\n        boundNeedMoving = recent;\n      }\n\n      if (isAtTheSamePoint && value !== bounds[closestBound + 1]) {\n        boundNeedMoving = value < bounds[closestBound + 1] ? closestBound : closestBound + 1;\n      }\n\n      return boundNeedMoving;\n    }\n  }, {\n    key: \"getLowerBound\",\n    value: function getLowerBound() {\n      return this.state.bounds[0];\n    }\n  }, {\n    key: \"getUpperBound\",\n    value: function getUpperBound() {\n      var bounds = this.state.bounds;\n      return bounds[bounds.length - 1];\n    }\n    /**\n     * Returns an array of possible slider points, taking into account both\n     * `marks` and `step`. The result is cached.\n     */\n\n  }, {\n    key: \"getPoints\",\n    value: function getPoints() {\n      var _this$props3 = this.props,\n          marks = _this$props3.marks,\n          step = _this$props3.step,\n          min = _this$props3.min,\n          max = _this$props3.max;\n      var cache = this.internalPointsCache;\n\n      if (!cache || cache.marks !== marks || cache.step !== step) {\n        var pointsObject = _objectSpread({}, marks);\n\n        if (step !== null) {\n          for (var point = min; point <= max; point += step) {\n            pointsObject[point] = point;\n          }\n        }\n\n        var points = Object.keys(pointsObject).map(parseFloat);\n        points.sort(function (a, b) {\n          return a - b;\n        });\n        this.internalPointsCache = {\n          marks: marks,\n          step: step,\n          points: points\n        };\n      }\n\n      return this.internalPointsCache.points;\n    }\n  }, {\n    key: \"moveTo\",\n    value: function moveTo(value, isFromKeyboardEvent) {\n      var _this3 = this;\n\n      var state = this.state,\n          props = this.props;\n\n      var nextBounds = _toConsumableArray(state.bounds);\n\n      var handle = state.handle === null ? state.recent : state.handle;\n      nextBounds[handle] = value;\n      var nextHandle = handle;\n\n      if (props.pushable !== false) {\n        this.pushSurroundingHandles(nextBounds, nextHandle);\n      } else if (props.allowCross) {\n        nextBounds.sort(function (a, b) {\n          return a - b;\n        });\n        nextHandle = nextBounds.indexOf(value);\n      }\n\n      this.onChange({\n        recent: nextHandle,\n        handle: nextHandle,\n        bounds: nextBounds\n      });\n\n      if (isFromKeyboardEvent) {\n        // known problem: because setState is async,\n        // so trigger focus will invoke handler's onEnd and another handler's onStart too early,\n        // cause onBeforeChange and onAfterChange receive wrong value.\n        // here use setState callback to hack,but not elegant\n        this.props.onAfterChange(nextBounds);\n        this.setState({}, function () {\n          _this3.handlesRefs[nextHandle].focus();\n        });\n        this.onEnd();\n      }\n    }\n  }, {\n    key: \"pushSurroundingHandles\",\n    value: function pushSurroundingHandles(bounds, handle) {\n      var value = bounds[handle];\n      var pushable = this.props.pushable;\n      var threshold = Number(pushable);\n      var direction = 0;\n\n      if (bounds[handle + 1] - value < threshold) {\n        direction = +1; // push to right\n      }\n\n      if (value - bounds[handle - 1] < threshold) {\n        direction = -1; // push to left\n      }\n\n      if (direction === 0) {\n        return;\n      }\n\n      var nextHandle = handle + direction;\n      var diffToNext = direction * (bounds[nextHandle] - value);\n\n      if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n        // revert to original value if pushing is impossible\n        // eslint-disable-next-line no-param-reassign\n        bounds[handle] = bounds[nextHandle] - direction * threshold;\n      }\n    }\n  }, {\n    key: \"pushHandle\",\n    value: function pushHandle(bounds, handle, direction, amount) {\n      var originalValue = bounds[handle];\n      var currentValue = bounds[handle];\n\n      while (direction * (currentValue - originalValue) < amount) {\n        if (!this.pushHandleOnePoint(bounds, handle, direction)) {\n          // can't push handle enough to create the needed `amount` gap, so we\n          // revert its position to the original value\n          // eslint-disable-next-line no-param-reassign\n          bounds[handle] = originalValue;\n          return false;\n        }\n\n        currentValue = bounds[handle];\n      } // the handle was pushed enough to create the needed `amount` gap\n\n\n      return true;\n    }\n  }, {\n    key: \"pushHandleOnePoint\",\n    value: function pushHandleOnePoint(bounds, handle, direction) {\n      var points = this.getPoints();\n      var pointIndex = points.indexOf(bounds[handle]);\n      var nextPointIndex = pointIndex + direction;\n\n      if (nextPointIndex >= points.length || nextPointIndex < 0) {\n        // reached the minimum or maximum available point, can't push anymore\n        return false;\n      }\n\n      var nextHandle = handle + direction;\n      var nextValue = points[nextPointIndex];\n      var pushable = this.props.pushable;\n      var threshold = Number(pushable);\n      var diffToNext = direction * (bounds[nextHandle] - nextValue);\n\n      if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n        // couldn't push next handle, so we won't push this one either\n        return false;\n      } // push the handle\n      // eslint-disable-next-line no-param-reassign\n\n\n      bounds[handle] = nextValue;\n      return true;\n    }\n  }, {\n    key: \"trimAlignValue\",\n    value: function trimAlignValue(value) {\n      var _this$state2 = this.state,\n          handle = _this$state2.handle,\n          bounds = _this$state2.bounds;\n      return _trimAlignValue({\n        value: value,\n        handle: handle,\n        bounds: bounds,\n        props: this.props\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this4 = this;\n\n      var _this$state3 = this.state,\n          handle = _this$state3.handle,\n          bounds = _this$state3.bounds;\n      var _this$props4 = this.props,\n          prefixCls = _this$props4.prefixCls,\n          vertical = _this$props4.vertical,\n          included = _this$props4.included,\n          disabled = _this$props4.disabled,\n          min = _this$props4.min,\n          max = _this$props4.max,\n          reverse = _this$props4.reverse,\n          handleGenerator = _this$props4.handle,\n          trackStyle = _this$props4.trackStyle,\n          handleStyle = _this$props4.handleStyle,\n          tabIndex = _this$props4.tabIndex,\n          ariaLabelGroupForHandles = _this$props4.ariaLabelGroupForHandles,\n          ariaLabelledByGroupForHandles = _this$props4.ariaLabelledByGroupForHandles,\n          ariaValueTextFormatterGroupForHandles = _this$props4.ariaValueTextFormatterGroupForHandles;\n      var offsets = bounds.map(function (v) {\n        return _this4.calcOffset(v);\n      });\n      var handleClassName = \"\".concat(prefixCls, \"-handle\");\n      var handles = bounds.map(function (v, i) {\n        var _classNames;\n\n        var mergedTabIndex = tabIndex[i] || 0;\n\n        if (disabled || tabIndex[i] === null) {\n          mergedTabIndex = null;\n        }\n\n        var dragging = handle === i;\n        return handleGenerator({\n          className: classNames((_classNames = {}, _defineProperty(_classNames, handleClassName, true), _defineProperty(_classNames, \"\".concat(handleClassName, \"-\").concat(i + 1), true), _defineProperty(_classNames, \"\".concat(handleClassName, \"-dragging\"), dragging), _classNames)),\n          prefixCls: prefixCls,\n          vertical: vertical,\n          dragging: dragging,\n          offset: offsets[i],\n          value: v,\n          index: i,\n          tabIndex: mergedTabIndex,\n          min: min,\n          max: max,\n          reverse: reverse,\n          disabled: disabled,\n          style: handleStyle[i],\n          ref: function ref(h) {\n            return _this4.saveHandle(i, h);\n          },\n          ariaLabel: ariaLabelGroupForHandles[i],\n          ariaLabelledBy: ariaLabelledByGroupForHandles[i],\n          ariaValueTextFormatter: ariaValueTextFormatterGroupForHandles[i]\n        });\n      });\n      var tracks = bounds.slice(0, -1).map(function (_, index) {\n        var _classNames2;\n\n        var i = index + 1;\n        var trackClassName = classNames((_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-track\"), true), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-track-\").concat(i), true), _classNames2));\n        return React.createElement(Track, {\n          className: trackClassName,\n          vertical: vertical,\n          reverse: reverse,\n          included: included,\n          offset: offsets[i - 1],\n          length: offsets[i] - offsets[i - 1],\n          style: trackStyle[index],\n          key: i\n        });\n      });\n      return {\n        tracks: tracks,\n        handles: handles\n      };\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(props, state) {\n      if (!('value' in props || 'min' in props || 'max' in props)) {\n        return null;\n      }\n\n      var value = props.value || state.bounds;\n      var nextBounds = value.map(function (v, i) {\n        return _trimAlignValue({\n          value: v,\n          handle: i,\n          bounds: state.bounds,\n          props: props\n        });\n      });\n\n      if (state.bounds.length === nextBounds.length) {\n        if (nextBounds.every(function (v, i) {\n          return v === state.bounds[i];\n        })) {\n          return null;\n        }\n      } else {\n        nextBounds = value.map(function (v, i) {\n          return _trimAlignValue({\n            value: v,\n            handle: i,\n            props: props\n          });\n        });\n      }\n\n      return _objectSpread(_objectSpread({}, state), {}, {\n        bounds: nextBounds\n      });\n    }\n  }]);\n\n  return Range;\n}(React.Component);\n/* eslint-enable */\n\n\nRange.displayName = 'Range';\nRange.defaultProps = {\n  count: 1,\n  allowCross: true,\n  pushable: false,\n  tabIndex: [],\n  ariaLabelGroupForHandles: [],\n  ariaLabelledByGroupForHandles: [],\n  ariaValueTextFormatterGroupForHandles: []\n};\nexport default createSlider(Range);"]},"metadata":{},"sourceType":"module"}