react-planner-viewer
Version:
react-planner-viewer is a React Component for view plans builded with react-planner in 2D mode
70 lines (62 loc) • 6.3 kB
JavaScript
import React from 'react';
import PropTypes from 'prop-types';
import If from '../../utils/react-if';
var STYLE_LINE = {
fill: "#0096fd",
stroke: "#0096fd"
};
var STYLE_CIRCLE = {
fill: "#0096fd",
stroke: "#0096fd",
cursor: "ew-resize"
};
var STYLE_CIRCLE2 = {
fill: "none",
stroke: "#0096fd",
cursor: "ew-resize"
};
export default function Item(_ref) {
var layer = _ref.layer,
item = _ref.item,
scene = _ref.scene,
catalog = _ref.catalog;
var x = item.x,
y = item.y,
rotation = item.rotation;
var renderedItem = catalog.getElement(item.type).render2D(item, layer, scene);
return React.createElement(
'g',
{
'data-element-root': true,
'data-prototype': item.prototype,
'data-id': item.id,
'data-selected': item.selected,
'data-layer': layer.id,
style: item.selected ? { cursor: "move" } : {},
transform: 'translate(' + x + ',' + y + ') rotate(' + rotation + ')' },
renderedItem,
React.createElement(
If,
{ condition: item.selected },
React.createElement(
'g',
{ 'data-element-root': true,
'data-prototype': item.prototype,
'data-id': item.id,
'data-selected': item.selected,
'data-layer': layer.id,
'data-part': 'rotation-anchor'
},
React.createElement('circle', { cx: '0', cy: '150', r: '10', style: STYLE_CIRCLE }),
React.createElement('circle', { cx: '0', cy: '0', r: '150', style: STYLE_CIRCLE2 })
)
)
);
}
Item.propTypes = {
item: PropTypes.object.isRequired,
layer: PropTypes.object.isRequired,
scene: PropTypes.object.isRequired,
catalog: PropTypes.object.isRequired
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdlcjJkL2l0ZW0uanN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHJvcFR5cGVzIiwiSWYiLCJTVFlMRV9MSU5FIiwiZmlsbCIsInN0cm9rZSIsIlNUWUxFX0NJUkNMRSIsImN1cnNvciIsIlNUWUxFX0NJUkNMRTIiLCJJdGVtIiwibGF5ZXIiLCJpdGVtIiwic2NlbmUiLCJjYXRhbG9nIiwieCIsInkiLCJyb3RhdGlvbiIsInJlbmRlcmVkSXRlbSIsImdldEVsZW1lbnQiLCJ0eXBlIiwicmVuZGVyMkQiLCJwcm90b3R5cGUiLCJpZCIsInNlbGVjdGVkIiwicHJvcFR5cGVzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsS0FBUCxNQUFrQixPQUFsQjtBQUNBLE9BQU9DLFNBQVAsTUFBc0IsWUFBdEI7QUFDQSxPQUFPQyxFQUFQLE1BQWUsc0JBQWY7O0FBRUEsSUFBTUMsYUFBYTtBQUNqQkMsUUFBTSxTQURXO0FBRWpCQyxVQUFRO0FBRlMsQ0FBbkI7O0FBS0EsSUFBTUMsZUFBZTtBQUNuQkYsUUFBTSxTQURhO0FBRW5CQyxVQUFRLFNBRlc7QUFHbkJFLFVBQVE7QUFIVyxDQUFyQjs7QUFNQSxJQUFNQyxnQkFBZ0I7QUFDcEJKLFFBQU0sTUFEYztBQUVwQkMsVUFBUSxTQUZZO0FBR3BCRSxVQUFRO0FBSFksQ0FBdEI7O0FBTUEsZUFBZSxTQUFTRSxJQUFULE9BQTZDO0FBQUEsTUFBOUJDLEtBQThCLFFBQTlCQSxLQUE4QjtBQUFBLE1BQXZCQyxJQUF1QixRQUF2QkEsSUFBdUI7QUFBQSxNQUFqQkMsS0FBaUIsUUFBakJBLEtBQWlCO0FBQUEsTUFBVkMsT0FBVSxRQUFWQSxPQUFVO0FBQUEsTUFFckRDLENBRnFELEdBRW5DSCxJQUZtQyxDQUVyREcsQ0FGcUQ7QUFBQSxNQUVsREMsQ0FGa0QsR0FFbkNKLElBRm1DLENBRWxESSxDQUZrRDtBQUFBLE1BRS9DQyxRQUYrQyxHQUVuQ0wsSUFGbUMsQ0FFL0NLLFFBRitDOzs7QUFJMUQsTUFBSUMsZUFBZUosUUFBUUssVUFBUixDQUFtQlAsS0FBS1EsSUFBeEIsRUFBOEJDLFFBQTlCLENBQXVDVCxJQUF2QyxFQUE2Q0QsS0FBN0MsRUFBb0RFLEtBQXBELENBQW5COztBQUVBLFNBQ0U7QUFBQTtBQUFBO0FBQ0UsK0JBREY7QUFFRSx3QkFBZ0JELEtBQUtVLFNBRnZCO0FBR0UsaUJBQVNWLEtBQUtXLEVBSGhCO0FBSUUsdUJBQWVYLEtBQUtZLFFBSnRCO0FBS0Usb0JBQVliLE1BQU1ZLEVBTHBCO0FBTUUsYUFBT1gsS0FBS1ksUUFBTCxHQUFnQixFQUFDaEIsUUFBUSxNQUFULEVBQWhCLEdBQW1DLEVBTjVDO0FBT0UsZ0NBQXdCTyxDQUF4QixTQUE2QkMsQ0FBN0IsaUJBQTBDQyxRQUExQyxNQVBGO0FBU0dDLGdCQVRIO0FBVUU7QUFBQyxRQUFEO0FBQUEsUUFBSSxXQUFXTixLQUFLWSxRQUFwQjtBQUNFO0FBQUE7QUFBQSxVQUFHLHlCQUFIO0FBQ0csNEJBQWdCWixLQUFLVSxTQUR4QjtBQUVHLHFCQUFTVixLQUFLVyxFQUZqQjtBQUdHLDJCQUFlWCxLQUFLWSxRQUh2QjtBQUlHLHdCQUFZYixNQUFNWSxFQUpyQjtBQUtHLHVCQUFVO0FBTGI7QUFPRSx3Q0FBUSxJQUFHLEdBQVgsRUFBZSxJQUFHLEtBQWxCLEVBQXdCLEdBQUUsSUFBMUIsRUFBK0IsT0FBT2hCLFlBQXRDLEdBUEY7QUFRRSx3Q0FBUSxJQUFHLEdBQVgsRUFBZSxJQUFHLEdBQWxCLEVBQXNCLEdBQUUsS0FBeEIsRUFBOEIsT0FBT0UsYUFBckM7QUFSRjtBQURGO0FBVkYsR0FERjtBQXlCRDs7QUFFREMsS0FBS2UsU0FBTCxHQUFpQjtBQUNmYixRQUFNVixVQUFVd0IsTUFBVixDQUFpQkMsVUFEUjtBQUVmaEIsU0FBT1QsVUFBVXdCLE1BQVYsQ0FBaUJDLFVBRlQ7QUFHZmQsU0FBT1gsVUFBVXdCLE1BQVYsQ0FBaUJDLFVBSFQ7QUFJZmIsV0FBU1osVUFBVXdCLE1BQVYsQ0FBaUJDO0FBSlgsQ0FBakIiLCJmaWxlIjoiaXRlbS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IElmIGZyb20gJy4uLy4uL3V0aWxzL3JlYWN0LWlmJztcblxuY29uc3QgU1RZTEVfTElORSA9IHtcbiAgZmlsbDogXCIjMDA5NmZkXCIsXG4gIHN0cm9rZTogXCIjMDA5NmZkXCJcbn07XG5cbmNvbnN0IFNUWUxFX0NJUkNMRSA9IHtcbiAgZmlsbDogXCIjMDA5NmZkXCIsXG4gIHN0cm9rZTogXCIjMDA5NmZkXCIsXG4gIGN1cnNvcjogXCJldy1yZXNpemVcIlxufTtcblxuY29uc3QgU1RZTEVfQ0lSQ0xFMiA9IHtcbiAgZmlsbDogXCJub25lXCIsXG4gIHN0cm9rZTogXCIjMDA5NmZkXCIsXG4gIGN1cnNvcjogXCJldy1yZXNpemVcIlxufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gSXRlbSh7bGF5ZXIsIGl0ZW0sIHNjZW5lLCBjYXRhbG9nfSkge1xuXG4gIGxldCB7eCwgeSwgcm90YXRpb259ID0gaXRlbTtcblxuICBsZXQgcmVuZGVyZWRJdGVtID0gY2F0YWxvZy5nZXRFbGVtZW50KGl0ZW0udHlwZSkucmVuZGVyMkQoaXRlbSwgbGF5ZXIsIHNjZW5lKTtcblxuICByZXR1cm4gKFxuICAgIDxnXG4gICAgICBkYXRhLWVsZW1lbnQtcm9vdFxuICAgICAgZGF0YS1wcm90b3R5cGU9e2l0ZW0ucHJvdG90eXBlfVxuICAgICAgZGF0YS1pZD17aXRlbS5pZH1cbiAgICAgIGRhdGEtc2VsZWN0ZWQ9e2l0ZW0uc2VsZWN0ZWR9XG4gICAgICBkYXRhLWxheWVyPXtsYXllci5pZH1cbiAgICAgIHN0eWxlPXtpdGVtLnNlbGVjdGVkID8ge2N1cnNvcjogXCJtb3ZlXCJ9IDoge319XG4gICAgICB0cmFuc2Zvcm09e2B0cmFuc2xhdGUoJHt4fSwke3l9KSByb3RhdGUoJHtyb3RhdGlvbn0pYH0+XG5cbiAgICAgIHtyZW5kZXJlZEl0ZW19XG4gICAgICA8SWYgY29uZGl0aW9uPXtpdGVtLnNlbGVjdGVkfT5cbiAgICAgICAgPGcgZGF0YS1lbGVtZW50LXJvb3RcbiAgICAgICAgICAgZGF0YS1wcm90b3R5cGU9e2l0ZW0ucHJvdG90eXBlfVxuICAgICAgICAgICBkYXRhLWlkPXtpdGVtLmlkfVxuICAgICAgICAgICBkYXRhLXNlbGVjdGVkPXtpdGVtLnNlbGVjdGVkfVxuICAgICAgICAgICBkYXRhLWxheWVyPXtsYXllci5pZH1cbiAgICAgICAgICAgZGF0YS1wYXJ0PVwicm90YXRpb24tYW5jaG9yXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCIwXCIgY3k9XCIxNTBcIiByPVwiMTBcIiBzdHlsZT17U1RZTEVfQ0lSQ0xFfS8+XG4gICAgICAgICAgPGNpcmNsZSBjeD1cIjBcIiBjeT1cIjBcIiByPVwiMTUwXCIgc3R5bGU9e1NUWUxFX0NJUkNMRTJ9Lz5cbiAgICAgICAgPC9nPlxuICAgICAgPC9JZj5cbiAgICA8L2c+XG4gIClcbn1cblxuSXRlbS5wcm9wVHlwZXMgPSB7XG4gIGl0ZW06IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgbGF5ZXI6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgc2NlbmU6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgY2F0YWxvZzogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkXG59O1xuXG4iXX0=