Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 

104 wiersze
3.5 KiB

  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
  6. var _defineProperty3 = _interopRequireDefault(_defineProperty2);
  7. var _extends4 = require('babel-runtime/helpers/extends');
  8. var _extends5 = _interopRequireDefault(_extends4);
  9. var _react = require('react');
  10. var _react2 = _interopRequireDefault(_react);
  11. var _propTypes = require('prop-types');
  12. var _propTypes2 = _interopRequireDefault(_propTypes);
  13. var _classnames = require('classnames');
  14. var _classnames2 = _interopRequireDefault(_classnames);
  15. var _warning = require('warning');
  16. var _warning2 = _interopRequireDefault(_warning);
  17. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
  18. var calcPoints = function calcPoints(vertical, marks, dots, step, min, max) {
  19. (0, _warning2['default'])(dots ? step > 0 : true, '`Slider[step]` should be a positive number in order to make Slider[dots] work.');
  20. var points = Object.keys(marks).map(parseFloat).sort(function (a, b) {
  21. return a - b;
  22. });
  23. if (dots && step) {
  24. for (var i = min; i <= max; i += step) {
  25. if (points.indexOf(i) === -1) {
  26. points.push(i);
  27. }
  28. }
  29. }
  30. return points;
  31. };
  32. var Steps = function Steps(_ref) {
  33. var prefixCls = _ref.prefixCls,
  34. vertical = _ref.vertical,
  35. reverse = _ref.reverse,
  36. marks = _ref.marks,
  37. dots = _ref.dots,
  38. step = _ref.step,
  39. included = _ref.included,
  40. lowerBound = _ref.lowerBound,
  41. upperBound = _ref.upperBound,
  42. max = _ref.max,
  43. min = _ref.min,
  44. dotStyle = _ref.dotStyle,
  45. activeDotStyle = _ref.activeDotStyle;
  46. var range = max - min;
  47. var elements = calcPoints(vertical, marks, dots, step, min, max).map(function (point) {
  48. var _classNames;
  49. var offset = Math.abs(point - min) / range * 100 + '%';
  50. var isActived = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;
  51. var style = vertical ? (0, _extends5['default'])({}, dotStyle, (0, _defineProperty3['default'])({}, reverse ? 'top' : 'bottom', offset)) : (0, _extends5['default'])({}, dotStyle, (0, _defineProperty3['default'])({}, reverse ? 'right' : 'left', offset));
  52. if (isActived) {
  53. style = (0, _extends5['default'])({}, style, activeDotStyle);
  54. }
  55. var pointClassName = (0, _classnames2['default'])((_classNames = {}, (0, _defineProperty3['default'])(_classNames, prefixCls + '-dot', true), (0, _defineProperty3['default'])(_classNames, prefixCls + '-dot-active', isActived), (0, _defineProperty3['default'])(_classNames, prefixCls + '-dot-reverse', reverse), _classNames));
  56. return _react2['default'].createElement('span', { className: pointClassName, style: style, key: point });
  57. });
  58. return _react2['default'].createElement(
  59. 'div',
  60. { className: prefixCls + '-step' },
  61. elements
  62. );
  63. };
  64. Steps.propTypes = {
  65. prefixCls: _propTypes2['default'].string,
  66. activeDotStyle: _propTypes2['default'].object,
  67. dotStyle: _propTypes2['default'].object,
  68. min: _propTypes2['default'].number,
  69. max: _propTypes2['default'].number,
  70. upperBound: _propTypes2['default'].number,
  71. lowerBound: _propTypes2['default'].number,
  72. included: _propTypes2['default'].bool,
  73. dots: _propTypes2['default'].bool,
  74. step: _propTypes2['default'].number,
  75. marks: _propTypes2['default'].object,
  76. vertical: _propTypes2['default'].bool,
  77. reverse: _propTypes2['default'].bool
  78. };
  79. exports['default'] = Steps;
  80. module.exports = exports['default'];