|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 |
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _extends2 = require('babel-runtime/helpers/extends');
-
- var _extends3 = _interopRequireDefault(_extends2);
-
- var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
-
- var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
-
- var _createClass2 = require('babel-runtime/helpers/createClass');
-
- var _createClass3 = _interopRequireDefault(_createClass2);
-
- var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
-
- var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
-
- var _inherits2 = require('babel-runtime/helpers/inherits');
-
- var _inherits3 = _interopRequireDefault(_inherits2);
-
- var _react = require('react');
-
- var _react2 = _interopRequireDefault(_react);
-
- var _propTypes = require('prop-types');
-
- var _propTypes2 = _interopRequireDefault(_propTypes);
-
- var _warning = require('warning');
-
- var _warning2 = _interopRequireDefault(_warning);
-
- var _Track = require('./common/Track');
-
- var _Track2 = _interopRequireDefault(_Track);
-
- var _createSlider = require('./common/createSlider');
-
- var _createSlider2 = _interopRequireDefault(_createSlider);
-
- var _utils = require('./utils');
-
- var utils = _interopRequireWildcard(_utils);
-
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
- /* eslint-disable react/prop-types */
- var Slider = function (_React$Component) {
- (0, _inherits3['default'])(Slider, _React$Component);
-
- function Slider(props) {
- (0, _classCallCheck3['default'])(this, Slider);
-
- var _this = (0, _possibleConstructorReturn3['default'])(this, (Slider.__proto__ || Object.getPrototypeOf(Slider)).call(this, props));
-
- _this.onEnd = function (force) {
- var dragging = _this.state.dragging;
-
- _this.removeDocumentEvents();
- if (dragging || force) {
- _this.props.onAfterChange(_this.getValue());
- }
- _this.setState({ dragging: false });
- };
-
- var defaultValue = props.defaultValue !== undefined ? props.defaultValue : props.min;
- var value = props.value !== undefined ? props.value : defaultValue;
-
- _this.state = {
- value: _this.trimAlignValue(value),
- dragging: false
- };
-
- (0, _warning2['default'])(!('minimumTrackStyle' in props), 'minimumTrackStyle will be deprecated, please use trackStyle instead.');
- (0, _warning2['default'])(!('maximumTrackStyle' in props), 'maximumTrackStyle will be deprecated, please use railStyle instead.');
- return _this;
- }
-
- (0, _createClass3['default'])(Slider, [{
- key: 'componentDidUpdate',
- value: function componentDidUpdate(prevProps, prevState) {
- if (!('value' in this.props || 'min' in this.props || 'max' in this.props)) {
- return;
- }
- var _props = this.props,
- value = _props.value,
- onChange = _props.onChange;
-
- var theValue = value !== undefined ? value : prevState.value;
- var nextValue = this.trimAlignValue(theValue, this.props);
- if (nextValue !== prevState.value) {
- // eslint-disable-next-line
- this.setState({ value: nextValue });
- if (utils.isValueOutOfRange(theValue, this.props)) {
- onChange(nextValue);
- }
- }
- }
- }, {
- key: 'onChange',
- value: function onChange(state) {
- var props = this.props;
- var isNotControlled = !('value' in props);
- var nextState = state.value > this.props.max ? (0, _extends3['default'])({}, state, { value: this.props.max }) : state;
- if (isNotControlled) {
- this.setState(nextState);
- }
-
- var changedValue = nextState.value;
- props.onChange(changedValue);
- }
- }, {
- key: 'onStart',
- value: function onStart(position) {
- this.setState({ dragging: true });
- var props = this.props;
- var prevValue = this.getValue();
- props.onBeforeChange(prevValue);
-
- var value = this.calcValueByPos(position);
- this.startValue = value;
- this.startPosition = position;
-
- if (value === prevValue) return;
-
- this.prevMovedHandleIndex = 0;
-
- this.onChange({ value: value });
- }
- }, {
- key: 'onMove',
- value: function onMove(e, position) {
- utils.pauseEvent(e);
- var oldValue = this.state.value;
-
- var value = this.calcValueByPos(position);
- if (value === oldValue) return;
-
- this.onChange({ value: value });
- }
- }, {
- key: 'onKeyboard',
- value: function onKeyboard(e) {
- var _props2 = this.props,
- reverse = _props2.reverse,
- vertical = _props2.vertical;
-
- var valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);
- if (valueMutator) {
- utils.pauseEvent(e);
- var state = this.state;
- var oldValue = state.value;
- var mutatedValue = valueMutator(oldValue, this.props);
- var value = this.trimAlignValue(mutatedValue);
- if (value === oldValue) return;
-
- this.onChange({ value: value });
- this.props.onAfterChange(value);
- this.onEnd();
- }
- }
- }, {
- key: 'getValue',
- value: function getValue() {
- return this.state.value;
- }
- }, {
- key: 'getLowerBound',
- value: function getLowerBound() {
- return this.props.min;
- }
- }, {
- key: 'getUpperBound',
- value: function getUpperBound() {
- return this.state.value;
- }
- }, {
- key: 'trimAlignValue',
- value: function trimAlignValue(v) {
- var nextProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- if (v === null) {
- return null;
- }
-
- var mergedProps = (0, _extends3['default'])({}, this.props, nextProps);
- var val = utils.ensureValueInRange(v, mergedProps);
- return utils.ensureValuePrecision(val, mergedProps);
- }
- }, {
- key: 'render',
- value: function render() {
- var _this2 = this;
-
- var _props3 = this.props,
- prefixCls = _props3.prefixCls,
- vertical = _props3.vertical,
- included = _props3.included,
- disabled = _props3.disabled,
- minimumTrackStyle = _props3.minimumTrackStyle,
- trackStyle = _props3.trackStyle,
- handleStyle = _props3.handleStyle,
- tabIndex = _props3.tabIndex,
- min = _props3.min,
- max = _props3.max,
- reverse = _props3.reverse,
- handleGenerator = _props3.handle;
- var _state = this.state,
- value = _state.value,
- dragging = _state.dragging;
-
- var offset = this.calcOffset(value);
- var handle = handleGenerator({
- className: prefixCls + '-handle',
- prefixCls: prefixCls,
- vertical: vertical,
- offset: offset,
- value: value,
- dragging: dragging,
- disabled: disabled,
- min: min,
- max: max,
- reverse: reverse,
- index: 0,
- tabIndex: tabIndex,
- style: handleStyle[0] || handleStyle,
- ref: function ref(h) {
- return _this2.saveHandle(0, h);
- }
- });
-
- var _trackStyle = trackStyle[0] || trackStyle;
- var track = _react2['default'].createElement(_Track2['default'], {
- className: prefixCls + '-track',
- vertical: vertical,
- included: included,
- offset: 0,
- reverse: reverse,
- length: offset,
- style: (0, _extends3['default'])({}, minimumTrackStyle, _trackStyle)
- });
-
- return { tracks: track, handles: handle };
- }
- }]);
- return Slider;
- }(_react2['default'].Component);
-
- Slider.propTypes = {
- defaultValue: _propTypes2['default'].number,
- value: _propTypes2['default'].number,
- disabled: _propTypes2['default'].bool,
- autoFocus: _propTypes2['default'].bool,
- tabIndex: _propTypes2['default'].number,
- reverse: _propTypes2['default'].bool,
- min: _propTypes2['default'].number,
- max: _propTypes2['default'].number
- };
- exports['default'] = (0, _createSlider2['default'])(Slider);
- module.exports = exports['default'];
|