|
1 /* |
|
2 YUI 3.10.3 (build 2fb5187) |
|
3 Copyright 2013 Yahoo! Inc. All rights reserved. |
|
4 Licensed under the BSD License. |
|
5 http://yuilibrary.com/license/ |
|
6 */ |
|
7 |
|
8 YUI.add('dd-gestures', function (Y, NAME) { |
|
9 |
|
10 |
|
11 /** |
|
12 * This module is the conditional loaded `dd` module to support gesture events |
|
13 * in the event that `dd` is loaded onto a device that support touch based events. |
|
14 * |
|
15 * This module is loaded and over rides 2 key methods on `DD.Drag` and `DD.DDM` to |
|
16 * attach the gesture events. Overrides `DD.Drag._prep` and `DD.DDM._setupListeners` |
|
17 * methods as well as set's the property `DD.Drag.START_EVENT` to `gesturemovestart` |
|
18 * to enable gesture movement instead of mouse based movement. |
|
19 * @module dd |
|
20 * @submodule dd-gestures |
|
21 */ |
|
22 Y.log('Drag gesture support loaded', 'info', 'drag-gestures'); |
|
23 |
|
24 Y.DD.Drag.START_EVENT = 'gesturemovestart'; |
|
25 |
|
26 Y.DD.Drag.prototype._prep = function() { |
|
27 Y.log('Using DD override prep to attach gesture events', 'info', 'drag-gestures'); |
|
28 this._dragThreshMet = false; |
|
29 var node = this.get('node'), DDM = Y.DD.DDM; |
|
30 |
|
31 node.addClass(DDM.CSS_PREFIX + '-draggable'); |
|
32 |
|
33 node.on(Y.DD.Drag.START_EVENT, Y.bind(this._handleMouseDownEvent, this), { |
|
34 minDistance: this.get('clickPixelThresh'), |
|
35 minTime: this.get('clickTimeThresh') |
|
36 }); |
|
37 |
|
38 node.on('gesturemoveend', Y.bind(this._handleMouseUp, this), { standAlone: true }); |
|
39 node.on('dragstart', Y.bind(this._fixDragStart, this)); |
|
40 |
|
41 }; |
|
42 |
|
43 var _unprep = Y.DD.Drag.prototype._unprep; |
|
44 |
|
45 Y.DD.Drag.prototype._unprep = function() { |
|
46 var node = this.get('node'); |
|
47 _unprep.call(this); |
|
48 node.detachAll('gesturemoveend'); |
|
49 }; |
|
50 |
|
51 Y.DD.DDM._setupListeners = function() { |
|
52 var DDM = Y.DD.DDM; |
|
53 |
|
54 this._createPG(); |
|
55 this._active = true; |
|
56 Y.one(Y.config.doc).on('gesturemove', Y.throttle(Y.bind(DDM._move, DDM), DDM.get('throttleTime')), { standAlone: true }); |
|
57 }; |
|
58 |
|
59 |
|
60 |
|
61 }, '3.10.3', {"requires": ["dd-drag", "event-synthetic", "event-gestures"]}); |