UNPKG

react-planner-viewer

Version:

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

90 lines (72 loc) 7.62 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; exports.default = AreaFactory; var _react = require('react'); var _react2 = _interopRequireDefault(_react); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function AreaFactory(name, info, textures) { var areaElement = { name: name, prototype: 'areas', info: _extends({}, info, { visibility: { catalog: false, layerElementsVisible: false } }), properties: { patternColor: { label: 'Color', type: 'color', defaultValue: '#f5f4f4' }, name: { label: 'Name', type: 'string', defaultValue: '' } }, render2D: function render2D(element, layer, scene) { var path = ''; ///print area path element.vertices.forEach(function (vertexID, ind) { var vertex = layer.vertices.get(vertexID); path += (ind ? 'L' : 'M') + vertex.x + ' ' + vertex.y + ' '; }); //add holes element.holes.forEach(function (areaID) { var area = layer.areas.get(areaID); area.vertices.reverse().forEach(function (vertexID, ind) { var vertex = layer.vertices.get(vertexID); path += (ind ? 'L' : 'M') + vertex.x + ' ' + vertex.y + ' '; }); }); var fill = void 0; if (element.showHeatMap && element.heatMapColor) { fill = element.heatMapColor; } else { fill = element.properties.get('patternColor'); } return _react2.default.createElement('path', { d: path, fill: fill }); } }; if (textures && textures !== {}) { var textureValues = { 'none': 'None' }; for (var textureName in textures) { textureValues[textureName] = textures[textureName].name; } areaElement.properties.texture = { label: 'Floor', type: 'enum', defaultValue: 'none', values: textureValues }; } return areaElement; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jYXRhbG9nL2ZhY3Rvcmllcy9hcmVhLWZhY3RvcnkuanN4Il0sIm5hbWVzIjpbIkFyZWFGYWN0b3J5IiwibmFtZSIsImluZm8iLCJ0ZXh0dXJlcyIsImFyZWFFbGVtZW50IiwicHJvdG90eXBlIiwidmlzaWJpbGl0eSIsImNhdGFsb2ciLCJsYXllckVsZW1lbnRzVmlzaWJsZSIsInByb3BlcnRpZXMiLCJwYXR0ZXJuQ29sb3IiLCJsYWJlbCIsInR5cGUiLCJkZWZhdWx0VmFsdWUiLCJyZW5kZXIyRCIsImVsZW1lbnQiLCJsYXllciIsInNjZW5lIiwicGF0aCIsInZlcnRpY2VzIiwiZm9yRWFjaCIsInZlcnRleElEIiwiaW5kIiwidmVydGV4IiwiZ2V0IiwieCIsInkiLCJob2xlcyIsImFyZWEiLCJhcmVhcyIsImFyZWFJRCIsInJldmVyc2UiLCJmaWxsIiwic2hvd0hlYXRNYXAiLCJoZWF0TWFwQ29sb3IiLCJ0ZXh0dXJlVmFsdWVzIiwidGV4dHVyZU5hbWUiLCJ0ZXh0dXJlIiwidmFsdWVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztrQkFFd0JBLFc7O0FBRnhCOzs7Ozs7QUFFZSxTQUFTQSxXQUFULENBQXFCQyxJQUFyQixFQUEyQkMsSUFBM0IsRUFBaUNDLFFBQWpDLEVBQTJDOztBQUV4RCxNQUFJQyxjQUFjO0FBQ2hCSCxjQURnQjtBQUVoQkksZUFBVyxPQUZLO0FBR2hCSCx1QkFDS0EsSUFETDtBQUVFSSxrQkFBWTtBQUNWQyxpQkFBUyxLQURDO0FBRVZDLDhCQUFzQjtBQUZaO0FBRmQsTUFIZ0I7QUFVaEJDLGdCQUFZO0FBQ1ZDLG9CQUFjO0FBQ1pDLGVBQU8sT0FESztBQUVaQyxjQUFNLE9BRk07QUFHWkMsc0JBQWM7QUFIRixPQURKO0FBTVZaLFlBQU07QUFDSlUsZUFBTyxNQURIO0FBRUpDLGNBQU0sUUFGRjtBQUdKQyxzQkFBYztBQUhWO0FBTkksS0FWSTtBQXNCaEJDLGNBQVUsa0JBQVVDLE9BQVYsRUFBbUJDLEtBQW5CLEVBQTBCQyxLQUExQixFQUFpQztBQUN6QyxVQUFJQyxPQUFPLEVBQVg7O0FBRUE7QUFDQUgsY0FBUUksUUFBUixDQUFpQkMsT0FBakIsQ0FBeUIsVUFBQ0MsUUFBRCxFQUFXQyxHQUFYLEVBQW1CO0FBQzFDLFlBQUlDLFNBQVNQLE1BQU1HLFFBQU4sQ0FBZUssR0FBZixDQUFtQkgsUUFBbkIsQ0FBYjtBQUNBSCxnQkFBUSxDQUFFSSxNQUFNLEdBQU4sR0FBWSxHQUFkLElBQXNCQyxPQUFPRSxDQUE3QixHQUFpQyxHQUFqQyxHQUF1Q0YsT0FBT0csQ0FBOUMsR0FBa0QsR0FBMUQ7QUFDRCxPQUhEOztBQUtBO0FBQ0FYLGNBQVFZLEtBQVIsQ0FBY1AsT0FBZCxDQUFzQixrQkFBVTtBQUM5QixZQUFJUSxPQUFPWixNQUFNYSxLQUFOLENBQVlMLEdBQVosQ0FBaUJNLE1BQWpCLENBQVg7O0FBRUFGLGFBQUtULFFBQUwsQ0FBY1ksT0FBZCxHQUF3QlgsT0FBeEIsQ0FBZ0MsVUFBQ0MsUUFBRCxFQUFXQyxHQUFYLEVBQW1CO0FBQ2pELGNBQUlDLFNBQVNQLE1BQU1HLFFBQU4sQ0FBZUssR0FBZixDQUFtQkgsUUFBbkIsQ0FBYjtBQUNBSCxrQkFBUSxDQUFFSSxNQUFNLEdBQU4sR0FBWSxHQUFkLElBQXNCQyxPQUFPRSxDQUE3QixHQUFpQyxHQUFqQyxHQUF1Q0YsT0FBT0csQ0FBOUMsR0FBa0QsR0FBMUQ7QUFDRCxTQUhEO0FBS0QsT0FSRDtBQVNBLFVBQUlNLGFBQUo7QUFDQSxVQUFHakIsUUFBUWtCLFdBQVIsSUFBdUJsQixRQUFRbUIsWUFBbEMsRUFBK0M7QUFDN0NGLGVBQU9qQixRQUFRbUIsWUFBZjtBQUNELE9BRkQsTUFFTTtBQUNKRixlQUFPakIsUUFBUU4sVUFBUixDQUFtQmUsR0FBbkIsQ0FBdUIsY0FBdkIsQ0FBUDtBQUNEOztBQUVELGFBQVEsd0NBQU0sR0FBR04sSUFBVCxFQUFlLE1BQU1jLElBQXJCLEdBQVI7QUFDRDs7QUFqRGUsR0FBbEI7O0FBcURBLE1BQUk3QixZQUFZQSxhQUFhLEVBQTdCLEVBQWlDOztBQUUvQixRQUFJZ0MsZ0JBQWdCO0FBQ2xCLGNBQVE7QUFEVSxLQUFwQjs7QUFJQSxTQUFLLElBQUlDLFdBQVQsSUFBd0JqQyxRQUF4QixFQUFrQztBQUNoQ2dDLG9CQUFjQyxXQUFkLElBQTZCakMsU0FBU2lDLFdBQVQsRUFBc0JuQyxJQUFuRDtBQUNEOztBQUVERyxnQkFBWUssVUFBWixDQUF1QjRCLE9BQXZCLEdBQWlDO0FBQy9CMUIsYUFBTyxPQUR3QjtBQUUvQkMsWUFBTSxNQUZ5QjtBQUcvQkMsb0JBQWMsTUFIaUI7QUFJL0J5QixjQUFRSDtBQUp1QixLQUFqQztBQU9EOztBQUVELFNBQU8vQixXQUFQO0FBRUQiLCJmaWxlIjoiYXJlYS1mYWN0b3J5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQXJlYUZhY3RvcnkobmFtZSwgaW5mbywgdGV4dHVyZXMpIHtcblxuICBsZXQgYXJlYUVsZW1lbnQgPSB7XG4gICAgbmFtZSxcbiAgICBwcm90b3R5cGU6ICdhcmVhcycsXG4gICAgaW5mbzoge1xuICAgICAgLi4uaW5mbyxcbiAgICAgIHZpc2liaWxpdHk6IHtcbiAgICAgICAgY2F0YWxvZzogZmFsc2UsXG4gICAgICAgIGxheWVyRWxlbWVudHNWaXNpYmxlOiBmYWxzZVxuICAgICAgfVxuICAgIH0sXG4gICAgcHJvcGVydGllczoge1xuICAgICAgcGF0dGVybkNvbG9yOiB7XG4gICAgICAgIGxhYmVsOiAnQ29sb3InLFxuICAgICAgICB0eXBlOiAnY29sb3InLFxuICAgICAgICBkZWZhdWx0VmFsdWU6ICcjZjVmNGY0J1xuICAgICAgfSxcbiAgICAgIG5hbWU6IHtcbiAgICAgICAgbGFiZWw6ICdOYW1lJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJycsXG4gICAgICB9LFxuICAgIH0sXG4gICAgcmVuZGVyMkQ6IGZ1bmN0aW9uIChlbGVtZW50LCBsYXllciwgc2NlbmUpIHtcbiAgICAgIGxldCBwYXRoID0gJyc7XG5cbiAgICAgIC8vL3ByaW50IGFyZWEgcGF0aFxuICAgICAgZWxlbWVudC52ZXJ0aWNlcy5mb3JFYWNoKCh2ZXJ0ZXhJRCwgaW5kKSA9PiB7XG4gICAgICAgIGxldCB2ZXJ0ZXggPSBsYXllci52ZXJ0aWNlcy5nZXQodmVydGV4SUQpO1xuICAgICAgICBwYXRoICs9ICggaW5kID8gJ0wnIDogJ00nICkgKyB2ZXJ0ZXgueCArICcgJyArIHZlcnRleC55ICsgJyAnO1xuICAgICAgfSk7XG5cbiAgICAgIC8vYWRkIGhvbGVzXG4gICAgICBlbGVtZW50LmhvbGVzLmZvckVhY2goYXJlYUlEID0+IHtcbiAgICAgICAgbGV0IGFyZWEgPSBsYXllci5hcmVhcy5nZXQoIGFyZWFJRCApO1xuXG4gICAgICAgIGFyZWEudmVydGljZXMucmV2ZXJzZSgpLmZvckVhY2goKHZlcnRleElELCBpbmQpID0+IHtcbiAgICAgICAgICBsZXQgdmVydGV4ID0gbGF5ZXIudmVydGljZXMuZ2V0KHZlcnRleElEKTtcbiAgICAgICAgICBwYXRoICs9ICggaW5kID8gJ0wnIDogJ00nICkgKyB2ZXJ0ZXgueCArICcgJyArIHZlcnRleC55ICsgJyAnO1xuICAgICAgICB9KTtcblxuICAgICAgfSk7XG4gICAgICBsZXQgZmlsbDtcbiAgICAgIGlmKGVsZW1lbnQuc2hvd0hlYXRNYXAgJiYgZWxlbWVudC5oZWF0TWFwQ29sb3Ipe1xuICAgICAgICBmaWxsID0gZWxlbWVudC5oZWF0TWFwQ29sb3I7XG4gICAgICB9ZWxzZSB7XG4gICAgICAgIGZpbGwgPSBlbGVtZW50LnByb3BlcnRpZXMuZ2V0KCdwYXR0ZXJuQ29sb3InKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKDxwYXRoIGQ9e3BhdGh9IGZpbGw9e2ZpbGx9Lz4pO1xuICAgIH0sXG5cbiAgfTtcblxuICBpZiAodGV4dHVyZXMgJiYgdGV4dHVyZXMgIT09IHt9KSB7XG5cbiAgICBsZXQgdGV4dHVyZVZhbHVlcyA9IHtcbiAgICAgICdub25lJzogJ05vbmUnXG4gICAgfTtcblxuICAgIGZvciAobGV0IHRleHR1cmVOYW1lIGluIHRleHR1cmVzKSB7XG4gICAgICB0ZXh0dXJlVmFsdWVzW3RleHR1cmVOYW1lXSA9IHRleHR1cmVzW3RleHR1cmVOYW1lXS5uYW1lXG4gICAgfVxuXG4gICAgYXJlYUVsZW1lbnQucHJvcGVydGllcy50ZXh0dXJlID0ge1xuICAgICAgbGFiZWw6ICdGbG9vcicsXG4gICAgICB0eXBlOiAnZW51bScsXG4gICAgICBkZWZhdWx0VmFsdWU6ICdub25lJyxcbiAgICAgIHZhbHVlczogdGV4dHVyZVZhbHVlc1xuICAgIH07XG5cbiAgfVxuXG4gIHJldHVybiBhcmVhRWxlbWVudFxuXG59XG4iXX0=