diff --git a/goldens/public-api/core/core.md b/goldens/public-api/core/core.md index 6e1df7599f2..2b188e431c3 100644 --- a/goldens/public-api/core/core.md +++ b/goldens/public-api/core/core.md @@ -37,6 +37,9 @@ export interface AfterViewInit { // @public @deprecated export const ANALYZE_FOR_ENTRY_COMPONENTS: InjectionToken; +// @public +export const ANIMATION_MODULE_TYPE: InjectionToken<"NoopAnimations" | "BrowserAnimations">; + // @public export const APP_BOOTSTRAP_LISTENER: InjectionToken<((compRef: ComponentRef) => void)[]>; diff --git a/goldens/public-api/platform-browser/animations/animations.md b/goldens/public-api/platform-browser/animations/animations.md index 3aa5958b189..0a27ff1cdd8 100644 --- a/goldens/public-api/platform-browser/animations/animations.md +++ b/goldens/public-api/platform-browser/animations/animations.md @@ -4,13 +4,12 @@ ```ts +import { ANIMATION_MODULE_TYPE } from '@angular/core'; import * as i0 from '@angular/core'; import * as i1 from '@angular/platform-browser'; -import { InjectionToken } from '@angular/core'; import { ModuleWithProviders } from '@angular/core'; -// @public (undocumented) -export const ANIMATION_MODULE_TYPE: InjectionToken<"NoopAnimations" | "BrowserAnimations">; +export { ANIMATION_MODULE_TYPE } // @public export class BrowserAnimationsModule { diff --git a/goldens/size-tracking/aio-payloads.json b/goldens/size-tracking/aio-payloads.json index 96cfbaaf102..c09bc4aa56e 100755 --- a/goldens/size-tracking/aio-payloads.json +++ b/goldens/size-tracking/aio-payloads.json @@ -15,7 +15,7 @@ "master": { "uncompressed": { "runtime": 4343, - "main": 451244, + "main": 449957, "polyfills": 37297, "styles": 70379, "light-theme": 77582, @@ -23,4 +23,4 @@ } } } -} \ No newline at end of file +} diff --git a/packages/core/src/application_tokens.ts b/packages/core/src/application_tokens.ts index 659fa27efe4..d73c682b523 100644 --- a/packages/core/src/application_tokens.ts +++ b/packages/core/src/application_tokens.ts @@ -72,3 +72,15 @@ export const APP_BOOTSTRAP_LISTENER = * @publicApi */ export const PACKAGE_ROOT_URL = new InjectionToken('Application Packages Root URL'); + +// We keep this token here, rather than the animations package, so that modules that only care +// about which animations module is loaded (e.g. the CDK) can retrieve it without having to +// include extra dependencies. See #44970 for more context. + +/** + * A [DI token](guide/glossary#di-token "DI token definition") that indicates which animations + * module has been loaded. + * @publicApi + */ +export const ANIMATION_MODULE_TYPE = + new InjectionToken<'NoopAnimations'|'BrowserAnimations'>('AnimationModuleType'); diff --git a/packages/core/src/core.ts b/packages/core/src/core.ts index 161b286a4ed..28e9f48e081 100644 --- a/packages/core/src/core.ts +++ b/packages/core/src/core.ts @@ -17,7 +17,7 @@ export {TypeDecorator} from './util/decorators'; export * from './di'; export {createPlatform, assertPlatform, destroyPlatform, getPlatform, PlatformRef, ApplicationRef, createPlatformFactory, NgProbeToken} from './application_ref'; export {enableProdMode, isDevMode} from './util/is_dev_mode'; -export {APP_ID, PACKAGE_ROOT_URL, PLATFORM_INITIALIZER, PLATFORM_ID, APP_BOOTSTRAP_LISTENER} from './application_tokens'; +export {APP_ID, PACKAGE_ROOT_URL, PLATFORM_INITIALIZER, PLATFORM_ID, APP_BOOTSTRAP_LISTENER, ANIMATION_MODULE_TYPE} from './application_tokens'; export {APP_INITIALIZER, ApplicationInitStatus} from './application_init'; export * from './zone'; export * from './render'; diff --git a/packages/core/test/bundling/animations/bundle.golden_symbols.json b/packages/core/test/bundling/animations/bundle.golden_symbols.json index 67e35927b13..11c59f8e0c4 100644 --- a/packages/core/test/bundling/animations/bundle.golden_symbols.json +++ b/packages/core/test/bundling/animations/bundle.golden_symbols.json @@ -254,9 +254,6 @@ { "name": "InjectFlags" }, - { - "name": "InjectableAnimationEngine" - }, { "name": "InjectionToken" }, diff --git a/packages/platform-browser/animations/src/animations.ts b/packages/platform-browser/animations/src/animations.ts index 96b42f8ccdd..45378a01709 100644 --- a/packages/platform-browser/animations/src/animations.ts +++ b/packages/platform-browser/animations/src/animations.ts @@ -11,8 +11,7 @@ * @description * Entry point for all animation APIs of the animation browser package. */ +export {ANIMATION_MODULE_TYPE} from '@angular/core'; export {BrowserAnimationsModule, BrowserAnimationsModuleConfig, NoopAnimationsModule} from './module'; -export {ANIMATION_MODULE_TYPE} from './providers'; - export * from './private_export'; diff --git a/packages/platform-browser/animations/src/providers.ts b/packages/platform-browser/animations/src/providers.ts index cf0157c3efc..5af2feae501 100644 --- a/packages/platform-browser/animations/src/providers.ts +++ b/packages/platform-browser/animations/src/providers.ts @@ -9,7 +9,7 @@ import {AnimationBuilder} from '@angular/animations'; import {AnimationDriver, ɵAnimationEngine as AnimationEngine, ɵAnimationStyleNormalizer as AnimationStyleNormalizer, ɵNoopAnimationDriver as NoopAnimationDriver, ɵWebAnimationsDriver as WebAnimationsDriver, ɵWebAnimationsStyleNormalizer as WebAnimationsStyleNormalizer} from '@angular/animations/browser'; import {DOCUMENT} from '@angular/common'; -import {Inject, Injectable, InjectionToken, NgZone, OnDestroy, Provider, RendererFactory2} from '@angular/core'; +import {ANIMATION_MODULE_TYPE, Inject, Injectable, InjectionToken, NgZone, OnDestroy, Provider, RendererFactory2} from '@angular/core'; import {ɵDomRendererFactory2 as DomRendererFactory2} from '@angular/platform-browser'; import {BrowserAnimationBuilder} from './animation_builder'; @@ -36,12 +36,6 @@ export function instantiateRendererFactory( return new AnimationRendererFactory(renderer, engine, zone); } -/** - * @publicApi - */ -export const ANIMATION_MODULE_TYPE = - new InjectionToken<'NoopAnimations'|'BrowserAnimations'>('AnimationModuleType'); - const SHARED_ANIMATION_PROVIDERS: Provider[] = [ {provide: AnimationBuilder, useClass: BrowserAnimationBuilder}, {provide: AnimationStyleNormalizer, useFactory: instantiateDefaultStyleNormalizer},