UNPKG

@carbon/ibm-security

Version:

Carbon for Cloud & Cognitive IBM Security UI components

107 lines (105 loc) 5.09 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.namespace = exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _classnames2 = _interopRequireDefault(require("classnames")); var _propTypes = require("prop-types"); var _react = _interopRequireWildcard(require("react")); var _namespace = require("../../globals/namespace"); var _excluded = ["className", "children", "label", "link", "header", "body", "footer", "onClick"]; /** * @file Card. * @copyright IBM Security 2019, 2021 */ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } var namespace = exports.namespace = (0, _namespace.getComponentNamespace)('card'); var Card = function Card(_ref) { var className = _ref.className, children = _ref.children, label = _ref.label, link = _ref.link, header = _ref.header, body = _ref.body, footer = _ref.footer, onClick = _ref.onClick, other = (0, _objectWithoutProperties2.default)(_ref, _excluded); var cardHeader = header && /*#__PURE__*/_react.default.createElement("div", { className: "".concat(namespace, "__header") }, header.tag && /*#__PURE__*/_react.default.createElement("p", { className: "".concat(namespace, "__header__tag") }, header.tag), header.image && /*#__PURE__*/_react.default.createElement("img", { className: "".concat(namespace, "__header__image"), alt: label, src: header.image }), /*#__PURE__*/_react.default.createElement("h1", { className: "".concat(namespace, "__header__title") }, header.title)); var cardBody = body && /*#__PURE__*/_react.default.createElement("div", { className: "".concat(namespace, "__body") }, body.text && /*#__PURE__*/_react.default.createElement("p", { className: "".concat(namespace, "__body__text") }, body.text), body.children); var cardFooter = footer && /*#__PURE__*/_react.default.createElement("div", { className: "".concat(namespace, "__footer") }, footer.children); var content = /*#__PURE__*/_react.default.createElement(_react.Fragment, null, cardHeader, cardBody, cardFooter, children); var classNames = (0, _classnames2.default)(namespace, className, (0, _defineProperty2.default)({}, "".concat(namespace, "__link"), link)); return link ? /*#__PURE__*/_react.default.createElement("a", (0, _extends2.default)({ className: classNames, href: link, "aria-label": label, onClick: onClick }, other), content) : /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({ className: classNames }, other), content); }; /** Card child elements. */ var children = (0, _propTypes.oneOfType)([_propTypes.array, _propTypes.element, _propTypes.string]); Card.defaultProps = { body: null, children: null, className: '', footer: null, header: null, label: '', link: null, onClick: null }; Card.propTypes = { /** @type {Record<string, any>} An object list of body props. */ body: (0, _propTypes.shape)({ children: children, /** @type {string} The text of the body. */ text: _propTypes.string }), children: children, /** @type {string} The class. */ className: _propTypes.string, /** @type {Record<string, any>} An object list of footer props. */ footer: (0, _propTypes.shape)({ children: children }), /** @type {Record<string, any>} An object list of header props. */ header: (0, _propTypes.shape)({ /** @type {string} The image of the header. */ image: _propTypes.string, /** @type {string} Card header tag. */ tag: _propTypes.node, /** @type {string} The title of the header. */ title: _propTypes.string.isRequired }), /** @type {string} The alt tag content for an image, if included in the header object. */ label: _propTypes.string, /** @type {string} The link. */ link: _propTypes.string, /** @type {string} Click handler. */ onClick: _propTypes.func }; var _default = exports.default = Card;