UNPKG

5.61 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 _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
12
13var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
14
15var _taggedTemplateLiteral2 = require('babel-runtime/helpers/taggedTemplateLiteral');
16
17var _taggedTemplateLiteral3 = _interopRequireDefault(_taggedTemplateLiteral2);
18
19var _templateObject = (0, _taggedTemplateLiteral3.default)([''], ['']);
20
21var _propTypes = require('prop-types');
22
23var _propTypes2 = _interopRequireDefault(_propTypes);
24
25var _react = require('react');
26
27var _react2 = _interopRequireDefault(_react);
28
29var _recompose = require('recompose');
30
31var _helperFunctions = require('./helperFunctions');
32
33var _RTGTransition = require('./RTGTransition');
34
35var _RTGTransition2 = _interopRequireDefault(_RTGTransition);
36
37var _styledComponents = require('styled-components');
38
39var _styledComponents2 = _interopRequireDefault(_styledComponents);
40
41var _CTCGeneric = require('./CTCGeneric');
42
43var _CTCGeneric2 = _interopRequireDefault(_CTCGeneric);
44
45var _ = require('.');
46
47function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
48
49var Container = _styledComponents2.default.div(_templateObject);
50
51var CTCPopover = function CTCPopover(_ref) {
52 var transitionType = _ref.transitionType,
53 useOCL = _ref.useOCL,
54 children = _ref.children,
55 transitionProps = _ref.transitionProps,
56 alwaysOn = _ref.alwaysOn,
57 renderTrigger = _ref.renderTrigger,
58 className = _ref.className,
59 style = _ref.style,
60 onClick = _ref.onClick,
61 props = (0, _objectWithoutProperties3.default)(_ref, ['transitionType', 'useOCL', 'children', 'transitionProps', 'alwaysOn', 'renderTrigger', 'className', 'style', 'onClick']);
62
63 return _react2.default.createElement(
64 _CTCGeneric2.default,
65 (0, _extends3.default)({}, props, { useOCL: useOCL }),
66 function (_ref2) {
67 var _getChildrenProps = _ref2.getChildrenProps,
68 elClickListenerRef = _ref2.elClickListenerRef,
69 getContainerProps = _ref2.getContainerProps,
70 _getTriggerProps = _ref2.getTriggerProps,
71 isOn = _ref2.isOn,
72 setIsOnTo = _ref2.setIsOnTo,
73 toggleIsOn = _ref2.toggleIsOn;
74
75 var defaultContainerClassName = 'ctcpopover__container';
76 return _react2.default.createElement(
77 Container,
78 (0, _extends3.default)({
79 ref: elClickListenerRef
80 }, getContainerProps({
81 className: [defaultContainerClassName, className],
82
83 style: style
84 })),
85 typeof renderTrigger === 'function' ? renderTrigger({
86 isOn: isOn,
87 setIsOnTo: setIsOnTo,
88 toggleIsOn: toggleIsOn,
89 getTriggerProps: function getTriggerProps() {
90 var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
91
92 var className = _ref3.className,
93 props = (0, _objectWithoutProperties3.default)(_ref3, ['className']);
94 return _getTriggerProps((0, _extends3.default)({
95 className: ['ctcpopover__trigger', className]
96 }, props));
97 }
98 }) : _react2.default.createElement(
99 _.Button,
100 (0, _extends3.default)({}, _getTriggerProps({
101 className: (0, _helperFunctions.flippyClass)(isOn, 'ctcpopover__trigger', 'on', 'off'),
102 onClick: onClick
103 }), {
104
105 isOn: isOn
106 }),
107 renderTrigger
108 ),
109 _react2.default.createElement(
110 _RTGTransition2.default,
111 {
112 transitionType: transitionType,
113 in: alwaysOn ? true : isOn,
114 transitionProps: transitionProps
115 },
116 function (_ref4) {
117 var transitionStyle = _ref4.style;
118
119 var defaultChildrenClassName = 'ctcpopover__children';
120 return typeof children === 'function' ? children({
121 getChildrenProps: function getChildrenProps() {
122 var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
123
124 var className = _ref5.className,
125 style = _ref5.style,
126 props = (0, _objectWithoutProperties3.default)(_ref5, ['className', 'style']);
127 return _getChildrenProps((0, _extends3.default)({
128 className: [defaultChildrenClassName, className],
129 style: (0, _extends3.default)({}, transitionStyle, style)
130 }, props));
131 },
132 isOn: isOn,
133 setIsOnTo: setIsOnTo,
134 toggleIsOn: toggleIsOn
135 }) : _react2.default.createElement(
136 'div',
137 (0, _extends3.default)({}, _getChildrenProps({
138 className: defaultChildrenClassName,
139 style: transitionStyle
140 })),
141 children
142 );
143 }
144 )
145 );
146 }
147 );
148};
149
150CTCPopover.propTypes = {
151 children: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]).isRequired,
152 renderTrigger: _propTypes2.default.func.isRequired
153};
154
155var enhance = (0, _recompose.compose)((0, _recompose.defaultProps)({
156 isOn: false,
157 transitionType: 'fade',
158 useOCL: true,
159 style: {},
160 onClick: function onClick() {
161 return null;
162 }
163}), (0, _recompose.onlyUpdateForKeys)(['children']));
164
165exports.default = enhance(CTCPopover);
\No newline at end of file