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