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

152 строки
5.0 KiB

  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. var _extends2 = require('babel-runtime/helpers/extends');
  6. var _extends3 = _interopRequireDefault(_extends2);
  7. var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
  8. var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
  9. var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
  10. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  11. var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
  12. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  13. var _createClass2 = require('babel-runtime/helpers/createClass');
  14. var _createClass3 = _interopRequireDefault(_createClass2);
  15. var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
  16. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  17. var _inherits2 = require('babel-runtime/helpers/inherits');
  18. var _inherits3 = _interopRequireDefault(_inherits2);
  19. var _simpleAssign = require('simple-assign');
  20. var _simpleAssign2 = _interopRequireDefault(_simpleAssign);
  21. var _react = require('react');
  22. var _react2 = _interopRequireDefault(_react);
  23. var _propTypes = require('prop-types');
  24. var _propTypes2 = _interopRequireDefault(_propTypes);
  25. var _reactDom = require('react-dom');
  26. var _reactDom2 = _interopRequireDefault(_reactDom);
  27. var _autoPrefix = require('../utils/autoPrefix');
  28. var _autoPrefix2 = _interopRequireDefault(_autoPrefix);
  29. var _transitions = require('../styles/transitions');
  30. var _transitions2 = _interopRequireDefault(_transitions);
  31. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  32. var SlideInChild = function (_Component) {
  33. (0, _inherits3.default)(SlideInChild, _Component);
  34. function SlideInChild() {
  35. (0, _classCallCheck3.default)(this, SlideInChild);
  36. return (0, _possibleConstructorReturn3.default)(this, (SlideInChild.__proto__ || (0, _getPrototypeOf2.default)(SlideInChild)).apply(this, arguments));
  37. }
  38. (0, _createClass3.default)(SlideInChild, [{
  39. key: 'componentWillUnmount',
  40. value: function componentWillUnmount() {
  41. clearTimeout(this.enterTimer);
  42. clearTimeout(this.leaveTimer);
  43. }
  44. }, {
  45. key: 'componentWillEnter',
  46. value: function componentWillEnter(callback) {
  47. var style = _reactDom2.default.findDOMNode(this).style;
  48. var x = this.props.direction === 'left' ? '100%' : this.props.direction === 'right' ? '-100%' : '0';
  49. var y = this.props.direction === 'up' ? '100%' : this.props.direction === 'down' ? '-100%' : '0';
  50. style.opacity = '0';
  51. _autoPrefix2.default.set(style, 'transform', 'translate(' + x + ', ' + y + ')');
  52. this.enterTimer = setTimeout(callback, this.props.enterDelay);
  53. }
  54. }, {
  55. key: 'componentDidEnter',
  56. value: function componentDidEnter() {
  57. var style = _reactDom2.default.findDOMNode(this).style;
  58. style.opacity = '1';
  59. _autoPrefix2.default.set(style, 'transform', 'translate(0,0)');
  60. }
  61. }, {
  62. key: 'componentWillLeave',
  63. value: function componentWillLeave(callback) {
  64. var style = _reactDom2.default.findDOMNode(this).style;
  65. var direction = this.props.getLeaveDirection();
  66. var x = direction === 'left' ? '-100%' : direction === 'right' ? '100%' : '0';
  67. var y = direction === 'up' ? '-100%' : direction === 'down' ? '100%' : '0';
  68. style.opacity = '0';
  69. _autoPrefix2.default.set(style, 'transform', 'translate(' + x + ', ' + y + ')');
  70. this.leaveTimer = setTimeout(callback, 450);
  71. }
  72. }, {
  73. key: 'render',
  74. value: function render() {
  75. var _props = this.props,
  76. children = _props.children,
  77. enterDelay = _props.enterDelay,
  78. getLeaveDirection = _props.getLeaveDirection,
  79. style = _props.style,
  80. other = (0, _objectWithoutProperties3.default)(_props, ['children', 'enterDelay', 'getLeaveDirection', 'style']);
  81. var prepareStyles = this.context.muiTheme.prepareStyles;
  82. var mergedRootStyles = (0, _simpleAssign2.default)({}, {
  83. position: 'absolute',
  84. height: '100%',
  85. width: '100%',
  86. top: 0,
  87. left: 0,
  88. transition: _transitions2.default.easeOut(null, ['transform', 'opacity'])
  89. }, style);
  90. return _react2.default.createElement(
  91. 'div',
  92. (0, _extends3.default)({}, other, { style: prepareStyles(mergedRootStyles) }),
  93. children
  94. );
  95. }
  96. }]);
  97. return SlideInChild;
  98. }(_react.Component);
  99. SlideInChild.defaultProps = {
  100. enterDelay: 0
  101. };
  102. SlideInChild.contextTypes = {
  103. muiTheme: _propTypes2.default.object.isRequired
  104. };
  105. SlideInChild.propTypes = process.env.NODE_ENV !== "production" ? {
  106. children: _propTypes2.default.node,
  107. direction: _propTypes2.default.string,
  108. enterDelay: _propTypes2.default.number,
  109. // This callback is needed bacause the direction could change when leaving the DOM
  110. getLeaveDirection: _propTypes2.default.func.isRequired,
  111. style: _propTypes2.default.object
  112. } : {};
  113. exports.default = SlideInChild;