@angular/core 5.2.4 → 5.2.5
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 +6 -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 +5 -4
- package/bundles/core.umd.js.map +1 -1
- package/bundles/core.umd.min.js +3 -3
- package/bundles/core.umd.min.js.map +1 -1
- package/core.metadata.json +1 -1
- package/esm2015/core.js +4 -3
- package/esm2015/core.js.map +1 -1
- package/esm2015/testing.js +5 -2
- package/esm2015/testing.js.map +1 -1
- package/esm5/core.js +4 -3
- package/esm5/core.js.map +1 -1
- package/esm5/testing.js +5 -2
- package/esm5/testing.js.map +1 -1
- package/package.json +1 -1
- package/src/animation/dsl.d.ts +1 -1
- package/testing/testing.metadata.json +1 -1
- package/testing.d.ts +1 -1
package/esm2015/testing.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v5.2.
|
|
2
|
+
* @license Angular v5.2.5
|
|
3
3
|
* (c) 2010-2018 Google, Inc. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -696,7 +696,10 @@ class TestBed {
|
|
|
696
696
|
fixture.destroy();
|
|
697
697
|
}
|
|
698
698
|
catch (e) {
|
|
699
|
-
console.error('Error during cleanup of component',
|
|
699
|
+
console.error('Error during cleanup of component', {
|
|
700
|
+
component: fixture.componentInstance,
|
|
701
|
+
stacktrace: e,
|
|
702
|
+
});
|
|
700
703
|
}
|
|
701
704
|
});
|
|
702
705
|
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 } 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', {\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":"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"}
|
package/esm5/core.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v5.2.
|
|
2
|
+
* @license Angular v5.2.5
|
|
3
3
|
* (c) 2010-2018 Google, Inc. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -717,7 +717,7 @@ var Version = /** @class */ (function () {
|
|
|
717
717
|
/**
|
|
718
718
|
* \@stable
|
|
719
719
|
*/
|
|
720
|
-
var VERSION = new Version('5.2.
|
|
720
|
+
var VERSION = new Version('5.2.5');
|
|
721
721
|
|
|
722
722
|
/**
|
|
723
723
|
* @fileoverview added by tsickle
|
|
@@ -6289,6 +6289,7 @@ var QueryList = /** @class */ (function () {
|
|
|
6289
6289
|
this.dirty = true;
|
|
6290
6290
|
this._results = [];
|
|
6291
6291
|
this.changes = new EventEmitter();
|
|
6292
|
+
this.length = 0;
|
|
6292
6293
|
}
|
|
6293
6294
|
/**
|
|
6294
6295
|
* See
|
|
@@ -18257,7 +18258,7 @@ function invertObject(obj) {
|
|
|
18257
18258
|
* The `\@childAnimation` trigger will not animate because `\@.disabled` prevents it from happening
|
|
18258
18259
|
* (when true).
|
|
18259
18260
|
*
|
|
18260
|
-
* Note that `\@.
|
|
18261
|
+
* Note that `\@.disabled` will only disable all animations (this means any animations running on
|
|
18261
18262
|
* the same element will also be disabled).
|
|
18262
18263
|
*
|
|
18263
18264
|
* ### Disabling Animations Application-wide
|