UNPKG

react-planner-viewer

Version:

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

105 lines (81 loc) 9.28 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = function (state, action) { switch (action.type) { case _constants.ADD_LAYER: return addLayer(state, action.name, action.altitude); case _constants.SELECT_LAYER: return selectLayer(state, action.layerID); case _constants.SET_LAYER_PROPERTIES: return setLayerProperties(state, action.layerID, action.properties); case _constants.REMOVE_LAYER: return removeLayer(state, action.layerID); default: return state; } }; var _constants = require('../constants'); var _models = require('../models'); var _idBroker = require('../utils/id-broker'); var _idBroker2 = _interopRequireDefault(_idBroker); var _layerOperations = require('../utils/layer-operations'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function addLayer(state, name, altitude) { var layerID = _idBroker2.default.acquireID(); name = name || 'layer ' + layerID; altitude = altitude || 0; var layer = new _models.Layer({ id: layerID, name: name, altitude: altitude }); var scene = state.scene; scene = scene.merge({ selectedLayer: layerID, layers: scene.layers.set(layerID, layer) }); return state.merge({ scene: scene, sceneHistory: state.sceneHistory.push(scene) }); } function selectLayer(state, layerID) { var scene = state.scene; scene = scene.merge({ selectedLayer: layerID, layers: scene.layers.map(function (layer) { return (0, _layerOperations.unselectAll)(layer); }) }); return state.merge({ scene: scene, sceneHistory: state.sceneHistory.push(scene) }); } function setLayerProperties(state, layerID, properties) { var scene = state.scene; var layers = scene.layers.mergeIn([layerID], properties); layers = layers.sort(function (layerA, layerB) { return layerA.altitude !== layerB.altitude ? layerB.altitude - layerA.altitude : layerA.order - layerB.order; }); scene = scene.set('layers', layers); return state.merge({ scene: scene, sceneHistory: state.sceneHistory.push(scene) }); } function removeLayer(state, layerID) { var scene = state.scene; var layers = scene.layers.delete(layerID); if (layers.isEmpty()) { scene = new _models.Scene(); } else { scene = scene.merge({ selectedLayer: scene.selectedLayer !== layerID ? scene.selectedLayer : layers.first().id, layers: layers }); } return state.merge({ scene: scene, sceneHistory: state.sceneHistory.push(scene) }); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWR1Y2Vycy9zY2VuZS1yZWR1Y2VyLmpzIl0sIm5hbWVzIjpbInN0YXRlIiwiYWN0aW9uIiwidHlwZSIsImFkZExheWVyIiwibmFtZSIsImFsdGl0dWRlIiwic2VsZWN0TGF5ZXIiLCJsYXllcklEIiwic2V0TGF5ZXJQcm9wZXJ0aWVzIiwicHJvcGVydGllcyIsInJlbW92ZUxheWVyIiwiYWNxdWlyZUlEIiwibGF5ZXIiLCJpZCIsInNjZW5lIiwibWVyZ2UiLCJzZWxlY3RlZExheWVyIiwibGF5ZXJzIiwic2V0Iiwic2NlbmVIaXN0b3J5IiwicHVzaCIsIm1hcCIsIm1lcmdlSW4iLCJzb3J0IiwibGF5ZXJBIiwibGF5ZXJCIiwib3JkZXIiLCJkZWxldGUiLCJpc0VtcHR5IiwiZmlyc3QiXSwibWFwcGluZ3MiOiI7Ozs7OztrQkFXZSxVQUFVQSxLQUFWLEVBQWlCQyxNQUFqQixFQUF5QjtBQUN0QyxVQUFRQSxPQUFPQyxJQUFmO0FBQ0U7QUFDRSxhQUFPQyxTQUFTSCxLQUFULEVBQWdCQyxPQUFPRyxJQUF2QixFQUE2QkgsT0FBT0ksUUFBcEMsQ0FBUDs7QUFFRjtBQUNFLGFBQU9DLFlBQVlOLEtBQVosRUFBbUJDLE9BQU9NLE9BQTFCLENBQVA7O0FBRUY7QUFDRSxhQUFPQyxtQkFBbUJSLEtBQW5CLEVBQTBCQyxPQUFPTSxPQUFqQyxFQUEwQ04sT0FBT1EsVUFBakQsQ0FBUDs7QUFFRjtBQUNFLGFBQU9DLFlBQVlWLEtBQVosRUFBbUJDLE9BQU9NLE9BQTFCLENBQVA7O0FBRUY7QUFDRSxhQUFPUCxLQUFQO0FBZEo7QUFnQkQsQzs7QUE1QkQ7O0FBT0E7O0FBQ0E7Ozs7QUFDQTs7OztBQXFCQSxTQUFTRyxRQUFULENBQWtCSCxLQUFsQixFQUF5QkksSUFBekIsRUFBK0JDLFFBQS9CLEVBQXlDO0FBQ3ZDLE1BQUlFLFVBQVUsbUJBQVNJLFNBQVQsRUFBZDtBQUNBUCxTQUFPQSxtQkFBaUJHLE9BQXhCO0FBQ0FGLGFBQVdBLFlBQVksQ0FBdkI7O0FBRUEsTUFBSU8sUUFBUSxrQkFBVSxFQUFDQyxJQUFJTixPQUFMLEVBQWNILFVBQWQsRUFBb0JDLGtCQUFwQixFQUFWLENBQVo7QUFDQSxNQUFJUyxRQUFRZCxNQUFNYyxLQUFsQjtBQUNBQSxVQUFRQSxNQUFNQyxLQUFOLENBQVk7QUFDbEJDLG1CQUFlVCxPQURHO0FBRWxCVSxZQUFRSCxNQUFNRyxNQUFOLENBQWFDLEdBQWIsQ0FBaUJYLE9BQWpCLEVBQTBCSyxLQUExQjtBQUZVLEdBQVosQ0FBUjs7QUFLQSxTQUFPWixNQUFNZSxLQUFOLENBQVk7QUFDakJELGdCQURpQjtBQUVqQkssa0JBQWNuQixNQUFNbUIsWUFBTixDQUFtQkMsSUFBbkIsQ0FBd0JOLEtBQXhCO0FBRkcsR0FBWixDQUFQO0FBSUQ7O0FBRUQsU0FBU1IsV0FBVCxDQUFxQk4sS0FBckIsRUFBNEJPLE9BQTVCLEVBQXFDO0FBQ25DLE1BQUlPLFFBQVFkLE1BQU1jLEtBQWxCO0FBQ0FBLFVBQVFBLE1BQU1DLEtBQU4sQ0FBWTtBQUNsQkMsbUJBQWVULE9BREc7QUFFbEJVLFlBQVFILE1BQU1HLE1BQU4sQ0FBYUksR0FBYixDQUFpQjtBQUFBLGFBQVMsa0NBQVlULEtBQVosQ0FBVDtBQUFBLEtBQWpCO0FBRlUsR0FBWixDQUFSOztBQUtBLFNBQU9aLE1BQU1lLEtBQU4sQ0FBWTtBQUNqQkQsZ0JBRGlCO0FBRWpCSyxrQkFBY25CLE1BQU1tQixZQUFOLENBQW1CQyxJQUFuQixDQUF3Qk4sS0FBeEI7QUFGRyxHQUFaLENBQVA7QUFJRDs7QUFFRCxTQUFTTixrQkFBVCxDQUE0QlIsS0FBNUIsRUFBbUNPLE9BQW5DLEVBQTRDRSxVQUE1QyxFQUF3RDtBQUN0RCxNQUFJSyxRQUFRZCxNQUFNYyxLQUFsQjs7QUFFQSxNQUFJRyxTQUFTSCxNQUFNRyxNQUFOLENBQWFLLE9BQWIsQ0FBcUIsQ0FBQ2YsT0FBRCxDQUFyQixFQUFnQ0UsVUFBaEMsQ0FBYjtBQUNBUSxXQUFTQSxPQUFPTSxJQUFQLENBQVksVUFBQ0MsTUFBRCxFQUFTQyxNQUFUO0FBQUEsV0FDbkJELE9BQU9uQixRQUFQLEtBQW9Cb0IsT0FBT3BCLFFBQTNCLEdBQXNDb0IsT0FBT3BCLFFBQVAsR0FBa0JtQixPQUFPbkIsUUFBL0QsR0FBMEVtQixPQUFPRSxLQUFQLEdBQWVELE9BQU9DLEtBRDdFO0FBQUEsR0FBWixDQUFUOztBQUlBWixVQUFRQSxNQUFNSSxHQUFOLENBQVUsUUFBVixFQUFvQkQsTUFBcEIsQ0FBUjs7QUFFQSxTQUFPakIsTUFBTWUsS0FBTixDQUFZO0FBQ2pCRCxnQkFEaUI7QUFFakJLLGtCQUFjbkIsTUFBTW1CLFlBQU4sQ0FBbUJDLElBQW5CLENBQXdCTixLQUF4QjtBQUZHLEdBQVosQ0FBUDtBQUlEOztBQUVELFNBQVNKLFdBQVQsQ0FBcUJWLEtBQXJCLEVBQTRCTyxPQUE1QixFQUFxQztBQUNuQyxNQUFJTyxRQUFRZCxNQUFNYyxLQUFsQjtBQUNBLE1BQUlHLFNBQVNILE1BQU1HLE1BQU4sQ0FBYVUsTUFBYixDQUFvQnBCLE9BQXBCLENBQWI7O0FBRUEsTUFBSVUsT0FBT1csT0FBUCxFQUFKLEVBQXNCO0FBQ3BCZCxZQUFRLG1CQUFSO0FBQ0QsR0FGRCxNQUVPO0FBQ0xBLFlBQVFBLE1BQU1DLEtBQU4sQ0FBWTtBQUNsQkMscUJBQWVGLE1BQU1FLGFBQU4sS0FBd0JULE9BQXhCLEdBQWtDTyxNQUFNRSxhQUF4QyxHQUF3REMsT0FBT1ksS0FBUCxHQUFlaEIsRUFEcEU7QUFFbEJJO0FBRmtCLEtBQVosQ0FBUjtBQUlEOztBQUVELFNBQU9qQixNQUFNZSxLQUFOLENBQVk7QUFDakJELGdCQURpQjtBQUVqQkssa0JBQWNuQixNQUFNbUIsWUFBTixDQUFtQkMsSUFBbkIsQ0FBd0JOLEtBQXhCO0FBRkcsR0FBWixDQUFQO0FBSUQiLCJmaWxlIjoic2NlbmUtcmVkdWNlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFERF9MQVlFUixcbiAgU0VMRUNUX0xBWUVSLFxuICBTRVRfTEFZRVJfUFJPUEVSVElFUyxcbiAgTU9ERV9JRExFLFxuICBSRU1PVkVfTEFZRVJcbn0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7TGF5ZXIsIFNjZW5lfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IElEQnJva2VyIGZyb20gJy4uL3V0aWxzL2lkLWJyb2tlcic7XG5pbXBvcnQge3Vuc2VsZWN0QWxsfSBmcm9tICcuLi91dGlscy9sYXllci1vcGVyYXRpb25zJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKHN0YXRlLCBhY3Rpb24pIHtcbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgIGNhc2UgQUREX0xBWUVSOlxuICAgICAgcmV0dXJuIGFkZExheWVyKHN0YXRlLCBhY3Rpb24ubmFtZSwgYWN0aW9uLmFsdGl0dWRlKTtcblxuICAgIGNhc2UgU0VMRUNUX0xBWUVSOlxuICAgICAgcmV0dXJuIHNlbGVjdExheWVyKHN0YXRlLCBhY3Rpb24ubGF5ZXJJRCk7XG5cbiAgICBjYXNlIFNFVF9MQVlFUl9QUk9QRVJUSUVTOlxuICAgICAgcmV0dXJuIHNldExheWVyUHJvcGVydGllcyhzdGF0ZSwgYWN0aW9uLmxheWVySUQsIGFjdGlvbi5wcm9wZXJ0aWVzKTtcblxuICAgIGNhc2UgUkVNT1ZFX0xBWUVSOlxuICAgICAgcmV0dXJuIHJlbW92ZUxheWVyKHN0YXRlLCBhY3Rpb24ubGF5ZXJJRCk7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXRlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFkZExheWVyKHN0YXRlLCBuYW1lLCBhbHRpdHVkZSkge1xuICBsZXQgbGF5ZXJJRCA9IElEQnJva2VyLmFjcXVpcmVJRCgpO1xuICBuYW1lID0gbmFtZSB8fCBgbGF5ZXIgJHtsYXllcklEfWA7XG4gIGFsdGl0dWRlID0gYWx0aXR1ZGUgfHwgMDtcblxuICBsZXQgbGF5ZXIgPSBuZXcgTGF5ZXIoe2lkOiBsYXllcklELCBuYW1lLCBhbHRpdHVkZX0pO1xuICBsZXQgc2NlbmUgPSBzdGF0ZS5zY2VuZTtcbiAgc2NlbmUgPSBzY2VuZS5tZXJnZSh7XG4gICAgc2VsZWN0ZWRMYXllcjogbGF5ZXJJRCxcbiAgICBsYXllcnM6IHNjZW5lLmxheWVycy5zZXQobGF5ZXJJRCwgbGF5ZXIpLFxuICB9KTtcblxuICByZXR1cm4gc3RhdGUubWVyZ2Uoe1xuICAgIHNjZW5lLFxuICAgIHNjZW5lSGlzdG9yeTogc3RhdGUuc2NlbmVIaXN0b3J5LnB1c2goc2NlbmUpXG4gIH0pXG59XG5cbmZ1bmN0aW9uIHNlbGVjdExheWVyKHN0YXRlLCBsYXllcklEKSB7XG4gIGxldCBzY2VuZSA9IHN0YXRlLnNjZW5lO1xuICBzY2VuZSA9IHNjZW5lLm1lcmdlKHtcbiAgICBzZWxlY3RlZExheWVyOiBsYXllcklELFxuICAgIGxheWVyczogc2NlbmUubGF5ZXJzLm1hcChsYXllciA9PiB1bnNlbGVjdEFsbChsYXllcikpXG4gIH0pO1xuXG4gIHJldHVybiBzdGF0ZS5tZXJnZSh7XG4gICAgc2NlbmUsXG4gICAgc2NlbmVIaXN0b3J5OiBzdGF0ZS5zY2VuZUhpc3RvcnkucHVzaChzY2VuZSlcbiAgfSlcbn1cblxuZnVuY3Rpb24gc2V0TGF5ZXJQcm9wZXJ0aWVzKHN0YXRlLCBsYXllcklELCBwcm9wZXJ0aWVzKSB7XG4gIGxldCBzY2VuZSA9IHN0YXRlLnNjZW5lO1xuXG4gIGxldCBsYXllcnMgPSBzY2VuZS5sYXllcnMubWVyZ2VJbihbbGF5ZXJJRF0sIHByb3BlcnRpZXMpO1xuICBsYXllcnMgPSBsYXllcnMuc29ydCgobGF5ZXJBLCBsYXllckIpID0+XG4gICAgbGF5ZXJBLmFsdGl0dWRlICE9PSBsYXllckIuYWx0aXR1ZGUgPyBsYXllckIuYWx0aXR1ZGUgLSBsYXllckEuYWx0aXR1ZGUgOiBsYXllckEub3JkZXIgLSBsYXllckIub3JkZXJcbiAgKTtcblxuICBzY2VuZSA9IHNjZW5lLnNldCgnbGF5ZXJzJywgbGF5ZXJzKTtcblxuICByZXR1cm4gc3RhdGUubWVyZ2Uoe1xuICAgIHNjZW5lLFxuICAgIHNjZW5lSGlzdG9yeTogc3RhdGUuc2NlbmVIaXN0b3J5LnB1c2goc2NlbmUpXG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZW1vdmVMYXllcihzdGF0ZSwgbGF5ZXJJRCkge1xuICBsZXQgc2NlbmUgPSBzdGF0ZS5zY2VuZTtcbiAgbGV0IGxheWVycyA9IHNjZW5lLmxheWVycy5kZWxldGUobGF5ZXJJRCk7XG5cbiAgaWYgKGxheWVycy5pc0VtcHR5KCkpIHtcbiAgICBzY2VuZSA9IG5ldyBTY2VuZSgpO1xuICB9IGVsc2Uge1xuICAgIHNjZW5lID0gc2NlbmUubWVyZ2Uoe1xuICAgICAgc2VsZWN0ZWRMYXllcjogc2NlbmUuc2VsZWN0ZWRMYXllciAhPT0gbGF5ZXJJRCA/IHNjZW5lLnNlbGVjdGVkTGF5ZXIgOiBsYXllcnMuZmlyc3QoKS5pZCxcbiAgICAgIGxheWVycyxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZS5tZXJnZSh7XG4gICAgc2NlbmUsXG4gICAgc2NlbmVIaXN0b3J5OiBzdGF0ZS5zY2VuZUhpc3RvcnkucHVzaChzY2VuZSlcbiAgfSlcbn1cbiJdfQ==