react-planner-viewer
Version:
react-planner-viewer is a React Component for view plans builded with react-planner in 2D mode
69 lines (56 loc) • 6.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = keyboard;
var _constants = require('../constants');
var _projectActions = require('../actions/project-actions');
var _snap = require('../utils/snap');
var KEY_DELETE = 46;
var KEY_BACKSPACE = 8;
var KEY_ESC = 27;
var KEY_Z = 90;
var KEY_ALT = 18;
function keyboard() {
return function (store, stateExtractor) {
window.addEventListener('keydown', function (event) {
var state = stateExtractor(store.getState());
var mode = state.get('mode');
switch (event.keyCode) {
case KEY_BACKSPACE:
case KEY_DELETE:
{
if ([_constants.MODE_IDLE, _constants.MODE_3D_FIRST_PERSON, _constants.MODE_3D_VIEW].includes(mode)) store.dispatch((0, _projectActions.remove)());
break;
}
case KEY_ESC:
{
store.dispatch((0, _projectActions.rollback)());
break;
}
case KEY_Z:
{
if (event.getModifierState('Control') || event.getModifierState('Meta')) store.dispatch((0, _projectActions.undo)());
break;
}
case KEY_ALT:
{
if (_constants.MODE_SNAPPING.includes(mode)) store.dispatch((0, _projectActions.toggleSnap)(state.snapMask.merge({ SNAP_POINT: false, SNAP_LINE: false, SNAP_SEGMENT: false, tempSnapConfiguartion: state.snapMask.toJS() })));
break;
}
}
});
window.addEventListener('keyup', function (event) {
var state = stateExtractor(store.getState());
var mode = state.get('mode');
switch (event.keyCode) {
case KEY_ALT:
{
if (_constants.MODE_SNAPPING.includes(mode)) store.dispatch((0, _projectActions.toggleSnap)(state.snapMask.merge(state.snapMask.get('tempSnapConfiguartion'))));
break;
}
}
});
};
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wbHVnaW5zL2tleWJvYXJkLmpzIl0sIm5hbWVzIjpbImtleWJvYXJkIiwiS0VZX0RFTEVURSIsIktFWV9CQUNLU1BBQ0UiLCJLRVlfRVNDIiwiS0VZX1oiLCJLRVlfQUxUIiwic3RvcmUiLCJzdGF0ZUV4dHJhY3RvciIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJzdGF0ZSIsImdldFN0YXRlIiwibW9kZSIsImdldCIsImV2ZW50Iiwia2V5Q29kZSIsImluY2x1ZGVzIiwiZGlzcGF0Y2giLCJnZXRNb2RpZmllclN0YXRlIiwic25hcE1hc2siLCJtZXJnZSIsIlNOQVBfUE9JTlQiLCJTTkFQX0xJTkUiLCJTTkFQX1NFR01FTlQiLCJ0ZW1wU25hcENvbmZpZ3VhcnRpb24iLCJ0b0pTIl0sIm1hcHBpbmdzIjoiOzs7OztrQkFVd0JBLFE7O0FBVnhCOztBQUNBOztBQUNBOztBQUVBLElBQU1DLGFBQWEsRUFBbkI7QUFDQSxJQUFNQyxnQkFBZ0IsQ0FBdEI7QUFDQSxJQUFNQyxVQUFVLEVBQWhCO0FBQ0EsSUFBTUMsUUFBUSxFQUFkO0FBQ0EsSUFBTUMsVUFBVSxFQUFoQjs7QUFFZSxTQUFTTCxRQUFULEdBQW9COztBQUVqQyxTQUFPLFVBQUNNLEtBQUQsRUFBUUMsY0FBUixFQUEyQjs7QUFFaENDLFdBQU9DLGdCQUFQLENBQXdCLFNBQXhCLEVBQW1DLGlCQUFTOztBQUUxQyxVQUFJQyxRQUFRSCxlQUFlRCxNQUFNSyxRQUFOLEVBQWYsQ0FBWjtBQUNBLFVBQUlDLE9BQU9GLE1BQU1HLEdBQU4sQ0FBVSxNQUFWLENBQVg7O0FBRUEsY0FBUUMsTUFBTUMsT0FBZDtBQUNFLGFBQUtiLGFBQUw7QUFDQSxhQUFLRCxVQUFMO0FBQ0E7QUFDRSxnQkFBSSxpRkFBZ0RlLFFBQWhELENBQXlESixJQUF6RCxDQUFKLEVBQ0VOLE1BQU1XLFFBQU4sQ0FBZSw2QkFBZjtBQUNGO0FBQ0Q7QUFDRCxhQUFLZCxPQUFMO0FBQ0E7QUFDRUcsa0JBQU1XLFFBQU4sQ0FBZSwrQkFBZjtBQUNBO0FBQ0Q7QUFDRCxhQUFLYixLQUFMO0FBQ0E7QUFDRSxnQkFBSVUsTUFBTUksZ0JBQU4sQ0FBdUIsU0FBdkIsS0FBcUNKLE1BQU1JLGdCQUFOLENBQXVCLE1BQXZCLENBQXpDLEVBQ0VaLE1BQU1XLFFBQU4sQ0FBZSwyQkFBZjtBQUNGO0FBQ0Q7QUFDRCxhQUFLWixPQUFMO0FBQ0E7QUFDRSxnQkFBSSx5QkFBY1csUUFBZCxDQUF1QkosSUFBdkIsQ0FBSixFQUNFTixNQUFNVyxRQUFOLENBQWUsZ0NBQVdQLE1BQU1TLFFBQU4sQ0FBZUMsS0FBZixDQUFxQixFQUFFQyxZQUFZLEtBQWQsRUFBcUJDLFdBQVcsS0FBaEMsRUFBdUNDLGNBQWMsS0FBckQsRUFBNERDLHVCQUF1QmQsTUFBTVMsUUFBTixDQUFlTSxJQUFmLEVBQW5GLEVBQXJCLENBQVgsQ0FBZjtBQUNGO0FBQ0Q7QUF4Qkg7QUEyQkQsS0FoQ0Q7O0FBa0NBakIsV0FBT0MsZ0JBQVAsQ0FBd0IsT0FBeEIsRUFBaUMsaUJBQVM7O0FBRXhDLFVBQUlDLFFBQVFILGVBQWVELE1BQU1LLFFBQU4sRUFBZixDQUFaO0FBQ0EsVUFBSUMsT0FBT0YsTUFBTUcsR0FBTixDQUFVLE1BQVYsQ0FBWDs7QUFFQSxjQUFRQyxNQUFNQyxPQUFkO0FBQ0UsYUFBS1YsT0FBTDtBQUNFO0FBQ0UsZ0JBQUkseUJBQWNXLFFBQWQsQ0FBdUJKLElBQXZCLENBQUosRUFDRU4sTUFBTVcsUUFBTixDQUFlLGdDQUFXUCxNQUFNUyxRQUFOLENBQWVDLEtBQWYsQ0FBcUJWLE1BQU1TLFFBQU4sQ0FBZU4sR0FBZixDQUFtQix1QkFBbkIsQ0FBckIsQ0FBWCxDQUFmO0FBQ0Y7QUFDRDtBQU5MO0FBU0QsS0FkRDtBQWdCRCxHQXBERDtBQXFERCIsImZpbGUiOiJrZXlib2FyZC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1PREVfSURMRSwgTU9ERV8zRF9GSVJTVF9QRVJTT04sIE1PREVfM0RfVklFVywgTU9ERV9TTkFQUElORyB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyByb2xsYmFjaywgdW5kbywgcmVtb3ZlLCB0b2dnbGVTbmFwIH0gZnJvbSAnLi4vYWN0aW9ucy9wcm9qZWN0LWFjdGlvbnMnO1xuaW1wb3J0IHsgU05BUF9QT0lOVCwgU05BUF9MSU5FLCBTTkFQX1NFR01FTlQsIFNOQVBfTUFTSyB9IGZyb20gJy4uL3V0aWxzL3NuYXAnO1xuXG5jb25zdCBLRVlfREVMRVRFID0gNDY7XG5jb25zdCBLRVlfQkFDS1NQQUNFID0gODtcbmNvbnN0IEtFWV9FU0MgPSAyNztcbmNvbnN0IEtFWV9aID0gOTA7XG5jb25zdCBLRVlfQUxUID0gMTg7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGtleWJvYXJkKCkge1xuXG4gIHJldHVybiAoc3RvcmUsIHN0YXRlRXh0cmFjdG9yKSA9PiB7XG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGV2ZW50ID0+IHtcblxuICAgICAgbGV0IHN0YXRlID0gc3RhdGVFeHRyYWN0b3Ioc3RvcmUuZ2V0U3RhdGUoKSk7XG4gICAgICBsZXQgbW9kZSA9IHN0YXRlLmdldCgnbW9kZScpO1xuXG4gICAgICBzd2l0Y2ggKGV2ZW50LmtleUNvZGUpIHtcbiAgICAgICAgY2FzZSBLRVlfQkFDS1NQQUNFOlxuICAgICAgICBjYXNlIEtFWV9ERUxFVEU6XG4gICAgICAgIHtcbiAgICAgICAgICBpZiAoW01PREVfSURMRSwgTU9ERV8zRF9GSVJTVF9QRVJTT04sIE1PREVfM0RfVklFV10uaW5jbHVkZXMobW9kZSkpXG4gICAgICAgICAgICBzdG9yZS5kaXNwYXRjaChyZW1vdmUoKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBLRVlfRVNDOlxuICAgICAgICB7XG4gICAgICAgICAgc3RvcmUuZGlzcGF0Y2gocm9sbGJhY2soKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBLRVlfWjpcbiAgICAgICAge1xuICAgICAgICAgIGlmIChldmVudC5nZXRNb2RpZmllclN0YXRlKCdDb250cm9sJykgfHwgZXZlbnQuZ2V0TW9kaWZpZXJTdGF0ZSgnTWV0YScpKVxuICAgICAgICAgICAgc3RvcmUuZGlzcGF0Y2godW5kbygpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEtFWV9BTFQ6XG4gICAgICAgIHtcbiAgICAgICAgICBpZiggTU9ERV9TTkFQUElORy5pbmNsdWRlcyhtb2RlKSApXG4gICAgICAgICAgICBzdG9yZS5kaXNwYXRjaCh0b2dnbGVTbmFwKHN0YXRlLnNuYXBNYXNrLm1lcmdlKHsgU05BUF9QT0lOVDogZmFsc2UsIFNOQVBfTElORTogZmFsc2UsIFNOQVBfU0VHTUVOVDogZmFsc2UsIHRlbXBTbmFwQ29uZmlndWFydGlvbjogc3RhdGUuc25hcE1hc2sudG9KUygpIH0pKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH0pO1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgZXZlbnQgPT4ge1xuXG4gICAgICBsZXQgc3RhdGUgPSBzdGF0ZUV4dHJhY3RvcihzdG9yZS5nZXRTdGF0ZSgpKTtcbiAgICAgIGxldCBtb2RlID0gc3RhdGUuZ2V0KCdtb2RlJyk7XG5cbiAgICAgIHN3aXRjaCAoZXZlbnQua2V5Q29kZSkge1xuICAgICAgICBjYXNlIEtFWV9BTFQ6XG4gICAgICAgICAge1xuICAgICAgICAgICAgaWYoIE1PREVfU05BUFBJTkcuaW5jbHVkZXMobW9kZSkgKVxuICAgICAgICAgICAgICBzdG9yZS5kaXNwYXRjaCh0b2dnbGVTbmFwKHN0YXRlLnNuYXBNYXNrLm1lcmdlKHN0YXRlLnNuYXBNYXNrLmdldCgndGVtcFNuYXBDb25maWd1YXJ0aW9uJykpKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9KTtcblxuICB9XG59XG4iXX0=