twreporter-react
Version:
React-Redux site for The Reporter Foundation in Taiwan
130 lines (114 loc) • 4.7 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _placements = require('./placements');
var _rcTrigger = require('rc-trigger');
var _rcTrigger2 = _interopRequireDefault(_rcTrigger);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
var Tooltip = _react2["default"].createClass({
displayName: 'Tooltip',
propTypes: {
trigger: _react.PropTypes.any,
children: _react.PropTypes.any,
defaultVisible: _react.PropTypes.bool,
visible: _react.PropTypes.bool,
placement: _react.PropTypes.string,
transitionName: _react.PropTypes.string,
animation: _react.PropTypes.any,
onVisibleChange: _react.PropTypes.func,
afterVisibleChange: _react.PropTypes.func,
overlay: _react.PropTypes.node.isRequired,
overlayStyle: _react.PropTypes.object,
overlayClassName: _react.PropTypes.string,
prefixCls: _react.PropTypes.string,
mouseEnterDelay: _react.PropTypes.number,
mouseLeaveDelay: _react.PropTypes.number,
getTooltipContainer: _react.PropTypes.func,
destroyTooltipOnHide: _react.PropTypes.bool,
align: _react.PropTypes.object,
arrowContent: _react.PropTypes.any
},
getDefaultProps: function getDefaultProps() {
return {
prefixCls: 'rc-tooltip',
mouseEnterDelay: 0,
destroyTooltipOnHide: false,
mouseLeaveDelay: 0.1,
align: {},
placement: 'right',
trigger: ['hover'],
arrowContent: null
};
},
getPopupElement: function getPopupElement() {
var _props = this.props;
var arrowContent = _props.arrowContent;
var overlay = _props.overlay;
var prefixCls = _props.prefixCls;
return [_react2["default"].createElement(
'div',
{ className: prefixCls + '-arrow', key: 'arrow' },
arrowContent
), _react2["default"].createElement(
'div',
{ className: prefixCls + '-inner', key: 'content' },
overlay
)];
},
getPopupDomNode: function getPopupDomNode() {
return this.refs.trigger.popupDomNode;
},
render: function render() {
var _props2 = this.props;
var overlayClassName = _props2.overlayClassName;
var trigger = _props2.trigger;
var mouseEnterDelay = _props2.mouseEnterDelay;
var mouseLeaveDelay = _props2.mouseLeaveDelay;
var overlayStyle = _props2.overlayStyle;
var prefixCls = _props2.prefixCls;
var children = _props2.children;
var onVisibleChange = _props2.onVisibleChange;
var transitionName = _props2.transitionName;
var animation = _props2.animation;
var placement = _props2.placement;
var align = _props2.align;
var destroyTooltipOnHide = _props2.destroyTooltipOnHide;
var defaultVisible = _props2.defaultVisible;
var getTooltipContainer = _props2.getTooltipContainer;
var restProps = _objectWithoutProperties(_props2, ['overlayClassName', 'trigger', 'mouseEnterDelay', 'mouseLeaveDelay', 'overlayStyle', 'prefixCls', 'children', 'onVisibleChange', 'transitionName', 'animation', 'placement', 'align', 'destroyTooltipOnHide', 'defaultVisible', 'getTooltipContainer']);
var extraProps = _extends({}, restProps);
if ('visible' in this.props) {
extraProps.popupVisible = this.props.visible;
}
return _react2["default"].createElement(
_rcTrigger2["default"],
_extends({
popupClassName: overlayClassName,
ref: 'trigger',
prefixCls: prefixCls,
popup: this.getPopupElement(),
action: trigger,
builtinPlacements: _placements.placements,
popupPlacement: placement,
popupAlign: align,
getPopupContainer: getTooltipContainer,
onPopupVisibleChange: onVisibleChange,
popupTransitionName: transitionName,
popupAnimation: animation,
defaultPopupVisible: defaultVisible,
destroyPopupOnHide: destroyTooltipOnHide,
mouseLeaveDelay: mouseLeaveDelay,
popupStyle: overlayStyle,
mouseEnterDelay: mouseEnterDelay
}, extraProps),
children
);
}
});
exports["default"] = Tooltip;
module.exports = exports['default'];