UNPKG

9.76 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5var _typeof = require("@babel/runtime/helpers/typeof");
6
7Object.defineProperty(exports, "__esModule", {
8 value: true
9});
10exports["default"] = void 0;
11
12var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
14var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
16var React = _interopRequireWildcard(require("react"));
17
18var _classnames = _interopRequireDefault(require("classnames"));
19
20var _omit = _interopRequireDefault(require("rc-util/lib/omit"));
21
22var _Grid = _interopRequireDefault(require("./Grid"));
23
24var _Meta = _interopRequireDefault(require("./Meta"));
25
26var _tabs = _interopRequireDefault(require("../tabs"));
27
28var _row = _interopRequireDefault(require("../row"));
29
30var _col = _interopRequireDefault(require("../col"));
31
32var _configProvider = require("../config-provider");
33
34var _SizeContext = _interopRequireDefault(require("../config-provider/SizeContext"));
35
36function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
38function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
40var __rest = void 0 && (void 0).__rest || function (s, e) {
41 var t = {};
42
43 for (var p in s) {
44 if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
45 }
46
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 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
49 }
50 return t;
51};
52
53function getAction(actions) {
54 var actionList = actions.map(function (action, index) {
55 return (
56 /*#__PURE__*/
57 // eslint-disable-next-line react/no-array-index-key
58 React.createElement("li", {
59 style: {
60 width: "".concat(100 / actions.length, "%")
61 },
62 key: "action-".concat(index)
63 }, /*#__PURE__*/React.createElement("span", null, action))
64 );
65 });
66 return actionList;
67}
68
69var Card = function Card(props) {
70 var _extends2, _classNames;
71
72 var _React$useContext = React.useContext(_configProvider.ConfigContext),
73 getPrefixCls = _React$useContext.getPrefixCls,
74 direction = _React$useContext.direction;
75
76 var size = React.useContext(_SizeContext["default"]);
77
78 var onTabChange = function onTabChange(key) {
79 var _a;
80
81 (_a = props.onTabChange) === null || _a === void 0 ? void 0 : _a.call(props, key);
82 };
83
84 var isContainGrid = function isContainGrid() {
85 var containGrid;
86 React.Children.forEach(props.children, function (element) {
87 if (element && element.type && element.type === _Grid["default"]) {
88 containGrid = true;
89 }
90 });
91 return containGrid;
92 };
93
94 var customizePrefixCls = props.prefixCls,
95 className = props.className,
96 extra = props.extra,
97 _props$headStyle = props.headStyle,
98 headStyle = _props$headStyle === void 0 ? {} : _props$headStyle,
99 _props$bodyStyle = props.bodyStyle,
100 bodyStyle = _props$bodyStyle === void 0 ? {} : _props$bodyStyle,
101 title = props.title,
102 loading = props.loading,
103 _props$bordered = props.bordered,
104 bordered = _props$bordered === void 0 ? true : _props$bordered,
105 customizeSize = props.size,
106 type = props.type,
107 cover = props.cover,
108 actions = props.actions,
109 tabList = props.tabList,
110 children = props.children,
111 activeTabKey = props.activeTabKey,
112 defaultActiveTabKey = props.defaultActiveTabKey,
113 tabBarExtraContent = props.tabBarExtraContent,
114 hoverable = props.hoverable,
115 _props$tabProps = props.tabProps,
116 tabProps = _props$tabProps === void 0 ? {} : _props$tabProps,
117 others = __rest(props, ["prefixCls", "className", "extra", "headStyle", "bodyStyle", "title", "loading", "bordered", "size", "type", "cover", "actions", "tabList", "children", "activeTabKey", "defaultActiveTabKey", "tabBarExtraContent", "hoverable", "tabProps"]);
118
119 var prefixCls = getPrefixCls('card', customizePrefixCls);
120 var loadingBlockStyle = bodyStyle.padding === 0 || bodyStyle.padding === '0px' ? {
121 padding: 24
122 } : undefined;
123 var block = /*#__PURE__*/React.createElement("div", {
124 className: "".concat(prefixCls, "-loading-block")
125 });
126 var loadingBlock = /*#__PURE__*/React.createElement("div", {
127 className: "".concat(prefixCls, "-loading-content"),
128 style: loadingBlockStyle
129 }, /*#__PURE__*/React.createElement(_row["default"], {
130 gutter: 8
131 }, /*#__PURE__*/React.createElement(_col["default"], {
132 span: 22
133 }, block)), /*#__PURE__*/React.createElement(_row["default"], {
134 gutter: 8
135 }, /*#__PURE__*/React.createElement(_col["default"], {
136 span: 8
137 }, block), /*#__PURE__*/React.createElement(_col["default"], {
138 span: 15
139 }, block)), /*#__PURE__*/React.createElement(_row["default"], {
140 gutter: 8
141 }, /*#__PURE__*/React.createElement(_col["default"], {
142 span: 6
143 }, block), /*#__PURE__*/React.createElement(_col["default"], {
144 span: 18
145 }, block)), /*#__PURE__*/React.createElement(_row["default"], {
146 gutter: 8
147 }, /*#__PURE__*/React.createElement(_col["default"], {
148 span: 13
149 }, block), /*#__PURE__*/React.createElement(_col["default"], {
150 span: 9
151 }, block)), /*#__PURE__*/React.createElement(_row["default"], {
152 gutter: 8
153 }, /*#__PURE__*/React.createElement(_col["default"], {
154 span: 4
155 }, block), /*#__PURE__*/React.createElement(_col["default"], {
156 span: 3
157 }, block), /*#__PURE__*/React.createElement(_col["default"], {
158 span: 16
159 }, block)));
160 var hasActiveTabKey = activeTabKey !== undefined;
161 var extraProps = (0, _extends3["default"])((0, _extends3["default"])({}, tabProps), (_extends2 = {}, (0, _defineProperty2["default"])(_extends2, hasActiveTabKey ? 'activeKey' : 'defaultActiveKey', hasActiveTabKey ? activeTabKey : defaultActiveTabKey), (0, _defineProperty2["default"])(_extends2, "tabBarExtraContent", tabBarExtraContent), _extends2));
162 var head;
163 var tabs = tabList && tabList.length ? /*#__PURE__*/React.createElement(_tabs["default"], (0, _extends3["default"])({
164 size: "large"
165 }, extraProps, {
166 className: "".concat(prefixCls, "-head-tabs"),
167 onChange: onTabChange
168 }), tabList.map(function (item) {
169 return /*#__PURE__*/React.createElement(_tabs["default"].TabPane, {
170 tab: item.tab,
171 disabled: item.disabled,
172 key: item.key
173 });
174 })) : null;
175
176 if (title || extra || tabs) {
177 head = /*#__PURE__*/React.createElement("div", {
178 className: "".concat(prefixCls, "-head"),
179 style: headStyle
180 }, /*#__PURE__*/React.createElement("div", {
181 className: "".concat(prefixCls, "-head-wrapper")
182 }, title && /*#__PURE__*/React.createElement("div", {
183 className: "".concat(prefixCls, "-head-title")
184 }, title), extra && /*#__PURE__*/React.createElement("div", {
185 className: "".concat(prefixCls, "-extra")
186 }, extra)), tabs);
187 }
188
189 var coverDom = cover ? /*#__PURE__*/React.createElement("div", {
190 className: "".concat(prefixCls, "-cover")
191 }, cover) : null;
192 var body = /*#__PURE__*/React.createElement("div", {
193 className: "".concat(prefixCls, "-body"),
194 style: bodyStyle
195 }, loading ? loadingBlock : children);
196 var actionDom = actions && actions.length ? /*#__PURE__*/React.createElement("ul", {
197 className: "".concat(prefixCls, "-actions")
198 }, getAction(actions)) : null;
199 var divProps = (0, _omit["default"])(others, ['onTabChange']);
200 var mergedSize = customizeSize || size;
201 var classString = (0, _classnames["default"])(prefixCls, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-loading"), loading), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-bordered"), bordered), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-hoverable"), hoverable), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-contain-grid"), isContainGrid()), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-contain-tabs"), tabList && tabList.length), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-").concat(mergedSize), mergedSize), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-type-").concat(type), !!type), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-rtl"), direction === 'rtl'), _classNames), className);
202 return /*#__PURE__*/React.createElement("div", (0, _extends3["default"])({}, divProps, {
203 className: classString
204 }), head, coverDom, body, actionDom);
205};
206
207Card.Grid = _Grid["default"];
208Card.Meta = _Meta["default"];
209var _default = Card;
210exports["default"] = _default;
\No newline at end of file