kitchen-simulator
Version:
It is a kitchen simulator (self-contained micro-frontend).
232 lines (231 loc) • 9 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = Ruler3D;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireDefault(require("react"));
var _constants = require("../../../constants");
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function Ruler3D(_ref) {
var layer = _ref.layer,
line = _ref.line,
viewScale = _ref.viewScale,
downloadFlag = _ref.downloadFlag;
var diagonalPointValue = 5 * viewScale;
var STYLE = {
stroke: _constants.TEXT_COLOR_NEUTRAL_6,
strokeWidth: viewScale,
opacity: '0.6'
};
var STYLE_TEXT = {
textAnchor: 'middle',
fontSize: downloadFlag ? 32 * viewScale : 16 * viewScale,
// fontWeight: "bold",
pointerEvents: 'none',
fill: _constants.TEXT_COLOR_NEUTRAL_6,
//http://stackoverflow.com/questions/826782/how-to-disable-text-selection-highlighting-using-css
WebkitTouchCallout: 'none' /* iOS Safari */,
WebkitUserSelect: 'none' /* Chrome/Safari/Opera */,
MozUserSelect: 'none' /* Firefox */,
MsUserSelect: 'none' /* Internet Explorer/Edge */,
userSelect: 'none'
};
var getDistance = function getDistance(v0, v1) {
return Math.sqrt((v0.x - v1.x) * (v0.x - v1.x) + (v0.y - v1.y) * (v0.y - v1.y));
};
var v0 = line.v0,
v1 = line.v1,
space = line.space;
var text = line.text.endsWith('.0') ? line.text.slice(0, line.text.length - 2) : line.text;
var length = getDistance(v0, v1);
var textLength = (text.length + layer.unit.length) * 18 * viewScale;
if (v0.y === v1.y) {
if (v0.x < v1.x) {
return /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("line", {
x1: v0.x,
y1: v0.y,
x2: v0.x,
y2: v0.y - space,
style: STYLE
}), /*#__PURE__*/_react["default"].createElement("g", {
transform: "translate(".concat(v0.x, ", ").concat(v0.y - space, ")")
}, /*#__PURE__*/_react["default"].createElement("line", {
x1: -diagonalPointValue,
y1: -diagonalPointValue,
x2: diagonalPointValue,
y2: diagonalPointValue,
style: STYLE
}), /*#__PURE__*/_react["default"].createElement("line", {
x1: 0,
y1: 0,
x2: textLength > length ? 0 : (length - textLength) / 2,
y2: 0,
style: STYLE
}), /*#__PURE__*/_react["default"].createElement("text", {
x: length / 2,
y: "3",
style: STYLE_TEXT
}, text, layer.unit === 'in' ? '"' : layer.unit), /*#__PURE__*/_react["default"].createElement("line", {
x1: length,
y1: 0,
x2: textLength > length ? length : (length + textLength) / 2,
y2: 0,
style: STYLE
}), /*#__PURE__*/_react["default"].createElement("line", {
x1: length - diagonalPointValue,
y1: -diagonalPointValue,
x2: length + diagonalPointValue,
y2: diagonalPointValue,
style: STYLE
})), /*#__PURE__*/_react["default"].createElement("line", {
x1: v1.x,
y1: v1.y,
x2: v1.x,
y2: v1.y - space,
style: STYLE
}));
} else {
return /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("line", {
x1: v0.x,
y1: v0.y,
x2: v0.x,
y2: v0.y + space,
style: STYLE
}), /*#__PURE__*/_react["default"].createElement("g", {
transform: "translate(".concat(v0.x, ", ").concat(v0.y + space, ")")
}, /*#__PURE__*/_react["default"].createElement("line", {
x1: -diagonalPointValue,
y1: -diagonalPointValue,
x2: diagonalPointValue,
y2: diagonalPointValue,
style: STYLE
}), /*#__PURE__*/_react["default"].createElement("line", {
x1: 0,
y1: 0,
x2: textLength > length ? 0 : -(length - textLength) / 2,
y2: 0,
style: STYLE
}), /*#__PURE__*/_react["default"].createElement("text", {
x: -length / 2,
y: "3",
style: STYLE_TEXT
}, text, layer.unit === 'in' ? '"' : layer.unit), /*#__PURE__*/_react["default"].createElement("line", {
x1: -length,
y1: 0,
x2: textLength > length ? -length : -(length + textLength) / 2,
y2: 0,
style: STYLE
}), /*#__PURE__*/_react["default"].createElement("line", {
x1: -length - diagonalPointValue,
y1: -diagonalPointValue,
x2: -length + diagonalPointValue,
y2: diagonalPointValue,
style: STYLE
})), /*#__PURE__*/_react["default"].createElement("line", {
x1: v1.x,
y1: v1.y,
x2: v1.x,
y2: v1.y + space,
style: STYLE
}));
}
} else if (v0.x = v1.x) {
if (v0.y < v1.y) {
return /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("line", {
x1: v0.x,
y1: v0.y,
x2: v0.x + space,
y2: v0.y,
style: STYLE
}), /*#__PURE__*/_react["default"].createElement("g", {
transform: "translate(".concat(v0.x + space, ", ").concat(v0.y, ")")
}, /*#__PURE__*/_react["default"].createElement("line", {
x1: -diagonalPointValue,
y1: -diagonalPointValue,
x2: diagonalPointValue,
y2: diagonalPointValue,
style: STYLE
}), /*#__PURE__*/_react["default"].createElement("line", {
x1: 0,
y1: 0,
x2: 0,
y2: textLength > length ? 0 : (length - textLength) / 2,
style: STYLE
}), /*#__PURE__*/_react["default"].createElement("text", {
x: length / 2,
y: 0,
style: _objectSpread(_objectSpread({}, STYLE_TEXT), {}, {
transform: 'rotate(90deg)'
})
}, text, layer.unit === 'in' ? '"' : layer.unit), /*#__PURE__*/_react["default"].createElement("line", {
x1: 0,
y1: length,
x2: 0,
y2: textLength > length ? length : (length + textLength) / 2,
style: STYLE
}), /*#__PURE__*/_react["default"].createElement("line", {
x1: -diagonalPointValue,
y1: length - diagonalPointValue,
x2: diagonalPointValue,
y2: length + diagonalPointValue,
style: STYLE
})), /*#__PURE__*/_react["default"].createElement("line", {
x1: v1.x,
y1: v1.y,
x2: v1.x + space,
y2: v1.y,
style: STYLE
}));
} else {
return /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("line", {
x1: v0.x,
y1: v0.y,
x2: v0.x - space,
y2: v0.y,
style: STYLE
}), /*#__PURE__*/_react["default"].createElement("g", {
transform: "translate(".concat(v0.x - space, ", ").concat(v0.y, ")")
}, /*#__PURE__*/_react["default"].createElement("line", {
x1: -diagonalPointValue,
y1: -diagonalPointValue,
x2: diagonalPointValue,
y2: diagonalPointValue,
style: STYLE
}), /*#__PURE__*/_react["default"].createElement("line", {
x1: 0,
y1: 0,
x2: 0,
y2: textLength > length ? 0 : -(length - textLength) / 2,
style: STYLE
}), /*#__PURE__*/_react["default"].createElement("text", {
x: -length / 2,
y: 0,
style: _objectSpread(_objectSpread({}, STYLE_TEXT), {}, {
transform: 'rotate(90deg)'
})
}, text, layer.unit === 'in' ? '"' : layer.unit), /*#__PURE__*/_react["default"].createElement("line", {
x1: 0,
y1: -length,
x2: 0,
y2: textLength > length ? -length : -(length + textLength) / 2,
style: STYLE
}), /*#__PURE__*/_react["default"].createElement("line", {
x1: -diagonalPointValue,
y1: -length - diagonalPointValue,
x2: diagonalPointValue,
y2: -length + diagonalPointValue,
style: STYLE
})), /*#__PURE__*/_react["default"].createElement("line", {
x1: v1.x,
y1: v1.y,
x2: v1.x - space,
y2: v1.y,
style: STYLE
}));
}
} else return null;
}
module.exports = exports.default;