UNPKG

kitchen-simulator

Version:

It is a kitchen simulator (self-contained micro-frontend).

87 lines (86 loc) 3.35 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = Ruler; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _convertUnitsLite = require("../../utils/convert-units-lite"); var _idBroker = _interopRequireDefault(require("../../utils/id-broker")); var _constants = require("../../constants"); var _line = require("./line"); var STYLE = { stroke: _constants.TEXT_COLOR_NEUTRAL_7, strokeWidth: '1px' }; var BACKGROUNDSTYLE = { fill: 'transparent', fillOpacity: 0.8 }; var STYLE_TEXT = { textAnchor: 'middle', fontSize: '12px', pointerEvents: 'none', fill: '#455A64', //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' }; function Ruler(_ref) { var layer = _ref.layer, length = _ref.length, unit = _ref.unit, rulerUnit = _ref.rulerUnit, transform = _ref.transform, style = _ref.style; var distanceText = (0, _convertUnitsLite.convert)(length).from(unit).to(rulerUnit).toFixed(0); var textLength = (distanceText.length + layer.unit.length) * 9; return /*#__PURE__*/_react["default"].createElement("g", { transform: transform }, /*#__PURE__*/_react["default"].createElement("g", { id: "ruler" }, /*#__PURE__*/_react["default"].createElement("rect", { id: "ruler_rect_".concat(_idBroker["default"].acquireID()), style: BACKGROUNDSTYLE, x: length / 2 - textLength / 2, y: "-10", width: textLength, height: "22", rx: "1", ry: "0.39" }), /*#__PURE__*/_react["default"].createElement("text", { x: length / 2, y: "3", transform: "scale(1, -1)", style: STYLE_TEXT, fill: _constants.TEXT_COLOR_NEUTRAL_7 }, Math.round((0, _convertUnitsLite.convert)(distanceText).from('in').to(layer.unit) * 100) / 100, layer.unit === 'in' ? '"' : layer.unit)), /*#__PURE__*/_react["default"].createElement("line", { x1: style === _line.STYLE_ROOM_SHAPE ? 0 : 4, y1: "0", x2: (length - textLength) / 2 < 0 ? 0 : (length - textLength) / 2, y2: "0", style: style }), /*#__PURE__*/_react["default"].createElement("line", { x1: (length + textLength) / 2 < 0 ? 0 : (length + textLength) / 2 < length ? (length + textLength) / 2 : length, y1: "0", x2: style === _line.STYLE_ROOM_SHAPE ? length : length - 4, y2: "0", style: style }), style !== _line.STYLE_ROOM_SHAPE && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("polygon", { points: "3, 0, 6.5, -2, 6.5, 2 ", style: style }), /*#__PURE__*/_react["default"].createElement("polygon", { points: "".concat(length - 3, ", 0, ").concat(length - 6.5, ", 2, ").concat(length - 6.5, ", -2"), style: style }))); } Ruler.propTypes = { length: _propTypes["default"].number.isRequired, unit: _propTypes["default"].string.isRequired, transform: _propTypes["default"].string.isRequired }; module.exports = exports.default;