tinper-bee
Version:
React Components living for enterprise-class pc backend application
1,369 lines (1,024 loc) • 292 kB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory(require("react"), require("prop-types"), require("react-dom"));
else if(typeof define === 'function' && define.amd)
define(["react", "prop-types", "react-dom"], factory);
else {
var a = typeof exports === 'object' ? factory(require("react"), require("prop-types"), require("react-dom")) : factory(root["React"], root["PropTypes"], root["ReactDOM"]);
for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
}
})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_3__) {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 1550);
/******/ })
/************************************************************************/
/******/ ({
/***/ 0:
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_0__;
/***/ }),
/***/ 1:
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_1__;
/***/ }),
/***/ 111:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = getWindow;
function getWindow(node) {
return node === node.window ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false;
}
module.exports = exports["default"];
/***/ }),
/***/ 112:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = camelize;
var rHyphen = /-(.)/g;
function camelize(string) {
return string.replace(rHyphen, function (_, chr) {
return chr.toUpperCase();
});
}
module.exports = exports["default"];
/***/ }),
/***/ 113:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = hyphenateStyleName;
var _hyphenate = __webpack_require__(114);
var _hyphenate2 = _interopRequireDefault(_hyphenate);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var msPattern = /^ms-/; /**
* Copyright 2013-2014, Facebook, Inc.
* All rights reserved.
* https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js
*/
function hyphenateStyleName(string) {
return (0, _hyphenate2.default)(string).replace(msPattern, '-ms-');
}
module.exports = exports['default'];
/***/ }),
/***/ 114:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = hyphenate;
var rUpper = /([A-Z])/g;
function hyphenate(string) {
return string.replace(rUpper, '-$1').toLowerCase();
}
module.exports = exports['default'];
/***/ }),
/***/ 115:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = _getComputedStyle;
var _camelizeStyle = __webpack_require__(70);
var _camelizeStyle2 = _interopRequireDefault(_camelizeStyle);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var rposition = /^(top|right|bottom|left)$/;
var rnumnonpx = /^([+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/i;
function _getComputedStyle(node) {
if (!node) throw new TypeError('No Element passed to `getComputedStyle()`');
var doc = node.ownerDocument;
return 'defaultView' in doc ? doc.defaultView.opener ? node.ownerDocument.defaultView.getComputedStyle(node, null) : window.getComputedStyle(node, null) : {
//ie 8 "magic" from: https://github.com/jquery/jquery/blob/1.11-stable/src/css/curCSS.js#L72
getPropertyValue: function getPropertyValue(prop) {
var style = node.style;
prop = (0, _camelizeStyle2.default)(prop);
if (prop == 'float') prop = 'styleFloat';
var current = node.currentStyle[prop] || null;
if (current == null && style && style[prop]) current = style[prop];
if (rnumnonpx.test(current) && !rposition.test(prop)) {
// Remember the original values
var left = style.left;
var runStyle = node.runtimeStyle;
var rsLeft = runStyle && runStyle.left;
// Put in the new values to get a computed value out
if (rsLeft) runStyle.left = node.currentStyle.left;
style.left = prop === 'fontSize' ? '1em' : current;
current = style.pixelLeft + 'px';
// Revert the changed values
style.left = left;
if (rsLeft) runStyle.left = rsLeft;
}
return current;
}
};
}
module.exports = exports['default'];
/***/ }),
/***/ 116:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = removeStyle;
function removeStyle(node, key) {
return 'removeProperty' in node.style ? node.style.removeProperty(key) : node.style.removeAttribute(key);
}
module.exports = exports['default'];
/***/ }),
/***/ 117:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = isTransform;
var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;
function isTransform(property) {
return !!(property && supportedTransforms.test(property));
}
module.exports = exports["default"];
/***/ }),
/***/ 1550:
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(1551);
/***/ }),
/***/ 1551:
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(1552);
module.exports = __webpack_require__(1553);
/***/ }),
/***/ 1552:
/***/ (function(module, exports) {
// removed by extract-text-webpack-plugin
/***/ }),
/***/ 1553:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _Slider = __webpack_require__(1554);
var _Slider2 = _interopRequireDefault(_Slider);
var _Range = __webpack_require__(1558);
var _Range2 = _interopRequireDefault(_Range);
var _Handle = __webpack_require__(923);
var _Handle2 = _interopRequireDefault(_Handle);
var _createSliderWithTooltip = __webpack_require__(1560);
var _createSliderWithTooltip2 = _interopRequireDefault(_createSliderWithTooltip);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
_Slider2["default"].Range = _Range2["default"];
_Slider2["default"].Handle = _Handle2["default"];
_Slider2["default"].createSliderWithTooltip = _createSliderWithTooltip2["default"];
exports["default"] = _Slider2["default"];
module.exports = exports['default'];
/***/ }),
/***/ 1554:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _propTypes = __webpack_require__(1);
var _propTypes2 = _interopRequireDefault(_propTypes);
var _warning = __webpack_require__(27);
var _warning2 = _interopRequireDefault(_warning);
var _Track = __webpack_require__(988);
var _Track2 = _interopRequireDefault(_Track);
var _createSlider = __webpack_require__(989);
var _createSlider2 = _interopRequireDefault(_createSlider);
var _utils = __webpack_require__(924);
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 }; }
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /**
* This source code is quoted from rc-slider.
* homepage: https://github.com/react-component/slider
*/
var Slider = function (_React$Component) {
_inherits(Slider, _React$Component);
function Slider(props) {
_classCallCheck(this, Slider);
var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));
_this.onEnd = function () {
_this.setState({ dragging: false });
_this.removeDocumentEvents();
_this.props.onAfterChange(_this.getValue());
};
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
};
if (process.env.NODE_ENV !== 'production') {
(0, _warning2["default"])(!('minimumTrackStyle' in props), 'minimumTrackStyle will be deprecate, please use trackStyle instead.');
(0, _warning2["default"])(!('maximumTrackStyle' in props), 'maximumTrackStyle will be deprecate, please use railStyle instead.');
}
return _this;
}
Slider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
//只有改变value或者min或者max的时候才会再次渲染
if (!('value' in nextProps || 'min' in nextProps || 'max' in nextProps)) return;
var prevValue = this.state.value;
var value = nextProps.value !== undefined ? nextProps.value : prevValue;
var nextValue = this.trimAlignValue(value, nextProps);
if (nextValue === prevValue) return;
this.setState({ value: nextValue });
if (utils.isValueOutOfRange(value, nextProps)) {
this.props.onChange(nextValue);
}
};
Slider.prototype.onChange = function onChange(state) {
var props = this.props;
var isNotControlled = !('value' in props);
if (isNotControlled) {
this.setState(state);
}
//console.log("改变之后的:"+state.value);
var changedValue = state.value;
props.onChange(changedValue);
};
Slider.prototype.onStart = function onStart(position) {
//position = getMousePosition 或者 handlePosition
//1.getValue:return this.state.value
//2.onBeforeChange:输出开始变化之前的状态
//3.calcValueByPos:这个是在createSlider.jsx,超级多的方法混合在一起
//3.1 getSliderStart:slider的top或者left(主持或者水平), pixelOffset = position - this.getSliderStart()得到mouseposition 或者 handlePosition - slider的top(或者left)
//3.2 this.calcValue(pixelOffset):目的得到value,跟ratio有关
//3.3 this.trimAlignValue(this.calcValue(pixelOffset)):在slider.jsx中1.ensureValueInRange 先算出是否可取 v 或者 min 或者 max 2.ensureValuePrecision:来获取真的前进数值closest数值
//4.onChange:得到改变之后的值,setState{value}的值并且调用props.onChange
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.onChange({ value: value });
};
Slider.prototype.onMove = 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 });
};
Slider.prototype.onKeyboard = function onKeyboard(e) {
var valueMutator = utils.getKeyboardValueMutator(e);
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 });
}
};
Slider.prototype.getValue = function getValue() {
return this.state.value;
};
Slider.prototype.getLowerBound = function getLowerBound() {
return this.props.min;
};
Slider.prototype.getUpperBound = function getUpperBound() {
return this.state.value;
};
Slider.prototype.trimAlignValue = function trimAlignValue(v) {
var nextProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var mergedProps = _extends({}, this.props, nextProps);
var val = utils.ensureValueInRange(v, mergedProps);
return utils.ensureValuePrecision(val, mergedProps);
};
Slider.prototype.render = function render() {
var _this2 = this;
var _props = this.props,
prefixCls = _props.prefixCls,
vertical = _props.vertical,
included = _props.included,
disabled = _props.disabled,
minimumTrackStyle = _props.minimumTrackStyle,
trackStyle = _props.trackStyle,
handleStyle = _props.handleStyle,
min = _props.min,
max = _props.max,
handleGenerator = _props.handle;
var _state = this.state,
value = _state.value,
dragging = _state.dragging;
var offset = this.calcOffset(value); //按照百分制
//hanleGenerator:进入的是createSlider.jsx的 handle({ index, ...restProps })
//{delete restProps.dragging; return <Handle {...restProps} key={index} />;},
var handle = handleGenerator({
className: prefixCls + '-handle',
vertical: vertical,
offset: offset,
value: value,
dragging: dragging,
disabled: disabled,
min: min,
max: max,
style: handleStyle[0] || handleStyle,
ref: function ref(h) {
return _this2.saveHandle(0, h);
} //当 WrappedComponent 被渲染后,ref 上的回调函数将会执行
});
var _trackStyle = trackStyle[0] || trackStyle;
var track = _react2["default"].createElement(_Track2["default"], {
className: prefixCls + '-track',
vertical: vertical,
included: included,
offset: 0,
length: offset,
style: _extends({}, 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
};
exports["default"] = (0, _createSlider2["default"])(Slider);
module.exports = exports['default'];
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))
/***/ }),
/***/ 1555:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/**
* This source code is quoted from rc-slider.
* homepage: https://github.com/react-component/slider
*/
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = addEventListenerWrap;
var _addDomEventListener = __webpack_require__(24);
var _addDomEventListener2 = _interopRequireDefault(_addDomEventListener);
var _reactDom = __webpack_require__(3);
var _reactDom2 = _interopRequireDefault(_reactDom);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : { 'default': obj };
}
function addEventListenerWrap(target, eventType, cb) {
/* eslint camelcase: 2 */
var callback = _reactDom2['default'].unstable_batchedUpdates ? function run(e) {
_reactDom2['default'].unstable_batchedUpdates(cb, e);
} : cb;
return (0, _addDomEventListener2['default'])(target, eventType, callback);
}
module.exports = exports['default'];
/***/ }),
/***/ 1556:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /**
* This source code is quoted from rc-slider.
* homepage: https://github.com/react-component/slider
*/
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _classnames = __webpack_require__(4);
var _classnames2 = _interopRequireDefault(_classnames);
var _warning = __webpack_require__(27);
var _warning2 = _interopRequireDefault(_warning);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var calcPoints = function calcPoints(vertical, marks, dots, step, min, max) {
(0, _warning2["default"])(dots ? step > 0 : true, '`Slider[step]` should be a positive number in order to make Slider[dots] work.');
var points = Object.keys(marks).map(parseFloat);
if (dots) {
for (var i = min; i <= max; i = i + step) {
if (points.indexOf(i) >= 0) continue;
points.push(i);
}
}
return points;
};
var Steps = function Steps(_ref) {
var prefixCls = _ref.prefixCls,
vertical = _ref.vertical,
marks = _ref.marks,
dots = _ref.dots,
step = _ref.step,
included = _ref.included,
lowerBound = _ref.lowerBound,
upperBound = _ref.upperBound,
max = _ref.max,
min = _ref.min,
dotStyle = _ref.dotStyle,
activeDotStyle = _ref.activeDotStyle;
var range = max - min;
var elements = calcPoints(vertical, marks, dots, step, min, max).map(function (point) {
var _classNames;
var offset = Math.abs(point - min) / range * 100 + '%';
var isActived = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;
var style = vertical ? _extends({ bottom: offset }, dotStyle) : _extends({ left: offset }, dotStyle);
if (isActived) {
style = _extends({}, style, activeDotStyle);
}
var pointClassName = (0, _classnames2["default"])((_classNames = {}, _defineProperty(_classNames, prefixCls + '-dot', true), _defineProperty(_classNames, prefixCls + '-dot-active', isActived), _classNames));
return _react2["default"].createElement('span', { className: pointClassName, style: style, key: point });
});
return _react2["default"].createElement(
'div',
{ className: prefixCls + '-step' },
elements
);
};
exports["default"] = Steps;
module.exports = exports['default'];
/***/ }),
/***/ 1557:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _classnames = __webpack_require__(4);
var _classnames2 = _interopRequireDefault(_classnames);
var _propTypes = __webpack_require__(1);
var _propTypes2 = _interopRequireDefault(_propTypes);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /**
* This source code is quoted from rc-slider.
* homepage: https://github.com/react-component/slider
*/
var Marks = function Marks(_ref) {
var className = _ref.className,
vertical = _ref.vertical,
marks = _ref.marks,
included = _ref.included,
upperBound = _ref.upperBound,
lowerBound = _ref.lowerBound,
max = _ref.max,
min = _ref.min;
var marksKeys = Object.keys(marks);
var marksCount = marksKeys.length;
var unit = marksCount > 1 ? 100 / (marksCount - 1) : 100;
var markWidth = unit * 0.9;
var range = max - min;
var elements = marksKeys.map(parseFloat).sort(function (a, b) {
return a - b;
}).map(function (point) {
var _classNames;
var isActive = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;
var markClassName = (0, _classnames2["default"])((_classNames = {}, _defineProperty(_classNames, className + '-text', true), _defineProperty(_classNames, className + '-text-active', isActive), _classNames));
var bottomStyle = {
marginBottom: '-50%',
bottom: (point - min) / range * 100 + '%'
};
var leftStyle = {
width: markWidth + '%',
marginLeft: -markWidth / 2 + '%',
left: (point - min) / range * 100 + '%'
};
var style = vertical ? bottomStyle : leftStyle;
var markPoint = marks[point];
var markPointIsObject = (typeof markPoint === 'undefined' ? 'undefined' : _typeof(markPoint)) === 'object' && !_react2["default"].isValidElement(markPoint);
var markLabel = markPointIsObject ? markPoint.label : markPoint;
var markStyle = markPointIsObject ? _extends({}, style, markPoint.style) : style;
return _react2["default"].createElement(
'span',
{
className: markClassName,
style: markStyle,
key: point
},
markLabel
);
});
return _react2["default"].createElement(
'div',
{ className: className },
elements
);
};
exports["default"] = Marks;
module.exports = exports['default'];
/***/ }),
/***/ 1558:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _propTypes = __webpack_require__(1);
var _propTypes2 = _interopRequireDefault(_propTypes);
var _classnames = __webpack_require__(4);
var _classnames2 = _interopRequireDefault(_classnames);
var _shallowequal = __webpack_require__(1559);
var _shallowequal2 = _interopRequireDefault(_shallowequal);
var _warning = __webpack_require__(27);
var _warning2 = _interopRequireDefault(_warning);
var _Track = __webpack_require__(988);
var _Track2 = _interopRequireDefault(_Track);
var _createSlider = __webpack_require__(989);
var _createSlider2 = _interopRequireDefault(_createSlider);
var _utils = __webpack_require__(924);
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 }; }
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } /**
* This source code is quoted from rc-slider.
* homepage: https://github.com/react-component/slider
*/
var Range = function (_React$Component) {
_inherits(Range, _React$Component);
function Range(props) {
_classCallCheck(this, Range);
var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));
//1.initialValue:初始化,数组值都是min
//2.defaultValue,value:接收到的数组,都没有初始化 defaultValue = [0,0] = value ,不然各自等于props中的对应值
//3.trimAlignValue():ensureValueInRange:确定在范围里;ensureValueNotConflict:能否交叉;ensureValuePrecision:返回的小数点精确度
//4.bounds:=value
//5.recent:理解成最近操作过的坐标,默认数组最后一个点,但是handle与recent在onstart后一致
_this.onEnd = function () {
_this.setState({ handle: null });
_this.removeDocumentEvents();
_this.props.onAfterChange(_this.getValue());
};
var count = props.count,
min = props.min,
max = props.max;
var initialValue = Array.apply(null, Array(count + 1)).map(function () {
return min;
});
var defaultValue = 'defaultValue' in props ? props.defaultValue : initialValue;
var value = props.value !== undefined ? props.value : defaultValue;
var bounds = value.map(function (v) {
return _this.trimAlignValue(v);
});
var recent = bounds[0] === max ? 0 : bounds.length - 1;
_this.state = {
handle: null,
recent: recent,
bounds: bounds
};
return _this;
}
Range.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
var _this2 = this;
if (!('value' in nextProps || 'min' in nextProps || 'max' in nextProps)) return;
if (this.props.min === nextProps.min && this.props.max === nextProps.max && (0, _shallowequal2["default"])(this.props.value, nextProps.value)) {
return;
}
var bounds = this.state.bounds;
var value = nextProps.value || bounds;
var nextBounds = value.map(function (v) {
return _this2.trimAlignValue(v, nextProps);
});
if (nextBounds.length === bounds.length && nextBounds.every(function (v, i) {
return v === bounds[i];
})) return;
this.setState({ bounds: nextBounds });
if (bounds.some(function (v) {
return utils.isValueOutOfRange(v, nextProps);
})) {
this.props.onChange(nextBounds);
}
};
Range.prototype.onChange = function onChange(state) {
var props = this.props;
var isNotControlled = !('value' in props);
if (isNotControlled) {
this.setState(state);
} else if (state.handle !== undefined) {
this.setState({ handle: state.handle });
}
var data = _extends({}, this.state, state);
var changedValue = data.bounds;
props.onChange(changedValue);
};
Range.prototype.onStart = function onStart(position) {
//1.getValue():this.state.bounds
//2.calcValueByPos():同slider.js
//3.getClosestBound():vs utils.jsx中的getClosestPoints(),返回closestBound为数组坐标
//4.getBoundNeedMoving():一般返回closestBound;特殊情况就是closeBound=0的情况1确实是0,2.两点重合来判断点落在左侧还是右侧
var props = this.props;
var state = this.state;
var bounds = this.getValue();
props.onBeforeChange(bounds);
var value = this.calcValueByPos(position);
this.startValue = value;
this.startPosition = position;
var closestBound = this.getClosestBound(value);
var boundNeedMoving = this.getBoundNeedMoving(value, closestBound);
this.setState({
handle: boundNeedMoving,
recent: boundNeedMoving
});
console.log('handle是:' + boundNeedMoving + "recent是:" + boundNeedMoving);
var prevValue = bounds[boundNeedMoving];
if (value === prevValue) return;
var nextBounds = [].concat(_toConsumableArray(state.bounds));
nextBounds[boundNeedMoving] = value;
this.onChange({ bounds: nextBounds });
};
Range.prototype.onMove = function onMove(e, position) {
utils.pauseEvent(e);
var props = this.props;
var state = this.state;
var value = this.calcValueByPos(position);
var oldValue = state.bounds[state.handle];
if (value === oldValue) return;
var nextBounds = [].concat(_toConsumableArray(state.bounds));
nextBounds[state.handle] = value;
var nextHandle = state.handle;
if (props.pushable !== false) {
var originalValue = state.bounds[nextHandle];
this.pushSurroundingHandles(nextBounds, nextHandle, originalValue);
} else if (props.allowCross) {
nextBounds.sort(function (a, b) {
return a - b;
});
nextHandle = nextBounds.indexOf(value);
}
this.onChange({
handle: nextHandle,
bounds: nextBounds
});
};
Range.prototype.onKeyboard = function onKeyboard() {
(0, _warning2["default"])(true, 'Keyboard support is not yet supported for ranges.');
};
Range.prototype.getValue = function getValue() {
return this.state.bounds;
};
Range.prototype.getClosestBound = function getClosestBound(value) {
//注意都是从0开始算,因此handle会重新计算,哪怕当初操作1,再次操作可能会变成0
var bounds = this.state.bounds;
var closestBound = 0;
for (var i = 1; i < bounds.length - 1; ++i) {
if (value > bounds[i]) {
closestBound = i;
}
}
if (Math.abs(bounds[closestBound + 1] - value) < Math.abs(bounds[closestBound] - value)) {
closestBound = closestBound + 1;
}
return closestBound;
};
Range.prototype.getBoundNeedMoving = function getBoundNeedMoving(value, closestBound) {
var _state = this.state,
bounds = _state.bounds,
recent = _state.recent;
var boundNeedMoving = closestBound;
var isAtTheSamePoint = bounds[closestBound + 1] === bounds[closestBound];
if (isAtTheSamePoint) {
boundNeedMoving = recent;
}
if (isAtTheSamePoint && value !== bounds[closestBound + 1]) {
boundNeedMoving = value < bounds[closestBound + 1] ? closestBound : closestBound + 1;
}
return boundNeedMoving;
};
Range.prototype.getLowerBound = function getLowerBound() {
return this.state.bounds[0];
};
Range.prototype.getUpperBound = function getUpperBound() {
var bounds = this.state.bounds;
return bounds[bounds.length - 1];
};
/**
* Returns an array of possible slider points, taking into account both
* `marks` and `step`. The result is cached.
*/
Range.prototype.getPoints = function getPoints() {
var _props = this.props,
marks = _props.marks,
step = _props.step,
min = _props.min,
max = _props.max;
var cache = this._getPointsCache;
if (!cache || cache.marks !== marks || cache.step !== step) {
var pointsObject = _extends({}, marks);
if (step !== null) {
for (var point = min; point <= max; point += step) {
pointsObject[point] = point;
}
}
var points = Object.keys(pointsObject).map(parseFloat);
points.sort(function (a, b) {
return a - b;
});
this._getPointsCache = { marks: marks, step: step, points: points };
}
return this._getPointsCache.points;
};
Range.prototype.pushSurroundingHandles = function pushSurroundingHandles(bounds, handle, originalValue) {
var threshold = this.props.pushable;
var value = bounds[handle];
var direction = 0;
if (bounds[handle + 1] - value < threshold) {
direction = +1; // push to right
}
if (value - bounds[handle - 1] < threshold) {
direction = -1; // push to left
}
if (direction === 0) {
return;
}
var nextHandle = handle + direction;
var diffToNext = direction * (bounds[nextHandle] - value);
if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {
// revert to original value if pushing is impossible
bounds[handle] = originalValue;
}
};
Range.prototype.pushHandle = function pushHandle(bounds, handle, direction, amount) {
var originalValue = bounds[handle];
var currentValue = bounds[handle];
while (direction * (currentValue - originalValue) < amount) {
if (!this.pushHandleOnePoint(bounds, handle, direction)) {
// can't push handle enough to create the needed `amount` gap, so we
// revert its position to the original value
bounds[handle] = originalValue;
return false;
}
currentValue = bounds[handle];
}
// the handle was pushed enough to create the needed `amount` gap
return true;
};
Range.prototype.pushHandleOnePoint = function pushHandleOnePoint(bounds, handle, direction) {
var points = this.getPoints();
var pointIndex = points.indexOf(bounds[handle]);
var nextPointIndex = pointIndex + direction;
if (nextPointIndex >= points.length || nextPointIndex < 0) {
// reached the minimum or maximum available point, can't push anymore
return false;
}
var nextHandle = handle + direction;
var nextValue = points[nextPointIndex];
var threshold = this.props.pushable;
var diffToNext = direction * (bounds[nextHandle] - nextValue);
if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {
// couldn't push next handle, so we won't push this one either
return false;
}
// push the handle
bounds[handle] = nextValue;
return true;
};
Range.prototype.trimAlignValue = function trimAlignValue(v) {
var nextProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var mergedProps = _extends({}, this.props, nextProps);
var valInRange = utils.ensureValueInRange(v, mergedProps);
var valNotConflict = this.ensureValueNotConflict(valInRange, mergedProps);
return utils.ensureValuePrecision(valNotConflict, mergedProps);
};
Range.prototype.ensureValueNotConflict = function ensureValueNotConflict(val, _ref) {
var allowCross = _ref.allowCross;
var state = this.state || {};
var handle = state.handle,
bounds = state.bounds;
/* eslint-disable eqeqeq */
if (!allowCross && handle != null) {
//最右边的点只能执行这个,因为handle=bounds.length-1;中间点也走这个判断
if (handle > 0 && val <= bounds[handle - 1]) {
console.log("ensureValueNotConflict的handle" + handle + "ensureValueNotConflict的返回数据" + bounds[handle - 1]);
return bounds[handle - 1];
}
//最左边的点只能执行这个,因为handle=0;中间点也走这个判断
if (handle < bounds.length - 1 && val >= bounds[handle + 1]) {
console.log("ensureValueNotConflict的handle" + handle + "ensureValueNotConflict的返回数据" + bounds[handle + 1]);
return bounds[handle + 1];
}
}
/* eslint-enable eqeqeq */
return val;
};
Range.prototype.render = function render() {
var _this3 = this;
var _state2 = this.state,
handle = _state2.handle,
bounds = _state2.bounds;
var _props2 = this.props,
prefixCls = _props2.prefixCls,
vertical = _props2.vertical,
included = _props2.included,
disabled = _props2.disabled,
min = _props2.min,
max = _props2.max,
handleGenerator = _props2.handle,
trackStyle = _props2.trackStyle,
handleStyle = _props2.handleStyle;
var offsets = bounds.map(function (v) {
return _this3.calcOffset(v);
});
var handleClassName = prefixCls + '-handle';
var handles = bounds.map(function (v, i) {
var _classNames;
return handleGenerator({
className: (0, _classnames2["default"])((_classNames = {}, _defineProperty(_classNames, handleClassName, true), _defineProperty(_classNames, handleClassName + '-' + (i + 1), true), _classNames)),
vertical: vertical,
offset: offsets[i],
value: v,
dragging: handle === i,
index: i,
min: min,
max: max,
disabled: disabled,
style: handleStyle[i],
ref: function ref(h) {
return _this3.saveHandle(i, h);
}
});
});
var tracks = bounds.slice(0, -1).map(function (_, index) {
var _classNames2;
var i = index + 1;
var trackClassName = (0, _classnames2["default"])((_classNames2 = {}, _defineProperty(_classNames2, prefixCls + '-track', true), _defineProperty(_classNames2, prefixCls + '-track-' + i, true), _classNames2));
return _react2["default"].createElement(_Track2["default"], {
className: trackClassName,
vertical: vertical,
included: included,
offset: offsets[i - 1],
length: offsets[i] - offsets[i - 1],
style: trackStyle[index],
key: i
});
});
return { tracks: tracks, handles: handles };
};
return Range;
}(_react2["default"].Component);
Range.displayName = 'Range';
Range.propTypes = {
defaultValue: _propTypes2["default"].arrayOf(_propTypes2["default"].number),
value: _propTypes2["default"].arrayOf(_propTypes2["default"].number),
disabled: _propTypes2["default"].bool,
count: _propTypes2["default"].number,
pushable: _propTypes2["default"].oneOfType([_propTypes2["default"].bool, _propTypes2["default"].number]),
allowCross: _propTypes2["default"].bool
};
Range.defaultProps = {
count: 1,
allowCross: true,
pushable: false
};
exports["default"] = (0, _createSlider2["default"])(Range);
module.exports = exports['default'];
/***/ }),
/***/ 1559:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
/**
* This source code is quoted from rc-slider.
* homepage: https://github.com/react-component/slider
*/
module.exports = function shallowEqual(objA, objB, compare, compareContext) {
var ret = compare ? compare.call(compareContext, objA, objB) : void 0;
if (ret !== void 0) {
return !!ret;
}
if (objA === objB) {
return true;
}
if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || !objA || (typeof objB === 'undefined' ? 'undefined' : _typeof(objB)) !== 'object' || !objB) {
return false;
}
var keysA = Object.keys(objA);
var keysB = Object.keys(objB);
if (keysA.length !== keysB.length) {
return false;
}
var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);
// Test for A's keys different from B.
for (var idx = 0; idx < keysA.length; idx++) {
var key = keysA[idx];
if (!bHasOwnProperty(key)) {
return false;
}
var valueA = objA[key];
var valueB = objB[key];
ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;
if (ret === false || ret === void 0 && valueA !== valueB) {
return false;
}
}
return true;
};
/***/ }),
/***/ 1560:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
exports["default"] = createSliderWithTooltip;
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _propTypes = __webpack_require__(1);
var _propTypes2 = _interopRequireDefault(_propTypes);
var _beeTooltip = __webpack_require__(1561);
var _beeTooltip2 = _interopRequireDefault(_beeTooltip);
var _Handle = __webpack_require__(923);
var _Handle2 = _interopRequireDefault(_Handle);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expressio