text: /**
   * @license Angular v7.0.1
   * (c) 2010-2018 Google, Inc. https://angular.io/
   * License: MIT
   */
  !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core")):"function"==typeof define&&define.amd?define("@angular/core/testing",["exports","@angular/core"],t):t((e.ng=e.ng||{},e.ng.core=e.ng.core||{},e.ng.core.testing={}),e.ng.core)}(this,function(e,t){"use strict";
  /**
       * @license
       * Copyright Google Inc. All Rights Reserved.
       *
       * Use of this source code is governed by an MIT-style license that can be
       * found in the LICENSE file at https://angular.io/license
       */var r="undefined"==typeof window?global:window;function n(e,t,r,n){var o=Zone.current,i=Zone.AsyncTestZoneSpec;if(void 0===i)throw new Error("AsyncTestZoneSpec is needed for the async() test helper but could not be found. Please make sure that your environment includes zone.js/dist/async-test.js");var s=Zone.ProxyZoneSpec;if(void 0===s)throw new Error("ProxyZoneSpec is needed for the async() test helper but could not be found. Please make sure that your environment includes zone.js/dist/proxy.js");var u=s.get();s.assertPresent();var c=Zone.current.getZoneWith("ProxyZoneSpec"),a=u.getDelegate();return c.parent.run(function(){var e=new i(function(){o.run(function(){u.getDelegate()==e&&u.setDelegate(a),r()})},function(t){o.run(function(){u.getDelegate()==e&&u.setDelegate(a),n(t)})},"test");u.setDelegate(e)}),Zone.current.runGuarded(e,t)}
  /**
       * @license
       * Copyright Google Inc. All Rights Reserved.
       *
       * Use of this source code is governed by an MIT-style license that can be
       * found in the LICENSE file at https://angular.io/license
       */
  /**
       * @license
       * Copyright Google Inc. All Rights Reserved.
       *
       * Use of this source code is governed by an MIT-style license that can be
       * found in the LICENSE file at https://angular.io/license
       */
  var o=function(){function e(e,r,n){var o=this;this.componentRef=e,this.ngZone=r,this._autoDetect=n,this._isStable=!0,this._isDestroyed=!1,this._resolve=null,this._promise=null,this._onUnstableSubscription=null,this._onStableSubscription=null,this._onMicrotaskEmptySubscription=null,this._onErrorSubscription=null,this.changeDetectorRef=e.changeDetectorRef,this.elementRef=e.location,this.debugElement=t.getDebugNode(this.elementRef.nativeElement),this.componentInstance=e.instance,this.nativeElement=this.elementRef.nativeElement,this.componentRef=e,this.ngZone=r,r&&r.runOutsideAngular(function(){o._onUnstableSubscription=r.onUnstable.subscribe({next:function(){o._isStable=!1}}),o._onMicrotaskEmptySubscription=r.onMicrotaskEmpty.subscribe({next:function(){o._autoDetect&&o.detectChanges(!0)}}),o._onStableSubscription=r.onStable.subscribe({next:function(){o._isStable=!0,null!==o._promise&&function e(t){Zone.current.scheduleMicroTask("scheduleMicrotask",t)}
  /**
       * @license
       * Copyright Google Inc. All Rights Reserved.
       *
       * Use of this source code is governed by an MIT-style license that can be
       * found in the LICENSE file at https://angular.io/license
       */(function(){r.hasPendingMacrotasks||null!==o._promise&&(o._resolve(!0),o._resolve=null,o._promise=null)})}}),o._onErrorSubscription=r.onError.subscribe({next:function(e){throw e}})})}return e.prototype._tick=function(e){this.changeDetectorRef.detectChanges(),e&&this.checkNoChanges()},e.prototype.detectChanges=function(e){var t=this;void 0===e&&(e=!0),null!=this.ngZone?this.ngZone.run(function(){t._tick(e)}):this._tick(e)},e.prototype.checkNoChanges=function(){this.changeDetectorRef.checkNoChanges()},e.prototype.autoDetectChanges=function(e){if(void 0===e&&(e=!0),null==this.ngZone)throw new Error("Cannot call autoDetectChanges when ComponentFixtureNoNgZone is set");this._autoDetect=e,this.detectChanges()},e.prototype.isStable=function(){return this._isStable&&!this.ngZone.hasPendingMacrotasks},e.prototype.whenStable=function(){var e=this;return this.isStable()?Promise.resolve(!1):null!==this._promise?this._promise:(this._promise=new Promise(function(t){e._resolve=t}),this._promise)},e.prototype._getRenderer=function(){return void 0===this._renderer&&(this._renderer=this.componentRef.injector.get(t.RendererFactory2,null)),this._renderer},e.prototype.whenRenderingDone=function(){var e=this._getRenderer();return e&&e.whenRenderingDone?e.whenRenderingDone():this.whenStable()},e.prototype.destroy=function(){this._isDestroyed||(this.componentRef.destroy(),null!=this._onUnstableSubscription&&(this._onUnstableSubscription.unsubscribe(),this._onUnstableSubscription=null),null!=this._onStableSubscription&&(this._onStableSubscription.unsubscribe(),this._onStableSubscription=null),null!=this._onMicrotaskEmptySubscription&&(this._onMicrotaskEmptySubscription.unsubscribe(),this._onMicrotaskEmptySubscription=null),null!=this._onErrorSubscription&&(this._onErrorSubscription.unsubscribe(),this._onErrorSubscription=null),this._isDestroyed=!0)},e}(),i="undefined"!=typeof Zone?Zone:null,s=i&&i.FakeAsyncTestZoneSpec,u=i&&i.ProxyZoneSpec,c=null;function a(){c=null,u&&u.assertPresent().resetDelegate()}var p=!1;function d(){if(null==c)throw new Error("The code should be running in the fakeAsync zone to call this function");return c}function l(){d().flushMicrotasks()}
  /**
       * @license
       * Copyright Google Inc. All Rights Reserved.
       *
       * Use of this source code is governed by an MIT-style license that can be
       * found in the LICENSE file at https://angular.io/license
       */var f="undefined"!=typeof Zone?Zone:null,h=f&&f[f.__symbol__("fakeAsyncTest")];function v(){return h?h.resetFakeAsyncZone():a()}var m=function(e,t){return(m=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function _(e,t){function r(){this.constructor=e}m(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function g(e,t,r,n){var o,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var u=e.length-1;u>=0;u--)(o=e[u])&&(s=(i<3?o(s):i>3?o(t,r,s):o(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s}function y(e){var t="function"==typeof Symbol&&e[Symbol.iterator],r=0;return t?t.call(e):{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}function b(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)s.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return s}function w(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(b(arguments[t]));return e}
  /**
       * @license
       * Copyright Google Inc. All Rights Reserved.
       *
       * Use of this source code is governed by an MIT-style license that can be
       * found in the LICENSE file at https://angular.io/license
       */var O=function(){function e(){var e=this;this._promise=new Promise(function(t,r){e._resolve=t,e._reject=r})}return e.prototype.done=function(e){this._resolve(e)},e.prototype.fail=function(e,t){this._reject(e)},Object.defineProperty(e.prototype,"promise",{get:function(){return this._promise},enumerable:!0,configurable:!0}),e}(),E=0,M=function(){function e(){this._references=new Map}return e.prototype.overrideMetadata=function(e,r,n){var o={};if(r&&function i(e){var t=[];Object.keys(e).forEach(function(e){e.startsWith("_")||t.push(e)});for(var r=e;r=Object.getPrototypeOf(r);)Object.keys(r).forEach(function(e){var n=Object.getOwnPropertyDescriptor(r,e);!e.startsWith("_")&&n&&"get"in n&&t.push(e)});return t}
  /**
       * @license
       * Copyright Google Inc. All Rights Reserved.
       *
       * Use of this source code is governed by an MIT-style license that can be
       * found in the LICENSE file at https://angular.io/license
       */(r).forEach(function(e){return o[e]=r[e]}),n.set){if(n.remove||n.add)throw new Error("Cannot set and add/remove "+t.ɵstringify(e)+" at the same time!");!function s(e,t){for(var r in t)e[r]=t[r]}(o,n.set)}return n.remove&&function u(e,t,r){var n=new Set,o=function(e){var o=t[e];o instanceof Array?o.forEach(function(t){n.add(T(e,t,r))}):n.add(T(e,o,r))};for(var i in t)o(i);var s=function(t){var o=e[t];o instanceof Array?e[t]=o.filter(function(e){return!n.has(T(t,e,r))}):n.has(T(t,o,r))&&(e[t]=void 0)};for(var i in e)s(i)}(o,n.remove,this._references),n.add&&function c(e,t){for(var r in t){var n=t[r],o=e[r];e[r]=null!=o&&o instanceof Array?o.concat(n):n}}(o,n.add),new e(o)},e}();
  /**
       * @license
       * Copyright Google Inc. All Rights Reserved.
       *
       * Use of this source code is governed by an MIT-style license that can be
       * found in the LICENSE file at https://angular.io/license
       */function T(e,r,n){return e+":"+JSON.stringify(r,function(e,r){return"function"==typeof r&&(r=function o(e,r){var n=r.get(e);return n||(n=""+t.ɵstringify(e)+E++,r.set(e,n)),n}(r,n)),r})}var C,P=new t.ɵReflectionCapabilities,S=function(){function e(){this.overrides=new Map,this.resolved=new Map}return e.prototype.setOverrides=function(e){var t=this;this.overrides.clear(),e.forEach(function(e){var r=b(e,2);return t.overrides.set(r[0],r[1])})},e.prototype.getAnnotation=function(e){var t=this;return P.annotations(e).find(function(e){return e instanceof t.type})||null},e.prototype.resolve=function(e){var t=this.resolved.get(e)||null;if(!t){if(t=this.getAnnotation(e)){var r=this.overrides.get(e);r&&(t=(new M).overrideMetadata(this.type,t,r))}this.resolved.set(e,t)}return t},e}(),D=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return _(r,e),Object.defineProperty(r.prototype,"type",{get:function(){return t.Directive},enumerable:!0,configurable:!0}),r}(S),R=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return _(r,e),Object.defineProperty(r.prototype,"type",{get:function(){return t.Component},enumerable:!0,configurable:!0}),r}(S),j=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return _(r,e),Object.defineProperty(r.prototype,"type",{get:function(){return t.Pipe},enumerable:!0,configurable:!0}),r}(S),N=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return _(r,e),Object.defineProperty(r.prototype,"type",{get:function(){return t.NgModule},enumerable:!0,configurable:!0}),r}(S),F=function(){function e(){}return e.prototype.insertRootElement=function(e){},e}(),I=new t.InjectionToken("ComponentFixtureAutoDetect"),k=new t.InjectionToken("ComponentFixtureNoNgZone"),x=0,A=function(){function e(){this.platform=null,this.ngModule=null,this._moduleOverrides=[],this._componentOverrides=[],this._directiveOverrides=[],this._pipeOverrides=[],this._providerOverrides=[],this._rootProviderOverrides=[],this._providers=[],this._declarations=[],this._imports=[],this._schemas=[],this._activeFixtures=[],this._moduleRef=null,this._instantiated=!1}return e.initTestEnvironment=function(e,t,r){var n=Z();return n.initTestEnvironment(e,t,r),n},e.resetTestEnvironment=function(){Z().resetTestEnvironment()},e.configureCompiler=function(t){return Z().configureCompiler(t),e},e.configureTestingModule=function(t){return Z().configureTestingModule(t),e},e.compileComponents=function(){return Z().compileComponents()},e.overrideModule=function(t,r){return Z().overrideModule(t,r),e},e.overrideComponent=function(t,r){return Z().overrideComponent(t,r),e},e.overrideDirective=function(t,r){return Z().overrideDirective(t,r),e},e.overridePipe=function(t,r){return Z().overridePipe(t,r),e},e.overrideTemplate=function(t,r){return Z().overrideComponent(t,{set:{template:r,templateUrl:null}}),e},e.overrideTemplateUsingTestingModule=function(t,r){return Z().overrideTemplateUsingTestingModule(t,r),e},e.prototype.overrideTemplateUsingTestingModule=function(e,t){throw new Error("Render3TestBed.overrideTemplateUsingTestingModule is not implemented yet")},e.overrideProvider=function(t,r){return Z().overrideProvider(t,r),e},e.deprecatedOverrideProvider=function(e,t){throw new Error("Render3TestBed.deprecatedOverrideProvider is not implemented")},e.get=function(e,r){return void 0===r&&(r=t.Injector.THROW_IF_NOT_FOUND),Z().get(e,r)},e.createComponent=function(e){return Z().createComponent(e)},e.resetTestingModule=function(){return Z().resetTestingModule(),e},e.prototype.initTestEnvironment=function(e,t,r){if(this.platform||this.ngModule)throw new Error("Cannot set base providers because it has already been called");this.platform=t,this.ngModule=e},e.prototype.resetTestEnvironment=function(){this.resetTestingModule(),this.platform=null,this.ngModule=null},e.prototype.resetTestingModule=function(){this._moduleOverrides=[],this._componentOverrides=[],this._directiveOverrides=[],this._pipeOverrides=[],this._providerOverrides=[],this._rootProviderOverrides=[],this._providers=[],this._declarations=[],this._imports=[],this._schemas=[],this._moduleRef=null,this._instantiated=!1,this._activeFixtures.forEach(function(e){try{e.destroy()}catch(t){console.error("Error during cleanup of component",{component:e.componentInstance,stacktrace:t})}}),this._activeFixtures=[]},e.prototype.configureCompiler=function(e){throw new Error("the Render3 compiler is not configurable !")},e.prototype.configureTestingModule=function(e){var t,r,n,o;this._assertNotInstantiated("R3TestBed.configureTestingModule","configure the test module"),e.providers&&(t=this._providers).push.apply(t,w(e.providers)),e.declarations&&(r=this._declarations).push.apply(r,w(e.declarations)),e.imports&&(n=this._imports).push.apply(n,w(e.imports)),e.schemas&&(o=this._schemas).push.apply(o,w(e.schemas))},e.prototype.compileComponents=function(){return Promise.resolve()},e.prototype.get=function(r,n){return void 0===n&&(n=t.Injector.THROW_IF_NOT_FOUND),this._initIfNeeded(),r===e?this:this._moduleRef.injector.get(r,n)},e.prototype.execute=function(e,t,r){var n=this;this._initIfNeeded();var o=e.map(function(e){return n.get(e)});return t.apply(r,o)},e.prototype.overrideModule=function(e,t){this._assertNotInstantiated("overrideModule","override module metadata"),this._moduleOverrides.push([e,t])},e.prototype.overrideComponent=function(e,t){this._assertNotInstantiated("overrideComponent","override component metadata"),this._componentOverrides.push([e,t])},e.prototype.overrideDirective=function(e,t){this._assertNotInstantiated("overrideDirective","override directive metadata"),this._directiveOverrides.push([e,t])},e.prototype.overridePipe=function(e,t){this._assertNotInstantiated("overridePipe","override pipe metadata"),this._pipeOverrides.push([e,t])},e.prototype.overrideProvider=function(e,r){var n;("string"!=typeof e&&(n=t.ɵgetInjectableDef(e))&&"root"===n.providedIn?this._rootProviderOverrides:this._providerOverrides).push(r.useFactory?{provide:e,useFactory:r.useFactory,deps:r.deps||[]}:{provide:e,useValue:r.useValue})},e.prototype.deprecatedOverrideProvider=function(e,t){throw new Error("No implemented in IVY")},e.prototype.createComponent=function(e){this._initIfNeeded();var r=this.get(F),n="root"+x++;r.insertRootElement(n);var i=e.ngComponentDef;if(!i)throw new Error("It looks like '"+t.ɵstringify(e)+"' has not been IVY compiled - it has no 'ngComponentDef' field");var s=new t.ɵRender3ComponentFactory(i).create(t.Injector.NULL,[],"#"+n,this._moduleRef),u=this.get(I,!1),c=new o(s,null,u);return this._activeFixtures.push(c),c},e.prototype._initIfNeeded=function(){if(!this._instantiated){var e=this._getResolvers(),r=this._createTestModule();(function e(r,n){var o=n.module.resolve(r);if(null===o)throw new Error(t.ɵstringify(r)+" has not @NgModule annotation");t.ɵcompileNgModuleDefs(r,o);var i=[];(function e(t){var r=[];return t.forEach(function(t){Array.isArray(t)?r.push.apply(r,w(e(t))):r.push(t)}),r})(o.declarations||U).forEach(function(e){var r=n.component.resolve(e);if(r)return t.ɵcompileComponent(e,r),void i.push(e);var o=n.directive.resolve(e);if(o)t.ɵcompileDirective(e,o);else{var s=n.pipe.resolve(e);s&&t.ɵcompilePipe(e,s)}});var s=function t(r,n){if(!V(r))throw new Error(r.name+" does not have an ngModuleDef");var o=r.ngModuleDef;if(null!==o.transitiveCompileScopes)return o.transitiveCompileScopes;var i={compilation:{directives:new Set,pipes:new Set},exported:{directives:new Set,pipes:new Set}};return o.declarations.forEach(function(e){void 0!==e.ngPipeDef?i.compilation.pipes.add(e):i.compilation.directives.add(e)}),o.imports.forEach(function(r){if(null===n.module.resolve(r))throw new Error("Importing "+r.name+" which does not have an @ngModule");e(r,n);var o=t(r,n);o.exported.directives.forEach(function(e){return i.compilation.directives.add(e)}),o.exported.pipes.forEach(function(e){return i.compilation.pipes.add(e)})}),o.exports.forEach(function(e){var r=e;if(V(r)){var o=t(r,n);o.exported.directives.forEach(function(e){i.compilation.directives.add(e),i.exported.directives.add(e)}),o.exported.pipes.forEach(function(e){i.compilation.pipes.add(e),i.exported.pipes.add(e)})}else void 0!==r.ngPipeDef?i.exported.pipes.add(r):i.exported.directives.add(r)}),o.transitiveCompileScopes=i,i}(r,n);i.forEach(function(e){return t.ɵpatchComponentDefWithScope(e.ngComponentDef,s)})})(r,e),this._moduleRef=new t.ɵRender3NgModuleRef(r,this.platform.injector),this._instantiated=!0}},e.prototype._getResolvers=function(){var e=new N;e.setOverrides(this._moduleOverrides);var t=new R;t.setOverrides(this._componentOverrides);var r=new D;r.setOverrides(this._directiveOverrides);var n=new j;return n.setOverrides(this._pipeOverrides),{module:e,component:t,directive:r,pipe:n}},e.prototype._assertNotInstantiated=function(e,t){if(this._instantiated)throw new Error("Cannot "+t+" when the test module has already been instantiated. Make sure you are not using `inject` before `"+e+"`.")},e.prototype._createTestModule=function(){var e=this._rootProviderOverrides,r={provide:t.ɵWRAP_RENDERER_FACTORY2,useFactory:function(){return function(e){return new t.ɵRender3DebugRendererFactory2(e)}}},n=function(){return g([t.NgModule({providers:w(e,[r]),jit:!0})],function n(){})}(),o=w(this._providers,this._providerOverrides),i=this._declarations,s=[n,this.ngModule,this._imports],u=this._schemas;return function(){return g([t.NgModule({providers:o,declarations:i,imports:s,schemas:u,jit:!0})],function e(){})}()},e}();function Z(){return C=C||new A}var U=[];function V(e){return void 0!==e.ngModuleDef}
  /**
       * @license
       * Copyright Google Inc. All Rights Reserved.
       *
       * Use of this source code is governed by an MIT-style license that can be
       * found in the LICENSE file at https://angular.io/license
       */function W(){throw Error("unimplemented")}var B,z=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return _(r,e),Object.defineProperty(r.prototype,"injector",{get:function(){throw W()},enumerable:!0,configurable:!0}),r.prototype.overrideModule=function(e,t){throw W()},r.prototype.overrideDirective=function(e,t){throw W()},r.prototype.overrideComponent=function(e,t){throw W()},r.prototype.overridePipe=function(e,t){throw W()},r.prototype.loadAotSummaries=function(e){throw W()},r.prototype.getComponentFactory=function(e){throw W()},r.prototype.getComponentFromError=function(e){throw W()},g([t.Injectable()],r)}(t.Compiler),L=function L(){},H=new Object,q=0,Y=function(){function e(){this._instantiated=!1,this._compiler=null,this._moduleRef=null,this._moduleFactory=null,this._compilerOptions=[],this._moduleOverrides=[],this._componentOverrides=[],this._directiveOverrides=[],this._pipeOverrides=[],this._providers=[],this._declarations=[],this._imports=[],this._schemas=[],this._activeFixtures=[],this._testEnvAotSummaries=function(){return[]},this._aotSummaries=[],this._templateOverrides=[],this._isRoot=!0,this._rootProviderOverrides=[],this.platform=null,this.ngModule=null}return e.initTestEnvironment=function(e,t,r){var n=K();return n.initTestEnvironment(e,t,r),n},e.resetTestEnvironment=function(){K().resetTestEnvironment()},e.resetTestingModule=function(){return K().resetTestingModule(),e},e.configureCompiler=function(t){return K().configureCompiler(t),e},e.configureTestingModule=function(t){return K().configureTestingModule(t),e},e.compileComponents=function(){return J().compileComponents()},e.overrideModule=function(t,r){return K().overrideModule(t,r),e},e.overrideComponent=function(t,r){return K().overrideComponent(t,r),e},e.overrideDirective=function(t,r){return K().overrideDirective(t,r),e},e.overridePipe=function(t,r){return K().overridePipe(t,r),e},e.overrideTemplate=function(t,r){return K().overrideComponent(t,{set:{template:r,templateUrl:null}}),e},e.overrideTemplateUsingTestingModule=function(t,r){return K().overrideTemplateUsingTestingModule(t,r),e},e.overrideProvider=function(t,r){return K().overrideProvider(t,r),e},e.deprecatedOverrideProvider=function(t,r){return K().deprecatedOverrideProvider(t,r),e},e.get=function(e,r){return void 0===r&&(r=t.Injector.THROW_IF_NOT_FOUND),K().get(e,r)},e.createComponent=function(e){return K().createComponent(e)},e.prototype.initTestEnvironment=function(e,t,r){if(this.platform||this.ngModule)throw new Error("Cannot set base providers because it has already been called");this.platform=t,this.ngModule=e,r&&(this._testEnvAotSummaries=r)},e.prototype.resetTestEnvironment=function(){this.resetTestingModule(),this.platform=null,this.ngModule=null,this._testEnvAotSummaries=function(){return[]}},e.prototype.resetTestingModule=function(){t.ɵclearOverrides(),this._aotSummaries=[],this._templateOverrides=[],this._compiler=null,this._moduleOverrides=[],this._componentOverrides=[],this._directiveOverrides=[],this._pipeOverrides=[],this._isRoot=!0,this._rootProviderOverrides=[],this._moduleRef=null,this._moduleFactory=null,this._compilerOptions=[],this._providers=[],this._declarations=[],this._imports=[],this._schemas=[],this._instantiated=!1,this._activeFixtures.forEach(function(e){try{e.destroy()}catch(t){console.error("Error during cleanup of component",{component:e.componentInstance,stacktrace:t})}}),this._activeFixtures=[]},e.prototype.configureCompiler=function(e){this._assertNotInstantiated("TestBed.configureCompiler","configure the compiler"),this._compilerOptions.push(e)},e.prototype.configureTestingModule=function(e){var t,r,n,o;this._assertNotInstantiated("TestBed.configureTestingModule","configure the test module"),e.providers&&(t=this._providers).push.apply(t,w(e.providers)),e.declarations&&(r=this._declarations).push.apply(r,w(e.declarations)),e.imports&&(n=this._imports).push.apply(n,w(e.imports)),e.schemas&&(o=this._schemas).push.apply(o,w(e.schemas)),e.aotSummaries&&this._aotSummaries.push(e.aotSummaries)},e.prototype.compileComponents=function(){var e=this;if(this._moduleFactory||this._instantiated)return Promise.resolve(null);var t=this._createCompilerAndModule();return this._compiler.compileModuleAndAllComponentsAsync(t).then(function(t){e._moduleFactory=t.ngModuleFactory})},e.prototype._initIfNeeded=function(){var e,r;if(!this._instantiated){if(!this._moduleFactory)try{var n=this._createCompilerAndModule();this._moduleFactory=this._compiler.compileModuleAndAllComponentsSync(n).ngModuleFactory}catch(e){var o=this._compiler.getComponentFromError(e);throw o?new Error("This test module uses the component "+t.ɵstringify(o)+' which is using a "templateUrl" or "styleUrls", but they were never compiled. Please call "TestBed.compileComponents" before your test.'):e}try{for(var i=y(this._templateOverrides),s=i.next();!s.done;s=i.next()){var u=s.value,c=u.component,a=this._compiler.getComponentFactory(u.templateOf);t.ɵoverrideComponentView(c,a)}}catch(t){e={error:t}}finally{try{s&&!s.done&&(r=i.return)&&r.call(i)}finally{if(e)throw e.error}}var p=new t.NgZone({enableLongStackTrace:!0}),d=t.Injector.create({providers:[{provide:t.NgZone,useValue:p}],parent:this.platform.injector,name:this._moduleFactory.moduleType.name});this._moduleRef=this._moduleFactory.create(d),this._moduleRef.injector.get(t.ApplicationInitStatus).runInitializers(),this._instantiated=!0}},e.prototype._createCompilerAndModule=function(){var e,r,n=this,o=this._providers.concat([{provide:G,useValue:this}]),i=w(this._declarations,this._templateOverrides.map(function(e){return e.templateOf})),s=[],u=this._rootProviderOverrides;if(this._isRoot){var c=function(){return g([t.NgModule({providers:w(u),jit:!0})],function e(){})}();s.push(c)}o.push({provide:t.ɵAPP_ROOT,useValue:this._isRoot});var a=[s,this.ngModule,this._imports],p=this._schemas,d=function(){return g([t.NgModule({providers:o,declarations:i,imports:a,schemas:p,jit:!0})],function e(){})}(),l=this.platform.injector.get(L);this._compiler=l.createTestingCompiler(this._compilerOptions);try{for(var f=y(w([this._testEnvAotSummaries],this._aotSummaries)),h=f.next();!h.done;h=f.next())this._compiler.loadAotSummaries(h.value)}catch(t){e={error:t}}finally{try{h&&!h.done&&(r=f.return)&&r.call(f)}finally{if(e)throw e.error}}return this._moduleOverrides.forEach(function(e){return n._compiler.overrideModule(e[0],e[1])}),this._componentOverrides.forEach(function(e){return n._compiler.overrideComponent(e[0],e[1])}),this._directiveOverrides.forEach(function(e){return n._compiler.overrideDirective(e[0],e[1])}),this._pipeOverrides.forEach(function(e){return n._compiler.overridePipe(e[0],e[1])}),d},e.prototype._assertNotInstantiated=function(e,t){if(this._instantiated)throw new Error("Cannot "+t+" when the test module has already been instantiated. Make sure you are not using `inject` before `"+e+"`.")},e.prototype.get=function(e,r){if(void 0===r&&(r=t.Injector.THROW_IF_NOT_FOUND),this._initIfNeeded(),e===G)return this;var n=this._moduleRef.injector.get(e,H);return n===H?this._compiler.injector.get(e,r):n},e.prototype.execute=function(e,t,r){var n=this;this._initIfNeeded();var o=e.map(function(e){return n.get(e)});return t.apply(r,o)},e.prototype.overrideModule=function(e,t){this._assertNotInstantiated("overrideModule","override module metadata"),this._moduleOverrides.push([e,t])},e.prototype.overrideComponent=function(e,t){this._assertNotInstantiated("overrideComponent","override component metadata"),this._componentOverrides.push([e,t])},e.prototype.overrideDirective=function(e,t){this._assertNotInstantiated("overrideDirective","override directive metadata"),this._directiveOverrides.push([e,t])},e.prototype.overridePipe=function(e,t){this._assertNotInstantiated("overridePipe","override pipe metadata"),this._pipeOverrides.push([e,t])},e.prototype.overrideProvider=function(e,t){this.overrideProviderImpl(e,t)},e.prototype.deprecatedOverrideProvider=function(e,t){this.overrideProviderImpl(e,t,!0)},e.prototype.overrideProviderImpl=function(e,r,n){void 0===n&&(n=!1);var o=null;"string"!=typeof e&&(o=t.ɵgetInjectableDef(e))&&"root"===o.providedIn&&this._rootProviderOverrides.push(r.useFactory?{provide:e,useFactory:r.useFactory,deps:r.deps||[]}:{provide:e,useValue:r.useValue});var i,s=0;r.useFactory?(s|=1024,i=r.useFactory):(s|=256,i=r.useValue);var u=(r.deps||[]).map(function(e){var r,n=0;return Array.isArray(e)?e.forEach(function(e){e instanceof t.Optional?n|=2:e instanceof t.SkipSelf?n|=1:r=e}):r=e,[n,r]});t.ɵoverrideProvider({token:e,flags:s,deps:u,value:i,deprecatedBehavior:n})},e.prototype.overrideTemplateUsingTestingModule=function(e,r){this._assertNotInstantiated("overrideTemplateUsingTestingModule","override template");var n=function(){return g([t.Component({selector:"empty",template:r,jit:!0})],function e(){})}();this._templateOverrides.push({component:e,templateOf:n})},e.prototype.createComponent=function(e){var r=this;this._initIfNeeded();var n=this._compiler.getComponentFactory(e);if(!n)throw new Error("Cannot create the component "+t.ɵstringify(e)+" as it was not imported into the testing module!");var i=this.get(k,!1),s=this.get(I,!1),u=i?null:this.get(t.NgZone,null),c=this.get(F),a="root"+q++;c.insertRootElement(a);var p=function(){var e=n.create(t.Injector.NULL,[],"#"+a,r._moduleRef);return new o(e,u,s)},d=u?u.run(p):p();return this._activeFixtures.push(d),d},e}(),G=t.ɵivyEnabled?A:Y,J=t.ɵivyEnabled?Z:K;function K(){return B=B||new Y}function Q(e,t){var r=J();return e.indexOf(O)>=0?function(){var n=this;return r.compileComponents().then(function(){var o=r.get(O);return r.execute(e,t,n),o.promise})}:function(){return r.execute(e,t,this)}}var X=function(){function e(e){this._moduleDef=e}return e.prototype._addModule=function(){var e=this._moduleDef();e&&J().configureTestingModule(e)},e.prototype.inject=function(e,t){var r=this;return function(){return r._addModule(),Q(e,t).call(this)}},e}(),$="undefined"==typeof window?global:window;$.beforeEach&&$.beforeEach(function(){G.resetTestingModule(),v()}),
  /**
       * @license
       * Copyright Google Inc. All Rights Reserved.
       *
       * Use of this source code is governed by an MIT-style license that can be
       * found in the LICENSE file at https://angular.io/license
       */
  /**
       * @license
       * Copyright Google Inc. All Rights Reserved.
       *
       * Use of this source code is governed by an MIT-style license that can be
       * found in the LICENSE file at https://angular.io/license
       */
  /**
       * @license
       * Copyright Google Inc. All Rights Reserved.
       *
       * Use of this source code is governed by an MIT-style license that can be
       * found in the LICENSE file at https://angular.io/license
       */
  /**
       * @license
       * Copyright Google Inc. All Rights Reserved.
       *
       * Use of this source code is governed by an MIT-style license that can be
       * found in the LICENSE file at https://angular.io/license
       */
  e.ɵangular_packages_core_testing_testing_b=A,e.ɵangular_packages_core_testing_testing_c=Z,e.ɵangular_packages_core_testing_testing_a=Y,e.TestBed=G,e.getTestBed=J,e.inject=Q,e.InjectSetupWrapper=X,e.withModule=function ee(e,t){return t?function(){var r=J();return e&&r.configureTestingModule(e),t.apply(this)}:new X(function(){return e})}
  /**
       * @license
       * Copyright Google Inc. All Rights Reserved.
       *
       * Use of this source code is governed by an MIT-style license that can be
       * found in the LICENSE file at https://angular.io/license
       */,e.ɵMetadataOverrider=M,e.async=function te(e){var t="undefined"!=typeof Zone?Zone:null;if(!t)return function(){return Promise.reject("Zone is needed for the async() test helper but could not be found. Please make sure that your environment includes zone.js/dist/zone.js")};var o=t&&t[t.__symbol__("asyncTest")];return"function"==typeof o?o(e):function i(e){return r.jasmine?function(t){t||((t=function(){}).fail=function(e){throw e}),n(e,this,t,function(e){if("string"==typeof e)return t.fail(new Error(e));t.fail(e)})}:function(){var t=this;return new Promise(function(r,o){n(e,t,r,o)})}}(e)},e.ComponentFixture=o,e.resetFakeAsyncZone=v,e.fakeAsync=function re(e){return h?h.fakeAsync(e):function t(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var n=u.assertPresent();if(p)throw new Error("fakeAsync() calls can not be nested");p=!0;try{if(!c){if(n.getDelegate()instanceof s)throw new Error("fakeAsync() calls can not be nested");c=new s}var o=void 0,i=n.getDelegate();n.setDelegate(c);try{o=e.apply(this,t),l()}finally{n.setDelegate(i)}if(c.pendingPeriodicTimers.length>0)throw new Error(c.pendingPeriodicTimers.length+" periodic timer(s) still in the queue.");if(c.pendingTimers.length>0)throw new Error(c.pendingTimers.length+" timer(s) still in the queue.");return o}finally{p=!1,a()}}}(e)},e.tick=function ne(e){return void 0===e&&(e=0),h?h.tick(e):function t(e){void 0===e&&(e=0),d().tick(e)}(e)},e.flush=function oe(e){return h?h.flush(e):function t(e){return d().flush(e)}(e)},e.discardPeriodicTasks=function ie(){if(h)return h.discardPeriodicTasks();!function e(){d().pendingPeriodicTimers.length=0}()},e.flushMicrotasks=function se(){return h?h.flushMicrotasks():l()},e.TestComponentRenderer=F,e.ComponentFixtureAutoDetect=I,e.ComponentFixtureNoNgZone=k,e.__core_private_testing_placeholder__="",e.ɵTestingCompiler=z,e.ɵTestingCompilerFactory=L,Object.defineProperty(e,"__esModule",{value:!0})});