UNPKG

react-planner-viewer

Version:

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

78 lines (65 loc) 7.38 kB
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; }; import React from 'react'; export default 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 React.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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jYXRhbG9nL2ZhY3Rvcmllcy9hcmVhLWZhY3RvcnkuanN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiQXJlYUZhY3RvcnkiLCJuYW1lIiwiaW5mbyIsInRleHR1cmVzIiwiYXJlYUVsZW1lbnQiLCJwcm90b3R5cGUiLCJ2aXNpYmlsaXR5IiwiY2F0YWxvZyIsImxheWVyRWxlbWVudHNWaXNpYmxlIiwicHJvcGVydGllcyIsInBhdHRlcm5Db2xvciIsImxhYmVsIiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsInJlbmRlcjJEIiwiZWxlbWVudCIsImxheWVyIiwic2NlbmUiLCJwYXRoIiwidmVydGljZXMiLCJmb3JFYWNoIiwidmVydGV4SUQiLCJpbmQiLCJ2ZXJ0ZXgiLCJnZXQiLCJ4IiwieSIsImhvbGVzIiwiYXJlYSIsImFyZWFzIiwiYXJlYUlEIiwicmV2ZXJzZSIsImZpbGwiLCJzaG93SGVhdE1hcCIsImhlYXRNYXBDb2xvciIsInRleHR1cmVWYWx1ZXMiLCJ0ZXh0dXJlTmFtZSIsInRleHR1cmUiLCJ2YWx1ZXMiXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBT0EsS0FBUCxNQUFrQixPQUFsQjs7QUFFQSxlQUFlLFNBQVNDLFdBQVQsQ0FBcUJDLElBQXJCLEVBQTJCQyxJQUEzQixFQUFpQ0MsUUFBakMsRUFBMkM7O0FBRXhELE1BQUlDLGNBQWM7QUFDaEJILGNBRGdCO0FBRWhCSSxlQUFXLE9BRks7QUFHaEJILHVCQUNLQSxJQURMO0FBRUVJLGtCQUFZO0FBQ1ZDLGlCQUFTLEtBREM7QUFFVkMsOEJBQXNCO0FBRlo7QUFGZCxNQUhnQjtBQVVoQkMsZ0JBQVk7QUFDVkMsb0JBQWM7QUFDWkMsZUFBTyxPQURLO0FBRVpDLGNBQU0sT0FGTTtBQUdaQyxzQkFBYztBQUhGLE9BREo7QUFNVlosWUFBTTtBQUNKVSxlQUFPLE1BREg7QUFFSkMsY0FBTSxRQUZGO0FBR0pDLHNCQUFjO0FBSFY7QUFOSSxLQVZJO0FBc0JoQkMsY0FBVSxrQkFBVUMsT0FBVixFQUFtQkMsS0FBbkIsRUFBMEJDLEtBQTFCLEVBQWlDO0FBQ3pDLFVBQUlDLE9BQU8sRUFBWDs7QUFFQTtBQUNBSCxjQUFRSSxRQUFSLENBQWlCQyxPQUFqQixDQUF5QixVQUFDQyxRQUFELEVBQVdDLEdBQVgsRUFBbUI7QUFDMUMsWUFBSUMsU0FBU1AsTUFBTUcsUUFBTixDQUFlSyxHQUFmLENBQW1CSCxRQUFuQixDQUFiO0FBQ0FILGdCQUFRLENBQUVJLE1BQU0sR0FBTixHQUFZLEdBQWQsSUFBc0JDLE9BQU9FLENBQTdCLEdBQWlDLEdBQWpDLEdBQXVDRixPQUFPRyxDQUE5QyxHQUFrRCxHQUExRDtBQUNELE9BSEQ7O0FBS0E7QUFDQVgsY0FBUVksS0FBUixDQUFjUCxPQUFkLENBQXNCLGtCQUFVO0FBQzlCLFlBQUlRLE9BQU9aLE1BQU1hLEtBQU4sQ0FBWUwsR0FBWixDQUFpQk0sTUFBakIsQ0FBWDs7QUFFQUYsYUFBS1QsUUFBTCxDQUFjWSxPQUFkLEdBQXdCWCxPQUF4QixDQUFnQyxVQUFDQyxRQUFELEVBQVdDLEdBQVgsRUFBbUI7QUFDakQsY0FBSUMsU0FBU1AsTUFBTUcsUUFBTixDQUFlSyxHQUFmLENBQW1CSCxRQUFuQixDQUFiO0FBQ0FILGtCQUFRLENBQUVJLE1BQU0sR0FBTixHQUFZLEdBQWQsSUFBc0JDLE9BQU9FLENBQTdCLEdBQWlDLEdBQWpDLEdBQXVDRixPQUFPRyxDQUE5QyxHQUFrRCxHQUExRDtBQUNELFNBSEQ7QUFLRCxPQVJEO0FBU0EsVUFBSU0sYUFBSjtBQUNBLFVBQUdqQixRQUFRa0IsV0FBUixJQUF1QmxCLFFBQVFtQixZQUFsQyxFQUErQztBQUM3Q0YsZUFBT2pCLFFBQVFtQixZQUFmO0FBQ0QsT0FGRCxNQUVNO0FBQ0pGLGVBQU9qQixRQUFRTixVQUFSLENBQW1CZSxHQUFuQixDQUF1QixjQUF2QixDQUFQO0FBQ0Q7O0FBRUQsYUFBUSw4QkFBTSxHQUFHTixJQUFULEVBQWUsTUFBTWMsSUFBckIsR0FBUjtBQUNEOztBQWpEZSxHQUFsQjs7QUFxREEsTUFBSTdCLFlBQVlBLGFBQWEsRUFBN0IsRUFBaUM7O0FBRS9CLFFBQUlnQyxnQkFBZ0I7QUFDbEIsY0FBUTtBQURVLEtBQXBCOztBQUlBLFNBQUssSUFBSUMsV0FBVCxJQUF3QmpDLFFBQXhCLEVBQWtDO0FBQ2hDZ0Msb0JBQWNDLFdBQWQsSUFBNkJqQyxTQUFTaUMsV0FBVCxFQUFzQm5DLElBQW5EO0FBQ0Q7O0FBRURHLGdCQUFZSyxVQUFaLENBQXVCNEIsT0FBdkIsR0FBaUM7QUFDL0IxQixhQUFPLE9BRHdCO0FBRS9CQyxZQUFNLE1BRnlCO0FBRy9CQyxvQkFBYyxNQUhpQjtBQUkvQnlCLGNBQVFIO0FBSnVCLEtBQWpDO0FBT0Q7O0FBRUQsU0FBTy9CLFdBQVA7QUFFRCIsImZpbGUiOiJhcmVhLWZhY3RvcnkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBBcmVhRmFjdG9yeShuYW1lLCBpbmZvLCB0ZXh0dXJlcykge1xuXG4gIGxldCBhcmVhRWxlbWVudCA9IHtcbiAgICBuYW1lLFxuICAgIHByb3RvdHlwZTogJ2FyZWFzJyxcbiAgICBpbmZvOiB7XG4gICAgICAuLi5pbmZvLFxuICAgICAgdmlzaWJpbGl0eToge1xuICAgICAgICBjYXRhbG9nOiBmYWxzZSxcbiAgICAgICAgbGF5ZXJFbGVtZW50c1Zpc2libGU6IGZhbHNlXG4gICAgICB9XG4gICAgfSxcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBwYXR0ZXJuQ29sb3I6IHtcbiAgICAgICAgbGFiZWw6ICdDb2xvcicsXG4gICAgICAgIHR5cGU6ICdjb2xvcicsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJyNmNWY0ZjQnXG4gICAgICB9LFxuICAgICAgbmFtZToge1xuICAgICAgICBsYWJlbDogJ05hbWUnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAnJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZW5kZXIyRDogZnVuY3Rpb24gKGVsZW1lbnQsIGxheWVyLCBzY2VuZSkge1xuICAgICAgbGV0IHBhdGggPSAnJztcblxuICAgICAgLy8vcHJpbnQgYXJlYSBwYXRoXG4gICAgICBlbGVtZW50LnZlcnRpY2VzLmZvckVhY2goKHZlcnRleElELCBpbmQpID0+IHtcbiAgICAgICAgbGV0IHZlcnRleCA9IGxheWVyLnZlcnRpY2VzLmdldCh2ZXJ0ZXhJRCk7XG4gICAgICAgIHBhdGggKz0gKCBpbmQgPyAnTCcgOiAnTScgKSArIHZlcnRleC54ICsgJyAnICsgdmVydGV4LnkgKyAnICc7XG4gICAgICB9KTtcblxuICAgICAgLy9hZGQgaG9sZXNcbiAgICAgIGVsZW1lbnQuaG9sZXMuZm9yRWFjaChhcmVhSUQgPT4ge1xuICAgICAgICBsZXQgYXJlYSA9IGxheWVyLmFyZWFzLmdldCggYXJlYUlEICk7XG5cbiAgICAgICAgYXJlYS52ZXJ0aWNlcy5yZXZlcnNlKCkuZm9yRWFjaCgodmVydGV4SUQsIGluZCkgPT4ge1xuICAgICAgICAgIGxldCB2ZXJ0ZXggPSBsYXllci52ZXJ0aWNlcy5nZXQodmVydGV4SUQpO1xuICAgICAgICAgIHBhdGggKz0gKCBpbmQgPyAnTCcgOiAnTScgKSArIHZlcnRleC54ICsgJyAnICsgdmVydGV4LnkgKyAnICc7XG4gICAgICAgIH0pO1xuXG4gICAgICB9KTtcbiAgICAgIGxldCBmaWxsO1xuICAgICAgaWYoZWxlbWVudC5zaG93SGVhdE1hcCAmJiBlbGVtZW50LmhlYXRNYXBDb2xvcil7XG4gICAgICAgIGZpbGwgPSBlbGVtZW50LmhlYXRNYXBDb2xvcjtcbiAgICAgIH1lbHNlIHtcbiAgICAgICAgZmlsbCA9IGVsZW1lbnQucHJvcGVydGllcy5nZXQoJ3BhdHRlcm5Db2xvcicpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoPHBhdGggZD17cGF0aH0gZmlsbD17ZmlsbH0vPik7XG4gICAgfSxcblxuICB9O1xuXG4gIGlmICh0ZXh0dXJlcyAmJiB0ZXh0dXJlcyAhPT0ge30pIHtcblxuICAgIGxldCB0ZXh0dXJlVmFsdWVzID0ge1xuICAgICAgJ25vbmUnOiAnTm9uZSdcbiAgICB9O1xuXG4gICAgZm9yIChsZXQgdGV4dHVyZU5hbWUgaW4gdGV4dHVyZXMpIHtcbiAgICAgIHRleHR1cmVWYWx1ZXNbdGV4dHVyZU5hbWVdID0gdGV4dHVyZXNbdGV4dHVyZU5hbWVdLm5hbWVcbiAgICB9XG5cbiAgICBhcmVhRWxlbWVudC5wcm9wZXJ0aWVzLnRleHR1cmUgPSB7XG4gICAgICBsYWJlbDogJ0Zsb29yJyxcbiAgICAgIHR5cGU6ICdlbnVtJyxcbiAgICAgIGRlZmF1bHRWYWx1ZTogJ25vbmUnLFxuICAgICAgdmFsdWVzOiB0ZXh0dXJlVmFsdWVzXG4gICAgfTtcblxuICB9XG5cbiAgcmV0dXJuIGFyZWFFbGVtZW50XG5cbn1cbiJdfQ==