boldr-ui
Version:
UI components for Boldr
163 lines (129 loc) • 5.01 kB
JavaScript
'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;