react-planner-viewer
Version:
react-planner-viewer is a React Component for view plans builded with react-planner in 2D mode
73 lines (62 loc) • 7.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (state, action) {
switch (action.type) {
case _constants.SELECT_AREA:
return selectArea(state, action.layerID, action.areaID);
case _constants.SHOW_HEAT_MAP_AREAS:
return showHeatMapAreas(state, action.layerID, action.heatMapValues, action.colors);
default:
return state;
}
};
var _layerOperations = require('../utils/layer-operations');
var _constants = require('../constants');
var _models = require('../models');
function selectArea(state, layerID, areaID) {
var scene = state.scene;
scene = scene.merge({
layers: scene.layers.map(_layerOperations.unselectAll),
selectedLayer: layerID
});
scene = scene.updateIn(['layers', layerID], function (layer) {
return layer.withMutations(function (layer) {
var area = layer.getIn(['areas', areaID]);
(0, _layerOperations.select)(layer, 'areas', areaID);
var areaVertices = area.vertices;
var areaLinesIds = [];
var allLines = layer.lines.forEach(function (line) {
var lineVertices = line.get('vertices');
var lineBelongsToArea = lineVertices.every(function (vert) {
return areaVertices.includes(vert);
});
if (lineBelongsToArea) {
(0, _layerOperations.select)(layer, 'lines', line.get('id'));
}
});
});
});
return state.merge({
scene: scene,
sceneHistory: state.sceneHistory.push(scene)
});
}
function showHeatMapAreas(state, layerID, heatMapValues, colors) {
var scene = state.scene;
scene = scene.merge({
layers: scene.layers.map(_layerOperations.unselectAll),
selectedLayer: layerID
});
scene = scene.updateIn(['layers', layerID], function (layer) {
return layer.withMutations(function (layer) {
(0, _layerOperations.showHeatMap)(layer, heatMapValues, colors);
});
});
return state.merge({
scene: scene,
sceneHistory: state.sceneHistory.push(scene)
});
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWR1Y2Vycy9hcmVhcy1yZWR1Y2VyLmpzIl0sIm5hbWVzIjpbInN0YXRlIiwiYWN0aW9uIiwidHlwZSIsInNlbGVjdEFyZWEiLCJsYXllcklEIiwiYXJlYUlEIiwic2hvd0hlYXRNYXBBcmVhcyIsImhlYXRNYXBWYWx1ZXMiLCJjb2xvcnMiLCJzY2VuZSIsIm1lcmdlIiwibGF5ZXJzIiwibWFwIiwic2VsZWN0ZWRMYXllciIsInVwZGF0ZUluIiwibGF5ZXIiLCJ3aXRoTXV0YXRpb25zIiwiYXJlYSIsImdldEluIiwiYXJlYVZlcnRpY2VzIiwidmVydGljZXMiLCJhcmVhTGluZXNJZHMiLCJhbGxMaW5lcyIsImxpbmVzIiwiZm9yRWFjaCIsImxpbmVWZXJ0aWNlcyIsImxpbmUiLCJnZXQiLCJsaW5lQmVsb25nc1RvQXJlYSIsImV2ZXJ5IiwiaW5jbHVkZXMiLCJ2ZXJ0Iiwic2NlbmVIaXN0b3J5IiwicHVzaCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O2tCQVNlLFVBQVVBLEtBQVYsRUFBaUJDLE1BQWpCLEVBQXlCOztBQUV0QyxVQUFRQSxPQUFPQyxJQUFmO0FBQ0U7QUFDRSxhQUFPQyxXQUFXSCxLQUFYLEVBQWtCQyxPQUFPRyxPQUF6QixFQUFrQ0gsT0FBT0ksTUFBekMsQ0FBUDtBQUNGO0FBQ0UsYUFBT0MsaUJBQWlCTixLQUFqQixFQUF3QkMsT0FBT0csT0FBL0IsRUFBd0NILE9BQU9NLGFBQS9DLEVBQThETixPQUFPTyxNQUFyRSxDQUFQO0FBQ0Y7QUFDRSxhQUFPUixLQUFQO0FBTko7QUFRRCxDOztBQW5CRDs7QUFNQTs7QUFDQTs7QUFlQSxTQUFTRyxVQUFULENBQW9CSCxLQUFwQixFQUEyQkksT0FBM0IsRUFBb0NDLE1BQXBDLEVBQTRDO0FBQzFDLE1BQUlJLFFBQVFULE1BQU1TLEtBQWxCOztBQUVBQSxVQUFRQSxNQUFNQyxLQUFOLENBQVk7QUFDbEJDLFlBQVFGLE1BQU1FLE1BQU4sQ0FBYUMsR0FBYiw4QkFEVTtBQUVsQkMsbUJBQWVUO0FBRkcsR0FBWixDQUFSOztBQUtBSyxVQUFRQSxNQUFNSyxRQUFOLENBQWUsQ0FBQyxRQUFELEVBQVdWLE9BQVgsQ0FBZixFQUFvQztBQUFBLFdBQVNXLE1BQU1DLGFBQU4sQ0FBb0IsaUJBQVM7QUFDaEYsVUFBSUMsT0FBT0YsTUFBTUcsS0FBTixDQUFZLENBQUMsT0FBRCxFQUFVYixNQUFWLENBQVosQ0FBWDtBQUNBLG1DQUFPVSxLQUFQLEVBQWMsT0FBZCxFQUF1QlYsTUFBdkI7QUFDQSxVQUFNYyxlQUFlRixLQUFLRyxRQUExQjtBQUNBLFVBQU1DLGVBQWUsRUFBckI7QUFDQSxVQUFNQyxXQUFXUCxNQUFNUSxLQUFOLENBQVlDLE9BQVosQ0FBb0IsZ0JBQVE7QUFDM0MsWUFBTUMsZUFBZUMsS0FBS0MsR0FBTCxDQUFTLFVBQVQsQ0FBckI7QUFDQSxZQUFNQyxvQkFBb0JILGFBQWFJLEtBQWIsQ0FBbUI7QUFBQSxpQkFBUVYsYUFBYVcsUUFBYixDQUFzQkMsSUFBdEIsQ0FBUjtBQUFBLFNBQW5CLENBQTFCO0FBQ0EsWUFBR0gsaUJBQUgsRUFBcUI7QUFDcEIsdUNBQU9iLEtBQVAsRUFBYyxPQUFkLEVBQXVCVyxLQUFLQyxHQUFMLENBQVMsSUFBVCxDQUF2QjtBQUNBO0FBQ0YsT0FOZ0IsQ0FBakI7QUFRRCxLQWJvRCxDQUFUO0FBQUEsR0FBcEMsQ0FBUjs7QUFnQkEsU0FBTzNCLE1BQU1VLEtBQU4sQ0FBWTtBQUNqQkQsZ0JBRGlCO0FBRWpCdUIsa0JBQWNoQyxNQUFNZ0MsWUFBTixDQUFtQkMsSUFBbkIsQ0FBd0J4QixLQUF4QjtBQUZHLEdBQVosQ0FBUDtBQUlEO0FBQ0QsU0FBU0gsZ0JBQVQsQ0FBMEJOLEtBQTFCLEVBQWlDSSxPQUFqQyxFQUEwQ0csYUFBMUMsRUFBeURDLE1BQXpELEVBQWlFO0FBQy9ELE1BQUlDLFFBQVFULE1BQU1TLEtBQWxCO0FBQ0FBLFVBQVFBLE1BQU1DLEtBQU4sQ0FBWTtBQUNsQkMsWUFBUUYsTUFBTUUsTUFBTixDQUFhQyxHQUFiLDhCQURVO0FBRWxCQyxtQkFBZVQ7QUFGRyxHQUFaLENBQVI7QUFJQUssVUFBUUEsTUFBTUssUUFBTixDQUFlLENBQUMsUUFBRCxFQUFXVixPQUFYLENBQWYsRUFBb0M7QUFBQSxXQUFTVyxNQUFNQyxhQUFOLENBQW9CLGlCQUFTO0FBQ2hGLHdDQUFZRCxLQUFaLEVBQW1CUixhQUFuQixFQUFrQ0MsTUFBbEM7QUFDRCxLQUZvRCxDQUFUO0FBQUEsR0FBcEMsQ0FBUjs7QUFLQSxTQUFPUixNQUFNVSxLQUFOLENBQVk7QUFDakJELGdCQURpQjtBQUVqQnVCLGtCQUFjaEMsTUFBTWdDLFlBQU4sQ0FBbUJDLElBQW5CLENBQXdCeEIsS0FBeEI7QUFGRyxHQUFaLENBQVA7QUFJRCIsImZpbGUiOiJhcmVhcy1yZWR1Y2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgc2VsZWN0LFxuICB1bnNlbGVjdEFsbCxcbiAgc2hvd0hlYXRNYXAsXG59IGZyb20gJy4uL3V0aWxzL2xheWVyLW9wZXJhdGlvbnMnO1xuXG5pbXBvcnQgeyBTRUxFQ1RfQVJFQSwgU0hPV19IRUFUX01BUF9BUkVBUyB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBWZXJ0ZXggfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoc3RhdGUsIGFjdGlvbikge1xuXG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICBjYXNlIFNFTEVDVF9BUkVBOlxuICAgICAgcmV0dXJuIHNlbGVjdEFyZWEoc3RhdGUsIGFjdGlvbi5sYXllcklELCBhY3Rpb24uYXJlYUlEKTtcbiAgICBjYXNlIFNIT1dfSEVBVF9NQVBfQVJFQVM6XG4gICAgICByZXR1cm4gc2hvd0hlYXRNYXBBcmVhcyhzdGF0ZSwgYWN0aW9uLmxheWVySUQsIGFjdGlvbi5oZWF0TWFwVmFsdWVzLCBhY3Rpb24uY29sb3JzKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXRlO1xuICB9XG59XG5cblxuZnVuY3Rpb24gc2VsZWN0QXJlYShzdGF0ZSwgbGF5ZXJJRCwgYXJlYUlEKSB7XG4gIGxldCBzY2VuZSA9IHN0YXRlLnNjZW5lO1xuXG4gIHNjZW5lID0gc2NlbmUubWVyZ2Uoe1xuICAgIGxheWVyczogc2NlbmUubGF5ZXJzLm1hcCh1bnNlbGVjdEFsbCksXG4gICAgc2VsZWN0ZWRMYXllcjogbGF5ZXJJRFxuICB9KTtcblxuICBzY2VuZSA9IHNjZW5lLnVwZGF0ZUluKFsnbGF5ZXJzJywgbGF5ZXJJRF0sIGxheWVyID0+IGxheWVyLndpdGhNdXRhdGlvbnMobGF5ZXIgPT4ge1xuICAgIGxldCBhcmVhID0gbGF5ZXIuZ2V0SW4oWydhcmVhcycsIGFyZWFJRF0pO1xuICAgIHNlbGVjdChsYXllciwgJ2FyZWFzJywgYXJlYUlEKTtcbiAgICBjb25zdCBhcmVhVmVydGljZXMgPSBhcmVhLnZlcnRpY2VzO1xuICAgIGNvbnN0IGFyZWFMaW5lc0lkcyA9IFtdO1xuICAgIGNvbnN0IGFsbExpbmVzID0gbGF5ZXIubGluZXMuZm9yRWFjaChsaW5lID0+IHtcbiAgICAgIGNvbnN0IGxpbmVWZXJ0aWNlcyA9IGxpbmUuZ2V0KCd2ZXJ0aWNlcycpO1xuICAgICAgY29uc3QgbGluZUJlbG9uZ3NUb0FyZWEgPSBsaW5lVmVydGljZXMuZXZlcnkodmVydCA9PiBhcmVhVmVydGljZXMuaW5jbHVkZXModmVydCkpO1xuICAgICAgaWYobGluZUJlbG9uZ3NUb0FyZWEpe1xuICAgICAgIHNlbGVjdChsYXllciwgJ2xpbmVzJywgbGluZS5nZXQoJ2lkJykpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIFxuICB9KVxuKTtcblxuICByZXR1cm4gc3RhdGUubWVyZ2Uoe1xuICAgIHNjZW5lLFxuICAgIHNjZW5lSGlzdG9yeTogc3RhdGUuc2NlbmVIaXN0b3J5LnB1c2goc2NlbmUpXG4gIH0pXG59XG5mdW5jdGlvbiBzaG93SGVhdE1hcEFyZWFzKHN0YXRlLCBsYXllcklELCBoZWF0TWFwVmFsdWVzLCBjb2xvcnMpIHtcbiAgbGV0IHNjZW5lID0gc3RhdGUuc2NlbmU7XG4gIHNjZW5lID0gc2NlbmUubWVyZ2Uoe1xuICAgIGxheWVyczogc2NlbmUubGF5ZXJzLm1hcCh1bnNlbGVjdEFsbCksXG4gICAgc2VsZWN0ZWRMYXllcjogbGF5ZXJJRFxuICB9KTtcbiAgc2NlbmUgPSBzY2VuZS51cGRhdGVJbihbJ2xheWVycycsIGxheWVySURdLCBsYXllciA9PiBsYXllci53aXRoTXV0YXRpb25zKGxheWVyID0+IHtcbiAgICBzaG93SGVhdE1hcChsYXllciwgaGVhdE1hcFZhbHVlcywgY29sb3JzKTtcbiAgfSlcbiAgKTtcblxuICByZXR1cm4gc3RhdGUubWVyZ2Uoe1xuICAgIHNjZW5lLFxuICAgIHNjZW5lSGlzdG9yeTogc3RhdGUuc2NlbmVIaXN0b3J5LnB1c2goc2NlbmUpXG4gIH0pXG59Il19