UNPKG

@findify/react-components

Version:
103 lines (93 loc) 5.11 kB
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } /** * @module components/Cards/Content */ import Image from "../../common/Image"; import Text from "../../Text"; import Truncate from "../../common/Truncate"; var styles = { "root": "findify-components--cards--content", "vertical": "findify-components--cards--content__vertical", "autocomplete": "findify-components--cards--content__autocomplete", "horizontal": "findify-components--cards--content__horizontal", "bubble": "findify-components--cards--content__bubble", "title": "findify-components--cards--content__title", "highlighted": "findify-components--cards--content__highlighted", "content": "findify-components--cards--content__content", "image": "findify-components--cards--content__image", "title-link": "findify-components--cards--content__title-link", "description": "findify-components--cards--content__description", "titleLink": "findify-components--cards--content__title-link" }; import cx from 'classnames'; import { jsx as _jsx } from "react/jsx-runtime"; import { jsxs as _jsxs } from "react/jsx-runtime"; var Title = function Title(_ref) { var text = _ref.text, theme = _ref.theme, onClick = _ref.onClick, href = _ref.href, rest = _objectWithoutProperties(_ref, ["text", "theme", "onClick", "href"]); return !!text ? /*#__PURE__*/_jsx(Text, _objectSpread(_objectSpread({ component: "h3", className: theme.title }, rest), {}, { children: /*#__PURE__*/_jsx("a", { className: theme.titleLink, onClick: onClick, href: href, children: text }) })) : null; }; var Description = function Description(_ref2) { var text = _ref2.text, theme = _ref2.theme, rest = _objectWithoutProperties(_ref2, ["text", "theme"]); return !!text ? /*#__PURE__*/_jsx("p", _objectSpread(_objectSpread({ className: theme.description }, rest), {}, { children: /*#__PURE__*/_jsx(Truncate, { children: text }) })) : null; }; export default (function (_ref3) { var item = _ref3.item, config = _ref3.config, _ref3$theme = _ref3.theme, theme = _ref3$theme === void 0 ? styles : _ref3$theme, highlighted = _ref3.highlighted, isAutocomplete = _ref3.isAutocomplete; return /*#__PURE__*/_jsxs("a", { "data-element": "card", className: cx(theme.root, theme[config.get('template')], highlighted && theme.highlighted, isAutocomplete && theme.autocomplete), href: item.get('url'), children: [/*#__PURE__*/_jsxs("div", { className: theme.content, children: [/*#__PURE__*/_jsx(Title, { theme: theme, text: item.get('title'), onClick: item.onClick, href: item.get('url') }), /*#__PURE__*/_jsx(Description, { theme: theme, text: item.get('description') })] }), item.get('image_url') ? /*#__PURE__*/_jsx("div", { className: theme.image, onClick: item.onClick, children: /*#__PURE__*/_jsx(Image, { aspectRatio: config.getIn(['image', 'aspectRatio']), alt: item.get('title'), lazy: config.getIn(['image', 'lazy']), offset: config.getIn(['image', 'lazyOffset']), src: item.get('image_url') }) }) : null] }); });