Skip to content

Commit 70c558a

Browse files
committed
6cbf990 feat(gestures): allow override of Hammer default configuration
1 parent da689bf commit 70c558a

25 files changed

Lines changed: 491 additions & 130 deletions

BUILD_INFO

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
Fri Apr 8 19:06:15 UTC 2016
2-
26a33905499e17163939db8ec509b39ace2af8ac
1+
Fri Apr 8 19:10:31 UTC 2016
2+
6cbf99086e8fa2a08d3c1eae80e581e951eab1ce

bundles/angular2-all-testing.umd.dev.js

Lines changed: 42 additions & 10 deletions
Large diffs are not rendered by default.

bundles/angular2-all.umd.dev.js

Lines changed: 42 additions & 10 deletions
Large diffs are not rendered by default.

bundles/angular2-all.umd.js

Lines changed: 41 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29112,6 +29112,7 @@ return /******/ (function(modules) { // webpackBootstrap
2911229112
var testability_2 = __webpack_require__(216);
2911329113
var wtf_init_1 = __webpack_require__(217);
2911429114
var event_manager_1 = __webpack_require__(199);
29115+
var hammer_gestures_2 = __webpack_require__(201);
2911529116
var common_dom_1 = __webpack_require__(218);
2911629117
var dom_tokens_2 = __webpack_require__(203);
2911729118
exports.DOCUMENT = dom_tokens_2.DOCUMENT;
@@ -29127,6 +29128,9 @@ return /******/ (function(modules) { // webpackBootstrap
2912729128
var tools_1 = __webpack_require__(223);
2912829129
exports.enableDebugTools = tools_1.enableDebugTools;
2912929130
exports.disableDebugTools = tools_1.disableDebugTools;
29131+
var hammer_gestures_3 = __webpack_require__(201);
29132+
exports.HAMMER_GESTURE_CONFIG = hammer_gestures_3.HAMMER_GESTURE_CONFIG;
29133+
exports.HammerGestureConfig = hammer_gestures_3.HammerGestureConfig;
2913029134
/**
2913129135
* A set of providers to initialize the Angular platform in a web browser.
2913229136
*
@@ -29159,6 +29163,7 @@ return /******/ (function(modules) { // webpackBootstrap
2915929163
new di_1.Provider(event_manager_1.EVENT_MANAGER_PLUGINS, { useClass: dom_events_1.DomEventsPlugin, multi: true }),
2916029164
new di_1.Provider(event_manager_1.EVENT_MANAGER_PLUGINS, { useClass: key_events_1.KeyEventsPlugin, multi: true }),
2916129165
new di_1.Provider(event_manager_1.EVENT_MANAGER_PLUGINS, { useClass: hammer_gestures_1.HammerGesturesPlugin, multi: true }),
29166+
new di_1.Provider(hammer_gestures_2.HAMMER_GESTURE_CONFIG, { useClass: hammer_gestures_2.HammerGestureConfig }),
2916229167
new di_1.Provider(dom_renderer_1.DomRootRenderer, { useClass: dom_renderer_1.DomRootRenderer_ }),
2916329168
new di_1.Provider(core_1.RootRenderer, { useExisting: dom_renderer_1.DomRootRenderer }),
2916429169
new di_1.Provider(shared_styles_host_2.SharedStylesHost, { useExisting: shared_styles_host_1.DomSharedStylesHost }),
@@ -29435,39 +29440,66 @@ return /******/ (function(modules) { // webpackBootstrap
2943529440
var __metadata = (this && this.__metadata) || function (k, v) {
2943629441
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2943729442
};
29443+
var __param = (this && this.__param) || function (paramIndex, decorator) {
29444+
return function (target, key) { decorator(target, key, paramIndex); }
29445+
};
2943829446
var hammer_common_1 = __webpack_require__(202);
2943929447
var lang_1 = __webpack_require__(5);
2944029448
var exceptions_1 = __webpack_require__(14);
29441-
var di_1 = __webpack_require__(6);
29449+
var core_1 = __webpack_require__(2);
29450+
exports.HAMMER_GESTURE_CONFIG = lang_1.CONST_EXPR(new core_1.OpaqueToken("HammerGestureConfig"));
29451+
var HammerGestureConfig = (function () {
29452+
function HammerGestureConfig() {
29453+
this.events = [];
29454+
this.overrides = {};
29455+
}
29456+
HammerGestureConfig.prototype.buildHammer = function (element) {
29457+
var mc = new Hammer(element);
29458+
mc.get('pinch').set({ enable: true });
29459+
mc.get('rotate').set({ enable: true });
29460+
for (var eventName in this.overrides) {
29461+
mc.get(eventName).set(this.overrides[eventName]);
29462+
}
29463+
return mc;
29464+
};
29465+
HammerGestureConfig = __decorate([
29466+
core_1.Injectable(),
29467+
__metadata('design:paramtypes', [])
29468+
], HammerGestureConfig);
29469+
return HammerGestureConfig;
29470+
})();
29471+
exports.HammerGestureConfig = HammerGestureConfig;
2944229472
var HammerGesturesPlugin = (function (_super) {
2944329473
__extends(HammerGesturesPlugin, _super);
29444-
function HammerGesturesPlugin() {
29445-
_super.apply(this, arguments);
29474+
function HammerGesturesPlugin(_config) {
29475+
_super.call(this);
29476+
this._config = _config;
2944629477
}
2944729478
HammerGesturesPlugin.prototype.supports = function (eventName) {
29448-
if (!_super.prototype.supports.call(this, eventName))
29479+
if (!_super.prototype.supports.call(this, eventName) && !this.isCustomEvent(eventName))
2944929480
return false;
2945029481
if (!lang_1.isPresent(window['Hammer'])) {
2945129482
throw new exceptions_1.BaseException("Hammer.js is not loaded, can not bind " + eventName + " event");
2945229483
}
2945329484
return true;
2945429485
};
2945529486
HammerGesturesPlugin.prototype.addEventListener = function (element, eventName, handler) {
29487+
var _this = this;
2945629488
var zone = this.manager.getZone();
2945729489
eventName = eventName.toLowerCase();
2945829490
return zone.runOutsideAngular(function () {
2945929491
// Creating the manager bind events, must be done outside of angular
29460-
var mc = new Hammer(element);
29461-
mc.get('pinch').set({ enable: true });
29462-
mc.get('rotate').set({ enable: true });
29492+
var mc = _this._config.buildHammer(element);
2946329493
var callback = function (eventObj) { zone.run(function () { handler(eventObj); }); };
2946429494
mc.on(eventName, callback);
2946529495
return function () { mc.off(eventName, callback); };
2946629496
});
2946729497
};
29498+
HammerGesturesPlugin.prototype.isCustomEvent = function (eventName) { return this._config.events.indexOf(eventName) > -1; };
2946829499
HammerGesturesPlugin = __decorate([
29469-
di_1.Injectable(),
29470-
__metadata('design:paramtypes', [])
29500+
core_1.Injectable(),
29501+
__param(0, core_1.Inject(exports.HAMMER_GESTURE_CONFIG)),
29502+
__metadata('design:paramtypes', [HammerGestureConfig])
2947129503
], HammerGesturesPlugin);
2947229504
return HammerGesturesPlugin;
2947329505
})(hammer_common_1.HammerGesturesPluginCommon);

bundles/angular2-all.umd.min.js

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bundles/angular2.dev.js

Lines changed: 42 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21160,7 +21160,7 @@ System.register("angular2/src/common/forms/directives", ["angular2/src/facade/la
2116021160
return module.exports;
2116121161
});
2116221162

21163-
System.register("angular2/src/platform/dom/events/hammer_gestures", ["angular2/src/platform/dom/events/hammer_common", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/core/di"], true, function(require, exports, module) {
21163+
System.register("angular2/src/platform/dom/events/hammer_gestures", ["angular2/src/platform/dom/events/hammer_common", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/core"], true, function(require, exports, module) {
2116421164
var global = System.global,
2116521165
__define = global.define;
2116621166
global.define = undefined;
@@ -21189,30 +21189,54 @@ System.register("angular2/src/platform/dom/events/hammer_gestures", ["angular2/s
2118921189
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
2119021190
return Reflect.metadata(k, v);
2119121191
};
21192+
var __param = (this && this.__param) || function(paramIndex, decorator) {
21193+
return function(target, key) {
21194+
decorator(target, key, paramIndex);
21195+
};
21196+
};
2119221197
var hammer_common_1 = require("angular2/src/platform/dom/events/hammer_common");
2119321198
var lang_1 = require("angular2/src/facade/lang");
2119421199
var exceptions_1 = require("angular2/src/facade/exceptions");
21195-
var di_1 = require("angular2/src/core/di");
21200+
var core_1 = require("angular2/core");
21201+
exports.HAMMER_GESTURE_CONFIG = lang_1.CONST_EXPR(new core_1.OpaqueToken("HammerGestureConfig"));
21202+
var HammerGestureConfig = (function() {
21203+
function HammerGestureConfig() {
21204+
this.events = [];
21205+
this.overrides = {};
21206+
}
21207+
HammerGestureConfig.prototype.buildHammer = function(element) {
21208+
var mc = new Hammer(element);
21209+
mc.get('pinch').set({enable: true});
21210+
mc.get('rotate').set({enable: true});
21211+
for (var eventName in this.overrides) {
21212+
mc.get(eventName).set(this.overrides[eventName]);
21213+
}
21214+
return mc;
21215+
};
21216+
HammerGestureConfig = __decorate([core_1.Injectable(), __metadata('design:paramtypes', [])], HammerGestureConfig);
21217+
return HammerGestureConfig;
21218+
})();
21219+
exports.HammerGestureConfig = HammerGestureConfig;
2119621220
var HammerGesturesPlugin = (function(_super) {
2119721221
__extends(HammerGesturesPlugin, _super);
21198-
function HammerGesturesPlugin() {
21199-
_super.apply(this, arguments);
21222+
function HammerGesturesPlugin(_config) {
21223+
_super.call(this);
21224+
this._config = _config;
2120021225
}
2120121226
HammerGesturesPlugin.prototype.supports = function(eventName) {
21202-
if (!_super.prototype.supports.call(this, eventName))
21227+
if (!_super.prototype.supports.call(this, eventName) && !this.isCustomEvent(eventName))
2120321228
return false;
2120421229
if (!lang_1.isPresent(window['Hammer'])) {
2120521230
throw new exceptions_1.BaseException("Hammer.js is not loaded, can not bind " + eventName + " event");
2120621231
}
2120721232
return true;
2120821233
};
2120921234
HammerGesturesPlugin.prototype.addEventListener = function(element, eventName, handler) {
21235+
var _this = this;
2121021236
var zone = this.manager.getZone();
2121121237
eventName = eventName.toLowerCase();
2121221238
return zone.runOutsideAngular(function() {
21213-
var mc = new Hammer(element);
21214-
mc.get('pinch').set({enable: true});
21215-
mc.get('rotate').set({enable: true});
21239+
var mc = _this._config.buildHammer(element);
2121621240
var callback = function(eventObj) {
2121721241
zone.run(function() {
2121821242
handler(eventObj);
@@ -21224,7 +21248,10 @@ System.register("angular2/src/platform/dom/events/hammer_gestures", ["angular2/s
2122421248
};
2122521249
});
2122621250
};
21227-
HammerGesturesPlugin = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [])], HammerGesturesPlugin);
21251+
HammerGesturesPlugin.prototype.isCustomEvent = function(eventName) {
21252+
return this._config.events.indexOf(eventName) > -1;
21253+
};
21254+
HammerGesturesPlugin = __decorate([core_1.Injectable(), __param(0, core_1.Inject(exports.HAMMER_GESTURE_CONFIG)), __metadata('design:paramtypes', [HammerGestureConfig])], HammerGesturesPlugin);
2122821255
return HammerGesturesPlugin;
2122921256
})(hammer_common_1.HammerGesturesPluginCommon);
2123021257
exports.HammerGesturesPlugin = HammerGesturesPlugin;
@@ -25590,7 +25617,7 @@ System.register("angular2/compiler", ["angular2/src/compiler/url_resolver", "ang
2559025617
return module.exports;
2559125618
});
2559225619

25593-
System.register("angular2/src/platform/browser_common", ["angular2/src/facade/lang", "angular2/src/core/di", "angular2/core", "angular2/common", "angular2/src/core/testability/testability", "angular2/src/platform/dom/dom_adapter", "angular2/src/platform/dom/events/dom_events", "angular2/src/platform/dom/events/key_events", "angular2/src/platform/dom/events/hammer_gestures", "angular2/src/platform/dom/dom_tokens", "angular2/src/platform/dom/dom_renderer", "angular2/src/platform/dom/shared_styles_host", "angular2/src/platform/dom/shared_styles_host", "angular2/src/animate/browser_details", "angular2/src/animate/animation_builder", "angular2/src/platform/browser/browser_adapter", "angular2/src/platform/browser/testability", "angular2/src/core/profile/wtf_init", "angular2/src/platform/dom/events/event_manager", "angular2/platform/common_dom", "angular2/src/platform/dom/dom_tokens", "angular2/src/platform/browser/title", "angular2/platform/common_dom", "angular2/src/platform/browser/browser_adapter", "angular2/src/platform/browser/tools/tools"], true, function(require, exports, module) {
25620+
System.register("angular2/src/platform/browser_common", ["angular2/src/facade/lang", "angular2/src/core/di", "angular2/core", "angular2/common", "angular2/src/core/testability/testability", "angular2/src/platform/dom/dom_adapter", "angular2/src/platform/dom/events/dom_events", "angular2/src/platform/dom/events/key_events", "angular2/src/platform/dom/events/hammer_gestures", "angular2/src/platform/dom/dom_tokens", "angular2/src/platform/dom/dom_renderer", "angular2/src/platform/dom/shared_styles_host", "angular2/src/platform/dom/shared_styles_host", "angular2/src/animate/browser_details", "angular2/src/animate/animation_builder", "angular2/src/platform/browser/browser_adapter", "angular2/src/platform/browser/testability", "angular2/src/core/profile/wtf_init", "angular2/src/platform/dom/events/event_manager", "angular2/src/platform/dom/events/hammer_gestures", "angular2/platform/common_dom", "angular2/src/platform/dom/dom_tokens", "angular2/src/platform/browser/title", "angular2/platform/common_dom", "angular2/src/platform/browser/browser_adapter", "angular2/src/platform/browser/tools/tools", "angular2/src/platform/dom/events/hammer_gestures"], true, function(require, exports, module) {
2559425621
var global = System.global,
2559525622
__define = global.define;
2559625623
global.define = undefined;
@@ -25613,6 +25640,7 @@ System.register("angular2/src/platform/browser_common", ["angular2/src/facade/la
2561325640
var testability_2 = require("angular2/src/platform/browser/testability");
2561425641
var wtf_init_1 = require("angular2/src/core/profile/wtf_init");
2561525642
var event_manager_1 = require("angular2/src/platform/dom/events/event_manager");
25643+
var hammer_gestures_2 = require("angular2/src/platform/dom/events/hammer_gestures");
2561625644
var common_dom_1 = require("angular2/platform/common_dom");
2561725645
var dom_tokens_2 = require("angular2/src/platform/dom/dom_tokens");
2561825646
exports.DOCUMENT = dom_tokens_2.DOCUMENT;
@@ -25628,6 +25656,9 @@ System.register("angular2/src/platform/browser_common", ["angular2/src/facade/la
2562825656
var tools_1 = require("angular2/src/platform/browser/tools/tools");
2562925657
exports.enableDebugTools = tools_1.enableDebugTools;
2563025658
exports.disableDebugTools = tools_1.disableDebugTools;
25659+
var hammer_gestures_3 = require("angular2/src/platform/dom/events/hammer_gestures");
25660+
exports.HAMMER_GESTURE_CONFIG = hammer_gestures_3.HAMMER_GESTURE_CONFIG;
25661+
exports.HammerGestureConfig = hammer_gestures_3.HammerGestureConfig;
2563125662
exports.BROWSER_PROVIDERS = lang_1.CONST_EXPR([core_1.PLATFORM_COMMON_PROVIDERS, new di_1.Provider(core_1.PLATFORM_INITIALIZER, {
2563225663
useValue: initDomAdapter,
2563325664
multi: true
@@ -25659,7 +25690,7 @@ System.register("angular2/src/platform/browser_common", ["angular2/src/facade/la
2565925690
}), new di_1.Provider(event_manager_1.EVENT_MANAGER_PLUGINS, {
2566025691
useClass: hammer_gestures_1.HammerGesturesPlugin,
2566125692
multi: true
25662-
}), new di_1.Provider(dom_renderer_1.DomRootRenderer, {useClass: dom_renderer_1.DomRootRenderer_}), new di_1.Provider(core_1.RootRenderer, {useExisting: dom_renderer_1.DomRootRenderer}), new di_1.Provider(shared_styles_host_2.SharedStylesHost, {useExisting: shared_styles_host_1.DomSharedStylesHost}), shared_styles_host_1.DomSharedStylesHost, testability_1.Testability, browser_details_1.BrowserDetails, animation_builder_1.AnimationBuilder, event_manager_1.EventManager, common_dom_1.ELEMENT_PROBE_PROVIDERS]);
25693+
}), new di_1.Provider(hammer_gestures_2.HAMMER_GESTURE_CONFIG, {useClass: hammer_gestures_2.HammerGestureConfig}), new di_1.Provider(dom_renderer_1.DomRootRenderer, {useClass: dom_renderer_1.DomRootRenderer_}), new di_1.Provider(core_1.RootRenderer, {useExisting: dom_renderer_1.DomRootRenderer}), new di_1.Provider(shared_styles_host_2.SharedStylesHost, {useExisting: shared_styles_host_1.DomSharedStylesHost}), shared_styles_host_1.DomSharedStylesHost, testability_1.Testability, browser_details_1.BrowserDetails, animation_builder_1.AnimationBuilder, event_manager_1.EventManager, common_dom_1.ELEMENT_PROBE_PROVIDERS]);
2566325694
function initDomAdapter() {
2566425695
browser_adapter_1.BrowserDomAdapter.makeCurrent();
2566525696
wtf_init_1.wtfInit();

0 commit comments

Comments
 (0)