event-gestures-debug.js revision 5ac8954cc11691540cde8ce838b7defb9dcc3fb3
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsyncYUI.add('event-flick', function(Y) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync/**
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync * Adds support for a "flick" event, which is fired at the end of a touch or mouse based flick gesture, and provides
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync * velocity of the flick, along with distance and time information.
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync *
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync * @module event-gestures
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync * @submodule event-flick
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync */
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsyncvar EVENT = ("ontouchstart" in Y.config.win && !Y.UA.chrome) ? {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync start: "touchstart",
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync end: "touchend"
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync } : {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync start: "mousedown",
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync end: "mouseup"
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync START = "start",
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync END = "end",
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync OWNER_DOCUMENT = "ownerDocument",
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync MIN_VELOCITY = "minVelocity",
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync MIN_DISTANCE = "minDistance",
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync _FLICK_START = "_fs",
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync _FLICK_START_HANDLE = "_fsh",
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync _FLICK_END_HANDLE = "_feh",
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync NODE_TYPE = "nodeType";
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync/**
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync * Sets up a "flick" event, that is fired whenever the user initiates a flick gesture on the node
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync * where the listener is attached. The subscriber can specify a minimum distance or velocity for
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync * which the event is to be fired.
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync *
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync * @event flick
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync * @param type {string} "flick"
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync * @param fn {function} The method the event invokes.
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync * @param cfg {Object} Optional. An object which specifies the minimum distance and/or velocity
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync * of the flick gesture for which the event is to be fired.
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync *
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync * @return {EventHandle} the detach handle
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync */
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsyncY.Event.define('flick', {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync on: function (node, subscriber, ce) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync var startHandle = node.on(EVENT[START],
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync this._onStart,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync this,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync node,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync subscriber,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync ce);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync subscriber[_FLICK_START_HANDLE] = startHandle;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync detach: function (node, subscriber, ce) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync var startHandle = subscriber[_FLICK_START_HANDLE],
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync endHandle = subscriber[_FLICK_END_HANDLE];
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (startHandle) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync startHandle.detach();
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync subscriber[_FLICK_START_HANDLE] = null;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (endHandle) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync endHandle.detach();
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync subscriber[_FLICK_END_HANDLE] = null;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync publishConfig: {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync emitFacade:false
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync processArgs: function(args) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync var params = (args[3]) ? Y.merge(args.splice(3, 1)[0]) : {};
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (!(MIN_VELOCITY in params)) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync params.minVelocity = this.MIN_VELOCITY;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (!(MIN_DISTANCE in params)) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync params.minDistance = this.MIN_DISTANCE;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync Y.log("flick, processArgs : minDistance =" + params.minDistance + ", minVelocity =" + params.minVelocity);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync return params;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync _onStart: function(e, node, subscriber, ce) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync var start = true, // always true for mouse
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync endHandle,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync doc,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync origE = e;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (e.touches) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync start = (e.touches.length === 1);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync e = e.touches[0];
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
64863d3a0ffadf1ac248b295b78be5d55db6ee13vboxsync
64863d3a0ffadf1ac248b295b78be5d55db6ee13vboxsync if (start) {
64863d3a0ffadf1ac248b295b78be5d55db6ee13vboxsync origE.preventDefault();
64863d3a0ffadf1ac248b295b78be5d55db6ee13vboxsync
64863d3a0ffadf1ac248b295b78be5d55db6ee13vboxsync e.flick = {
e7c4c205cb0af88b5ef0786be46da94847a9a37bvboxsync time : new Date().getTime()
e7c4c205cb0af88b5ef0786be46da94847a9a37bvboxsync };
64863d3a0ffadf1ac248b295b78be5d55db6ee13vboxsync
64863d3a0ffadf1ac248b295b78be5d55db6ee13vboxsync subscriber[_FLICK_START] = e;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync endHandle = subscriber[_FLICK_END_HANDLE];
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (!endHandle) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync doc = (node.get(NODE_TYPE) === 9) ? node : node.get(OWNER_DOCUMENT);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync endHandle = doc.on(EVENT[END], Y.bind(this._onEnd, this), null, node, subscriber, ce);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync subscriber[_FLICK_END_HANDLE] = endHandle;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync _onEnd: function(e, node, subscriber, ce) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync var endTime = new Date().getTime(),
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync start = subscriber[_FLICK_START],
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync valid = !!start,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync endEvent = e,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync startTime,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync time,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync params,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync xyDistance,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync distance,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync absDistance,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync velocity,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync axis;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (valid) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (e.changedTouches) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (e.changedTouches.length === 1 && e.touches.length === 0) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync endEvent = e.changedTouches[0];
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync } else {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync valid = false;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync if (valid) {
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync endEvent.preventDefault();
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync startTime = start.flick.time;
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync endTime = new Date().getTime();
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync time = endTime - startTime;
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync params = subscriber._extra;
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync xyDistance = [
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync endEvent.pageX - start.pageX,
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync endEvent.pageY - start.pageY
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync ];
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync axis = params.axis || (Math.abs(xyDistance[0]) >= Math.abs(xyDistance[1])) ? 'x' : 'y';
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync distance = xyDistance[(axis === 'x') ? 0 : 1];
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync absDistance = Math.abs(distance);
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync velocity = absDistance/time;
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync if (isFinite(velocity) && (absDistance >= params.minDistance) && (velocity >= params.minVelocity)) {
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync e.type = "flick";
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync e.flick = {
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync time:time,
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync distance: distance,
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync direction: distance/absDistance,
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync velocity:velocity,
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync axis: axis,
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync start : start
4aebc69aadd38c5c13ed4211d60635ad49538275vboxsync };
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync ce.fire(e);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync subscriber[_FLICK_START] = null;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync MIN_VELOCITY : 0,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync MIN_DISTANCE : 0
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync});
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync}, '@VERSION@' ,{requires:['node-base','event-touch','event-synthetic']});
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsyncYUI.add('event-move', function(Y) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync// TODO: Better way to sniff 'n' switch touch support?
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsyncvar EVENT = ("ontouchstart" in Y.config.win && !Y.UA.chrome) ? {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync start: "touchstart",
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync move: "touchmove",
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync end: "touchend"
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync } : {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync start: "mousedown",
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync move: "mousemove",
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync end: "mouseup"
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync START = "start",
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync MOVE = "move",
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync END = "end",
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync _MOVE_START_HANDLE = "_msh",
241adddf415cbdf66230864a215b24415f482e72vboxsync _MOVE_HANDLE = "_mh",
241adddf415cbdf66230864a215b24415f482e72vboxsync _MOVE_END_HANDLE = "_meh",
241adddf415cbdf66230864a215b24415f482e72vboxsync
241adddf415cbdf66230864a215b24415f482e72vboxsync _DEL_MOVE_START_HANDLE = "_dmsh",
241adddf415cbdf66230864a215b24415f482e72vboxsync _DEL_MOVE_HANDLE = "_dmh",
241adddf415cbdf66230864a215b24415f482e72vboxsync _DEL_MOVE_END_HANDLE = "_dmeh",
241adddf415cbdf66230864a215b24415f482e72vboxsync
241adddf415cbdf66230864a215b24415f482e72vboxsync _MOVE_START = "_ms",
241adddf415cbdf66230864a215b24415f482e72vboxsync _MOVE = "_m",
241adddf415cbdf66230864a215b24415f482e72vboxsync
241adddf415cbdf66230864a215b24415f482e72vboxsync MIN_TIME = "minTime",
241adddf415cbdf66230864a215b24415f482e72vboxsync MIN_DISTANCE = "minDistance",
241adddf415cbdf66230864a215b24415f482e72vboxsync OWNER_DOCUMENT = "ownerDocument",
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync NODE_TYPE = "nodeType",
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsync PUB_CFG = {
859c9a7cc74066a52cf7e76d54169859e7705c3dvboxsync emitFacade:false
859c9a7cc74066a52cf7e76d54169859e7705c3dvboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync _defArgsProcessor = function(args, delegate) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync var iExtra = (delegate) ? 4 : 3;
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsync return args[iExtra] ? Y.merge(args.splice(iExtra,1)[0]) : {};
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsync },
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsync
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsync _getRoot = function(node, subscriber) {
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsync return subscriber._extra.root || (node.get(NODE_TYPE) === 9) ? node : node.get(OWNER_DOCUMENT);
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsync },
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsync
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsync define = Y.Event.define;
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsync
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsyncdefine('gesturemovestart', {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync on: function (node, subscriber, ce) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
241adddf415cbdf66230864a215b24415f482e72vboxsync subscriber[_MOVE_START_HANDLE] = node.on(EVENT[START],
241adddf415cbdf66230864a215b24415f482e72vboxsync this._onStart,
241adddf415cbdf66230864a215b24415f482e72vboxsync this,
241adddf415cbdf66230864a215b24415f482e72vboxsync node,
241adddf415cbdf66230864a215b24415f482e72vboxsync subscriber,
241adddf415cbdf66230864a215b24415f482e72vboxsync ce);
241adddf415cbdf66230864a215b24415f482e72vboxsync
241adddf415cbdf66230864a215b24415f482e72vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync delegate : function(node, subscriber, ce, filter) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsync var se = this;
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsync
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsync subscriber[_DEL_MOVE_START_HANDLE] = node.delegate(EVENT[START],
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsync function(e) {
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsync se._onStart(e, node, subscriber, ce, true);
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsync },
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsync filter);
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsync },
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsync
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsync detachDelegate : function(node, subscriber, ce, filter) {
a8ce9568e18b8c1a49833bf3b3ac2b2cc634b13cvboxsync var handle = subscriber[_DEL_MOVE_START_HANDLE];
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
241adddf415cbdf66230864a215b24415f482e72vboxsync if (handle) {
241adddf415cbdf66230864a215b24415f482e72vboxsync handle.detach();
241adddf415cbdf66230864a215b24415f482e72vboxsync subscriber[_DEL_MOVE_START_HANDLE] = null;
241adddf415cbdf66230864a215b24415f482e72vboxsync }
241adddf415cbdf66230864a215b24415f482e72vboxsync
241adddf415cbdf66230864a215b24415f482e72vboxsync },
241adddf415cbdf66230864a215b24415f482e72vboxsync
241adddf415cbdf66230864a215b24415f482e72vboxsync detach: function (node, subscriber, ce) {
241adddf415cbdf66230864a215b24415f482e72vboxsync var startHandle = subscriber[_MOVE_START_HANDLE];
241adddf415cbdf66230864a215b24415f482e72vboxsync
241adddf415cbdf66230864a215b24415f482e72vboxsync if (startHandle) {
241adddf415cbdf66230864a215b24415f482e72vboxsync startHandle.detach();
241adddf415cbdf66230864a215b24415f482e72vboxsync subscriber[_MOVE_START_HANDLE] = null;
241adddf415cbdf66230864a215b24415f482e72vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync processArgs : function(args, delegate) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync var params = _defArgsProcessor(args, delegate);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (!(MIN_TIME in params)) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync params[MIN_TIME] = this.MIN_TIME;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (!(MIN_DISTANCE in params)) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync params[MIN_DISTANCE] = this.MIN_DISTANCE;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync return params;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync publishConfig: PUB_CFG,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync _onStart : function(e, node, subscriber, ce, delegate) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync e.preventDefault();
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (delegate) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync node = e.currentTarget;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync var origE = e,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync params = subscriber._extra,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync start = true,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync minTime = params.minTime,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync minDistance = params.minDistance,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync button = params.button,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync root = _getRoot(node, subscriber),
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync startXY;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (e.touches) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync start = (e.touches.length === 1);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync e = e.touches[0];
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync e.target = e.target || origE.target;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync e.currentTarget = e.currentTarget || origE.currentTarget;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync } else {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync start = (button === undefined) || (button = e.button);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync Y.log("gesturemovestart: params = button:" + button + ", minTime = " + minTime + ", minDistance = " + minDistance, "event-gestures");
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (start) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (minTime === 0 || minDistance === 0) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync Y.log("gesturemovestart: No minTime or minDistance.", "event-gestures");
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync this._start(e, node, ce, params);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync } else {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync startXY = [e.pageX, e.pageY];
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (minTime > 0) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync Y.log("gesturemovestart: minTime specified. Setup timer.", "event-gestures");
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync Y.log("gesturemovestart: initialTime for minTime = " + new Date().getTime(), "event-gestures");
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync params._ht = Y.later(minTime, this, this._start, [e, node, ce, params]);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync params._hme = root.on(EVENT[END], Y.bind(function() {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync this._cancel(params);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }, this));
4791a729647f035b6561d292c9f848dd1fc797a9vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (minDistance > 0) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync Y.log("gesturemovestart: minDistance specified. Setup native mouse/touchmove listener to measure distance.", "event-gestures");
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync Y.log("gesturemovestart: initialXY for minDistance = " + startXY, "event-gestures");
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync params._hm = root.on(EVENT[MOVE], Y.bind(function(em) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (Math.abs(em.pageX - startXY[0]) > minDistance || Math.abs(em.pageY - startXY[1]) > minDistance) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync Y.log("gesturemovestart: minDistance hit.", "event-gestures");
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync this._start(e, node, ce, params);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }, this));
3dd1d8fdf12303b292d9ee378edbc5f5fb6d6cb5vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync _cancel : function(params) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (params._ht) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync params._ht.cancel();
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync params._ht = null;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (params._hme) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync params._hme.detach();
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync params._hme = null;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (params._hm) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync params._hm.detach();
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync params._hm = null;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync _start : function(e, node, ce, params) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (params) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync this._cancel(params);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync e.type = "gesturemovestart";
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync Y.log("gesturemovestart: Firing start: " + new Date().getTime(), "event-gestures");
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync node.setData(_MOVE_START, e);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync ce.fire(e);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync MIN_TIME : 0,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync MIN_DISTANCE : 0
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync});
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsyncdefine('gesturemove', {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync on : function (node, subscriber, ce) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync var root = _getRoot(node, subscriber),
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync moveHandle = root.on(EVENT[MOVE],
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync this._onMove,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync this,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync node,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync subscriber,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync ce);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync subscriber[_MOVE_HANDLE] = moveHandle;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync delegate : function(node, subscriber, ce, filter) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync var se = this;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync subscriber[_DEL_MOVE_HANDLE] = node.delegate(EVENT[MOVE],
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync function(e) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync se._onMove(e, node, subscriber, ce, true);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync filter);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync detach : function (node, subscriber, ce) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync var moveHandle = subscriber[_MOVE_HANDLE];
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (moveHandle) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync moveHandle.detach();
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync subscriber[_MOVE_HANDLE] = null;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync detachDelegate : function(node, subscriber, ce, filter) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync var handle = subscriber[_DEL_MOVE_HANDLE];
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (handle) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync handle.detach();
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync subscriber[_DEL_MOVE_HANDLE] = null;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync processArgs : _defArgsProcessor,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync publishConfig : PUB_CFG,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync _onMove : function(e, node, subscriber, ce, delegate) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (delegate) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync node = e.currentTarget;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync var move = subscriber._extra.standAlone || node.getData(_MOVE_START),
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync origE = e;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync Y.log("onMove:" + move,"event-gestures");
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (move) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (e.touches) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync move = (e.touches.length === 1);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync e = e.touches[0];
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync e.target = e.target || origE.target;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync e.currentTarget = e.currentTarget || origE.currentTarget;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (move) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync Y.log("onMove2:" + move,"event-gestures");
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync origE.preventDefault();
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync e.type = "gesturemove";
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync ce.fire(e);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync});
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsyncdefine('gesturemoveend', {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync on : function (node, subscriber, ce) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync var root = _getRoot(node, subscriber),
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync endHandle = root.on(EVENT[END],
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync this._onEnd,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync this,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync node,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync subscriber,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync ce);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync subscriber[_MOVE_END_HANDLE] = endHandle;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync delegate : function(node, subscriber, ce, filter) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync var se = this;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync subscriber[_DEL_MOVE_END_HANDLE] = node.delegate(EVENT[END],
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync function(e) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync se._onEnd(e, node, subscriber, ce, true);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync filter);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync detachDelegate : function(node, subscriber, ce, filter) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync var handle = subscriber[_DEL_MOVE_END_HANDLE];
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (handle) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync handle.detach();
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync subscriber[_DEL_MOVE_END_HANDLE] = null;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync detach : function (node, subscriber, ce) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync var endHandle = subscriber[_MOVE_END_HANDLE];
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (endHandle) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync endHandle.detach();
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync subscriber[_MOVE_END_HANDLE] = null;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync },
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync processArgs : _defArgsProcessor,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync publishConfig : PUB_CFG,
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync _onEnd : function(e, node, subscriber, ce, delegate) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (delegate) {
fd60bfdb327b9b1e7a6d084cf368fb7f07c566cfvboxsync node = e.currentTarget;
223935479ac42db56b7b7a7d16548d590022996avboxsync }
223935479ac42db56b7b7a7d16548d590022996avboxsync
223935479ac42db56b7b7a7d16548d590022996avboxsync var moveEnd = subscriber._extra.standAlone || node.getData(_MOVE) || node.getData(_MOVE_START),
223935479ac42db56b7b7a7d16548d590022996avboxsync origE = e;
fd60bfdb327b9b1e7a6d084cf368fb7f07c566cfvboxsync
fd60bfdb327b9b1e7a6d084cf368fb7f07c566cfvboxsync if (moveEnd) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (e.changedTouches) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (e.changedTouches.length === 1) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync e = e.changedTouches[0];
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync e.target = e.target || origE.target;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync e.currentTarget = e.currentTarget || origE.currentTarget;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync } else {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync moveEnd = false;
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync }
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync if (moveEnd) {
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync origE.preventDefault();
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync e.type = "gesturemoveend";
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync ce.fire(e);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync node.clearData(_MOVE_START);
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync node.clearData(_MOVE);
64863d3a0ffadf1ac248b295b78be5d55db6ee13vboxsync }
64863d3a0ffadf1ac248b295b78be5d55db6ee13vboxsync }
64863d3a0ffadf1ac248b295b78be5d55db6ee13vboxsync }
64863d3a0ffadf1ac248b295b78be5d55db6ee13vboxsync});
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync}, '@VERSION@' ,{requires:['node-base','event-touch','event-synthetic']});
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsyncYUI.add('event-gestures', function(Y){}, '@VERSION@' ,{use:['event-flick', 'event-move']});
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync
febf3f1de573e25fb134b8453a22b0732b4c52e2vboxsync