chayns-components
Version:
A set of beautiful React components for developing chayns® applications.
78 lines (75 loc) • 3.88 kB
JavaScript
"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