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
JavaScript
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==