{"dependencies":[{"name":"babel-runtime/helpers/extends","loc":{"line":7,"column":24}},{"name":"babel-runtime/helpers/objectWithoutProperties","loc":{"line":11,"column":40}},{"name":"babel-runtime/core-js/object/get-prototype-of","loc":{"line":15,"column":30}},{"name":"babel-runtime/helpers/classCallCheck","loc":{"line":19,"column":31}},{"name":"babel-runtime/helpers/createClass","loc":{"line":23,"column":28}},{"name":"babel-runtime/helpers/possibleConstructorReturn","loc":{"line":27,"column":42}},{"name":"babel-runtime/helpers/inherits","loc":{"line":31,"column":25}},{"name":"simple-assign","loc":{"line":35,"column":28}},{"name":"react","loc":{"line":39,"column":21}},{"name":"prop-types","loc":{"line":43,"column":25}},{"name":"react-dom","loc":{"line":47,"column":24}},{"name":"recompose/shallowEqual","loc":{"line":51,"column":28}},{"name":"../utils/autoPrefix","loc":{"line":55,"column":26}},{"name":"../styles/transitions","loc":{"line":59,"column":27}}],"generated":{"js":"'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');\n\nvar _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);\n\nvar _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = require('babel-runtime/helpers/createClass');\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _simpleAssign = require('simple-assign');\n\nvar _simpleAssign2 = _interopRequireDefault(_simpleAssign);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _shallowEqual = require('recompose/shallowEqual');\n\nvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\nvar _autoPrefix = require('../utils/autoPrefix');\n\nvar _autoPrefix2 = _interopRequireDefault(_autoPrefix);\n\nvar _transitions = require('../styles/transitions');\n\nvar _transitions2 = _interopRequireDefault(_transitions);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nvar CircleRipple = function (_Component) {\n  (0, _inherits3.default)(CircleRipple, _Component);\n\n  function CircleRipple() {\n    (0, _classCallCheck3.default)(this, CircleRipple);\n    return (0, _possibleConstructorReturn3.default)(this, (CircleRipple.__proto__ || (0, _getPrototypeOf2.default)(CircleRipple)).apply(this, arguments));\n  }\n\n  (0, _createClass3.default)(CircleRipple, [{\n    key: 'shouldComponentUpdate',\n    value: function shouldComponentUpdate(nextProps) {\n      return !(0, _shallowEqual2.default)(this.props, nextProps);\n    }\n  }, {\n    key: 'componentWillUnmount',\n    value: function componentWillUnmount() {\n      clearTimeout(this.enterTimer);\n      clearTimeout(this.leaveTimer);\n    }\n  }, {\n    key: 'componentWillAppear',\n    value: function componentWillAppear(callback) {\n      this.initializeAnimation(callback);\n    }\n  }, {\n    key: 'componentWillEnter',\n    value: function componentWillEnter(callback) {\n      this.initializeAnimation(callback);\n    }\n  }, {\n    key: 'componentDidAppear',\n    value: function componentDidAppear() {\n      this.animate();\n    }\n  }, {\n    key: 'componentDidEnter',\n    value: function componentDidEnter() {\n      this.animate();\n    }\n  }, {\n    key: 'componentWillLeave',\n    value: function componentWillLeave(callback) {\n      var style = _reactDom2.default.findDOMNode(this).style;\n      style.opacity = 0;\n      // If the animation is aborted, remove from the DOM immediately\n      var removeAfter = this.props.aborted ? 0 : 2000;\n      this.enterTimer = setTimeout(callback, removeAfter);\n    }\n  }, {\n    key: 'animate',\n    value: function animate() {\n      var style = _reactDom2.default.findDOMNode(this).style;\n      var transitionValue = _transitions2.default.easeOut('2s', 'opacity') + ', ' + _transitions2.default.easeOut('1s', 'transform');\n      _autoPrefix2.default.set(style, 'transition', transitionValue);\n      _autoPrefix2.default.set(style, 'transform', 'scale(1)');\n    }\n  }, {\n    key: 'initializeAnimation',\n    value: function initializeAnimation(callback) {\n      var style = _reactDom2.default.findDOMNode(this).style;\n      style.opacity = this.props.opacity;\n      _autoPrefix2.default.set(style, 'transform', 'scale(0)');\n      this.leaveTimer = setTimeout(callback, 0);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _props = this.props,\n          aborted = _props.aborted,\n          color = _props.color,\n          opacity = _props.opacity,\n          style = _props.style,\n          touchGenerated = _props.touchGenerated,\n          other = (0, _objectWithoutProperties3.default)(_props, ['aborted', 'color', 'opacity', 'style', 'touchGenerated']);\n      var prepareStyles = this.context.muiTheme.prepareStyles;\n\n      var mergedStyles = (0, _simpleAssign2.default)({\n        position: 'absolute',\n        top: 0,\n        left: 0,\n        height: '100%',\n        width: '100%',\n        borderRadius: '50%',\n        backgroundColor: color\n      }, style);\n\n      return _react2.default.createElement('div', (0, _extends3.default)({}, other, { style: prepareStyles(mergedStyles) }));\n    }\n  }]);\n  return CircleRipple;\n}(_react.Component);\n\nCircleRipple.defaultProps = {\n  opacity: 0.1,\n  aborted: false\n};\nCircleRipple.contextTypes = {\n  muiTheme: _propTypes2.default.object.isRequired\n};\nCircleRipple.propTypes = \"development\" !== \"production\" ? {\n  aborted: _propTypes2.default.bool,\n  color: _propTypes2.default.string,\n  opacity: _propTypes2.default.number,\n  style: _propTypes2.default.object,\n  touchGenerated: _propTypes2.default.bool\n} : {};\nexports.default = CircleRipple;"},"hash":"3a07563b663669b0936876bc39dc578f"}