hammerjs_rails 1.1.3 → 1.1.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/hammer.js +259 -191
- data/lib/hammerjs_rails/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eab49899337a74cb6de51233b60671869a5dfcd1
|
4
|
+
data.tar.gz: 0534216ef052db41e98fba6cd3c5844e18a4cf6b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8867a8ec7194ded45c6a0138c495d6e9a2aa35ff54ea54a441eacfcc0143e8b5dec53aa7c8b4045cf9236df6c0514304ae718fe7f28a7ae37fa16b2457dd5f5f
|
7
|
+
data.tar.gz: 51a8dce4ae8e67a11741a3f0044731b24d5ee8a7dec98c66bb0e915ac5e80d071cc71d5b16c8564f7fbe12078f2d02b192564c4a84fc79647f8427cc143910c7
|
@@ -1,9 +1,8 @@
|
|
1
|
-
/*! Hammer.JS - v1.1.3 - 2014-05-
|
2
|
-
* http://eightmedia.github.
|
1
|
+
/*! jQuery plugin for Hammer.JS - v1.1.3 - 2014-05-20
|
2
|
+
* http://eightmedia.github.com/hammer.js
|
3
3
|
*
|
4
4
|
* Copyright (c) 2014 Jorik Tangelder <j.tangelder@gmail.com>;
|
5
5
|
* Licensed under the MIT license */
|
6
|
-
|
7
6
|
(function(window, undefined) {
|
8
7
|
'use strict';
|
9
8
|
|
@@ -617,6 +616,181 @@ var Utils = Hammer.utils = {
|
|
617
616
|
};
|
618
617
|
|
619
618
|
|
619
|
+
/**
|
620
|
+
* @module hammer
|
621
|
+
*/
|
622
|
+
|
623
|
+
/**
|
624
|
+
* create new hammer instance
|
625
|
+
* all methods should return the instance itself, so it is chainable.
|
626
|
+
*
|
627
|
+
* @class Instance
|
628
|
+
* @constructor
|
629
|
+
* @param {HTMLElement} element
|
630
|
+
* @param {Object} [options={}] options are merged with `Hammer.defaults`
|
631
|
+
* @return {Hammer.Instance}
|
632
|
+
*/
|
633
|
+
Hammer.Instance = function(element, options) {
|
634
|
+
var self = this;
|
635
|
+
|
636
|
+
// setup HammerJS window events and register all gestures
|
637
|
+
// this also sets up the default options
|
638
|
+
setup();
|
639
|
+
|
640
|
+
/**
|
641
|
+
* @property element
|
642
|
+
* @type {HTMLElement}
|
643
|
+
*/
|
644
|
+
this.element = element;
|
645
|
+
|
646
|
+
/**
|
647
|
+
* @property enabled
|
648
|
+
* @type {Boolean}
|
649
|
+
* @protected
|
650
|
+
*/
|
651
|
+
this.enabled = true;
|
652
|
+
|
653
|
+
/**
|
654
|
+
* options, merged with the defaults
|
655
|
+
* options with an _ are converted to camelCase
|
656
|
+
* @property options
|
657
|
+
* @type {Object}
|
658
|
+
*/
|
659
|
+
Utils.each(options, function(value, name) {
|
660
|
+
delete options[name];
|
661
|
+
options[Utils.toCamelCase(name)] = value;
|
662
|
+
});
|
663
|
+
|
664
|
+
this.options = Utils.extend(Utils.extend({}, Hammer.defaults), options || {});
|
665
|
+
|
666
|
+
// add some css to the element to prevent the browser from doing its native behavoir
|
667
|
+
if(this.options.behavior) {
|
668
|
+
Utils.toggleBehavior(this.element, this.options.behavior, true);
|
669
|
+
}
|
670
|
+
|
671
|
+
/**
|
672
|
+
* event start handler on the element to start the detection
|
673
|
+
* @property eventStartHandler
|
674
|
+
* @type {Object}
|
675
|
+
*/
|
676
|
+
this.eventStartHandler = Event.onTouch(element, EVENT_START, function(ev) {
|
677
|
+
if(self.enabled && ev.eventType == EVENT_START) {
|
678
|
+
Detection.startDetect(self, ev);
|
679
|
+
} else if(ev.eventType == EVENT_TOUCH) {
|
680
|
+
Detection.detect(ev);
|
681
|
+
}
|
682
|
+
});
|
683
|
+
|
684
|
+
/**
|
685
|
+
* keep a list of user event handlers which needs to be removed when calling 'dispose'
|
686
|
+
* @property eventHandlers
|
687
|
+
* @type {Array}
|
688
|
+
*/
|
689
|
+
this.eventHandlers = [];
|
690
|
+
};
|
691
|
+
|
692
|
+
Hammer.Instance.prototype = {
|
693
|
+
/**
|
694
|
+
* bind events to the instance
|
695
|
+
* @method on
|
696
|
+
* @chainable
|
697
|
+
* @param {String} gestures multiple gestures by splitting with a space
|
698
|
+
* @param {Function} handler
|
699
|
+
* @param {Object} handler.ev event object
|
700
|
+
*/
|
701
|
+
on: function onEvent(gestures, handler) {
|
702
|
+
var self = this;
|
703
|
+
Event.on(self.element, gestures, handler, function(type) {
|
704
|
+
self.eventHandlers.push({ gesture: type, handler: handler });
|
705
|
+
});
|
706
|
+
return self;
|
707
|
+
},
|
708
|
+
|
709
|
+
/**
|
710
|
+
* unbind events to the instance
|
711
|
+
* @method off
|
712
|
+
* @chainable
|
713
|
+
* @param {String} gestures
|
714
|
+
* @param {Function} handler
|
715
|
+
*/
|
716
|
+
off: function offEvent(gestures, handler) {
|
717
|
+
var self = this;
|
718
|
+
|
719
|
+
Event.off(self.element, gestures, handler, function(type) {
|
720
|
+
var index = Utils.inArray({ gesture: type, handler: handler });
|
721
|
+
if(index !== false) {
|
722
|
+
self.eventHandlers.splice(index, 1);
|
723
|
+
}
|
724
|
+
});
|
725
|
+
return self;
|
726
|
+
},
|
727
|
+
|
728
|
+
/**
|
729
|
+
* trigger gesture event
|
730
|
+
* @method trigger
|
731
|
+
* @chainable
|
732
|
+
* @param {String} gesture
|
733
|
+
* @param {Object} [eventData]
|
734
|
+
*/
|
735
|
+
trigger: function triggerEvent(gesture, eventData) {
|
736
|
+
// optional
|
737
|
+
if(!eventData) {
|
738
|
+
eventData = {};
|
739
|
+
}
|
740
|
+
|
741
|
+
// create DOM event
|
742
|
+
var event = Hammer.DOCUMENT.createEvent('Event');
|
743
|
+
event.initEvent(gesture, true, true);
|
744
|
+
event.gesture = eventData;
|
745
|
+
|
746
|
+
// trigger on the target if it is in the instance element,
|
747
|
+
// this is for event delegation tricks
|
748
|
+
var element = this.element;
|
749
|
+
if(Utils.hasParent(eventData.target, element)) {
|
750
|
+
element = eventData.target;
|
751
|
+
}
|
752
|
+
|
753
|
+
element.dispatchEvent(event);
|
754
|
+
return this;
|
755
|
+
},
|
756
|
+
|
757
|
+
/**
|
758
|
+
* enable of disable hammer.js detection
|
759
|
+
* @method enable
|
760
|
+
* @chainable
|
761
|
+
* @param {Boolean} state
|
762
|
+
*/
|
763
|
+
enable: function enable(state) {
|
764
|
+
this.enabled = state;
|
765
|
+
return this;
|
766
|
+
},
|
767
|
+
|
768
|
+
/**
|
769
|
+
* dispose this hammer instance
|
770
|
+
* @method dispose
|
771
|
+
* @return {Null}
|
772
|
+
*/
|
773
|
+
dispose: function dispose() {
|
774
|
+
var i, eh;
|
775
|
+
|
776
|
+
// undo all changes made by stop_browser_behavior
|
777
|
+
Utils.toggleBehavior(this.element, this.options.behavior, false);
|
778
|
+
|
779
|
+
// unbind all custom event handlers
|
780
|
+
for(i = -1; (eh = this.eventHandlers[++i]);) {
|
781
|
+
Utils.off(this.element, eh.gesture, eh.handler);
|
782
|
+
}
|
783
|
+
|
784
|
+
this.eventHandlers = [];
|
785
|
+
|
786
|
+
// unbind the start event listener
|
787
|
+
Event.off(this.element, EVENT_TYPES[EVENT_START], this.eventStartHandler);
|
788
|
+
|
789
|
+
return null;
|
790
|
+
}
|
791
|
+
};
|
792
|
+
|
793
|
+
|
620
794
|
/**
|
621
795
|
* @module hammer
|
622
796
|
*/
|
@@ -980,7 +1154,6 @@ var PointerEvent = Hammer.PointerEvent = {
|
|
980
1154
|
Utils.each(this.pointers, function(pointer) {
|
981
1155
|
touchlist.push(pointer);
|
982
1156
|
});
|
983
|
-
|
984
1157
|
return touchlist;
|
985
1158
|
},
|
986
1159
|
|
@@ -991,7 +1164,7 @@ var PointerEvent = Hammer.PointerEvent = {
|
|
991
1164
|
* @param {Object} pointerEvent
|
992
1165
|
*/
|
993
1166
|
updatePointer: function updatePointer(eventType, pointerEvent) {
|
994
|
-
if(eventType == EVENT_END) {
|
1167
|
+
if(eventType == EVENT_END || (eventType != EVENT_END && pointerEvent.buttons !== 1)) {
|
995
1168
|
delete this.pointers[pointerEvent.pointerId];
|
996
1169
|
} else {
|
997
1170
|
pointerEvent.identifier = pointerEvent.pointerId;
|
@@ -1256,181 +1429,6 @@ var Detection = Hammer.detection = {
|
|
1256
1429
|
};
|
1257
1430
|
|
1258
1431
|
|
1259
|
-
/**
|
1260
|
-
* @module hammer
|
1261
|
-
*/
|
1262
|
-
|
1263
|
-
/**
|
1264
|
-
* create new hammer instance
|
1265
|
-
* all methods should return the instance itself, so it is chainable.
|
1266
|
-
*
|
1267
|
-
* @class Instance
|
1268
|
-
* @constructor
|
1269
|
-
* @param {HTMLElement} element
|
1270
|
-
* @param {Object} [options={}] options are merged with `Hammer.defaults`
|
1271
|
-
* @return {Hammer.Instance}
|
1272
|
-
*/
|
1273
|
-
Hammer.Instance = function(element, options) {
|
1274
|
-
var self = this;
|
1275
|
-
|
1276
|
-
// setup HammerJS window events and register all gestures
|
1277
|
-
// this also sets up the default options
|
1278
|
-
setup();
|
1279
|
-
|
1280
|
-
/**
|
1281
|
-
* @property element
|
1282
|
-
* @type {HTMLElement}
|
1283
|
-
*/
|
1284
|
-
this.element = element;
|
1285
|
-
|
1286
|
-
/**
|
1287
|
-
* @property enabled
|
1288
|
-
* @type {Boolean}
|
1289
|
-
* @protected
|
1290
|
-
*/
|
1291
|
-
this.enabled = true;
|
1292
|
-
|
1293
|
-
/**
|
1294
|
-
* options, merged with the defaults
|
1295
|
-
* options with an _ are converted to camelCase
|
1296
|
-
* @property options
|
1297
|
-
* @type {Object}
|
1298
|
-
*/
|
1299
|
-
Utils.each(options, function(value, name) {
|
1300
|
-
delete options[name];
|
1301
|
-
options[Utils.toCamelCase(name)] = value;
|
1302
|
-
});
|
1303
|
-
|
1304
|
-
this.options = Utils.extend(Utils.extend({}, Hammer.defaults), options || {});
|
1305
|
-
|
1306
|
-
// add some css to the element to prevent the browser from doing its native behavoir
|
1307
|
-
if(this.options.behavior) {
|
1308
|
-
Utils.toggleBehavior(this.element, this.options.behavior, true);
|
1309
|
-
}
|
1310
|
-
|
1311
|
-
/**
|
1312
|
-
* event start handler on the element to start the detection
|
1313
|
-
* @property eventStartHandler
|
1314
|
-
* @type {Object}
|
1315
|
-
*/
|
1316
|
-
this.eventStartHandler = Event.onTouch(element, EVENT_START, function(ev) {
|
1317
|
-
if(self.enabled && ev.eventType == EVENT_START) {
|
1318
|
-
Detection.startDetect(self, ev);
|
1319
|
-
} else if(ev.eventType == EVENT_TOUCH) {
|
1320
|
-
Detection.detect(ev);
|
1321
|
-
}
|
1322
|
-
});
|
1323
|
-
|
1324
|
-
/**
|
1325
|
-
* keep a list of user event handlers which needs to be removed when calling 'dispose'
|
1326
|
-
* @property eventHandlers
|
1327
|
-
* @type {Array}
|
1328
|
-
*/
|
1329
|
-
this.eventHandlers = [];
|
1330
|
-
};
|
1331
|
-
|
1332
|
-
Hammer.Instance.prototype = {
|
1333
|
-
/**
|
1334
|
-
* bind events to the instance
|
1335
|
-
* @method on
|
1336
|
-
* @chainable
|
1337
|
-
* @param {String} gestures multiple gestures by splitting with a space
|
1338
|
-
* @param {Function} handler
|
1339
|
-
* @param {Object} handler.ev event object
|
1340
|
-
*/
|
1341
|
-
on: function onEvent(gestures, handler) {
|
1342
|
-
var self = this;
|
1343
|
-
Event.on(self.element, gestures, handler, function(type) {
|
1344
|
-
self.eventHandlers.push({ gesture: type, handler: handler });
|
1345
|
-
});
|
1346
|
-
return self;
|
1347
|
-
},
|
1348
|
-
|
1349
|
-
/**
|
1350
|
-
* unbind events to the instance
|
1351
|
-
* @method off
|
1352
|
-
* @chainable
|
1353
|
-
* @param {String} gestures
|
1354
|
-
* @param {Function} handler
|
1355
|
-
*/
|
1356
|
-
off: function offEvent(gestures, handler) {
|
1357
|
-
var self = this;
|
1358
|
-
|
1359
|
-
Event.off(self.element, gestures, handler, function(type) {
|
1360
|
-
var index = Utils.inArray({ gesture: type, handler: handler });
|
1361
|
-
if(index !== false) {
|
1362
|
-
self.eventHandlers.splice(index, 1);
|
1363
|
-
}
|
1364
|
-
});
|
1365
|
-
return self;
|
1366
|
-
},
|
1367
|
-
|
1368
|
-
/**
|
1369
|
-
* trigger gesture event
|
1370
|
-
* @method trigger
|
1371
|
-
* @chainable
|
1372
|
-
* @param {String} gesture
|
1373
|
-
* @param {Object} [eventData]
|
1374
|
-
*/
|
1375
|
-
trigger: function triggerEvent(gesture, eventData) {
|
1376
|
-
// optional
|
1377
|
-
if(!eventData) {
|
1378
|
-
eventData = {};
|
1379
|
-
}
|
1380
|
-
|
1381
|
-
// create DOM event
|
1382
|
-
var event = Hammer.DOCUMENT.createEvent('Event');
|
1383
|
-
event.initEvent(gesture, true, true);
|
1384
|
-
event.gesture = eventData;
|
1385
|
-
|
1386
|
-
// trigger on the target if it is in the instance element,
|
1387
|
-
// this is for event delegation tricks
|
1388
|
-
var element = this.element;
|
1389
|
-
if(Utils.hasParent(eventData.target, element)) {
|
1390
|
-
element = eventData.target;
|
1391
|
-
}
|
1392
|
-
|
1393
|
-
element.dispatchEvent(event);
|
1394
|
-
return this;
|
1395
|
-
},
|
1396
|
-
|
1397
|
-
/**
|
1398
|
-
* enable of disable hammer.js detection
|
1399
|
-
* @method enable
|
1400
|
-
* @chainable
|
1401
|
-
* @param {Boolean} state
|
1402
|
-
*/
|
1403
|
-
enable: function enable(state) {
|
1404
|
-
this.enabled = state;
|
1405
|
-
return this;
|
1406
|
-
},
|
1407
|
-
|
1408
|
-
/**
|
1409
|
-
* dispose this hammer instance
|
1410
|
-
* @method dispose
|
1411
|
-
* @return {Null}
|
1412
|
-
*/
|
1413
|
-
dispose: function dispose() {
|
1414
|
-
var i, eh;
|
1415
|
-
|
1416
|
-
// undo all changes made by stop_browser_behavior
|
1417
|
-
Utils.toggleBehavior(this.element, this.options.behavior, false);
|
1418
|
-
|
1419
|
-
// unbind all custom event handlers
|
1420
|
-
for(i = -1; (eh = this.eventHandlers[++i]);) {
|
1421
|
-
Utils.off(this.element, eh.gesture, eh.handler);
|
1422
|
-
}
|
1423
|
-
|
1424
|
-
this.eventHandlers = [];
|
1425
|
-
|
1426
|
-
// unbind the start event listener
|
1427
|
-
Event.off(this.element, EVENT_TYPES[EVENT_START], this.eventStartHandler);
|
1428
|
-
|
1429
|
-
return null;
|
1430
|
-
}
|
1431
|
-
};
|
1432
|
-
|
1433
|
-
|
1434
1432
|
/**
|
1435
1433
|
* @module gestures
|
1436
1434
|
*/
|
@@ -2143,21 +2141,91 @@ Hammer.gestures.Touch = {
|
|
2143
2141
|
};
|
2144
2142
|
})('transform');
|
2145
2143
|
|
2146
|
-
|
2147
|
-
|
2148
|
-
|
2144
|
+
window.Hammer = Hammer;
|
2145
|
+
|
2146
|
+
if(typeof module !== 'undefined' && module.exports) {
|
2147
|
+
module.exports = Hammer;
|
2148
|
+
}
|
2149
|
+
|
2150
|
+
function setupPlugin(Hammer, $) {
|
2151
|
+
// provide polyfill for Date.now()
|
2152
|
+
// browser support: http://kangax.github.io/es5-compat-table/#Date.now
|
2153
|
+
if(!Date.now) {
|
2154
|
+
Date.now = function now() {
|
2155
|
+
return new Date().getTime();
|
2156
|
+
};
|
2157
|
+
}
|
2158
|
+
|
2159
|
+
/**
|
2160
|
+
* the methods on/off are called by the instance, but with the jquery plugin
|
2161
|
+
* we use the jquery event methods instead.
|
2162
|
+
* @this {Hammer.Instance}
|
2163
|
+
* @return {jQuery}
|
2164
|
+
*/
|
2165
|
+
Hammer.utils.each(['on', 'off'], function(method) {
|
2166
|
+
Hammer.utils[method] = function(element, type, handler) {
|
2167
|
+
$(element)[method](type, function($ev) {
|
2168
|
+
// append the jquery fixed properties/methods
|
2169
|
+
var data = $.extend({}, $ev.originalEvent, $ev);
|
2170
|
+
if(data.button === undefined) {
|
2171
|
+
data.button = $ev.which - 1;
|
2172
|
+
}
|
2173
|
+
handler.call(this, data);
|
2174
|
+
});
|
2175
|
+
};
|
2176
|
+
});
|
2177
|
+
|
2178
|
+
/**
|
2179
|
+
* trigger events
|
2180
|
+
* this is called by the gestures to trigger an event like 'tap'
|
2181
|
+
* @this {Hammer.Instance}
|
2182
|
+
* @param {String} gesture
|
2183
|
+
* @param {Object} eventData
|
2184
|
+
* @return {jQuery}
|
2185
|
+
*/
|
2186
|
+
Hammer.Instance.prototype.trigger = function(gesture, eventData) {
|
2187
|
+
var el = $(this.element);
|
2188
|
+
if(el.has(eventData.target).length) {
|
2189
|
+
el = $(eventData.target);
|
2190
|
+
}
|
2149
2191
|
|
2150
|
-
|
2192
|
+
return el.trigger({
|
2193
|
+
type: gesture,
|
2194
|
+
gesture: eventData
|
2195
|
+
});
|
2196
|
+
};
|
2197
|
+
|
2198
|
+
/**
|
2199
|
+
* jQuery plugin
|
2200
|
+
* create instance of Hammer and watch for gestures,
|
2201
|
+
* and when called again you can change the options
|
2202
|
+
* @param {Object} [options={}]
|
2203
|
+
* @return {jQuery}
|
2204
|
+
*/
|
2205
|
+
$.fn.hammer = function(options) {
|
2206
|
+
return this.each(function() {
|
2207
|
+
var el = $(this);
|
2208
|
+
var inst = el.data('hammer');
|
2209
|
+
|
2210
|
+
// start new hammer instance
|
2211
|
+
if(!inst) {
|
2212
|
+
el.data('hammer', new Hammer(this, options || {}));
|
2213
|
+
// change the options
|
2214
|
+
} else if(inst && options) {
|
2215
|
+
Hammer.utils.extend(inst.options, options);
|
2216
|
+
}
|
2217
|
+
});
|
2218
|
+
};
|
2219
|
+
}
|
2220
|
+
|
2221
|
+
|
2222
|
+
// AMD
|
2151
2223
|
if(typeof define == 'function' && define.amd) {
|
2152
|
-
define(function() {
|
2153
|
-
return Hammer;
|
2224
|
+
define(['jquery'], function($) {
|
2225
|
+
return setupPlugin(window.Hammer, $);
|
2154
2226
|
});
|
2155
|
-
// commonjs export
|
2156
|
-
} else if(typeof module !== 'undefined' && module.exports) {
|
2157
|
-
module.exports = Hammer;
|
2158
|
-
// browser export
|
2159
2227
|
} else {
|
2160
|
-
window.Hammer
|
2228
|
+
setupPlugin(window.Hammer, window.jQuery || window.Zepto);
|
2161
2229
|
}
|
2162
2230
|
|
2163
2231
|
})(window);
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hammerjs_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.3
|
4
|
+
version: 1.1.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Guy Israeli
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|