@angular/core 5.2.1 → 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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v5.2.1
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', fixture.componentInstance);
699
+ console.error('Error during cleanup of component', {
700
+ component: fixture.componentInstance,
701
+ stacktrace: e,
702
+ });
700
703
  }
701
704
  });
702
705
  this._activeFixtures = [];
@@ -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":";;;;;;;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;;;;;;AAMD,AAAO,MAAM,sBAAsB,CAAC;CACnC;;ACrDD;;;;;;;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.1
2
+ * @license Angular v5.2.5
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.1');
720
+ var VERSION = new Version('5.2.5');
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.current.scheduleMicroTask('scheduleMicrotask', fn);
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
@@ -4338,7 +4346,11 @@ var EventEmitter = /** @class */ (function (_super) {
4338
4346
  this.__isAsync ? function () { setTimeout(function () { return complete(); }); } : function () { complete(); };
4339
4347
  }
4340
4348
  }
4341
- return _super.prototype.subscribe.call(this, schedulerFn, errorFn, completeFn);
4349
+ var /** @type {?} */ sink = _super.prototype.subscribe.call(this, schedulerFn, errorFn, completeFn);
4350
+ if (generatorOrNext instanceof Subscription) {
4351
+ generatorOrNext.add(sink);
4352
+ }
4353
+ return sink;
4342
4354
  };
4343
4355
  return EventEmitter;
4344
4356
  }(Subject));
@@ -4962,23 +4974,13 @@ var Testability = /** @class */ (function () {
4962
4974
  function () {
4963
4975
  var _this = this;
4964
4976
  if (this.isStable()) {
4965
- if (this._callbacks.length !== 0) {
4966
- // Schedules the call backs after a macro task run outside of the angular zone to make sure
4967
- // no new task are added
4968
- this._ngZone.runOutsideAngular(function () {
4969
- setTimeout(function () {
4970
- if (_this.isStable()) {
4971
- while (_this._callbacks.length !== 0) {
4972
- (/** @type {?} */ ((_this._callbacks.pop())))(_this._didWork);
4973
- }
4974
- _this._didWork = false;
4975
- }
4976
- });
4977
- });
4978
- }
4979
- else {
4980
- this._didWork = false;
4981
- }
4977
+ // Schedules the call backs in a new frame so that it is always async.
4978
+ scheduleMicroTask(function () {
4979
+ while (_this._callbacks.length !== 0) {
4980
+ (/** @type {?} */ ((_this._callbacks.pop())))(_this._didWork);
4981
+ }
4982
+ _this._didWork = false;
4983
+ });
4982
4984
  }
4983
4985
  else {
4984
4986
  // Not Ready
@@ -6287,6 +6289,7 @@ var QueryList = /** @class */ (function () {
6287
6289
  this.dirty = true;
6288
6290
  this._results = [];
6289
6291
  this.changes = new EventEmitter();
6292
+ this.length = 0;
6290
6293
  }
6291
6294
  /**
6292
6295
  * See
@@ -9909,7 +9912,7 @@ function checkAndUpdateBinding(view, def, bindingIdx, value) {
9909
9912
  function checkBindingNoChanges(view, def, bindingIdx, value) {
9910
9913
  var /** @type {?} */ oldValue = view.oldValues[def.bindingIndex + bindingIdx];
9911
9914
  if ((view.state & 1 /* BeforeFirstCheck */) || !devModeEqual(oldValue, value)) {
9912
- var /** @type {?} */ bindingName = def.bindings[def.bindingIndex].name;
9915
+ var /** @type {?} */ bindingName = def.bindings[bindingIdx].name;
9913
9916
  throw expressionChangedAfterItHasBeenCheckedError(Services.createDebugContext(view, def.nodeIndex), bindingName + ": " + oldValue, bindingName + ": " + value, (view.state & 1 /* BeforeFirstCheck */) !== 0);
9914
9917
  }
9915
9918
  }
@@ -18255,7 +18258,7 @@ function invertObject(obj) {
18255
18258
  * The `\@childAnimation` trigger will not animate because `\@.disabled` prevents it from happening
18256
18259
  * (when true).
18257
18260
  *
18258
- * Note that `\@.disbled` will only disable all animations (this means any animations running on
18261
+ * Note that `\@.disabled` will only disable all animations (this means any animations running on
18259
18262
  * the same element will also be disabled).
18260
18263
  *
18261
18264
  * ### Disabling Animations Application-wide
@@ -19280,5 +19283,5 @@ function transition$$1(stateChangeExpr, steps) {
19280
19283
  * Generated bundle index. Do not edit.
19281
19284
  */
19282
19285
 
19283
- export { createPlatform, assertPlatform, destroyPlatform, getPlatform, PlatformRef, ApplicationRef, enableProdMode, isDevMode, createPlatformFactory, NgProbeToken, APP_ID, PACKAGE_ROOT_URL, PLATFORM_INITIALIZER, PLATFORM_ID, APP_BOOTSTRAP_LISTENER, APP_INITIALIZER, ApplicationInitStatus, DebugElement, DebugNode, asNativeElements, getDebugNode, Testability, TestabilityRegistry, setTestabilityGetter, TRANSLATIONS, TRANSLATIONS_FORMAT, LOCALE_ID, MissingTranslationStrategy, ApplicationModule, wtfCreateScope, wtfLeave, wtfStartTimeRange, wtfEndTimeRange, Type, EventEmitter, ErrorHandler, Sanitizer, SecurityContext, ANALYZE_FOR_ENTRY_COMPONENTS, Attribute, ContentChild, ContentChildren, Query, ViewChild, ViewChildren, Component, Directive, HostBinding, HostListener, Input, Output, Pipe, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, NgModule, ViewEncapsulation, Version, VERSION, forwardRef, resolveForwardRef, Injector, ReflectiveInjector, ResolvedReflectiveFactory, ReflectiveKey, InjectionToken, Inject, Optional, Injectable, Self, SkipSelf, Host, NgZone, RenderComponentType, Renderer, Renderer2, RendererFactory2, RendererStyleFlags2, RootRenderer, COMPILER_OPTIONS, Compiler, CompilerFactory, ModuleWithComponentFactories, ComponentFactory, ComponentRef, ComponentFactoryResolver, ElementRef, NgModuleFactory, NgModuleRef, NgModuleFactoryLoader, getModuleFactory, QueryList, SystemJsNgModuleLoader, SystemJsNgModuleLoaderConfig, TemplateRef, ViewContainerRef, EmbeddedViewRef, ViewRef, ChangeDetectionStrategy, ChangeDetectorRef, DefaultIterableDiffer, IterableDiffers, KeyValueDiffers, SimpleChange, WrappedValue, platformCore, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, APP_ID_RANDOM_PROVIDER as ɵAPP_ID_RANDOM_PROVIDER, devModeEqual as ɵdevModeEqual, isListLikeIterable as ɵisListLikeIterable, ChangeDetectorStatus as ɵChangeDetectorStatus, isDefaultChangeDetectionStrategy as ɵisDefaultChangeDetectionStrategy, Console as ɵConsole, ComponentFactory as ɵComponentFactory, CodegenComponentFactoryResolver as ɵCodegenComponentFactoryResolver, ReflectionCapabilities as ɵReflectionCapabilities, RenderDebugInfo as ɵRenderDebugInfo, _global as ɵglobal, looseIdentical as ɵlooseIdentical, stringify as ɵstringify, makeDecorator as ɵmakeDecorator, isObservable as ɵisObservable, isPromise as ɵisPromise, clearOverrides as ɵclearOverrides, overrideComponentView as ɵoverrideComponentView, overrideProvider as ɵoverrideProvider, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, defineComponent as ɵdefineComponent, detectChanges as ɵdetectChanges, renderComponent as ɵrenderComponent, containerStart as ɵC, directive as ɵD, elementStart as ɵE, text as ɵT, viewStart as ɵV, bind as ɵb, bind1 as ɵb1, containerEnd as ɵc, containerRefreshStart as ɵcR, containerRefreshEnd as ɵcr, elementEnd as ɵe, elementProperty as ɵp, elementStyle as ɵs, textBinding as ɵt, viewEnd as ɵv, registerModuleFactory as ɵregisterModuleFactory, EMPTY_ARRAY as ɵEMPTY_ARRAY, EMPTY_MAP as ɵEMPTY_MAP, anchorDef as ɵand, createComponentFactory as ɵccf, createNgModuleFactory as ɵcmf, createRendererType2 as ɵcrt, directiveDef as ɵdid, elementDef as ɵeld, elementEventFullName as ɵelementEventFullName, getComponentViewDefinitionFactory as ɵgetComponentViewDefinitionFactory, inlineInterpolate as ɵinlineInterpolate, interpolate as ɵinterpolate, moduleDef as ɵmod, moduleProvideDef as ɵmpd, ngContentDef as ɵncd, nodeValue as ɵnov, pipeDef as ɵpid, providerDef as ɵprd, pureArrayDef as ɵpad, pureObjectDef as ɵpod, purePipeDef as ɵppd, queryDef as ɵqud, textDef as ɵted, unwrapValue as ɵunv, viewDef as ɵvid, AUTO_STYLE, trigger$$1 as trigger, animate$$1 as animate, group$$1 as group, sequence$$1 as sequence, style$$1 as style, state$$1 as state, keyframes$$1 as keyframes, transition$$1 as transition, animate$1 as ɵbe, group$1 as ɵbf, keyframes$1 as ɵbj, sequence$1 as ɵbg, state$1 as ɵbi, style$1 as ɵbh, transition$1 as ɵbk, trigger$1 as ɵbd, _iterableDiffersFactory as ɵm, _keyValueDiffersFactory as ɵn, _localeFactory as ɵo, _appIdRandomProviderFactory as ɵh, defaultIterableDiffers as ɵi, defaultKeyValueDiffers as ɵj, DefaultIterableDifferFactory as ɵk, DefaultKeyValueDifferFactory as ɵl, ReflectiveInjector_ as ɵd, ReflectiveDependency as ɵf, resolveReflectiveProviders as ɵg, wtfEnabled as ɵq, createScope as ɵu, detectWTF as ɵr, endTimeRange as ɵy, leave as ɵw, startTimeRange as ɵx, stringify$1 as ɵbb, makeParamDecorator as ɵa, _def as ɵz, DebugContext as ɵba };
19286
+ export { createPlatform, assertPlatform, destroyPlatform, getPlatform, PlatformRef, ApplicationRef, enableProdMode, isDevMode, createPlatformFactory, NgProbeToken, APP_ID, PACKAGE_ROOT_URL, PLATFORM_INITIALIZER, PLATFORM_ID, APP_BOOTSTRAP_LISTENER, APP_INITIALIZER, ApplicationInitStatus, DebugElement, DebugNode, asNativeElements, getDebugNode, Testability, TestabilityRegistry, setTestabilityGetter, TRANSLATIONS, TRANSLATIONS_FORMAT, LOCALE_ID, MissingTranslationStrategy, ApplicationModule, wtfCreateScope, wtfLeave, wtfStartTimeRange, wtfEndTimeRange, Type, EventEmitter, ErrorHandler, Sanitizer, SecurityContext, ANALYZE_FOR_ENTRY_COMPONENTS, Attribute, ContentChild, ContentChildren, Query, ViewChild, ViewChildren, Component, Directive, HostBinding, HostListener, Input, Output, Pipe, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, NgModule, ViewEncapsulation, Version, VERSION, forwardRef, resolveForwardRef, Injector, ReflectiveInjector, ResolvedReflectiveFactory, ReflectiveKey, InjectionToken, Inject, Optional, Injectable, Self, SkipSelf, Host, NgZone, RenderComponentType, Renderer, Renderer2, RendererFactory2, RendererStyleFlags2, RootRenderer, COMPILER_OPTIONS, Compiler, CompilerFactory, ModuleWithComponentFactories, ComponentFactory, ComponentRef, ComponentFactoryResolver, ElementRef, NgModuleFactory, NgModuleRef, NgModuleFactoryLoader, getModuleFactory, QueryList, SystemJsNgModuleLoader, SystemJsNgModuleLoaderConfig, TemplateRef, ViewContainerRef, EmbeddedViewRef, ViewRef, ChangeDetectionStrategy, ChangeDetectorRef, DefaultIterableDiffer, IterableDiffers, KeyValueDiffers, SimpleChange, WrappedValue, platformCore, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, APP_ID_RANDOM_PROVIDER as ɵAPP_ID_RANDOM_PROVIDER, devModeEqual as ɵdevModeEqual, isListLikeIterable as ɵisListLikeIterable, ChangeDetectorStatus as ɵChangeDetectorStatus, isDefaultChangeDetectionStrategy as ɵisDefaultChangeDetectionStrategy, Console as ɵConsole, ComponentFactory as ɵComponentFactory, CodegenComponentFactoryResolver as ɵCodegenComponentFactoryResolver, ReflectionCapabilities as ɵReflectionCapabilities, RenderDebugInfo as ɵRenderDebugInfo, _global as ɵglobal, looseIdentical as ɵlooseIdentical, stringify as ɵstringify, makeDecorator as ɵmakeDecorator, isObservable as ɵisObservable, isPromise as ɵisPromise, clearOverrides as ɵclearOverrides, overrideComponentView as ɵoverrideComponentView, overrideProvider as ɵoverrideProvider, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, defineComponent as ɵdefineComponent, detectChanges as ɵdetectChanges, renderComponent as ɵrenderComponent, containerStart as ɵC, directive as ɵD, elementStart as ɵE, text as ɵT, viewStart as ɵV, bind as ɵb, bind1 as ɵb1, containerEnd as ɵc, containerRefreshStart as ɵcR, containerRefreshEnd as ɵcr, elementEnd as ɵe, elementProperty as ɵp, elementStyle as ɵs, textBinding as ɵt, viewEnd as ɵv, registerModuleFactory as ɵregisterModuleFactory, EMPTY_ARRAY as ɵEMPTY_ARRAY, EMPTY_MAP as ɵEMPTY_MAP, anchorDef as ɵand, createComponentFactory as ɵccf, createNgModuleFactory as ɵcmf, createRendererType2 as ɵcrt, directiveDef as ɵdid, elementDef as ɵeld, elementEventFullName as ɵelementEventFullName, getComponentViewDefinitionFactory as ɵgetComponentViewDefinitionFactory, inlineInterpolate as ɵinlineInterpolate, interpolate as ɵinterpolate, moduleDef as ɵmod, moduleProvideDef as ɵmpd, ngContentDef as ɵncd, nodeValue as ɵnov, pipeDef as ɵpid, providerDef as ɵprd, pureArrayDef as ɵpad, pureObjectDef as ɵpod, purePipeDef as ɵppd, queryDef as ɵqud, textDef as ɵted, unwrapValue as ɵunv, viewDef as ɵvid, AUTO_STYLE, trigger$$1 as trigger, animate$$1 as animate, group$$1 as group, sequence$$1 as sequence, style$$1 as style, state$$1 as state, keyframes$$1 as keyframes, transition$$1 as transition, animate$1 as ɵbf, group$1 as ɵbg, keyframes$1 as ɵbk, sequence$1 as ɵbh, state$1 as ɵbj, style$1 as ɵbi, transition$1 as ɵbl, trigger$1 as ɵbe, _iterableDiffersFactory as ɵn, _keyValueDiffersFactory as ɵo, _localeFactory as ɵq, _appIdRandomProviderFactory as ɵi, defaultIterableDiffers as ɵj, defaultKeyValueDiffers as ɵk, DefaultIterableDifferFactory as ɵl, DefaultKeyValueDifferFactory as ɵm, ReflectiveInjector_ as ɵf, ReflectiveDependency as ɵg, resolveReflectiveProviders as ɵh, wtfEnabled as ɵr, createScope as ɵw, detectWTF as ɵu, endTimeRange as ɵz, leave as ɵx, startTimeRange as ɵy, stringify$1 as ɵbc, makeParamDecorator as ɵa, makePropDecorator as ɵd, _def as ɵba, DebugContext as ɵbb };
19284
19287
  //# sourceMappingURL=core.js.map