UNPKG

@gorpacrate/core-graphics

Version:

A core library for creating shape-based graphic editors

60 lines 2.42 kB
"use strict"; exports.__esModule = true; var i = require("icepick"); var input_1 = require("../events/input"); function inputStateReducer(currentState, ev) { if (!input_1.isEditorInputEvent(ev)) { return currentState; } else { if (input_1.isMouseMoveEvent(ev)) { var _a = ev.payload, x = _a.x, y = _a.y; return i.merge(currentState, { mouse: { x: x, y: y, inside: true } }); } if (input_1.isMouseDownEvent(ev)) { var _b = ev.payload, x = _b.x, y = _b.y; return i.merge(currentState, { mouse: { x: x, y: y, lastDownX: x, lastDownY: y, inside: true, down: true } }); } if (input_1.isMouseUpEvent(ev)) { var _c = ev.payload, x = _c.x, y = _c.y; return i.merge(currentState, { mouse: { x: x, y: y, inside: true, down: false } }); } if (input_1.isMouseLeaveEvent(ev)) { var _d = ev.payload, x = _d.x, y = _d.y; return (i.chain(currentState) .merge({ mouse: { x: x, y: y, inside: false, down: false } }) .assoc('modifierKeys', {}) .value()); } if (input_1.isMouseEnterEvent(ev)) { var _e = ev.payload, x = _e.x, y = _e.y; return (i.chain(currentState) .merge({ mouse: { x: x, y: y, inside: true } }) .assoc('modifierKeys', {}) .value()); } if (input_1.isShapeMouseDownEvent(ev)) { return i.assocIn(currentState, ['mouse', 'down'], true); } if (input_1.isShapeMouseUpEvent(ev)) { return i.assocIn(currentState, ['mouse', 'down'], false); } if (input_1.isShapeResizeHandleMouseDownEvent(ev)) { return i.assocIn(currentState, ['mouse', 'down'], true); } if (input_1.isShapeResizeHandleMouseUpEvent(ev)) { return i.assocIn(currentState, ['mouse', 'down'], false); } if (input_1.isModKeyDownEvent(ev)) { var key = ev.payload.key; return i.assocIn(currentState, ['modifierKeys', key], true); } if (input_1.isModKeyUpEvent(ev)) { var key = ev.payload.key; return i.assocIn(currentState, ['modifierKeys', key], false); } return currentState; } } exports["default"] = inputStateReducer; //# sourceMappingURL=input.js.map