hammerjs_rails 1.1.3 → 1.1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|