UNPKG

2.03 kBJavaScriptView Raw
1import _extends from "@babel/runtime-corejs2/helpers/esm/extends";
2import _objectWithoutPropertiesLoose from "@babel/runtime-corejs2/helpers/esm/objectWithoutPropertiesLoose";
3import _inheritsLoose from "@babel/runtime-corejs2/helpers/esm/inheritsLoose";
4import PropTypes from 'prop-types';
5import React from 'react';
6import cn from 'classnames';
7import elementType from 'react-prop-types/lib/elementType';
8import { prefix, bsClass, splitBsProps } from './utils/bootstrapUtils';
9var propTypes = {
10 componentClass: elementType
11};
12var defaultProps = {
13 componentClass: 'div'
14};
15var contextTypes = {
16 $bs_panel: PropTypes.shape({
17 headingId: PropTypes.string,
18 bsClass: PropTypes.string
19 })
20};
21
22var PanelHeading =
23/*#__PURE__*/
24function (_React$Component) {
25 _inheritsLoose(PanelHeading, _React$Component);
26
27 function PanelHeading() {
28 return _React$Component.apply(this, arguments) || this;
29 }
30
31 var _proto = PanelHeading.prototype;
32
33 _proto.render = function render() {
34 var _this$props = this.props,
35 children = _this$props.children,
36 className = _this$props.className,
37 Component = _this$props.componentClass,
38 props = _objectWithoutPropertiesLoose(_this$props, ["children", "className", "componentClass"]);
39
40 var _ref = this.context.$bs_panel || {},
41 headingId = _ref.headingId,
42 _bsClass = _ref.bsClass;
43
44 var _splitBsProps = splitBsProps(props),
45 bsProps = _splitBsProps[0],
46 elementProps = _splitBsProps[1];
47
48 bsProps.bsClass = _bsClass || bsProps.bsClass;
49
50 if (headingId) {
51 elementProps.role = elementProps.role || 'tab';
52 elementProps.id = headingId;
53 }
54
55 return React.createElement(Component, _extends({}, elementProps, {
56 className: cn(className, prefix(bsProps, 'heading'))
57 }), children);
58 };
59
60 return PanelHeading;
61}(React.Component);
62
63PanelHeading.propTypes = propTypes;
64PanelHeading.defaultProps = defaultProps;
65PanelHeading.contextTypes = contextTypes;
66export default bsClass('panel', PanelHeading);
\No newline at end of file