ngx-gallery: Class constructor HammerGestureConfig cannot be invoked without 'new'
Hi, i work with Angular 7.2.5
I get this traceback in browser at module load :
app.browser.module.ts:14 TypeError: Class constructor HammerGestureConfig cannot be invoked without 'new'
at new CustomHammerConfig (ngx-gallery.umd.js:1664)
at _createClass (core.js:26964)
at _createProviderInstance (core.js:26931)
at resolveNgModuleDep (core.js:26878)
at _callFactory (core.js:27002)
at _createProviderInstance (core.js:26934)
at resolveNgModuleDep (core.js:26878)
at _createClass (core.js:26968)
at _createProviderInstance (core.js:26931)
at resolveNgModuleDep (core.js:26878)
push../angular/app/app.browser.module.ts.CumaErrorHandler.handleError @ app.browser.module.ts:14
(anonymous) @ core.js:22532
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke @ zone.js:391
push../node_modules/zone.js/dist/zone.js.Zone.run @ zone.js:150
runOutsideAngular @ core.js:21773
(anonymous) @ core.js:22532
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke @ zone.js:391
onInvoke @ core.js:21825
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke @ zone.js:390
push../node_modules/zone.js/dist/zone.js.Zone.run @ zone.js:150
(anonymous) @ zone.js:889
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask @ zone.js:423
onInvokeTask @ core.js:21816
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask @ zone.js:422
push../node_modules/zone.js/dist/zone.js.Zone.runTask @ zone.js:195
drainMicroTaskQueue @ zone.js:601
push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask @ zone.js:502
invokeTask @ zone.js:1744
globalZoneAwareCallback @ zone.js:1781
load (async)
customScheduleGlobal @ zone.js:1883
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask @ zone.js:410
onScheduleTask @ zone.js:301
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask @ zone.js:404
push../node_modules/zone.js/dist/zone.js.Zone.scheduleTask @ zone.js:238
push../node_modules/zone.js/dist/zone.js.Zone.scheduleEventTask @ zone.js:264
(anonymous) @ zone.js:2054
(anonymous) @ http.js:1868
_trySubscribe @ Observable.js:42
subscribe @ Observable.js:28
call @ tap.js:16
subscribe @ Observable.js:23
call @ catchError.js:16
subscribe @ Observable.js:23
(anonymous) @ subscribeTo.js:20
subscribeToResult @ subscribeToResult.js:7
_innerSub @ mergeMap.js:59
_tryNext @ mergeMap.js:53
_next @ mergeMap.js:36
next @ Subscriber.js:49
(anonymous) @ scalar.js:4
_trySubscribe @ Observable.js:42
subscribe @ Observable.js:28
call @ mergeMap.js:21
subscribe @ Observable.js:23
call @ filter.js:13
subscribe @ Observable.js:23
call @ timeoutWith.js:20
subscribe @ Observable.js:23
call @ retryWhen.js:13
subscribe @ Observable.js:23
call @ map.js:16
subscribe @ Observable.js:23
call @ catchError.js:16
subscribe @ Observable.js:23
call @ map.js:16
subscribe @ Observable.js:23
push../angular/app/services/configuration.service.ts.ConfigurationService.initialize @ configuration.service.ts:18
(anonymous) @ configuration.service.ts:36
ZoneAwarePromise @ zone.js:910
(anonymous) @ configuration.service.ts:35
runInitializers @ core.js:21164
(anonymous) @ core.js:22414
_callAndReportToErrorHandler @ core.js:22529
(anonymous) @ core.js:22411
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke @ zone.js:391
onInvoke @ core.js:21825
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke @ zone.js:390
push../node_modules/zone.js/dist/zone.js.Zone.run @ zone.js:150
run @ core.js:21712
bootstrapModuleFactory @ core.js:22399
(anonymous) @ core.js:22446
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke @ zone.js:391
push../node_modules/zone.js/dist/zone.js.Zone.run @ zone.js:150
(anonymous) @ zone.js:889
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask @ zone.js:423
push../node_modules/zone.js/dist/zone.js.Zone.runTask @ zone.js:195
drainMicroTaskQueue @ zone.js:601
Promise.then (async)
scheduleMicroTask @ zone.js:584
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask @ zone.js:413
push../node_modules/zone.js/dist/zone.js.Zone.scheduleTask @ zone.js:238
push../node_modules/zone.js/dist/zone.js.Zone.scheduleMicroTask @ zone.js:258
scheduleResolveOrReject @ zone.js:879
ZoneAwarePromise.then @ zone.js:1012
bootstrapModule @ core.js:22446
bootstrap @ main.browser.ts:43
./angular/main.browser.ts @ main.browser.ts:39
__webpack_require__ @ bootstrap:83
0 @ main.js:4160
__webpack_require__ @ bootstrap:83
checkDeferredModules @ bootstrap:45
webpackJsonpCallback @ bootstrap:32
(anonymous) @ main.js:1
Show 47 more frames
zone.js:682 Unhandled Promise rejection: Class constructor HammerGestureConfig cannot be invoked without 'new' ; Zone: <root> ; Task: Promise.then ; Value: TypeError: Class constructor HammerGestureConfig cannot be invoked without 'new'
at new CustomHammerConfig (ngx-gallery.umd.js:1664)
at _createClass (core.js:26964)
at _createProviderInstance (core.js:26931)
at resolveNgModuleDep (core.js:26878)
at _callFactory (core.js:27002)
at _createProviderInstance (core.js:26934)
at resolveNgModuleDep (core.js:26878)
at _createClass (core.js:26968)
at _createProviderInstance (core.js:26931)
at resolveNgModuleDep (core.js:26878) TypeError: Class constructor HammerGestureConfig cannot be invoked without 'new'
at new CustomHammerConfig (http://localhost:4200/vendor.js:151714:47)
at _createClass (http://localhost:4200/vendor.js:70369:20)
at _createProviderInstance (http://localhost:4200/vendor.js:70336:26)
at resolveNgModuleDep (http://localhost:4200/vendor.js:70283:21)
at _callFactory (http://localhost:4200/vendor.js:70407:32)
at _createProviderInstance (http://localhost:4200/vendor.js:70339:26)
at resolveNgModuleDep (http://localhost:4200/vendor.js:70283:21)
at _createClass (http://localhost:4200/vendor.js:70373:29)
at _createProviderInstance (http://localhost:4200/vendor.js:70336:26)
at resolveNgModuleDep (http://localhost:4200/vendor.js:70283:21)
About this issue
- Original URL
- State: open
- Created 5 years ago
- Comments: 32
Modify the providers in your app.module.ts with
and add to the Providers
@PawelSpoon A temporary fix that works 💯 for now : in the file ngx-gallery.umd.js changes this lines of code :
var CustomHammerConfig = /** @class */ (function (_super) { __extends(CustomHammerConfig, _super); function CustomHammerConfig() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.overrides = ({ ‘pinch’: { enable: false }, ‘rotate’: { enable: false } }); return _this; } return CustomHammerConfig; }(platformBrowser.HammerGestureConfig));
to :
class CustomHammerConfig extends platformBrowser.HammerGestureConfig { constructor() { super(…arguments); this.overrides = ({ ‘pinch’: { enable: false }, ‘rotate’: { enable: false } }); } }
This actually worked for me. Thanks.
@lukasz-galka Please reopen this issue as switching the target back to es5 only because of one lib is not a desirable solution.
I have this error when I use ng serve --aot
Here is a es2015 compiled version that works with Angular 8. THIS MIGHT NOT BE UPDATED! change to this in your package.json: “ngx-gallery”: “git://github.com/onack/ngx-gallery-dist”,
target: es5 in tsconfig.json fixes this
Oussail, thank you! that saved the day. but honestly, looks like this is a good time to look for a new gallery solution, or to create one.
me too. I met this issue after upgrading to Angular 8. Look forward the fix instead of changing target.
I have same issue
This affects us as well after upgrading to Angular 8, which by default will update the target to
es2015. Usinges5indeed works, but is undesirable in the long run.Thanks . it was work
@onak, @Oussail , thanks a lot !
I added @Injectable() decorator like this and solved this issue:
@Injectable() export class CustomHammerConfig extends HammerGestureConfig { overrides = { pinch: { enable: false }, rotate: { enable: false } }; }@Oussail I don’t know if it’s a temporary solution, but it solved my job for now. Thank you so much.
@Oussail Thanks a lot