Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

3 лет назад
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
  6. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  7. var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
  8. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  9. var _createClass2 = require('babel-runtime/helpers/createClass');
  10. var _createClass3 = _interopRequireDefault(_createClass2);
  11. var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
  12. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  13. var _inherits2 = require('babel-runtime/helpers/inherits');
  14. var _inherits3 = _interopRequireDefault(_inherits2);
  15. var _simpleAssign = require('simple-assign');
  16. var _simpleAssign2 = _interopRequireDefault(_simpleAssign);
  17. var _react = require('react');
  18. var _react2 = _interopRequireDefault(_react);
  19. var _propTypes = require('prop-types');
  20. var _propTypes2 = _interopRequireDefault(_propTypes);
  21. var _StepConnector = require('./StepConnector');
  22. var _StepConnector2 = _interopRequireDefault(_StepConnector);
  23. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  24. var getStyles = function getStyles(props) {
  25. var orientation = props.orientation;
  26. return {
  27. root: {
  28. display: 'flex',
  29. flexDirection: orientation === 'horizontal' ? 'row' : 'column',
  30. alignContent: 'center',
  31. alignItems: orientation === 'horizontal' ? 'center' : 'stretch',
  32. justifyContent: 'space-between'
  33. }
  34. };
  35. };
  36. var Stepper = function (_Component) {
  37. (0, _inherits3.default)(Stepper, _Component);
  38. function Stepper() {
  39. (0, _classCallCheck3.default)(this, Stepper);
  40. return (0, _possibleConstructorReturn3.default)(this, (Stepper.__proto__ || (0, _getPrototypeOf2.default)(Stepper)).apply(this, arguments));
  41. }
  42. (0, _createClass3.default)(Stepper, [{
  43. key: 'getChildContext',
  44. value: function getChildContext() {
  45. var orientation = this.props.orientation;
  46. return { stepper: { orientation: orientation } };
  47. }
  48. }, {
  49. key: 'render',
  50. value: function render() {
  51. var _props = this.props,
  52. activeStep = _props.activeStep,
  53. children = _props.children,
  54. connector = _props.connector,
  55. linear = _props.linear,
  56. style = _props.style;
  57. var prepareStyles = this.context.muiTheme.prepareStyles;
  58. var styles = getStyles(this.props, this.context);
  59. /**
  60. * One day, we may be able to use real CSS tools
  61. * For now, we need to create our own "pseudo" elements
  62. * and nth child selectors, etc
  63. * That's what some of this garbage is for :)
  64. */
  65. var numChildren = _react.Children.count(children);
  66. var steps = _react.Children.map(children, function (step, index) {
  67. if (!_react2.default.isValidElement(step)) {
  68. return null;
  69. }
  70. var controlProps = { index: index };
  71. if (activeStep === index) {
  72. controlProps.active = true;
  73. } else if (linear && activeStep > index) {
  74. controlProps.completed = true;
  75. } else if (linear && activeStep < index) {
  76. controlProps.disabled = true;
  77. }
  78. if (index + 1 === numChildren) {
  79. controlProps.last = true;
  80. }
  81. return [index > 0 && connector, _react2.default.cloneElement(step, (0, _simpleAssign2.default)(controlProps, step.props))];
  82. });
  83. return _react2.default.createElement(
  84. 'div',
  85. { style: prepareStyles((0, _simpleAssign2.default)(styles.root, style)) },
  86. steps
  87. );
  88. }
  89. }]);
  90. return Stepper;
  91. }(_react.Component);
  92. Stepper.defaultProps = {
  93. connector: _react2.default.createElement(_StepConnector2.default, null),
  94. orientation: 'horizontal',
  95. linear: true
  96. };
  97. Stepper.contextTypes = { muiTheme: _propTypes2.default.object.isRequired };
  98. Stepper.childContextTypes = { stepper: _propTypes2.default.object };
  99. Stepper.propTypes = process.env.NODE_ENV !== "production" ? {
  100. /**
  101. * Set the active step (zero based index). This will enable `Step` control helpers.
  102. */
  103. activeStep: _propTypes2.default.number,
  104. /**
  105. * Should be two or more `<Step />` components.
  106. */
  107. children: _propTypes2.default.node,
  108. /**
  109. * A component to be placed between each step.
  110. */
  111. connector: _propTypes2.default.node,
  112. /**
  113. * If set to `true`, the `Stepper` will assist in controlling steps for linear flow
  114. */
  115. linear: _propTypes2.default.bool,
  116. /**
  117. * The stepper orientation (layout flow direction)
  118. */
  119. orientation: _propTypes2.default.oneOf(['horizontal', 'vertical']),
  120. /**
  121. * Override the inline-style of the root element.
  122. */
  123. style: _propTypes2.default.object
  124. } : {};
  125. exports.default = Stepper;