UNPKG

5.08 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.default = exports.styles = void 0;
9
10var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
12var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
14var _react = _interopRequireDefault(require("react"));
15
16var _propTypes = _interopRequireDefault(require("prop-types"));
17
18var _clsx = _interopRequireDefault(require("clsx"));
19
20var _withStyles = _interopRequireDefault(require("../styles/withStyles"));
21
22var _Typography = _interopRequireDefault(require("../Typography"));
23
24var styles = {
25 /* Styles applied to the root element. */
26 root: {
27 display: 'flex',
28 alignItems: 'center',
29 padding: 16
30 },
31
32 /* Styles applied to the avatar element. */
33 avatar: {
34 flex: '0 0 auto',
35 marginRight: 16
36 },
37
38 /* Styles applied to the action element. */
39 action: {
40 flex: '0 0 auto',
41 alignSelf: 'flex-start',
42 marginTop: -8,
43 marginRight: -8
44 },
45
46 /* Styles applied to the content wrapper element. */
47 content: {
48 flex: '1 1 auto'
49 },
50
51 /* Styles applied to the title Typography element. */
52 title: {},
53
54 /* Styles applied to the subheader Typography element. */
55 subheader: {}
56};
57exports.styles = styles;
58
59var CardHeader = _react.default.forwardRef(function CardHeader(props, ref) {
60 var action = props.action,
61 avatar = props.avatar,
62 classes = props.classes,
63 className = props.className,
64 _props$component = props.component,
65 Component = _props$component === void 0 ? 'div' : _props$component,
66 _props$disableTypogra = props.disableTypography,
67 disableTypography = _props$disableTypogra === void 0 ? false : _props$disableTypogra,
68 subheaderProp = props.subheader,
69 subheaderTypographyProps = props.subheaderTypographyProps,
70 titleProp = props.title,
71 titleTypographyProps = props.titleTypographyProps,
72 other = (0, _objectWithoutProperties2.default)(props, ["action", "avatar", "classes", "className", "component", "disableTypography", "subheader", "subheaderTypographyProps", "title", "titleTypographyProps"]);
73 var title = titleProp;
74
75 if (title != null && title.type !== _Typography.default && !disableTypography) {
76 title = _react.default.createElement(_Typography.default, (0, _extends2.default)({
77 variant: avatar ? 'body2' : 'h5',
78 className: classes.title,
79 component: "span",
80 display: "block"
81 }, titleTypographyProps), title);
82 }
83
84 var subheader = subheaderProp;
85
86 if (subheader != null && subheader.type !== _Typography.default && !disableTypography) {
87 subheader = _react.default.createElement(_Typography.default, (0, _extends2.default)({
88 variant: avatar ? 'body2' : 'body1',
89 className: classes.subheader,
90 color: "textSecondary",
91 component: "span",
92 display: "block"
93 }, subheaderTypographyProps), subheader);
94 }
95
96 return _react.default.createElement(Component, (0, _extends2.default)({
97 className: (0, _clsx.default)(classes.root, className),
98 ref: ref
99 }, other), avatar && _react.default.createElement("div", {
100 className: classes.avatar
101 }, avatar), _react.default.createElement("div", {
102 className: classes.content
103 }, title, subheader), action && _react.default.createElement("div", {
104 className: classes.action
105 }, action));
106});
107
108process.env.NODE_ENV !== "production" ? CardHeader.propTypes = {
109 /**
110 * The action to display in the card header.
111 */
112 action: _propTypes.default.node,
113
114 /**
115 * The Avatar for the Card Header.
116 */
117 avatar: _propTypes.default.node,
118
119 /**
120 * Override or extend the styles applied to the component.
121 * See [CSS API](#css) below for more details.
122 */
123 classes: _propTypes.default.object.isRequired,
124
125 /**
126 * @ignore
127 */
128 className: _propTypes.default.string,
129
130 /**
131 * The component used for the root node.
132 * Either a string to use a DOM element or a component.
133 */
134 component: _propTypes.default.elementType,
135
136 /**
137 * If `true`, `subheader` and `title` won't be wrapped by a Typography component.
138 * This can be useful to render an alternative Typography variant by wrapping
139 * the `title` text, and optional `subheader` text
140 * with the Typography component.
141 */
142 disableTypography: _propTypes.default.bool,
143
144 /**
145 * The content of the component.
146 */
147 subheader: _propTypes.default.node,
148
149 /**
150 * These props will be forwarded to the subheader
151 * (as long as disableTypography is not `true`).
152 */
153 subheaderTypographyProps: _propTypes.default.object,
154
155 /**
156 * The content of the Card Title.
157 */
158 title: _propTypes.default.node,
159
160 /**
161 * These props will be forwarded to the title
162 * (as long as disableTypography is not `true`).
163 */
164 titleTypographyProps: _propTypes.default.object
165} : void 0;
166
167var _default = (0, _withStyles.default)(styles, {
168 name: 'MuiCardHeader'
169})(CardHeader);
170
171exports.default = _default;
\No newline at end of file