in src/app-host/touch-events.js [18:67]
function _simulateTouchEvent(type, mouseevent) {
if (_lastMouseEvent &&
mouseevent.type === _lastMouseEvent.type &&
mouseevent.pageX === _lastMouseEvent.pageX &&
mouseevent.pageY === _lastMouseEvent.pageY) {
return;
}
_lastMouseEvent = mouseevent;
var touchObj = {
clientX: mouseevent.pageX,
clientY: mouseevent.pageY,
pageX: mouseevent.pageX,
pageY: mouseevent.pageY,
screenX: mouseevent.pageX,
screenY: mouseevent.pageY,
target: mouseevent.target,
identifier: ''
};
var eventData = {
altKey: mouseevent.altKey,
ctrlKey: mouseevent.ctrlKey,
shiftKey: mouseevent.shiftKey,
metaKey: mouseevent.metaKey,
changedTouches: [touchObj],
targetTouches: type === 'touchend' ? [] : [touchObj],
touches: type === 'touchend' ? [] : [touchObj]
};
utils.mixin(touchObj, eventData);
var itemFn = function (index) {
return this[index];
};
eventData.touches.item = itemFn;
eventData.changedTouches.item = itemFn;
eventData.targetTouches.item = itemFn;
var listenerName = 'on' + type,
simulatedEvent = _createTouchEvent(type, true, true, eventData);
mouseevent.target.dispatchEvent(simulatedEvent);
if (typeof mouseevent.target[listenerName] === 'function') {
mouseevent.target[listenerName].apply(mouseevent.target, [simulatedEvent]);
}
}