react-planner
Version:
react-planner is a React Component for plans design. Draw a 2D floorplan and navigate it in 3D mode.
86 lines (70 loc) • 2.19 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = Item;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _reactIf = require('../../utils/react-if');
var _reactIf2 = _interopRequireDefault(_reactIf);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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"
};
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 _react2.default.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,
_react2.default.createElement(
_reactIf2.default,
{ condition: item.selected },
_react2.default.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'
},
_react2.default.createElement('circle', { cx: '0', cy: '150', r: '10', style: STYLE_CIRCLE }),
_react2.default.createElement('circle', { cx: '0', cy: '0', r: '150', style: STYLE_CIRCLE2 })
)
)
);
}
Item.propTypes = {
item: _propTypes2.default.object.isRequired,
layer: _propTypes2.default.object.isRequired,
scene: _propTypes2.default.object.isRequired,
catalog: _propTypes2.default.object.isRequired
};