From d887b36fc98633c76c414c6a8a88ef032d89ee99 Mon Sep 17 00:00:00 2001 From: Jessica Janiuk <1596273+thePunderWoman@users.noreply.github.com> Date: Wed, 8 Jan 2025 18:31:33 +0000 Subject: [PATCH] e689aae docs: release notes for the v19.1.0-rc.0 release --- BUILD_INFO | 4 +- animations/async/index.d.ts | 2 +- animations/index.d.ts | 2 +- fesm2022/animations.mjs | 24 ++++---- fesm2022/animations/async.mjs | 8 +-- fesm2022/platform-browser.mjs | 92 +++++++++++++++---------------- fesm2022/platform-browser.mjs.map | 2 +- fesm2022/testing.mjs | 10 ++-- index.d.ts | 2 +- package.json | 8 +-- testing/index.d.ts | 2 +- 11 files changed, 78 insertions(+), 78 deletions(-) diff --git a/BUILD_INFO b/BUILD_INFO index bdc31de259..d80e6f662a 100644 --- a/BUILD_INFO +++ b/BUILD_INFO @@ -1,2 +1,2 @@ -Wed Jan 8 18:12:59 UTC 2025 -c69f12ffd6face144ece3b8de22af3b8910bcf8e +Wed Jan 8 18:31:33 UTC 2025 +e689aaed306616ffeba62a74672d38decbdb2731 diff --git a/animations/async/index.d.ts b/animations/async/index.d.ts index 99157a7e38..d418a19fce 100755 --- a/animations/async/index.d.ts +++ b/animations/async/index.d.ts @@ -1,5 +1,5 @@ /** - * @license Angular v19.1.0-next.4+sha-c69f12f + * @license Angular v19.2.0-next.0+sha-e689aae * (c) 2010-2024 Google LLC. https://angular.io/ * License: MIT */ diff --git a/animations/index.d.ts b/animations/index.d.ts index a0a480b952..1fdccaaf1b 100755 --- a/animations/index.d.ts +++ b/animations/index.d.ts @@ -1,5 +1,5 @@ /** - * @license Angular v19.1.0-next.4+sha-c69f12f + * @license Angular v19.2.0-next.0+sha-e689aae * (c) 2010-2024 Google LLC. https://angular.io/ * License: MIT */ diff --git a/fesm2022/animations.mjs b/fesm2022/animations.mjs index 64d6b7dc22..0994c61511 100755 --- a/fesm2022/animations.mjs +++ b/fesm2022/animations.mjs @@ -1,5 +1,5 @@ /** - * @license Angular v19.1.0-next.4+sha-c69f12f + * @license Angular v19.2.0-next.0+sha-e689aae * (c) 2010-2024 Google LLC. https://angular.io/ * License: MIT */ @@ -22,10 +22,10 @@ class InjectableAnimationEngine extends ɵAnimationEngine { ngOnDestroy() { this.flush(); } - static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: InjectableAnimationEngine, deps: [{ token: DOCUMENT }, { token: i1.AnimationDriver }, { token: i1.ɵAnimationStyleNormalizer }], target: i0.ɵɵFactoryTarget.Injectable }); - static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: InjectableAnimationEngine }); + static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: InjectableAnimationEngine, deps: [{ token: DOCUMENT }, { token: i1.AnimationDriver }, { token: i1.ɵAnimationStyleNormalizer }], target: i0.ɵɵFactoryTarget.Injectable }); + static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: InjectableAnimationEngine }); } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: InjectableAnimationEngine, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: InjectableAnimationEngine, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: Document, decorators: [{ type: Inject, @@ -95,11 +95,11 @@ class BrowserAnimationsModule { : BROWSER_ANIMATIONS_PROVIDERS, }; } - static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: BrowserAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); - static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: BrowserAnimationsModule, exports: [BrowserModule] }); - static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: BrowserAnimationsModule, providers: BROWSER_ANIMATIONS_PROVIDERS, imports: [BrowserModule] }); + static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: BrowserAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); + static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: BrowserAnimationsModule, exports: [BrowserModule] }); + static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: BrowserAnimationsModule, providers: BROWSER_ANIMATIONS_PROVIDERS, imports: [BrowserModule] }); } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: BrowserAnimationsModule, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: BrowserAnimationsModule, decorators: [{ type: NgModule, args: [{ exports: [BrowserModule], @@ -139,11 +139,11 @@ function provideAnimations() { * @publicApi */ class NoopAnimationsModule { - static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: NoopAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); - static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: NoopAnimationsModule, exports: [BrowserModule] }); - static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: NoopAnimationsModule, providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS, imports: [BrowserModule] }); + static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: NoopAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); + static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: NoopAnimationsModule, exports: [BrowserModule] }); + static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: NoopAnimationsModule, providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS, imports: [BrowserModule] }); } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: NoopAnimationsModule, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: NoopAnimationsModule, decorators: [{ type: NgModule, args: [{ exports: [BrowserModule], diff --git a/fesm2022/animations/async.mjs b/fesm2022/animations/async.mjs index 9eec41e9c9..66a497c893 100755 --- a/fesm2022/animations/async.mjs +++ b/fesm2022/animations/async.mjs @@ -1,5 +1,5 @@ /** - * @license Angular v19.1.0-next.4+sha-c69f12f + * @license Angular v19.2.0-next.0+sha-e689aae * (c) 2010-2024 Google LLC. https://angular.io/ * License: MIT */ @@ -122,10 +122,10 @@ class AsyncAnimationRendererFactory { whenRenderingDone() { return this.delegate.whenRenderingDone?.() ?? Promise.resolve(); } - static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: AsyncAnimationRendererFactory, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); - static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: AsyncAnimationRendererFactory }); + static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: AsyncAnimationRendererFactory, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); + static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: AsyncAnimationRendererFactory }); } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: AsyncAnimationRendererFactory, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: AsyncAnimationRendererFactory, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: Document }, { type: i0.RendererFactory2 }, { type: i0.NgZone }, { type: undefined }, { type: Promise }] }); /** diff --git a/fesm2022/platform-browser.mjs b/fesm2022/platform-browser.mjs index 214734e853..7151a17387 100755 --- a/fesm2022/platform-browser.mjs +++ b/fesm2022/platform-browser.mjs @@ -1,5 +1,5 @@ /** - * @license Angular v19.1.0-next.4+sha-c69f12f + * @license Angular v19.2.0-next.0+sha-e689aae * (c) 2010-2024 Google LLC. https://angular.io/ * License: MIT */ @@ -151,10 +151,10 @@ class BrowserXhr { build() { return new XMLHttpRequest(); } - static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: BrowserXhr, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); - static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: BrowserXhr }); + static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: BrowserXhr, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); + static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: BrowserXhr }); } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: BrowserXhr, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: BrowserXhr, decorators: [{ type: Injectable }] }); @@ -219,10 +219,10 @@ class EventManager { this._eventNameToPlugin.set(eventName, plugin); return plugin; } - static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: EventManager, deps: [{ token: EVENT_MANAGER_PLUGINS }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); - static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: EventManager }); + static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: EventManager, deps: [{ token: EVENT_MANAGER_PLUGINS }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); + static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: EventManager }); } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: EventManager, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: EventManager, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Inject, @@ -427,10 +427,10 @@ class SharedStylesHost { // Insert the element into the DOM with the host node as parent return host.appendChild(element); } - static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: SharedStylesHost, deps: [{ token: DOCUMENT }, { token: APP_ID }, { token: CSP_NONCE, optional: true }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); - static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: SharedStylesHost }); + static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: SharedStylesHost, deps: [{ token: DOCUMENT }, { token: APP_ID }, { token: CSP_NONCE, optional: true }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); + static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: SharedStylesHost }); } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: SharedStylesHost, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: SharedStylesHost, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: Document, decorators: [{ type: Inject, @@ -563,10 +563,10 @@ class DomRendererFactory2 { componentReplaced(componentId) { this.rendererByCompId.delete(componentId); } - static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: DomRendererFactory2, deps: [{ token: EventManager }, { token: SharedStylesHost }, { token: APP_ID }, { token: REMOVE_STYLES_ON_COMPONENT_DESTROY }, { token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.NgZone }, { token: CSP_NONCE }, { token: ɵTracingService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); - static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: DomRendererFactory2 }); + static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: DomRendererFactory2, deps: [{ token: EventManager }, { token: SharedStylesHost }, { token: APP_ID }, { token: REMOVE_STYLES_ON_COMPONENT_DESTROY }, { token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.NgZone }, { token: CSP_NONCE }, { token: ɵTracingService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); + static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: DomRendererFactory2 }); } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: DomRendererFactory2, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: DomRendererFactory2, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: EventManager }, { type: SharedStylesHost }, { type: undefined, decorators: [{ type: Inject, @@ -891,10 +891,10 @@ class DomEventsPlugin extends EventManagerPlugin { removeEventListener(target, eventName, callback, options) { return target.removeEventListener(eventName, callback, options); } - static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: DomEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); - static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: DomEventsPlugin }); + static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: DomEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); + static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: DomEventsPlugin }); } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: DomEventsPlugin, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: DomEventsPlugin, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Inject, @@ -1063,10 +1063,10 @@ class KeyEventsPlugin extends EventManagerPlugin { static _normalizeKey(keyName) { return keyName === 'esc' ? 'escape' : keyName; } - static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: KeyEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); - static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: KeyEventsPlugin }); + static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: KeyEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); + static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: KeyEventsPlugin }); } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: KeyEventsPlugin, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: KeyEventsPlugin, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Inject, @@ -1255,11 +1255,11 @@ class BrowserModule { `to common directives such as NgIf and NgFor, import the \`CommonModule\` instead.`); } } - static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: BrowserModule, deps: [{ token: BROWSER_MODULE_PROVIDERS_MARKER, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); - static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: BrowserModule, exports: [CommonModule, ApplicationModule] }); - static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: BrowserModule, providers: [...BROWSER_MODULE_PROVIDERS, ...TESTABILITY_PROVIDERS], imports: [CommonModule, ApplicationModule] }); + static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: BrowserModule, deps: [{ token: BROWSER_MODULE_PROVIDERS_MARKER, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); + static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: BrowserModule, exports: [CommonModule, ApplicationModule] }); + static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: BrowserModule, providers: [...BROWSER_MODULE_PROVIDERS, ...TESTABILITY_PROVIDERS], imports: [CommonModule, ApplicationModule] }); } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: BrowserModule, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: BrowserModule, decorators: [{ type: NgModule, args: [{ providers: [...BROWSER_MODULE_PROVIDERS, ...TESTABILITY_PROVIDERS], @@ -1425,10 +1425,10 @@ class Meta { _getMetaKeyMap(prop) { return META_KEYS_MAP[prop] || prop; } - static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: Meta, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); - static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: Meta, providedIn: 'root' }); + static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: Meta, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); + static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: Meta, providedIn: 'root' }); } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: Meta, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: Meta, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: undefined, decorators: [{ @@ -1470,10 +1470,10 @@ class Title { setTitle(newTitle) { this._doc.title = newTitle || ''; } - static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: Title, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); - static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: Title, providedIn: 'root' }); + static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: Title, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); + static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: Title, providedIn: 'root' }); } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: Title, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: Title, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: undefined, decorators: [{ @@ -1746,10 +1746,10 @@ class HammerGestureConfig { } return mc; } - static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: HammerGestureConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); - static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: HammerGestureConfig }); + static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: HammerGestureConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); + static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: HammerGestureConfig }); } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: HammerGestureConfig, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: HammerGestureConfig, decorators: [{ type: Injectable }] }); /** @@ -1845,10 +1845,10 @@ class HammerGesturesPlugin extends EventManagerPlugin { isCustomEvent(eventName) { return this._config.events.indexOf(eventName) > -1; } - static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: HammerGesturesPlugin, deps: [{ token: DOCUMENT }, { token: HAMMER_GESTURE_CONFIG }, { token: i0.ɵConsole }, { token: HAMMER_LOADER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); - static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: HammerGesturesPlugin }); + static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: HammerGesturesPlugin, deps: [{ token: DOCUMENT }, { token: HAMMER_GESTURE_CONFIG }, { token: i0.ɵConsole }, { token: HAMMER_LOADER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); + static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: HammerGesturesPlugin }); } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: HammerGesturesPlugin, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: HammerGesturesPlugin, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Inject, @@ -1874,9 +1874,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4+sh * @publicApi */ class HammerModule { - static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: HammerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); - static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: HammerModule }); - static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: HammerModule, providers: [ + static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: HammerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); + static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: HammerModule }); + static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: HammerModule, providers: [ { provide: EVENT_MANAGER_PLUGINS, useClass: HammerGesturesPlugin, @@ -1886,7 +1886,7 @@ class HammerModule { { provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: [] }, ] }); } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: HammerModule, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: HammerModule, decorators: [{ type: NgModule, args: [{ providers: [ @@ -1933,10 +1933,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4+sh * @publicApi */ class DomSanitizer { - static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: DomSanitizer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); - static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: DomSanitizer, providedIn: 'root', useExisting: i0.forwardRef(() => DomSanitizerImpl) }); + static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: DomSanitizer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); + static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: DomSanitizer, providedIn: 'root', useExisting: i0.forwardRef(() => DomSanitizerImpl) }); } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: DomSanitizer, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: DomSanitizer, decorators: [{ type: Injectable, args: [{ providedIn: 'root', useExisting: forwardRef(() => DomSanitizerImpl) }] }] }); @@ -1999,10 +1999,10 @@ class DomSanitizerImpl extends DomSanitizer { bypassSecurityTrustResourceUrl(value) { return ɵbypassSanitizationTrustResourceUrl(value); } - static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: DomSanitizerImpl, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); - static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: DomSanitizerImpl, providedIn: 'root' }); + static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: DomSanitizerImpl, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); + static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: DomSanitizerImpl, providedIn: 'root' }); } -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4+sha-c69f12f", ngImport: i0, type: DomSanitizerImpl, decorators: [{ +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-next.0+sha-e689aae", ngImport: i0, type: DomSanitizerImpl, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: undefined, decorators: [{ @@ -2211,7 +2211,7 @@ function provideClientHydration(...features) { /** * @publicApi */ -const VERSION = new Version('19.1.0-next.4+sha-c69f12f'); +const VERSION = new Version('19.2.0-next.0+sha-e689aae'); /** * @module diff --git a/fesm2022/platform-browser.mjs.map b/fesm2022/platform-browser.mjs.map index d69e5fe95f..aedc515230 100755 --- a/fesm2022/platform-browser.mjs.map +++ b/fesm2022/platform-browser.mjs.map @@ -1 +1 @@ -{"version":3,"file":"platform-browser.mjs","sources":["../../../../../../packages/platform-browser/src/browser/generic_browser_adapter.ts","../../../../../../packages/platform-browser/src/browser/browser_adapter.ts","../../../../../../packages/platform-browser/src/browser/testability.ts","../../../../../../packages/platform-browser/src/browser/xhr.ts","../../../../../../packages/platform-browser/src/dom/events/event_manager.ts","../../../../../../packages/platform-browser/src/dom/shared_styles_host.ts","../../../../../../packages/platform-browser/src/dom/dom_renderer.ts","../../../../../../packages/platform-browser/src/dom/events/dom_events.ts","../../../../../../packages/platform-browser/src/dom/events/key_events.ts","../../../../../../packages/platform-browser/src/browser.ts","../../../../../../packages/platform-browser/src/browser/meta.ts","../../../../../../packages/platform-browser/src/browser/title.ts","../../../../../../packages/platform-browser/src/dom/util.ts","../../../../../../packages/platform-browser/src/browser/tools/common_tools.ts","../../../../../../packages/platform-browser/src/browser/tools/tools.ts","../../../../../../packages/platform-browser/src/dom/debug/by.ts","../../../../../../packages/platform-browser/src/dom/events/hammer_gestures.ts","../../../../../../packages/platform-browser/src/security/dom_sanitization_service.ts","../../../../../../packages/platform-browser/src/hydration.ts","../../../../../../packages/platform-browser/src/version.ts","../../../../../../packages/platform-browser/public_api.ts","../../../../../../packages/platform-browser/index.ts","../../../../../../packages/platform-browser/platform-browser.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC 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.dev/license\n */\n\nimport {ɵDomAdapter as DomAdapter} from '@angular/common';\n\n/**\n * Provides DOM operations in any browser environment.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class GenericBrowserDomAdapter extends DomAdapter {\n override readonly supportsDOMEvents: boolean = true;\n}\n","/**\n * @license\n * Copyright Google LLC 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.dev/license\n */\n\nimport {\n ɵparseCookieValue as parseCookieValue,\n ɵsetRootDomAdapter as setRootDomAdapter,\n} from '@angular/common';\n\nimport {GenericBrowserDomAdapter} from './generic_browser_adapter';\n\n/**\n * A `DomAdapter` powered by full browser DOM APIs.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport class BrowserDomAdapter extends GenericBrowserDomAdapter {\n static makeCurrent() {\n setRootDomAdapter(new BrowserDomAdapter());\n }\n\n override onAndCancel(el: Node, evt: any, listener: any, options: any): Function {\n el.addEventListener(evt, listener, options);\n return () => {\n el.removeEventListener(evt, listener, options);\n };\n }\n override dispatchEvent(el: Node, evt: any) {\n el.dispatchEvent(evt);\n }\n override remove(node: Node): void {\n (node as Element | Text | Comment).remove();\n }\n override createElement(tagName: string, doc?: Document): HTMLElement {\n doc = doc || this.getDefaultDocument();\n return doc.createElement(tagName);\n }\n override createHtmlDocument(): Document {\n return document.implementation.createHTMLDocument('fakeTitle');\n }\n override getDefaultDocument(): Document {\n return document;\n }\n\n override isElementNode(node: Node): boolean {\n return node.nodeType === Node.ELEMENT_NODE;\n }\n\n override isShadowRoot(node: any): boolean {\n return node instanceof DocumentFragment;\n }\n\n /** @deprecated No longer being used in Ivy code. To be removed in version 14. */\n override getGlobalEventTarget(doc: Document, target: string): EventTarget | null {\n if (target === 'window') {\n return window;\n }\n if (target === 'document') {\n return doc;\n }\n if (target === 'body') {\n return doc.body;\n }\n return null;\n }\n override getBaseHref(doc: Document): string | null {\n const href = getBaseElementHref();\n return href == null ? null : relativePath(href);\n }\n override resetBaseElement(): void {\n baseElement = null;\n }\n override getUserAgent(): string {\n return window.navigator.userAgent;\n }\n override getCookie(name: string): string | null {\n return parseCookieValue(document.cookie, name);\n }\n}\n\nlet baseElement: HTMLElement | null = null;\nfunction getBaseElementHref(): string | null {\n baseElement = baseElement || document.querySelector('base');\n return baseElement ? baseElement.getAttribute('href') : null;\n}\n\nfunction relativePath(url: string): string {\n // The base URL doesn't really matter, we just need it so relative paths have something\n // to resolve against. In the browser `HTMLBaseElement.href` is always absolute.\n return new URL(url, document.baseURI).pathname;\n}\n","/**\n * @license\n * Copyright Google LLC 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.dev/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {\n GetTestability,\n Testability,\n TestabilityRegistry,\n ɵglobal as global,\n ɵRuntimeError as RuntimeError,\n} from '@angular/core';\n\nimport {RuntimeErrorCode} from '../errors';\n\nexport class BrowserGetTestability implements GetTestability {\n addToWindow(registry: TestabilityRegistry): void {\n global['getAngularTestability'] = (elem: any, findInAncestors: boolean = true) => {\n const testability = registry.findTestabilityInTree(elem, findInAncestors);\n if (testability == null) {\n throw new RuntimeError(\n RuntimeErrorCode.TESTABILITY_NOT_FOUND,\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n 'Could not find testability for element.',\n );\n }\n return testability;\n };\n\n global['getAllAngularTestabilities'] = () => registry.getAllTestabilities();\n\n global['getAllAngularRootElements'] = () => registry.getAllRootElements();\n\n const whenAllStable = (callback: () => void) => {\n const testabilities = global['getAllAngularTestabilities']() as Testability[];\n let count = testabilities.length;\n const decrement = function () {\n count--;\n if (count == 0) {\n callback();\n }\n };\n testabilities.forEach((testability) => {\n testability.whenStable(decrement);\n });\n };\n\n if (!global['frameworkStabilizers']) {\n global['frameworkStabilizers'] = [];\n }\n global['frameworkStabilizers'].push(whenAllStable);\n }\n\n findTestabilityInTree(\n registry: TestabilityRegistry,\n elem: any,\n findInAncestors: boolean,\n ): Testability | null {\n if (elem == null) {\n return null;\n }\n const t = registry.getTestability(elem);\n if (t != null) {\n return t;\n } else if (!findInAncestors) {\n return null;\n }\n if (getDOM().isShadowRoot(elem)) {\n return this.findTestabilityInTree(registry, (elem).host, true);\n }\n return this.findTestabilityInTree(registry, elem.parentElement, true);\n }\n}\n","/**\n * @license\n * Copyright Google LLC 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.dev/license\n */\n\nimport {XhrFactory} from '@angular/common';\nimport {Injectable} from '@angular/core';\n\n/**\n * A factory for `HttpXhrBackend` that uses the `XMLHttpRequest` browser API.\n */\n@Injectable()\nexport class BrowserXhr implements XhrFactory {\n build(): XMLHttpRequest {\n return new XMLHttpRequest();\n }\n}\n","/**\n * @license\n * Copyright Google LLC 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.dev/license\n */\n\nimport {\n Inject,\n Injectable,\n InjectionToken,\n NgZone,\n ɵRuntimeError as RuntimeError,\n type ListenerOptions,\n} from '@angular/core';\n\nimport {RuntimeErrorCode} from '../../errors';\n\n/**\n * The injection token for plugins of the `EventManager` service.\n *\n * @publicApi\n */\nexport const EVENT_MANAGER_PLUGINS = new InjectionToken(\n ngDevMode ? 'EventManagerPlugins' : '',\n);\n\n/**\n * An injectable service that provides event management for Angular\n * through a browser plug-in.\n *\n * @publicApi\n */\n@Injectable()\nexport class EventManager {\n private _plugins: EventManagerPlugin[];\n private _eventNameToPlugin = new Map();\n\n /**\n * Initializes an instance of the event-manager service.\n */\n constructor(\n @Inject(EVENT_MANAGER_PLUGINS) plugins: EventManagerPlugin[],\n private _zone: NgZone,\n ) {\n plugins.forEach((plugin) => {\n plugin.manager = this;\n });\n this._plugins = plugins.slice().reverse();\n }\n\n /**\n * Registers a handler for a specific element and event.\n *\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @param options Options that configure how the event listener is bound.\n * @returns A callback function that can be used to remove the handler.\n */\n addEventListener(\n element: HTMLElement,\n eventName: string,\n handler: Function,\n options?: ListenerOptions,\n ): Function {\n const plugin = this._findPluginFor(eventName);\n return plugin.addEventListener(element, eventName, handler, options);\n }\n\n /**\n * Retrieves the compilation zone in which event listeners are registered.\n */\n getZone(): NgZone {\n return this._zone;\n }\n\n /** @internal */\n _findPluginFor(eventName: string): EventManagerPlugin {\n let plugin = this._eventNameToPlugin.get(eventName);\n if (plugin) {\n return plugin;\n }\n\n const plugins = this._plugins;\n plugin = plugins.find((plugin) => plugin.supports(eventName));\n if (!plugin) {\n throw new RuntimeError(\n RuntimeErrorCode.NO_PLUGIN_FOR_EVENT,\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n `No event manager plugin found for event ${eventName}`,\n );\n }\n\n this._eventNameToPlugin.set(eventName, plugin);\n return plugin;\n }\n}\n\n/**\n * The plugin definition for the `EventManager` class\n *\n * It can be used as a base class to create custom manager plugins, i.e. you can create your own\n * class that extends the `EventManagerPlugin` one.\n *\n * @publicApi\n */\nexport abstract class EventManagerPlugin {\n // TODO: remove (has some usage in G3)\n constructor(private _doc: any) {}\n\n // Using non-null assertion because it's set by EventManager's constructor\n manager!: EventManager;\n\n /**\n * Should return `true` for every event name that should be supported by this plugin\n */\n abstract supports(eventName: string): boolean;\n\n /**\n * Implement the behaviour for the supported events\n */\n abstract addEventListener(\n element: HTMLElement,\n eventName: string,\n handler: Function,\n options?: ListenerOptions,\n ): Function;\n}\n","/**\n * @license\n * Copyright Google LLC 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.dev/license\n */\n\nimport {DOCUMENT, isPlatformServer} from '@angular/common';\nimport {\n APP_ID,\n CSP_NONCE,\n Inject,\n Injectable,\n OnDestroy,\n Optional,\n PLATFORM_ID,\n} from '@angular/core';\n\n/** The style elements attribute name used to set value of `APP_ID` token. */\nconst APP_ID_ATTRIBUTE_NAME = 'ng-app-id';\n\n/**\n * A record of usage for a specific style including all elements added to the DOM\n * that contain a given style.\n */\ninterface UsageRecord {\n elements: T[];\n usage: number;\n}\n\n/**\n * Removes all provided elements from the document.\n * @param elements An array of HTML Elements.\n */\nfunction removeElements(elements: Iterable): void {\n for (const element of elements) {\n element.remove();\n }\n}\n\n/**\n * Creates a `style` element with the provided inline style content.\n * @param style A string of the inline style content.\n * @param doc A DOM Document to use to create the element.\n * @returns An HTMLStyleElement instance.\n */\nfunction createStyleElement(style: string, doc: Document): HTMLStyleElement {\n const styleElement = doc.createElement('style');\n styleElement.textContent = style;\n\n return styleElement;\n}\n\n/**\n * Searches a DOM document's head element for style elements with a matching application\n * identifier attribute (`ng-app-id`) to the provide identifier and adds usage records for each.\n * @param doc An HTML DOM document instance.\n * @param appId A string containing an Angular application identifer.\n * @param inline A Map object for tracking inline (defined via `styles` in component decorator) style usage.\n * @param external A Map object for tracking external (defined via `styleUrls` in component decorator) style usage.\n */\nfunction addServerStyles(\n doc: Document,\n appId: string,\n inline: Map>,\n external: Map>,\n): void {\n const elements = doc.head?.querySelectorAll(\n `style[${APP_ID_ATTRIBUTE_NAME}=\"${appId}\"],link[${APP_ID_ATTRIBUTE_NAME}=\"${appId}\"]`,\n );\n\n if (elements) {\n for (const styleElement of elements) {\n styleElement.removeAttribute(APP_ID_ATTRIBUTE_NAME);\n if (styleElement instanceof HTMLLinkElement) {\n // Only use filename from href\n // The href is build time generated with a unique value to prevent duplicates.\n external.set(styleElement.href.slice(styleElement.href.lastIndexOf('/') + 1), {\n usage: 0,\n elements: [styleElement],\n });\n } else if (styleElement.textContent) {\n inline.set(styleElement.textContent, {usage: 0, elements: [styleElement]});\n }\n }\n }\n}\n\n/**\n * Creates a `link` element for the provided external style URL.\n * @param url A string of the URL for the stylesheet.\n * @param doc A DOM Document to use to create the element.\n * @returns An HTMLLinkElement instance.\n */\nexport function createLinkElement(url: string, doc: Document): HTMLLinkElement {\n const linkElement = doc.createElement('link');\n linkElement.setAttribute('rel', 'stylesheet');\n linkElement.setAttribute('href', url);\n\n return linkElement;\n}\n\n@Injectable()\nexport class SharedStylesHost implements OnDestroy {\n /**\n * Provides usage information for active inline style content and associated HTML