UNPKG

react-planner-viewer

Version:

react-planner-viewer is a React Component for view plans builded with react-planner in 2D mode

104 lines (80 loc) 9.28 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Line; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _geometry = require('../../utils/geometry'); var _ruler = require('./ruler'); var _ruler2 = _interopRequireDefault(_ruler); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function Line(_ref) { var line = _ref.line, layer = _ref.layer, scene = _ref.scene, catalog = _ref.catalog, fontSize = _ref.fontSize; var vertex0 = layer.vertices.get(line.vertices.get(0)); var vertex1 = layer.vertices.get(line.vertices.get(1)); if (vertex0.id === vertex1.id) return null; //avoid 0-length lines if (vertex0.x === vertex1.x && vertex0.y === vertex1.y) return null; var x1 = vertex0.x, y1 = vertex0.y; var x2 = vertex1.x, y2 = vertex1.y; if (x1 > x2) { x1 = vertex1.x; y1 = vertex1.y; x2 = vertex0.x; y2 = vertex0.y; } var length = (0, _geometry.pointsDistance)(x1, y1, x2, y2); var angle = (0, _geometry.angleBetweenTwoPointsAndOrigin)(x1, y1, x2, y2); var renderedHoles = line.holes.map(function (holeID) { var hole = layer.holes.get(holeID); var startAt = length * hole.offset; var renderedHole = catalog.getElement(hole.type).render2D(hole, layer, scene, fontSize); return _react2.default.createElement( 'g', { key: holeID, transform: 'translate(' + startAt + ', 0)', 'data-element-root': true, 'data-prototype': hole.prototype, 'data-id': hole.id, 'data-selected': hole.selected, 'data-layer': layer.id }, ' ', renderedHole, ' ' ); }); var unit = scene.unit; var renderedLine = catalog.getElement(line.type).render2D(line, layer); var renderedRuler = line.selected ? _react2.default.createElement(_ruler2.default, { unit: unit, length: length, transform: 'translate(0, 15)' }) : null; return _react2.default.createElement( 'g', { transform: 'translate(' + x1 + ', ' + y1 + ') rotate(' + angle + ', 0, 0)', 'data-element-root': true, 'data-prototype': line.prototype, 'data-id': line.id, 'data-selected': line.selected, 'data-layer': layer.id, style: line.selected ? { cursor: "move" } : {} }, renderedLine, renderedHoles ); } Line.propTypes = { line: _propTypes2.default.object.isRequired, layer: _propTypes2.default.object.isRequired, scene: _propTypes2.default.object.isRequired, catalog: _propTypes2.default.object.isRequired }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdlcjJkL2xpbmUuanN4Il0sIm5hbWVzIjpbIkxpbmUiLCJsaW5lIiwibGF5ZXIiLCJzY2VuZSIsImNhdGFsb2ciLCJmb250U2l6ZSIsInZlcnRleDAiLCJ2ZXJ0aWNlcyIsImdldCIsInZlcnRleDEiLCJpZCIsIngiLCJ5IiwieDEiLCJ5MSIsIngyIiwieTIiLCJsZW5ndGgiLCJhbmdsZSIsInJlbmRlcmVkSG9sZXMiLCJob2xlcyIsIm1hcCIsImhvbGUiLCJob2xlSUQiLCJzdGFydEF0Iiwib2Zmc2V0IiwicmVuZGVyZWRIb2xlIiwiZ2V0RWxlbWVudCIsInR5cGUiLCJyZW5kZXIyRCIsInByb3RvdHlwZSIsInNlbGVjdGVkIiwidW5pdCIsInJlbmRlcmVkTGluZSIsInJlbmRlcmVkUnVsZXIiLCJjdXJzb3IiLCJwcm9wVHlwZXMiLCJvYmplY3QiLCJpc1JlcXVpcmVkIl0sIm1hcHBpbmdzIjoiOzs7OztrQkFLd0JBLEk7O0FBTHhCOzs7O0FBQ0E7Ozs7QUFDQTs7QUFDQTs7Ozs7O0FBRWUsU0FBU0EsSUFBVCxPQUF1RDtBQUFBLE1BQXhDQyxJQUF3QyxRQUF4Q0EsSUFBd0M7QUFBQSxNQUFsQ0MsS0FBa0MsUUFBbENBLEtBQWtDO0FBQUEsTUFBM0JDLEtBQTJCLFFBQTNCQSxLQUEyQjtBQUFBLE1BQXBCQyxPQUFvQixRQUFwQkEsT0FBb0I7QUFBQSxNQUFYQyxRQUFXLFFBQVhBLFFBQVc7OztBQUVwRSxNQUFJQyxVQUFVSixNQUFNSyxRQUFOLENBQWVDLEdBQWYsQ0FBbUJQLEtBQUtNLFFBQUwsQ0FBY0MsR0FBZCxDQUFrQixDQUFsQixDQUFuQixDQUFkO0FBQ0EsTUFBSUMsVUFBVVAsTUFBTUssUUFBTixDQUFlQyxHQUFmLENBQW1CUCxLQUFLTSxRQUFMLENBQWNDLEdBQWQsQ0FBa0IsQ0FBbEIsQ0FBbkIsQ0FBZDs7QUFFQSxNQUFJRixRQUFRSSxFQUFSLEtBQWVELFFBQVFDLEVBQTNCLEVBQStCLE9B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QVYsQ0FBaUJDO0FBSlgsQ0FBakIiLCJmaWxlIjoibGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHtwb2ludHNEaXN0YW5jZSwgYW5nbGVCZXR3ZWVuVHdvUG9pbnRzQW5kT3JpZ2lufSBmcm9tICcuLi8uLi91dGlscy9nZW9tZXRyeSc7XG5pbXBvcnQgUnVsZXIgZnJvbSAnLi9ydWxlcic7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIExpbmUoe2xpbmUsIGxheWVyLCBzY2VuZSwgY2F0YWxvZywgZm9udFNpemV9KSB7XG5cbiAgbGV0IHZlcnRleDAgPSBsYXllci52ZXJ0aWNlcy5nZXQobGluZS52ZXJ0aWNlcy5nZXQoMCkpO1xuICBsZXQgdmVydGV4MSA9IGxheWVyLnZlcnRpY2VzLmdldChsaW5lLnZlcnRpY2VzLmdldCgxKSk7XG5cbiAgaWYgKHZlcnRleDAuaWQgPT09IHZlcnRleDEuaWQpIHJldHVybiBudWxsOyAvL2F2b2lkIDAtbGVuZ3RoIGxpbmVzXG4gIGlmICh2ZXJ0ZXgwLnggPT09IHZlcnRleDEueCAmJiB2ZXJ0ZXgwLnkgPT09IHZlcnRleDEueSkgcmV0dXJuIG51bGw7XG5cbiAgbGV0IHt4OiB4MSwgeTogeTF9ID0gdmVydGV4MDtcbiAgbGV0IHt4OiB4MiwgeTogeTJ9ID0gdmVydGV4MTtcblxuICBpZiAoeDEgPiB4Mikge1xuICAgICh7eDogeDEsIHk6IHkxfSA9IHZlcnRleDEpO1xuICAgICh7eDogeDIsIHk6IHkyfSA9IHZlcnRleDApO1xuICB9XG5cbiAgbGV0IGxlbmd0aCA9IHBvaW50c0Rpc3RhbmNlKHgxLCB5MSwgeDIsIHkyKTtcbiAgbGV0IGFuZ2xlID0gYW5nbGVCZXR3ZWVuVHdvUG9pbnRzQW5kT3JpZ2luKHgxLCB5MSwgeDIsIHkyKTtcblxuICBsZXQgcmVuZGVyZWRIb2xlcyA9IGxpbmUuaG9sZXMubWFwKGhvbGVJRCA9PiB7XG4gICAgbGV0IGhvbGUgPSBsYXllci5ob2xlcy5nZXQoaG9sZUlEKTtcbiAgICBsZXQgc3RhcnRBdCA9IGxlbmd0aCAqIGhvbGUub2Zmc2V0O1xuICAgIGxldCByZW5kZXJlZEhvbGUgPSBjYXRhbG9nLmdldEVsZW1lbnQoaG9sZS50eXBlKS5yZW5kZXIyRChob2xlLCBsYXllciwgc2NlbmUsIGZvbnRTaXplKTtcblxuICAgIHJldHVybiA8Z1xuICAgICAga2V5PXtob2xlSUR9XG4gICAgICB0cmFuc2Zvcm09e2B0cmFuc2xhdGUoJHtzdGFydEF0fSwgMClgfVxuICAgICAgZGF0YS1lbGVtZW50LXJvb3RcbiAgICAgIGRhdGEtcHJvdG90eXBlPXtob2xlLnByb3RvdHlwZX1cbiAgICAgIGRhdGEtaWQ9e2hvbGUuaWR9XG4gICAgICBkYXRhLXNlbGVjdGVkPXtob2xlLnNlbGVjdGVkfVxuICAgICAgZGF0YS1sYXllcj17bGF5ZXIuaWR9XG4gICAgPiB7cmVuZGVyZWRIb2xlfSA8L2c+O1xuICB9KTtcblxuICBsZXQge3VuaXR9ID0gc2NlbmU7XG5cbiAgbGV0IHJlbmRlcmVkTGluZSA9IGNhdGFsb2cuZ2V0RWxlbWVudChsaW5lLnR5cGUpLnJlbmRlcjJEKGxpbmUsIGxheWVyKTtcbiAgbGV0IHJlbmRlcmVkUnVsZXIgPSBsaW5lLnNlbGVjdGVkID8gPFJ1bGVyIHVuaXQ9e3VuaXR9IGxlbmd0aD17bGVuZ3RofSB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMCwgMTUpXCIvPiA6IG51bGw7XG5cbiAgcmV0dXJuIChcbiAgICA8Z1xuICAgICAgdHJhbnNmb3JtPXtgdHJhbnNsYXRlKCR7eDF9LCAke3kxfSkgcm90YXRlKCR7YW5nbGV9LCAwLCAwKWB9XG4gICAgICBkYXRhLWVsZW1lbnQtcm9vdFxuICAgICAgZGF0YS1wcm90b3R5cGU9e2xpbmUucHJvdG90eXBlfVxuICAgICAgZGF0YS1pZD17bGluZS5pZH1cbiAgICAgIGRhdGEtc2VsZWN0ZWQ9e2xpbmUuc2VsZWN0ZWR9XG4gICAgICBkYXRhLWxheWVyPXtsYXllci5pZH1cbiAgICAgIHN0eWxlPXtsaW5lLnNlbGVjdGVkID8ge2N1cnNvcjogXCJtb3ZlXCJ9IDoge319XG4gICAgPlxuICAgICAgey8qcmVuZGVyZWRSdWxlciovfVxuICAgICAge3JlbmRlcmVkTGluZX1cbiAgICAgIHtyZW5kZXJlZEhvbGVzfVxuICAgIDwvZz5cbiAgKTtcblxufVxuXG5MaW5lLnByb3BUeXBlcyA9IHtcbiAgbGluZTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBsYXllcjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBzY2VuZTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBjYXRhbG9nOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG59O1xuIl19