UNPKG

wonder.js

Version:
189 lines (175 loc) 10.4 kB
'use strict'; var Caml_array = require("bs-platform/lib/js/caml_array.js"); var ArrayService$Wonderjs = require("../../../../atom/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 _addEventDataByPriority(eventData, arr) { return ArrayService$Wonderjs.push(eventData, arr).sort((function (eventDataA, eventDataB) { return eventDataB[/* priority */0] - eventDataA[/* priority */0] | 0; })); } function _addToEventArr(eventName, eventData, eventArrMap) { var match = MutableHashMapService$WonderCommonlib.get(eventName, eventArrMap); if (match !== undefined) { return MutableHashMapService$WonderCommonlib.set(eventName, _addEventDataByPriority(eventData, match), eventArrMap); } else { return MutableHashMapService$WonderCommonlib.set(eventName, /* array */[eventData], eventArrMap); } } function bindGlobalEvent(eventName, priority, handleFunc, state) { var eventRecord = state[/* eventRecord */43]; var newrecord = Caml_array.caml_array_dup(state); newrecord[/* eventRecord */43] = /* record */[ /* domEventStreamSubscription */eventRecord[/* domEventStreamSubscription */0], /* mouseDomEventDataArrMap */eventRecord[/* mouseDomEventDataArrMap */1], /* keyboardDomEventDataArrMap */eventRecord[/* keyboardDomEventDataArrMap */2], /* touchDomEventDataArrMap */eventRecord[/* touchDomEventDataArrMap */3], /* customGlobalEventArrMap */_addToEventArr(eventName, /* record */[ /* priority */priority, /* handleFunc */handleFunc ], eventRecord[/* customGlobalEventArrMap */4]), /* customGameObjectEventArrMap */eventRecord[/* customGameObjectEventArrMap */5], /* mouseEventData */eventRecord[/* mouseEventData */6], /* keyboardEventData */eventRecord[/* keyboardEventData */7], /* touchEventData */eventRecord[/* touchEventData */8] ]; return newrecord; } function _removeFromEventArrByHandleFunc(arr, targetHandleFunc) { return arr.filter((function (param) { return param[/* handleFunc */1] !== targetHandleFunc; })); } function _removeFromEventArrMapByHandleFunc(eventName, handleFunc, eventArrMap) { var match = MutableHashMapService$WonderCommonlib.get(eventName, eventArrMap); if (match !== undefined) { return MutableHashMapService$WonderCommonlib.set(eventName, _removeFromEventArrByHandleFunc(match, handleFunc), eventArrMap); } else { return eventArrMap; } } function unbindGlobalEventByHandleFunc(eventName, handleFunc, state) { var eventRecord = state[/* eventRecord */43]; var newrecord = Caml_array.caml_array_dup(state); newrecord[/* eventRecord */43] = /* record */[ /* domEventStreamSubscription */eventRecord[/* domEventStreamSubscription */0], /* mouseDomEventDataArrMap */eventRecord[/* mouseDomEventDataArrMap */1], /* keyboardDomEventDataArrMap */eventRecord[/* keyboardDomEventDataArrMap */2], /* touchDomEventDataArrMap */eventRecord[/* touchDomEventDataArrMap */3], /* customGlobalEventArrMap */_removeFromEventArrMapByHandleFunc(eventName, handleFunc, eventRecord[/* customGlobalEventArrMap */4]), /* customGameObjectEventArrMap */eventRecord[/* customGameObjectEventArrMap */5], /* mouseEventData */eventRecord[/* mouseEventData */6], /* keyboardEventData */eventRecord[/* keyboardEventData */7], /* touchEventData */eventRecord[/* touchEventData */8] ]; return newrecord; } var _removeFromEventListMapByEventName = MutableHashMapService$WonderCommonlib.deleteVal; function unbindGlobalEventByEventName(eventName, state) { var eventRecord = state[/* eventRecord */43]; var newrecord = Caml_array.caml_array_dup(state); newrecord[/* eventRecord */43] = /* record */[ /* domEventStreamSubscription */eventRecord[/* domEventStreamSubscription */0], /* mouseDomEventDataArrMap */eventRecord[/* mouseDomEventDataArrMap */1], /* keyboardDomEventDataArrMap */eventRecord[/* keyboardDomEventDataArrMap */2], /* touchDomEventDataArrMap */eventRecord[/* touchDomEventDataArrMap */3], /* customGlobalEventArrMap */_removeFromEventListMapByEventName(eventName, eventRecord[/* customGlobalEventArrMap */4]), /* customGameObjectEventArrMap */eventRecord[/* customGameObjectEventArrMap */5], /* mouseEventData */eventRecord[/* mouseEventData */6], /* keyboardEventData */eventRecord[/* keyboardEventData */7], /* touchEventData */eventRecord[/* touchEventData */8] ]; return newrecord; } function bindGameObjectEvent(param, handleFunc, state) { var target = param[2]; var eventName = param[0]; var eventRecord = state[/* eventRecord */43]; var customGameObjectEventArrMap = eventRecord[/* customGameObjectEventArrMap */5]; var eventData_000 = /* priority */param[1]; var eventData = /* record */[ eventData_000, /* handleFunc */handleFunc ]; var newrecord = Caml_array.caml_array_dup(state); var match = MutableHashMapService$WonderCommonlib.get(eventName, customGameObjectEventArrMap); var tmp; if (match !== undefined) { var targetEventArrMap = match; var match$1 = MutableSparseMapService$WonderCommonlib.get(target, targetEventArrMap); tmp = match$1 !== undefined ? MutableHashMapService$WonderCommonlib.set(eventName, MutableSparseMapService$WonderCommonlib.set(target, _addEventDataByPriority(eventData, match$1), targetEventArrMap), customGameObjectEventArrMap) : MutableHashMapService$WonderCommonlib.set(eventName, MutableSparseMapService$WonderCommonlib.set(target, /* array */[eventData], targetEventArrMap), customGameObjectEventArrMap); } else { tmp = MutableHashMapService$WonderCommonlib.set(eventName, MutableSparseMapService$WonderCommonlib.set(target, /* array */[eventData], MutableSparseMapService$WonderCommonlib.createEmpty(/* () */0)), customGameObjectEventArrMap); } newrecord[/* eventRecord */43] = /* record */[ /* domEventStreamSubscription */eventRecord[/* domEventStreamSubscription */0], /* mouseDomEventDataArrMap */eventRecord[/* mouseDomEventDataArrMap */1], /* keyboardDomEventDataArrMap */eventRecord[/* keyboardDomEventDataArrMap */2], /* touchDomEventDataArrMap */eventRecord[/* touchDomEventDataArrMap */3], /* customGlobalEventArrMap */eventRecord[/* customGlobalEventArrMap */4], /* customGameObjectEventArrMap */tmp, /* mouseEventData */eventRecord[/* mouseEventData */6], /* keyboardEventData */eventRecord[/* keyboardEventData */7], /* touchEventData */eventRecord[/* touchEventData */8] ]; return newrecord; } function unbindGameObjectEventByTarget(param, state) { var eventName = param[0]; var eventRecord = state[/* eventRecord */43]; var customGameObjectEventArrMap = eventRecord[/* customGameObjectEventArrMap */5]; var newrecord = Caml_array.caml_array_dup(state); var match = MutableHashMapService$WonderCommonlib.get(eventName, customGameObjectEventArrMap); newrecord[/* eventRecord */43] = /* record */[ /* domEventStreamSubscription */eventRecord[/* domEventStreamSubscription */0], /* mouseDomEventDataArrMap */eventRecord[/* mouseDomEventDataArrMap */1], /* keyboardDomEventDataArrMap */eventRecord[/* keyboardDomEventDataArrMap */2], /* touchDomEventDataArrMap */eventRecord[/* touchDomEventDataArrMap */3], /* customGlobalEventArrMap */eventRecord[/* customGlobalEventArrMap */4], /* customGameObjectEventArrMap */match !== undefined ? MutableHashMapService$WonderCommonlib.set(eventName, MutableSparseMapService$WonderCommonlib.deleteVal(param[1], match), customGameObjectEventArrMap) : customGameObjectEventArrMap, /* mouseEventData */eventRecord[/* mouseEventData */6], /* keyboardEventData */eventRecord[/* keyboardEventData */7], /* touchEventData */eventRecord[/* touchEventData */8] ]; return newrecord; } function unbindGameObjectEventByHandleFunc(param, handleFunc, state) { var target = param[1]; var eventName = param[0]; var eventRecord = state[/* eventRecord */43]; var customGameObjectEventArrMap = eventRecord[/* customGameObjectEventArrMap */5]; var newrecord = Caml_array.caml_array_dup(state); var match = MutableHashMapService$WonderCommonlib.get(eventName, customGameObjectEventArrMap); var tmp; if (match !== undefined) { var targetEventArrMap = match; var match$1 = MutableSparseMapService$WonderCommonlib.get(target, targetEventArrMap); tmp = match$1 !== undefined ? MutableHashMapService$WonderCommonlib.set(eventName, MutableSparseMapService$WonderCommonlib.set(target, _removeFromEventArrByHandleFunc(match$1, handleFunc), targetEventArrMap), customGameObjectEventArrMap) : customGameObjectEventArrMap; } else { tmp = customGameObjectEventArrMap; } newrecord[/* eventRecord */43] = /* record */[ /* domEventStreamSubscription */eventRecord[/* domEventStreamSubscription */0], /* mouseDomEventDataArrMap */eventRecord[/* mouseDomEventDataArrMap */1], /* keyboardDomEventDataArrMap */eventRecord[/* keyboardDomEventDataArrMap */2], /* touchDomEventDataArrMap */eventRecord[/* touchDomEventDataArrMap */3], /* customGlobalEventArrMap */eventRecord[/* customGlobalEventArrMap */4], /* customGameObjectEventArrMap */tmp, /* mouseEventData */eventRecord[/* mouseEventData */6], /* keyboardEventData */eventRecord[/* keyboardEventData */7], /* touchEventData */eventRecord[/* touchEventData */8] ]; return newrecord; } exports._addEventDataByPriority = _addEventDataByPriority; exports._addToEventArr = _addToEventArr; exports.bindGlobalEvent = bindGlobalEvent; exports._removeFromEventArrByHandleFunc = _removeFromEventArrByHandleFunc; exports._removeFromEventArrMapByHandleFunc = _removeFromEventArrMapByHandleFunc; exports.unbindGlobalEventByHandleFunc = unbindGlobalEventByHandleFunc; exports._removeFromEventListMapByEventName = _removeFromEventListMapByEventName; exports.unbindGlobalEventByEventName = unbindGlobalEventByEventName; exports.bindGameObjectEvent = bindGameObjectEvent; exports.unbindGameObjectEventByTarget = unbindGameObjectEventByTarget; exports.unbindGameObjectEventByHandleFunc = unbindGameObjectEventByHandleFunc; /* ArrayService-Wonderjs Not a pure module */