UNPKG

@material-ui/core

Version:

React components that implement Google's Material Design.

139 lines (112 loc) 4.71 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/builtin/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/builtin/extends")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/builtin/defineProperty")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/builtin/objectWithoutProperties")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/builtin/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/builtin/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/builtin/possibleConstructorReturn")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/builtin/inherits")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _classnames = _interopRequireDefault(require("classnames")); var _Transition = _interopRequireDefault(require("react-transition-group/Transition")); /** * @ignore - internal component. */ var Ripple = /*#__PURE__*/ function (_React$Component) { (0, _inherits2.default)(Ripple, _React$Component); function Ripple() { var _ref; var _temp, _this; (0, _classCallCheck2.default)(this, Ripple); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return (0, _possibleConstructorReturn2.default)(_this, (_temp = _this = (0, _possibleConstructorReturn2.default)(this, (_ref = Ripple.__proto__ || Object.getPrototypeOf(Ripple)).call.apply(_ref, [this].concat(args))), _this.state = { visible: false, leaving: false }, _this.handleEnter = function () { _this.setState({ visible: true }); }, _this.handleExit = function () { _this.setState({ leaving: true }); }, _temp)); } (0, _createClass2.default)(Ripple, [{ key: "render", value: function render() { var _classNames, _classNames2; var _props = this.props, classes = _props.classes, classNameProp = _props.className, pulsate = _props.pulsate, rippleX = _props.rippleX, rippleY = _props.rippleY, rippleSize = _props.rippleSize, other = (0, _objectWithoutProperties2.default)(_props, ["classes", "className", "pulsate", "rippleX", "rippleY", "rippleSize"]); var _state = this.state, visible = _state.visible, leaving = _state.leaving; var rippleClassName = (0, _classnames.default)(classes.ripple, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.rippleVisible, visible), (0, _defineProperty2.default)(_classNames, classes.ripplePulsate, pulsate), _classNames), classNameProp); var rippleStyles = { width: rippleSize, height: rippleSize, top: -(rippleSize / 2) + rippleY, left: -(rippleSize / 2) + rippleX }; var childClassName = (0, _classnames.default)(classes.child, (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, classes.childLeaving, leaving), (0, _defineProperty2.default)(_classNames2, classes.childPulsate, pulsate), _classNames2)); return _react.default.createElement(_Transition.default, (0, _extends2.default)({ onEnter: this.handleEnter, onExit: this.handleExit }, other), _react.default.createElement("span", { className: rippleClassName, style: rippleStyles }, _react.default.createElement("span", { className: childClassName }))); } }]); return Ripple; }(_react.default.Component); Ripple.propTypes = process.env.NODE_ENV !== "production" ? { /** * Override or extend the styles applied to the component. * See [CSS API](#css-api) below for more details. */ classes: _propTypes.default.object.isRequired, /** * @ignore */ className: _propTypes.default.string, /** * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element. */ pulsate: _propTypes.default.bool, /** * Diameter of the ripple. */ rippleSize: _propTypes.default.number, /** * Horizontal position of the ripple center. */ rippleX: _propTypes.default.number, /** * Vertical position of the ripple center. */ rippleY: _propTypes.default.number } : {}; Ripple.defaultProps = { pulsate: false }; var _default = Ripple; exports.default = _default;