blackbaud / skyux2

SKY UX 2 is the new version of Blackbaud’s user experience framework that implements Blackbaud design patterns. It extends the framework to abstract many complexities of modern web development and takes advantage of Angular 2 to increase the tooling, testing, and performance available.
https://developer.blackbaud.com/skyux
MIT License
32 stars 65 forks source link

Immediately closing a modal containing a tabset causes ViewDestroyedError #2339

Closed jeffbdye closed 5 years ago

jeffbdye commented 5 years ago

Expected behavior

Modal closes, can be reopened, then closed again without issue.

Actual behavior

Modal closes, reopens, then upon closing again angular is broken.

Steps to reproduce

This is very likely due to the setTimeout in the tabset's afterViewInit here getting called after the modal has been destroyed: https://github.com/blackbaud/skyux-tabs/blob/e93b456d2229c695dd40d05433df25ad8f13fb6c/src/app/public/modules/tabs/tabset.component.ts#L153-L157

Plunker

https://github.com/jeffbdye/skyux-spa-modal-tabs-issue

Severity

Angular must be refreshed after this issue occurs, the SPA is effectively unusable. Seems pretty severe.

Impact

Only affects SPAs which have modals with tabsets, and only if a user happens to immediately close the modal after opening it. So probably unlikely.

jeffbdye commented 5 years ago

Image of angular being broken (modal mask/backdrop disappears but modal remains) image

Stack trace of error:

ERROR Error: ViewDestroyedError: Attempt to use a destroyed view: detectChanges at viewDestroyedError (core.es5.js:8451) at Object.debugUpdateDirectives [as updateDirectives] (core.es5.js:13072) at checkAndUpdateView (core.es5.js:12255) at callWithDebugContext (core.es5.js:13475) at Object.debugCheckAndUpdateView [as checkAndUpdateView] (core.es5.js:13015) at ViewRef_.webpackJsonp../nodemodules/@angular/core/@angular/core.es5.js.ViewRef.detectChanges (core.es5.js:10181) at tabset.component.js:90 at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:414) at Object.onInvokeTask (core.es5.js:3881) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:413) at Zone../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:181) at ZoneTask.invoke (zone.js:476) at timer (zone.js:1491) at ____Elapsed_417_msAtTue_Apr_09_2019_12_22_42_GMT_0400Eastern_DaylightTime (localhost) at Object.onScheduleTask (long-stack-trace-zone.js:109) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask (zone.js:394) at Object.onScheduleTask (zone.js:290) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask (zone.js:394) at Zone../node_modules/zone.js/dist/zone.js.Zone.scheduleTask (zone.js:225) at Zone../node_modules/zone.js/dist/zone.js.Zone.scheduleMacroTask (zone.js:248) at zone.js:1527 at proto.(/skyux-lib-registration-form-builder/anonymous function) (https://localhost:8000/skyux-lib-registration-form-builder/polyfills.js:18671:20) at SkyTabsetComponent.webpackJsonp../nodemodules/@skyux/tabs/modules/tabs/tabset.component.js.SkyTabsetComponent.ngAfterViewInit (tabset.component.js:87) at callProviderLifecycles (core.es5.js:11194) at callElementProvidersLifecycles (core.es5.js:11169) at callLifecycleHooksChildrenFirst (core.es5.js:11153) at checkAndUpdateView (core.es5.js:12263) at callViewAction (core.es5.js:12620) at execComponentViewsAction (core.es5.js:12552) at checkAndUpdateView (core.es5.js:12261) at callViewAction (core.es5.js:12620) at execEmbeddedViewsAction (core.es5.js:12578) at checkAndUpdateView (core.es5.js:12256) at callWithDebugContext (core.es5.js:13475) at Object.debugCheckAndUpdateView [as checkAndUpdateView] (core.es5.js:13015) at ViewRef.webpackJsonp../nodemodules/@angular/core/@angular/core.es5.js.ViewRef.detectChanges (core.es5.js:10181) at SkyModalHostComponent.webpackJsonp../node_modules/@skyux/modals/modules/modal/modal-host.component.js.SkyModalHostComponent.open (modal-host.component.js:80) at SkyModalService.webpackJsonp../node_modules/@skyux/modals/modules/modal/modal.service.js.SkyModalService.open (modal.service.js:22) at RegistrationFormBuilderComponent.webpackJsonp../src/app/public/src/modules/registration-form-builder/registration-form-builder/registration-form-builder.component.ts.RegistrationFormBuilderComponent.openModal (registration-form-builder.component.ts:242) at SafeSubscriber._next (registration-form-builder.component.ts:136) at SafeSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.SafeSubscriber.__tryOrUnsub (Subscriber.js:238) at SafeSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.SafeSubscriber.next (Subscriber.js:185) at Subscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber._next (Subscriber.js:125) at Subscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at FilterSubscriber.webpackJsonp../node_modules/rxjs/operator/filter.js.FilterSubscriber._next (filter.js:87) at FilterSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at PairwiseSubscriber.webpackJsonp../node_modules/rxjs/operator/pairwise.js.PairwiseSubscriber._next (pairwise.js:68) at PairwiseSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at DistinctUntilChangedSubscriber.webpackJsonp../node_modules/rxjs/operator/distinctUntilChanged.js.DistinctUntilChangedSubscriber._next (distinctUntilChanged.js:103) at DistinctUntilChangedSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at MapSubscriber.webpackJsonp../node_modules/rxjs/operator/map.js.MapSubscriber._next (map.js:83) at MapSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at MapSubscriber.webpackJsonp../node_modules/rxjs/operator/map.js.MapSubscriber._next (map.js:83) at MapSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at ReplaySubject.webpackJsonp../node_modules/rxjs/Subject.js.Subject.next (Subject.js:55) at ReplaySubject.webpackJsonp../node_modules/rxjs/ReplaySubject.js.ReplaySubject.next (ReplaySubject.js:31) at SafeSubscriber._next (store-devtools.es5.js:573) at SafeSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.SafeSubscriber.tryOrUnsub (Subscriber.js:238) at SafeSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.SafeSubscriber.next (Subscriber.js:185) at Subscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber._next (Subscriber.js:125) at Subscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at ScanSubscriber.webpackJsonp../node_modules/rxjs/operator/scan.js.ScanSubscriber._tryNext (scan.js:115) at ScanSubscriber.webpackJsonp../node_modules/rxjs/operator/scan.js.ScanSubscriber._next (scan.js:102) at ScanSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at WithLatestFromSubscriber.webpackJsonp../node_modules/rxjs/operator/withLatestFrom.js.WithLatestFromSubscriber._next (withLatestFrom.js:113) at WithLatestFromSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at Notification.webpackJsonp../node_modules/rxjs/Notification.js.Notification.observe (Notification.js:32) at QueueAction.webpackJsonp../node_modules/rxjs/operator/observeOn.js.ObserveOnSubscriber.dispatch (observeOn.js:87) at QueueAction.webpackJsonp../node_modules/rxjs/scheduler/AsyncAction.js.AsyncAction._execute (AsyncAction.js:111) at QueueAction.webpackJsonp../node_modules/rxjs/scheduler/QueueAction.js.QueueAction.execute (QueueAction.js:33) at QueueScheduler.webpackJsonp../node_modules/rxjs/scheduler/AsyncScheduler.js.AsyncScheduler.flush (AsyncScheduler.js:36) at QueueAction.webpackJsonp../node_modules/rxjs/scheduler/QueueAction.js.QueueAction.schedule (QueueAction.js:27) at QueueScheduler.webpackJsonp../node_modules/rxjs/Scheduler.js.Scheduler.schedule (Scheduler.js:43) at ObserveOnSubscriber.webpackJsonp../node_modules/rxjs/operator/observeOn.js.ObserveOnSubscriber.scheduleMessage (observeOn.js:91) at ObserveOnSubscriber.webpackJsonp../node_modules/rxjs/operator/observeOn.js.ObserveOnSubscriber._next (observeOn.js:94) at ObserveOnSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at MergeAllSubscriber.webpackJsonp../node_modules/rxjs/OuterSubscriber.js.OuterSubscriber.notifyNext (OuterSubscriber.js:19) at InnerSubscriber.webpackJsonp../node_modules/rxjs/InnerSubscriber.js.InnerSubscriber._next (InnerSubscriber.js:23) at InnerSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at MapSubscriber.webpackJsonp../node_modules/rxjs/operator/map.js.MapSubscriber._next (map.js:83) at MapSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at MergeAllSubscriber.webpackJsonp../node_modules/rxjs/OuterSubscriber.js.OuterSubscriber.notifyNext (OuterSubscriber.js:19) at InnerSubscriber.webpackJsonp../node_modules/rxjs/InnerSubscriber.js.InnerSubscriber._next (InnerSubscriber.js:23) at InnerSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at SkipSubscriber.webpackJsonp../node_modules/rxjs/operator/skip.js.SkipSubscriber._next (skip.js:46) at SkipSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at ActionsSubject.webpackJsonp../node_modules/rxjs/Subject.js.Subject.next (Subject.js:55) at ActionsSubject.webpackJsonp../node_modules/rxjs/BehaviorSubject.js.BehaviorSubject.next (BehaviorSubject.js:44) at ActionsSubject.webpackJsonp../node_modules/@ngrx/store/@ngrx/store.es5.js.ActionsSubject.next (store.es5.js:126) at Store.webpackJsonp../node_modules/@ngrx/store/@ngrx/store.es5.js.Store.dispatch (store.es5.js:402) at SafeSubscriber._next (registration-form-builder.component.ts:181) at SafeSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.SafeSubscriber.tryOrUnsub (Subscriber.js:238) at SafeSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.SafeSubscriber.next (Subscriber.js:185) at Subscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber._next (Subscriber.js:125) at Subscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at FilterSubscriber.webpackJsonp../node_modules/rxjs/operator/filter.js.FilterSubscriber._next (filter.js:87) at FilterSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at CombineLatestSubscriber.webpackJsonp../node_modules/rxjs/operator/combineLatest.js.CombineLatestSubscriber.notifyNext (combineLatest.js:134) at InnerSubscriber.webpackJsonp../node_modules/rxjs/InnerSubscriber.js.InnerSubscriber._next (InnerSubscriber.js:23) at InnerSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at Subject.webpackJsonp../node_modules/rxjs/Subject.js.Subject.next (Subject.js:55) at Object.eval [as handleEvent] (RegistrationFormBuilderComponent.html:33) at handleEvent (core.es5.js:12014) at callWithDebugContext (core.es5.js:13475) at Object.debugHandleEvent [as handleEvent] (core.es5.js:13063) at dispatchEvent (core.es5.js:8607) at core.es5.js:10775 at SafeSubscriber.schedulerFn [as _next] (core.es5.js:3647) at SafeSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.SafeSubscriber.tryOrUnsub (Subscriber.js:238) at SafeSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.SafeSubscriber.next (Subscriber.js:185) at Subscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber._next (Subscriber.js:125) at Subscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at EventEmitter.webpackJsonp../node_modules/rxjs/Subject.js.Subject.next (Subject.js:55) at EventEmitter.webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.EventEmitter.emit (core.es5.js:3621) at Object.eval [as handleEvent] (FormTemplateSummaryItemComponent.html:24) at handleEvent (core.es5.js:12014) at callWithDebugContext (core.es5.js:13475) at Object.debugHandleEvent [as handleEvent] (core.es5.js:13063) at dispatchEvent (core.es5.js:8607) at core.es5.js:9218 at HTMLButtonElement. (platform-browser.es5.js:2651) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:414) at Object.onInvokeTask (core.es5.js:3881) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:413) at Zone../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:181) at HTMLButtonElement.ZoneTask.invoke (zone.js:476) at ____Elapsed_66105_msAtTue_Apr_09_2019_12_21_36_GMT_0400Eastern_DaylightTime (localhost) at Object.onScheduleTask (long-stack-trace-zone.js:109) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask (zone.js:394) at Object.onScheduleTask (zone.js:290) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask (zone.js:394) at Zone../node_modules/zone.js/dist/zone.js.Zone.scheduleTask (zone.js:225) at Zone../node_modules/zone.js/dist/zone.js.Zone.scheduleEventTask (zone.js:251) at zoneAwareAddListener (zone.js:1255) at HTMLButtonElement.proto.(/skyux-lib-registration-form-builder/anonymous function) [as addEventListener] (https://localhost:8000/skyux-lib-registration-form-builder/polyfills.js:18671:20) at DomEventsPlugin.webpackJsonp../node_modules/@angular/platform-browser/@angular/platform-browser.es5.js.DomEventsPlugin.addEventListener (platform-browser.es5.js:3059) at EventManager.webpackJsonp../node_modules/@angular/platform-browser/@angular/platform-browser.es5.js.EventManager.addEventListener (platform-browser.es5.js:2397) at EmulatedEncapsulationDomRenderer2.webpackJsonp../node_modules/@angular/platform-browser/@angular/platform-browser.es5.js.DefaultDomRenderer2.listen (platform-browser.es5.js:2918) at BaseAnimationRenderer.webpackJsonp../node_modules/@angular/platform-browser/@angular/platform-browser/animations.es5.js.BaseAnimationRenderer.listen (animations.es5.js:491) at DebugRenderer2.webpackJsonp../nodemodules/@angular/core/@angular/core.es5.js.DebugRenderer2.listen (core.es5.js:13763) at listenToElementOutputs (core.es5.js:9205) at createViewNodes (core.es5.js:12169) at callViewAction (core.es5.js:12643) at execComponentViewsAction (core.es5.js:12552) at createViewNodes (core.es5.js:12224) at createEmbeddedView (core.es5.js:12080) at callWithDebugContext (core.es5.js:13475) at Object.debugCreateEmbeddedView [as createEmbeddedView] (core.es5.js:12821) at TemplateRef.webpackJsonp../nodemodules/@angular/core/@angular/core.es5.js.TemplateRef.createEmbeddedView (core.es5.js:10271) at ViewContainerRef_.webpackJsonp../nodemodules/@angular/core/@angular/core.es5.js.ViewContainerRef.createEmbeddedView (core.es5.js:10048) at common.es5.js:1705 at DefaultIterableDiffer.webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.DefaultIterableDiffer.forEachOperation (core.es5.js:6774) at NgForOf.webpackJsonp../node_modules/@angular/common/@angular/common.es5.js.NgForOf._applyChanges (common.es5.js:1703) at NgForOf.webpackJsonp../nodemodules/@angular/common/@angular/common.es5.js.NgForOf.ngDoCheck (common.es5.js:1693) at checkAndUpdateDirectiveInline (core.es5.js:10851) at checkAndUpdateNodeInline (core.es5.js:12349) at checkAndUpdateNode (core.es5.js:12288) at debugCheckAndUpdateNode (core.es5.js:13149) at debugCheckDirectivesFn (core.es5.js:13090) at Object.eval [as updateDirectives] (RegistrationFormBuilderComponent.html:31) at Object.debugUpdateDirectives [as updateDirectives] (core.es5.js:13075) at checkAndUpdateView (core.es5.js:12255) at callViewAction (core.es5.js:12620) at execEmbeddedViewsAction (core.es5.js:12578) at checkAndUpdateView (core.es5.js:12256) at callViewAction (core.es5.js:12620) at execEmbeddedViewsAction (core.es5.js:12578) at checkAndUpdateView (core.es5.js:12256) at callViewAction (core.es5.js:12620) at execComponentViewsAction (core.es5.js:12552) at checkAndUpdateView (core.es5.js:12261) at callViewAction (core.es5.js:12620) at execComponentViewsAction (core.es5.js:12552) at checkAndUpdateView (core.es5.js:12261) at callViewAction (core.es5.js:12620) at execComponentViewsAction (core.es5.js:12552) at checkAndUpdateView (core.es5.js:12261) at callViewAction (core.es5.js:12620) at execEmbeddedViewsAction (core.es5.js:12578) at checkAndUpdateView (core.es5.js:12256) at callViewAction (core.es5.js:12620) at execComponentViewsAction (core.es5.js:12552) at checkAndUpdateView (core.es5.js:12261) at callViewAction (core.es5.js:12620) at execEmbeddedViewsAction (core.es5.js:12578) at checkAndUpdateView (core.es5.js:12256) at callViewAction (core.es5.js:12620) at execComponentViewsAction (core.es5.js:12552) at checkAndUpdateView (core.es5.js:12261) at callWithDebugContext (core.es5.js:13475) at Object.debugCheckAndUpdateView [as checkAndUpdateView] (core.es5.js:13015) at ViewRef.webpackJsonp../nodemodules/@angular/core/@angular/core.es5.js.ViewRef.detectChanges (core.es5.js:10181) at core.es5.js:4812 at Array.forEach () at ApplicationRef_.webpackJsonp../nodemodules/@angular/core/@angular/core.es5.js.ApplicationRef.tick (core.es5.js:4812) at core.es5.js:4684 at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:381) at Object.onInvoke (core.es5.js:3890) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:380) at Zone../node_modules/zone.js/dist/zone.js.Zone.run (zone.js:141) at NgZone.webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.NgZone.run (core.es5.js:3821) at Object.next (core.es5.js:4684) at SafeSubscriber.schedulerFn [as _next] (core.es5.js:3635) at SafeSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.SafeSubscriber.tryOrUnsub (Subscriber.js:238) at SafeSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.SafeSubscriber.next (Subscriber.js:185) at Subscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber._next (Subscriber.js:125) at Subscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at EventEmitter.webpackJsonp../node_modules/rxjs/Subject.js.Subject.next (Subject.js:55) at EventEmitter.webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.EventEmitter.emit (core.es5.js:3621) at checkStable (core.es5.js:3855) at onLeave (core.es5.js:3934) at Object.onInvokeTask (core.es5.js:3884) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:413) at Zone../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:181) at XMLHttpRequest.ZoneTask.invoke (zone.js:476) at ____Elapsed_1161_msAtTue_Apr_09_2019_12_21_34_GMT_0400Eastern_DaylightTime (localhost) at Object.onScheduleTask (long-stack-trace-zone.js:109) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask (zone.js:394) at Object.onScheduleTask (zone.js:290) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask (zone.js:394) at Zone../node_modules/zone.js/dist/zone.js.Zone.scheduleTask (zone.js:225) at Zone../node_modules/zone.js/dist/zone.js.Zone.scheduleEventTask (zone.js:251) at zoneAwareAddListener (zone.js:1255) at XMLHttpRequest.proto.(/skyux-lib-registration-form-builder/anonymous function) [as addEventListener] (https://localhost:8000/skyux-lib-registration-form-builder/polyfills.js:18671:20) at Observable._subscribe (http.es5.js:1273) at Observable.webpackJsonp../node_modules/rxjs/Observable.js.Observable._trySubscribe (Observable.js:171) at Observable.webpackJsonp../node_modules/rxjs/Observable.js.Observable.subscribe (Observable.js:159) at Object.subscribeToResult (subscribeToResult.js:22) at MergeMapSubscriber.webpackJsonp../node_modules/rxjs/operator/mergeMap.js.MergeMapSubscriber._innerSub (mergeMap.js:130) at MergeMapSubscriber.webpackJsonp../node_modules/rxjs/operator/mergeMap.js.MergeMapSubscriber._tryNext (mergeMap.js:127) at MergeMapSubscriber.webpackJsonp../node_modules/rxjs/operator/mergeMap.js.MergeMapSubscriber._next (mergeMap.js:110) at MergeMapSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at scheduler.schedule.value (PromiseObservable.js:66) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:381) at Object.onInvoke (core.es5.js:3890) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:380) at Zone../node_modules/zone.js/dist/zone.js.Zone.run (zone.js:141) at zone.js:805 at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:414) at Object.onInvokeTask (core.es5.js:3881) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:413) at Zone../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:181) at drainMicroTaskQueue (zone.js:574) at XMLHttpRequest.ZoneTask.invoke (zone.js:480) at __Elapsed_1_msAtTue_Apr_09_2019_12_21_34_GMT_0400Eastern_DaylightTime (localhost) at Object.onScheduleTask (long-stack-trace-zone.js:109) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask (zone.js:394) at Object.onScheduleTask (zone.js:290) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask (zone.js:394) at Zone../node_modules/zone.js/dist/zone.js.Zone.scheduleTask (zone.js:225) at Zone../node_modules/zone.js/dist/zone.js.Zone.scheduleMicroTask (zone.js:245) at scheduleResolveOrReject (zone.js:803) at ZoneAwarePromise.then (zone.js:892) at PromiseObservable.webpackJsonp../node_modules/rxjs/observable/PromiseObservable.js.PromiseObservable._subscribe (PromiseObservable.js:62) at PromiseObservable.webpackJsonp../node_modules/rxjs/Observable.js.Observable._trySubscribe (Observable.js:171) at PromiseObservable.webpackJsonp../node_modules/rxjs/Observable.js.Observable.subscribe (Observable.js:159) at MergeMapOperator.webpackJsonp../node_modules/rxjs/operator/mergeMap.js.MergeMapOperator.call (mergeMap.js:85) at Observable.webpackJsonp../node_modules/rxjs/Observable.js.Observable.subscribe (Observable.js:156) at MapOperator.webpackJsonp../node_modules/rxjs/operator/map.js.MapOperator.call (map.js:54) at Observable.webpackJsonp../node_modules/rxjs/Observable.js.Observable.subscribe (Observable.js:156) at Object.subscribeToResult (subscribeToResult.js:22) at MergeMapSubscriber.webpackJsonp../node_modules/rxjs/operator/mergeMap.js.MergeMapSubscriber._innerSub (mergeMap.js:130) at MergeMapSubscriber.webpackJsonp../node_modules/rxjs/operator/mergeMap.js.MergeMapSubscriber._tryNext (mergeMap.js:127) at MergeMapSubscriber.webpackJsonp../node_modules/rxjs/operator/mergeMap.js.MergeMapSubscriber._next (mergeMap.js:110) at MergeMapSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at MapSubscriber.webpackJsonp../node_modules/rxjs/operator/map.js.MapSubscriber._next (map.js:83) at MapSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at MergeMapSubscriber.webpackJsonp../node_modules/rxjs/operator/mergeMap.js.MergeMapSubscriber.notifyNext (mergeMap.js:143) at InnerSubscriber.webpackJsonp../node_modules/rxjs/InnerSubscriber.js.InnerSubscriber._next (InnerSubscriber.js:23) at InnerSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at XMLHttpRequest.onLoad (http.es5.js:1226) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:414) at Object.onInvokeTask (core.es5.js:3881) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:413) at Zone../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:181) at XMLHttpRequest.ZoneTask.invoke (zone.js:476) at ____Elapsed_1382_msAtTue_Apr_09_2019_12_21_33_GMT_0400Eastern_DaylightTime (localhost) at Object.onScheduleTask (long-stack-trace-zone.js:109) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask (zone.js:394) at Object.onScheduleTask (zone.js:290) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask (zone.js:394) at Zone../node_modules/zone.js/dist/zone.js.Zone.scheduleTask (zone.js:225) at Zone../node_modules/zone.js/dist/zone.js.Zone.scheduleEventTask (zone.js:251) at zoneAwareAddListener (zone.js:1255) at XMLHttpRequest.proto.(/skyux-lib-registration-form-builder/anonymous function) [as addEventListener] (https://localhost:8000/skyux-lib-registration-form-builder/polyfills.js:18671:20) at Observable._subscribe (http.es5.js:1273) at Observable.webpackJsonp../node_modules/rxjs/Observable.js.Observable._trySubscribe (Observable.js:171) at Observable.webpackJsonp../node_modules/rxjs/Observable.js.Observable.subscribe (Observable.js:159) at Object.subscribeToResult (subscribeToResult.js:22) at MergeMapSubscriber.webpackJsonp../node_modules/rxjs/operator/mergeMap.js.MergeMapSubscriber._innerSub (mergeMap.js:130) at MergeMapSubscriber.webpackJsonp../node_modules/rxjs/operator/mergeMap.js.MergeMapSubscriber._tryNext (mergeMap.js:127) at MergeMapSubscriber.webpackJsonp../node_modules/rxjs/operator/mergeMap.js.MergeMapSubscriber._next (mergeMap.js:110) at MergeMapSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89) at scheduler.schedule.value (PromiseObservable.js:66) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:381) at Object.onInvoke (core.es5.js:3890) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:380) at Zone../node_modules/zone.js/dist/zone.js.Zone.run (zone.js:141) at zone.js:805 at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:414) at Object.onInvokeTask (core.es5.js:3881) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:413) at Zone../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:181) at drainMicroTaskQueue (zone.js:574) at XMLHttpRequest.ZoneTask.invoke (zone.js:480) at __Elapsed_2_msAtTue_Apr_09_2019_12_21_33_GMT_0400Eastern_DaylightTime (localhost) at Object.onScheduleTask (long-stack-trace-zone.js:109) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask (zone.js:394) at Object.onScheduleTask (zone.js:290) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask (zone.js:394) at Zone../node_modules/zone.js/dist/zone.js.Zone.scheduleTask (zone.js:225) at Zone../node_modules/zone.js/dist/zone.js.Zone.scheduleMicroTask (zone.js:245) at scheduleResolveOrReject (zone.js:803) at resolvePromise (zone.js:752) at zone.js:805 at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:414) at Object.onInvokeTask (core.es5.js:3881) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:413) at Zone../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:181) at drainMicroTaskQueue (zone.js:574) at XMLHttpRequest.ZoneTask.invoke (zone.js:480) at __Elapsed_0_msAtTue_Apr_09_2019_12_21_33_GMT_0400Eastern_DaylightTime (localhost) at Object.onScheduleTask (long-stack-trace-zone.js:109) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask (zone.js:394) at Object.onScheduleTask (zone.js:290) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask (zone.js:394) at Zone../node_modules/zone.js/dist/zone.js.Zone.scheduleTask (zone.js:225) at Zone../node_modules/zone.js/dist/zone.js.Zone.scheduleMicroTask (zone.js:245) at scheduleResolveOrReject (zone.js:803) at resolvePromise (zone.js:752) at zone.js:805 at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:414) at Object.onInvokeTask (core.es5.js:3881) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:413) at Zone../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:181) at drainMicroTaskQueue (zone.js:574) at XMLHttpRequest.ZoneTask.invoke (zone.js:480) at __Elapsed_1_msAtTue_Apr_09_2019_12_21_33_GMT_0400__Eastern_DaylightTime (localhost) at Object.onScheduleTask (long-stack-trace-zone.js:109) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask (zone.js:394) at Object.onScheduleTask (zone.js:290) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask (zone.js:394) at Zone../node_modules/zone.js/dist/zone.js.Zone.scheduleTask (zone.js:225) at Zone../node_modules/zone.js/dist/zone.js.Zone.scheduleMicroTask (zone.js:245) at scheduleResolveOrReject (zone.js:803) at resolvePromise (zone.js:752) at zone.js:683 at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:381) at Object.onInvoke (core.es5.js:3890) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:380) at Zone../node_modules/zone.js/dist/zone.js.Zone.run (zone.js:141) at zone.js:805 at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:414) at Object.onInvokeTask (core.es5.js:3881) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:413) at Zone../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:181) at drainMicroTaskQueue (zone.js:574) at XMLHttpRequest.ZoneTask.invoke (zone.js:480) at __Elapsed_0_msAtTue_Apr_09_2019_12_21_33_GMT_0400Eastern_DaylightTime (localhost) at Object.onScheduleTask (long-stack-trace-zone.js:109) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask (zone.js:394) at Object.onScheduleTask (zone.js:290) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask (zone.js:394) at Zone../node_modules/zone.js/dist/zone.js.Zone.scheduleTask (zone.js:225) at Zone../node_modules/zone.js/dist/zone.js.Zone.scheduleMicroTask (zone.js:245) at scheduleResolveOrReject (zone.js:803) at resolvePromise (zone.js:752) at zone.js:683 at zone.js:699 at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:381) at Object.onInvoke (core.es5.js:3890) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:380) at Zone../node_modules/zone.js/dist/zone.js.Zone.run (zone.js:141) at zone.js:805 at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:414) at Object.onInvokeTask (core.es5.js:3881) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:413) at Zone../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:181) at drainMicroTaskQueue (zone.js:574) at XMLHttpRequest.ZoneTask.invoke (zone.js:480) at ____Elapsed_0_msAtTue_Apr_09_2019_12_21_33_GMT_0400__Eastern_DaylightTime (localhost) at Object.onScheduleTask (long-stack-trace-zone.js:109) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask (zone.js:394) at Object.onScheduleTask (zone.js:290) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask (zone.js:394) at Zone../node_modules/zone.js/dist/zone.js.Zone.scheduleTask (zone.js:225) at Zone../node_modules/zone.js/dist/zone.js.Zone.scheduleMicroTask (zone.js:245) at scheduleResolveOrReject (zone.js:803) at resolvePromise (zone.js:752) at zone.js:683 at csrf-xhr.js:74 at XMLHttpRequest.xhr.onreadystatechange (csrf-xhr.js:18) at XMLHttpRequest.wrapFn [as zone_symbol___onreadystatechange] (zone.js:1032) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:414) at Object.onInvokeTask (core.es5.js:3881) at ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:413) at Zone../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:181) at XMLHttpRequest.ZoneTask.invoke (zone.js:476)

jeffbdye commented 5 years ago

Right on, thanks y'all!