UNPKG

wix-style-react

Version:
108 lines (107 loc) 5.48 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; 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 _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _ImageSt = require("./Image.st.css"); var _excluded = ["width", "fit", "position", "showBorder", "borderRadius", "transparent", "alt"], _excluded2 = ["dataHook", "src", "style", "className"]; var _jsxFileName = "/home/builduser/work/a9c1ac8876d5057c/packages/wix-style-react/dist/cjs/Image/Image.js"; function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var placeholderSource = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='164' height='120' viewBox='0 0 164 120'%3E%3Cg fill='none'%3E%3Crect width='164' height='120' fill='%23DAEFFE'/%3E%3Cpath fill='%23B9E3FF' d='M-8.52651283e-14,120 L49.0917544,74.9616932 C52.151039,72.1550101 56.848961,72.1550101 59.9082456,74.9616932 L71.293,85.4057534 L96.9019846,59.8591624 C100.0299,56.7386931 105.095216,56.744729 108.215685,59.8726439 C108.284098,59.9412201 108.35126,60.0110332 108.417137,60.0820486 L164,120 L-8.52651283e-14,120 Z'/%3E%3Ccircle cx='67.5' cy='43.5' r='10.5' fill='%23F5FBFF'/%3E%3C/g%3E%3C/svg%3E%0A"; var placeholderStyle = { objectFit: 'cover' }; var Image = _ref => { var { width = '100%', fit = 'cover', position = 'center', showBorder = false, borderRadius = '8px', transparent = false, alt = '' } = _ref, propsWithNoDefaults = (0, _objectWithoutProperties2.default)(_ref, _excluded); var _width$propsWithNoDef = _objectSpread({ width }, propsWithNoDefaults), { dataHook, src, style, className } = _width$propsWithNoDef, otherProps = (0, _objectWithoutProperties2.default)(_width$propsWithNoDef, _excluded2); var source = src || placeholderSource; var isTiled = !!src && fit === 'tile'; var imgStyle = !src ? placeholderStyle : isTiled ? { backgroundPosition: position, backgroundImage: source ? "url(\"".concat(source, "\")") : undefined } : { objectFit: fit, objectPosition: position }; return /*#__PURE__*/_react.default.createElement("img", (0, _extends2.default)({}, otherProps, { className: (0, _ImageSt.st)(_ImageSt.classes.root, { tiled: isTiled, showBorder, transparent }, className), "data-hook": dataHook, "data-transparent": transparent, src: source, alt: alt, style: _objectSpread(_objectSpread(_objectSpread({}, style), imgStyle), {}, { borderRadius }), __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 40, columnNumber: 5 } })); }; Image.propTypes = { /** * Sets the border radius of the image box. */ borderRadius: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]), /** Applies a data-hook HTML attribute that can be used in the tests. */ dataHook: _propTypes.default.string, /** Specifies a CSS class name to be appended to the component’s root element. */ className: _propTypes.default.string, /** * Specifies whether to display a border around an image. */ showBorder: _propTypes.default.bool, /** Specifies an URL link to image source. If not provided, a default placeholder image will be displayed. */ src: _propTypes.default.string, /** Specifies an alt text for an image. If not provided, will be set to empty and treated as decorative. */ alt: _propTypes.default.string, /** Sets the width of the image box. */ width: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]), /** Sets the height of the image box. */ height: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]), /** * Specifies image fit mode inside a box. * Check [object-fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) CSS property values for more info. */ fit: _propTypes.default.oneOf(['contain', 'cover', 'tile', 'none']), /** * Specifies source content position inside of an image box. Accepts any valid * [CSS position](https://developer.mozilla.org/en-US/docs/Web/CSS/position_value) value. */ position: _propTypes.default.string, /** Specifies whether background of Image is transparent */ transparent: _propTypes.default.bool }; Image.displayName = 'Image'; var _default = exports.default = Image; //# sourceMappingURL=Image.js.map