@angular/core 5.2.2 → 5.2.6
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.
- package/bundles/core-testing.umd.js +11 -3
- package/bundles/core-testing.umd.js.map +1 -1
- package/bundles/core-testing.umd.min.js +2 -2
- package/bundles/core-testing.umd.min.js.map +1 -1
- package/bundles/core.umd.js +30 -14
- package/bundles/core.umd.js.map +1 -1
- package/bundles/core.umd.min.js +7 -7
- package/bundles/core.umd.min.js.map +1 -1
- package/core.metadata.json +1 -1
- package/esm2015/core.js +26 -9
- package/esm2015/core.js.map +1 -1
- package/esm2015/testing.js +11 -3
- package/esm2015/testing.js.map +1 -1
- package/esm5/core.js +26 -9
- package/esm5/core.js.map +1 -1
- package/esm5/testing.js +11 -3
- package/esm5/testing.js.map +1 -1
- package/package.json +1 -1
- package/src/animation/dsl.d.ts +1 -1
- package/src/reflection/reflection_capabilities.d.ts +3 -1
- package/testing/testing.metadata.json +1 -1
- package/testing.d.ts +1 -1
package/esm2015/testing.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v5.2.
|
|
2
|
+
* @license Angular v5.2.6
|
|
3
3
|
* (c) 2010-2018 Google, Inc. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
6
|
-
import { ApplicationInitStatus, Compiler, Component, InjectionToken, Injector, NgModule, NgZone, Optional, RendererFactory2, SkipSelf, getDebugNode, ɵclearOverrides, ɵoverrideComponentView, ɵoverrideProvider, ɵstringify } from '@angular/core';
|
|
6
|
+
import { ApplicationInitStatus, Compiler, Component, Injectable, InjectionToken, Injector, NgModule, NgZone, Optional, RendererFactory2, SkipSelf, getDebugNode, ɵclearOverrides, ɵoverrideComponentView, ɵoverrideProvider, ɵstringify } from '@angular/core';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* @license
|
|
@@ -482,6 +482,11 @@ class TestingCompiler extends Compiler {
|
|
|
482
482
|
*/
|
|
483
483
|
getComponentFromError(error) { throw unimplemented(); }
|
|
484
484
|
}
|
|
485
|
+
TestingCompiler.decorators = [
|
|
486
|
+
{ type: Injectable },
|
|
487
|
+
];
|
|
488
|
+
/** @nocollapse */
|
|
489
|
+
TestingCompiler.ctorParameters = () => [];
|
|
485
490
|
/**
|
|
486
491
|
* A factory for creating a Compiler
|
|
487
492
|
*
|
|
@@ -696,7 +701,10 @@ class TestBed {
|
|
|
696
701
|
fixture.destroy();
|
|
697
702
|
}
|
|
698
703
|
catch (e) {
|
|
699
|
-
console.error('Error during cleanup of component',
|
|
704
|
+
console.error('Error during cleanup of component', {
|
|
705
|
+
component: fixture.componentInstance,
|
|
706
|
+
stacktrace: e,
|
|
707
|
+
});
|
|
700
708
|
}
|
|
701
709
|
});
|
|
702
710
|
this._activeFixtures = [];
|
package/esm2015/testing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sources":["../../../packages/core/testing/src/async.js","../../../packages/core/testing/src/component_fixture.js","../../../packages/core/testing/src/fake_async.js","../../../packages/core/testing/src/async_test_completer.js","../../../packages/core/testing/src/test_compiler.js","../../../packages/core/testing/src/test_bed.js","../../../packages/core/testing/src/before_each.js","../../../packages/core/testing/src/private_export_testing.js","../../../packages/core/testing/src/testing.js","../../../packages/core/testing/public_api.js","../../../packages/core/testing/testing.js"],"sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst _global = (typeof window === 'undefined' ? global : window);\n/**\n * Wraps a test function in an asynchronous test zone. The test will automatically\n * complete when all asynchronous calls within this zone are done. Can be used\n * to wrap an {@link inject} call.\n *\n * Example:\n *\n * ```\n * it('...', async(inject([AClass], (object) => {\n * object.doSomething.then(() => {\n * expect(...);\n * })\n * });\n * ```\n *\n * @stable\n */\nexport function async(fn) {\n // If we're running using the Jasmine test framework, adapt to call the 'done'\n // function when asynchronous activity is finished.\n if (_global.jasmine) {\n // Not using an arrow function to preserve context passed from call site\n return function (done) {\n if (!done) {\n // if we run beforeEach in @angular/core/testing/testing_internal then we get no done\n // fake it here and assume sync.\n done = function () { };\n done.fail = function (e) { throw e; };\n }\n runInTestZone(fn, this, done, (err) => {\n if (typeof err === 'string') {\n return done.fail(new Error(err));\n }\n else {\n done.fail(err);\n }\n });\n };\n }\n // Otherwise, return a promise which will resolve when asynchronous activity\n // is finished. This will be correctly consumed by the Mocha framework with\n // it('...', async(myFn)); or can be used in a custom framework.\n // Not using an arrow function to preserve context passed from call site\n return function () {\n return new Promise((finishCallback, failCallback) => {\n runInTestZone(fn, this, finishCallback, failCallback);\n });\n };\n}\nfunction runInTestZone(fn, context, finishCallback, failCallback) {\n const currentZone = Zone.current;\n const AsyncTestZoneSpec = Zone['AsyncTestZoneSpec'];\n if (AsyncTestZoneSpec === undefined) {\n throw new Error('AsyncTestZoneSpec is needed for the async() test helper but could not be found. ' +\n 'Please make sure that your environment includes zone.js/dist/async-test.js');\n }\n const ProxyZoneSpec = Zone['ProxyZoneSpec'];\n if (ProxyZoneSpec === undefined) {\n throw new Error('ProxyZoneSpec is needed for the async() test helper but could not be found. ' +\n 'Please make sure that your environment includes zone.js/dist/proxy.js');\n }\n const proxyZoneSpec = ProxyZoneSpec.get();\n ProxyZoneSpec.assertPresent();\n // We need to create the AsyncTestZoneSpec outside the ProxyZone.\n // If we do it in ProxyZone then we will get to infinite recursion.\n const proxyZone = Zone.current.getZoneWith('ProxyZoneSpec');\n const previousDelegate = proxyZoneSpec.getDelegate();\n proxyZone.parent.run(() => {\n const testZoneSpec = new AsyncTestZoneSpec(() => {\n // Need to restore the original zone.\n currentZone.run(() => {\n if (proxyZoneSpec.getDelegate() == testZoneSpec) {\n // Only reset the zone spec if it's sill this one. Otherwise, assume it's OK.\n proxyZoneSpec.setDelegate(previousDelegate);\n }\n finishCallback();\n });\n }, (error) => {\n // Need to restore the original zone.\n currentZone.run(() => {\n if (proxyZoneSpec.getDelegate() == testZoneSpec) {\n // Only reset the zone spec if it's sill this one. Otherwise, assume it's OK.\n proxyZoneSpec.setDelegate(previousDelegate);\n }\n failCallback(error);\n });\n }, 'test');\n proxyZoneSpec.setDelegate(testZoneSpec);\n });\n return Zone.current.runGuarded(fn, context);\n}\n//# sourceMappingURL=async.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { RendererFactory2, getDebugNode } from '@angular/core';\n/**\n * Fixture for debugging and testing a component.\n *\n * @stable\n */\nexport class ComponentFixture {\n constructor(componentRef, ngZone, _autoDetect) {\n this.componentRef = componentRef;\n this.ngZone = ngZone;\n this._autoDetect = _autoDetect;\n this._isStable = true;\n this._isDestroyed = false;\n this._resolve = null;\n this._promise = null;\n this._onUnstableSubscription = null;\n this._onStableSubscription = null;\n this._onMicrotaskEmptySubscription = null;\n this._onErrorSubscription = null;\n this.changeDetectorRef = componentRef.changeDetectorRef;\n this.elementRef = componentRef.location;\n this.debugElement = getDebugNode(this.elementRef.nativeElement);\n this.componentInstance = componentRef.instance;\n this.nativeElement = this.elementRef.nativeElement;\n this.componentRef = componentRef;\n this.ngZone = ngZone;\n if (ngZone) {\n // Create subscriptions outside the NgZone so that the callbacks run oustide\n // of NgZone.\n ngZone.runOutsideAngular(() => {\n this._onUnstableSubscription =\n ngZone.onUnstable.subscribe({ next: () => { this._isStable = false; } });\n this._onMicrotaskEmptySubscription = ngZone.onMicrotaskEmpty.subscribe({\n next: () => {\n if (this._autoDetect) {\n // Do a change detection run with checkNoChanges set to true to check\n // there are no changes on the second run.\n this.detectChanges(true);\n }\n }\n });\n this._onStableSubscription = ngZone.onStable.subscribe({\n next: () => {\n this._isStable = true;\n // Check whether there is a pending whenStable() completer to resolve.\n if (this._promise !== null) {\n // If so check whether there are no pending macrotasks before resolving.\n // Do this check in the next tick so that ngZone gets a chance to update the state of\n // pending macrotasks.\n scheduleMicroTask(() => {\n if (!ngZone.hasPendingMacrotasks) {\n if (this._promise !== null) {\n this._resolve(true);\n this._resolve = null;\n this._promise = null;\n }\n }\n });\n }\n }\n });\n this._onErrorSubscription =\n ngZone.onError.subscribe({ next: (error) => { throw error; } });\n });\n }\n }\n _tick(checkNoChanges) {\n this.changeDetectorRef.detectChanges();\n if (checkNoChanges) {\n this.checkNoChanges();\n }\n }\n /**\n * Trigger a change detection cycle for the component.\n */\n detectChanges(checkNoChanges = true) {\n if (this.ngZone != null) {\n // Run the change detection inside the NgZone so that any async tasks as part of the change\n // detection are captured by the zone and can be waited for in isStable.\n this.ngZone.run(() => { this._tick(checkNoChanges); });\n }\n else {\n // Running without zone. Just do the change detection.\n this._tick(checkNoChanges);\n }\n }\n /**\n * Do a change detection run to make sure there were no changes.\n */\n checkNoChanges() { this.changeDetectorRef.checkNoChanges(); }\n /**\n * Set whether the fixture should autodetect changes.\n *\n * Also runs detectChanges once so that any existing change is detected.\n */\n autoDetectChanges(autoDetect = true) {\n if (this.ngZone == null) {\n throw new Error('Cannot call autoDetectChanges when ComponentFixtureNoNgZone is set');\n }\n this._autoDetect = autoDetect;\n this.detectChanges();\n }\n /**\n * Return whether the fixture is currently stable or has async tasks that have not been completed\n * yet.\n */\n isStable() { return this._isStable && !this.ngZone.hasPendingMacrotasks; }\n /**\n * Get a promise that resolves when the fixture is stable.\n *\n * This can be used to resume testing after events have triggered asynchronous activity or\n * asynchronous change detection.\n */\n whenStable() {\n if (this.isStable()) {\n return Promise.resolve(false);\n }\n else if (this._promise !== null) {\n return this._promise;\n }\n else {\n this._promise = new Promise(res => { this._resolve = res; });\n return this._promise;\n }\n }\n _getRenderer() {\n if (this._renderer === undefined) {\n this._renderer = this.componentRef.injector.get(RendererFactory2, null);\n }\n return this._renderer;\n }\n /**\n * Get a promise that resolves when the ui state is stable following animations.\n */\n whenRenderingDone() {\n const renderer = this._getRenderer();\n if (renderer && renderer.whenRenderingDone) {\n return renderer.whenRenderingDone();\n }\n return this.whenStable();\n }\n /**\n * Trigger component destruction.\n */\n destroy() {\n if (!this._isDestroyed) {\n this.componentRef.destroy();\n if (this._onUnstableSubscription != null) {\n this._onUnstableSubscription.unsubscribe();\n this._onUnstableSubscription = null;\n }\n if (this._onStableSubscription != null) {\n this._onStableSubscription.unsubscribe();\n this._onStableSubscription = null;\n }\n if (this._onMicrotaskEmptySubscription != null) {\n this._onMicrotaskEmptySubscription.unsubscribe();\n this._onMicrotaskEmptySubscription = null;\n }\n if (this._onErrorSubscription != null) {\n this._onErrorSubscription.unsubscribe();\n this._onErrorSubscription = null;\n }\n this._isDestroyed = true;\n }\n }\n}\nfunction scheduleMicroTask(fn) {\n Zone.current.scheduleMicroTask('scheduleMicrotask', fn);\n}\n//# sourceMappingURL=component_fixture.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst FakeAsyncTestZoneSpec = Zone['FakeAsyncTestZoneSpec'];\nconst ProxyZoneSpec = Zone['ProxyZoneSpec'];\nlet _fakeAsyncTestZoneSpec = null;\n/**\n * Clears out the shared fake async zone for a test.\n * To be called in a global `beforeEach`.\n *\n * @experimental\n */\nexport function resetFakeAsyncZone() {\n _fakeAsyncTestZoneSpec = null;\n ProxyZoneSpec.assertPresent().resetDelegate();\n}\nlet _inFakeAsyncCall = false;\n/**\n * Wraps a function to be executed in the fakeAsync zone:\n * - microtasks are manually executed by calling `flushMicrotasks()`,\n * - timers are synchronous, `tick()` simulates the asynchronous passage of time.\n *\n * If there are any pending timers at the end of the function, an exception will be thrown.\n *\n * Can be used to wrap inject() calls.\n *\n * ## Example\n *\n * {@example core/testing/ts/fake_async.ts region='basic'}\n *\n * @param fn\n * @returns The function wrapped to be executed in the fakeAsync zone\n *\n * @experimental\n */\nexport function fakeAsync(fn) {\n // Not using an arrow function to preserve context passed from call site\n return function (...args) {\n const proxyZoneSpec = ProxyZoneSpec.assertPresent();\n if (_inFakeAsyncCall) {\n throw new Error('fakeAsync() calls can not be nested');\n }\n _inFakeAsyncCall = true;\n try {\n if (!_fakeAsyncTestZoneSpec) {\n if (proxyZoneSpec.getDelegate() instanceof FakeAsyncTestZoneSpec) {\n throw new Error('fakeAsync() calls can not be nested');\n }\n _fakeAsyncTestZoneSpec = new FakeAsyncTestZoneSpec();\n }\n let res;\n const lastProxyZoneSpec = proxyZoneSpec.getDelegate();\n proxyZoneSpec.setDelegate(_fakeAsyncTestZoneSpec);\n try {\n res = fn.apply(this, args);\n flushMicrotasks();\n }\n finally {\n proxyZoneSpec.setDelegate(lastProxyZoneSpec);\n }\n if (_fakeAsyncTestZoneSpec.pendingPeriodicTimers.length > 0) {\n throw new Error(`${_fakeAsyncTestZoneSpec.pendingPeriodicTimers.length} ` +\n `periodic timer(s) still in the queue.`);\n }\n if (_fakeAsyncTestZoneSpec.pendingTimers.length > 0) {\n throw new Error(`${_fakeAsyncTestZoneSpec.pendingTimers.length} timer(s) still in the queue.`);\n }\n return res;\n }\n finally {\n _inFakeAsyncCall = false;\n resetFakeAsyncZone();\n }\n };\n}\nfunction _getFakeAsyncZoneSpec() {\n if (_fakeAsyncTestZoneSpec == null) {\n throw new Error('The code should be running in the fakeAsync zone to call this function');\n }\n return _fakeAsyncTestZoneSpec;\n}\n/**\n * Simulates the asynchronous passage of time for the timers in the fakeAsync zone.\n *\n * The microtasks queue is drained at the very start of this function and after any timer callback\n * has been executed.\n *\n * ## Example\n *\n * {@example core/testing/ts/fake_async.ts region='basic'}\n *\n * @experimental\n */\nexport function tick(millis = 0) {\n _getFakeAsyncZoneSpec().tick(millis);\n}\n/**\n * Simulates the asynchronous passage of time for the timers in the fakeAsync zone by\n * draining the macrotask queue until it is empty. The returned value is the milliseconds\n * of time that would have been elapsed.\n *\n * @param maxTurns\n * @returns The simulated time elapsed, in millis.\n *\n * @experimental\n */\nexport function flush(maxTurns) {\n return _getFakeAsyncZoneSpec().flush(maxTurns);\n}\n/**\n * Discard all remaining periodic tasks.\n *\n * @experimental\n */\nexport function discardPeriodicTasks() {\n const zoneSpec = _getFakeAsyncZoneSpec();\n const pendingTimers = zoneSpec.pendingPeriodicTimers;\n zoneSpec.pendingPeriodicTimers.length = 0;\n}\n/**\n * Flush any pending microtasks.\n *\n * @experimental\n */\nexport function flushMicrotasks() {\n _getFakeAsyncZoneSpec().flushMicrotasks();\n}\n//# sourceMappingURL=fake_async.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Injectable completer that allows signaling completion of an asynchronous test. Used internally.\n */\nexport class AsyncTestCompleter {\n constructor() {\n this._promise = new Promise((res, rej) => {\n this._resolve = res;\n this._reject = rej;\n });\n }\n done(value) { this._resolve(value); }\n fail(error, stackTrace) { this._reject(error); }\n get promise() { return this._promise; }\n}\n//# sourceMappingURL=async_test_completer.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Compiler } from '@angular/core';\nfunction unimplemented() {\n throw Error('unimplemented');\n}\n/**\n * Special interface to the compiler only used by testing\n *\n * @experimental\n */\nexport class TestingCompiler extends Compiler {\n get injector() { throw unimplemented(); }\n overrideModule(module, overrides) {\n throw unimplemented();\n }\n overrideDirective(directive, overrides) {\n throw unimplemented();\n }\n overrideComponent(component, overrides) {\n throw unimplemented();\n }\n overridePipe(directive, overrides) {\n throw unimplemented();\n }\n /**\n * Allows to pass the compile summary from AOT compilation to the JIT compiler,\n * so that it can use the code generated by AOT.\n */\n loadAotSummaries(summaries) { throw unimplemented(); }\n /**\n * Gets the component factory for the given component.\n * This assumes that the component has been compiled before calling this call using\n * `compileModuleAndAllComponents*`.\n */\n getComponentFactory(component) { throw unimplemented(); }\n /**\n * Returns the component type that is stored in the given error.\n * This can be used for errors created by compileModule...\n */\n getComponentFromError(error) { throw unimplemented(); }\n}\n/**\n * A factory for creating a Compiler\n *\n * @experimental\n */\nexport class TestingCompilerFactory {\n}\n//# sourceMappingURL=test_compiler.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ApplicationInitStatus, Component, InjectionToken, Injector, NgModule, NgZone, Optional, SkipSelf, ɵclearOverrides as clearOverrides, ɵoverrideComponentView as overrideComponentView, ɵoverrideProvider as overrideProvider, ɵstringify as stringify } from '@angular/core';\nimport { AsyncTestCompleter } from './async_test_completer';\nimport { ComponentFixture } from './component_fixture';\nimport { TestingCompilerFactory } from './test_compiler';\nconst UNDEFINED = new Object();\n/**\n * An abstract class for inserting the root test component element in a platform independent way.\n *\n * @experimental\n */\nexport class TestComponentRenderer {\n insertRootElement(rootElementId) { }\n}\nlet _nextRootElementId = 0;\n/**\n * @experimental\n */\nexport const ComponentFixtureAutoDetect = new InjectionToken('ComponentFixtureAutoDetect');\n/**\n * @experimental\n */\nexport const ComponentFixtureNoNgZone = new InjectionToken('ComponentFixtureNoNgZone');\n/**\n * @whatItDoes Configures and initializes environment for unit testing and provides methods for\n * creating components and services in unit tests.\n * @description\n *\n * TestBed is the primary api for writing unit tests for Angular applications and libraries.\n *\n * @stable\n */\nexport class TestBed {\n constructor() {\n this._instantiated = false;\n this._compiler = null;\n this._moduleRef = null;\n this._moduleFactory = null;\n this._compilerOptions = [];\n this._moduleOverrides = [];\n this._componentOverrides = [];\n this._directiveOverrides = [];\n this._pipeOverrides = [];\n this._providers = [];\n this._declarations = [];\n this._imports = [];\n this._schemas = [];\n this._activeFixtures = [];\n this._testEnvAotSummaries = () => [];\n this._aotSummaries = [];\n this._templateOverrides = [];\n this.platform = null;\n this.ngModule = null;\n }\n /**\n * Initialize the environment for testing with a compiler factory, a PlatformRef, and an\n * angular module. These are common to every test in the suite.\n *\n * This may only be called once, to set up the common providers for the current test\n * suite on the current platform. If you absolutely need to change the providers,\n * first use `resetTestEnvironment`.\n *\n * Test modules and platforms for individual platforms are available from\n * '@angular/<platform_name>/testing'.\n *\n * @experimental\n */\n static initTestEnvironment(ngModule, platform, aotSummaries) {\n const testBed = getTestBed();\n testBed.initTestEnvironment(ngModule, platform, aotSummaries);\n return testBed;\n }\n /**\n * Reset the providers for the test injector.\n *\n * @experimental\n */\n static resetTestEnvironment() { getTestBed().resetTestEnvironment(); }\n static resetTestingModule() {\n getTestBed().resetTestingModule();\n return TestBed;\n }\n /**\n * Allows overriding default compiler providers and settings\n * which are defined in test_injector.js\n */\n static configureCompiler(config) {\n getTestBed().configureCompiler(config);\n return TestBed;\n }\n /**\n * Allows overriding default providers, directives, pipes, modules of the test injector,\n * which are defined in test_injector.js\n */\n static configureTestingModule(moduleDef) {\n getTestBed().configureTestingModule(moduleDef);\n return TestBed;\n }\n /**\n * Compile components with a `templateUrl` for the test's NgModule.\n * It is necessary to call this function\n * as fetching urls is asynchronous.\n */\n static compileComponents() { return getTestBed().compileComponents(); }\n static overrideModule(ngModule, override) {\n getTestBed().overrideModule(ngModule, override);\n return TestBed;\n }\n static overrideComponent(component, override) {\n getTestBed().overrideComponent(component, override);\n return TestBed;\n }\n static overrideDirective(directive, override) {\n getTestBed().overrideDirective(directive, override);\n return TestBed;\n }\n static overridePipe(pipe, override) {\n getTestBed().overridePipe(pipe, override);\n return TestBed;\n }\n static overrideTemplate(component, template) {\n getTestBed().overrideComponent(component, { set: { template, templateUrl: (null) } });\n return TestBed;\n }\n /**\n * Overrides the template of the given component, compiling the template\n * in the context of the TestingModule.\n *\n * Note: This works for JIT and AOTed components as well.\n */\n static overrideTemplateUsingTestingModule(component, template) {\n getTestBed().overrideTemplateUsingTestingModule(component, template);\n return TestBed;\n }\n static overrideProvider(token, provider) {\n getTestBed().overrideProvider(token, provider);\n return TestBed;\n }\n static deprecatedOverrideProvider(token, provider) {\n getTestBed().deprecatedOverrideProvider(token, provider);\n return TestBed;\n }\n static get(token, notFoundValue = Injector.THROW_IF_NOT_FOUND) {\n return getTestBed().get(token, notFoundValue);\n }\n static createComponent(component) {\n return getTestBed().createComponent(component);\n }\n /**\n * Initialize the environment for testing with a compiler factory, a PlatformRef, and an\n * angular module. These are common to every test in the suite.\n *\n * This may only be called once, to set up the common providers for the current test\n * suite on the current platform. If you absolutely need to change the providers,\n * first use `resetTestEnvironment`.\n *\n * Test modules and platforms for individual platforms are available from\n * '@angular/<platform_name>/testing'.\n *\n * @experimental\n */\n initTestEnvironment(ngModule, platform, aotSummaries) {\n if (this.platform || this.ngModule) {\n throw new Error('Cannot set base providers because it has already been called');\n }\n this.platform = platform;\n this.ngModule = ngModule;\n if (aotSummaries) {\n this._testEnvAotSummaries = aotSummaries;\n }\n }\n /**\n * Reset the providers for the test injector.\n *\n * @experimental\n */\n resetTestEnvironment() {\n this.resetTestingModule();\n this.platform = (null);\n this.ngModule = (null);\n this._testEnvAotSummaries = () => [];\n }\n resetTestingModule() {\n clearOverrides();\n this._aotSummaries = [];\n this._templateOverrides = [];\n this._compiler = (null);\n this._moduleOverrides = [];\n this._componentOverrides = [];\n this._directiveOverrides = [];\n this._pipeOverrides = [];\n this._moduleRef = (null);\n this._moduleFactory = (null);\n this._compilerOptions = [];\n this._providers = [];\n this._declarations = [];\n this._imports = [];\n this._schemas = [];\n this._instantiated = false;\n this._activeFixtures.forEach((fixture) => {\n try {\n fixture.destroy();\n }\n catch (e) {\n console.error('Error during cleanup of component', fixture.componentInstance);\n }\n });\n this._activeFixtures = [];\n }\n configureCompiler(config) {\n this._assertNotInstantiated('TestBed.configureCompiler', 'configure the compiler');\n this._compilerOptions.push(config);\n }\n configureTestingModule(moduleDef) {\n this._assertNotInstantiated('TestBed.configureTestingModule', 'configure the test module');\n if (moduleDef.providers) {\n this._providers.push(...moduleDef.providers);\n }\n if (moduleDef.declarations) {\n this._declarations.push(...moduleDef.declarations);\n }\n if (moduleDef.imports) {\n this._imports.push(...moduleDef.imports);\n }\n if (moduleDef.schemas) {\n this._schemas.push(...moduleDef.schemas);\n }\n if (moduleDef.aotSummaries) {\n this._aotSummaries.push(moduleDef.aotSummaries);\n }\n }\n compileComponents() {\n if (this._moduleFactory || this._instantiated) {\n return Promise.resolve(null);\n }\n const moduleType = this._createCompilerAndModule();\n return this._compiler.compileModuleAndAllComponentsAsync(moduleType)\n .then((moduleAndComponentFactories) => {\n this._moduleFactory = moduleAndComponentFactories.ngModuleFactory;\n });\n }\n _initIfNeeded() {\n if (this._instantiated) {\n return;\n }\n if (!this._moduleFactory) {\n try {\n const moduleType = this._createCompilerAndModule();\n this._moduleFactory =\n this._compiler.compileModuleAndAllComponentsSync(moduleType).ngModuleFactory;\n }\n catch (e) {\n const errorCompType = this._compiler.getComponentFromError(e);\n if (errorCompType) {\n throw new Error(`This test module uses the component ${stringify(errorCompType)} which is using a \"templateUrl\" or \"styleUrls\", but they were never compiled. ` +\n `Please call \"TestBed.compileComponents\" before your test.`);\n }\n else {\n throw e;\n }\n }\n }\n for (const { component, templateOf } of this._templateOverrides) {\n const compFactory = this._compiler.getComponentFactory(templateOf);\n overrideComponentView(component, compFactory);\n }\n const ngZone = new NgZone({ enableLongStackTrace: true });\n const providers = [{ provide: NgZone, useValue: ngZone }];\n const ngZoneInjector = Injector.create({\n providers: providers,\n parent: this.platform.injector,\n name: this._moduleFactory.moduleType.name\n });\n this._moduleRef = this._moduleFactory.create(ngZoneInjector);\n // ApplicationInitStatus.runInitializers() is marked @internal to core. So casting to any\n // before accessing it.\n // ApplicationInitStatus.runInitializers() is marked @internal to core. So casting to any\n // before accessing it.\n this._moduleRef.injector.get(ApplicationInitStatus).runInitializers();\n this._instantiated = true;\n }\n _createCompilerAndModule() {\n const providers = this._providers.concat([{ provide: TestBed, useValue: this }]);\n const declarations = [...this._declarations, ...this._templateOverrides.map(entry => entry.templateOf)];\n const imports = [this.ngModule, this._imports];\n const schemas = this._schemas;\n class DynamicTestModule {\n }\n DynamicTestModule.decorators = [\n { type: NgModule, args: [{ providers, declarations, imports, schemas },] },\n ];\n /** @nocollapse */\n DynamicTestModule.ctorParameters = () => [];\n const compilerFactory = this.platform.injector.get(TestingCompilerFactory);\n this._compiler = compilerFactory.createTestingCompiler(this._compilerOptions);\n for (const summary of [this._testEnvAotSummaries, ...this._aotSummaries]) {\n this._compiler.loadAotSummaries(summary);\n }\n this._moduleOverrides.forEach((entry) => this._compiler.overrideModule(entry[0], entry[1]));\n this._componentOverrides.forEach((entry) => this._compiler.overrideComponent(entry[0], entry[1]));\n this._directiveOverrides.forEach((entry) => this._compiler.overrideDirective(entry[0], entry[1]));\n this._pipeOverrides.forEach((entry) => this._compiler.overridePipe(entry[0], entry[1]));\n return DynamicTestModule;\n }\n _assertNotInstantiated(methodName, methodDescription) {\n if (this._instantiated) {\n throw new Error(`Cannot ${methodDescription} when the test module has already been instantiated. ` +\n `Make sure you are not using \\`inject\\` before \\`${methodName}\\`.`);\n }\n }\n get(token, notFoundValue = Injector.THROW_IF_NOT_FOUND) {\n this._initIfNeeded();\n if (token === TestBed) {\n return this;\n }\n // Tests can inject things from the ng module and from the compiler,\n // but the ng module can't inject things from the compiler and vice versa.\n const result = this._moduleRef.injector.get(token, UNDEFINED);\n return result === UNDEFINED ? this._compiler.injector.get(token, notFoundValue) : result;\n }\n execute(tokens, fn, context) {\n this._initIfNeeded();\n const params = tokens.map(t => this.get(t));\n return fn.apply(context, params);\n }\n overrideModule(ngModule, override) {\n this._assertNotInstantiated('overrideModule', 'override module metadata');\n this._moduleOverrides.push([ngModule, override]);\n }\n overrideComponent(component, override) {\n this._assertNotInstantiated('overrideComponent', 'override component metadata');\n this._componentOverrides.push([component, override]);\n }\n overrideDirective(directive, override) {\n this._assertNotInstantiated('overrideDirective', 'override directive metadata');\n this._directiveOverrides.push([directive, override]);\n }\n overridePipe(pipe, override) {\n this._assertNotInstantiated('overridePipe', 'override pipe metadata');\n this._pipeOverrides.push([pipe, override]);\n }\n overrideProvider(token, provider) {\n this.overrideProviderImpl(token, provider);\n }\n deprecatedOverrideProvider(token, provider) {\n this.overrideProviderImpl(token, provider, /* deprecated */ /* deprecated */ true);\n }\n overrideProviderImpl(token, provider, deprecated = false) {\n let flags = 0;\n let value;\n if (provider.useFactory) {\n flags |= 1024 /* TypeFactoryProvider */;\n value = provider.useFactory;\n }\n else {\n flags |= 256 /* TypeValueProvider */;\n value = provider.useValue;\n }\n const deps = (provider.deps || []).map((dep) => {\n let depFlags = 0 /* None */;\n let depToken;\n if (Array.isArray(dep)) {\n dep.forEach((entry) => {\n if (entry instanceof Optional) {\n depFlags |= 2 /* Optional */;\n }\n else if (entry instanceof SkipSelf) {\n depFlags |= 1 /* SkipSelf */;\n }\n else {\n depToken = entry;\n }\n });\n }\n else {\n depToken = dep;\n }\n return [depFlags, depToken];\n });\n overrideProvider({ token, flags, deps, value, deprecatedBehavior: deprecated });\n }\n overrideTemplateUsingTestingModule(component, template) {\n this._assertNotInstantiated('overrideTemplateUsingTestingModule', 'override template');\n class OverrideComponent {\n }\n OverrideComponent.decorators = [\n { type: Component, args: [{ selector: 'empty', template },] },\n ];\n /** @nocollapse */\n OverrideComponent.ctorParameters = () => [];\n this._templateOverrides.push({ component, templateOf: OverrideComponent });\n }\n createComponent(component) {\n this._initIfNeeded();\n const componentFactory = this._compiler.getComponentFactory(component);\n if (!componentFactory) {\n throw new Error(`Cannot create the component ${stringify(component)} as it was not imported into the testing module!`);\n }\n const noNgZone = this.get(ComponentFixtureNoNgZone, false);\n const autoDetect = this.get(ComponentFixtureAutoDetect, false);\n const ngZone = noNgZone ? null : this.get(NgZone, null);\n const testComponentRenderer = this.get(TestComponentRenderer);\n const rootElId = `root${_nextRootElementId++}`;\n testComponentRenderer.insertRootElement(rootElId);\n const initComponent = () => {\n const componentRef = componentFactory.create(Injector.NULL, [], `#${rootElId}`, this._moduleRef);\n return new ComponentFixture(componentRef, ngZone, autoDetect);\n };\n const fixture = !ngZone ? initComponent() : ngZone.run(initComponent);\n this._activeFixtures.push(fixture);\n return fixture;\n }\n}\nlet _testBed = (null);\n/**\n * @experimental\n */\nexport function getTestBed() {\n return _testBed = _testBed || new TestBed();\n}\n/**\n * Allows injecting dependencies in `beforeEach()` and `it()`.\n *\n * Example:\n *\n * ```\n * beforeEach(inject([Dependency, AClass], (dep, object) => {\n * // some code that uses `dep` and `object`\n * // ...\n * }));\n *\n * it('...', inject([AClass], (object) => {\n * object.doSomething();\n * expect(...);\n * })\n * ```\n *\n * Notes:\n * - inject is currently a function because of some Traceur limitation the syntax should\n * eventually\n * becomes `it('...', @Inject (object: AClass, async: AsyncTestCompleter) => { ... });`\n *\n * @stable\n */\nexport function inject(tokens, fn) {\n const testBed = getTestBed();\n if (tokens.indexOf(AsyncTestCompleter) >= 0) {\n // Not using an arrow function to preserve context passed from call site\n return function () {\n // Return an async test method that returns a Promise if AsyncTestCompleter is one of\n // the injected tokens.\n return testBed.compileComponents().then(() => {\n const completer = testBed.get(AsyncTestCompleter);\n testBed.execute(tokens, fn, this);\n return completer.promise;\n });\n };\n }\n else {\n // Not using an arrow function to preserve context passed from call site\n return function () { return testBed.execute(tokens, fn, this); };\n }\n}\n/**\n * @experimental\n */\nexport class InjectSetupWrapper {\n constructor(_moduleDef) {\n this._moduleDef = _moduleDef;\n }\n _addModule() {\n const moduleDef = this._moduleDef();\n if (moduleDef) {\n getTestBed().configureTestingModule(moduleDef);\n }\n }\n inject(tokens, fn) {\n const self = this;\n // Not using an arrow function to preserve context passed from call site\n return function () {\n self._addModule();\n return inject(tokens, fn).call(this);\n };\n }\n}\nexport function withModule(moduleDef, fn) {\n if (fn) {\n // Not using an arrow function to preserve context passed from call site\n return function () {\n const testBed = getTestBed();\n if (moduleDef) {\n testBed.configureTestingModule(moduleDef);\n }\n return fn.apply(this);\n };\n }\n return new InjectSetupWrapper(() => moduleDef);\n}\n//# sourceMappingURL=test_bed.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { resetFakeAsyncZone } from './fake_async';\nimport { TestBed } from './test_bed';\nconst _global = (typeof window === 'undefined' ? global : window);\n// Reset the test providers and the fake async zone before each test.\nif (_global.beforeEach) {\n _global.beforeEach(() => {\n TestBed.resetTestingModule();\n resetFakeAsyncZone();\n });\n}\n// TODO(juliemr): remove this, only used because we need to export something to have compilation\n// work.\nexport const __core_private_testing_placeholder__ = '';\n//# sourceMappingURL=before_each.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport { TestingCompiler as ɵTestingCompiler, TestingCompilerFactory as ɵTestingCompilerFactory } from './test_compiler';\n//# sourceMappingURL=private_export_testing.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './async';\nexport * from './component_fixture';\nexport * from './fake_async';\nexport * from './test_bed';\nexport * from './before_each';\nexport * from './private_export_testing';\n//# sourceMappingURL=testing.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './src/testing';\n// This file only reexports content of the `src` folder. Keep it that way.\n//# sourceMappingURL=public_api.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public_api';\n//# sourceMappingURL=testing.js.map"],"names":["clearOverrides","stringify","overrideComponentView","overrideProvider","_global"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"testing.js","sources":["../../../packages/core/testing/src/async.js","../../../packages/core/testing/src/component_fixture.js","../../../packages/core/testing/src/fake_async.js","../../../packages/core/testing/src/async_test_completer.js","../../../packages/core/testing/src/test_compiler.js","../../../packages/core/testing/src/test_bed.js","../../../packages/core/testing/src/before_each.js","../../../packages/core/testing/src/private_export_testing.js","../../../packages/core/testing/src/testing.js","../../../packages/core/testing/public_api.js","../../../packages/core/testing/testing.js"],"sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst _global = (typeof window === 'undefined' ? global : window);\n/**\n * Wraps a test function in an asynchronous test zone. The test will automatically\n * complete when all asynchronous calls within this zone are done. Can be used\n * to wrap an {@link inject} call.\n *\n * Example:\n *\n * ```\n * it('...', async(inject([AClass], (object) => {\n * object.doSomething.then(() => {\n * expect(...);\n * })\n * });\n * ```\n *\n * @stable\n */\nexport function async(fn) {\n // If we're running using the Jasmine test framework, adapt to call the 'done'\n // function when asynchronous activity is finished.\n if (_global.jasmine) {\n // Not using an arrow function to preserve context passed from call site\n return function (done) {\n if (!done) {\n // if we run beforeEach in @angular/core/testing/testing_internal then we get no done\n // fake it here and assume sync.\n done = function () { };\n done.fail = function (e) { throw e; };\n }\n runInTestZone(fn, this, done, (err) => {\n if (typeof err === 'string') {\n return done.fail(new Error(err));\n }\n else {\n done.fail(err);\n }\n });\n };\n }\n // Otherwise, return a promise which will resolve when asynchronous activity\n // is finished. This will be correctly consumed by the Mocha framework with\n // it('...', async(myFn)); or can be used in a custom framework.\n // Not using an arrow function to preserve context passed from call site\n return function () {\n return new Promise((finishCallback, failCallback) => {\n runInTestZone(fn, this, finishCallback, failCallback);\n });\n };\n}\nfunction runInTestZone(fn, context, finishCallback, failCallback) {\n const currentZone = Zone.current;\n const AsyncTestZoneSpec = Zone['AsyncTestZoneSpec'];\n if (AsyncTestZoneSpec === undefined) {\n throw new Error('AsyncTestZoneSpec is needed for the async() test helper but could not be found. ' +\n 'Please make sure that your environment includes zone.js/dist/async-test.js');\n }\n const ProxyZoneSpec = Zone['ProxyZoneSpec'];\n if (ProxyZoneSpec === undefined) {\n throw new Error('ProxyZoneSpec is needed for the async() test helper but could not be found. ' +\n 'Please make sure that your environment includes zone.js/dist/proxy.js');\n }\n const proxyZoneSpec = ProxyZoneSpec.get();\n ProxyZoneSpec.assertPresent();\n // We need to create the AsyncTestZoneSpec outside the ProxyZone.\n // If we do it in ProxyZone then we will get to infinite recursion.\n const proxyZone = Zone.current.getZoneWith('ProxyZoneSpec');\n const previousDelegate = proxyZoneSpec.getDelegate();\n proxyZone.parent.run(() => {\n const testZoneSpec = new AsyncTestZoneSpec(() => {\n // Need to restore the original zone.\n currentZone.run(() => {\n if (proxyZoneSpec.getDelegate() == testZoneSpec) {\n // Only reset the zone spec if it's sill this one. Otherwise, assume it's OK.\n proxyZoneSpec.setDelegate(previousDelegate);\n }\n finishCallback();\n });\n }, (error) => {\n // Need to restore the original zone.\n currentZone.run(() => {\n if (proxyZoneSpec.getDelegate() == testZoneSpec) {\n // Only reset the zone spec if it's sill this one. Otherwise, assume it's OK.\n proxyZoneSpec.setDelegate(previousDelegate);\n }\n failCallback(error);\n });\n }, 'test');\n proxyZoneSpec.setDelegate(testZoneSpec);\n });\n return Zone.current.runGuarded(fn, context);\n}\n//# sourceMappingURL=async.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { RendererFactory2, getDebugNode } from '@angular/core';\n/**\n * Fixture for debugging and testing a component.\n *\n * @stable\n */\nexport class ComponentFixture {\n constructor(componentRef, ngZone, _autoDetect) {\n this.componentRef = componentRef;\n this.ngZone = ngZone;\n this._autoDetect = _autoDetect;\n this._isStable = true;\n this._isDestroyed = false;\n this._resolve = null;\n this._promise = null;\n this._onUnstableSubscription = null;\n this._onStableSubscription = null;\n this._onMicrotaskEmptySubscription = null;\n this._onErrorSubscription = null;\n this.changeDetectorRef = componentRef.changeDetectorRef;\n this.elementRef = componentRef.location;\n this.debugElement = getDebugNode(this.elementRef.nativeElement);\n this.componentInstance = componentRef.instance;\n this.nativeElement = this.elementRef.nativeElement;\n this.componentRef = componentRef;\n this.ngZone = ngZone;\n if (ngZone) {\n // Create subscriptions outside the NgZone so that the callbacks run oustide\n // of NgZone.\n ngZone.runOutsideAngular(() => {\n this._onUnstableSubscription =\n ngZone.onUnstable.subscribe({ next: () => { this._isStable = false; } });\n this._onMicrotaskEmptySubscription = ngZone.onMicrotaskEmpty.subscribe({\n next: () => {\n if (this._autoDetect) {\n // Do a change detection run with checkNoChanges set to true to check\n // there are no changes on the second run.\n this.detectChanges(true);\n }\n }\n });\n this._onStableSubscription = ngZone.onStable.subscribe({\n next: () => {\n this._isStable = true;\n // Check whether there is a pending whenStable() completer to resolve.\n if (this._promise !== null) {\n // If so check whether there are no pending macrotasks before resolving.\n // Do this check in the next tick so that ngZone gets a chance to update the state of\n // pending macrotasks.\n scheduleMicroTask(() => {\n if (!ngZone.hasPendingMacrotasks) {\n if (this._promise !== null) {\n this._resolve(true);\n this._resolve = null;\n this._promise = null;\n }\n }\n });\n }\n }\n });\n this._onErrorSubscription =\n ngZone.onError.subscribe({ next: (error) => { throw error; } });\n });\n }\n }\n _tick(checkNoChanges) {\n this.changeDetectorRef.detectChanges();\n if (checkNoChanges) {\n this.checkNoChanges();\n }\n }\n /**\n * Trigger a change detection cycle for the component.\n */\n detectChanges(checkNoChanges = true) {\n if (this.ngZone != null) {\n // Run the change detection inside the NgZone so that any async tasks as part of the change\n // detection are captured by the zone and can be waited for in isStable.\n this.ngZone.run(() => { this._tick(checkNoChanges); });\n }\n else {\n // Running without zone. Just do the change detection.\n this._tick(checkNoChanges);\n }\n }\n /**\n * Do a change detection run to make sure there were no changes.\n */\n checkNoChanges() { this.changeDetectorRef.checkNoChanges(); }\n /**\n * Set whether the fixture should autodetect changes.\n *\n * Also runs detectChanges once so that any existing change is detected.\n */\n autoDetectChanges(autoDetect = true) {\n if (this.ngZone == null) {\n throw new Error('Cannot call autoDetectChanges when ComponentFixtureNoNgZone is set');\n }\n this._autoDetect = autoDetect;\n this.detectChanges();\n }\n /**\n * Return whether the fixture is currently stable or has async tasks that have not been completed\n * yet.\n */\n isStable() { return this._isStable && !this.ngZone.hasPendingMacrotasks; }\n /**\n * Get a promise that resolves when the fixture is stable.\n *\n * This can be used to resume testing after events have triggered asynchronous activity or\n * asynchronous change detection.\n */\n whenStable() {\n if (this.isStable()) {\n return Promise.resolve(false);\n }\n else if (this._promise !== null) {\n return this._promise;\n }\n else {\n this._promise = new Promise(res => { this._resolve = res; });\n return this._promise;\n }\n }\n _getRenderer() {\n if (this._renderer === undefined) {\n this._renderer = this.componentRef.injector.get(RendererFactory2, null);\n }\n return this._renderer;\n }\n /**\n * Get a promise that resolves when the ui state is stable following animations.\n */\n whenRenderingDone() {\n const renderer = this._getRenderer();\n if (renderer && renderer.whenRenderingDone) {\n return renderer.whenRenderingDone();\n }\n return this.whenStable();\n }\n /**\n * Trigger component destruction.\n */\n destroy() {\n if (!this._isDestroyed) {\n this.componentRef.destroy();\n if (this._onUnstableSubscription != null) {\n this._onUnstableSubscription.unsubscribe();\n this._onUnstableSubscription = null;\n }\n if (this._onStableSubscription != null) {\n this._onStableSubscription.unsubscribe();\n this._onStableSubscription = null;\n }\n if (this._onMicrotaskEmptySubscription != null) {\n this._onMicrotaskEmptySubscription.unsubscribe();\n this._onMicrotaskEmptySubscription = null;\n }\n if (this._onErrorSubscription != null) {\n this._onErrorSubscription.unsubscribe();\n this._onErrorSubscription = null;\n }\n this._isDestroyed = true;\n }\n }\n}\nfunction scheduleMicroTask(fn) {\n Zone.current.scheduleMicroTask('scheduleMicrotask', fn);\n}\n//# sourceMappingURL=component_fixture.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst FakeAsyncTestZoneSpec = Zone['FakeAsyncTestZoneSpec'];\nconst ProxyZoneSpec = Zone['ProxyZoneSpec'];\nlet _fakeAsyncTestZoneSpec = null;\n/**\n * Clears out the shared fake async zone for a test.\n * To be called in a global `beforeEach`.\n *\n * @experimental\n */\nexport function resetFakeAsyncZone() {\n _fakeAsyncTestZoneSpec = null;\n ProxyZoneSpec.assertPresent().resetDelegate();\n}\nlet _inFakeAsyncCall = false;\n/**\n * Wraps a function to be executed in the fakeAsync zone:\n * - microtasks are manually executed by calling `flushMicrotasks()`,\n * - timers are synchronous, `tick()` simulates the asynchronous passage of time.\n *\n * If there are any pending timers at the end of the function, an exception will be thrown.\n *\n * Can be used to wrap inject() calls.\n *\n * ## Example\n *\n * {@example core/testing/ts/fake_async.ts region='basic'}\n *\n * @param fn\n * @returns The function wrapped to be executed in the fakeAsync zone\n *\n * @experimental\n */\nexport function fakeAsync(fn) {\n // Not using an arrow function to preserve context passed from call site\n return function (...args) {\n const proxyZoneSpec = ProxyZoneSpec.assertPresent();\n if (_inFakeAsyncCall) {\n throw new Error('fakeAsync() calls can not be nested');\n }\n _inFakeAsyncCall = true;\n try {\n if (!_fakeAsyncTestZoneSpec) {\n if (proxyZoneSpec.getDelegate() instanceof FakeAsyncTestZoneSpec) {\n throw new Error('fakeAsync() calls can not be nested');\n }\n _fakeAsyncTestZoneSpec = new FakeAsyncTestZoneSpec();\n }\n let res;\n const lastProxyZoneSpec = proxyZoneSpec.getDelegate();\n proxyZoneSpec.setDelegate(_fakeAsyncTestZoneSpec);\n try {\n res = fn.apply(this, args);\n flushMicrotasks();\n }\n finally {\n proxyZoneSpec.setDelegate(lastProxyZoneSpec);\n }\n if (_fakeAsyncTestZoneSpec.pendingPeriodicTimers.length > 0) {\n throw new Error(`${_fakeAsyncTestZoneSpec.pendingPeriodicTimers.length} ` +\n `periodic timer(s) still in the queue.`);\n }\n if (_fakeAsyncTestZoneSpec.pendingTimers.length > 0) {\n throw new Error(`${_fakeAsyncTestZoneSpec.pendingTimers.length} timer(s) still in the queue.`);\n }\n return res;\n }\n finally {\n _inFakeAsyncCall = false;\n resetFakeAsyncZone();\n }\n };\n}\nfunction _getFakeAsyncZoneSpec() {\n if (_fakeAsyncTestZoneSpec == null) {\n throw new Error('The code should be running in the fakeAsync zone to call this function');\n }\n return _fakeAsyncTestZoneSpec;\n}\n/**\n * Simulates the asynchronous passage of time for the timers in the fakeAsync zone.\n *\n * The microtasks queue is drained at the very start of this function and after any timer callback\n * has been executed.\n *\n * ## Example\n *\n * {@example core/testing/ts/fake_async.ts region='basic'}\n *\n * @experimental\n */\nexport function tick(millis = 0) {\n _getFakeAsyncZoneSpec().tick(millis);\n}\n/**\n * Simulates the asynchronous passage of time for the timers in the fakeAsync zone by\n * draining the macrotask queue until it is empty. The returned value is the milliseconds\n * of time that would have been elapsed.\n *\n * @param maxTurns\n * @returns The simulated time elapsed, in millis.\n *\n * @experimental\n */\nexport function flush(maxTurns) {\n return _getFakeAsyncZoneSpec().flush(maxTurns);\n}\n/**\n * Discard all remaining periodic tasks.\n *\n * @experimental\n */\nexport function discardPeriodicTasks() {\n const zoneSpec = _getFakeAsyncZoneSpec();\n const pendingTimers = zoneSpec.pendingPeriodicTimers;\n zoneSpec.pendingPeriodicTimers.length = 0;\n}\n/**\n * Flush any pending microtasks.\n *\n * @experimental\n */\nexport function flushMicrotasks() {\n _getFakeAsyncZoneSpec().flushMicrotasks();\n}\n//# sourceMappingURL=fake_async.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Injectable completer that allows signaling completion of an asynchronous test. Used internally.\n */\nexport class AsyncTestCompleter {\n constructor() {\n this._promise = new Promise((res, rej) => {\n this._resolve = res;\n this._reject = rej;\n });\n }\n done(value) { this._resolve(value); }\n fail(error, stackTrace) { this._reject(error); }\n get promise() { return this._promise; }\n}\n//# sourceMappingURL=async_test_completer.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Compiler, Injectable } from '@angular/core';\nfunction unimplemented() {\n throw Error('unimplemented');\n}\n/**\n * Special interface to the compiler only used by testing\n *\n * @experimental\n */\nexport class TestingCompiler extends Compiler {\n get injector() { throw unimplemented(); }\n overrideModule(module, overrides) {\n throw unimplemented();\n }\n overrideDirective(directive, overrides) {\n throw unimplemented();\n }\n overrideComponent(component, overrides) {\n throw unimplemented();\n }\n overridePipe(directive, overrides) {\n throw unimplemented();\n }\n /**\n * Allows to pass the compile summary from AOT compilation to the JIT compiler,\n * so that it can use the code generated by AOT.\n */\n loadAotSummaries(summaries) { throw unimplemented(); }\n /**\n * Gets the component factory for the given component.\n * This assumes that the component has been compiled before calling this call using\n * `compileModuleAndAllComponents*`.\n */\n getComponentFactory(component) { throw unimplemented(); }\n /**\n * Returns the component type that is stored in the given error.\n * This can be used for errors created by compileModule...\n */\n getComponentFromError(error) { throw unimplemented(); }\n}\nTestingCompiler.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nTestingCompiler.ctorParameters = () => [];\n/**\n * A factory for creating a Compiler\n *\n * @experimental\n */\nexport class TestingCompilerFactory {\n}\n//# sourceMappingURL=test_compiler.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ApplicationInitStatus, Component, InjectionToken, Injector, NgModule, NgZone, Optional, SkipSelf, ɵclearOverrides as clearOverrides, ɵoverrideComponentView as overrideComponentView, ɵoverrideProvider as overrideProvider, ɵstringify as stringify } from '@angular/core';\nimport { AsyncTestCompleter } from './async_test_completer';\nimport { ComponentFixture } from './component_fixture';\nimport { TestingCompilerFactory } from './test_compiler';\nconst UNDEFINED = new Object();\n/**\n * An abstract class for inserting the root test component element in a platform independent way.\n *\n * @experimental\n */\nexport class TestComponentRenderer {\n insertRootElement(rootElementId) { }\n}\nlet _nextRootElementId = 0;\n/**\n * @experimental\n */\nexport const ComponentFixtureAutoDetect = new InjectionToken('ComponentFixtureAutoDetect');\n/**\n * @experimental\n */\nexport const ComponentFixtureNoNgZone = new InjectionToken('ComponentFixtureNoNgZone');\n/**\n * @whatItDoes Configures and initializes environment for unit testing and provides methods for\n * creating components and services in unit tests.\n * @description\n *\n * TestBed is the primary api for writing unit tests for Angular applications and libraries.\n *\n * @stable\n */\nexport class TestBed {\n constructor() {\n this._instantiated = false;\n this._compiler = null;\n this._moduleRef = null;\n this._moduleFactory = null;\n this._compilerOptions = [];\n this._moduleOverrides = [];\n this._componentOverrides = [];\n this._directiveOverrides = [];\n this._pipeOverrides = [];\n this._providers = [];\n this._declarations = [];\n this._imports = [];\n this._schemas = [];\n this._activeFixtures = [];\n this._testEnvAotSummaries = () => [];\n this._aotSummaries = [];\n this._templateOverrides = [];\n this.platform = null;\n this.ngModule = null;\n }\n /**\n * Initialize the environment for testing with a compiler factory, a PlatformRef, and an\n * angular module. These are common to every test in the suite.\n *\n * This may only be called once, to set up the common providers for the current test\n * suite on the current platform. If you absolutely need to change the providers,\n * first use `resetTestEnvironment`.\n *\n * Test modules and platforms for individual platforms are available from\n * '@angular/<platform_name>/testing'.\n *\n * @experimental\n */\n static initTestEnvironment(ngModule, platform, aotSummaries) {\n const testBed = getTestBed();\n testBed.initTestEnvironment(ngModule, platform, aotSummaries);\n return testBed;\n }\n /**\n * Reset the providers for the test injector.\n *\n * @experimental\n */\n static resetTestEnvironment() { getTestBed().resetTestEnvironment(); }\n static resetTestingModule() {\n getTestBed().resetTestingModule();\n return TestBed;\n }\n /**\n * Allows overriding default compiler providers and settings\n * which are defined in test_injector.js\n */\n static configureCompiler(config) {\n getTestBed().configureCompiler(config);\n return TestBed;\n }\n /**\n * Allows overriding default providers, directives, pipes, modules of the test injector,\n * which are defined in test_injector.js\n */\n static configureTestingModule(moduleDef) {\n getTestBed().configureTestingModule(moduleDef);\n return TestBed;\n }\n /**\n * Compile components with a `templateUrl` for the test's NgModule.\n * It is necessary to call this function\n * as fetching urls is asynchronous.\n */\n static compileComponents() { return getTestBed().compileComponents(); }\n static overrideModule(ngModule, override) {\n getTestBed().overrideModule(ngModule, override);\n return TestBed;\n }\n static overrideComponent(component, override) {\n getTestBed().overrideComponent(component, override);\n return TestBed;\n }\n static overrideDirective(directive, override) {\n getTestBed().overrideDirective(directive, override);\n return TestBed;\n }\n static overridePipe(pipe, override) {\n getTestBed().overridePipe(pipe, override);\n return TestBed;\n }\n static overrideTemplate(component, template) {\n getTestBed().overrideComponent(component, { set: { template, templateUrl: (null) } });\n return TestBed;\n }\n /**\n * Overrides the template of the given component, compiling the template\n * in the context of the TestingModule.\n *\n * Note: This works for JIT and AOTed components as well.\n */\n static overrideTemplateUsingTestingModule(component, template) {\n getTestBed().overrideTemplateUsingTestingModule(component, template);\n return TestBed;\n }\n static overrideProvider(token, provider) {\n getTestBed().overrideProvider(token, provider);\n return TestBed;\n }\n static deprecatedOverrideProvider(token, provider) {\n getTestBed().deprecatedOverrideProvider(token, provider);\n return TestBed;\n }\n static get(token, notFoundValue = Injector.THROW_IF_NOT_FOUND) {\n return getTestBed().get(token, notFoundValue);\n }\n static createComponent(component) {\n return getTestBed().createComponent(component);\n }\n /**\n * Initialize the environment for testing with a compiler factory, a PlatformRef, and an\n * angular module. These are common to every test in the suite.\n *\n * This may only be called once, to set up the common providers for the current test\n * suite on the current platform. If you absolutely need to change the providers,\n * first use `resetTestEnvironment`.\n *\n * Test modules and platforms for individual platforms are available from\n * '@angular/<platform_name>/testing'.\n *\n * @experimental\n */\n initTestEnvironment(ngModule, platform, aotSummaries) {\n if (this.platform || this.ngModule) {\n throw new Error('Cannot set base providers because it has already been called');\n }\n this.platform = platform;\n this.ngModule = ngModule;\n if (aotSummaries) {\n this._testEnvAotSummaries = aotSummaries;\n }\n }\n /**\n * Reset the providers for the test injector.\n *\n * @experimental\n */\n resetTestEnvironment() {\n this.resetTestingModule();\n this.platform = (null);\n this.ngModule = (null);\n this._testEnvAotSummaries = () => [];\n }\n resetTestingModule() {\n clearOverrides();\n this._aotSummaries = [];\n this._templateOverrides = [];\n this._compiler = (null);\n this._moduleOverrides = [];\n this._componentOverrides = [];\n this._directiveOverrides = [];\n this._pipeOverrides = [];\n this._moduleRef = (null);\n this._moduleFactory = (null);\n this._compilerOptions = [];\n this._providers = [];\n this._declarations = [];\n this._imports = [];\n this._schemas = [];\n this._instantiated = false;\n this._activeFixtures.forEach((fixture) => {\n try {\n fixture.destroy();\n }\n catch (e) {\n console.error('Error during cleanup of component', {\n component: fixture.componentInstance,\n stacktrace: e,\n });\n }\n });\n this._activeFixtures = [];\n }\n configureCompiler(config) {\n this._assertNotInstantiated('TestBed.configureCompiler', 'configure the compiler');\n this._compilerOptions.push(config);\n }\n configureTestingModule(moduleDef) {\n this._assertNotInstantiated('TestBed.configureTestingModule', 'configure the test module');\n if (moduleDef.providers) {\n this._providers.push(...moduleDef.providers);\n }\n if (moduleDef.declarations) {\n this._declarations.push(...moduleDef.declarations);\n }\n if (moduleDef.imports) {\n this._imports.push(...moduleDef.imports);\n }\n if (moduleDef.schemas) {\n this._schemas.push(...moduleDef.schemas);\n }\n if (moduleDef.aotSummaries) {\n this._aotSummaries.push(moduleDef.aotSummaries);\n }\n }\n compileComponents() {\n if (this._moduleFactory || this._instantiated) {\n return Promise.resolve(null);\n }\n const moduleType = this._createCompilerAndModule();\n return this._compiler.compileModuleAndAllComponentsAsync(moduleType)\n .then((moduleAndComponentFactories) => {\n this._moduleFactory = moduleAndComponentFactories.ngModuleFactory;\n });\n }\n _initIfNeeded() {\n if (this._instantiated) {\n return;\n }\n if (!this._moduleFactory) {\n try {\n const moduleType = this._createCompilerAndModule();\n this._moduleFactory =\n this._compiler.compileModuleAndAllComponentsSync(moduleType).ngModuleFactory;\n }\n catch (e) {\n const errorCompType = this._compiler.getComponentFromError(e);\n if (errorCompType) {\n throw new Error(`This test module uses the component ${stringify(errorCompType)} which is using a \"templateUrl\" or \"styleUrls\", but they were never compiled. ` +\n `Please call \"TestBed.compileComponents\" before your test.`);\n }\n else {\n throw e;\n }\n }\n }\n for (const { component, templateOf } of this._templateOverrides) {\n const compFactory = this._compiler.getComponentFactory(templateOf);\n overrideComponentView(component, compFactory);\n }\n const ngZone = new NgZone({ enableLongStackTrace: true });\n const providers = [{ provide: NgZone, useValue: ngZone }];\n const ngZoneInjector = Injector.create({\n providers: providers,\n parent: this.platform.injector,\n name: this._moduleFactory.moduleType.name\n });\n this._moduleRef = this._moduleFactory.create(ngZoneInjector);\n // ApplicationInitStatus.runInitializers() is marked @internal to core. So casting to any\n // before accessing it.\n // ApplicationInitStatus.runInitializers() is marked @internal to core. So casting to any\n // before accessing it.\n this._moduleRef.injector.get(ApplicationInitStatus).runInitializers();\n this._instantiated = true;\n }\n _createCompilerAndModule() {\n const providers = this._providers.concat([{ provide: TestBed, useValue: this }]);\n const declarations = [...this._declarations, ...this._templateOverrides.map(entry => entry.templateOf)];\n const imports = [this.ngModule, this._imports];\n const schemas = this._schemas;\n class DynamicTestModule {\n }\n DynamicTestModule.decorators = [\n { type: NgModule, args: [{ providers, declarations, imports, schemas },] },\n ];\n /** @nocollapse */\n DynamicTestModule.ctorParameters = () => [];\n const compilerFactory = this.platform.injector.get(TestingCompilerFactory);\n this._compiler = compilerFactory.createTestingCompiler(this._compilerOptions);\n for (const summary of [this._testEnvAotSummaries, ...this._aotSummaries]) {\n this._compiler.loadAotSummaries(summary);\n }\n this._moduleOverrides.forEach((entry) => this._compiler.overrideModule(entry[0], entry[1]));\n this._componentOverrides.forEach((entry) => this._compiler.overrideComponent(entry[0], entry[1]));\n this._directiveOverrides.forEach((entry) => this._compiler.overrideDirective(entry[0], entry[1]));\n this._pipeOverrides.forEach((entry) => this._compiler.overridePipe(entry[0], entry[1]));\n return DynamicTestModule;\n }\n _assertNotInstantiated(methodName, methodDescription) {\n if (this._instantiated) {\n throw new Error(`Cannot ${methodDescription} when the test module has already been instantiated. ` +\n `Make sure you are not using \\`inject\\` before \\`${methodName}\\`.`);\n }\n }\n get(token, notFoundValue = Injector.THROW_IF_NOT_FOUND) {\n this._initIfNeeded();\n if (token === TestBed) {\n return this;\n }\n // Tests can inject things from the ng module and from the compiler,\n // but the ng module can't inject things from the compiler and vice versa.\n const result = this._moduleRef.injector.get(token, UNDEFINED);\n return result === UNDEFINED ? this._compiler.injector.get(token, notFoundValue) : result;\n }\n execute(tokens, fn, context) {\n this._initIfNeeded();\n const params = tokens.map(t => this.get(t));\n return fn.apply(context, params);\n }\n overrideModule(ngModule, override) {\n this._assertNotInstantiated('overrideModule', 'override module metadata');\n this._moduleOverrides.push([ngModule, override]);\n }\n overrideComponent(component, override) {\n this._assertNotInstantiated('overrideComponent', 'override component metadata');\n this._componentOverrides.push([component, override]);\n }\n overrideDirective(directive, override) {\n this._assertNotInstantiated('overrideDirective', 'override directive metadata');\n this._directiveOverrides.push([directive, override]);\n }\n overridePipe(pipe, override) {\n this._assertNotInstantiated('overridePipe', 'override pipe metadata');\n this._pipeOverrides.push([pipe, override]);\n }\n overrideProvider(token, provider) {\n this.overrideProviderImpl(token, provider);\n }\n deprecatedOverrideProvider(token, provider) {\n this.overrideProviderImpl(token, provider, /* deprecated */ /* deprecated */ true);\n }\n overrideProviderImpl(token, provider, deprecated = false) {\n let flags = 0;\n let value;\n if (provider.useFactory) {\n flags |= 1024 /* TypeFactoryProvider */;\n value = provider.useFactory;\n }\n else {\n flags |= 256 /* TypeValueProvider */;\n value = provider.useValue;\n }\n const deps = (provider.deps || []).map((dep) => {\n let depFlags = 0 /* None */;\n let depToken;\n if (Array.isArray(dep)) {\n dep.forEach((entry) => {\n if (entry instanceof Optional) {\n depFlags |= 2 /* Optional */;\n }\n else if (entry instanceof SkipSelf) {\n depFlags |= 1 /* SkipSelf */;\n }\n else {\n depToken = entry;\n }\n });\n }\n else {\n depToken = dep;\n }\n return [depFlags, depToken];\n });\n overrideProvider({ token, flags, deps, value, deprecatedBehavior: deprecated });\n }\n overrideTemplateUsingTestingModule(component, template) {\n this._assertNotInstantiated('overrideTemplateUsingTestingModule', 'override template');\n class OverrideComponent {\n }\n OverrideComponent.decorators = [\n { type: Component, args: [{ selector: 'empty', template },] },\n ];\n /** @nocollapse */\n OverrideComponent.ctorParameters = () => [];\n this._templateOverrides.push({ component, templateOf: OverrideComponent });\n }\n createComponent(component) {\n this._initIfNeeded();\n const componentFactory = this._compiler.getComponentFactory(component);\n if (!componentFactory) {\n throw new Error(`Cannot create the component ${stringify(component)} as it was not imported into the testing module!`);\n }\n const noNgZone = this.get(ComponentFixtureNoNgZone, false);\n const autoDetect = this.get(ComponentFixtureAutoDetect, false);\n const ngZone = noNgZone ? null : this.get(NgZone, null);\n const testComponentRenderer = this.get(TestComponentRenderer);\n const rootElId = `root${_nextRootElementId++}`;\n testComponentRenderer.insertRootElement(rootElId);\n const initComponent = () => {\n const componentRef = componentFactory.create(Injector.NULL, [], `#${rootElId}`, this._moduleRef);\n return new ComponentFixture(componentRef, ngZone, autoDetect);\n };\n const fixture = !ngZone ? initComponent() : ngZone.run(initComponent);\n this._activeFixtures.push(fixture);\n return fixture;\n }\n}\nlet _testBed = (null);\n/**\n * @experimental\n */\nexport function getTestBed() {\n return _testBed = _testBed || new TestBed();\n}\n/**\n * Allows injecting dependencies in `beforeEach()` and `it()`.\n *\n * Example:\n *\n * ```\n * beforeEach(inject([Dependency, AClass], (dep, object) => {\n * // some code that uses `dep` and `object`\n * // ...\n * }));\n *\n * it('...', inject([AClass], (object) => {\n * object.doSomething();\n * expect(...);\n * })\n * ```\n *\n * Notes:\n * - inject is currently a function because of some Traceur limitation the syntax should\n * eventually\n * becomes `it('...', @Inject (object: AClass, async: AsyncTestCompleter) => { ... });`\n *\n * @stable\n */\nexport function inject(tokens, fn) {\n const testBed = getTestBed();\n if (tokens.indexOf(AsyncTestCompleter) >= 0) {\n // Not using an arrow function to preserve context passed from call site\n return function () {\n // Return an async test method that returns a Promise if AsyncTestCompleter is one of\n // the injected tokens.\n return testBed.compileComponents().then(() => {\n const completer = testBed.get(AsyncTestCompleter);\n testBed.execute(tokens, fn, this);\n return completer.promise;\n });\n };\n }\n else {\n // Not using an arrow function to preserve context passed from call site\n return function () { return testBed.execute(tokens, fn, this); };\n }\n}\n/**\n * @experimental\n */\nexport class InjectSetupWrapper {\n constructor(_moduleDef) {\n this._moduleDef = _moduleDef;\n }\n _addModule() {\n const moduleDef = this._moduleDef();\n if (moduleDef) {\n getTestBed().configureTestingModule(moduleDef);\n }\n }\n inject(tokens, fn) {\n const self = this;\n // Not using an arrow function to preserve context passed from call site\n return function () {\n self._addModule();\n return inject(tokens, fn).call(this);\n };\n }\n}\nexport function withModule(moduleDef, fn) {\n if (fn) {\n // Not using an arrow function to preserve context passed from call site\n return function () {\n const testBed = getTestBed();\n if (moduleDef) {\n testBed.configureTestingModule(moduleDef);\n }\n return fn.apply(this);\n };\n }\n return new InjectSetupWrapper(() => moduleDef);\n}\n//# sourceMappingURL=test_bed.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { resetFakeAsyncZone } from './fake_async';\nimport { TestBed } from './test_bed';\nconst _global = (typeof window === 'undefined' ? global : window);\n// Reset the test providers and the fake async zone before each test.\nif (_global.beforeEach) {\n _global.beforeEach(() => {\n TestBed.resetTestingModule();\n resetFakeAsyncZone();\n });\n}\n// TODO(juliemr): remove this, only used because we need to export something to have compilation\n// work.\nexport const __core_private_testing_placeholder__ = '';\n//# sourceMappingURL=before_each.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport { TestingCompiler as ɵTestingCompiler, TestingCompilerFactory as ɵTestingCompilerFactory } from './test_compiler';\n//# sourceMappingURL=private_export_testing.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './async';\nexport * from './component_fixture';\nexport * from './fake_async';\nexport * from './test_bed';\nexport * from './before_each';\nexport * from './private_export_testing';\n//# sourceMappingURL=testing.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport * from './src/testing';\n// This file only reexports content of the `src` folder. Keep it that way.\n//# sourceMappingURL=public_api.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public_api';\n//# sourceMappingURL=testing.js.map"],"names":["clearOverrides","stringify","overrideComponentView","overrideProvider","_global"],"mappings":";;;;;;;AAAA;;;;;;;AAOA,MAAM,OAAO,IAAI,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;;;;;;;;;;;;;;;;;;AAkBlE,AAAO,SAAS,KAAK,CAAC,EAAE,EAAE;;;IAGtB,IAAI,OAAO,CAAC,OAAO,EAAE;;QAEjB,OAAO,UAAU,IAAI,EAAE;YACnB,IAAI,CAAC,IAAI,EAAE;;;gBAGP,IAAI,GAAG,YAAY,GAAG,CAAC;gBACvB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;aACzC;YACD,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK;gBACnC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;oBACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;iBACpC;qBACI;oBACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBAClB;aACJ,CAAC,CAAC;SACN,CAAC;KACL;;;;;IAKD,OAAO,YAAY;QACf,OAAO,IAAI,OAAO,CAAC,CAAC,cAAc,EAAE,YAAY,KAAK;YACjD,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;SACzD,CAAC,CAAC;KACN,CAAC;CACL;AACD,SAAS,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE;IAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;IACjC,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpD,IAAI,iBAAiB,KAAK,SAAS,EAAE;QACjC,MAAM,IAAI,KAAK,CAAC,kFAAkF;YAC9F,4EAA4E,CAAC,CAAC;KACrF;IACD,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5C,IAAI,aAAa,KAAK,SAAS,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,8EAA8E;YAC1F,uEAAuE,CAAC,CAAC;KAChF;IACD,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC;IAC1C,aAAa,CAAC,aAAa,EAAE,CAAC;;;IAG9B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;IACrD,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM;QACvB,MAAM,YAAY,GAAG,IAAI,iBAAiB,CAAC,MAAM;;YAE7C,WAAW,CAAC,GAAG,CAAC,MAAM;gBAClB,IAAI,aAAa,CAAC,WAAW,EAAE,IAAI,YAAY,EAAE;;oBAE7C,aAAa,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;iBAC/C;gBACD,cAAc,EAAE,CAAC;aACpB,CAAC,CAAC;SACN,EAAE,CAAC,KAAK,KAAK;;YAEV,WAAW,CAAC,GAAG,CAAC,MAAM;gBAClB,IAAI,aAAa,CAAC,WAAW,EAAE,IAAI,YAAY,EAAE;;oBAE7C,aAAa,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;iBAC/C;gBACD,YAAY,CAAC,KAAK,CAAC,CAAC;aACvB,CAAC,CAAC;SACN,EAAE,MAAM,CAAC,CAAC;QACX,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;KAC3C,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;CAC/C;;AClGD;;;;;;;AAOA,AACA;;;;;AAKA,AAAO,MAAM,gBAAgB,CAAC;IAC1B,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE;QAC3C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC;QAC1C,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC,iBAAiB,CAAC;QACxD,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChE,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC,QAAQ,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,MAAM,EAAE;;;YAGR,MAAM,CAAC,iBAAiB,CAAC,MAAM;gBAC3B,IAAI,CAAC,uBAAuB;oBACxB,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7E,IAAI,CAAC,6BAA6B,GAAG,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC;oBACnE,IAAI,EAAE,MAAM;wBACR,IAAI,IAAI,CAAC,WAAW,EAAE;;;4BAGlB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;yBAC5B;qBACJ;iBACJ,CAAC,CAAC;gBACH,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;oBACnD,IAAI,EAAE,MAAM;wBACR,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;;wBAEtB,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;;;;4BAIxB,iBAAiB,CAAC,MAAM;gCACpB,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE;oCAC9B,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;wCACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wCACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;wCACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;qCACxB;iCACJ;6BACJ,CAAC,CAAC;yBACN;qBACJ;iBACJ,CAAC,CAAC;gBACH,IAAI,CAAC,oBAAoB;oBACrB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;aACvE,CAAC,CAAC;SACN;KACJ;IACD,KAAK,CAAC,cAAc,EAAE;QAClB,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,cAAc,EAAE;YAChB,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;KACJ;;;;IAID,aAAa,CAAC,cAAc,GAAG,IAAI,EAAE;QACjC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;;;YAGrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;SAC1D;aACI;;YAED,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;SAC9B;KACJ;;;;IAID,cAAc,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC,EAAE;;;;;;IAM7D,iBAAiB,CAAC,UAAU,GAAG,IAAI,EAAE;QACjC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;SACzF;QACD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,aAAa,EAAE,CAAC;KACxB;;;;;IAKD,QAAQ,GAAG,EAAE,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE;;;;;;;IAO1E,UAAU,GAAG;QACT,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACjB,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACjC;aACI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC;SACxB;aACI;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7D,OAAO,IAAI,CAAC,QAAQ,CAAC;SACxB;KACJ;IACD,YAAY,GAAG;QACX,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;SAC3E;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;;;;IAID,iBAAiB,GAAG;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,IAAI,QAAQ,IAAI,QAAQ,CAAC,iBAAiB,EAAE;YACxC,OAAO,QAAQ,CAAC,iBAAiB,EAAE,CAAC;SACvC;QACD,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;KAC5B;;;;IAID,OAAO,GAAG;QACN,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,uBAAuB,IAAI,IAAI,EAAE;gBACtC,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC;gBAC3C,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;aACvC;YACD,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,EAAE;gBACpC,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;gBACzC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;aACrC;YACD,IAAI,IAAI,CAAC,6BAA6B,IAAI,IAAI,EAAE;gBAC5C,IAAI,CAAC,6BAA6B,CAAC,WAAW,EAAE,CAAC;gBACjD,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC;aAC7C;YACD,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,EAAE;gBACnC,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;gBACxC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;aACpC;YACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC5B;KACJ;CACJ;AACD,SAAS,iBAAiB,CAAC,EAAE,EAAE;IAC3B,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;CAC3D;;AChLD;;;;;;;AAOA,MAAM,qBAAqB,GAAG,IAAI,CAAC,uBAAuB,CAAC,CAAC;AAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;AAC5C,IAAI,sBAAsB,GAAG,IAAI,CAAC;;;;;;;AAOlC,AAAO,SAAS,kBAAkB,GAAG;IACjC,sBAAsB,GAAG,IAAI,CAAC;IAC9B,aAAa,CAAC,aAAa,EAAE,CAAC,aAAa,EAAE,CAAC;CACjD;AACD,IAAI,gBAAgB,GAAG,KAAK,CAAC;;;;;;;;;;;;;;;;;;;AAmB7B,AAAO,SAAS,SAAS,CAAC,EAAE,EAAE;;IAE1B,OAAO,UAAU,GAAG,IAAI,EAAE;QACtB,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,EAAE,CAAC;QACpD,IAAI,gBAAgB,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;SAC1D;QACD,gBAAgB,GAAG,IAAI,CAAC;QACxB,IAAI;YACA,IAAI,CAAC,sBAAsB,EAAE;gBACzB,IAAI,aAAa,CAAC,WAAW,EAAE,YAAY,qBAAqB,EAAE;oBAC9D,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;iBAC1D;gBACD,sBAAsB,GAAG,IAAI,qBAAqB,EAAE,CAAC;aACxD;YACD,IAAI,GAAG,CAAC;YACR,MAAM,iBAAiB,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;YACtD,aAAa,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;YAClD,IAAI;gBACA,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC3B,eAAe,EAAE,CAAC;aACrB;oBACO;gBACJ,aAAa,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;aAChD;YACD,IAAI,sBAAsB,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzD,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;oBACrE,CAAC,qCAAqC,CAAC,CAAC,CAAC;aAChD;YACD,IAAI,sBAAsB,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjD,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,aAAa,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC;aAClG;YACD,OAAO,GAAG,CAAC;SACd;gBACO;YACJ,gBAAgB,GAAG,KAAK,CAAC;YACzB,kBAAkB,EAAE,CAAC;SACxB;KACJ,CAAC;CACL;AACD,SAAS,qBAAqB,GAAG;IAC7B,IAAI,sBAAsB,IAAI,IAAI,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;KAC7F;IACD,OAAO,sBAAsB,CAAC;CACjC;;;;;;;;;;;;;AAaD,AAAO,SAAS,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;IAC7B,qBAAqB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;CACxC;;;;;;;;;;;AAWD,AAAO,SAAS,KAAK,CAAC,QAAQ,EAAE;IAC5B,OAAO,qBAAqB,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;CAClD;;;;;;AAMD,AAAO,SAAS,oBAAoB,GAAG;IACnC,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;IACzC,MAAM,aAAa,GAAG,QAAQ,CAAC,qBAAqB,CAAC;IACrD,QAAQ,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;CAC7C;;;;;;AAMD,AAAO,SAAS,eAAe,GAAG;IAC9B,qBAAqB,EAAE,CAAC,eAAe,EAAE,CAAC;CAC7C;;AClID;;;;;;;;;;AAUA,AAAO,MAAM,kBAAkB,CAAC;IAC5B,WAAW,GAAG;QACV,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;YACtC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACpB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;SACtB,CAAC,CAAC;KACN;IACD,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;IACrC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;IAChD,IAAI,OAAO,GAAG,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE;CAC1C;;ACpBD;;;;;;;AAOA,AACA,SAAS,aAAa,GAAG;IACrB,MAAM,KAAK,CAAC,eAAe,CAAC,CAAC;CAChC;;;;;;AAMD,AAAO,MAAM,eAAe,SAAS,QAAQ,CAAC;IAC1C,IAAI,QAAQ,GAAG,EAAE,MAAM,aAAa,EAAE,CAAC,EAAE;IACzC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE;QAC9B,MAAM,aAAa,EAAE,CAAC;KACzB;IACD,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE;QACpC,MAAM,aAAa,EAAE,CAAC;KACzB;IACD,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE;QACpC,MAAM,aAAa,EAAE,CAAC;KACzB;IACD,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE;QAC/B,MAAM,aAAa,EAAE,CAAC;KACzB;;;;;IAKD,gBAAgB,CAAC,SAAS,EAAE,EAAE,MAAM,aAAa,EAAE,CAAC,EAAE;;;;;;IAMtD,mBAAmB,CAAC,SAAS,EAAE,EAAE,MAAM,aAAa,EAAE,CAAC,EAAE;;;;;IAKzD,qBAAqB,CAAC,KAAK,EAAE,EAAE,MAAM,aAAa,EAAE,CAAC,EAAE;CAC1D;AACD,eAAe,CAAC,UAAU,GAAG;IACzB,EAAE,IAAI,EAAE,UAAU,EAAE;CACvB,CAAC;;AAEF,eAAe,CAAC,cAAc,GAAG,MAAM,EAAE,CAAC;;;;;;AAM1C,AAAO,MAAM,sBAAsB,CAAC;CACnC;;AC1DD;;;;;;;AAOA,AAIA,MAAM,SAAS,GAAG,IAAI,MAAM,EAAE,CAAC;;;;;;AAM/B,AAAO,MAAM,qBAAqB,CAAC;IAC/B,iBAAiB,CAAC,aAAa,EAAE,GAAG;CACvC;AACD,IAAI,kBAAkB,GAAG,CAAC,CAAC;;;;AAI3B,AAAO,MAAM,0BAA0B,GAAG,IAAI,cAAc,CAAC,4BAA4B,CAAC,CAAC;;;;AAI3F,AAAO,MAAM,wBAAwB,GAAG,IAAI,cAAc,CAAC,0BAA0B,CAAC,CAAC;;;;;;;;;;AAUvF,AAAO,MAAM,OAAO,CAAC;IACjB,WAAW,GAAG;QACV,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,oBAAoB,GAAG,MAAM,EAAE,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;KACxB;;;;;;;;;;;;;;IAcD,OAAO,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE;QACzD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAC7B,OAAO,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC9D,OAAO,OAAO,CAAC;KAClB;;;;;;IAMD,OAAO,oBAAoB,GAAG,EAAE,UAAU,EAAE,CAAC,oBAAoB,EAAE,CAAC,EAAE;IACtE,OAAO,kBAAkB,GAAG;QACxB,UAAU,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC;KAClB;;;;;IAKD,OAAO,iBAAiB,CAAC,MAAM,EAAE;QAC7B,UAAU,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,OAAO,CAAC;KAClB;;;;;IAKD,OAAO,sBAAsB,CAAC,SAAS,EAAE;QACrC,UAAU,EAAE,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,OAAO,CAAC;KAClB;;;;;;IAMD,OAAO,iBAAiB,GAAG,EAAE,OAAO,UAAU,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE;IACvE,OAAO,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE;QACtC,UAAU,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC;KAClB;IACD,OAAO,iBAAiB,CAAC,SAAS,EAAE,QAAQ,EAAE;QAC1C,UAAU,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC;KAClB;IACD,OAAO,iBAAiB,CAAC,SAAS,EAAE,QAAQ,EAAE;QAC1C,UAAU,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC;KAClB;IACD,OAAO,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE;QAChC,UAAU,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC;KAClB;IACD,OAAO,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE;QACzC,UAAU,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtF,OAAO,OAAO,CAAC;KAClB;;;;;;;IAOD,OAAO,kCAAkC,CAAC,SAAS,EAAE,QAAQ,EAAE;QAC3D,UAAU,EAAE,CAAC,kCAAkC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC;KAClB;IACD,OAAO,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE;QACrC,UAAU,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/C,OAAO,OAAO,CAAC;KAClB;IACD,OAAO,0BAA0B,CAAC,KAAK,EAAE,QAAQ,EAAE;QAC/C,UAAU,EAAE,CAAC,0BAA0B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACzD,OAAO,OAAO,CAAC;KAClB;IACD,OAAO,GAAG,CAAC,KAAK,EAAE,aAAa,GAAG,QAAQ,CAAC,kBAAkB,EAAE;QAC3D,OAAO,UAAU,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;KACjD;IACD,OAAO,eAAe,CAAC,SAAS,EAAE;QAC9B,OAAO,UAAU,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;KAClD;;;;;;;;;;;;;;IAcD,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE;QAClD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;SACnF;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,YAAY,EAAE;YACd,IAAI,CAAC,oBAAoB,GAAG,YAAY,CAAC;SAC5C;KACJ;;;;;;IAMD,oBAAoB,GAAG;QACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,oBAAoB,GAAG,MAAM,EAAE,CAAC;KACxC;IACD,kBAAkB,GAAG;QACjBA,eAAc,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK;YACtC,IAAI;gBACA,OAAO,CAAC,OAAO,EAAE,CAAC;aACrB;YACD,OAAO,CAAC,EAAE;gBACN,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE;oBAC/C,SAAS,EAAE,OAAO,CAAC,iBAAiB;oBACpC,UAAU,EAAE,CAAC;iBAChB,CAAC,CAAC;aACN;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC7B;IACD,iBAAiB,CAAC,MAAM,EAAE;QACtB,IAAI,CAAC,sBAAsB,CAAC,2BAA2B,EAAE,wBAAwB,CAAC,CAAC;QACnF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACtC;IACD,sBAAsB,CAAC,SAAS,EAAE;QAC9B,IAAI,CAAC,sBAAsB,CAAC,gCAAgC,EAAE,2BAA2B,CAAC,CAAC;QAC3F,IAAI,SAAS,CAAC,SAAS,EAAE;YACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;SAChD;QACD,IAAI,SAAS,CAAC,YAAY,EAAE;YACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;SACtD;QACD,IAAI,SAAS,CAAC,OAAO,EAAE;YACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;SAC5C;QACD,IAAI,SAAS,CAAC,OAAO,EAAE;YACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;SAC5C;QACD,IAAI,SAAS,CAAC,YAAY,EAAE;YACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;SACnD;KACJ;IACD,iBAAiB,GAAG;QAChB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,EAAE;YAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAChC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC,SAAS,CAAC,kCAAkC,CAAC,UAAU,CAAC;aAC/D,IAAI,CAAC,CAAC,2BAA2B,KAAK;YACvC,IAAI,CAAC,cAAc,GAAG,2BAA2B,CAAC,eAAe,CAAC;SACrE,CAAC,CAAC;KACN;IACD,aAAa,GAAG;QACZ,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO;SACV;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,IAAI;gBACA,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBACnD,IAAI,CAAC,cAAc;oBACf,IAAI,CAAC,SAAS,CAAC,iCAAiC,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC;aACpF;YACD,OAAO,CAAC,EAAE;gBACN,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC9D,IAAI,aAAa,EAAE;oBACf,MAAM,IAAI,KAAK,CAAC,CAAC,oCAAoC,EAAEC,UAAS,CAAC,aAAa,CAAC,CAAC,8EAA8E,CAAC;wBAC3J,CAAC,yDAAyD,CAAC,CAAC,CAAC;iBACpE;qBACI;oBACD,MAAM,CAAC,CAAC;iBACX;aACJ;SACJ;QACD,KAAK,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YACnEC,sBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;SACjD;QACD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1D,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;YACnC,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;YAC9B,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI;SAC5C,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;;;;;QAK7D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,eAAe,EAAE,CAAC;QACtE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;KAC7B;IACD,wBAAwB,GAAG;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACjF,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QACxG,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,MAAM,iBAAiB,CAAC;SACvB;QACD,iBAAiB,CAAC,UAAU,GAAG;YAC3B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;SAC7E,CAAC;;QAEF,iBAAiB,CAAC,cAAc,GAAG,MAAM,EAAE,CAAC;QAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAC3E,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC9E,KAAK,MAAM,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE;YACtE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;SAC5C;QACD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,OAAO,iBAAiB,CAAC;KAC5B;IACD,sBAAsB,CAAC,UAAU,EAAE,iBAAiB,EAAE;QAClD,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,iBAAiB,CAAC,qDAAqD,CAAC;gBAC9F,CAAC,gDAAgD,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;SAC3E;KACJ;IACD,GAAG,CAAC,KAAK,EAAE,aAAa,GAAG,QAAQ,CAAC,kBAAkB,EAAE;QACpD,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,KAAK,KAAK,OAAO,EAAE;YACnB,OAAO,IAAI,CAAC;SACf;;;QAGD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC9D,OAAO,MAAM,KAAK,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,GAAG,MAAM,CAAC;KAC5F;IACD,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE;QACzB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KACpC;IACD,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE;QAC/B,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;QAC1E,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;KACpD;IACD,iBAAiB,CAAC,SAAS,EAAE,QAAQ,EAAE;QACnC,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,6BAA6B,CAAC,CAAC;QAChF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;KACxD;IACD,iBAAiB,CAAC,SAAS,EAAE,QAAQ,EAAE;QACnC,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,6BAA6B,CAAC,CAAC;QAChF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;KACxD;IACD,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE;QACzB,IAAI,CAAC,sBAAsB,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;QACtE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;KAC9C;IACD,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE;QAC9B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;KAC9C;IACD,0BAA0B,CAAC,KAAK,EAAE,QAAQ,EAAE;QACxC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,oCAAoC,IAAI,CAAC,CAAC;KACtF;IACD,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,GAAG,KAAK,EAAE;QACtD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,KAAK,CAAC;QACV,IAAI,QAAQ,CAAC,UAAU,EAAE;YACrB,KAAK,IAAI,IAAI,2BAA2B;YACxC,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC;SAC/B;aACI;YACD,KAAK,IAAI,GAAG,yBAAyB;YACrC,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC;SAC7B;QACD,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK;YAC5C,IAAI,QAAQ,GAAG,CAAC,CAAY;YAC5B,IAAI,QAAQ,CAAC;YACb,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACpB,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;oBACnB,IAAI,KAAK,YAAY,QAAQ,EAAE;wBAC3B,QAAQ,IAAI,CAAC,gBAAgB;qBAChC;yBACI,IAAI,KAAK,YAAY,QAAQ,EAAE;wBAChC,QAAQ,IAAI,CAAC,gBAAgB;qBAChC;yBACI;wBACD,QAAQ,GAAG,KAAK,CAAC;qBACpB;iBACJ,CAAC,CAAC;aACN;iBACI;gBACD,QAAQ,GAAG,GAAG,CAAC;aAClB;YACD,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;SAC/B,CAAC,CAAC;QACHC,iBAAgB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC,CAAC;KACnF;IACD,kCAAkC,CAAC,SAAS,EAAE,QAAQ,EAAE;QACpD,IAAI,CAAC,sBAAsB,CAAC,oCAAoC,EAAE,mBAAmB,CAAC,CAAC;QACvF,MAAM,iBAAiB,CAAC;SACvB;QACD,iBAAiB,CAAC,UAAU,GAAG;YAC3B,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;SAChE,CAAC;;QAEF,iBAAiB,CAAC,cAAc,GAAG,MAAM,EAAE,CAAC;QAC5C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC;KAC9E;IACD,eAAe,CAAC,SAAS,EAAE;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACvE,IAAI,CAAC,gBAAgB,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,CAAC,4BAA4B,EAAEF,UAAS,CAAC,SAAS,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC;SAC1H;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACxD,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;QAC/C,qBAAqB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,aAAa,GAAG,MAAM;YACxB,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACjG,OAAO,IAAI,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;SACjE,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,aAAa,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACtE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,OAAO,CAAC;KAClB;CACJ;AACD,IAAI,QAAQ,IAAI,IAAI,CAAC,CAAC;;;;AAItB,AAAO,SAAS,UAAU,GAAG;IACzB,OAAO,QAAQ,GAAG,QAAQ,IAAI,IAAI,OAAO,EAAE,CAAC;CAC/C;;;;;;;;;;;;;;;;;;;;;;;;;AAyBD,AAAO,SAAS,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE;IAC/B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;;QAEzC,OAAO,YAAY;;;YAGf,OAAO,OAAO,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,MAAM;gBAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAClD,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;gBAClC,OAAO,SAAS,CAAC,OAAO,CAAC;aAC5B,CAAC,CAAC;SACN,CAAC;KACL;SACI;;QAED,OAAO,YAAY,EAAE,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;KACpE;CACJ;;;;AAID,AAAO,MAAM,kBAAkB,CAAC;IAC5B,WAAW,CAAC,UAAU,EAAE;QACpB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAChC;IACD,UAAU,GAAG;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,SAAS,EAAE;YACX,UAAU,EAAE,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;SAClD;KACJ;IACD,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,IAAI,CAAC;;QAElB,OAAO,YAAY;YACf,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxC,CAAC;KACL;CACJ;AACD,AAAO,SAAS,UAAU,CAAC,SAAS,EAAE,EAAE,EAAE;IACtC,IAAI,EAAE,EAAE;;QAEJ,OAAO,YAAY;YACf,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,IAAI,SAAS,EAAE;gBACX,OAAO,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;aAC7C;YACD,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACzB,CAAC;KACL;IACD,OAAO,IAAI,kBAAkB,CAAC,MAAM,SAAS,CAAC,CAAC;CAClD;;AC1fD;;;;;;;AAOA,AAEA,MAAMG,SAAO,IAAI,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;;AAElE,IAAIA,SAAO,CAAC,UAAU,EAAE;IACpBA,SAAO,CAAC,UAAU,CAAC,MAAM;QACrB,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC7B,kBAAkB,EAAE,CAAC;KACxB,CAAC,CAAC;CACN;;;AAGD,AAAO,MAAM,oCAAoC,GAAG,EAAE;;ACnBtD;;;;;;GAMG;;ACNH;;;;;;GAMG;;ACNH;;;;;;;AAOA,AAA8B;0EAC4C;;ACR1E;;GAEG;;;;"}
|
package/esm5/core.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v5.2.
|
|
2
|
+
* @license Angular v5.2.6
|
|
3
3
|
* (c) 2010-2018 Google, Inc. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -8,6 +8,7 @@ import { Observable } from 'rxjs/Observable';
|
|
|
8
8
|
import { merge } from 'rxjs/observable/merge';
|
|
9
9
|
import { share } from 'rxjs/operator/share';
|
|
10
10
|
import { Subject } from 'rxjs/Subject';
|
|
11
|
+
import { Subscription } from 'rxjs/Subscription';
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* @fileoverview added by tsickle
|
|
@@ -716,7 +717,7 @@ var Version = /** @class */ (function () {
|
|
|
716
717
|
/**
|
|
717
718
|
* \@stable
|
|
718
719
|
*/
|
|
719
|
-
var VERSION = new Version('5.2.
|
|
720
|
+
var VERSION = new Version('5.2.6');
|
|
720
721
|
|
|
721
722
|
/**
|
|
722
723
|
* @fileoverview added by tsickle
|
|
@@ -830,6 +831,7 @@ var __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefi
|
|
|
830
831
|
self instanceof WorkerGlobalScope && self;
|
|
831
832
|
var __global = typeof global !== 'undefined' && global;
|
|
832
833
|
var _global = __window || __global || __self;
|
|
834
|
+
var promise = Promise.resolve(0);
|
|
833
835
|
var _symbolIterator = null;
|
|
834
836
|
/**
|
|
835
837
|
* @return {?}
|
|
@@ -859,7 +861,13 @@ function getSymbolIterator() {
|
|
|
859
861
|
* @return {?}
|
|
860
862
|
*/
|
|
861
863
|
function scheduleMicroTask(fn) {
|
|
862
|
-
Zone
|
|
864
|
+
if (typeof Zone === 'undefined') {
|
|
865
|
+
// use promise to schedule microTask instead of use Zone
|
|
866
|
+
promise.then(function () { fn && fn.apply(null, null); });
|
|
867
|
+
}
|
|
868
|
+
else {
|
|
869
|
+
Zone.current.scheduleMicroTask('scheduleMicrotask', fn);
|
|
870
|
+
}
|
|
863
871
|
}
|
|
864
872
|
/**
|
|
865
873
|
* @param {?} a
|
|
@@ -1956,9 +1964,11 @@ function isType(v) {
|
|
|
1956
1964
|
* found in the LICENSE file at https://angular.io/license
|
|
1957
1965
|
*/
|
|
1958
1966
|
/**
|
|
1959
|
-
* Attention:
|
|
1967
|
+
* Attention: These regex has to hold even if the code is minified!
|
|
1960
1968
|
*/
|
|
1961
1969
|
var DELEGATE_CTOR = /^function\s+\S+\(\)\s*{[\s\S]+\.apply\(this,\s*arguments\)/;
|
|
1970
|
+
var INHERITED_CLASS = /^class\s+[A-Za-z\d$_]*\s*extends\s+[A-Za-z\d$_]+\s*{/;
|
|
1971
|
+
var INHERITED_CLASS_WITH_CTOR = /^class\s+[A-Za-z\d$_]*\s*extends\s+[A-Za-z\d$_]+\s*{[\s\S]*constructor\s*\(/;
|
|
1962
1972
|
var ReflectionCapabilities = /** @class */ (function () {
|
|
1963
1973
|
function ReflectionCapabilities(reflect) {
|
|
1964
1974
|
this._reflect = reflect || _global['Reflect'];
|
|
@@ -2038,6 +2048,7 @@ var ReflectionCapabilities = /** @class */ (function () {
|
|
|
2038
2048
|
* @return {?}
|
|
2039
2049
|
*/
|
|
2040
2050
|
function (type, parentCtor) {
|
|
2051
|
+
var /** @type {?} */ typeStr = type.toString();
|
|
2041
2052
|
// If we have no decorators, we only have function.length as metadata.
|
|
2042
2053
|
// In that case, to detect whether a child class declared an own constructor or not,
|
|
2043
2054
|
// we need to look inside of that constructor to check whether it is
|
|
@@ -2045,7 +2056,8 @@ var ReflectionCapabilities = /** @class */ (function () {
|
|
|
2045
2056
|
// This also helps to work around for https://github.com/Microsoft/TypeScript/issues/12439
|
|
2046
2057
|
// that sets 'design:paramtypes' to []
|
|
2047
2058
|
// if a class inherits from another class but has no ctor declared itself.
|
|
2048
|
-
if (DELEGATE_CTOR.exec(
|
|
2059
|
+
if (DELEGATE_CTOR.exec(typeStr) ||
|
|
2060
|
+
(INHERITED_CLASS.exec(typeStr) && !INHERITED_CLASS_WITH_CTOR.exec(typeStr))) {
|
|
2049
2061
|
return null;
|
|
2050
2062
|
}
|
|
2051
2063
|
// Prefer the direct API.
|
|
@@ -2343,7 +2355,7 @@ function convertTsickleDecoratorIntoMetadata(decoratorInvocations) {
|
|
|
2343
2355
|
* @return {?}
|
|
2344
2356
|
*/
|
|
2345
2357
|
function getParentCtor(ctor) {
|
|
2346
|
-
var /** @type {?} */ parentProto = Object.getPrototypeOf(ctor.prototype);
|
|
2358
|
+
var /** @type {?} */ parentProto = ctor.prototype ? Object.getPrototypeOf(ctor.prototype) : null;
|
|
2347
2359
|
var /** @type {?} */ parentCtor = parentProto ? parentProto.constructor : null;
|
|
2348
2360
|
// Note: We always use `Object` as the null value
|
|
2349
2361
|
// to simplify checking later on.
|
|
@@ -4338,7 +4350,11 @@ var EventEmitter = /** @class */ (function (_super) {
|
|
|
4338
4350
|
this.__isAsync ? function () { setTimeout(function () { return complete(); }); } : function () { complete(); };
|
|
4339
4351
|
}
|
|
4340
4352
|
}
|
|
4341
|
-
|
|
4353
|
+
var /** @type {?} */ sink = _super.prototype.subscribe.call(this, schedulerFn, errorFn, completeFn);
|
|
4354
|
+
if (generatorOrNext instanceof Subscription) {
|
|
4355
|
+
generatorOrNext.add(sink);
|
|
4356
|
+
}
|
|
4357
|
+
return sink;
|
|
4342
4358
|
};
|
|
4343
4359
|
return EventEmitter;
|
|
4344
4360
|
}(Subject));
|
|
@@ -6277,6 +6293,7 @@ var QueryList = /** @class */ (function () {
|
|
|
6277
6293
|
this.dirty = true;
|
|
6278
6294
|
this._results = [];
|
|
6279
6295
|
this.changes = new EventEmitter();
|
|
6296
|
+
this.length = 0;
|
|
6280
6297
|
}
|
|
6281
6298
|
/**
|
|
6282
6299
|
* See
|
|
@@ -9899,7 +9916,7 @@ function checkAndUpdateBinding(view, def, bindingIdx, value) {
|
|
|
9899
9916
|
function checkBindingNoChanges(view, def, bindingIdx, value) {
|
|
9900
9917
|
var /** @type {?} */ oldValue = view.oldValues[def.bindingIndex + bindingIdx];
|
|
9901
9918
|
if ((view.state & 1 /* BeforeFirstCheck */) || !devModeEqual(oldValue, value)) {
|
|
9902
|
-
var /** @type {?} */ bindingName = def.bindings[
|
|
9919
|
+
var /** @type {?} */ bindingName = def.bindings[bindingIdx].name;
|
|
9903
9920
|
throw expressionChangedAfterItHasBeenCheckedError(Services.createDebugContext(view, def.nodeIndex), bindingName + ": " + oldValue, bindingName + ": " + value, (view.state & 1 /* BeforeFirstCheck */) !== 0);
|
|
9904
9921
|
}
|
|
9905
9922
|
}
|
|
@@ -18245,7 +18262,7 @@ function invertObject(obj) {
|
|
|
18245
18262
|
* The `\@childAnimation` trigger will not animate because `\@.disabled` prevents it from happening
|
|
18246
18263
|
* (when true).
|
|
18247
18264
|
*
|
|
18248
|
-
* Note that `\@.
|
|
18265
|
+
* Note that `\@.disabled` will only disable all animations (this means any animations running on
|
|
18249
18266
|
* the same element will also be disabled).
|
|
18250
18267
|
*
|
|
18251
18268
|
* ### Disabling Animations Application-wide
|