Launch Week Day 5: Introducing Reachability for PHP.Learn More
Socket
Book a DemoSign in
Socket

@angular/platform-browser

Package Overview
Dependencies
Maintainers
2
Versions
1040
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@angular/platform-browser - npm Package Compare versions

Comparing version
19.2.17
to
19.2.18
+1
-1
animations/async/index.d.ts
/**
* @license Angular v19.2.17
* @license Angular v19.2.18
* (c) 2010-2025 Google LLC. https://angular.io/

@@ -4,0 +4,0 @@ * License: MIT

/**
* @license Angular v19.2.17
* @license Angular v19.2.18
* (c) 2010-2025 Google LLC. https://angular.io/

@@ -4,0 +4,0 @@ * License: MIT

/**
* @license Angular v19.2.17
* @license Angular v19.2.18
* (c) 2010-2025 Google LLC. https://angular.io/

@@ -4,0 +4,0 @@ * License: MIT

/**
* @license Angular v19.2.17
* @license Angular v19.2.18
* (c) 2010-2025 Google LLC. https://angular.io/

@@ -26,6 +26,6 @@ * License: MIT

}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", 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.17", ngImport: i0, type: InjectableAnimationEngine });
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", 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.18", ngImport: i0, type: InjectableAnimationEngine });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: InjectableAnimationEngine, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: InjectableAnimationEngine, decorators: [{
type: Injectable

@@ -109,7 +109,7 @@ }], ctorParameters: () => [{ type: Document, decorators: [{

}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: BrowserAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: BrowserAnimationsModule, exports: [BrowserModule] });
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: BrowserAnimationsModule, providers: BROWSER_ANIMATIONS_PROVIDERS, imports: [BrowserModule] });
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: BrowserAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: BrowserAnimationsModule, exports: [BrowserModule] });
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: BrowserAnimationsModule, providers: BROWSER_ANIMATIONS_PROVIDERS, imports: [BrowserModule] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: BrowserAnimationsModule, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: BrowserAnimationsModule, decorators: [{
type: NgModule,

@@ -154,7 +154,7 @@ args: [{

class NoopAnimationsModule {
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: NoopAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: NoopAnimationsModule, exports: [BrowserModule] });
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: NoopAnimationsModule, providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS, imports: [BrowserModule] });
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NoopAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: NoopAnimationsModule, exports: [BrowserModule] });
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NoopAnimationsModule, providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS, imports: [BrowserModule] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: NoopAnimationsModule, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NoopAnimationsModule, decorators: [{
type: NgModule,

@@ -161,0 +161,0 @@ args: [{

/**
* @license Angular v19.2.17
* @license Angular v19.2.18
* (c) 2010-2025 Google LLC. https://angular.io/

@@ -134,6 +134,6 @@ * License: MIT

}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: AsyncAnimationRendererFactory, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: AsyncAnimationRendererFactory });
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AsyncAnimationRendererFactory, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AsyncAnimationRendererFactory });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: AsyncAnimationRendererFactory, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AsyncAnimationRendererFactory, decorators: [{
type: Injectable

@@ -140,0 +140,0 @@ }], ctorParameters: () => [{ type: Document }, { type: i0.RendererFactory2 }, { type: i0.NgZone }, { type: undefined }, { type: Promise }] });

/**
* @license Angular v19.2.17
* @license Angular v19.2.18
* (c) 2010-2025 Google LLC. https://angular.io/

@@ -144,6 +144,6 @@ * License: MIT

}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: BrowserXhr, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: BrowserXhr });
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: BrowserXhr, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: BrowserXhr });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: BrowserXhr, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: BrowserXhr, decorators: [{
type: Injectable

@@ -168,6 +168,6 @@ }] });

}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DomEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DomEventsPlugin });
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DomEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DomEventsPlugin });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DomEventsPlugin, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DomEventsPlugin, decorators: [{
type: Injectable

@@ -341,6 +341,6 @@ }], ctorParameters: () => [{ type: undefined, decorators: [{

}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KeyEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KeyEventsPlugin });
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KeyEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KeyEventsPlugin });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KeyEventsPlugin, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KeyEventsPlugin, decorators: [{
type: Injectable

@@ -546,7 +546,7 @@ }], ctorParameters: () => [{ type: undefined, decorators: [{

}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: BrowserModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: BrowserModule, exports: [CommonModule, ApplicationModule] });
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: BrowserModule, providers: [...BROWSER_MODULE_PROVIDERS, ...TESTABILITY_PROVIDERS], imports: [CommonModule, ApplicationModule] });
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: BrowserModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: BrowserModule, exports: [CommonModule, ApplicationModule] });
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: BrowserModule, providers: [...BROWSER_MODULE_PROVIDERS, ...TESTABILITY_PROVIDERS], imports: [CommonModule, ApplicationModule] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: BrowserModule, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: BrowserModule, decorators: [{
type: NgModule,

@@ -553,0 +553,0 @@ args: [{

/**
* @license Angular v19.2.17
* @license Angular v19.2.18
* (c) 2010-2025 Google LLC. https://angular.io/

@@ -72,6 +72,6 @@ * License: MIT

}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", 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.17", ngImport: i0, type: EventManager });
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", 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.18", ngImport: i0, type: EventManager });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: EventManager, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: EventManager, decorators: [{
type: Injectable

@@ -281,6 +281,6 @@ }], ctorParameters: () => [{ type: undefined, decorators: [{

}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", 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.17", ngImport: i0, type: SharedStylesHost });
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", 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.18", ngImport: i0, type: SharedStylesHost });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SharedStylesHost, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SharedStylesHost, decorators: [{
type: Injectable

@@ -459,6 +459,6 @@ }], ctorParameters: () => [{ type: Document, decorators: [{

}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", 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.17", ngImport: i0, type: DomRendererFactory2 });
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", 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.18", ngImport: i0, type: DomRendererFactory2 });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DomRendererFactory2, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DomRendererFactory2, decorators: [{
type: Injectable

@@ -465,0 +465,0 @@ }], ctorParameters: () => [{ type: EventManager }, { type: SharedStylesHost }, { type: undefined, decorators: [{

@@ -1,1 +0,1 @@

{"version":3,"file":"dom_renderer-DGKzginR.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/dom/events/event_manager.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/dom/shared_styles_host.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/dom/dom_renderer.js"],"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 {\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<EventManagerPlugin[]>(\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<string, EventManagerPlugin>();\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<T> {\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<HTMLElement>): 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<string, UsageRecord<HTMLStyleElement>>,\n external: Map<string, UsageRecord<HTMLLinkElement>>,\n): void {\n const elements = doc.head?.querySelectorAll<HTMLStyleElement | HTMLLinkElement>(\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 <style> elements.\n * Embedded styles typically originate from the `styles` metadata of a rendered component.\n */\n private readonly inline = new Map<string /** content */, UsageRecord<HTMLStyleElement>>();\n\n /**\n * Provides usage information for active external style URLs and the associated HTML <link> elements.\n * External styles typically originate from the `ɵɵExternalStylesFeature` of a rendered component.\n */\n private readonly external = new Map<string /** URL */, UsageRecord<HTMLLinkElement>>();\n\n /**\n * Set of host DOM nodes that will have styles attached.\n */\n private readonly hosts = new Set<Node>();\n\n /**\n * Whether the application code is currently executing on a server.\n */\n private readonly isServer: boolean;\n\n constructor(\n @Inject(DOCUMENT) private readonly doc: Document,\n @Inject(APP_ID) private readonly appId: string,\n @Inject(CSP_NONCE) @Optional() private readonly nonce?: string | null,\n @Inject(PLATFORM_ID) platformId: object = {},\n ) {\n this.isServer = isPlatformServer(platformId);\n addServerStyles(doc, appId, this.inline, this.external);\n this.hosts.add(doc.head);\n }\n\n /**\n * Adds embedded styles to the DOM via HTML `style` elements.\n * @param styles An array of style content strings.\n */\n addStyles(styles: string[], urls?: string[]): void {\n for (const value of styles) {\n this.addUsage(value, this.inline, createStyleElement);\n }\n\n urls?.forEach((value) => this.addUsage(value, this.external, createLinkElement));\n }\n\n /**\n * Removes embedded styles from the DOM that were added as HTML `style` elements.\n * @param styles An array of style content strings.\n */\n removeStyles(styles: string[], urls?: string[]): void {\n for (const value of styles) {\n this.removeUsage(value, this.inline);\n }\n\n urls?.forEach((value) => this.removeUsage(value, this.external));\n }\n\n protected addUsage<T extends HTMLElement>(\n value: string,\n usages: Map<string, UsageRecord<T>>,\n creator: (value: string, doc: Document) => T,\n ): void {\n // Attempt to get any current usage of the value\n const record = usages.get(value);\n\n // If existing, just increment the usage count\n if (record) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && record.usage === 0) {\n // A usage count of zero indicates a preexisting server generated style.\n // This attribute is solely used for debugging purposes of SSR style reuse.\n record.elements.forEach((element) => element.setAttribute('ng-style-reused', ''));\n }\n record.usage++;\n } else {\n // Otherwise, create an entry to track the elements and add element for each host\n usages.set(value, {\n usage: 1,\n elements: [...this.hosts].map((host) => this.addElement(host, creator(value, this.doc))),\n });\n }\n }\n\n protected removeUsage<T extends HTMLElement>(\n value: string,\n usages: Map<string, UsageRecord<T>>,\n ): void {\n // Attempt to get any current usage of the value\n const record = usages.get(value);\n\n // If there is a record, reduce the usage count and if no longer used,\n // remove from DOM and delete usage record.\n if (record) {\n record.usage--;\n if (record.usage <= 0) {\n removeElements(record.elements);\n usages.delete(value);\n }\n }\n }\n\n ngOnDestroy(): void {\n for (const [, {elements}] of [...this.inline, ...this.external]) {\n removeElements(elements);\n }\n this.hosts.clear();\n }\n\n /**\n * Adds a host node to the set of style hosts and adds all existing style usage to\n * the newly added host node.\n *\n * This is currently only used for Shadow DOM encapsulation mode.\n */\n addHost(hostNode: Node): void {\n this.hosts.add(hostNode);\n\n // Add existing styles to new host\n for (const [style, {elements}] of this.inline) {\n elements.push(this.addElement(hostNode, createStyleElement(style, this.doc)));\n }\n for (const [url, {elements}] of this.external) {\n elements.push(this.addElement(hostNode, createLinkElement(url, this.doc)));\n }\n }\n\n removeHost(hostNode: Node): void {\n this.hosts.delete(hostNode);\n }\n\n private addElement<T extends HTMLElement>(host: Node, element: T): T {\n // Add a nonce if present\n if (this.nonce) {\n element.setAttribute('nonce', this.nonce);\n }\n\n // Add application identifier when on the server to support client-side reuse\n if (this.isServer) {\n element.setAttribute(APP_ID_ATTRIBUTE_NAME, this.appId);\n }\n\n // Insert the element into the DOM with the host node as parent\n return host.appendChild(element);\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 */\nimport { DOCUMENT, isPlatformServer, ɵgetDOM as getDOM } from '@angular/common';\nimport { APP_ID, CSP_NONCE, Inject, Injectable, InjectionToken, NgZone, PLATFORM_ID, RendererStyleFlags2, ViewEncapsulation, ɵRuntimeError as RuntimeError, ɵTracingService as TracingService, Optional, } from '@angular/core';\nimport { EventManager } from './events/event_manager';\nimport { createLinkElement, SharedStylesHost } from './shared_styles_host';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./events/event_manager\";\nimport * as i2 from \"./shared_styles_host\";\nexport const NAMESPACE_URIS = {\n 'svg': 'http://www.w3.org/2000/svg',\n 'xhtml': 'http://www.w3.org/1999/xhtml',\n 'xlink': 'http://www.w3.org/1999/xlink',\n 'xml': 'http://www.w3.org/XML/1998/namespace',\n 'xmlns': 'http://www.w3.org/2000/xmlns/',\n 'math': 'http://www.w3.org/1998/Math/MathML',\n};\nconst COMPONENT_REGEX = /%COMP%/g;\nconst SOURCEMAP_URL_REGEXP = /\\/\\*#\\s*sourceMappingURL=(.+?)\\s*\\*\\//;\nconst PROTOCOL_REGEXP = /^https?:/;\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\n/**\n * The default value for the `REMOVE_STYLES_ON_COMPONENT_DESTROY` DI token.\n */\nconst REMOVE_STYLES_ON_COMPONENT_DESTROY_DEFAULT = true;\n/**\n * A DI token that indicates whether styles\n * of destroyed components should be removed from DOM.\n *\n * By default, the value is set to `true`.\n * @publicApi\n */\nexport const REMOVE_STYLES_ON_COMPONENT_DESTROY = new InjectionToken(ngDevMode ? 'RemoveStylesOnCompDestroy' : '', {\n providedIn: 'root',\n factory: () => REMOVE_STYLES_ON_COMPONENT_DESTROY_DEFAULT,\n});\nexport function shimContentAttribute(componentShortId) {\n return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\nexport function shimHostAttribute(componentShortId) {\n return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\nexport function shimStylesContent(compId, styles) {\n return styles.map((s) => s.replace(COMPONENT_REGEX, compId));\n}\n/**\n * Prepends a baseHref to the `sourceMappingURL` within the provided CSS content.\n * If the `sourceMappingURL` contains an inline (encoded) map, the function skips processing.\n *\n * @note For inline stylesheets, the `sourceMappingURL` is relative to the page's origin\n * and not the provided baseHref. This function is needed as when accessing the page with a URL\n * containing two or more segments.\n * For example, if the baseHref is set to `/`, and you visit a URL like `http://localhost/foo/bar`,\n * the map would be requested from `http://localhost/foo/bar/comp.css.map` instead of what you'd expect,\n * which is `http://localhost/comp.css.map`. This behavior is corrected by modifying the `sourceMappingURL`\n * to ensure external source maps are loaded relative to the baseHref.\n *\n\n * @param baseHref - The base URL to prepend to the `sourceMappingURL`.\n * @param styles - An array of CSS content strings, each potentially containing a `sourceMappingURL`.\n * @returns The updated array of CSS content strings with modified `sourceMappingURL` values,\n * or the original content if no modification is needed.\n */\nexport function addBaseHrefToCssSourceMap(baseHref, styles) {\n if (!baseHref) {\n return styles;\n }\n const absoluteBaseHrefUrl = new URL(baseHref, 'http://localhost');\n return styles.map((cssContent) => {\n if (!cssContent.includes('sourceMappingURL=')) {\n return cssContent;\n }\n return cssContent.replace(SOURCEMAP_URL_REGEXP, (_, sourceMapUrl) => {\n if (sourceMapUrl[0] === '/' ||\n sourceMapUrl.startsWith('data:') ||\n PROTOCOL_REGEXP.test(sourceMapUrl)) {\n return `/*# sourceMappingURL=${sourceMapUrl} */`;\n }\n const { pathname: resolvedSourceMapUrl } = new URL(sourceMapUrl, absoluteBaseHrefUrl);\n return `/*# sourceMappingURL=${resolvedSourceMapUrl} */`;\n });\n });\n}\nexport class DomRendererFactory2 {\n eventManager;\n sharedStylesHost;\n appId;\n removeStylesOnCompDestroy;\n doc;\n platformId;\n ngZone;\n nonce;\n tracingService;\n rendererByCompId = new Map();\n defaultRenderer;\n platformIsServer;\n constructor(eventManager, sharedStylesHost, appId, removeStylesOnCompDestroy, doc, platformId, ngZone, nonce = null, tracingService = null) {\n this.eventManager = eventManager;\n this.sharedStylesHost = sharedStylesHost;\n this.appId = appId;\n this.removeStylesOnCompDestroy = removeStylesOnCompDestroy;\n this.doc = doc;\n this.platformId = platformId;\n this.ngZone = ngZone;\n this.nonce = nonce;\n this.tracingService = tracingService;\n this.platformIsServer = isPlatformServer(platformId);\n this.defaultRenderer = new DefaultDomRenderer2(eventManager, doc, ngZone, this.platformIsServer, this.tracingService);\n }\n createRenderer(element, type) {\n if (!element || !type) {\n return this.defaultRenderer;\n }\n if (this.platformIsServer && type.encapsulation === ViewEncapsulation.ShadowDom) {\n // Domino does not support shadow DOM.\n type = { ...type, encapsulation: ViewEncapsulation.Emulated };\n }\n const renderer = this.getOrCreateRenderer(element, type);\n // Renderers have different logic due to different encapsulation behaviours.\n // Ex: for emulated, an attribute is added to the element.\n if (renderer instanceof EmulatedEncapsulationDomRenderer2) {\n renderer.applyToHost(element);\n }\n else if (renderer instanceof NoneEncapsulationDomRenderer) {\n renderer.applyStyles();\n }\n return renderer;\n }\n getOrCreateRenderer(element, type) {\n const rendererByCompId = this.rendererByCompId;\n let renderer = rendererByCompId.get(type.id);\n if (!renderer) {\n const doc = this.doc;\n const ngZone = this.ngZone;\n const eventManager = this.eventManager;\n const sharedStylesHost = this.sharedStylesHost;\n const removeStylesOnCompDestroy = this.removeStylesOnCompDestroy;\n const platformIsServer = this.platformIsServer;\n const tracingService = this.tracingService;\n switch (type.encapsulation) {\n case ViewEncapsulation.Emulated:\n renderer = new EmulatedEncapsulationDomRenderer2(eventManager, sharedStylesHost, type, this.appId, removeStylesOnCompDestroy, doc, ngZone, platformIsServer, tracingService);\n break;\n case ViewEncapsulation.ShadowDom:\n return new ShadowDomRenderer(eventManager, sharedStylesHost, element, type, doc, ngZone, this.nonce, platformIsServer, tracingService);\n default:\n renderer = new NoneEncapsulationDomRenderer(eventManager, sharedStylesHost, type, removeStylesOnCompDestroy, doc, ngZone, platformIsServer, tracingService);\n break;\n }\n rendererByCompId.set(type.id, renderer);\n }\n return renderer;\n }\n ngOnDestroy() {\n this.rendererByCompId.clear();\n }\n /**\n * Used during HMR to clear any cached data about a component.\n * @param componentId ID of the component that is being replaced.\n */\n componentReplaced(componentId) {\n this.rendererByCompId.delete(componentId);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.2.17\", ngImport: i0, type: DomRendererFactory2, deps: [{ token: i1.EventManager }, { token: i2.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 });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"19.2.17\", ngImport: i0, type: DomRendererFactory2 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.2.17\", ngImport: i0, type: DomRendererFactory2, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i1.EventManager }, { type: i2.SharedStylesHost }, { type: undefined, decorators: [{\n type: Inject,\n args: [APP_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [REMOVE_STYLES_ON_COMPONENT_DESTROY]\n }] }, { type: Document, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: Object, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [CSP_NONCE]\n }] }, { type: i0.ɵTracingService, decorators: [{\n type: Inject,\n args: [TracingService]\n }, {\n type: Optional\n }] }] });\nclass DefaultDomRenderer2 {\n eventManager;\n doc;\n ngZone;\n platformIsServer;\n tracingService;\n data = Object.create(null);\n /**\n * By default this renderer throws when encountering synthetic properties\n * This can be disabled for example by the AsyncAnimationRendererFactory\n */\n throwOnSyntheticProps = true;\n constructor(eventManager, doc, ngZone, platformIsServer, tracingService) {\n this.eventManager = eventManager;\n this.doc = doc;\n this.ngZone = ngZone;\n this.platformIsServer = platformIsServer;\n this.tracingService = tracingService;\n }\n destroy() { }\n destroyNode = null;\n createElement(name, namespace) {\n if (namespace) {\n // TODO: `|| namespace` was added in\n // https://github.com/angular/angular/commit/2b9cc8503d48173492c29f5a271b61126104fbdb to\n // support how Ivy passed around the namespace URI rather than short name at the time. It did\n // not, however extend the support to other parts of the system (setAttribute, setAttribute,\n // and the ServerRenderer). We should decide what exactly the semantics for dealing with\n // namespaces should be and make it consistent.\n // Related issues:\n // https://github.com/angular/angular/issues/44028\n // https://github.com/angular/angular/issues/44883\n return this.doc.createElementNS(NAMESPACE_URIS[namespace] || namespace, name);\n }\n return this.doc.createElement(name);\n }\n createComment(value) {\n return this.doc.createComment(value);\n }\n createText(value) {\n return this.doc.createTextNode(value);\n }\n appendChild(parent, newChild) {\n const targetParent = isTemplateNode(parent) ? parent.content : parent;\n targetParent.appendChild(newChild);\n }\n insertBefore(parent, newChild, refChild) {\n if (parent) {\n const targetParent = isTemplateNode(parent) ? parent.content : parent;\n targetParent.insertBefore(newChild, refChild);\n }\n }\n removeChild(_parent, oldChild) {\n oldChild.remove();\n }\n selectRootElement(selectorOrNode, preserveContent) {\n let el = typeof selectorOrNode === 'string' ? this.doc.querySelector(selectorOrNode) : selectorOrNode;\n if (!el) {\n throw new RuntimeError(-5104 /* RuntimeErrorCode.ROOT_NODE_NOT_FOUND */, (typeof ngDevMode === 'undefined' || ngDevMode) &&\n `The selector \"${selectorOrNode}\" did not match any elements`);\n }\n if (!preserveContent) {\n el.textContent = '';\n }\n return el;\n }\n parentNode(node) {\n return node.parentNode;\n }\n nextSibling(node) {\n return node.nextSibling;\n }\n setAttribute(el, name, value, namespace) {\n if (namespace) {\n name = namespace + ':' + name;\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.setAttributeNS(namespaceUri, name, value);\n }\n else {\n el.setAttribute(name, value);\n }\n }\n else {\n el.setAttribute(name, value);\n }\n }\n removeAttribute(el, name, namespace) {\n if (namespace) {\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.removeAttributeNS(namespaceUri, name);\n }\n else {\n el.removeAttribute(`${namespace}:${name}`);\n }\n }\n else {\n el.removeAttribute(name);\n }\n }\n addClass(el, name) {\n el.classList.add(name);\n }\n removeClass(el, name) {\n el.classList.remove(name);\n }\n setStyle(el, style, value, flags) {\n if (flags & (RendererStyleFlags2.DashCase | RendererStyleFlags2.Important)) {\n el.style.setProperty(style, value, flags & RendererStyleFlags2.Important ? 'important' : '');\n }\n else {\n el.style[style] = value;\n }\n }\n removeStyle(el, style, flags) {\n if (flags & RendererStyleFlags2.DashCase) {\n // removeProperty has no effect when used on camelCased properties.\n el.style.removeProperty(style);\n }\n else {\n el.style[style] = '';\n }\n }\n setProperty(el, name, value) {\n if (el == null) {\n return;\n }\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n this.throwOnSyntheticProps &&\n checkNoSyntheticProp(name, 'property');\n el[name] = value;\n }\n setValue(node, value) {\n node.nodeValue = value;\n }\n listen(target, event, callback, options) {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n this.throwOnSyntheticProps &&\n checkNoSyntheticProp(event, 'listener');\n if (typeof target === 'string') {\n target = getDOM().getGlobalEventTarget(this.doc, target);\n if (!target) {\n throw new RuntimeError(5102 /* RuntimeErrorCode.UNSUPPORTED_EVENT_TARGET */, (typeof ngDevMode === 'undefined' || ngDevMode) &&\n `Unsupported event target ${target} for event ${event}`);\n }\n }\n let wrappedCallback = this.decoratePreventDefault(callback);\n if (this.tracingService?.wrapEventListener) {\n wrappedCallback = this.tracingService.wrapEventListener(target, event, wrappedCallback);\n }\n return this.eventManager.addEventListener(target, event, wrappedCallback, options);\n }\n decoratePreventDefault(eventHandler) {\n // `DebugNode.triggerEventHandler` needs to know if the listener was created with\n // decoratePreventDefault or is a listener added outside the Angular context so it can handle\n // the two differently. In the first case, the special '__ngUnwrap__' token is passed to the\n // unwrap the listener (see below).\n return (event) => {\n // Ivy uses '__ngUnwrap__' as a special token that allows us to unwrap the function\n // so that it can be invoked programmatically by `DebugNode.triggerEventHandler`. The\n // debug_node can inspect the listener toString contents for the existence of this special\n // token. Because the token is a string literal, it is ensured to not be modified by compiled\n // code.\n if (event === '__ngUnwrap__') {\n return eventHandler;\n }\n // Run the event handler inside the ngZone because event handlers are not patched\n // by Zone on the server. This is required only for tests.\n const allowDefaultBehavior = this.platformIsServer\n ? this.ngZone.runGuarded(() => eventHandler(event))\n : eventHandler(event);\n if (allowDefaultBehavior === false) {\n event.preventDefault();\n }\n return undefined;\n };\n }\n}\nconst AT_CHARCODE = (() => '@'.charCodeAt(0))();\nfunction checkNoSyntheticProp(name, nameKind) {\n if (name.charCodeAt(0) === AT_CHARCODE) {\n throw new RuntimeError(5105 /* RuntimeErrorCode.UNEXPECTED_SYNTHETIC_PROPERTY */, `Unexpected synthetic ${nameKind} ${name} found. Please make sure that:\n - Make sure \\`provideAnimationsAsync()\\`, \\`provideAnimations()\\` or \\`provideNoopAnimations()\\` call was added to a list of providers used to bootstrap an application.\n - There is a corresponding animation configuration named \\`${name}\\` defined in the \\`animations\\` field of the \\`@Component\\` decorator (see https://angular.dev/api/core/Component#animations).`);\n }\n}\nfunction isTemplateNode(node) {\n return node.tagName === 'TEMPLATE' && node.content !== undefined;\n}\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n sharedStylesHost;\n hostEl;\n shadowRoot;\n constructor(eventManager, sharedStylesHost, hostEl, component, doc, ngZone, nonce, platformIsServer, tracingService) {\n super(eventManager, doc, ngZone, platformIsServer, tracingService);\n this.sharedStylesHost = sharedStylesHost;\n this.hostEl = hostEl;\n this.shadowRoot = hostEl.attachShadow({ mode: 'open' });\n this.sharedStylesHost.addHost(this.shadowRoot);\n let styles = component.styles;\n if (ngDevMode) {\n // We only do this in development, as for production users should not add CSS sourcemaps to components.\n const baseHref = getDOM().getBaseHref(doc) ?? '';\n styles = addBaseHrefToCssSourceMap(baseHref, styles);\n }\n styles = shimStylesContent(component.id, styles);\n for (const style of styles) {\n const styleEl = document.createElement('style');\n if (nonce) {\n styleEl.setAttribute('nonce', nonce);\n }\n styleEl.textContent = style;\n this.shadowRoot.appendChild(styleEl);\n }\n // Apply any external component styles to the shadow root for the component's element.\n // The ShadowDOM renderer uses an alternative execution path for component styles that\n // does not use the SharedStylesHost that other encapsulation modes leverage. Much like\n // the manual addition of embedded styles directly above, any external stylesheets\n // must be manually added here to ensure ShadowDOM components are correctly styled.\n // TODO: Consider reworking the DOM Renderers to consolidate style handling.\n const styleUrls = component.getExternalStyles?.();\n if (styleUrls) {\n for (const styleUrl of styleUrls) {\n const linkEl = createLinkElement(styleUrl, doc);\n if (nonce) {\n linkEl.setAttribute('nonce', nonce);\n }\n this.shadowRoot.appendChild(linkEl);\n }\n }\n }\n nodeOrShadowRoot(node) {\n return node === this.hostEl ? this.shadowRoot : node;\n }\n appendChild(parent, newChild) {\n return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n }\n insertBefore(parent, newChild, refChild) {\n return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n }\n removeChild(_parent, oldChild) {\n return super.removeChild(null, oldChild);\n }\n parentNode(node) {\n return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\n }\n destroy() {\n this.sharedStylesHost.removeHost(this.shadowRoot);\n }\n}\nclass NoneEncapsulationDomRenderer extends DefaultDomRenderer2 {\n sharedStylesHost;\n removeStylesOnCompDestroy;\n styles;\n styleUrls;\n constructor(eventManager, sharedStylesHost, component, removeStylesOnCompDestroy, doc, ngZone, platformIsServer, tracingService, compId) {\n super(eventManager, doc, ngZone, platformIsServer, tracingService);\n this.sharedStylesHost = sharedStylesHost;\n this.removeStylesOnCompDestroy = removeStylesOnCompDestroy;\n let styles = component.styles;\n if (ngDevMode) {\n // We only do this in development, as for production users should not add CSS sourcemaps to components.\n const baseHref = getDOM().getBaseHref(doc) ?? '';\n styles = addBaseHrefToCssSourceMap(baseHref, styles);\n }\n this.styles = compId ? shimStylesContent(compId, styles) : styles;\n this.styleUrls = component.getExternalStyles?.(compId);\n }\n applyStyles() {\n this.sharedStylesHost.addStyles(this.styles, this.styleUrls);\n }\n destroy() {\n if (!this.removeStylesOnCompDestroy) {\n return;\n }\n this.sharedStylesHost.removeStyles(this.styles, this.styleUrls);\n }\n}\nclass EmulatedEncapsulationDomRenderer2 extends NoneEncapsulationDomRenderer {\n contentAttr;\n hostAttr;\n constructor(eventManager, sharedStylesHost, component, appId, removeStylesOnCompDestroy, doc, ngZone, platformIsServer, tracingService) {\n const compId = appId + '-' + component.id;\n super(eventManager, sharedStylesHost, component, removeStylesOnCompDestroy, doc, ngZone, platformIsServer, tracingService, compId);\n this.contentAttr = shimContentAttribute(compId);\n this.hostAttr = shimHostAttribute(compId);\n }\n applyToHost(element) {\n this.applyStyles();\n this.setAttribute(element, this.hostAttr, '');\n }\n createElement(parent, name) {\n const el = super.createElement(parent, name);\n super.setAttribute(el, this.contentAttr, '');\n return el;\n }\n}\n//# sourceMappingURL=dom_renderer.js.map"],"names":["RuntimeError","i1.EventManager","i2.SharedStylesHost","TracingService","getDOM"],"mappings":"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"}
{"version":3,"file":"dom_renderer-DGKzginR.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/dom/events/event_manager.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/dom/shared_styles_host.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/dom/dom_renderer.js"],"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 {\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<EventManagerPlugin[]>(\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<string, EventManagerPlugin>();\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<T> {\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<HTMLElement>): 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<string, UsageRecord<HTMLStyleElement>>,\n external: Map<string, UsageRecord<HTMLLinkElement>>,\n): void {\n const elements = doc.head?.querySelectorAll<HTMLStyleElement | HTMLLinkElement>(\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 <style> elements.\n * Embedded styles typically originate from the `styles` metadata of a rendered component.\n */\n private readonly inline = new Map<string /** content */, UsageRecord<HTMLStyleElement>>();\n\n /**\n * Provides usage information for active external style URLs and the associated HTML <link> elements.\n * External styles typically originate from the `ɵɵExternalStylesFeature` of a rendered component.\n */\n private readonly external = new Map<string /** URL */, UsageRecord<HTMLLinkElement>>();\n\n /**\n * Set of host DOM nodes that will have styles attached.\n */\n private readonly hosts = new Set<Node>();\n\n /**\n * Whether the application code is currently executing on a server.\n */\n private readonly isServer: boolean;\n\n constructor(\n @Inject(DOCUMENT) private readonly doc: Document,\n @Inject(APP_ID) private readonly appId: string,\n @Inject(CSP_NONCE) @Optional() private readonly nonce?: string | null,\n @Inject(PLATFORM_ID) platformId: object = {},\n ) {\n this.isServer = isPlatformServer(platformId);\n addServerStyles(doc, appId, this.inline, this.external);\n this.hosts.add(doc.head);\n }\n\n /**\n * Adds embedded styles to the DOM via HTML `style` elements.\n * @param styles An array of style content strings.\n */\n addStyles(styles: string[], urls?: string[]): void {\n for (const value of styles) {\n this.addUsage(value, this.inline, createStyleElement);\n }\n\n urls?.forEach((value) => this.addUsage(value, this.external, createLinkElement));\n }\n\n /**\n * Removes embedded styles from the DOM that were added as HTML `style` elements.\n * @param styles An array of style content strings.\n */\n removeStyles(styles: string[], urls?: string[]): void {\n for (const value of styles) {\n this.removeUsage(value, this.inline);\n }\n\n urls?.forEach((value) => this.removeUsage(value, this.external));\n }\n\n protected addUsage<T extends HTMLElement>(\n value: string,\n usages: Map<string, UsageRecord<T>>,\n creator: (value: string, doc: Document) => T,\n ): void {\n // Attempt to get any current usage of the value\n const record = usages.get(value);\n\n // If existing, just increment the usage count\n if (record) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && record.usage === 0) {\n // A usage count of zero indicates a preexisting server generated style.\n // This attribute is solely used for debugging purposes of SSR style reuse.\n record.elements.forEach((element) => element.setAttribute('ng-style-reused', ''));\n }\n record.usage++;\n } else {\n // Otherwise, create an entry to track the elements and add element for each host\n usages.set(value, {\n usage: 1,\n elements: [...this.hosts].map((host) => this.addElement(host, creator(value, this.doc))),\n });\n }\n }\n\n protected removeUsage<T extends HTMLElement>(\n value: string,\n usages: Map<string, UsageRecord<T>>,\n ): void {\n // Attempt to get any current usage of the value\n const record = usages.get(value);\n\n // If there is a record, reduce the usage count and if no longer used,\n // remove from DOM and delete usage record.\n if (record) {\n record.usage--;\n if (record.usage <= 0) {\n removeElements(record.elements);\n usages.delete(value);\n }\n }\n }\n\n ngOnDestroy(): void {\n for (const [, {elements}] of [...this.inline, ...this.external]) {\n removeElements(elements);\n }\n this.hosts.clear();\n }\n\n /**\n * Adds a host node to the set of style hosts and adds all existing style usage to\n * the newly added host node.\n *\n * This is currently only used for Shadow DOM encapsulation mode.\n */\n addHost(hostNode: Node): void {\n this.hosts.add(hostNode);\n\n // Add existing styles to new host\n for (const [style, {elements}] of this.inline) {\n elements.push(this.addElement(hostNode, createStyleElement(style, this.doc)));\n }\n for (const [url, {elements}] of this.external) {\n elements.push(this.addElement(hostNode, createLinkElement(url, this.doc)));\n }\n }\n\n removeHost(hostNode: Node): void {\n this.hosts.delete(hostNode);\n }\n\n private addElement<T extends HTMLElement>(host: Node, element: T): T {\n // Add a nonce if present\n if (this.nonce) {\n element.setAttribute('nonce', this.nonce);\n }\n\n // Add application identifier when on the server to support client-side reuse\n if (this.isServer) {\n element.setAttribute(APP_ID_ATTRIBUTE_NAME, this.appId);\n }\n\n // Insert the element into the DOM with the host node as parent\n return host.appendChild(element);\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 */\nimport { DOCUMENT, isPlatformServer, ɵgetDOM as getDOM } from '@angular/common';\nimport { APP_ID, CSP_NONCE, Inject, Injectable, InjectionToken, NgZone, PLATFORM_ID, RendererStyleFlags2, ViewEncapsulation, ɵRuntimeError as RuntimeError, ɵTracingService as TracingService, Optional, } from '@angular/core';\nimport { EventManager } from './events/event_manager';\nimport { createLinkElement, SharedStylesHost } from './shared_styles_host';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./events/event_manager\";\nimport * as i2 from \"./shared_styles_host\";\nexport const NAMESPACE_URIS = {\n 'svg': 'http://www.w3.org/2000/svg',\n 'xhtml': 'http://www.w3.org/1999/xhtml',\n 'xlink': 'http://www.w3.org/1999/xlink',\n 'xml': 'http://www.w3.org/XML/1998/namespace',\n 'xmlns': 'http://www.w3.org/2000/xmlns/',\n 'math': 'http://www.w3.org/1998/Math/MathML',\n};\nconst COMPONENT_REGEX = /%COMP%/g;\nconst SOURCEMAP_URL_REGEXP = /\\/\\*#\\s*sourceMappingURL=(.+?)\\s*\\*\\//;\nconst PROTOCOL_REGEXP = /^https?:/;\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\n/**\n * The default value for the `REMOVE_STYLES_ON_COMPONENT_DESTROY` DI token.\n */\nconst REMOVE_STYLES_ON_COMPONENT_DESTROY_DEFAULT = true;\n/**\n * A DI token that indicates whether styles\n * of destroyed components should be removed from DOM.\n *\n * By default, the value is set to `true`.\n * @publicApi\n */\nexport const REMOVE_STYLES_ON_COMPONENT_DESTROY = new InjectionToken(ngDevMode ? 'RemoveStylesOnCompDestroy' : '', {\n providedIn: 'root',\n factory: () => REMOVE_STYLES_ON_COMPONENT_DESTROY_DEFAULT,\n});\nexport function shimContentAttribute(componentShortId) {\n return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\nexport function shimHostAttribute(componentShortId) {\n return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\nexport function shimStylesContent(compId, styles) {\n return styles.map((s) => s.replace(COMPONENT_REGEX, compId));\n}\n/**\n * Prepends a baseHref to the `sourceMappingURL` within the provided CSS content.\n * If the `sourceMappingURL` contains an inline (encoded) map, the function skips processing.\n *\n * @note For inline stylesheets, the `sourceMappingURL` is relative to the page's origin\n * and not the provided baseHref. This function is needed as when accessing the page with a URL\n * containing two or more segments.\n * For example, if the baseHref is set to `/`, and you visit a URL like `http://localhost/foo/bar`,\n * the map would be requested from `http://localhost/foo/bar/comp.css.map` instead of what you'd expect,\n * which is `http://localhost/comp.css.map`. This behavior is corrected by modifying the `sourceMappingURL`\n * to ensure external source maps are loaded relative to the baseHref.\n *\n\n * @param baseHref - The base URL to prepend to the `sourceMappingURL`.\n * @param styles - An array of CSS content strings, each potentially containing a `sourceMappingURL`.\n * @returns The updated array of CSS content strings with modified `sourceMappingURL` values,\n * or the original content if no modification is needed.\n */\nexport function addBaseHrefToCssSourceMap(baseHref, styles) {\n if (!baseHref) {\n return styles;\n }\n const absoluteBaseHrefUrl = new URL(baseHref, 'http://localhost');\n return styles.map((cssContent) => {\n if (!cssContent.includes('sourceMappingURL=')) {\n return cssContent;\n }\n return cssContent.replace(SOURCEMAP_URL_REGEXP, (_, sourceMapUrl) => {\n if (sourceMapUrl[0] === '/' ||\n sourceMapUrl.startsWith('data:') ||\n PROTOCOL_REGEXP.test(sourceMapUrl)) {\n return `/*# sourceMappingURL=${sourceMapUrl} */`;\n }\n const { pathname: resolvedSourceMapUrl } = new URL(sourceMapUrl, absoluteBaseHrefUrl);\n return `/*# sourceMappingURL=${resolvedSourceMapUrl} */`;\n });\n });\n}\nexport class DomRendererFactory2 {\n eventManager;\n sharedStylesHost;\n appId;\n removeStylesOnCompDestroy;\n doc;\n platformId;\n ngZone;\n nonce;\n tracingService;\n rendererByCompId = new Map();\n defaultRenderer;\n platformIsServer;\n constructor(eventManager, sharedStylesHost, appId, removeStylesOnCompDestroy, doc, platformId, ngZone, nonce = null, tracingService = null) {\n this.eventManager = eventManager;\n this.sharedStylesHost = sharedStylesHost;\n this.appId = appId;\n this.removeStylesOnCompDestroy = removeStylesOnCompDestroy;\n this.doc = doc;\n this.platformId = platformId;\n this.ngZone = ngZone;\n this.nonce = nonce;\n this.tracingService = tracingService;\n this.platformIsServer = isPlatformServer(platformId);\n this.defaultRenderer = new DefaultDomRenderer2(eventManager, doc, ngZone, this.platformIsServer, this.tracingService);\n }\n createRenderer(element, type) {\n if (!element || !type) {\n return this.defaultRenderer;\n }\n if (this.platformIsServer && type.encapsulation === ViewEncapsulation.ShadowDom) {\n // Domino does not support shadow DOM.\n type = { ...type, encapsulation: ViewEncapsulation.Emulated };\n }\n const renderer = this.getOrCreateRenderer(element, type);\n // Renderers have different logic due to different encapsulation behaviours.\n // Ex: for emulated, an attribute is added to the element.\n if (renderer instanceof EmulatedEncapsulationDomRenderer2) {\n renderer.applyToHost(element);\n }\n else if (renderer instanceof NoneEncapsulationDomRenderer) {\n renderer.applyStyles();\n }\n return renderer;\n }\n getOrCreateRenderer(element, type) {\n const rendererByCompId = this.rendererByCompId;\n let renderer = rendererByCompId.get(type.id);\n if (!renderer) {\n const doc = this.doc;\n const ngZone = this.ngZone;\n const eventManager = this.eventManager;\n const sharedStylesHost = this.sharedStylesHost;\n const removeStylesOnCompDestroy = this.removeStylesOnCompDestroy;\n const platformIsServer = this.platformIsServer;\n const tracingService = this.tracingService;\n switch (type.encapsulation) {\n case ViewEncapsulation.Emulated:\n renderer = new EmulatedEncapsulationDomRenderer2(eventManager, sharedStylesHost, type, this.appId, removeStylesOnCompDestroy, doc, ngZone, platformIsServer, tracingService);\n break;\n case ViewEncapsulation.ShadowDom:\n return new ShadowDomRenderer(eventManager, sharedStylesHost, element, type, doc, ngZone, this.nonce, platformIsServer, tracingService);\n default:\n renderer = new NoneEncapsulationDomRenderer(eventManager, sharedStylesHost, type, removeStylesOnCompDestroy, doc, ngZone, platformIsServer, tracingService);\n break;\n }\n rendererByCompId.set(type.id, renderer);\n }\n return renderer;\n }\n ngOnDestroy() {\n this.rendererByCompId.clear();\n }\n /**\n * Used during HMR to clear any cached data about a component.\n * @param componentId ID of the component that is being replaced.\n */\n componentReplaced(componentId) {\n this.rendererByCompId.delete(componentId);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.2.18\", ngImport: i0, type: DomRendererFactory2, deps: [{ token: i1.EventManager }, { token: i2.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 });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"19.2.18\", ngImport: i0, type: DomRendererFactory2 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.2.18\", ngImport: i0, type: DomRendererFactory2, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i1.EventManager }, { type: i2.SharedStylesHost }, { type: undefined, decorators: [{\n type: Inject,\n args: [APP_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [REMOVE_STYLES_ON_COMPONENT_DESTROY]\n }] }, { type: Document, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: Object, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [CSP_NONCE]\n }] }, { type: i0.ɵTracingService, decorators: [{\n type: Inject,\n args: [TracingService]\n }, {\n type: Optional\n }] }] });\nclass DefaultDomRenderer2 {\n eventManager;\n doc;\n ngZone;\n platformIsServer;\n tracingService;\n data = Object.create(null);\n /**\n * By default this renderer throws when encountering synthetic properties\n * This can be disabled for example by the AsyncAnimationRendererFactory\n */\n throwOnSyntheticProps = true;\n constructor(eventManager, doc, ngZone, platformIsServer, tracingService) {\n this.eventManager = eventManager;\n this.doc = doc;\n this.ngZone = ngZone;\n this.platformIsServer = platformIsServer;\n this.tracingService = tracingService;\n }\n destroy() { }\n destroyNode = null;\n createElement(name, namespace) {\n if (namespace) {\n // TODO: `|| namespace` was added in\n // https://github.com/angular/angular/commit/2b9cc8503d48173492c29f5a271b61126104fbdb to\n // support how Ivy passed around the namespace URI rather than short name at the time. It did\n // not, however extend the support to other parts of the system (setAttribute, setAttribute,\n // and the ServerRenderer). We should decide what exactly the semantics for dealing with\n // namespaces should be and make it consistent.\n // Related issues:\n // https://github.com/angular/angular/issues/44028\n // https://github.com/angular/angular/issues/44883\n return this.doc.createElementNS(NAMESPACE_URIS[namespace] || namespace, name);\n }\n return this.doc.createElement(name);\n }\n createComment(value) {\n return this.doc.createComment(value);\n }\n createText(value) {\n return this.doc.createTextNode(value);\n }\n appendChild(parent, newChild) {\n const targetParent = isTemplateNode(parent) ? parent.content : parent;\n targetParent.appendChild(newChild);\n }\n insertBefore(parent, newChild, refChild) {\n if (parent) {\n const targetParent = isTemplateNode(parent) ? parent.content : parent;\n targetParent.insertBefore(newChild, refChild);\n }\n }\n removeChild(_parent, oldChild) {\n oldChild.remove();\n }\n selectRootElement(selectorOrNode, preserveContent) {\n let el = typeof selectorOrNode === 'string' ? this.doc.querySelector(selectorOrNode) : selectorOrNode;\n if (!el) {\n throw new RuntimeError(-5104 /* RuntimeErrorCode.ROOT_NODE_NOT_FOUND */, (typeof ngDevMode === 'undefined' || ngDevMode) &&\n `The selector \"${selectorOrNode}\" did not match any elements`);\n }\n if (!preserveContent) {\n el.textContent = '';\n }\n return el;\n }\n parentNode(node) {\n return node.parentNode;\n }\n nextSibling(node) {\n return node.nextSibling;\n }\n setAttribute(el, name, value, namespace) {\n if (namespace) {\n name = namespace + ':' + name;\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.setAttributeNS(namespaceUri, name, value);\n }\n else {\n el.setAttribute(name, value);\n }\n }\n else {\n el.setAttribute(name, value);\n }\n }\n removeAttribute(el, name, namespace) {\n if (namespace) {\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.removeAttributeNS(namespaceUri, name);\n }\n else {\n el.removeAttribute(`${namespace}:${name}`);\n }\n }\n else {\n el.removeAttribute(name);\n }\n }\n addClass(el, name) {\n el.classList.add(name);\n }\n removeClass(el, name) {\n el.classList.remove(name);\n }\n setStyle(el, style, value, flags) {\n if (flags & (RendererStyleFlags2.DashCase | RendererStyleFlags2.Important)) {\n el.style.setProperty(style, value, flags & RendererStyleFlags2.Important ? 'important' : '');\n }\n else {\n el.style[style] = value;\n }\n }\n removeStyle(el, style, flags) {\n if (flags & RendererStyleFlags2.DashCase) {\n // removeProperty has no effect when used on camelCased properties.\n el.style.removeProperty(style);\n }\n else {\n el.style[style] = '';\n }\n }\n setProperty(el, name, value) {\n if (el == null) {\n return;\n }\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n this.throwOnSyntheticProps &&\n checkNoSyntheticProp(name, 'property');\n el[name] = value;\n }\n setValue(node, value) {\n node.nodeValue = value;\n }\n listen(target, event, callback, options) {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n this.throwOnSyntheticProps &&\n checkNoSyntheticProp(event, 'listener');\n if (typeof target === 'string') {\n target = getDOM().getGlobalEventTarget(this.doc, target);\n if (!target) {\n throw new RuntimeError(5102 /* RuntimeErrorCode.UNSUPPORTED_EVENT_TARGET */, (typeof ngDevMode === 'undefined' || ngDevMode) &&\n `Unsupported event target ${target} for event ${event}`);\n }\n }\n let wrappedCallback = this.decoratePreventDefault(callback);\n if (this.tracingService?.wrapEventListener) {\n wrappedCallback = this.tracingService.wrapEventListener(target, event, wrappedCallback);\n }\n return this.eventManager.addEventListener(target, event, wrappedCallback, options);\n }\n decoratePreventDefault(eventHandler) {\n // `DebugNode.triggerEventHandler` needs to know if the listener was created with\n // decoratePreventDefault or is a listener added outside the Angular context so it can handle\n // the two differently. In the first case, the special '__ngUnwrap__' token is passed to the\n // unwrap the listener (see below).\n return (event) => {\n // Ivy uses '__ngUnwrap__' as a special token that allows us to unwrap the function\n // so that it can be invoked programmatically by `DebugNode.triggerEventHandler`. The\n // debug_node can inspect the listener toString contents for the existence of this special\n // token. Because the token is a string literal, it is ensured to not be modified by compiled\n // code.\n if (event === '__ngUnwrap__') {\n return eventHandler;\n }\n // Run the event handler inside the ngZone because event handlers are not patched\n // by Zone on the server. This is required only for tests.\n const allowDefaultBehavior = this.platformIsServer\n ? this.ngZone.runGuarded(() => eventHandler(event))\n : eventHandler(event);\n if (allowDefaultBehavior === false) {\n event.preventDefault();\n }\n return undefined;\n };\n }\n}\nconst AT_CHARCODE = (() => '@'.charCodeAt(0))();\nfunction checkNoSyntheticProp(name, nameKind) {\n if (name.charCodeAt(0) === AT_CHARCODE) {\n throw new RuntimeError(5105 /* RuntimeErrorCode.UNEXPECTED_SYNTHETIC_PROPERTY */, `Unexpected synthetic ${nameKind} ${name} found. Please make sure that:\n - Make sure \\`provideAnimationsAsync()\\`, \\`provideAnimations()\\` or \\`provideNoopAnimations()\\` call was added to a list of providers used to bootstrap an application.\n - There is a corresponding animation configuration named \\`${name}\\` defined in the \\`animations\\` field of the \\`@Component\\` decorator (see https://angular.dev/api/core/Component#animations).`);\n }\n}\nfunction isTemplateNode(node) {\n return node.tagName === 'TEMPLATE' && node.content !== undefined;\n}\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n sharedStylesHost;\n hostEl;\n shadowRoot;\n constructor(eventManager, sharedStylesHost, hostEl, component, doc, ngZone, nonce, platformIsServer, tracingService) {\n super(eventManager, doc, ngZone, platformIsServer, tracingService);\n this.sharedStylesHost = sharedStylesHost;\n this.hostEl = hostEl;\n this.shadowRoot = hostEl.attachShadow({ mode: 'open' });\n this.sharedStylesHost.addHost(this.shadowRoot);\n let styles = component.styles;\n if (ngDevMode) {\n // We only do this in development, as for production users should not add CSS sourcemaps to components.\n const baseHref = getDOM().getBaseHref(doc) ?? '';\n styles = addBaseHrefToCssSourceMap(baseHref, styles);\n }\n styles = shimStylesContent(component.id, styles);\n for (const style of styles) {\n const styleEl = document.createElement('style');\n if (nonce) {\n styleEl.setAttribute('nonce', nonce);\n }\n styleEl.textContent = style;\n this.shadowRoot.appendChild(styleEl);\n }\n // Apply any external component styles to the shadow root for the component's element.\n // The ShadowDOM renderer uses an alternative execution path for component styles that\n // does not use the SharedStylesHost that other encapsulation modes leverage. Much like\n // the manual addition of embedded styles directly above, any external stylesheets\n // must be manually added here to ensure ShadowDOM components are correctly styled.\n // TODO: Consider reworking the DOM Renderers to consolidate style handling.\n const styleUrls = component.getExternalStyles?.();\n if (styleUrls) {\n for (const styleUrl of styleUrls) {\n const linkEl = createLinkElement(styleUrl, doc);\n if (nonce) {\n linkEl.setAttribute('nonce', nonce);\n }\n this.shadowRoot.appendChild(linkEl);\n }\n }\n }\n nodeOrShadowRoot(node) {\n return node === this.hostEl ? this.shadowRoot : node;\n }\n appendChild(parent, newChild) {\n return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n }\n insertBefore(parent, newChild, refChild) {\n return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n }\n removeChild(_parent, oldChild) {\n return super.removeChild(null, oldChild);\n }\n parentNode(node) {\n return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\n }\n destroy() {\n this.sharedStylesHost.removeHost(this.shadowRoot);\n }\n}\nclass NoneEncapsulationDomRenderer extends DefaultDomRenderer2 {\n sharedStylesHost;\n removeStylesOnCompDestroy;\n styles;\n styleUrls;\n constructor(eventManager, sharedStylesHost, component, removeStylesOnCompDestroy, doc, ngZone, platformIsServer, tracingService, compId) {\n super(eventManager, doc, ngZone, platformIsServer, tracingService);\n this.sharedStylesHost = sharedStylesHost;\n this.removeStylesOnCompDestroy = removeStylesOnCompDestroy;\n let styles = component.styles;\n if (ngDevMode) {\n // We only do this in development, as for production users should not add CSS sourcemaps to components.\n const baseHref = getDOM().getBaseHref(doc) ?? '';\n styles = addBaseHrefToCssSourceMap(baseHref, styles);\n }\n this.styles = compId ? shimStylesContent(compId, styles) : styles;\n this.styleUrls = component.getExternalStyles?.(compId);\n }\n applyStyles() {\n this.sharedStylesHost.addStyles(this.styles, this.styleUrls);\n }\n destroy() {\n if (!this.removeStylesOnCompDestroy) {\n return;\n }\n this.sharedStylesHost.removeStyles(this.styles, this.styleUrls);\n }\n}\nclass EmulatedEncapsulationDomRenderer2 extends NoneEncapsulationDomRenderer {\n contentAttr;\n hostAttr;\n constructor(eventManager, sharedStylesHost, component, appId, removeStylesOnCompDestroy, doc, ngZone, platformIsServer, tracingService) {\n const compId = appId + '-' + component.id;\n super(eventManager, sharedStylesHost, component, removeStylesOnCompDestroy, doc, ngZone, platformIsServer, tracingService, compId);\n this.contentAttr = shimContentAttribute(compId);\n this.hostAttr = shimHostAttribute(compId);\n }\n applyToHost(element) {\n this.applyStyles();\n this.setAttribute(element, this.hostAttr, '');\n }\n createElement(parent, name) {\n const el = super.createElement(parent, name);\n super.setAttribute(el, this.contentAttr, '');\n return el;\n }\n}\n//# sourceMappingURL=dom_renderer.js.map"],"names":["RuntimeError","i1.EventManager","i2.SharedStylesHost","TracingService","getDOM"],"mappings":"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"}
/**
* @license Angular v19.2.17
* @license Angular v19.2.18
* (c) 2010-2025 Google LLC. https://angular.io/

@@ -167,6 +167,6 @@ * License: MIT

}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: Meta, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: Meta, providedIn: 'root' });
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: Meta, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: Meta, providedIn: 'root' });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: Meta, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: Meta, decorators: [{
type: Injectable,

@@ -213,6 +213,6 @@ args: [{ providedIn: 'root' }]

}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: Title, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: Title, providedIn: 'root' });
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: Title, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: Title, providedIn: 'root' });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: Title, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: Title, decorators: [{
type: Injectable,

@@ -492,6 +492,6 @@ args: [{ providedIn: 'root' }]

}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: HammerGestureConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: HammerGestureConfig });
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: HammerGestureConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: HammerGestureConfig });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: HammerGestureConfig, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: HammerGestureConfig, decorators: [{
type: Injectable

@@ -597,6 +597,6 @@ }] });

}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: HammerGesturesPlugin, deps: [{ token: DOCUMENT }, { token: HAMMER_GESTURE_CONFIG }, { token: i0.Injector }, { token: HAMMER_LOADER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: HammerGesturesPlugin });
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: HammerGesturesPlugin, deps: [{ token: DOCUMENT }, { token: HAMMER_GESTURE_CONFIG }, { token: i0.Injector }, { token: HAMMER_LOADER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: HammerGesturesPlugin });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: HammerGesturesPlugin, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: HammerGesturesPlugin, decorators: [{
type: Injectable

@@ -627,5 +627,5 @@ }], ctorParameters: () => [{ type: undefined, decorators: [{

class HammerModule {
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: HammerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: HammerModule });
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: HammerModule, providers: [
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: HammerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: HammerModule });
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: HammerModule, providers: [
{

@@ -640,3 +640,3 @@ provide: EVENT_MANAGER_PLUGINS,

}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: HammerModule, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: HammerModule, decorators: [{
type: NgModule,

@@ -688,6 +688,6 @@ args: [{

class DomSanitizer {
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DomSanitizer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DomSanitizer, providedIn: 'root', useExisting: i0.forwardRef(() => DomSanitizerImpl) });
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DomSanitizer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DomSanitizer, providedIn: 'root', useExisting: i0.forwardRef(() => DomSanitizerImpl) });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DomSanitizer, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DomSanitizer, decorators: [{
type: Injectable,

@@ -755,6 +755,6 @@ args: [{ providedIn: 'root', useExisting: forwardRef(() => DomSanitizerImpl) }]

}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DomSanitizerImpl, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DomSanitizerImpl, providedIn: 'root' });
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DomSanitizerImpl, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DomSanitizerImpl, providedIn: 'root' });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DomSanitizerImpl, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DomSanitizerImpl, decorators: [{
type: Injectable,

@@ -968,5 +968,5 @@ args: [{ providedIn: 'root' }]

*/
const VERSION = new Version('19.2.17');
const VERSION = new Version('19.2.18');
export { By, DomSanitizer, EVENT_MANAGER_PLUGINS, EventManagerPlugin, HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HammerGestureConfig, HammerModule, HydrationFeatureKind, Meta, Title, VERSION, disableDebugTools, enableDebugTools, provideClientHydration, withEventReplay, withHttpTransferCacheOptions, withI18nSupport, withIncrementalHydration, withNoHttpTransferCache, DomSanitizerImpl as ɵDomSanitizerImpl, HammerGesturesPlugin as ɵHammerGesturesPlugin };
//# sourceMappingURL=platform-browser.mjs.map

@@ -1,1 +0,1 @@

{"version":3,"file":"platform-browser.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/browser/meta.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/browser/title.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/dom/util.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/browser/tools/common_tools.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/browser/tools/tools.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/dom/debug/by.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/dom/events/hammer_gestures.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/security/dom_sanitization_service.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/hydration.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/version.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 {DOCUMENT, ɵDomAdapter as DomAdapter, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\n/**\n * Represents the attributes of an HTML `<meta>` element. The element itself is\n * represented by the internal `HTMLMetaElement`.\n *\n * @see [HTML meta tag](https://developer.mozilla.org/docs/Web/HTML/Element/meta)\n * @see {@link Meta}\n *\n * @publicApi\n */\nexport type MetaDefinition = {\n charset?: string;\n content?: string;\n httpEquiv?: string;\n id?: string;\n itemprop?: string;\n name?: string;\n property?: string;\n scheme?: string;\n url?: string;\n} & {\n // TODO(IgorMinar): this type looks wrong\n [prop: string]: string;\n};\n\n/**\n * A service for managing HTML `<meta>` tags.\n *\n * Properties of the `MetaDefinition` object match the attributes of the\n * HTML `<meta>` tag. These tags define document metadata that is important for\n * things like configuring a Content Security Policy, defining browser compatibility\n * and security settings, setting HTTP Headers, defining rich content for social sharing,\n * and Search Engine Optimization (SEO).\n *\n * To identify specific `<meta>` tags in a document, use an attribute selection\n * string in the format `\"tag_attribute='value string'\"`.\n * For example, an `attrSelector` value of `\"name='description'\"` matches a tag\n * whose `name` attribute has the value `\"description\"`.\n * Selectors are used with the `querySelector()` Document method,\n * in the format `meta[{attrSelector}]`.\n *\n * @see [HTML meta tag](https://developer.mozilla.org/docs/Web/HTML/Element/meta)\n * @see [Document.querySelector()](https://developer.mozilla.org/docs/Web/API/Document/querySelector)\n *\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root'})\nexport class Meta {\n private _dom: DomAdapter;\n constructor(@Inject(DOCUMENT) private _doc: any) {\n this._dom = getDOM();\n }\n /**\n * Retrieves or creates a specific `<meta>` tag element in the current HTML document.\n * In searching for an existing tag, Angular attempts to match the `name` or `property` attribute\n * values in the provided tag definition, and verifies that all other attribute values are equal.\n * If an existing element is found, it is returned and is not modified in any way.\n * @param tag The definition of a `<meta>` element to match or create.\n * @param forceCreation True to create a new element without checking whether one already exists.\n * @returns The existing element with the same attributes and values if found,\n * the new element if no match is found, or `null` if the tag parameter is not defined.\n */\n addTag(tag: MetaDefinition, forceCreation: boolean = false): HTMLMetaElement | null {\n if (!tag) return null;\n return this._getOrCreateElement(tag, forceCreation);\n }\n\n /**\n * Retrieves or creates a set of `<meta>` tag elements in the current HTML document.\n * In searching for an existing tag, Angular attempts to match the `name` or `property` attribute\n * values in the provided tag definition, and verifies that all other attribute values are equal.\n * @param tags An array of tag definitions to match or create.\n * @param forceCreation True to create new elements without checking whether they already exist.\n * @returns The matching elements if found, or the new elements.\n */\n addTags(tags: MetaDefinition[], forceCreation: boolean = false): HTMLMetaElement[] {\n if (!tags) return [];\n return tags.reduce((result: HTMLMetaElement[], tag: MetaDefinition) => {\n if (tag) {\n result.push(this._getOrCreateElement(tag, forceCreation));\n }\n return result;\n }, []);\n }\n\n /**\n * Retrieves a `<meta>` tag element in the current HTML document.\n * @param attrSelector The tag attribute and value to match against, in the format\n * `\"tag_attribute='value string'\"`.\n * @returns The matching element, if any.\n */\n getTag(attrSelector: string): HTMLMetaElement | null {\n if (!attrSelector) return null;\n return this._doc.querySelector(`meta[${attrSelector}]`) || null;\n }\n\n /**\n * Retrieves a set of `<meta>` tag elements in the current HTML document.\n * @param attrSelector The tag attribute and value to match against, in the format\n * `\"tag_attribute='value string'\"`.\n * @returns The matching elements, if any.\n */\n getTags(attrSelector: string): HTMLMetaElement[] {\n if (!attrSelector) return [];\n const list /*NodeList*/ = this._doc.querySelectorAll(`meta[${attrSelector}]`);\n return list ? [].slice.call(list) : [];\n }\n\n /**\n * Modifies an existing `<meta>` tag element in the current HTML document.\n * @param tag The tag description with which to replace the existing tag content.\n * @param selector A tag attribute and value to match against, to identify\n * an existing tag. A string in the format `\"tag_attribute=`value string`\"`.\n * If not supplied, matches a tag with the same `name` or `property` attribute value as the\n * replacement tag.\n * @return The modified element.\n */\n updateTag(tag: MetaDefinition, selector?: string): HTMLMetaElement | null {\n if (!tag) return null;\n selector = selector || this._parseSelector(tag);\n const meta: HTMLMetaElement = this.getTag(selector)!;\n if (meta) {\n return this._setMetaElementAttributes(tag, meta);\n }\n return this._getOrCreateElement(tag, true);\n }\n\n /**\n * Removes an existing `<meta>` tag element from the current HTML document.\n * @param attrSelector A tag attribute and value to match against, to identify\n * an existing tag. A string in the format `\"tag_attribute=`value string`\"`.\n */\n removeTag(attrSelector: string): void {\n this.removeTagElement(this.getTag(attrSelector)!);\n }\n\n /**\n * Removes an existing `<meta>` tag element from the current HTML document.\n * @param meta The tag definition to match against to identify an existing tag.\n */\n removeTagElement(meta: HTMLMetaElement): void {\n if (meta) {\n this._dom.remove(meta);\n }\n }\n\n private _getOrCreateElement(\n meta: MetaDefinition,\n forceCreation: boolean = false,\n ): HTMLMetaElement {\n if (!forceCreation) {\n const selector: string = this._parseSelector(meta);\n // It's allowed to have multiple elements with the same name so it's not enough to\n // just check that element with the same name already present on the page. We also need to\n // check if element has tag attributes\n const elem = this.getTags(selector).filter((elem) => this._containsAttributes(meta, elem))[0];\n if (elem !== undefined) return elem;\n }\n const element: HTMLMetaElement = this._dom.createElement('meta') as HTMLMetaElement;\n this._setMetaElementAttributes(meta, element);\n const head = this._doc.getElementsByTagName('head')[0];\n head.appendChild(element);\n return element;\n }\n\n private _setMetaElementAttributes(tag: MetaDefinition, el: HTMLMetaElement): HTMLMetaElement {\n Object.keys(tag).forEach((prop: string) =>\n el.setAttribute(this._getMetaKeyMap(prop), tag[prop]),\n );\n return el;\n }\n\n private _parseSelector(tag: MetaDefinition): string {\n const attr: string = tag.name ? 'name' : 'property';\n return `${attr}=\"${tag[attr]}\"`;\n }\n\n private _containsAttributes(tag: MetaDefinition, elem: HTMLMetaElement): boolean {\n return Object.keys(tag).every(\n (key: string) => elem.getAttribute(this._getMetaKeyMap(key)) === tag[key],\n );\n }\n\n private _getMetaKeyMap(prop: string): string {\n return META_KEYS_MAP[prop] || prop;\n }\n}\n\n/**\n * Mapping for MetaDefinition properties with their correct meta attribute names\n */\nconst META_KEYS_MAP: {[prop: string]: string} = {\n httpEquiv: 'http-equiv',\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} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\n/**\n * A service that can be used to get and set the title of a current HTML document.\n *\n * Since an Angular application can't be bootstrapped on the entire HTML document (`<html>` tag)\n * it is not possible to bind to the `text` property of the `HTMLTitleElement` elements\n * (representing the `<title>` tag). Instead, this service can be used to set and get the current\n * title value.\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root'})\nexport class Title {\n constructor(@Inject(DOCUMENT) private _doc: any) {}\n /**\n * Get the title of the current HTML document.\n */\n getTitle(): string {\n return this._doc.title;\n }\n\n /**\n * Set the title of the current HTML document.\n * @param newTitle\n */\n setTitle(newTitle: string) {\n this._doc.title = newTitle || '';\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\n/// <reference path=\"../../../goog.d.ts\" />\n\nimport {ɵglobal as global} from '@angular/core';\n\n/**\n * Exports the value under a given `name` in the global property `ng`. For example `ng.probe` if\n * `name` is `'probe'`.\n * @param name Name under which it will be exported. Keep in mind this will be a property of the\n * global `ng` object.\n * @param value The value to export.\n */\nexport function exportNgVar(name: string, value: any): void {\n if (typeof COMPILED === 'undefined' || !COMPILED) {\n // Note: we can't export `ng` when using closure enhanced optimization as:\n // - closure declares globals itself for minified names, which sometimes clobber our `ng` global\n // - we can't declare a closure extern as the namespace `ng` is already used within Google\n // for typings for angularJS (via `goog.provide('ng....')`).\n const ng = (global['ng'] = (global['ng'] as {[key: string]: any} | undefined) || {});\n ng[name] = value;\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 {ApplicationRef, ComponentRef} from '@angular/core';\n\nexport class ChangeDetectionPerfRecord {\n constructor(\n public msPerTick: number,\n public numTicks: number,\n ) {}\n}\n\n/**\n * Entry point for all Angular profiling-related debug tools. This object\n * corresponds to the `ng.profiler` in the dev console.\n */\nexport class AngularProfiler {\n appRef: ApplicationRef;\n\n constructor(ref: ComponentRef<any>) {\n this.appRef = ref.injector.get(ApplicationRef);\n }\n\n // tslint:disable:no-console\n /**\n * Exercises change detection in a loop and then prints the average amount of\n * time in milliseconds how long a single round of change detection takes for\n * the current state of the UI. It runs a minimum of 5 rounds for a minimum\n * of 500 milliseconds.\n *\n * Optionally, a user may pass a `config` parameter containing a map of\n * options. Supported options are:\n *\n * `record` (boolean) - causes the profiler to record a CPU profile while\n * it exercises the change detector. Example:\n *\n * ```ts\n * ng.profiler.timeChangeDetection({record: true})\n * ```\n */\n timeChangeDetection(config: any): ChangeDetectionPerfRecord {\n const record = config && config['record'];\n const profileName = 'Change Detection';\n // Profiler is not available in Android browsers without dev tools opened\n if (record && 'profile' in console && typeof console.profile === 'function') {\n console.profile(profileName);\n }\n const start = performance.now();\n let numTicks = 0;\n while (numTicks < 5 || performance.now() - start < 500) {\n this.appRef.tick();\n numTicks++;\n }\n const end = performance.now();\n if (record && 'profileEnd' in console && typeof console.profileEnd === 'function') {\n console.profileEnd(profileName);\n }\n const msPerTick = (end - start) / numTicks;\n console.log(`ran ${numTicks} change detection cycles`);\n console.log(`${msPerTick.toFixed(2)} ms per check`);\n\n return new ChangeDetectionPerfRecord(msPerTick, numTicks);\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 {ComponentRef} from '@angular/core';\n\nimport {exportNgVar} from '../../dom/util';\n\nimport {AngularProfiler} from './common_tools';\n\nconst PROFILER_GLOBAL_NAME = 'profiler';\n\n/**\n * Enabled Angular debug tools that are accessible via your browser's\n * developer console.\n *\n * Usage:\n *\n * 1. Open developer console (e.g. in Chrome Ctrl + Shift + j)\n * 1. Type `ng.` (usually the console will show auto-complete suggestion)\n * 1. Try the change detection profiler `ng.profiler.timeChangeDetection()`\n * then hit Enter.\n *\n * @publicApi\n */\nexport function enableDebugTools<T>(ref: ComponentRef<T>): ComponentRef<T> {\n exportNgVar(PROFILER_GLOBAL_NAME, new AngularProfiler(ref));\n return ref;\n}\n\n/**\n * Disables Angular tools.\n *\n * @publicApi\n */\nexport function disableDebugTools(): void {\n exportNgVar(PROFILER_GLOBAL_NAME, null);\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 {DebugElement, DebugNode, Predicate, Type} from '@angular/core';\n\n/**\n * Predicates for use with {@link DebugElement}'s query functions.\n *\n * @publicApi\n */\nexport class By {\n /**\n * Match all nodes.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_all'}\n */\n static all(): Predicate<DebugNode> {\n return () => true;\n }\n\n /**\n * Match elements by the given CSS selector.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_css'}\n */\n static css(selector: string): Predicate<DebugElement> {\n return (debugElement) => {\n return debugElement.nativeElement != null\n ? elementMatches(debugElement.nativeElement, selector)\n : false;\n };\n }\n\n /**\n * Match nodes that have the given directive present.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'}\n */\n static directive(type: Type<any>): Predicate<DebugNode> {\n return (debugNode) => debugNode.providerTokens!.indexOf(type) !== -1;\n }\n}\n\nfunction elementMatches(n: any, selector: string): boolean {\n if (getDOM().isElementNode(n)) {\n return (\n (n.matches && n.matches(selector)) ||\n (n.msMatchesSelector && n.msMatchesSelector(selector)) ||\n (n.webkitMatchesSelector && n.webkitMatchesSelector(selector))\n );\n }\n\n return false;\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\n/// <reference types=\"hammerjs\" />\n\nimport {DOCUMENT} from '@angular/common';\nimport {\n Inject,\n Injectable,\n InjectionToken,\n Injector,\n NgModule,\n Optional,\n ɵConsole as Console,\n} from '@angular/core';\n\nimport {EVENT_MANAGER_PLUGINS, EventManagerPlugin} from './event_manager';\n\n/**\n * Supported HammerJS recognizer event names.\n */\nconst EVENT_NAMES = {\n // pan\n 'pan': true,\n 'panstart': true,\n 'panmove': true,\n 'panend': true,\n 'pancancel': true,\n 'panleft': true,\n 'panright': true,\n 'panup': true,\n 'pandown': true,\n // pinch\n 'pinch': true,\n 'pinchstart': true,\n 'pinchmove': true,\n 'pinchend': true,\n 'pinchcancel': true,\n 'pinchin': true,\n 'pinchout': true,\n // press\n 'press': true,\n 'pressup': true,\n // rotate\n 'rotate': true,\n 'rotatestart': true,\n 'rotatemove': true,\n 'rotateend': true,\n 'rotatecancel': true,\n // swipe\n 'swipe': true,\n 'swipeleft': true,\n 'swiperight': true,\n 'swipeup': true,\n 'swipedown': true,\n // tap\n 'tap': true,\n 'doubletap': true,\n};\n\n/**\n * DI token for providing [HammerJS](https://hammerjs.github.io/) support to Angular.\n * @see {@link HammerGestureConfig}\n *\n * @ngModule HammerModule\n * @publicApi\n */\nexport const HAMMER_GESTURE_CONFIG = new InjectionToken<HammerGestureConfig>(\n typeof ngDevMode === 'undefined' || ngDevMode ? 'HammerGestureConfig' : '',\n);\n\n/**\n * Function that loads HammerJS, returning a promise that is resolved once HammerJs is loaded.\n *\n * @publicApi\n */\nexport type HammerLoader = () => Promise<void>;\n\n/**\n * Injection token used to provide a HammerLoader to Angular.\n *\n * @see {@link HammerLoader}\n *\n * @publicApi\n */\nexport const HAMMER_LOADER = new InjectionToken<HammerLoader>(\n typeof ngDevMode === 'undefined' || ngDevMode ? 'HammerLoader' : '',\n);\n\nexport interface HammerInstance {\n on(eventName: string, callback?: Function): void;\n off(eventName: string, callback?: Function): void;\n destroy?(): void;\n}\n\n/**\n * An injectable [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n * for gesture recognition. Configures specific event recognition.\n * @publicApi\n */\n@Injectable()\nexport class HammerGestureConfig {\n /**\n * A set of supported event names for gestures to be used in Angular.\n * Angular supports all built-in recognizers, as listed in\n * [HammerJS documentation](https://hammerjs.github.io/).\n */\n events: string[] = [];\n\n /**\n * Maps gesture event names to a set of configuration options\n * that specify overrides to the default values for specific properties.\n *\n * The key is a supported event name to be configured,\n * and the options object contains a set of properties, with override values\n * to be applied to the named recognizer event.\n * For example, to disable recognition of the rotate event, specify\n * `{\"rotate\": {\"enable\": false}}`.\n *\n * Properties that are not present take the HammerJS default values.\n * For information about which properties are supported for which events,\n * and their allowed and default values, see\n * [HammerJS documentation](https://hammerjs.github.io/).\n *\n */\n overrides: {[key: string]: Object} = {};\n\n /**\n * Properties whose default values can be overridden for a given event.\n * Different sets of properties apply to different events.\n * For information about which properties are supported for which events,\n * and their allowed and default values, see\n * [HammerJS documentation](https://hammerjs.github.io/).\n */\n options?: {\n cssProps?: any;\n domEvents?: boolean;\n enable?: boolean | ((manager: any) => boolean);\n preset?: any[];\n touchAction?: string;\n recognizers?: any[];\n inputClass?: any;\n inputTarget?: EventTarget;\n };\n\n /**\n * Creates a [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n * and attaches it to a given HTML element.\n * @param element The element that will recognize gestures.\n * @returns A HammerJS event-manager object.\n */\n buildHammer(element: HTMLElement): HammerInstance {\n const mc = new Hammer!(element, this.options);\n\n mc.get('pinch').set({enable: true});\n mc.get('rotate').set({enable: true});\n\n for (const eventName in this.overrides) {\n mc.get(eventName).set(this.overrides[eventName]);\n }\n\n return mc;\n }\n}\n\n/**\n * Event plugin that adds Hammer support to an application.\n *\n * @ngModule HammerModule\n */\n@Injectable()\nexport class HammerGesturesPlugin extends EventManagerPlugin {\n private _loaderPromise: Promise<void> | null = null;\n\n constructor(\n @Inject(DOCUMENT) doc: any,\n @Inject(HAMMER_GESTURE_CONFIG) private _config: HammerGestureConfig,\n private _injector: Injector,\n @Optional() @Inject(HAMMER_LOADER) private loader?: HammerLoader | null,\n ) {\n super(doc);\n }\n\n override supports(eventName: string): boolean {\n if (!EVENT_NAMES.hasOwnProperty(eventName.toLowerCase()) && !this.isCustomEvent(eventName)) {\n return false;\n }\n\n if (!(window as any).Hammer && !this.loader) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n // Get a `Console` through an injector to tree-shake the\n // class when it is unused in production.\n const _console = this._injector.get(Console);\n _console.warn(\n `The \"${eventName}\" event cannot be bound because Hammer.JS is not ` +\n `loaded and no custom loader has been specified.`,\n );\n }\n return false;\n }\n\n return true;\n }\n\n override addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const zone = this.manager.getZone();\n eventName = eventName.toLowerCase();\n\n // If Hammer is not present but a loader is specified, we defer adding the event listener\n // until Hammer is loaded.\n if (!(window as any).Hammer && this.loader) {\n this._loaderPromise = this._loaderPromise || zone.runOutsideAngular(() => this.loader!());\n // This `addEventListener` method returns a function to remove the added listener.\n // Until Hammer is loaded, the returned function needs to *cancel* the registration rather\n // than remove anything.\n let cancelRegistration = false;\n let deregister: Function = () => {\n cancelRegistration = true;\n };\n\n zone.runOutsideAngular(() =>\n this._loaderPromise!.then(() => {\n // If Hammer isn't actually loaded when the custom loader resolves, give up.\n if (!(window as any).Hammer) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const _console = this._injector.get(Console);\n _console.warn(`The custom HAMMER_LOADER completed, but Hammer.JS is not present.`);\n }\n deregister = () => {};\n return;\n }\n\n if (!cancelRegistration) {\n // Now that Hammer is loaded and the listener is being loaded for real,\n // the deregistration function changes from canceling registration to\n // removal.\n deregister = this.addEventListener(element, eventName, handler);\n }\n }).catch(() => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const _console = this._injector.get(Console);\n _console.warn(\n `The \"${eventName}\" event cannot be bound because the custom ` +\n `Hammer.JS loader failed.`,\n );\n }\n deregister = () => {};\n }),\n );\n\n // Return a function that *executes* `deregister` (and not `deregister` itself) so that we\n // can change the behavior of `deregister` once the listener is added. Using a closure in\n // this way allows us to avoid any additional data structures to track listener removal.\n return () => {\n deregister();\n };\n }\n\n return zone.runOutsideAngular(() => {\n // Creating the manager bind events, must be done outside of angular\n const mc = this._config.buildHammer(element);\n const callback = function (eventObj: HammerInput) {\n zone.runGuarded(function () {\n handler(eventObj);\n });\n };\n mc.on(eventName, callback);\n return () => {\n mc.off(eventName, callback);\n // destroy mc to prevent memory leak\n if (typeof mc.destroy === 'function') {\n mc.destroy();\n }\n };\n });\n }\n\n isCustomEvent(eventName: string): boolean {\n return this._config.events.indexOf(eventName) > -1;\n }\n}\n\n/**\n * Adds support for HammerJS.\n *\n * Import this module at the root of your application so that Angular can work with\n * HammerJS to detect gesture events.\n *\n * Note that applications still need to include the HammerJS script itself. This module\n * simply sets up the coordination layer between HammerJS and Angular's `EventManager`.\n *\n * @publicApi\n */\n@NgModule({\n providers: [\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: HammerGesturesPlugin,\n multi: true,\n deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, Injector, [new Optional(), HAMMER_LOADER]],\n },\n {provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig},\n ],\n})\nexport class HammerModule {}\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} from '@angular/common';\nimport {\n forwardRef,\n Inject,\n Injectable,\n Sanitizer,\n SecurityContext,\n ɵ_sanitizeHtml as _sanitizeHtml,\n ɵ_sanitizeUrl as _sanitizeUrl,\n ɵallowSanitizationBypassAndThrow as allowSanitizationBypassOrThrow,\n ɵbypassSanitizationTrustHtml as bypassSanitizationTrustHtml,\n ɵbypassSanitizationTrustResourceUrl as bypassSanitizationTrustResourceUrl,\n ɵbypassSanitizationTrustScript as bypassSanitizationTrustScript,\n ɵbypassSanitizationTrustStyle as bypassSanitizationTrustStyle,\n ɵbypassSanitizationTrustUrl as bypassSanitizationTrustUrl,\n ɵBypassType as BypassType,\n ɵRuntimeError as RuntimeError,\n ɵunwrapSafeValue as unwrapSafeValue,\n ɵXSS_SECURITY_URL as XSS_SECURITY_URL,\n} from '@angular/core';\n\nimport {RuntimeErrorCode} from '../errors';\n\nexport {SecurityContext};\n\n/**\n * Marker interface for a value that's safe to use in a particular context.\n *\n * @publicApi\n */\nexport interface SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as HTML.\n *\n * @publicApi\n */\nexport interface SafeHtml extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as style (CSS).\n *\n * @publicApi\n */\nexport interface SafeStyle extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as JavaScript.\n *\n * @publicApi\n */\nexport interface SafeScript extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as a URL linking to a document.\n *\n * @publicApi\n */\nexport interface SafeUrl extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as a URL to load executable code from.\n *\n * @publicApi\n */\nexport interface SafeResourceUrl extends SafeValue {}\n\n/**\n * DomSanitizer helps preventing Cross Site Scripting Security bugs (XSS) by sanitizing\n * values to be safe to use in the different DOM contexts.\n *\n * For example, when binding a URL in an `<a [href]=\"someValue\">` hyperlink, `someValue` will be\n * sanitized so that an attacker cannot inject e.g. a `javascript:` URL that would execute code on\n * the website.\n *\n * In specific situations, it might be necessary to disable sanitization, for example if the\n * application genuinely needs to produce a `javascript:` style link with a dynamic value in it.\n * Users can bypass security by constructing a value with one of the `bypassSecurityTrust...`\n * methods, and then binding to that value from the template.\n *\n * These situations should be very rare, and extraordinary care must be taken to avoid creating a\n * Cross Site Scripting (XSS) security bug!\n *\n * When using `bypassSecurityTrust...`, make sure to call the method as early as possible and as\n * close as possible to the source of the value, to make it easy to verify no security bug is\n * created by its use.\n *\n * It is not required (and not recommended) to bypass security if the value is safe, e.g. a URL that\n * does not start with a suspicious protocol, or an HTML snippet that does not contain dangerous\n * code. The sanitizer leaves safe values intact.\n *\n * @security Calling any of the `bypassSecurityTrust...` APIs disables Angular's built-in\n * sanitization for the value passed in. Carefully check and audit all values and code paths going\n * into this call. Make sure any user data is appropriately escaped for this security context.\n * For more detail, see the [Security Guide](https://g.co/ng/security).\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root', useExisting: forwardRef(() => DomSanitizerImpl)})\nexport abstract class DomSanitizer implements Sanitizer {\n /**\n * Gets a safe value from either a known safe value or a value with unknown safety.\n *\n * If the given value is already a `SafeValue`, this method returns the unwrapped value.\n * If the security context is HTML and the given value is a plain string, this method\n * sanitizes the string, removing any potentially unsafe content.\n * For any other security context, this method throws an error if provided\n * with a plain string.\n */\n abstract sanitize(context: SecurityContext, value: SafeValue | string | null): string | null;\n\n /**\n * Bypass security and trust the given value to be safe HTML. Only use this when the bound HTML\n * is unsafe (e.g. contains `<script>` tags) and the code should be executed. The sanitizer will\n * leave safe HTML intact, so in most situations this method should not be used.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustHtml(value: string): SafeHtml;\n\n /**\n * Bypass security and trust the given value to be safe style value (CSS).\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustStyle(value: string): SafeStyle;\n\n /**\n * Bypass security and trust the given value to be safe JavaScript.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustScript(value: string): SafeScript;\n\n /**\n * Bypass security and trust the given value to be a safe style URL, i.e. a value that can be used\n * in hyperlinks or `<img src>`.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustUrl(value: string): SafeUrl;\n\n /**\n * Bypass security and trust the given value to be a safe resource URL, i.e. a location that may\n * be used to load executable code from, like `<script src>`, or `<iframe src>`.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl;\n}\n\n@Injectable({providedIn: 'root'})\nexport class DomSanitizerImpl extends DomSanitizer {\n constructor(@Inject(DOCUMENT) private _doc: any) {\n super();\n }\n\n override sanitize(ctx: SecurityContext, value: SafeValue | string | null): string | null {\n if (value == null) return null;\n switch (ctx) {\n case SecurityContext.NONE:\n return value as string;\n case SecurityContext.HTML:\n if (allowSanitizationBypassOrThrow(value, BypassType.Html)) {\n return unwrapSafeValue(value);\n }\n return _sanitizeHtml(this._doc, String(value)).toString();\n case SecurityContext.STYLE:\n if (allowSanitizationBypassOrThrow(value, BypassType.Style)) {\n return unwrapSafeValue(value);\n }\n return value as string;\n case SecurityContext.SCRIPT:\n if (allowSanitizationBypassOrThrow(value, BypassType.Script)) {\n return unwrapSafeValue(value);\n }\n throw new RuntimeError(\n RuntimeErrorCode.SANITIZATION_UNSAFE_SCRIPT,\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n 'unsafe value used in a script context',\n );\n case SecurityContext.URL:\n if (allowSanitizationBypassOrThrow(value, BypassType.Url)) {\n return unwrapSafeValue(value);\n }\n return _sanitizeUrl(String(value));\n case SecurityContext.RESOURCE_URL:\n if (allowSanitizationBypassOrThrow(value, BypassType.ResourceUrl)) {\n return unwrapSafeValue(value);\n }\n throw new RuntimeError(\n RuntimeErrorCode.SANITIZATION_UNSAFE_RESOURCE_URL,\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n `unsafe value used in a resource URL context (see ${XSS_SECURITY_URL})`,\n );\n default:\n throw new RuntimeError(\n RuntimeErrorCode.SANITIZATION_UNEXPECTED_CTX,\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n `Unexpected SecurityContext ${ctx} (see ${XSS_SECURITY_URL})`,\n );\n }\n }\n\n override bypassSecurityTrustHtml(value: string): SafeHtml {\n return bypassSanitizationTrustHtml(value);\n }\n override bypassSecurityTrustStyle(value: string): SafeStyle {\n return bypassSanitizationTrustStyle(value);\n }\n override bypassSecurityTrustScript(value: string): SafeScript {\n return bypassSanitizationTrustScript(value);\n }\n override bypassSecurityTrustUrl(value: string): SafeUrl {\n return bypassSanitizationTrustUrl(value);\n }\n override bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl {\n return bypassSanitizationTrustResourceUrl(value);\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 {HttpTransferCacheOptions, ɵwithHttpTransferCache} from '@angular/common/http';\nimport {\n ENVIRONMENT_INITIALIZER,\n EnvironmentProviders,\n inject,\n makeEnvironmentProviders,\n NgZone,\n Provider,\n ɵConsole as Console,\n ɵformatRuntimeError as formatRuntimeError,\n ɵwithDomHydration as withDomHydration,\n ɵwithEventReplay,\n ɵwithI18nSupport,\n ɵZONELESS_ENABLED as ZONELESS_ENABLED,\n ɵwithIncrementalHydration,\n} from '@angular/core';\n\nimport {RuntimeErrorCode} from './errors';\n\n/**\n * The list of features as an enum to uniquely type each `HydrationFeature`.\n * @see {@link HydrationFeature}\n *\n * @publicApi\n */\nexport enum HydrationFeatureKind {\n NoHttpTransferCache,\n HttpTransferCacheOptions,\n I18nSupport,\n EventReplay,\n IncrementalHydration,\n}\n\n/**\n * Helper type to represent a Hydration feature.\n *\n * @publicApi\n */\nexport interface HydrationFeature<FeatureKind extends HydrationFeatureKind> {\n ɵkind: FeatureKind;\n ɵproviders: Provider[];\n}\n\n/**\n * Helper function to create an object that represents a Hydration feature.\n */\nfunction hydrationFeature<FeatureKind extends HydrationFeatureKind>(\n ɵkind: FeatureKind,\n ɵproviders: Provider[] = [],\n ɵoptions: unknown = {},\n): HydrationFeature<FeatureKind> {\n return {ɵkind, ɵproviders};\n}\n\n/**\n * Disables HTTP transfer cache. Effectively causes HTTP requests to be performed twice: once on the\n * server and other one on the browser.\n *\n * @publicApi\n */\nexport function withNoHttpTransferCache(): HydrationFeature<HydrationFeatureKind.NoHttpTransferCache> {\n // This feature has no providers and acts as a flag that turns off\n // HTTP transfer cache (which otherwise is turned on by default).\n return hydrationFeature(HydrationFeatureKind.NoHttpTransferCache);\n}\n\n/**\n * The function accepts an object, which allows to configure cache parameters,\n * such as which headers should be included (no headers are included by default),\n * whether POST requests should be cached or a callback function to determine if a\n * particular request should be cached.\n *\n * @publicApi\n */\nexport function withHttpTransferCacheOptions(\n options: HttpTransferCacheOptions,\n): HydrationFeature<HydrationFeatureKind.HttpTransferCacheOptions> {\n // This feature has no providers and acts as a flag to pass options to the HTTP transfer cache.\n return hydrationFeature(\n HydrationFeatureKind.HttpTransferCacheOptions,\n ɵwithHttpTransferCache(options),\n );\n}\n\n/**\n * Enables support for hydrating i18n blocks.\n *\n * @developerPreview\n * @publicApi\n */\nexport function withI18nSupport(): HydrationFeature<HydrationFeatureKind.I18nSupport> {\n return hydrationFeature(HydrationFeatureKind.I18nSupport, ɵwithI18nSupport());\n}\n\n/**\n * Enables support for replaying user events (e.g. `click`s) that happened on a page\n * before hydration logic has completed. Once an application is hydrated, all captured\n * events are replayed and relevant event listeners are executed.\n *\n * @usageNotes\n *\n * Basic example of how you can enable event replay in your application when\n * `bootstrapApplication` function is used:\n * ```ts\n * bootstrapApplication(AppComponent, {\n * providers: [provideClientHydration(withEventReplay())]\n * });\n * ```\n * @publicApi\n * @see {@link provideClientHydration}\n */\nexport function withEventReplay(): HydrationFeature<HydrationFeatureKind.EventReplay> {\n return hydrationFeature(HydrationFeatureKind.EventReplay, ɵwithEventReplay());\n}\n\n/**\n * Enables support for incremental hydration using the `hydrate` trigger syntax.\n *\n * @usageNotes\n *\n * Basic example of how you can enable incremental hydration in your application when\n * the `bootstrapApplication` function is used:\n * ```ts\n * bootstrapApplication(AppComponent, {\n * providers: [provideClientHydration(withIncrementalHydration())]\n * });\n * ```\n * @experimental\n * @publicApi\n * @see {@link provideClientHydration}\n */\nexport function withIncrementalHydration(): HydrationFeature<HydrationFeatureKind.IncrementalHydration> {\n return hydrationFeature(HydrationFeatureKind.IncrementalHydration, ɵwithIncrementalHydration());\n}\n\n/**\n * Returns an `ENVIRONMENT_INITIALIZER` token setup with a function\n * that verifies whether compatible ZoneJS was used in an application\n * and logs a warning in a console if it's not the case.\n */\nfunction provideZoneJsCompatibilityDetector(): Provider[] {\n return [\n {\n provide: ENVIRONMENT_INITIALIZER,\n useValue: () => {\n const ngZone = inject(NgZone);\n const isZoneless = inject(ZONELESS_ENABLED);\n // Checking `ngZone instanceof NgZone` would be insufficient here,\n // because custom implementations might use NgZone as a base class.\n if (!isZoneless && ngZone.constructor !== NgZone) {\n const console = inject(Console);\n const message = formatRuntimeError(\n RuntimeErrorCode.UNSUPPORTED_ZONEJS_INSTANCE,\n 'Angular detected that hydration was enabled for an application ' +\n 'that uses a custom or a noop Zone.js implementation. ' +\n 'This is not yet a fully supported configuration.',\n );\n console.warn(message);\n }\n },\n multi: true,\n },\n ];\n}\n\n/**\n * Sets up providers necessary to enable hydration functionality for the application.\n *\n * By default, the function enables the recommended set of features for the optimal\n * performance for most of the applications. It includes the following features:\n *\n * * Reconciling DOM hydration. Learn more about it [here](guide/hydration).\n * * [`HttpClient`](api/common/http/HttpClient) response caching while running on the server and\n * transferring this cache to the client to avoid extra HTTP requests. Learn more about data caching\n * [here](guide/ssr#caching-data-when-using-httpclient).\n *\n * These functions allow you to disable some of the default features or enable new ones:\n *\n * * {@link withNoHttpTransferCache} to disable HTTP transfer cache\n * * {@link withHttpTransferCacheOptions} to configure some HTTP transfer cache options\n * * {@link withI18nSupport} to enable hydration support for i18n blocks\n * * {@link withEventReplay} to enable support for replaying user events\n *\n * @usageNotes\n *\n * Basic example of how you can enable hydration in your application when\n * `bootstrapApplication` function is used:\n * ```ts\n * bootstrapApplication(AppComponent, {\n * providers: [provideClientHydration()]\n * });\n * ```\n *\n * Alternatively if you are using NgModules, you would add `provideClientHydration`\n * to your root app module's provider list.\n * ```ts\n * @NgModule({\n * declarations: [RootCmp],\n * bootstrap: [RootCmp],\n * providers: [provideClientHydration()],\n * })\n * export class AppModule {}\n * ```\n *\n * @see {@link withNoHttpTransferCache}\n * @see {@link withHttpTransferCacheOptions}\n * @see {@link withI18nSupport}\n * @see {@link withEventReplay}\n *\n * @param features Optional features to configure additional hydration behaviors.\n * @returns A set of providers to enable hydration.\n *\n * @publicApi\n */\nexport function provideClientHydration(\n ...features: HydrationFeature<HydrationFeatureKind>[]\n): EnvironmentProviders {\n const providers: Provider[] = [];\n const featuresKind = new Set<HydrationFeatureKind>();\n\n for (const {ɵproviders, ɵkind} of features) {\n featuresKind.add(ɵkind);\n\n if (ɵproviders.length) {\n providers.push(ɵproviders);\n }\n }\n\n const hasHttpTransferCacheOptions = featuresKind.has(\n HydrationFeatureKind.HttpTransferCacheOptions,\n );\n\n if (\n typeof ngDevMode !== 'undefined' &&\n ngDevMode &&\n featuresKind.has(HydrationFeatureKind.NoHttpTransferCache) &&\n hasHttpTransferCacheOptions\n ) {\n // TODO: Make this a runtime error\n throw new Error(\n 'Configuration error: found both withHttpTransferCacheOptions() and withNoHttpTransferCache() in the same call to provideClientHydration(), which is a contradiction.',\n );\n }\n\n return makeEnvironmentProviders([\n typeof ngDevMode !== 'undefined' && ngDevMode ? provideZoneJsCompatibilityDetector() : [],\n withDomHydration(),\n featuresKind.has(HydrationFeatureKind.NoHttpTransferCache) || hasHttpTransferCacheOptions\n ? []\n : ɵwithHttpTransferCache({}),\n providers,\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\n/**\n * @module\n * @description\n * Entry point for all public APIs of the platform-browser package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('19.2.17');\n"],"names":["getDOM","global","Console","allowSanitizationBypassOrThrow","unwrapSafeValue","_sanitizeHtml","RuntimeError","_sanitizeUrl","XSS_SECURITY_URL","bypassSanitizationTrustHtml","bypassSanitizationTrustStyle","bypassSanitizationTrustScript","bypassSanitizationTrustUrl","bypassSanitizationTrustResourceUrl","ɵwithHttpTransferCache","ɵwithI18nSupport","ɵwithEventReplay","ɵwithIncrementalHydration","ZONELESS_ENABLED","formatRuntimeError","withDomHydration"],"mappings":"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"}
{"version":3,"file":"platform-browser.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/browser/meta.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/browser/title.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/dom/util.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/browser/tools/common_tools.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/browser/tools/tools.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/dom/debug/by.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/dom/events/hammer_gestures.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/security/dom_sanitization_service.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/hydration.ts","../../../../../darwin_arm64-fastbuild-ST-2d99d9656325/bin/packages/platform-browser/src/version.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 {DOCUMENT, ɵDomAdapter as DomAdapter, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\n/**\n * Represents the attributes of an HTML `<meta>` element. The element itself is\n * represented by the internal `HTMLMetaElement`.\n *\n * @see [HTML meta tag](https://developer.mozilla.org/docs/Web/HTML/Element/meta)\n * @see {@link Meta}\n *\n * @publicApi\n */\nexport type MetaDefinition = {\n charset?: string;\n content?: string;\n httpEquiv?: string;\n id?: string;\n itemprop?: string;\n name?: string;\n property?: string;\n scheme?: string;\n url?: string;\n} & {\n // TODO(IgorMinar): this type looks wrong\n [prop: string]: string;\n};\n\n/**\n * A service for managing HTML `<meta>` tags.\n *\n * Properties of the `MetaDefinition` object match the attributes of the\n * HTML `<meta>` tag. These tags define document metadata that is important for\n * things like configuring a Content Security Policy, defining browser compatibility\n * and security settings, setting HTTP Headers, defining rich content for social sharing,\n * and Search Engine Optimization (SEO).\n *\n * To identify specific `<meta>` tags in a document, use an attribute selection\n * string in the format `\"tag_attribute='value string'\"`.\n * For example, an `attrSelector` value of `\"name='description'\"` matches a tag\n * whose `name` attribute has the value `\"description\"`.\n * Selectors are used with the `querySelector()` Document method,\n * in the format `meta[{attrSelector}]`.\n *\n * @see [HTML meta tag](https://developer.mozilla.org/docs/Web/HTML/Element/meta)\n * @see [Document.querySelector()](https://developer.mozilla.org/docs/Web/API/Document/querySelector)\n *\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root'})\nexport class Meta {\n private _dom: DomAdapter;\n constructor(@Inject(DOCUMENT) private _doc: any) {\n this._dom = getDOM();\n }\n /**\n * Retrieves or creates a specific `<meta>` tag element in the current HTML document.\n * In searching for an existing tag, Angular attempts to match the `name` or `property` attribute\n * values in the provided tag definition, and verifies that all other attribute values are equal.\n * If an existing element is found, it is returned and is not modified in any way.\n * @param tag The definition of a `<meta>` element to match or create.\n * @param forceCreation True to create a new element without checking whether one already exists.\n * @returns The existing element with the same attributes and values if found,\n * the new element if no match is found, or `null` if the tag parameter is not defined.\n */\n addTag(tag: MetaDefinition, forceCreation: boolean = false): HTMLMetaElement | null {\n if (!tag) return null;\n return this._getOrCreateElement(tag, forceCreation);\n }\n\n /**\n * Retrieves or creates a set of `<meta>` tag elements in the current HTML document.\n * In searching for an existing tag, Angular attempts to match the `name` or `property` attribute\n * values in the provided tag definition, and verifies that all other attribute values are equal.\n * @param tags An array of tag definitions to match or create.\n * @param forceCreation True to create new elements without checking whether they already exist.\n * @returns The matching elements if found, or the new elements.\n */\n addTags(tags: MetaDefinition[], forceCreation: boolean = false): HTMLMetaElement[] {\n if (!tags) return [];\n return tags.reduce((result: HTMLMetaElement[], tag: MetaDefinition) => {\n if (tag) {\n result.push(this._getOrCreateElement(tag, forceCreation));\n }\n return result;\n }, []);\n }\n\n /**\n * Retrieves a `<meta>` tag element in the current HTML document.\n * @param attrSelector The tag attribute and value to match against, in the format\n * `\"tag_attribute='value string'\"`.\n * @returns The matching element, if any.\n */\n getTag(attrSelector: string): HTMLMetaElement | null {\n if (!attrSelector) return null;\n return this._doc.querySelector(`meta[${attrSelector}]`) || null;\n }\n\n /**\n * Retrieves a set of `<meta>` tag elements in the current HTML document.\n * @param attrSelector The tag attribute and value to match against, in the format\n * `\"tag_attribute='value string'\"`.\n * @returns The matching elements, if any.\n */\n getTags(attrSelector: string): HTMLMetaElement[] {\n if (!attrSelector) return [];\n const list /*NodeList*/ = this._doc.querySelectorAll(`meta[${attrSelector}]`);\n return list ? [].slice.call(list) : [];\n }\n\n /**\n * Modifies an existing `<meta>` tag element in the current HTML document.\n * @param tag The tag description with which to replace the existing tag content.\n * @param selector A tag attribute and value to match against, to identify\n * an existing tag. A string in the format `\"tag_attribute=`value string`\"`.\n * If not supplied, matches a tag with the same `name` or `property` attribute value as the\n * replacement tag.\n * @return The modified element.\n */\n updateTag(tag: MetaDefinition, selector?: string): HTMLMetaElement | null {\n if (!tag) return null;\n selector = selector || this._parseSelector(tag);\n const meta: HTMLMetaElement = this.getTag(selector)!;\n if (meta) {\n return this._setMetaElementAttributes(tag, meta);\n }\n return this._getOrCreateElement(tag, true);\n }\n\n /**\n * Removes an existing `<meta>` tag element from the current HTML document.\n * @param attrSelector A tag attribute and value to match against, to identify\n * an existing tag. A string in the format `\"tag_attribute=`value string`\"`.\n */\n removeTag(attrSelector: string): void {\n this.removeTagElement(this.getTag(attrSelector)!);\n }\n\n /**\n * Removes an existing `<meta>` tag element from the current HTML document.\n * @param meta The tag definition to match against to identify an existing tag.\n */\n removeTagElement(meta: HTMLMetaElement): void {\n if (meta) {\n this._dom.remove(meta);\n }\n }\n\n private _getOrCreateElement(\n meta: MetaDefinition,\n forceCreation: boolean = false,\n ): HTMLMetaElement {\n if (!forceCreation) {\n const selector: string = this._parseSelector(meta);\n // It's allowed to have multiple elements with the same name so it's not enough to\n // just check that element with the same name already present on the page. We also need to\n // check if element has tag attributes\n const elem = this.getTags(selector).filter((elem) => this._containsAttributes(meta, elem))[0];\n if (elem !== undefined) return elem;\n }\n const element: HTMLMetaElement = this._dom.createElement('meta') as HTMLMetaElement;\n this._setMetaElementAttributes(meta, element);\n const head = this._doc.getElementsByTagName('head')[0];\n head.appendChild(element);\n return element;\n }\n\n private _setMetaElementAttributes(tag: MetaDefinition, el: HTMLMetaElement): HTMLMetaElement {\n Object.keys(tag).forEach((prop: string) =>\n el.setAttribute(this._getMetaKeyMap(prop), tag[prop]),\n );\n return el;\n }\n\n private _parseSelector(tag: MetaDefinition): string {\n const attr: string = tag.name ? 'name' : 'property';\n return `${attr}=\"${tag[attr]}\"`;\n }\n\n private _containsAttributes(tag: MetaDefinition, elem: HTMLMetaElement): boolean {\n return Object.keys(tag).every(\n (key: string) => elem.getAttribute(this._getMetaKeyMap(key)) === tag[key],\n );\n }\n\n private _getMetaKeyMap(prop: string): string {\n return META_KEYS_MAP[prop] || prop;\n }\n}\n\n/**\n * Mapping for MetaDefinition properties with their correct meta attribute names\n */\nconst META_KEYS_MAP: {[prop: string]: string} = {\n httpEquiv: 'http-equiv',\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} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\n/**\n * A service that can be used to get and set the title of a current HTML document.\n *\n * Since an Angular application can't be bootstrapped on the entire HTML document (`<html>` tag)\n * it is not possible to bind to the `text` property of the `HTMLTitleElement` elements\n * (representing the `<title>` tag). Instead, this service can be used to set and get the current\n * title value.\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root'})\nexport class Title {\n constructor(@Inject(DOCUMENT) private _doc: any) {}\n /**\n * Get the title of the current HTML document.\n */\n getTitle(): string {\n return this._doc.title;\n }\n\n /**\n * Set the title of the current HTML document.\n * @param newTitle\n */\n setTitle(newTitle: string) {\n this._doc.title = newTitle || '';\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\n/// <reference path=\"../../../goog.d.ts\" />\n\nimport {ɵglobal as global} from '@angular/core';\n\n/**\n * Exports the value under a given `name` in the global property `ng`. For example `ng.probe` if\n * `name` is `'probe'`.\n * @param name Name under which it will be exported. Keep in mind this will be a property of the\n * global `ng` object.\n * @param value The value to export.\n */\nexport function exportNgVar(name: string, value: any): void {\n if (typeof COMPILED === 'undefined' || !COMPILED) {\n // Note: we can't export `ng` when using closure enhanced optimization as:\n // - closure declares globals itself for minified names, which sometimes clobber our `ng` global\n // - we can't declare a closure extern as the namespace `ng` is already used within Google\n // for typings for angularJS (via `goog.provide('ng....')`).\n const ng = (global['ng'] = (global['ng'] as {[key: string]: any} | undefined) || {});\n ng[name] = value;\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 {ApplicationRef, ComponentRef} from '@angular/core';\n\nexport class ChangeDetectionPerfRecord {\n constructor(\n public msPerTick: number,\n public numTicks: number,\n ) {}\n}\n\n/**\n * Entry point for all Angular profiling-related debug tools. This object\n * corresponds to the `ng.profiler` in the dev console.\n */\nexport class AngularProfiler {\n appRef: ApplicationRef;\n\n constructor(ref: ComponentRef<any>) {\n this.appRef = ref.injector.get(ApplicationRef);\n }\n\n // tslint:disable:no-console\n /**\n * Exercises change detection in a loop and then prints the average amount of\n * time in milliseconds how long a single round of change detection takes for\n * the current state of the UI. It runs a minimum of 5 rounds for a minimum\n * of 500 milliseconds.\n *\n * Optionally, a user may pass a `config` parameter containing a map of\n * options. Supported options are:\n *\n * `record` (boolean) - causes the profiler to record a CPU profile while\n * it exercises the change detector. Example:\n *\n * ```ts\n * ng.profiler.timeChangeDetection({record: true})\n * ```\n */\n timeChangeDetection(config: any): ChangeDetectionPerfRecord {\n const record = config && config['record'];\n const profileName = 'Change Detection';\n // Profiler is not available in Android browsers without dev tools opened\n if (record && 'profile' in console && typeof console.profile === 'function') {\n console.profile(profileName);\n }\n const start = performance.now();\n let numTicks = 0;\n while (numTicks < 5 || performance.now() - start < 500) {\n this.appRef.tick();\n numTicks++;\n }\n const end = performance.now();\n if (record && 'profileEnd' in console && typeof console.profileEnd === 'function') {\n console.profileEnd(profileName);\n }\n const msPerTick = (end - start) / numTicks;\n console.log(`ran ${numTicks} change detection cycles`);\n console.log(`${msPerTick.toFixed(2)} ms per check`);\n\n return new ChangeDetectionPerfRecord(msPerTick, numTicks);\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 {ComponentRef} from '@angular/core';\n\nimport {exportNgVar} from '../../dom/util';\n\nimport {AngularProfiler} from './common_tools';\n\nconst PROFILER_GLOBAL_NAME = 'profiler';\n\n/**\n * Enabled Angular debug tools that are accessible via your browser's\n * developer console.\n *\n * Usage:\n *\n * 1. Open developer console (e.g. in Chrome Ctrl + Shift + j)\n * 1. Type `ng.` (usually the console will show auto-complete suggestion)\n * 1. Try the change detection profiler `ng.profiler.timeChangeDetection()`\n * then hit Enter.\n *\n * @publicApi\n */\nexport function enableDebugTools<T>(ref: ComponentRef<T>): ComponentRef<T> {\n exportNgVar(PROFILER_GLOBAL_NAME, new AngularProfiler(ref));\n return ref;\n}\n\n/**\n * Disables Angular tools.\n *\n * @publicApi\n */\nexport function disableDebugTools(): void {\n exportNgVar(PROFILER_GLOBAL_NAME, null);\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 {DebugElement, DebugNode, Predicate, Type} from '@angular/core';\n\n/**\n * Predicates for use with {@link DebugElement}'s query functions.\n *\n * @publicApi\n */\nexport class By {\n /**\n * Match all nodes.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_all'}\n */\n static all(): Predicate<DebugNode> {\n return () => true;\n }\n\n /**\n * Match elements by the given CSS selector.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_css'}\n */\n static css(selector: string): Predicate<DebugElement> {\n return (debugElement) => {\n return debugElement.nativeElement != null\n ? elementMatches(debugElement.nativeElement, selector)\n : false;\n };\n }\n\n /**\n * Match nodes that have the given directive present.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'}\n */\n static directive(type: Type<any>): Predicate<DebugNode> {\n return (debugNode) => debugNode.providerTokens!.indexOf(type) !== -1;\n }\n}\n\nfunction elementMatches(n: any, selector: string): boolean {\n if (getDOM().isElementNode(n)) {\n return (\n (n.matches && n.matches(selector)) ||\n (n.msMatchesSelector && n.msMatchesSelector(selector)) ||\n (n.webkitMatchesSelector && n.webkitMatchesSelector(selector))\n );\n }\n\n return false;\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\n/// <reference types=\"hammerjs\" />\n\nimport {DOCUMENT} from '@angular/common';\nimport {\n Inject,\n Injectable,\n InjectionToken,\n Injector,\n NgModule,\n Optional,\n ɵConsole as Console,\n} from '@angular/core';\n\nimport {EVENT_MANAGER_PLUGINS, EventManagerPlugin} from './event_manager';\n\n/**\n * Supported HammerJS recognizer event names.\n */\nconst EVENT_NAMES = {\n // pan\n 'pan': true,\n 'panstart': true,\n 'panmove': true,\n 'panend': true,\n 'pancancel': true,\n 'panleft': true,\n 'panright': true,\n 'panup': true,\n 'pandown': true,\n // pinch\n 'pinch': true,\n 'pinchstart': true,\n 'pinchmove': true,\n 'pinchend': true,\n 'pinchcancel': true,\n 'pinchin': true,\n 'pinchout': true,\n // press\n 'press': true,\n 'pressup': true,\n // rotate\n 'rotate': true,\n 'rotatestart': true,\n 'rotatemove': true,\n 'rotateend': true,\n 'rotatecancel': true,\n // swipe\n 'swipe': true,\n 'swipeleft': true,\n 'swiperight': true,\n 'swipeup': true,\n 'swipedown': true,\n // tap\n 'tap': true,\n 'doubletap': true,\n};\n\n/**\n * DI token for providing [HammerJS](https://hammerjs.github.io/) support to Angular.\n * @see {@link HammerGestureConfig}\n *\n * @ngModule HammerModule\n * @publicApi\n */\nexport const HAMMER_GESTURE_CONFIG = new InjectionToken<HammerGestureConfig>(\n typeof ngDevMode === 'undefined' || ngDevMode ? 'HammerGestureConfig' : '',\n);\n\n/**\n * Function that loads HammerJS, returning a promise that is resolved once HammerJs is loaded.\n *\n * @publicApi\n */\nexport type HammerLoader = () => Promise<void>;\n\n/**\n * Injection token used to provide a HammerLoader to Angular.\n *\n * @see {@link HammerLoader}\n *\n * @publicApi\n */\nexport const HAMMER_LOADER = new InjectionToken<HammerLoader>(\n typeof ngDevMode === 'undefined' || ngDevMode ? 'HammerLoader' : '',\n);\n\nexport interface HammerInstance {\n on(eventName: string, callback?: Function): void;\n off(eventName: string, callback?: Function): void;\n destroy?(): void;\n}\n\n/**\n * An injectable [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n * for gesture recognition. Configures specific event recognition.\n * @publicApi\n */\n@Injectable()\nexport class HammerGestureConfig {\n /**\n * A set of supported event names for gestures to be used in Angular.\n * Angular supports all built-in recognizers, as listed in\n * [HammerJS documentation](https://hammerjs.github.io/).\n */\n events: string[] = [];\n\n /**\n * Maps gesture event names to a set of configuration options\n * that specify overrides to the default values for specific properties.\n *\n * The key is a supported event name to be configured,\n * and the options object contains a set of properties, with override values\n * to be applied to the named recognizer event.\n * For example, to disable recognition of the rotate event, specify\n * `{\"rotate\": {\"enable\": false}}`.\n *\n * Properties that are not present take the HammerJS default values.\n * For information about which properties are supported for which events,\n * and their allowed and default values, see\n * [HammerJS documentation](https://hammerjs.github.io/).\n *\n */\n overrides: {[key: string]: Object} = {};\n\n /**\n * Properties whose default values can be overridden for a given event.\n * Different sets of properties apply to different events.\n * For information about which properties are supported for which events,\n * and their allowed and default values, see\n * [HammerJS documentation](https://hammerjs.github.io/).\n */\n options?: {\n cssProps?: any;\n domEvents?: boolean;\n enable?: boolean | ((manager: any) => boolean);\n preset?: any[];\n touchAction?: string;\n recognizers?: any[];\n inputClass?: any;\n inputTarget?: EventTarget;\n };\n\n /**\n * Creates a [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n * and attaches it to a given HTML element.\n * @param element The element that will recognize gestures.\n * @returns A HammerJS event-manager object.\n */\n buildHammer(element: HTMLElement): HammerInstance {\n const mc = new Hammer!(element, this.options);\n\n mc.get('pinch').set({enable: true});\n mc.get('rotate').set({enable: true});\n\n for (const eventName in this.overrides) {\n mc.get(eventName).set(this.overrides[eventName]);\n }\n\n return mc;\n }\n}\n\n/**\n * Event plugin that adds Hammer support to an application.\n *\n * @ngModule HammerModule\n */\n@Injectable()\nexport class HammerGesturesPlugin extends EventManagerPlugin {\n private _loaderPromise: Promise<void> | null = null;\n\n constructor(\n @Inject(DOCUMENT) doc: any,\n @Inject(HAMMER_GESTURE_CONFIG) private _config: HammerGestureConfig,\n private _injector: Injector,\n @Optional() @Inject(HAMMER_LOADER) private loader?: HammerLoader | null,\n ) {\n super(doc);\n }\n\n override supports(eventName: string): boolean {\n if (!EVENT_NAMES.hasOwnProperty(eventName.toLowerCase()) && !this.isCustomEvent(eventName)) {\n return false;\n }\n\n if (!(window as any).Hammer && !this.loader) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n // Get a `Console` through an injector to tree-shake the\n // class when it is unused in production.\n const _console = this._injector.get(Console);\n _console.warn(\n `The \"${eventName}\" event cannot be bound because Hammer.JS is not ` +\n `loaded and no custom loader has been specified.`,\n );\n }\n return false;\n }\n\n return true;\n }\n\n override addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const zone = this.manager.getZone();\n eventName = eventName.toLowerCase();\n\n // If Hammer is not present but a loader is specified, we defer adding the event listener\n // until Hammer is loaded.\n if (!(window as any).Hammer && this.loader) {\n this._loaderPromise = this._loaderPromise || zone.runOutsideAngular(() => this.loader!());\n // This `addEventListener` method returns a function to remove the added listener.\n // Until Hammer is loaded, the returned function needs to *cancel* the registration rather\n // than remove anything.\n let cancelRegistration = false;\n let deregister: Function = () => {\n cancelRegistration = true;\n };\n\n zone.runOutsideAngular(() =>\n this._loaderPromise!.then(() => {\n // If Hammer isn't actually loaded when the custom loader resolves, give up.\n if (!(window as any).Hammer) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const _console = this._injector.get(Console);\n _console.warn(`The custom HAMMER_LOADER completed, but Hammer.JS is not present.`);\n }\n deregister = () => {};\n return;\n }\n\n if (!cancelRegistration) {\n // Now that Hammer is loaded and the listener is being loaded for real,\n // the deregistration function changes from canceling registration to\n // removal.\n deregister = this.addEventListener(element, eventName, handler);\n }\n }).catch(() => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const _console = this._injector.get(Console);\n _console.warn(\n `The \"${eventName}\" event cannot be bound because the custom ` +\n `Hammer.JS loader failed.`,\n );\n }\n deregister = () => {};\n }),\n );\n\n // Return a function that *executes* `deregister` (and not `deregister` itself) so that we\n // can change the behavior of `deregister` once the listener is added. Using a closure in\n // this way allows us to avoid any additional data structures to track listener removal.\n return () => {\n deregister();\n };\n }\n\n return zone.runOutsideAngular(() => {\n // Creating the manager bind events, must be done outside of angular\n const mc = this._config.buildHammer(element);\n const callback = function (eventObj: HammerInput) {\n zone.runGuarded(function () {\n handler(eventObj);\n });\n };\n mc.on(eventName, callback);\n return () => {\n mc.off(eventName, callback);\n // destroy mc to prevent memory leak\n if (typeof mc.destroy === 'function') {\n mc.destroy();\n }\n };\n });\n }\n\n isCustomEvent(eventName: string): boolean {\n return this._config.events.indexOf(eventName) > -1;\n }\n}\n\n/**\n * Adds support for HammerJS.\n *\n * Import this module at the root of your application so that Angular can work with\n * HammerJS to detect gesture events.\n *\n * Note that applications still need to include the HammerJS script itself. This module\n * simply sets up the coordination layer between HammerJS and Angular's `EventManager`.\n *\n * @publicApi\n */\n@NgModule({\n providers: [\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: HammerGesturesPlugin,\n multi: true,\n deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, Injector, [new Optional(), HAMMER_LOADER]],\n },\n {provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig},\n ],\n})\nexport class HammerModule {}\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} from '@angular/common';\nimport {\n forwardRef,\n Inject,\n Injectable,\n Sanitizer,\n SecurityContext,\n ɵ_sanitizeHtml as _sanitizeHtml,\n ɵ_sanitizeUrl as _sanitizeUrl,\n ɵallowSanitizationBypassAndThrow as allowSanitizationBypassOrThrow,\n ɵbypassSanitizationTrustHtml as bypassSanitizationTrustHtml,\n ɵbypassSanitizationTrustResourceUrl as bypassSanitizationTrustResourceUrl,\n ɵbypassSanitizationTrustScript as bypassSanitizationTrustScript,\n ɵbypassSanitizationTrustStyle as bypassSanitizationTrustStyle,\n ɵbypassSanitizationTrustUrl as bypassSanitizationTrustUrl,\n ɵBypassType as BypassType,\n ɵRuntimeError as RuntimeError,\n ɵunwrapSafeValue as unwrapSafeValue,\n ɵXSS_SECURITY_URL as XSS_SECURITY_URL,\n} from '@angular/core';\n\nimport {RuntimeErrorCode} from '../errors';\n\nexport {SecurityContext};\n\n/**\n * Marker interface for a value that's safe to use in a particular context.\n *\n * @publicApi\n */\nexport interface SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as HTML.\n *\n * @publicApi\n */\nexport interface SafeHtml extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as style (CSS).\n *\n * @publicApi\n */\nexport interface SafeStyle extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as JavaScript.\n *\n * @publicApi\n */\nexport interface SafeScript extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as a URL linking to a document.\n *\n * @publicApi\n */\nexport interface SafeUrl extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as a URL to load executable code from.\n *\n * @publicApi\n */\nexport interface SafeResourceUrl extends SafeValue {}\n\n/**\n * DomSanitizer helps preventing Cross Site Scripting Security bugs (XSS) by sanitizing\n * values to be safe to use in the different DOM contexts.\n *\n * For example, when binding a URL in an `<a [href]=\"someValue\">` hyperlink, `someValue` will be\n * sanitized so that an attacker cannot inject e.g. a `javascript:` URL that would execute code on\n * the website.\n *\n * In specific situations, it might be necessary to disable sanitization, for example if the\n * application genuinely needs to produce a `javascript:` style link with a dynamic value in it.\n * Users can bypass security by constructing a value with one of the `bypassSecurityTrust...`\n * methods, and then binding to that value from the template.\n *\n * These situations should be very rare, and extraordinary care must be taken to avoid creating a\n * Cross Site Scripting (XSS) security bug!\n *\n * When using `bypassSecurityTrust...`, make sure to call the method as early as possible and as\n * close as possible to the source of the value, to make it easy to verify no security bug is\n * created by its use.\n *\n * It is not required (and not recommended) to bypass security if the value is safe, e.g. a URL that\n * does not start with a suspicious protocol, or an HTML snippet that does not contain dangerous\n * code. The sanitizer leaves safe values intact.\n *\n * @security Calling any of the `bypassSecurityTrust...` APIs disables Angular's built-in\n * sanitization for the value passed in. Carefully check and audit all values and code paths going\n * into this call. Make sure any user data is appropriately escaped for this security context.\n * For more detail, see the [Security Guide](https://g.co/ng/security).\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root', useExisting: forwardRef(() => DomSanitizerImpl)})\nexport abstract class DomSanitizer implements Sanitizer {\n /**\n * Gets a safe value from either a known safe value or a value with unknown safety.\n *\n * If the given value is already a `SafeValue`, this method returns the unwrapped value.\n * If the security context is HTML and the given value is a plain string, this method\n * sanitizes the string, removing any potentially unsafe content.\n * For any other security context, this method throws an error if provided\n * with a plain string.\n */\n abstract sanitize(context: SecurityContext, value: SafeValue | string | null): string | null;\n\n /**\n * Bypass security and trust the given value to be safe HTML. Only use this when the bound HTML\n * is unsafe (e.g. contains `<script>` tags) and the code should be executed. The sanitizer will\n * leave safe HTML intact, so in most situations this method should not be used.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustHtml(value: string): SafeHtml;\n\n /**\n * Bypass security and trust the given value to be safe style value (CSS).\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustStyle(value: string): SafeStyle;\n\n /**\n * Bypass security and trust the given value to be safe JavaScript.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustScript(value: string): SafeScript;\n\n /**\n * Bypass security and trust the given value to be a safe style URL, i.e. a value that can be used\n * in hyperlinks or `<img src>`.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustUrl(value: string): SafeUrl;\n\n /**\n * Bypass security and trust the given value to be a safe resource URL, i.e. a location that may\n * be used to load executable code from, like `<script src>`, or `<iframe src>`.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl;\n}\n\n@Injectable({providedIn: 'root'})\nexport class DomSanitizerImpl extends DomSanitizer {\n constructor(@Inject(DOCUMENT) private _doc: any) {\n super();\n }\n\n override sanitize(ctx: SecurityContext, value: SafeValue | string | null): string | null {\n if (value == null) return null;\n switch (ctx) {\n case SecurityContext.NONE:\n return value as string;\n case SecurityContext.HTML:\n if (allowSanitizationBypassOrThrow(value, BypassType.Html)) {\n return unwrapSafeValue(value);\n }\n return _sanitizeHtml(this._doc, String(value)).toString();\n case SecurityContext.STYLE:\n if (allowSanitizationBypassOrThrow(value, BypassType.Style)) {\n return unwrapSafeValue(value);\n }\n return value as string;\n case SecurityContext.SCRIPT:\n if (allowSanitizationBypassOrThrow(value, BypassType.Script)) {\n return unwrapSafeValue(value);\n }\n throw new RuntimeError(\n RuntimeErrorCode.SANITIZATION_UNSAFE_SCRIPT,\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n 'unsafe value used in a script context',\n );\n case SecurityContext.URL:\n if (allowSanitizationBypassOrThrow(value, BypassType.Url)) {\n return unwrapSafeValue(value);\n }\n return _sanitizeUrl(String(value));\n case SecurityContext.RESOURCE_URL:\n if (allowSanitizationBypassOrThrow(value, BypassType.ResourceUrl)) {\n return unwrapSafeValue(value);\n }\n throw new RuntimeError(\n RuntimeErrorCode.SANITIZATION_UNSAFE_RESOURCE_URL,\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n `unsafe value used in a resource URL context (see ${XSS_SECURITY_URL})`,\n );\n default:\n throw new RuntimeError(\n RuntimeErrorCode.SANITIZATION_UNEXPECTED_CTX,\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n `Unexpected SecurityContext ${ctx} (see ${XSS_SECURITY_URL})`,\n );\n }\n }\n\n override bypassSecurityTrustHtml(value: string): SafeHtml {\n return bypassSanitizationTrustHtml(value);\n }\n override bypassSecurityTrustStyle(value: string): SafeStyle {\n return bypassSanitizationTrustStyle(value);\n }\n override bypassSecurityTrustScript(value: string): SafeScript {\n return bypassSanitizationTrustScript(value);\n }\n override bypassSecurityTrustUrl(value: string): SafeUrl {\n return bypassSanitizationTrustUrl(value);\n }\n override bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl {\n return bypassSanitizationTrustResourceUrl(value);\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 {HttpTransferCacheOptions, ɵwithHttpTransferCache} from '@angular/common/http';\nimport {\n ENVIRONMENT_INITIALIZER,\n EnvironmentProviders,\n inject,\n makeEnvironmentProviders,\n NgZone,\n Provider,\n ɵConsole as Console,\n ɵformatRuntimeError as formatRuntimeError,\n ɵwithDomHydration as withDomHydration,\n ɵwithEventReplay,\n ɵwithI18nSupport,\n ɵZONELESS_ENABLED as ZONELESS_ENABLED,\n ɵwithIncrementalHydration,\n} from '@angular/core';\n\nimport {RuntimeErrorCode} from './errors';\n\n/**\n * The list of features as an enum to uniquely type each `HydrationFeature`.\n * @see {@link HydrationFeature}\n *\n * @publicApi\n */\nexport enum HydrationFeatureKind {\n NoHttpTransferCache,\n HttpTransferCacheOptions,\n I18nSupport,\n EventReplay,\n IncrementalHydration,\n}\n\n/**\n * Helper type to represent a Hydration feature.\n *\n * @publicApi\n */\nexport interface HydrationFeature<FeatureKind extends HydrationFeatureKind> {\n ɵkind: FeatureKind;\n ɵproviders: Provider[];\n}\n\n/**\n * Helper function to create an object that represents a Hydration feature.\n */\nfunction hydrationFeature<FeatureKind extends HydrationFeatureKind>(\n ɵkind: FeatureKind,\n ɵproviders: Provider[] = [],\n ɵoptions: unknown = {},\n): HydrationFeature<FeatureKind> {\n return {ɵkind, ɵproviders};\n}\n\n/**\n * Disables HTTP transfer cache. Effectively causes HTTP requests to be performed twice: once on the\n * server and other one on the browser.\n *\n * @publicApi\n */\nexport function withNoHttpTransferCache(): HydrationFeature<HydrationFeatureKind.NoHttpTransferCache> {\n // This feature has no providers and acts as a flag that turns off\n // HTTP transfer cache (which otherwise is turned on by default).\n return hydrationFeature(HydrationFeatureKind.NoHttpTransferCache);\n}\n\n/**\n * The function accepts an object, which allows to configure cache parameters,\n * such as which headers should be included (no headers are included by default),\n * whether POST requests should be cached or a callback function to determine if a\n * particular request should be cached.\n *\n * @publicApi\n */\nexport function withHttpTransferCacheOptions(\n options: HttpTransferCacheOptions,\n): HydrationFeature<HydrationFeatureKind.HttpTransferCacheOptions> {\n // This feature has no providers and acts as a flag to pass options to the HTTP transfer cache.\n return hydrationFeature(\n HydrationFeatureKind.HttpTransferCacheOptions,\n ɵwithHttpTransferCache(options),\n );\n}\n\n/**\n * Enables support for hydrating i18n blocks.\n *\n * @developerPreview\n * @publicApi\n */\nexport function withI18nSupport(): HydrationFeature<HydrationFeatureKind.I18nSupport> {\n return hydrationFeature(HydrationFeatureKind.I18nSupport, ɵwithI18nSupport());\n}\n\n/**\n * Enables support for replaying user events (e.g. `click`s) that happened on a page\n * before hydration logic has completed. Once an application is hydrated, all captured\n * events are replayed and relevant event listeners are executed.\n *\n * @usageNotes\n *\n * Basic example of how you can enable event replay in your application when\n * `bootstrapApplication` function is used:\n * ```ts\n * bootstrapApplication(AppComponent, {\n * providers: [provideClientHydration(withEventReplay())]\n * });\n * ```\n * @publicApi\n * @see {@link provideClientHydration}\n */\nexport function withEventReplay(): HydrationFeature<HydrationFeatureKind.EventReplay> {\n return hydrationFeature(HydrationFeatureKind.EventReplay, ɵwithEventReplay());\n}\n\n/**\n * Enables support for incremental hydration using the `hydrate` trigger syntax.\n *\n * @usageNotes\n *\n * Basic example of how you can enable incremental hydration in your application when\n * the `bootstrapApplication` function is used:\n * ```ts\n * bootstrapApplication(AppComponent, {\n * providers: [provideClientHydration(withIncrementalHydration())]\n * });\n * ```\n * @experimental\n * @publicApi\n * @see {@link provideClientHydration}\n */\nexport function withIncrementalHydration(): HydrationFeature<HydrationFeatureKind.IncrementalHydration> {\n return hydrationFeature(HydrationFeatureKind.IncrementalHydration, ɵwithIncrementalHydration());\n}\n\n/**\n * Returns an `ENVIRONMENT_INITIALIZER` token setup with a function\n * that verifies whether compatible ZoneJS was used in an application\n * and logs a warning in a console if it's not the case.\n */\nfunction provideZoneJsCompatibilityDetector(): Provider[] {\n return [\n {\n provide: ENVIRONMENT_INITIALIZER,\n useValue: () => {\n const ngZone = inject(NgZone);\n const isZoneless = inject(ZONELESS_ENABLED);\n // Checking `ngZone instanceof NgZone` would be insufficient here,\n // because custom implementations might use NgZone as a base class.\n if (!isZoneless && ngZone.constructor !== NgZone) {\n const console = inject(Console);\n const message = formatRuntimeError(\n RuntimeErrorCode.UNSUPPORTED_ZONEJS_INSTANCE,\n 'Angular detected that hydration was enabled for an application ' +\n 'that uses a custom or a noop Zone.js implementation. ' +\n 'This is not yet a fully supported configuration.',\n );\n console.warn(message);\n }\n },\n multi: true,\n },\n ];\n}\n\n/**\n * Sets up providers necessary to enable hydration functionality for the application.\n *\n * By default, the function enables the recommended set of features for the optimal\n * performance for most of the applications. It includes the following features:\n *\n * * Reconciling DOM hydration. Learn more about it [here](guide/hydration).\n * * [`HttpClient`](api/common/http/HttpClient) response caching while running on the server and\n * transferring this cache to the client to avoid extra HTTP requests. Learn more about data caching\n * [here](guide/ssr#caching-data-when-using-httpclient).\n *\n * These functions allow you to disable some of the default features or enable new ones:\n *\n * * {@link withNoHttpTransferCache} to disable HTTP transfer cache\n * * {@link withHttpTransferCacheOptions} to configure some HTTP transfer cache options\n * * {@link withI18nSupport} to enable hydration support for i18n blocks\n * * {@link withEventReplay} to enable support for replaying user events\n *\n * @usageNotes\n *\n * Basic example of how you can enable hydration in your application when\n * `bootstrapApplication` function is used:\n * ```ts\n * bootstrapApplication(AppComponent, {\n * providers: [provideClientHydration()]\n * });\n * ```\n *\n * Alternatively if you are using NgModules, you would add `provideClientHydration`\n * to your root app module's provider list.\n * ```ts\n * @NgModule({\n * declarations: [RootCmp],\n * bootstrap: [RootCmp],\n * providers: [provideClientHydration()],\n * })\n * export class AppModule {}\n * ```\n *\n * @see {@link withNoHttpTransferCache}\n * @see {@link withHttpTransferCacheOptions}\n * @see {@link withI18nSupport}\n * @see {@link withEventReplay}\n *\n * @param features Optional features to configure additional hydration behaviors.\n * @returns A set of providers to enable hydration.\n *\n * @publicApi\n */\nexport function provideClientHydration(\n ...features: HydrationFeature<HydrationFeatureKind>[]\n): EnvironmentProviders {\n const providers: Provider[] = [];\n const featuresKind = new Set<HydrationFeatureKind>();\n\n for (const {ɵproviders, ɵkind} of features) {\n featuresKind.add(ɵkind);\n\n if (ɵproviders.length) {\n providers.push(ɵproviders);\n }\n }\n\n const hasHttpTransferCacheOptions = featuresKind.has(\n HydrationFeatureKind.HttpTransferCacheOptions,\n );\n\n if (\n typeof ngDevMode !== 'undefined' &&\n ngDevMode &&\n featuresKind.has(HydrationFeatureKind.NoHttpTransferCache) &&\n hasHttpTransferCacheOptions\n ) {\n // TODO: Make this a runtime error\n throw new Error(\n 'Configuration error: found both withHttpTransferCacheOptions() and withNoHttpTransferCache() in the same call to provideClientHydration(), which is a contradiction.',\n );\n }\n\n return makeEnvironmentProviders([\n typeof ngDevMode !== 'undefined' && ngDevMode ? provideZoneJsCompatibilityDetector() : [],\n withDomHydration(),\n featuresKind.has(HydrationFeatureKind.NoHttpTransferCache) || hasHttpTransferCacheOptions\n ? []\n : ɵwithHttpTransferCache({}),\n providers,\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\n/**\n * @module\n * @description\n * Entry point for all public APIs of the platform-browser package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('19.2.18');\n"],"names":["getDOM","global","Console","allowSanitizationBypassOrThrow","unwrapSafeValue","_sanitizeHtml","RuntimeError","_sanitizeUrl","XSS_SECURITY_URL","bypassSanitizationTrustHtml","bypassSanitizationTrustStyle","bypassSanitizationTrustScript","bypassSanitizationTrustUrl","bypassSanitizationTrustResourceUrl","ɵwithHttpTransferCache","ɵwithI18nSupport","ɵwithEventReplay","ɵwithIncrementalHydration","ZONELESS_ENABLED","formatRuntimeError","withDomHydration"],"mappings":"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"}
/**
* @license Angular v19.2.17
* @license Angular v19.2.18
* (c) 2010-2025 Google LLC. https://angular.io/

@@ -46,6 +46,6 @@ * License: MIT

}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DOMTestComponentRenderer, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DOMTestComponentRenderer });
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DOMTestComponentRenderer, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DOMTestComponentRenderer });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DOMTestComponentRenderer, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DOMTestComponentRenderer, decorators: [{
type: Injectable

@@ -69,5 +69,5 @@ }], ctorParameters: () => [{ type: undefined, decorators: [{

class BrowserTestingModule {
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: BrowserTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: BrowserTestingModule, exports: [BrowserModule] });
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: BrowserTestingModule, providers: [
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: BrowserTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: BrowserTestingModule, exports: [BrowserModule] });
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: BrowserTestingModule, providers: [
{ provide: APP_ID, useValue: 'a' },

@@ -80,3 +80,3 @@ _internalProvideZoneChangeDetection({}),

}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: BrowserTestingModule, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: BrowserTestingModule, decorators: [{
type: NgModule,

@@ -83,0 +83,0 @@ args: [{

/**
* @license Angular v19.2.17
* @license Angular v19.2.18
* (c) 2010-2025 Google LLC. https://angular.io/

@@ -4,0 +4,0 @@ * License: MIT

{
"name": "@angular/platform-browser",
"version": "19.2.17",
"version": "19.2.18",
"description": "Angular - library for using Angular in a web browser",

@@ -14,5 +14,5 @@ "author": "angular",

"peerDependencies": {
"@angular/animations": "19.2.17",
"@angular/core": "19.2.17",
"@angular/common": "19.2.17"
"@angular/animations": "19.2.18",
"@angular/core": "19.2.18",
"@angular/common": "19.2.18"
},

@@ -19,0 +19,0 @@ "peerDependenciesMeta": {

/**
* @license Angular v19.2.17
* @license Angular v19.2.18
* (c) 2010-2025 Google LLC. https://angular.io/

@@ -4,0 +4,0 @@ * License: MIT