custom-app
Version:
ITIMS��Ʒ�鿪��ר��React���,�Dz��ý��ּ�dhcc-app���������
138 lines (125 loc) • 4.9 kB
JavaScript
import _extends from 'babel-runtime/helpers/extends';
import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';
import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';
import _inherits from 'babel-runtime/helpers/inherits';
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import Trigger from 'rc-trigger';
import { placements } from './placements';
import Content from './Content';
var Tooltip = function (_Component) {
_inherits(Tooltip, _Component);
function Tooltip() {
var _temp, _this, _ret;
_classCallCheck(this, Tooltip);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.getPopupElement = function () {
var _this$props = _this.props,
arrowContent = _this$props.arrowContent,
overlay = _this$props.overlay,
prefixCls = _this$props.prefixCls,
id = _this$props.id;
return [React.createElement(
'div',
{ className: prefixCls + '-arrow', key: 'arrow' },
arrowContent
), React.createElement(Content, {
key: 'content',
trigger: _this.trigger,
prefixCls: prefixCls,
id: id,
overlay: overlay
})];
}, _this.saveTrigger = function (node) {
_this.trigger = node;
}, _temp), _possibleConstructorReturn(_this, _ret);
}
Tooltip.prototype.getPopupDomNode = function getPopupDomNode() {
return this.trigger.getPopupDomNode();
};
Tooltip.prototype.render = function render() {
var _props = this.props,
overlayClassName = _props.overlayClassName,
trigger = _props.trigger,
mouseEnterDelay = _props.mouseEnterDelay,
mouseLeaveDelay = _props.mouseLeaveDelay,
overlayStyle = _props.overlayStyle,
prefixCls = _props.prefixCls,
children = _props.children,
onVisibleChange = _props.onVisibleChange,
afterVisibleChange = _props.afterVisibleChange,
transitionName = _props.transitionName,
animation = _props.animation,
placement = _props.placement,
align = _props.align,
destroyTooltipOnHide = _props.destroyTooltipOnHide,
defaultVisible = _props.defaultVisible,
getTooltipContainer = _props.getTooltipContainer,
restProps = _objectWithoutProperties(_props, ['overlayClassName', 'trigger', 'mouseEnterDelay', 'mouseLeaveDelay', '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,
action: trigger,
builtinPlacements: placements,
popupPlacement: placement,
popupAlign: align,
getPopupContainer: getTooltipContainer,
onPopupVisibleChange: onVisibleChange,
afterPopupVisibleChange: afterVisibleChange,
popupTransitionName: transitionName,
popupAnimation: animation,
defaultPopupVisible: defaultVisible,
destroyPopupOnHide: destroyTooltipOnHide,
mouseLeaveDelay: mouseLeaveDelay,
popupStyle: overlayStyle,
mouseEnterDelay: mouseEnterDelay
}, extraProps),
children
);
};
return Tooltip;
}(Component);
Tooltip.propTypes = {
trigger: PropTypes.any,
children: PropTypes.any,
defaultVisible: PropTypes.bool,
visible: PropTypes.bool,
placement: PropTypes.string,
transitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),
animation: PropTypes.any,
onVisibleChange: PropTypes.func,
afterVisibleChange: PropTypes.func,
overlay: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired,
overlayStyle: PropTypes.object,
overlayClassName: PropTypes.string,
prefixCls: PropTypes.string,
mouseEnterDelay: PropTypes.number,
mouseLeaveDelay: PropTypes.number,
getTooltipContainer: PropTypes.func,
destroyTooltipOnHide: PropTypes.bool,
align: PropTypes.object,
arrowContent: PropTypes.any,
id: PropTypes.string
};
Tooltip.defaultProps = {
prefixCls: 'rc-tooltip',
mouseEnterDelay: 0,
destroyTooltipOnHide: false,
mouseLeaveDelay: 0.1,
align: {},
placement: 'right',
trigger: ['hover'],
arrowContent: null
};
export default Tooltip;