UNPKG

boldr-ui

Version:

UI components for Boldr

163 lines (129 loc) 5.01 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames2 = require('classnames'); var _classnames3 = _interopRequireDefault(_classnames2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var TooltipContent = function (_Component) { (0, _inherits3.default)(TooltipContent, _Component); function TooltipContent() { (0, _classCallCheck3.default)(this, TooltipContent); return (0, _possibleConstructorReturn3.default)(this, (TooltipContent.__proto__ || (0, _getPrototypeOf2.default)(TooltipContent)).apply(this, arguments)); } (0, _createClass3.default)(TooltipContent, [{ key: 'render', value: function render() { var _props = this.props, children = _props.children, theme = _props.theme, arrowPlacement = _props.arrowPlacement, arrowStyle = _props.arrowStyle, style = _props.style, onMouseEnter = _props.onMouseEnter, onMouseLeave = _props.onMouseLeave, bounce = _props.bounce, size = _props.size, textAlign = _props.textAlign; return _react2.default.createElement( 'div', { className: 'boldrui-tooltip__root', style: style, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave }, _react2.default.createElement( 'div', { className: 'boldrui-tooltip__fadeIn' }, _react2.default.createElement( 'div', { className: (0, _classnames3.default)((0, _defineProperty3.default)({}, 'bounce-on-' + arrowPlacement, bounce)) }, _react2.default.createElement( 'div', { className: (0, _classnames3.default)('boldrui-tooltip', 'boldrui-tooltip ' + [theme], 'boldrui-tooltip ' + [size]), style: { maxWidth: this.props.maxWidth, textAlign: textAlign } }, _react2.default.createElement( 'div', null, children ), _react2.default.createElement('div', { className: (0, _classnames3.default)('boldrui-tooltip__arrow', 'boldrui-tooltip__arrow ' + [arrowPlacement]), style: arrowStyle }) ) ) ) ); } }]); return TooltipContent; }(_react.Component); TooltipContent.defaultProps = { theme: 'light', arrowPlacement: 'bottom', maxWidth: '1200px', size: 'normal', textAlign: 'center' }; TooltipContent.propTypes = process.env.NODE_ENV !== "production" ? { textAlign: _propTypes2.default.string, maxWidth: _propTypes2.default.string, /** * Tooltip content to be rendered */ children: _propTypes2.default.node.isRequired, /** * Specifies tooltip theme */ theme: _propTypes2.default.oneOf(['light', 'dark', 'error']), /** * Specifies on which side the arrow should be shown */ arrowPlacement: _propTypes2.default.oneOf(['top', 'right', 'bottom', 'left']), /** * Custom CSS style object (used to allow setting arrow position) */ arrowStyle: _propTypes2.default.object, /** * Custom CSS style object (used to allow setting the position) */ style: _propTypes2.default.object, /** * Callback triggered when mouse enters the component * Used for showing tooltip when mouse leaves the target element, but hovers the tooltip itself */ onMouseEnter: _propTypes2.default.func, /** * Callback triggered when mouse leaves the component * Used for showing tooltip when mouse leaves the target element, but hovers the tooltip itself */ onMouseLeave: _propTypes2.default.func, /** * Specifies if tooltip content should use bouncing animation. */ bounce: _propTypes2.default.bool, size: _propTypes2.default.oneOf(['normal', 'large']) } : {}; exports.default = TooltipContent;