rmc-tooltip
Version:
93 lines (85 loc) • 4.09 kB
JavaScript
import _extends from 'babel-runtime/helpers/extends';
import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
import _createClass from 'babel-runtime/helpers/createClass';
import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';
import _inherits from 'babel-runtime/helpers/inherits';
var __rest = this && this.__rest || function (s, e) {
var t = {};
for (var p in s) {
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
}if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0) t[p[i]] = s[p[i]];
}return t;
};
import React, { Component } from 'react';
import Trigger from 'rmc-trigger';
import { placements } from './placements';
var Tooltip = function (_Component) {
_inherits(Tooltip, _Component);
function Tooltip() {
_classCallCheck(this, Tooltip);
var _this = _possibleConstructorReturn(this, (Tooltip.__proto__ || Object.getPrototypeOf(Tooltip)).apply(this, arguments));
_this.getPopupElement = function () {
var _this$props = _this.props,
arrowContent = _this$props.arrowContent,
overlay = _this$props.overlay,
prefixCls = _this$props.prefixCls;
return [React.createElement(
'div',
{ className: prefixCls + '-arrow', key: 'arrow' },
arrowContent
), React.createElement(
'div',
{ className: prefixCls + '-inner', key: 'content' },
typeof overlay === 'function' ? overlay() : overlay
)];
};
_this.saveTrigger = function (node) {
_this.trigger = node;
};
return _this;
}
_createClass(Tooltip, [{
key: 'getPopupDomNode',
value: function getPopupDomNode() {
return this.trigger.triggerRef.getPopupDomNode();
}
}, {
key: 'render',
value: function render() {
var _a = this.props,
overlayClassName = _a.overlayClassName,
overlayStyle = _a.overlayStyle,
prefixCls = _a.prefixCls,
children = _a.children,
onVisibleChange = _a.onVisibleChange,
afterVisibleChange = _a.afterVisibleChange,
transitionName = _a.transitionName,
animation = _a.animation,
placement = _a.placement,
align = _a.align,
destroyTooltipOnHide = _a.destroyTooltipOnHide,
defaultVisible = _a.defaultVisible,
getTooltipContainer = _a.getTooltipContainer,
restProps = __rest(_a, ["overlayClassName", "overlayStyle", "prefixCls", "children", "onVisibleChange", "afterVisibleChange", "transitionName", "animation", "placement", "align", "destroyTooltipOnHide", "defaultVisible", "getTooltipContainer"]);
var extraProps = _extends({}, restProps);
if ('visible' in this.props) {
extraProps.popupVisible = this.props.visible;
}
return React.createElement(
Trigger,
_extends({ popupClassName: overlayClassName, ref: this.saveTrigger, prefixCls: prefixCls, popup: this.getPopupElement, builtinPlacements: placements, popupPlacement: placement, popupAlign: align, getPopupContainer: getTooltipContainer, onPopupVisibleChange: onVisibleChange, afterPopupVisibleChange: afterVisibleChange, popupTransitionName: transitionName, popupAnimation: animation, defaultPopupVisible: defaultVisible, destroyPopupOnHide: destroyTooltipOnHide, popupStyle: overlayStyle }, extraProps),
children
);
}
}]);
return Tooltip;
}(Component);
Tooltip.defaultProps = {
prefixCls: 'rmc-tooltip',
destroyTooltipOnHide: false,
align: {},
placement: 'right',
arrowContent: null
};
export default Tooltip;