UNPKG

react-planner-viewer

Version:

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

71 lines (53 loc) 8.17 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ActiveDrawingHelper; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _geometry = require('../../utils/geometry'); var Geometry = _interopRequireWildcard(_geometry); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var STYLE = { stroke: '#D32F2F', strokeWidth: "1px" }; function ActiveDrawingHelper(_ref) { var snap = _ref.snap, width = _ref.width, height = _ref.height; switch (snap.type) { case 'point': return _react2.default.createElement( 'g', { transform: 'translate(' + snap.x + ' ' + snap.y + ')' }, _react2.default.createElement('line', { x1: '0', y1: '-70', x2: '0', y2: '70', style: STYLE }), _react2.default.createElement('line', { x1: '-70', y1: '0', x2: '70', y2: '0', style: STYLE }) ); case 'line': var h0 = Geometry.horizontalLine(0); var h1 = Geometry.horizontalLine(height); var pointH0 = Geometry.intersectionFromTwoLines(snap.a, snap.b, snap.c, h0.a, h0.b, h0.c); var pointH1 = Geometry.intersectionFromTwoLines(snap.a, snap.b, snap.c, h1.a, h1.b, h1.c); var v0 = Geometry.verticalLine(0); var v1 = Geometry.verticalLine(width); var pointV0 = Geometry.intersectionFromTwoLines(snap.a, snap.b, snap.c, v0.a, v0.b, v0.c); var pointV1 = Geometry.intersectionFromTwoLines(snap.a, snap.b, snap.c, v1.a, v1.b, v1.c); if (pointH0 && pointH1) return _react2.default.createElement('line', { x1: pointH0.x, y1: pointH0.y, x2: pointH1.x, y2: pointH1.y, style: STYLE }); if (pointV0 && pointV1) return _react2.default.createElement('line', { x1: pointV0.x, y1: pointV0.y, x2: pointV1.x, y2: pointV1.y, style: STYLE }); return null; case 'line-segment': return _react2.default.createElement('line', { x1: snap.x1, y1: snap.y1, x2: snap.x2, y2: snap.y2, style: STYLE }); default: return null; } } ActiveDrawingHelper.propTypes = { snap: _propTypes2.default.object.isRequired, width: _propTypes2.default.number.isRequired, height: _propTypes2.default.number.isRequired }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdlcjJkL3NuYXAuanN4Il0sIm5hbWVzIjpbIkFjdGl2ZURyYXdpbmdIZWxwZXIiLCJHZW9tZXRyeSIsIlNUWUxFIiwic3Ryb2tlIiwic3Ryb2tlV2lkdGgiLCJzbmFwIiwid2lkdGgiLCJoZWlnaHQiLCJ0eXBlIiwieCIsInkiLCJoMCIsImhvcml6b250YWxMaW5lIiwiaDEiLCJwb2ludEgwIiwiaW50ZXJzZWN0aW9uRnJvbVR3b0xpbmVzIiwiYSIsImIiLCJjIiwicG9pbnRIMSIsInYwIiwidmVydGljYWxMaW5lIiwidjEiLCJwb2ludFYwIiwicG9pbnRWMSIsIngxIiwieTEiLCJ4MiIsInkyIiwicHJvcFR5cGVzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsIm51bWJlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7a0JBU3dCQSxtQjs7QUFUeEI7Ozs7QUFDQTs7OztBQUNBOztJQUFZQyxROzs7Ozs7QUFFWixJQUFNQyxRQUFRO0FBQ1pDLFVBQVEsU0FESTtBQUVaQyxlQUFhO0FBRkQsQ0FBZDs7QUFLZSxTQUFTSixtQkFBVCxPQUFvRDtBQUFBLE1BQXRCSyxJQUFzQixRQUF0QkEsSUFBc0I7QUFBQSxNQUFoQkMsS0FBZ0IsUUFBaEJBLEtBQWdCO0FBQUEsTUFBVEMsTUFBUyxRQUFUQSxNQUFTOztBQUNqRSxVQUFRRixLQUFLRyxJQUFiO0FBQ0UsU0FBSyxPQUFMO0FBQ0UsYUFDRTtBQUFBO0FBQUEsVUFBRywwQkFBd0JILEtBQUtJLENBQTdCLFNBQWtDSixLQUFLSyxDQUF2QyxNQUFIO0FBQ0UsZ0RBQU0sSUFBRyxHQUFULEVBQWEsSUFBRyxLQUFoQixFQUFzQixJQUFHLEdBQXpCLEVBQTZCLElBQUcsSUFBaEMsRUFBcUMsT0FBT1IsS0FBNUMsR0FERjtBQUVFLGdEQUFNLElBQUcsS0FBVCxFQUFlLElBQUcsR0FBbEIsRUFBc0IsSUFBRyxJQUF6QixFQUE4QixJQUFHLEdBQWpDLEVBQXFDLE9BQU9BLEtBQTVDO0FBRkYsT0FERjs7QUFNRixTQUFLLE1BQUw7QUFDRSxVQUFJUyxLQUFLVixTQUFTVyxjQUFULENBQXdCLENBQXhCLENBQVQ7QUFDQSxVQUFJQyxLQUFLWixTQUFTVyxjQUFULENBQXdCTCxNQUF4QixDQUFUO0FBQ0EsVUFBSU8sVUFBVWIsU0FBU2Msd0JBQVQsQ0FBa0NWLEtBQUtXLENBQXZDLEVBQTBDWCxLQUFLWSxDQUEvQyxFQUFrRFosS0FBS2EsQ0FBdkQsRUFBMERQLEdBQUdLLENBQTdELEVBQWdFTCxHQUFHTSxDQUFuRSxFQUFzRU4sR0FBR08sQ0FBekUsQ0FBZDtBQUNBLFVBQUlDLFVBQVVsQixTQUFTYyx3QkFBVCxDQUFrQ1YsS0FBS1csQ0FBdkMsRUFBMENYLEtBQUtZLENBQS9DLEVBQWtEWixLQUFLYSxDQUF2RCxFQUEwREwsR0FBR0csQ0FBN0QsRUFBZ0VILEdBQUdJLENBQW5FLEVBQXNFSixHQUFHSyxDQUF6RSxDQUFkOztBQUVBLFVBQUlFLEtBQUtuQixTQUFTb0IsWUFBVCxDQUFzQixDQUF0QixDQUFUO0FBQ0EsVUFBSUMsS0FBS3JCLFNBQVNvQixZQUFULENBQXNCZixLQUF0QixDQUFUO0FBQ0EsVUFBSWlCLFVBQVV0QixTQUFTYyx3QkFBVCxDQUFrQ1YsS0FBS1csQ0FBdkMsRUFBMENYLEtBQUtZLENBQS9DLEVBQWtEWixLQUFLYSxDQUF2RCxFQUEwREUsR0FBR0osQ0FBN0QsRUFBZ0VJLEdBQUdILENBQW5FLEVBQXNFRyxHQUFHRixDQUF6RSxDQUFkO0FBQ0EsVUFBSU0sVUFBVXZCLFNBQVNjLHdCQUFULENBQWtDVixLQUFLVyxDQUF2QyxFQUEwQ1gsS0FBS1ksQ0FBL0MsRUFBa0RaLEtBQUthLENBQXZELEVBQTBESSxHQUFHTixDQUE3RCxFQUFnRU0sR0FBR0wsQ0FBbkUsRUFBc0VLLEdBQUdKLENBQXpFLENBQWQ7O0FBRUEsVUFBSUosV0FBV0ssT0FBZixFQUNFLE9BQU8sd0NBQU0sSUFBSUwsUUFBUUwsQ0FBbEIsRUFBcUIsSUFBSUssUUFBUUosQ0FBakMsRUFBb0MsSUFBSVMsUUFBUVYsQ0FBaEQsRUFBbUQsSUFBSVUsUUFBUVQsQ0FBL0QsRUFBa0UsT0FBT1IsS0FBekUsR0FBUDtBQUNGLFVBQUlxQixXQUFXQyxPQUFmLEVBQ0UsT0FBTyx3Q0FBTSxJQUFJRCxRQUFRZCxDQUFsQixFQUFxQixJQUFJYyxRQUFRYixDQUFqQyxFQUFvQyxJQUFJYyxRQUFRZixDQUFoRCxFQUFtRCxJQUFJZSxRQUFRZCxDQUEvRCxFQUFrRSxPQUFPUixLQUF6RSxHQUFQO0FBQ0YsYUFBTyxJQUFQOztBQUVGLFNBQUksY0FBSjtBQUNFLGFBQU8sd0NBQU0sSUFBSUcsS0FBS29CLEVBQWYsRUFBbUIsSUFBSXBCLEtBQUtxQixFQUE1QixFQUFnQyxJQUFJckIsS0FBS3NCLEVBQXpDLEVBQTZDLElBQUl0QixLQUFLdUIsRUFBdEQsRUFBMEQsT0FBTzFCLEtBQWpFLEdBQVA7O0FBRUY7QUFDRSxhQUFPLElBQVA7QUE3Qko7QUErQkQ7O0FBRURGLG9CQUFvQjZCLFNBQXBCLEdBQWdDO0FBQzlCeEIsUUFBTSxvQkFBVXlCLE1BQVYsQ0FBaUJDLFVBRE87QUFFOUJ6QixTQUFPLG9CQUFVMEIsTUFBVixDQUFpQkQsVUFGTTtBQUc5QnhCLFVBQVEsb0JBQVV5QixNQUFWLENBQWlCRDtBQUhLLENBQWhDIiwiZmlsZSI6InNuYXAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCAqIGFzIEdlb21ldHJ5IGZyb20gJy4uLy4uL3V0aWxzL2dlb21ldHJ5JztcblxuY29uc3QgU1RZTEUgPSB7XG4gIHN0cm9rZTogJyNEMzJGMkYnLFxuICBzdHJva2VXaWR0aDogXCIxcHhcIlxufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQWN0aXZlRHJhd2luZ0hlbHBlcih7c25hcCwgd2lkdGgsIGhlaWdodH0pIHtcbiAgc3dpdGNoIChzbmFwLnR5cGUpIHtcbiAgICBjYXNlICdwb2ludCc6XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZyB0cmFuc2Zvcm09e2B0cmFuc2xhdGUoJHtzbmFwLnh9ICR7c25hcC55fSlgfT5cbiAgICAgICAgICA8bGluZSB4MT1cIjBcIiB5MT1cIi03MFwiIHgyPVwiMFwiIHkyPVwiNzBcIiBzdHlsZT17U1RZTEV9Lz5cbiAgICAgICAgICA8bGluZSB4MT1cIi03MFwiIHkxPVwiMFwiIHgyPVwiNzBcIiB5Mj1cIjBcIiBzdHlsZT17U1RZTEV9Lz5cbiAgICAgICAgPC9nPik7XG5cbiAgICBjYXNlICdsaW5lJzpcbiAgICAgIGxldCBoMCA9IEdlb21ldHJ5Lmhvcml6b250YWxMaW5lKDApO1xuICAgICAgbGV0IGgxID0gR2VvbWV0cnkuaG9yaXpvbnRhbExpbmUoaGVpZ2h0KTtcbiAgICAgIGxldCBwb2ludEgwID0gR2VvbWV0cnkuaW50ZXJzZWN0aW9uRnJvbVR3b0xpbmVzKHNuYXAuYSwgc25hcC5iLCBzbmFwLmMsIGgwLmEsIGgwLmIsIGgwLmMpO1xuICAgICAgbGV0IHBvaW50SDEgPSBHZW9tZXRyeS5pbnRlcnNlY3Rpb25Gcm9tVHdvTGluZXMoc25hcC5hLCBzbmFwLmIsIHNuYXAuYywgaDEuYSwgaDEuYiwgaDEuYyk7XG5cbiAgICAgIGxldCB2MCA9IEdlb21ldHJ5LnZlcnRpY2FsTGluZSgwKTtcbiAgICAgIGxldCB2MSA9IEdlb21ldHJ5LnZlcnRpY2FsTGluZSh3aWR0aCk7XG4gICAgICBsZXQgcG9pbnRWMCA9IEdlb21ldHJ5LmludGVyc2VjdGlvbkZyb21Ud29MaW5lcyhzbmFwLmEsIHNuYXAuYiwgc25hcC5jLCB2MC5hLCB2MC5iLCB2MC5jKTtcbiAgICAgIGxldCBwb2ludFYxID0gR2VvbWV0cnkuaW50ZXJzZWN0aW9uRnJvbVR3b0xpbmVzKHNuYXAuYSwgc25hcC5iLCBzbmFwLmMsIHYxLmEsIHYxLmIsIHYxLmMpO1xuXG4gICAgICBpZiAocG9pbnRIMCAmJiBwb2ludEgxKVxuICAgICAgICByZXR1cm4gPGxpbmUgeDE9e3BvaW50SDAueH0geTE9e3BvaW50SDAueX0geDI9e3BvaW50SDEueH0geTI9e3BvaW50SDEueX0gc3R5bGU9e1NUWUxFfS8+O1xuICAgICAgaWYgKHBvaW50VjAgJiYgcG9pbnRWMSlcbiAgICAgICAgcmV0dXJuIDxsaW5lIHgxPXtwb2ludFYwLnh9IHkxPXtwb2ludFYwLnl9IHgyPXtwb2ludFYxLnh9IHkyPXtwb2ludFYxLnl9IHN0eWxlPXtTVFlMRX0vPjtcbiAgICAgIHJldHVybiBudWxsO1xuXG4gICAgY2FzZSdsaW5lLXNlZ21lbnQnOlxuICAgICAgcmV0dXJuIDxsaW5lIHgxPXtzbmFwLngxfSB5MT17c25hcC55MX0geDI9e3NuYXAueDJ9IHkyPXtzbmFwLnkyfSBzdHlsZT17U1RZTEV9Lz47XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuQWN0aXZlRHJhd2luZ0hlbHBlci5wcm9wVHlwZXMgPSB7XG4gIHNuYXA6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgd2lkdGg6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgaGVpZ2h0OiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWRcbn07XG4iXX0=