UNPKG

core-graphics

Version:

A core library for creating shape-based graphic editors

79 lines (66 loc) 3.04 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = inputStateReducer; var _input = require('../events/input'); var _icepick = require('icepick'); var i = _interopRequireWildcard(_icepick); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function inputStateReducer(currentState, ev) { if (!(0, _input.isEditorInputEvent)(ev)) { return currentState; } else { if ((0, _input.isMouseMoveEvent)(ev)) { var _ev$payload = ev.payload; var x = _ev$payload.x; var y = _ev$payload.y; return i.merge(currentState, { mouse: { x: x, y: y, inside: true } }); } if ((0, _input.isMouseDownEvent)(ev)) { var _ev$payload2 = ev.payload; var _x = _ev$payload2.x; var _y = _ev$payload2.y; return i.merge(currentState, { mouse: { x: _x, y: _y, lastDownX: _x, lastDownY: _y, inside: true, down: true } }); } if ((0, _input.isMouseUpEvent)(ev)) { var _ev$payload3 = ev.payload; var _x2 = _ev$payload3.x; var _y2 = _ev$payload3.y; return i.merge(currentState, { mouse: { x: _x2, y: _y2, inside: true, down: false } }); } if ((0, _input.isMouseLeaveEvent)(ev)) { var _ev$payload4 = ev.payload; var _x3 = _ev$payload4.x; var _y3 = _ev$payload4.y; return i.chain(currentState).merge({ mouse: { x: _x3, y: _y3, inside: false, down: false } }).assoc('modifierKeys', {}).value(); } if ((0, _input.isMouseEnterEvent)(ev)) { var _ev$payload5 = ev.payload; var _x4 = _ev$payload5.x; var _y4 = _ev$payload5.y; return i.chain(currentState).merge({ mouse: { x: _x4, y: _y4, inside: true } }).assoc('modifierKeys', {}).value(); } if ((0, _input.isShapeMouseDownEvent)(ev)) { return i.assocIn(currentState, ['mouse', 'down'], true); } if ((0, _input.isShapeMouseUpEvent)(ev)) { return i.assocIn(currentState, ['mouse', 'down'], false); } if ((0, _input.isShapeResizeHandleMouseDownEvent)(ev)) { return i.assocIn(currentState, ['mouse', 'down'], true); } if ((0, _input.isShapeResizeHandleMouseUpEvent)(ev)) { return i.assocIn(currentState, ['mouse', 'down'], false); } if ((0, _input.isModKeyDownEvent)(ev)) { var key = ev.payload.key; return i.assocIn(currentState, ['modifierKeys', key], true); } if ((0, _input.isModKeyUpEvent)(ev)) { var _key = ev.payload.key; return i.assocIn(currentState, ['modifierKeys', _key], false); } return currentState; } }