kitchen-simulator
Version:
It is a kitchen simulator (self-contained micro-frontend).
84 lines (83 loc) • 3.49 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = ActiveDrawingHelper;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var Geometry = _interopRequireWildcard(require("../../utils/geometry"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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 /*#__PURE__*/_react["default"].createElement("g", {
transform: "translate(".concat(snap.x, " ").concat(snap.y, ")")
}, /*#__PURE__*/_react["default"].createElement("line", {
name: "line_type_ActiveDrawingHelper",
x1: "0",
y1: "-70",
x2: "0",
y2: "70",
style: STYLE
}), /*#__PURE__*/_react["default"].createElement("line", {
name: "line_type_ActiveDrawingHelper",
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.twoLinesIntersection(snap.a, snap.b, snap.c, h0.a, h0.b, h0.c);
var pointH1 = Geometry.twoLinesIntersection(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.twoLinesIntersection(snap.a, snap.b, snap.c, v0.a, v0.b, v0.c);
var pointV1 = Geometry.twoLinesIntersection(snap.a, snap.b, snap.c, v1.a, v1.b, v1.c);
if (pointH0 && pointH1) return /*#__PURE__*/_react["default"].createElement("line", {
name: "line_type_ActiveDrawingHelper",
x1: pointH0.x,
y1: pointH0.y,
x2: pointH1.x,
y2: pointH1.y,
style: STYLE
});
if (pointV0 && pointV1) return /*#__PURE__*/_react["default"].createElement("line", {
name: "line_type_ActiveDrawingHelper",
x1: pointV0.x,
y1: pointV0.y,
x2: pointV1.x,
y2: pointV1.y,
style: STYLE
});
return null;
case 'line-segment':
return /*#__PURE__*/_react["default"].createElement("line", {
name: "line_type_ActiveDrawingHelper",
x1: snap.x1,
y1: snap.y1,
x2: snap.x2,
y2: snap.y2,
style: STYLE
});
default:
return null;
}
}
ActiveDrawingHelper.propTypes = {
snap: _propTypes["default"].object.isRequired,
width: _propTypes["default"].number.isRequired,
height: _propTypes["default"].number.isRequired
};
module.exports = exports.default;