UNPKG

wonder.js

Version:
88 lines (78 loc) 3.25 kB
'use strict'; var Caml_option = require("bs-platform/lib/js/caml_option.js"); var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js"); var MutableHashMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/MutableHashMapService.js"); var MutableSparseMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/MutableSparseMapService.js"); function _getKeyCode(keyboardDomEvent) { return keyboardDomEvent.keyCode; } function _getShiftKey(keyboardDomEvent) { return keyboardDomEvent.shiftKey; } function _getKeyFromSpecialKeyMap(keyCode, $$char, specialKeyMap) { var match = MutableSparseMapService$WonderCommonlib.get(keyCode, specialKeyMap); if (match !== undefined) { return Caml_option.valFromOption(match); } else { return $$char; } } function _handleShiftKey(keyCode, $$char, param) { var match = MutableSparseMapService$WonderCommonlib.get(keyCode, param[0]); if (match !== undefined) { return match; } else { var match$1 = MutableHashMapService$WonderCommonlib.get($$char, param[1]); if (match$1 !== undefined) { return match$1; } else { return _getKeyFromSpecialKeyMap(keyCode, $$char, param[2]); } } } function _getKey(keyboardDomEvent, param) { var keyboardEventData = param[/* eventRecord */43][/* keyboardEventData */7]; var specialKeyMap = keyboardEventData[/* specialKeyMap */0]; var keyCode = keyboardDomEvent.keyCode; var $$char = String.fromCharCode(keyCode).toLowerCase(); var match = keyboardDomEvent.shiftKey; if (match) { return _handleShiftKey(keyCode, $$char, /* tuple */[ keyboardEventData[/* shiftKeyByKeyCodeMap */1], keyboardEventData[/* shiftKeyByCharCodeMap */2], specialKeyMap ]); } else { return _getKeyFromSpecialKeyMap(keyCode, $$char, specialKeyMap); } } function _convertKeyboardDomEventToKeyboardEvent(eventName, keyboardDomEvent, state) { return /* record */[ /* name */eventName, /* keyCode */keyboardDomEvent.keyCode, /* ctrlKey */keyboardDomEvent.ctrlKey, /* altKey */keyboardDomEvent.altKey, /* shiftKey */keyboardDomEvent.shiftKey, /* metaKey */keyboardDomEvent.metaKey, /* key */_getKey(keyboardDomEvent, state), /* event */keyboardDomEvent ]; } function execEventHandle(eventName, keyboardDomEvent, state) { var match = MutableSparseMapService$WonderCommonlib.get(eventName, state[/* eventRecord */43][/* keyboardDomEventDataArrMap */2]); if (match !== undefined) { return ArrayService$WonderCommonlib.reduceOneParam((function (state, param) { return param[/* handleFunc */1](_convertKeyboardDomEventToKeyboardEvent(eventName, keyboardDomEvent, state), state); }), state, match); } else { return state; } } exports._getKeyCode = _getKeyCode; exports._getShiftKey = _getShiftKey; exports._getKeyFromSpecialKeyMap = _getKeyFromSpecialKeyMap; exports._handleShiftKey = _handleShiftKey; exports._getKey = _getKey; exports._convertKeyboardDomEventToKeyboardEvent = _convertKeyboardDomEventToKeyboardEvent; exports.execEventHandle = execEventHandle; /* No side effect */