UNPKG

chayns-components

Version:

A set of beautiful React components for developing chayns® applications.

78 lines (75 loc) 3.88 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _clsx = _interopRequireDefault(require("clsx")); var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireWildcard(require("react")); var _Icon = _interopRequireDefault(require("../../react-chayns-icon/component/Icon")); var _is = require("../../utils/is"); require("./ImageContainer.css"); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _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; } /* eslint-disable react/no-array-index-key */ class ImageContainer extends _react.PureComponent { render() { const { children, tools, className, style } = this.props; return /*#__PURE__*/_react.default.createElement("div", { className: (0, _clsx.default)('cc__image-container', className), style: style }, /*#__PURE__*/_react.default.createElement("div", { className: "cc__image-container__content" }, children), tools && tools.length > 0 ? /*#__PURE__*/_react.default.createElement("div", { className: "cc__image-container__tools" }, tools.map((tool, index) => /*#__PURE__*/_react.default.createElement("div", { key: `tool${index}`, onClick: tool.onClick, onMouseDown: tool.onDown, onTouchStart: tool.onDown, onMouseMove: tool.onMove, onTouchMove: tool.onMove, onMouseUp: tool.onUp, onTouchEnd: tool.onUp, onTouchCancel: tool.onUp, className: (0, _clsx.default)('image-tool', tool.className, (0, _is.isString)(tool.icon) && tool.icon), style: { display: 'flex', flexDirection: 'column', justifyContent: 'center', alignItems: 'center' } }, !(0, _is.isString)(tool.icon) ? /*#__PURE__*/_react.default.createElement(_Icon.default, { icon: tool.icon }) : false))) : null); } } exports.default = ImageContainer; ImageContainer.propTypes = { children: _propTypes.default.node.isRequired, tools: _propTypes.default.arrayOf(_propTypes.default.shape({ icon: _propTypes.default.oneOfType([_propTypes.default.string.isRequired, _propTypes.default.shape({ iconName: _propTypes.default.string.isRequired, prefix: _propTypes.default.string.isRequired }).isRequired]).isRequired, onClick: _propTypes.default.func, onDown: _propTypes.default.func, onMove: _propTypes.default.func, onUp: _propTypes.default.func, className: _propTypes.default.string })), className: _propTypes.default.string, // eslint-disable-next-line react/forbid-prop-types style: _propTypes.default.object }; ImageContainer.defaultProps = { tools: [], className: null, style: null }; ImageContainer.displayName = 'ImageContainer'; //# sourceMappingURL=ImageContainer.js.map