UNPKG

4.42 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _extends2 = require('babel-runtime/helpers/extends');
8
9var _extends3 = _interopRequireDefault(_extends2);
10
11var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
12
13var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
14
15var _createClass2 = require('babel-runtime/helpers/createClass');
16
17var _createClass3 = _interopRequireDefault(_createClass2);
18
19var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
20
21var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
22
23var _inherits2 = require('babel-runtime/helpers/inherits');
24
25var _inherits3 = _interopRequireDefault(_inherits2);
26
27var _react = require('react');
28
29var React = _interopRequireWildcard(_react);
30
31var _rmcTooltip = require('rmc-tooltip');
32
33var _rmcTooltip2 = _interopRequireDefault(_rmcTooltip);
34
35var _Item = require('./Item');
36
37var _Item2 = _interopRequireDefault(_Item);
38
39function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
40
41function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
42
43var __rest = undefined && undefined.__rest || function (s, e) {
44 var t = {};
45 for (var p in s) {
46 if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
47 }if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
48 if (e.indexOf(p[i]) < 0) t[p[i]] = s[p[i]];
49 }return t;
50};
51
52function recursiveCloneChildren(children) {
53 var cb = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (ch, _) {
54 return ch;
55 };
56
57 return React.Children.map(children, function (child, index) {
58 var newChild = cb(child, index);
59 if (typeof newChild !== 'string' && typeof newChild !== 'number' && newChild && newChild.props && newChild.props.children) {
60 return React.cloneElement(newChild, {}, recursiveCloneChildren(newChild.props.children, cb));
61 }
62 return newChild;
63 });
64}
65
66var Popover = function (_React$Component) {
67 (0, _inherits3['default'])(Popover, _React$Component);
68
69 function Popover() {
70 (0, _classCallCheck3['default'])(this, Popover);
71 return (0, _possibleConstructorReturn3['default'])(this, (Popover.__proto__ || Object.getPrototypeOf(Popover)).apply(this, arguments));
72 }
73
74 (0, _createClass3['default'])(Popover, [{
75 key: 'render',
76 value: function render() {
77 var _a = this.props,
78 overlay = _a.overlay,
79 _a$onSelect = _a.onSelect,
80 onSelect = _a$onSelect === undefined ? function () {} : _a$onSelect,
81 restProps = __rest(_a, ["overlay", "onSelect"]);
82 var overlayNode = recursiveCloneChildren(overlay, function (child, index) {
83 var extraProps = { firstItem: false };
84 if (child && typeof child !== 'string' && typeof child !== 'number' && child.type &&
85 // Fixme: not sure where the `myName` came from.
86 child.type.myName === 'PopoverItem' && !child.props.disabled) {
87 extraProps.onClick = function () {
88 return onSelect(child, index);
89 };
90 extraProps.firstItem = index === 0;
91 return React.cloneElement(child, extraProps);
92 }
93 return child;
94 });
95 var wrapperNode = React.createElement(
96 'div',
97 { className: this.props.prefixCls + '-inner-wrapper' },
98 overlayNode
99 );
100 return React.createElement(_rmcTooltip2['default'], (0, _extends3['default'])({}, restProps, { overlay: wrapperNode }));
101 }
102 }]);
103 return Popover;
104}(React.Component);
105
106exports['default'] = Popover;
107
108Popover.defaultProps = {
109 prefixCls: 'am-popover',
110 placement: 'bottomRight',
111 align: { overflow: { adjustY: 0, adjustX: 0 } },
112 trigger: ['click']
113};
114Popover.Item = _Item2['default'];
115module.exports = exports['default'];
\No newline at end of file