UNPKG

2.86 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
4
5exports.__esModule = true;
6exports.default = void 0;
7
8var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/extends"));
9
10var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inheritsLoose"));
11
12var _propTypes = _interopRequireDefault(require("prop-types"));
13
14var _react = _interopRequireDefault(require("react"));
15
16var _bootstrapUtils = require("./utils/bootstrapUtils");
17
18var _Collapse = _interopRequireDefault(require("./Collapse"));
19
20var propTypes = {
21 /**
22 * Callback fired before the component expands
23 */
24 onEnter: _propTypes.default.func,
25
26 /**
27 * Callback fired after the component starts to expand
28 */
29 onEntering: _propTypes.default.func,
30
31 /**
32 * Callback fired after the component has expanded
33 */
34 onEntered: _propTypes.default.func,
35
36 /**
37 * Callback fired before the component collapses
38 */
39 onExit: _propTypes.default.func,
40
41 /**
42 * Callback fired after the component starts to collapse
43 */
44 onExiting: _propTypes.default.func,
45
46 /**
47 * Callback fired after the component has collapsed
48 */
49 onExited: _propTypes.default.func
50};
51var contextTypes = {
52 $bs_panel: _propTypes.default.shape({
53 headingId: _propTypes.default.string,
54 bodyId: _propTypes.default.string,
55 bsClass: _propTypes.default.string,
56 expanded: _propTypes.default.bool
57 })
58};
59
60var PanelCollapse =
61/*#__PURE__*/
62function (_React$Component) {
63 (0, _inheritsLoose2.default)(PanelCollapse, _React$Component);
64
65 function PanelCollapse() {
66 return _React$Component.apply(this, arguments) || this;
67 }
68
69 var _proto = PanelCollapse.prototype;
70
71 _proto.render = function render() {
72 var children = this.props.children;
73
74 var _ref = this.context.$bs_panel || {},
75 headingId = _ref.headingId,
76 bodyId = _ref.bodyId,
77 _bsClass = _ref.bsClass,
78 expanded = _ref.expanded;
79
80 var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(this.props),
81 bsProps = _splitBsProps[0],
82 props = _splitBsProps[1];
83
84 bsProps.bsClass = _bsClass || bsProps.bsClass;
85
86 if (headingId && bodyId) {
87 props.id = bodyId;
88 props.role = props.role || 'tabpanel';
89 props['aria-labelledby'] = headingId;
90 }
91
92 return _react.default.createElement(_Collapse.default, (0, _extends2.default)({
93 in: expanded
94 }, props), _react.default.createElement("div", {
95 className: (0, _bootstrapUtils.prefix)(bsProps, 'collapse')
96 }, children));
97 };
98
99 return PanelCollapse;
100}(_react.default.Component);
101
102PanelCollapse.propTypes = propTypes;
103PanelCollapse.contextTypes = contextTypes;
104
105var _default = (0, _bootstrapUtils.bsClass)('panel', PanelCollapse);
106
107exports.default = _default;
108module.exports = exports["default"];
\No newline at end of file