@angular/platform-browser 21.0.0-rc.0 → 21.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"_dom_renderer-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-browser/src/dom/events/dom_events.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-browser/src/dom/events/event_manager.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-browser/src/dom/shared_styles_host.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-browser/src/dom/dom_renderer.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} from '@angular/common';\nimport {Inject, Injectable, type ListenerOptions} from '@angular/core';\nimport {EventManagerPlugin} from './event_manager_plugin';\n\n@Injectable()\nexport class DomEventsPlugin extends EventManagerPlugin {\n constructor(@Inject(DOCUMENT) doc: any) {\n super(doc);\n }\n\n // This plugin should come last in the list of plugins, because it accepts all\n // events.\n override supports(eventName: string): boolean {\n return true;\n }\n\n override addEventListener(\n element: HTMLElement,\n eventName: string,\n handler: Function,\n options?: ListenerOptions,\n ): Function {\n element.addEventListener(eventName, handler as EventListener, options);\n return () => this.removeEventListener(element, eventName, handler as EventListener, options);\n }\n\n removeEventListener(\n target: any,\n eventName: string,\n callback: Function,\n options?: ListenerOptions,\n ): void {\n return target.removeEventListener(eventName, callback as EventListener, options);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Inject,\n Injectable,\n InjectionToken,\n NgZone,\n ɵRuntimeError as RuntimeError,\n type ListenerOptions,\n} from '@angular/core';\n\nimport {RuntimeErrorCode} from '../../errors';\n\nimport type {EventManagerPlugin} from './event_manager_plugin';\n\nimport {DomEventsPlugin} from './dom_events';\n\n/**\n * The injection token for plugins of the `EventManager` service.\n *\n * @see [Extend event handling](guide/templates/event-listeners#extend-event-handling)\n *\n * @publicApi\n */\nexport const EVENT_MANAGER_PLUGINS = new InjectionToken<EventManagerPlugin[]>(\n typeof ngDevMode !== undefined && 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\n const otherPlugins = plugins.filter((p) => !(p instanceof DomEventsPlugin));\n this._plugins = otherPlugins.slice().reverse();\n\n // DomEventsPlugin.supports() always returns true, it should always be the last plugin.\n const domEventPlugin = plugins.find((p) => p instanceof DomEventsPlugin);\n if (domEventPlugin) {\n this._plugins.push(domEventPlugin);\n }\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 * @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 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 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 // Cannot remove it due to backward compatibility\n // (it seems some TGP targets might be calling this constructor directly).\n @Inject(PLATFORM_ID) platformId: object = {},\n ) {\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 (typeof ngServerMode !== 'undefined' && ngServerMode) {\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 */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {\n APP_ID,\n CSP_NONCE,\n Inject,\n Injectable,\n InjectionToken,\n NgZone,\n OnDestroy,\n PLATFORM_ID,\n Renderer2,\n RendererFactory2,\n RendererStyleFlags2,\n RendererType2,\n ViewEncapsulation,\n ɵRuntimeError as RuntimeError,\n type ListenerOptions,\n ɵTracingService as TracingService,\n ɵTracingSnapshot as TracingSnapshot,\n Optional,\n ɵallLeavingAnimations as allLeavingAnimations,\n} from '@angular/core';\n\nimport {RuntimeErrorCode} from '../errors';\n\nimport {EventManager} from './events/event_manager';\nimport {createLinkElement, SharedStylesHost} from './shared_styles_host';\n\nexport const NAMESPACE_URIS: {[ns: string]: string} = {\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};\n\nconst COMPONENT_REGEX = /%COMP%/g;\nconst SOURCEMAP_URL_REGEXP = /\\/\\*#\\s*sourceMappingURL=(.+?)\\s*\\*\\//;\nconst PROTOCOL_REGEXP = /^https?:/;\n\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\n\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/**\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<boolean>(\n typeof ngDevMode !== undefined && ngDevMode ? 'RemoveStylesOnCompDestroy' : '',\n {\n providedIn: 'root',\n factory: () => REMOVE_STYLES_ON_COMPONENT_DESTROY_DEFAULT,\n },\n);\n\nexport function shimContentAttribute(componentShortId: string): string {\n return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function shimHostAttribute(componentShortId: string): string {\n return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function shimStylesContent(compId: string, styles: string[]): string[] {\n return styles.map((s) => s.replace(COMPONENT_REGEX, compId));\n}\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: string, styles: string[]): string[] {\n if (!baseHref) {\n return styles;\n }\n\n const absoluteBaseHrefUrl = new URL(baseHref, 'http://localhost');\n\n return styles.map((cssContent) => {\n if (!cssContent.includes('sourceMappingURL=')) {\n return cssContent;\n }\n\n return cssContent.replace(SOURCEMAP_URL_REGEXP, (_, sourceMapUrl) => {\n if (\n sourceMapUrl[0] === '/' ||\n sourceMapUrl.startsWith('data:') ||\n PROTOCOL_REGEXP.test(sourceMapUrl)\n ) {\n return `/*# sourceMappingURL=${sourceMapUrl} */`;\n }\n\n const {pathname: resolvedSourceMapUrl} = new URL(sourceMapUrl, absoluteBaseHrefUrl);\n\n return `/*# sourceMappingURL=${resolvedSourceMapUrl} */`;\n });\n });\n}\n\n@Injectable()\nexport class DomRendererFactory2 implements RendererFactory2, OnDestroy {\n private readonly rendererByCompId = new Map<\n string,\n EmulatedEncapsulationDomRenderer2 | NoneEncapsulationDomRenderer\n >();\n private readonly defaultRenderer: Renderer2;\n private readonly platformIsServer: boolean;\n\n constructor(\n private readonly eventManager: EventManager,\n private readonly sharedStylesHost: SharedStylesHost,\n @Inject(APP_ID) private readonly appId: string,\n @Inject(REMOVE_STYLES_ON_COMPONENT_DESTROY) private removeStylesOnCompDestroy: boolean,\n @Inject(DOCUMENT) private readonly doc: Document,\n @Inject(PLATFORM_ID) readonly platformId: Object,\n readonly ngZone: NgZone,\n @Inject(CSP_NONCE) private readonly nonce: string | null = null,\n @Inject(TracingService)\n @Optional()\n private readonly tracingService: TracingService<TracingSnapshot> | null = null,\n ) {\n this.platformIsServer = typeof ngServerMode !== 'undefined' && ngServerMode;\n this.defaultRenderer = new DefaultDomRenderer2(\n eventManager,\n doc,\n ngZone,\n this.platformIsServer,\n this.tracingService,\n );\n }\n\n createRenderer(element: any, type: RendererType2 | null): Renderer2 {\n if (!element || !type) {\n return this.defaultRenderer;\n }\n\n if (\n typeof ngServerMode !== 'undefined' &&\n ngServerMode &&\n (type.encapsulation === ViewEncapsulation.ShadowDom ||\n type.encapsulation === ViewEncapsulation.IsolatedShadowDom)\n ) {\n // Domino does not support shadow DOM.\n type = {...type, encapsulation: ViewEncapsulation.Emulated};\n }\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 } else if (renderer instanceof NoneEncapsulationDomRenderer) {\n renderer.applyStyles();\n }\n\n return renderer;\n }\n\n private getOrCreateRenderer(element: any, type: RendererType2): Renderer2 {\n const rendererByCompId = this.rendererByCompId;\n let renderer = rendererByCompId.get(type.id);\n\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\n switch (type.encapsulation) {\n case ViewEncapsulation.Emulated:\n renderer = new EmulatedEncapsulationDomRenderer2(\n eventManager,\n sharedStylesHost,\n type,\n this.appId,\n removeStylesOnCompDestroy,\n doc,\n ngZone,\n platformIsServer,\n tracingService,\n );\n break;\n case ViewEncapsulation.ShadowDom:\n return new ShadowDomRenderer(\n eventManager,\n element,\n type,\n doc,\n ngZone,\n this.nonce,\n platformIsServer,\n tracingService,\n sharedStylesHost,\n );\n case ViewEncapsulation.IsolatedShadowDom:\n return new ShadowDomRenderer(\n eventManager,\n element,\n type,\n doc,\n ngZone,\n this.nonce,\n platformIsServer,\n tracingService,\n );\n\n default:\n renderer = new NoneEncapsulationDomRenderer(\n eventManager,\n sharedStylesHost,\n type,\n removeStylesOnCompDestroy,\n doc,\n ngZone,\n platformIsServer,\n tracingService,\n );\n break;\n }\n\n rendererByCompId.set(type.id, renderer);\n }\n\n return renderer;\n }\n\n ngOnDestroy() {\n this.rendererByCompId.clear();\n }\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 protected componentReplaced(componentId: string) {\n this.rendererByCompId.delete(componentId);\n }\n}\n\nclass DefaultDomRenderer2 implements Renderer2 {\n data: {[key: string]: any} = Object.create(null);\n\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\n constructor(\n private readonly eventManager: EventManager,\n private readonly doc: Document,\n protected readonly ngZone: NgZone,\n private readonly platformIsServer: boolean,\n private readonly tracingService: TracingService<TracingSnapshot> | null,\n ) {}\n\n destroy(): void {}\n\n destroyNode = null;\n\n createElement(name: string, namespace?: string): any {\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\n return this.doc.createElement(name);\n }\n\n createComment(value: string): any {\n return this.doc.createComment(value);\n }\n\n createText(value: string): any {\n return this.doc.createTextNode(value);\n }\n\n appendChild(parent: any, newChild: any): void {\n const targetParent = isTemplateNode(parent) ? parent.content : parent;\n targetParent.appendChild(newChild);\n }\n\n insertBefore(parent: any, newChild: any, refChild: any): void {\n if (parent) {\n const targetParent = isTemplateNode(parent) ? parent.content : parent;\n targetParent.insertBefore(newChild, refChild);\n }\n }\n\n removeChild(_parent: any, oldChild: any): void {\n // child was removed\n oldChild.remove();\n }\n\n selectRootElement(selectorOrNode: string | any, preserveContent?: boolean): any {\n let el: any =\n typeof selectorOrNode === 'string' ? this.doc.querySelector(selectorOrNode) : selectorOrNode;\n if (!el) {\n throw new RuntimeError(\n RuntimeErrorCode.ROOT_NODE_NOT_FOUND,\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n `The selector \"${selectorOrNode}\" did not match any elements`,\n );\n }\n if (!preserveContent) {\n el.textContent = '';\n }\n return el;\n }\n\n parentNode(node: any): any {\n return node.parentNode;\n }\n\n nextSibling(node: any): any {\n return node.nextSibling;\n }\n\n setAttribute(el: any, name: string, value: string, namespace?: string): void {\n if (namespace) {\n name = namespace + ':' + name;\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.setAttributeNS(namespaceUri, name, value);\n } else {\n el.setAttribute(name, value);\n }\n } else {\n el.setAttribute(name, value);\n }\n }\n\n removeAttribute(el: any, name: string, namespace?: string): void {\n if (namespace) {\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.removeAttributeNS(namespaceUri, name);\n } else {\n el.removeAttribute(`${namespace}:${name}`);\n }\n } else {\n el.removeAttribute(name);\n }\n }\n\n addClass(el: any, name: string): void {\n el.classList.add(name);\n }\n\n removeClass(el: any, name: string): void {\n el.classList.remove(name);\n }\n\n setStyle(el: any, style: string, value: any, flags: RendererStyleFlags2): void {\n if (flags & (RendererStyleFlags2.DashCase | RendererStyleFlags2.Important)) {\n el.style.setProperty(style, value, flags & RendererStyleFlags2.Important ? 'important' : '');\n } else {\n el.style[style] = value;\n }\n }\n\n removeStyle(el: any, style: string, flags: RendererStyleFlags2): void {\n if (flags & RendererStyleFlags2.DashCase) {\n // removeProperty has no effect when used on camelCased properties.\n el.style.removeProperty(style);\n } else {\n el.style[style] = '';\n }\n }\n\n setProperty(el: any, name: string, value: any): void {\n if (el == null) {\n return;\n }\n\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n this.throwOnSyntheticProps &&\n checkNoSyntheticProp(name, 'property');\n el[name] = value;\n }\n\n setValue(node: any, value: string): void {\n node.nodeValue = value;\n }\n\n listen(\n target: 'window' | 'document' | 'body' | any,\n event: string,\n callback: (event: any) => boolean,\n options?: ListenerOptions,\n ): () => void {\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(\n RuntimeErrorCode.UNSUPPORTED_EVENT_TARGET,\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n `Unsupported event target ${target} for event ${event}`,\n );\n }\n }\n\n let wrappedCallback = this.decoratePreventDefault(callback);\n\n if (this.tracingService?.wrapEventListener) {\n wrappedCallback = this.tracingService.wrapEventListener(target, event, wrappedCallback);\n }\n\n return this.eventManager.addEventListener(\n target,\n event,\n wrappedCallback,\n options,\n ) as VoidFunction;\n }\n\n private decoratePreventDefault(eventHandler: Function): Function {\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: any) => {\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\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 =\n typeof ngServerMode !== 'undefined' && ngServerMode\n ? this.ngZone.runGuarded(() => eventHandler(event))\n : eventHandler(event);\n if (allowDefaultBehavior === false) {\n event.preventDefault();\n }\n\n return undefined;\n };\n }\n}\n\nconst AT_CHARCODE = (() => '@'.charCodeAt(0))();\n\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n if (name.charCodeAt(0) === AT_CHARCODE) {\n throw new RuntimeError(\n RuntimeErrorCode.UNEXPECTED_SYNTHETIC_PROPERTY,\n `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 }\n}\n\nfunction isTemplateNode(node: any): node is HTMLTemplateElement {\n return node.tagName === 'TEMPLATE' && node.content !== undefined;\n}\n\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n private shadowRoot: any;\n\n constructor(\n eventManager: EventManager,\n private hostEl: any,\n component: RendererType2,\n doc: Document,\n ngZone: NgZone,\n nonce: string | null,\n platformIsServer: boolean,\n tracingService: TracingService<TracingSnapshot> | null,\n private sharedStylesHost?: SharedStylesHost,\n ) {\n super(eventManager, doc, ngZone, platformIsServer, tracingService);\n this.shadowRoot = (hostEl as any).attachShadow({mode: 'open'});\n\n // SharedStylesHost is used to add styles to the shadow root by ShadowDom.\n // This is optional as it is not used by IsolatedShadowDom.\n if (this.sharedStylesHost) {\n this.sharedStylesHost.addHost(this.shadowRoot);\n }\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\n styles = shimStylesContent(component.id, styles);\n\n for (const style of styles) {\n const styleEl = document.createElement('style');\n\n if (nonce) {\n styleEl.setAttribute('nonce', nonce);\n }\n\n styleEl.textContent = style;\n this.shadowRoot.appendChild(styleEl);\n }\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\n private nodeOrShadowRoot(node: any): any {\n return node === this.hostEl ? this.shadowRoot : node;\n }\n\n override appendChild(parent: any, newChild: any): void {\n return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n }\n\n override insertBefore(parent: any, newChild: any, refChild: any): void {\n return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n }\n\n override removeChild(_parent: any, oldChild: any): void {\n return super.removeChild(null, oldChild);\n }\n\n override parentNode(node: any): any {\n return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\n }\n\n override destroy() {\n if (this.sharedStylesHost) {\n this.sharedStylesHost.removeHost(this.shadowRoot);\n }\n }\n}\n\nclass NoneEncapsulationDomRenderer extends DefaultDomRenderer2 {\n private readonly styles: string[];\n private readonly styleUrls?: string[];\n\n constructor(\n eventManager: EventManager,\n private readonly sharedStylesHost: SharedStylesHost,\n component: RendererType2,\n private removeStylesOnCompDestroy: boolean,\n doc: Document,\n ngZone: NgZone,\n platformIsServer: boolean,\n tracingService: TracingService<TracingSnapshot> | null,\n compId?: string,\n ) {\n super(eventManager, doc, ngZone, platformIsServer, tracingService);\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\n this.styles = compId ? shimStylesContent(compId, styles) : styles;\n this.styleUrls = component.getExternalStyles?.(compId);\n }\n\n applyStyles(): void {\n this.sharedStylesHost.addStyles(this.styles, this.styleUrls);\n }\n\n override destroy(): void {\n if (!this.removeStylesOnCompDestroy) {\n return;\n }\n if (allLeavingAnimations.size === 0) {\n this.sharedStylesHost.removeStyles(this.styles, this.styleUrls);\n }\n }\n}\n\nclass EmulatedEncapsulationDomRenderer2 extends NoneEncapsulationDomRenderer {\n private contentAttr: string;\n private hostAttr: string;\n\n constructor(\n eventManager: EventManager,\n sharedStylesHost: SharedStylesHost,\n component: RendererType2,\n appId: string,\n removeStylesOnCompDestroy: boolean,\n doc: Document,\n ngZone: NgZone,\n platformIsServer: boolean,\n tracingService: TracingService<TracingSnapshot> | null,\n ) {\n const compId = appId + '-' + component.id;\n super(\n eventManager,\n sharedStylesHost,\n component,\n removeStylesOnCompDestroy,\n doc,\n ngZone,\n platformIsServer,\n tracingService,\n compId,\n );\n this.contentAttr = shimContentAttribute(compId);\n this.hostAttr = shimHostAttribute(compId);\n }\n\n applyToHost(element: any): void {\n this.applyStyles();\n this.setAttribute(element, this.hostAttr, '');\n }\n\n override createElement(parent: any, name: string): Element {\n const el = super.createElement(parent, name);\n super.setAttribute(el, this.contentAttr, '');\n return el;\n }\n}\n"],"names":["addEventListener","element","eventName","handler","options","removeEventListener","target","callback","EVENT_MANAGER_PLUGINS","InjectionToken","ngDevMode","undefined","EventManager","_zone","_plugins","otherPlugins","slice","reverse","domEventPlugin","plugins","find","p","DomEventsPlugin","push","elements","remove","external","set","styleElement","href","usage","textContent","inline","linkElement","doc","createElement","nonce","Map","platformId","appId","hosts","add","head","value","styles","removeStyles","urls","addUsage","usages","creator","record","get","forEach","setAttribute","map","host","addElement","NAMESPACE_URIS","SOURCEMAP_URL_REGEXP","PROTOCOL_REGEXP","COMPONENT_VARIABLE","HOST_ATTR","CONTENT_ATTR","shimHostAttribute","componentShortId","COMPONENT_REGEX","s","replace","compId","cssContent","_","sourceMapUrl","startsWith","test","resolvedSourceMapUrl","ngZone","tracingService","rendererByCompId","defaultRenderer","platformIsServer","constructor","eventManager","sharedStylesHost","removeStylesOnCompDestroy","ngServerMode","DefaultDomRenderer2","createRenderer","type","encapsulation","ViewEncapsulation","ShadowDom","Emulated","id","renderer","EmulatedEncapsulationDomRenderer2","ShadowDomRenderer","IsolatedShadowDom","NoneEncapsulationDomRenderer","clear","componentReplaced","componentId","delete","Injectable","ctorParameters","i1","i2","decorators","Document","throwOnSyntheticProps","name","namespace","createElementNS","createComment","createTextNode","appendChild","parent","newChild","isTemplateNode","content","targetParent","insertBefore","refChild","removeChild","_parent","oldChild","selectRootElement","selectorOrNode","preserveContent","el","querySelector","node","parentNode","nextSibling","namespaceUri","setAttributeNS","removeAttributeNS","removeAttribute","removeClass","setStyle","style","flags","RendererStyleFlags2","DashCase","Important","removeProperty","setProperty","checkNoSyntheticProp","event","getDOM","getGlobalEventTarget","RuntimeError","wrappedCallback","decoratePreventDefault","wrapEventListener","eventHandler","allowDefaultBehavior","runGuarded","charCodeAt","nameKind","AT_CHARCODE","tagName"],"mappings":"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"}
1
+ {"version":3,"file":"_dom_renderer-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-browser/src/dom/events/event_manager_plugin.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-browser/src/dom/events/dom_events.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-browser/src/dom/events/event_manager.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-browser/src/dom/shared_styles_host.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-browser/src/dom/dom_renderer.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 type {ListenerOptions} from '@angular/core';\nimport type {EventManager} from './event_manager';\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 * @see [Extend event handling](guide/templates/event-listeners#extend-event-handling)\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} from '@angular/common';\nimport {Inject, Injectable, type ListenerOptions} from '@angular/core';\nimport {EventManagerPlugin} from './event_manager_plugin';\n\n@Injectable()\nexport class DomEventsPlugin extends EventManagerPlugin {\n constructor(@Inject(DOCUMENT) doc: any) {\n super(doc);\n }\n\n // This plugin should come last in the list of plugins, because it accepts all\n // events.\n override supports(eventName: string): boolean {\n return true;\n }\n\n override addEventListener(\n element: HTMLElement,\n eventName: string,\n handler: Function,\n options?: ListenerOptions,\n ): Function {\n element.addEventListener(eventName, handler as EventListener, options);\n return () => this.removeEventListener(element, eventName, handler as EventListener, options);\n }\n\n removeEventListener(\n target: any,\n eventName: string,\n callback: Function,\n options?: ListenerOptions,\n ): void {\n return target.removeEventListener(eventName, callback as EventListener, options);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Inject,\n Injectable,\n InjectionToken,\n NgZone,\n ɵRuntimeError as RuntimeError,\n type ListenerOptions,\n} from '@angular/core';\n\nimport {RuntimeErrorCode} from '../../errors';\n\nimport type {EventManagerPlugin} from './event_manager_plugin';\n\nimport {DomEventsPlugin} from './dom_events';\n\n/**\n * The injection token for plugins of the `EventManager` service.\n *\n * @see [Extend event handling](guide/templates/event-listeners#extend-event-handling)\n *\n * @publicApi\n */\nexport const EVENT_MANAGER_PLUGINS = new InjectionToken<EventManagerPlugin[]>(\n typeof ngDevMode !== undefined && 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\n const otherPlugins = plugins.filter((p) => !(p instanceof DomEventsPlugin));\n this._plugins = otherPlugins.slice().reverse();\n\n // DomEventsPlugin.supports() always returns true, it should always be the last plugin.\n const domEventPlugin = plugins.find((p) => p instanceof DomEventsPlugin);\n if (domEventPlugin) {\n this._plugins.push(domEventPlugin);\n }\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 * @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 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 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 // Cannot remove it due to backward compatibility\n // (it seems some TGP targets might be calling this constructor directly).\n @Inject(PLATFORM_ID) platformId: object = {},\n ) {\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 (typeof ngServerMode !== 'undefined' && ngServerMode) {\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 */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {\n APP_ID,\n CSP_NONCE,\n Inject,\n Injectable,\n InjectionToken,\n NgZone,\n OnDestroy,\n PLATFORM_ID,\n Renderer2,\n RendererFactory2,\n RendererStyleFlags2,\n RendererType2,\n ViewEncapsulation,\n ɵRuntimeError as RuntimeError,\n type ListenerOptions,\n ɵTracingService as TracingService,\n ɵTracingSnapshot as TracingSnapshot,\n Optional,\n ɵallLeavingAnimations as allLeavingAnimations,\n} from '@angular/core';\n\nimport {RuntimeErrorCode} from '../errors';\n\nimport {EventManager} from './events/event_manager';\nimport {createLinkElement, SharedStylesHost} from './shared_styles_host';\n\nexport const NAMESPACE_URIS: {[ns: string]: string} = {\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};\n\nconst COMPONENT_REGEX = /%COMP%/g;\nconst SOURCEMAP_URL_REGEXP = /\\/\\*#\\s*sourceMappingURL=(.+?)\\s*\\*\\//;\nconst PROTOCOL_REGEXP = /^https?:/;\n\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\n\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/**\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<boolean>(\n typeof ngDevMode !== undefined && ngDevMode ? 'RemoveStylesOnCompDestroy' : '',\n {\n factory: () => REMOVE_STYLES_ON_COMPONENT_DESTROY_DEFAULT,\n },\n);\n\nexport function shimContentAttribute(componentShortId: string): string {\n return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function shimHostAttribute(componentShortId: string): string {\n return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function shimStylesContent(compId: string, styles: string[]): string[] {\n return styles.map((s) => s.replace(COMPONENT_REGEX, compId));\n}\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: string, styles: string[]): string[] {\n if (!baseHref) {\n return styles;\n }\n\n const absoluteBaseHrefUrl = new URL(baseHref, 'http://localhost');\n\n return styles.map((cssContent) => {\n if (!cssContent.includes('sourceMappingURL=')) {\n return cssContent;\n }\n\n return cssContent.replace(SOURCEMAP_URL_REGEXP, (_, sourceMapUrl) => {\n if (\n sourceMapUrl[0] === '/' ||\n sourceMapUrl.startsWith('data:') ||\n PROTOCOL_REGEXP.test(sourceMapUrl)\n ) {\n return `/*# sourceMappingURL=${sourceMapUrl} */`;\n }\n\n const {pathname: resolvedSourceMapUrl} = new URL(sourceMapUrl, absoluteBaseHrefUrl);\n\n return `/*# sourceMappingURL=${resolvedSourceMapUrl} */`;\n });\n });\n}\n\n@Injectable()\nexport class DomRendererFactory2 implements RendererFactory2, OnDestroy {\n private readonly rendererByCompId = new Map<\n string,\n EmulatedEncapsulationDomRenderer2 | NoneEncapsulationDomRenderer\n >();\n private readonly defaultRenderer: Renderer2;\n private readonly platformIsServer: boolean;\n\n constructor(\n private readonly eventManager: EventManager,\n private readonly sharedStylesHost: SharedStylesHost,\n @Inject(APP_ID) private readonly appId: string,\n @Inject(REMOVE_STYLES_ON_COMPONENT_DESTROY) private removeStylesOnCompDestroy: boolean,\n @Inject(DOCUMENT) private readonly doc: Document,\n @Inject(PLATFORM_ID) readonly platformId: Object,\n readonly ngZone: NgZone,\n @Inject(CSP_NONCE) private readonly nonce: string | null = null,\n @Inject(TracingService)\n @Optional()\n private readonly tracingService: TracingService<TracingSnapshot> | null = null,\n ) {\n this.platformIsServer = typeof ngServerMode !== 'undefined' && ngServerMode;\n this.defaultRenderer = new DefaultDomRenderer2(\n eventManager,\n doc,\n ngZone,\n this.platformIsServer,\n this.tracingService,\n );\n }\n\n createRenderer(element: any, type: RendererType2 | null): Renderer2 {\n if (!element || !type) {\n return this.defaultRenderer;\n }\n\n if (\n typeof ngServerMode !== 'undefined' &&\n ngServerMode &&\n (type.encapsulation === ViewEncapsulation.ShadowDom ||\n type.encapsulation === ViewEncapsulation.IsolatedShadowDom)\n ) {\n // Domino does not support shadow DOM.\n type = {...type, encapsulation: ViewEncapsulation.Emulated};\n }\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 } else if (renderer instanceof NoneEncapsulationDomRenderer) {\n renderer.applyStyles();\n }\n\n return renderer;\n }\n\n private getOrCreateRenderer(element: any, type: RendererType2): Renderer2 {\n const rendererByCompId = this.rendererByCompId;\n let renderer = rendererByCompId.get(type.id);\n\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\n switch (type.encapsulation) {\n case ViewEncapsulation.Emulated:\n renderer = new EmulatedEncapsulationDomRenderer2(\n eventManager,\n sharedStylesHost,\n type,\n this.appId,\n removeStylesOnCompDestroy,\n doc,\n ngZone,\n platformIsServer,\n tracingService,\n );\n break;\n case ViewEncapsulation.ShadowDom:\n return new ShadowDomRenderer(\n eventManager,\n element,\n type,\n doc,\n ngZone,\n this.nonce,\n platformIsServer,\n tracingService,\n sharedStylesHost,\n );\n case ViewEncapsulation.IsolatedShadowDom:\n return new ShadowDomRenderer(\n eventManager,\n element,\n type,\n doc,\n ngZone,\n this.nonce,\n platformIsServer,\n tracingService,\n );\n\n default:\n renderer = new NoneEncapsulationDomRenderer(\n eventManager,\n sharedStylesHost,\n type,\n removeStylesOnCompDestroy,\n doc,\n ngZone,\n platformIsServer,\n tracingService,\n );\n break;\n }\n\n rendererByCompId.set(type.id, renderer);\n }\n\n return renderer;\n }\n\n ngOnDestroy() {\n this.rendererByCompId.clear();\n }\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 protected componentReplaced(componentId: string) {\n this.rendererByCompId.delete(componentId);\n }\n}\n\nclass DefaultDomRenderer2 implements Renderer2 {\n data: {[key: string]: any} = Object.create(null);\n\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\n constructor(\n private readonly eventManager: EventManager,\n private readonly doc: Document,\n protected readonly ngZone: NgZone,\n private readonly platformIsServer: boolean,\n private readonly tracingService: TracingService<TracingSnapshot> | null,\n ) {}\n\n destroy(): void {}\n\n destroyNode = null;\n\n createElement(name: string, namespace?: string): any {\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\n return this.doc.createElement(name);\n }\n\n createComment(value: string): any {\n return this.doc.createComment(value);\n }\n\n createText(value: string): any {\n return this.doc.createTextNode(value);\n }\n\n appendChild(parent: any, newChild: any): void {\n const targetParent = isTemplateNode(parent) ? parent.content : parent;\n targetParent.appendChild(newChild);\n }\n\n insertBefore(parent: any, newChild: any, refChild: any): void {\n if (parent) {\n const targetParent = isTemplateNode(parent) ? parent.content : parent;\n targetParent.insertBefore(newChild, refChild);\n }\n }\n\n removeChild(_parent: any, oldChild: any): void {\n // child was removed\n oldChild.remove();\n }\n\n selectRootElement(selectorOrNode: string | any, preserveContent?: boolean): any {\n let el: any =\n typeof selectorOrNode === 'string' ? this.doc.querySelector(selectorOrNode) : selectorOrNode;\n if (!el) {\n throw new RuntimeError(\n RuntimeErrorCode.ROOT_NODE_NOT_FOUND,\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n `The selector \"${selectorOrNode}\" did not match any elements`,\n );\n }\n if (!preserveContent) {\n el.textContent = '';\n }\n return el;\n }\n\n parentNode(node: any): any {\n return node.parentNode;\n }\n\n nextSibling(node: any): any {\n return node.nextSibling;\n }\n\n setAttribute(el: any, name: string, value: string, namespace?: string): void {\n if (namespace) {\n name = namespace + ':' + name;\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.setAttributeNS(namespaceUri, name, value);\n } else {\n el.setAttribute(name, value);\n }\n } else {\n el.setAttribute(name, value);\n }\n }\n\n removeAttribute(el: any, name: string, namespace?: string): void {\n if (namespace) {\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.removeAttributeNS(namespaceUri, name);\n } else {\n el.removeAttribute(`${namespace}:${name}`);\n }\n } else {\n el.removeAttribute(name);\n }\n }\n\n addClass(el: any, name: string): void {\n el.classList.add(name);\n }\n\n removeClass(el: any, name: string): void {\n el.classList.remove(name);\n }\n\n setStyle(el: any, style: string, value: any, flags: RendererStyleFlags2): void {\n if (flags & (RendererStyleFlags2.DashCase | RendererStyleFlags2.Important)) {\n el.style.setProperty(style, value, flags & RendererStyleFlags2.Important ? 'important' : '');\n } else {\n el.style[style] = value;\n }\n }\n\n removeStyle(el: any, style: string, flags: RendererStyleFlags2): void {\n if (flags & RendererStyleFlags2.DashCase) {\n // removeProperty has no effect when used on camelCased properties.\n el.style.removeProperty(style);\n } else {\n el.style[style] = '';\n }\n }\n\n setProperty(el: any, name: string, value: any): void {\n if (el == null) {\n return;\n }\n\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n this.throwOnSyntheticProps &&\n checkNoSyntheticProp(name, 'property');\n el[name] = value;\n }\n\n setValue(node: any, value: string): void {\n node.nodeValue = value;\n }\n\n listen(\n target: 'window' | 'document' | 'body' | any,\n event: string,\n callback: (event: any) => boolean,\n options?: ListenerOptions,\n ): () => void {\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(\n RuntimeErrorCode.UNSUPPORTED_EVENT_TARGET,\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n `Unsupported event target ${target} for event ${event}`,\n );\n }\n }\n\n let wrappedCallback = this.decoratePreventDefault(callback);\n\n if (this.tracingService?.wrapEventListener) {\n wrappedCallback = this.tracingService.wrapEventListener(target, event, wrappedCallback);\n }\n\n return this.eventManager.addEventListener(\n target,\n event,\n wrappedCallback,\n options,\n ) as VoidFunction;\n }\n\n private decoratePreventDefault(eventHandler: Function): Function {\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: any) => {\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\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 =\n typeof ngServerMode !== 'undefined' && ngServerMode\n ? this.ngZone.runGuarded(() => eventHandler(event))\n : eventHandler(event);\n if (allowDefaultBehavior === false) {\n event.preventDefault();\n }\n\n return undefined;\n };\n }\n}\n\nconst AT_CHARCODE = (() => '@'.charCodeAt(0))();\n\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n if (name.charCodeAt(0) === AT_CHARCODE) {\n throw new RuntimeError(\n RuntimeErrorCode.UNEXPECTED_SYNTHETIC_PROPERTY,\n `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 }\n}\n\nfunction isTemplateNode(node: any): node is HTMLTemplateElement {\n return node.tagName === 'TEMPLATE' && node.content !== undefined;\n}\n\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n private shadowRoot: any;\n\n constructor(\n eventManager: EventManager,\n private hostEl: any,\n component: RendererType2,\n doc: Document,\n ngZone: NgZone,\n nonce: string | null,\n platformIsServer: boolean,\n tracingService: TracingService<TracingSnapshot> | null,\n private sharedStylesHost?: SharedStylesHost,\n ) {\n super(eventManager, doc, ngZone, platformIsServer, tracingService);\n this.shadowRoot = (hostEl as any).attachShadow({mode: 'open'});\n\n // SharedStylesHost is used to add styles to the shadow root by ShadowDom.\n // This is optional as it is not used by IsolatedShadowDom.\n if (this.sharedStylesHost) {\n this.sharedStylesHost.addHost(this.shadowRoot);\n }\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\n styles = shimStylesContent(component.id, styles);\n\n for (const style of styles) {\n const styleEl = document.createElement('style');\n\n if (nonce) {\n styleEl.setAttribute('nonce', nonce);\n }\n\n styleEl.textContent = style;\n this.shadowRoot.appendChild(styleEl);\n }\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\n private nodeOrShadowRoot(node: any): any {\n return node === this.hostEl ? this.shadowRoot : node;\n }\n\n override appendChild(parent: any, newChild: any): void {\n return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n }\n\n override insertBefore(parent: any, newChild: any, refChild: any): void {\n return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n }\n\n override removeChild(_parent: any, oldChild: any): void {\n return super.removeChild(null, oldChild);\n }\n\n override parentNode(node: any): any {\n return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\n }\n\n override destroy() {\n if (this.sharedStylesHost) {\n this.sharedStylesHost.removeHost(this.shadowRoot);\n }\n }\n}\n\nclass NoneEncapsulationDomRenderer extends DefaultDomRenderer2 {\n private readonly styles: string[];\n private readonly styleUrls?: string[];\n\n constructor(\n eventManager: EventManager,\n private readonly sharedStylesHost: SharedStylesHost,\n component: RendererType2,\n private removeStylesOnCompDestroy: boolean,\n doc: Document,\n ngZone: NgZone,\n platformIsServer: boolean,\n tracingService: TracingService<TracingSnapshot> | null,\n compId?: string,\n ) {\n super(eventManager, doc, ngZone, platformIsServer, tracingService);\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\n this.styles = compId ? shimStylesContent(compId, styles) : styles;\n this.styleUrls = component.getExternalStyles?.(compId);\n }\n\n applyStyles(): void {\n this.sharedStylesHost.addStyles(this.styles, this.styleUrls);\n }\n\n override destroy(): void {\n if (!this.removeStylesOnCompDestroy) {\n return;\n }\n if (allLeavingAnimations.size === 0) {\n this.sharedStylesHost.removeStyles(this.styles, this.styleUrls);\n }\n }\n}\n\nclass EmulatedEncapsulationDomRenderer2 extends NoneEncapsulationDomRenderer {\n private contentAttr: string;\n private hostAttr: string;\n\n constructor(\n eventManager: EventManager,\n sharedStylesHost: SharedStylesHost,\n component: RendererType2,\n appId: string,\n removeStylesOnCompDestroy: boolean,\n doc: Document,\n ngZone: NgZone,\n platformIsServer: boolean,\n tracingService: TracingService<TracingSnapshot> | null,\n ) {\n const compId = appId + '-' + component.id;\n super(\n eventManager,\n sharedStylesHost,\n component,\n removeStylesOnCompDestroy,\n doc,\n ngZone,\n platformIsServer,\n tracingService,\n compId,\n );\n this.contentAttr = shimContentAttribute(compId);\n this.hostAttr = shimHostAttribute(compId);\n }\n\n applyToHost(element: any): void {\n this.applyStyles();\n this.setAttribute(element, this.hostAttr, '');\n }\n\n override createElement(parent: any, name: string): Element {\n const el = super.createElement(parent, name);\n super.setAttribute(el, this.contentAttr, '');\n return el;\n }\n}\n"],"names":["EventManagerPlugin","_doc","constructor","manager","DomEventsPlugin","doc","supports","eventName","addEventListener","element","handler","options","removeEventListener","target","callback","ɵfac","i0","ɵɵngDeclareFactory","minVersion","version","ngImport","type","DOCUMENT","ɵɵFactoryTarget","Injectable","decorators","Inject","EVENT_MANAGER_PLUGINS","InjectionToken","ngDevMode","undefined","EventManager","_zone","_plugins","_eventNameToPlugin","Map","plugins","forEach","plugin","otherPlugins","filter","p","slice","reverse","domEventPlugin","find","push","_findPluginFor","getZone","get","RuntimeError","set","token","NgZone","APP_ID_ATTRIBUTE_NAME","removeElements","elements","remove","createStyleElement","style","styleElement","createElement","textContent","addServerStyles","appId","inline","external","head","querySelectorAll","removeAttribute","HTMLLinkElement","href","lastIndexOf","usage","createLinkElement","url","linkElement","setAttribute","SharedStylesHost","nonce","hosts","Set","platformId","add","addStyles","styles","urls","value","addUsage","removeStyles","removeUsage","usages","creator","record","map","host","addElement","delete","ngOnDestroy","clear","addHost","hostNode","removeHost","ngServerMode","appendChild","APP_ID","CSP_NONCE","PLATFORM_ID","Optional","NAMESPACE_URIS","COMPONENT_REGEX","SOURCEMAP_URL_REGEXP","PROTOCOL_REGEXP","COMPONENT_VARIABLE","HOST_ATTR","CONTENT_ATTR","REMOVE_STYLES_ON_COMPONENT_DESTROY_DEFAULT","REMOVE_STYLES_ON_COMPONENT_DESTROY","factory","shimContentAttribute","componentShortId","replace","shimHostAttribute","shimStylesContent","compId","s","addBaseHrefToCssSourceMap","baseHref","absoluteBaseHrefUrl","URL","cssContent","includes","_","sourceMapUrl","startsWith","test","pathname","resolvedSourceMapUrl","DomRendererFactory2","eventManager","sharedStylesHost","removeStylesOnCompDestroy","ngZone","tracingService","rendererByCompId","defaultRenderer","platformIsServer","DefaultDomRenderer2","createRenderer","encapsulation","ViewEncapsulation","ShadowDom","IsolatedShadowDom","Emulated","renderer","getOrCreateRenderer","EmulatedEncapsulationDomRenderer2","applyToHost","NoneEncapsulationDomRenderer","applyStyles","id","ShadowDomRenderer","componentReplaced","componentId","deps","i1","i2","TracingService","optional","data","Object","create","throwOnSyntheticProps","destroy","destroyNode","name","namespace","createElementNS","createComment","createText","createTextNode","parent","newChild","targetParent","isTemplateNode","content","insertBefore","refChild","removeChild","_parent","oldChild","selectRootElement","selectorOrNode","preserveContent","el","querySelector","parentNode","node","nextSibling","namespaceUri","setAttributeNS","removeAttributeNS","addClass","classList","removeClass","setStyle","flags","RendererStyleFlags2","DashCase","Important","setProperty","removeStyle","removeProperty","checkNoSyntheticProp","setValue","nodeValue","listen","event","getDOM","getGlobalEventTarget","wrappedCallback","decoratePreventDefault","wrapEventListener","eventHandler","allowDefaultBehavior","runGuarded","preventDefault","AT_CHARCODE","charCodeAt","nameKind","tagName","hostEl","shadowRoot","component","attachShadow","mode","getBaseHref","styleEl","document","styleUrls","getExternalStyles","styleUrl","linkEl","nodeOrShadowRoot","allLeavingAnimations","size","contentAttr","hostAttr"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v21.0.0-rc.0
2
+ * @license Angular v21.0.0-rc.1
3
3
  * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
@@ -92,7 +92,7 @@ class AsyncAnimationRendererFactory {
92
92
  }
93
93
  static ɵfac = i0.ɵɵngDeclareFactory({
94
94
  minVersion: "12.0.0",
95
- version: "21.0.0-rc.0",
95
+ version: "21.0.0-rc.1",
96
96
  ngImport: i0,
97
97
  type: AsyncAnimationRendererFactory,
98
98
  deps: "invalid",
@@ -100,14 +100,14 @@ class AsyncAnimationRendererFactory {
100
100
  });
101
101
  static ɵprov = i0.ɵɵngDeclareInjectable({
102
102
  minVersion: "12.0.0",
103
- version: "21.0.0-rc.0",
103
+ version: "21.0.0-rc.1",
104
104
  ngImport: i0,
105
105
  type: AsyncAnimationRendererFactory
106
106
  });
107
107
  }
108
108
  i0.ɵɵngDeclareClassMetadata({
109
109
  minVersion: "12.0.0",
110
- version: "21.0.0-rc.0",
110
+ version: "21.0.0-rc.1",
111
111
  ngImport: i0,
112
112
  type: AsyncAnimationRendererFactory,
113
113
  decorators: [{
@@ -1 +1 @@
1
- {"version":3,"file":"animations-async.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-browser/animations/async/src/async_animation_renderer.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-browser/animations/async/src/providers.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 {\n ɵAnimationEngine as AnimationEngine,\n ɵAnimationRenderer as AnimationRenderer,\n ɵAnimationRendererFactory as AnimationRendererFactory,\n} from '@angular/animations/browser';\nimport {\n ɵAnimationRendererType as AnimationRendererType,\n ɵChangeDetectionScheduler as ChangeDetectionScheduler,\n inject,\n Injectable,\n InjectionToken,\n Injector,\n NgZone,\n ɵNotificationSource as NotificationSource,\n OnDestroy,\n Renderer2,\n RendererFactory2,\n RendererStyleFlags2,\n RendererType2,\n ɵRuntimeError as RuntimeError,\n type ListenerOptions,\n} from '@angular/core';\nimport {ɵRuntimeErrorCode as RuntimeErrorCode} from '../../../index';\n\nconst ANIMATION_PREFIX = '@';\n\n@Injectable()\nexport class AsyncAnimationRendererFactory implements OnDestroy, RendererFactory2 {\n private _rendererFactoryPromise: Promise<AnimationRendererFactory> | null = null;\n private scheduler: ChangeDetectionScheduler | null = null;\n private readonly injector = inject(Injector);\n private readonly loadingSchedulerFn = inject(ɵASYNC_ANIMATION_LOADING_SCHEDULER_FN, {\n optional: true,\n });\n private _engine?: AnimationEngine;\n\n /**\n *\n * @param moduleImpl allows to provide a mock implmentation (or will load the animation module)\n */\n constructor(\n private doc: Document,\n private delegate: RendererFactory2,\n private zone: NgZone,\n private animationType: 'animations' | 'noop',\n private moduleImpl?: Promise<{\n ɵcreateEngine: (type: 'animations' | 'noop', doc: Document) => AnimationEngine;\n ɵAnimationRendererFactory: typeof AnimationRendererFactory;\n }>,\n ) {}\n\n /** @docs-private */\n ngOnDestroy(): void {\n // When the root view is removed, the renderer defers the actual work to the\n // `TransitionAnimationEngine` to do this, and the `TransitionAnimationEngine` doesn't actually\n // remove the DOM node, but just calls `markElementAsRemoved()`. The actual DOM node is not\n // removed until `TransitionAnimationEngine` \"flushes\".\n // Note: we already flush on destroy within the `InjectableAnimationEngine`. The injectable\n // engine is not provided when async animations are used.\n this._engine?.flush();\n }\n\n /**\n * @internal\n */\n private loadImpl(): Promise<AnimationRendererFactory> {\n // Note on the `.then(m => m)` part below: Closure compiler optimizations in g3 require\n // `.then` to be present for a dynamic import (or an import should be `await`ed) to detect\n // the set of imported symbols.\n const loadFn = () => this.moduleImpl ?? import('@angular/animations/browser').then((m) => m);\n\n let moduleImplPromise: typeof this.moduleImpl;\n if (this.loadingSchedulerFn) {\n moduleImplPromise = this.loadingSchedulerFn(loadFn);\n } else {\n moduleImplPromise = loadFn();\n }\n\n return moduleImplPromise\n .catch((e) => {\n throw new RuntimeError(\n RuntimeErrorCode.ANIMATION_RENDERER_ASYNC_LOADING_FAILURE,\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n 'Async loading for animations package was ' +\n 'enabled, but loading failed. Angular falls back to using regular rendering. ' +\n \"No animations will be displayed and their styles won't be applied.\",\n );\n })\n .then(({ɵcreateEngine, ɵAnimationRendererFactory}) => {\n // We can't create the renderer yet because we might need the hostElement and the type\n // Both are provided in createRenderer().\n this._engine = ɵcreateEngine(this.animationType, this.doc);\n const rendererFactory = new ɵAnimationRendererFactory(\n this.delegate,\n this._engine,\n this.zone,\n );\n this.delegate = rendererFactory;\n return rendererFactory;\n });\n }\n\n /**\n * This method is delegating the renderer creation to the factories.\n * It uses default factory while the animation factory isn't loaded\n * and will rely on the animation factory once it is loaded.\n *\n * Calling this method will trigger as side effect the loading of the animation module\n * if the renderered component uses animations.\n */\n createRenderer(hostElement: any, rendererType: RendererType2): Renderer2 {\n const renderer = this.delegate.createRenderer(hostElement, rendererType);\n\n if ((renderer as AnimationRenderer).ɵtype === AnimationRendererType.Regular) {\n // The factory is already loaded, this is an animation renderer\n return renderer;\n }\n\n // We need to prevent the DomRenderer to throw an error because of synthetic properties\n if (typeof (renderer as any).throwOnSyntheticProps === 'boolean') {\n (renderer as any).throwOnSyntheticProps = false;\n }\n\n // Using a dynamic renderer to switch the renderer implementation once the module is loaded.\n const dynamicRenderer = new DynamicDelegationRenderer(renderer);\n\n // Kick off the module loading if the component uses animations but the module hasn't been\n // loaded yet.\n if (rendererType?.data?.['animation'] && !this._rendererFactoryPromise) {\n this._rendererFactoryPromise = this.loadImpl();\n }\n\n this._rendererFactoryPromise\n ?.then((animationRendererFactory) => {\n const animationRenderer = animationRendererFactory.createRenderer(\n hostElement,\n rendererType,\n );\n dynamicRenderer.use(animationRenderer);\n this.scheduler ??= this.injector.get(ChangeDetectionScheduler, null, {optional: true});\n this.scheduler?.notify(NotificationSource.AsyncAnimationsLoaded);\n })\n .catch((e) => {\n // Permanently use regular renderer when loading fails.\n dynamicRenderer.use(renderer);\n });\n\n return dynamicRenderer;\n }\n\n begin(): void {\n this.delegate.begin?.();\n }\n\n end(): void {\n this.delegate.end?.();\n }\n\n whenRenderingDone?(): Promise<any> {\n return this.delegate.whenRenderingDone?.() ?? Promise.resolve();\n }\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 protected componentReplaced(componentId: string) {\n // Flush the engine since the renderer destruction waits for animations to be done.\n this._engine?.flush();\n (this.delegate as {componentReplaced?: (id: string) => void}).componentReplaced?.(componentId);\n }\n}\n\n/**\n * The class allows to dynamicly switch between different renderer implementations\n * by changing the delegate renderer.\n */\nexport class DynamicDelegationRenderer implements Renderer2 {\n // List of callbacks that need to be replayed on the animation renderer once its loaded\n private replay: ((renderer: Renderer2) => void)[] | null = [];\n readonly ɵtype = AnimationRendererType.Delegated;\n\n constructor(private delegate: Renderer2) {}\n\n use(impl: Renderer2) {\n this.delegate = impl;\n\n if (this.replay !== null) {\n // Replay queued actions using the animation renderer to apply\n // all events and properties collected while loading was in progress.\n for (const fn of this.replay) {\n fn(impl);\n }\n // Set to `null` to indicate that the queue was processed\n // and we no longer need to collect events and properties.\n this.replay = null;\n }\n }\n\n get data(): {[key: string]: any} {\n return this.delegate.data;\n }\n\n destroy(): void {\n this.replay = null;\n this.delegate.destroy();\n }\n\n createElement(name: string, namespace?: string | null) {\n return this.delegate.createElement(name, namespace);\n }\n\n createComment(value: string): void {\n return this.delegate.createComment(value);\n }\n\n createText(value: string): any {\n return this.delegate.createText(value);\n }\n\n get destroyNode(): ((node: any) => void) | null {\n return this.delegate.destroyNode;\n }\n\n appendChild(parent: any, newChild: any): void {\n this.delegate.appendChild(parent, newChild);\n }\n\n insertBefore(parent: any, newChild: any, refChild: any, isMove?: boolean | undefined): void {\n this.delegate.insertBefore(parent, newChild, refChild, isMove);\n }\n\n removeChild(\n parent: any,\n oldChild: any,\n isHostElement?: boolean | undefined,\n requireSynchronousElementRemoval?: boolean,\n ): void {\n this.delegate.removeChild(parent, oldChild, isHostElement, requireSynchronousElementRemoval);\n }\n\n selectRootElement(selectorOrNode: any, preserveContent?: boolean | undefined): any {\n return this.delegate.selectRootElement(selectorOrNode, preserveContent);\n }\n\n parentNode(node: any): any {\n return this.delegate.parentNode(node);\n }\n\n nextSibling(node: any): any {\n return this.delegate.nextSibling(node);\n }\n\n setAttribute(el: any, name: string, value: string, namespace?: string | null | undefined): void {\n this.delegate.setAttribute(el, name, value, namespace);\n }\n\n removeAttribute(el: any, name: string, namespace?: string | null | undefined): void {\n this.delegate.removeAttribute(el, name, namespace);\n }\n\n addClass(el: any, name: string): void {\n this.delegate.addClass(el, name);\n }\n\n removeClass(el: any, name: string): void {\n this.delegate.removeClass(el, name);\n }\n\n setStyle(el: any, style: string, value: any, flags?: RendererStyleFlags2 | undefined): void {\n this.delegate.setStyle(el, style, value, flags);\n }\n\n removeStyle(el: any, style: string, flags?: RendererStyleFlags2 | undefined): void {\n this.delegate.removeStyle(el, style, flags);\n }\n\n setProperty(el: any, name: string, value: any): void {\n // We need to keep track of animation properties set on default renderer\n // So we can also set them also on the animation renderer\n if (this.shouldReplay(name)) {\n this.replay!.push((renderer: Renderer2) => renderer.setProperty(el, name, value));\n }\n this.delegate.setProperty(el, name, value);\n }\n\n setValue(node: any, value: string): void {\n this.delegate.setValue(node, value);\n }\n\n listen(\n target: any,\n eventName: string,\n callback: (event: any) => boolean | void,\n options?: ListenerOptions,\n ): () => void {\n // We need to keep track of animation events registred by the default renderer\n // So we can also register them against the animation renderer\n if (this.shouldReplay(eventName)) {\n this.replay!.push((renderer: Renderer2) =>\n renderer.listen(target, eventName, callback, options),\n );\n }\n return this.delegate.listen(target, eventName, callback, options);\n }\n\n private shouldReplay(propOrEventName: string): boolean {\n //`null` indicates that we no longer need to collect events and properties\n return this.replay !== null && propOrEventName.startsWith(ANIMATION_PREFIX);\n }\n}\n\n/**\n * Provides a custom scheduler function for the async loading of the animation package.\n *\n * Private token for investigation purposes\n */\nexport const ɵASYNC_ANIMATION_LOADING_SCHEDULER_FN = new InjectionToken<<T>(loadFn: () => T) => T>(\n typeof ngDevMode !== undefined && ngDevMode ? 'async_animation_loading_scheduler_fn' : '',\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 {\n ANIMATION_MODULE_TYPE,\n EnvironmentProviders,\n makeEnvironmentProviders,\n NgZone,\n RendererFactory2,\n ɵperformanceMarkFeature as performanceMarkFeature,\n inject,\n} from '@angular/core';\nimport {ɵDomRendererFactory2 as DomRendererFactory2} from '../../../index';\n\nimport {AsyncAnimationRendererFactory} from './async_animation_renderer';\n\n/**\n * Returns the set of dependency-injection providers\n * to enable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * When you use this function instead of the eager `provideAnimations()`, animations won't be\n * rendered until the renderer is loaded.\n *\n * @usageNotes\n *\n * The function is useful when you want to enable animations in an application\n * bootstrapped using the `bootstrapApplication` function. In this scenario there\n * is no need to import the `BrowserAnimationsModule` NgModule at all, just add\n * providers returned by this function to the `providers` list as show below.\n *\n * ```ts\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideAnimationsAsync()\n * ]\n * });\n * ```\n *\n * @param type pass `'noop'` as argument to disable animations.\n *\n * @publicApi\n *\n * @deprecated 20.2 Use `animate.enter` or `animate.leave` instead. Intent to remove in v23\n */\nexport function provideAnimationsAsync(\n type: 'animations' | 'noop' = 'animations',\n): EnvironmentProviders {\n performanceMarkFeature('NgAsyncAnimations');\n\n // Animations don't work on the server so we switch them over to no-op automatically.\n if (typeof ngServerMode !== 'undefined' && ngServerMode) {\n type = 'noop';\n }\n\n return makeEnvironmentProviders([\n {\n provide: RendererFactory2,\n useFactory: () => {\n return new AsyncAnimationRendererFactory(\n inject(DOCUMENT),\n inject(DomRendererFactory2),\n inject(NgZone),\n type,\n );\n },\n },\n {\n provide: ANIMATION_MODULE_TYPE,\n useValue: type === 'noop' ? 'NoopAnimations' : 'BrowserAnimations',\n },\n ]);\n}\n"],"names":["AsyncAnimationRendererFactory","delegate","zone","animationType","moduleImpl","_rendererFactoryPromise","scheduler","loadingSchedulerFn","inject","ɵASYNC_ANIMATION_LOADING_SCHEDULER_FN","optional","_engine","ngOnDestroy","flush","loadFn","then","m","moduleImplPromise","catch","e","RuntimeError","ngDevMode","ɵcreateEngine","ɵAnimationRendererFactory","doc","rendererFactory","createRenderer","hostElement","rendererType","renderer","ɵtype","throwOnSyntheticProps","data","loadImpl","animationRendererFactory","animationRenderer","use","ChangeDetectionScheduler","notify","dynamicRenderer","begin","end","whenRenderingDone","Promise","resolve","componentReplaced","componentId","deps","target","i0","ɵɵFactoryTarget","Injectable","decorators","DynamicDelegationRenderer","replay","impl","fn","destroy","createElement","name","namespace","createComment","value","createText","destroyNode","appendChild","parent","newChild","makeEnvironmentProviders"],"mappings":"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"}
1
+ {"version":3,"file":"animations-async.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-browser/animations/async/src/async_animation_renderer.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-browser/animations/async/src/providers.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 {\n ɵAnimationEngine as AnimationEngine,\n ɵAnimationRenderer as AnimationRenderer,\n ɵAnimationRendererFactory as AnimationRendererFactory,\n} from '@angular/animations/browser';\nimport {\n ɵAnimationRendererType as AnimationRendererType,\n ɵChangeDetectionScheduler as ChangeDetectionScheduler,\n inject,\n Injectable,\n InjectionToken,\n Injector,\n NgZone,\n ɵNotificationSource as NotificationSource,\n OnDestroy,\n Renderer2,\n RendererFactory2,\n RendererStyleFlags2,\n RendererType2,\n ɵRuntimeError as RuntimeError,\n type ListenerOptions,\n} from '@angular/core';\nimport {ɵRuntimeErrorCode as RuntimeErrorCode} from '../../../index';\n\nconst ANIMATION_PREFIX = '@';\n\n@Injectable()\nexport class AsyncAnimationRendererFactory implements OnDestroy, RendererFactory2 {\n private _rendererFactoryPromise: Promise<AnimationRendererFactory> | null = null;\n private scheduler: ChangeDetectionScheduler | null = null;\n private readonly injector = inject(Injector);\n private readonly loadingSchedulerFn = inject(ɵASYNC_ANIMATION_LOADING_SCHEDULER_FN, {\n optional: true,\n });\n private _engine?: AnimationEngine;\n\n /**\n *\n * @param moduleImpl allows to provide a mock implmentation (or will load the animation module)\n */\n constructor(\n private doc: Document,\n private delegate: RendererFactory2,\n private zone: NgZone,\n private animationType: 'animations' | 'noop',\n private moduleImpl?: Promise<{\n ɵcreateEngine: (type: 'animations' | 'noop', doc: Document) => AnimationEngine;\n ɵAnimationRendererFactory: typeof AnimationRendererFactory;\n }>,\n ) {}\n\n /** @docs-private */\n ngOnDestroy(): void {\n // When the root view is removed, the renderer defers the actual work to the\n // `TransitionAnimationEngine` to do this, and the `TransitionAnimationEngine` doesn't actually\n // remove the DOM node, but just calls `markElementAsRemoved()`. The actual DOM node is not\n // removed until `TransitionAnimationEngine` \"flushes\".\n // Note: we already flush on destroy within the `InjectableAnimationEngine`. The injectable\n // engine is not provided when async animations are used.\n this._engine?.flush();\n }\n\n /**\n * @internal\n */\n private loadImpl(): Promise<AnimationRendererFactory> {\n // Note on the `.then(m => m)` part below: Closure compiler optimizations in g3 require\n // `.then` to be present for a dynamic import (or an import should be `await`ed) to detect\n // the set of imported symbols.\n const loadFn = () => this.moduleImpl ?? import('@angular/animations/browser').then((m) => m);\n\n let moduleImplPromise: typeof this.moduleImpl;\n if (this.loadingSchedulerFn) {\n moduleImplPromise = this.loadingSchedulerFn(loadFn);\n } else {\n moduleImplPromise = loadFn();\n }\n\n return moduleImplPromise\n .catch((e) => {\n throw new RuntimeError(\n RuntimeErrorCode.ANIMATION_RENDERER_ASYNC_LOADING_FAILURE,\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n 'Async loading for animations package was ' +\n 'enabled, but loading failed. Angular falls back to using regular rendering. ' +\n \"No animations will be displayed and their styles won't be applied.\",\n );\n })\n .then(({ɵcreateEngine, ɵAnimationRendererFactory}) => {\n // We can't create the renderer yet because we might need the hostElement and the type\n // Both are provided in createRenderer().\n this._engine = ɵcreateEngine(this.animationType, this.doc);\n const rendererFactory = new ɵAnimationRendererFactory(\n this.delegate,\n this._engine,\n this.zone,\n );\n this.delegate = rendererFactory;\n return rendererFactory;\n });\n }\n\n /**\n * This method is delegating the renderer creation to the factories.\n * It uses default factory while the animation factory isn't loaded\n * and will rely on the animation factory once it is loaded.\n *\n * Calling this method will trigger as side effect the loading of the animation module\n * if the renderered component uses animations.\n */\n createRenderer(hostElement: any, rendererType: RendererType2): Renderer2 {\n const renderer = this.delegate.createRenderer(hostElement, rendererType);\n\n if ((renderer as AnimationRenderer).ɵtype === AnimationRendererType.Regular) {\n // The factory is already loaded, this is an animation renderer\n return renderer;\n }\n\n // We need to prevent the DomRenderer to throw an error because of synthetic properties\n if (typeof (renderer as any).throwOnSyntheticProps === 'boolean') {\n (renderer as any).throwOnSyntheticProps = false;\n }\n\n // Using a dynamic renderer to switch the renderer implementation once the module is loaded.\n const dynamicRenderer = new DynamicDelegationRenderer(renderer);\n\n // Kick off the module loading if the component uses animations but the module hasn't been\n // loaded yet.\n if (rendererType?.data?.['animation'] && !this._rendererFactoryPromise) {\n this._rendererFactoryPromise = this.loadImpl();\n }\n\n this._rendererFactoryPromise\n ?.then((animationRendererFactory) => {\n const animationRenderer = animationRendererFactory.createRenderer(\n hostElement,\n rendererType,\n );\n dynamicRenderer.use(animationRenderer);\n this.scheduler ??= this.injector.get(ChangeDetectionScheduler, null, {optional: true});\n this.scheduler?.notify(NotificationSource.AsyncAnimationsLoaded);\n })\n .catch((e) => {\n // Permanently use regular renderer when loading fails.\n dynamicRenderer.use(renderer);\n });\n\n return dynamicRenderer;\n }\n\n begin(): void {\n this.delegate.begin?.();\n }\n\n end(): void {\n this.delegate.end?.();\n }\n\n whenRenderingDone?(): Promise<any> {\n return this.delegate.whenRenderingDone?.() ?? Promise.resolve();\n }\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 protected componentReplaced(componentId: string) {\n // Flush the engine since the renderer destruction waits for animations to be done.\n this._engine?.flush();\n (this.delegate as {componentReplaced?: (id: string) => void}).componentReplaced?.(componentId);\n }\n}\n\n/**\n * The class allows to dynamicly switch between different renderer implementations\n * by changing the delegate renderer.\n */\nexport class DynamicDelegationRenderer implements Renderer2 {\n // List of callbacks that need to be replayed on the animation renderer once its loaded\n private replay: ((renderer: Renderer2) => void)[] | null = [];\n readonly ɵtype = AnimationRendererType.Delegated;\n\n constructor(private delegate: Renderer2) {}\n\n use(impl: Renderer2) {\n this.delegate = impl;\n\n if (this.replay !== null) {\n // Replay queued actions using the animation renderer to apply\n // all events and properties collected while loading was in progress.\n for (const fn of this.replay) {\n fn(impl);\n }\n // Set to `null` to indicate that the queue was processed\n // and we no longer need to collect events and properties.\n this.replay = null;\n }\n }\n\n get data(): {[key: string]: any} {\n return this.delegate.data;\n }\n\n destroy(): void {\n this.replay = null;\n this.delegate.destroy();\n }\n\n createElement(name: string, namespace?: string | null) {\n return this.delegate.createElement(name, namespace);\n }\n\n createComment(value: string): void {\n return this.delegate.createComment(value);\n }\n\n createText(value: string): any {\n return this.delegate.createText(value);\n }\n\n get destroyNode(): ((node: any) => void) | null {\n return this.delegate.destroyNode;\n }\n\n appendChild(parent: any, newChild: any): void {\n this.delegate.appendChild(parent, newChild);\n }\n\n insertBefore(parent: any, newChild: any, refChild: any, isMove?: boolean | undefined): void {\n this.delegate.insertBefore(parent, newChild, refChild, isMove);\n }\n\n removeChild(\n parent: any,\n oldChild: any,\n isHostElement?: boolean | undefined,\n requireSynchronousElementRemoval?: boolean,\n ): void {\n this.delegate.removeChild(parent, oldChild, isHostElement, requireSynchronousElementRemoval);\n }\n\n selectRootElement(selectorOrNode: any, preserveContent?: boolean | undefined): any {\n return this.delegate.selectRootElement(selectorOrNode, preserveContent);\n }\n\n parentNode(node: any): any {\n return this.delegate.parentNode(node);\n }\n\n nextSibling(node: any): any {\n return this.delegate.nextSibling(node);\n }\n\n setAttribute(el: any, name: string, value: string, namespace?: string | null | undefined): void {\n this.delegate.setAttribute(el, name, value, namespace);\n }\n\n removeAttribute(el: any, name: string, namespace?: string | null | undefined): void {\n this.delegate.removeAttribute(el, name, namespace);\n }\n\n addClass(el: any, name: string): void {\n this.delegate.addClass(el, name);\n }\n\n removeClass(el: any, name: string): void {\n this.delegate.removeClass(el, name);\n }\n\n setStyle(el: any, style: string, value: any, flags?: RendererStyleFlags2 | undefined): void {\n this.delegate.setStyle(el, style, value, flags);\n }\n\n removeStyle(el: any, style: string, flags?: RendererStyleFlags2 | undefined): void {\n this.delegate.removeStyle(el, style, flags);\n }\n\n setProperty(el: any, name: string, value: any): void {\n // We need to keep track of animation properties set on default renderer\n // So we can also set them also on the animation renderer\n if (this.shouldReplay(name)) {\n this.replay!.push((renderer: Renderer2) => renderer.setProperty(el, name, value));\n }\n this.delegate.setProperty(el, name, value);\n }\n\n setValue(node: any, value: string): void {\n this.delegate.setValue(node, value);\n }\n\n listen(\n target: any,\n eventName: string,\n callback: (event: any) => boolean | void,\n options?: ListenerOptions,\n ): () => void {\n // We need to keep track of animation events registred by the default renderer\n // So we can also register them against the animation renderer\n if (this.shouldReplay(eventName)) {\n this.replay!.push((renderer: Renderer2) =>\n renderer.listen(target, eventName, callback, options),\n );\n }\n return this.delegate.listen(target, eventName, callback, options);\n }\n\n private shouldReplay(propOrEventName: string): boolean {\n //`null` indicates that we no longer need to collect events and properties\n return this.replay !== null && propOrEventName.startsWith(ANIMATION_PREFIX);\n }\n}\n\n/**\n * Provides a custom scheduler function for the async loading of the animation package.\n *\n * Private token for investigation purposes\n */\nexport const ɵASYNC_ANIMATION_LOADING_SCHEDULER_FN = new InjectionToken<<T>(loadFn: () => T) => T>(\n typeof ngDevMode !== undefined && ngDevMode ? 'async_animation_loading_scheduler_fn' : '',\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 {\n ANIMATION_MODULE_TYPE,\n EnvironmentProviders,\n makeEnvironmentProviders,\n NgZone,\n RendererFactory2,\n ɵperformanceMarkFeature as performanceMarkFeature,\n inject,\n} from '@angular/core';\nimport {ɵDomRendererFactory2 as DomRendererFactory2} from '../../../index';\n\nimport {AsyncAnimationRendererFactory} from './async_animation_renderer';\n\n/**\n * Returns the set of dependency-injection providers\n * to enable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * When you use this function instead of the eager `provideAnimations()`, animations won't be\n * rendered until the renderer is loaded.\n *\n * @usageNotes\n *\n * The function is useful when you want to enable animations in an application\n * bootstrapped using the `bootstrapApplication` function. In this scenario there\n * is no need to import the `BrowserAnimationsModule` NgModule at all, just add\n * providers returned by this function to the `providers` list as show below.\n *\n * ```ts\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideAnimationsAsync()\n * ]\n * });\n * ```\n *\n * @param type pass `'noop'` as argument to disable animations.\n *\n * @publicApi\n *\n * @deprecated 20.2 Use `animate.enter` or `animate.leave` instead. Intent to remove in v23\n */\nexport function provideAnimationsAsync(\n type: 'animations' | 'noop' = 'animations',\n): EnvironmentProviders {\n performanceMarkFeature('NgAsyncAnimations');\n\n // Animations don't work on the server so we switch them over to no-op automatically.\n if (typeof ngServerMode !== 'undefined' && ngServerMode) {\n type = 'noop';\n }\n\n return makeEnvironmentProviders([\n {\n provide: RendererFactory2,\n useFactory: () => {\n return new AsyncAnimationRendererFactory(\n inject(DOCUMENT),\n inject(DomRendererFactory2),\n inject(NgZone),\n type,\n );\n },\n },\n {\n provide: ANIMATION_MODULE_TYPE,\n useValue: type === 'noop' ? 'NoopAnimations' : 'BrowserAnimations',\n },\n ]);\n}\n"],"names":["ANIMATION_PREFIX","AsyncAnimationRendererFactory","doc","delegate","zone","animationType","moduleImpl","_rendererFactoryPromise","scheduler","injector","inject","Injector","loadingSchedulerFn","ɵASYNC_ANIMATION_LOADING_SCHEDULER_FN","optional","_engine","constructor","ngOnDestroy","flush","loadImpl","loadFn","then","m","moduleImplPromise","catch","e","RuntimeError","ngDevMode","ɵcreateEngine","ɵAnimationRendererFactory","rendererFactory","createRenderer","hostElement","rendererType","renderer","ɵtype","throwOnSyntheticProps","dynamicRenderer","DynamicDelegationRenderer","data","animationRendererFactory","animationRenderer","use","get","ChangeDetectionScheduler","notify","begin","end","whenRenderingDone","Promise","resolve","componentReplaced","componentId","deps","target","i0","ɵɵFactoryTarget","Injectable","decorators","replay","impl","fn","destroy","createElement","name","namespace","createComment","value","createText","destroyNode","appendChild","parent","newChild","insertBefore","refChild","isMove","removeChild","oldChild","isHostElement","requireSynchronousElementRemoval","selectRootElement","selectorOrNode","preserveContent","parentNode","node","nextSibling","setAttribute","el","removeAttribute","addClass","removeClass","setStyle","style","flags","removeStyle","setProperty","shouldReplay","push","setValue","listen","eventName","callback","options","propOrEventName","startsWith","InjectionToken","undefined","provideAnimationsAsync","type","performanceMarkFeature","ngServerMode","makeEnvironmentProviders","provide","RendererFactory2","useFactory","DOCUMENT","DomRendererFactory2","NgZone","ANIMATION_MODULE_TYPE","useValue"],"mappings":";;;;;;;;;;;AAgCA,MAAMA,gBAAgB,GAAG,GAAG;MAGfC,6BAA6B,CAAA;EAc9BC,GAAA;EACAC,QAAA;EACAC,IAAA;EACAC,aAAA;EACAC,UAAA;AAjBFC,EAAAA,uBAAuB,GAA6C,IAAI;AACxEC,EAAAA,SAAS,GAAoC,IAAI;AACxCC,EAAAA,QAAQ,GAAGC,MAAM,CAACC,QAAQ,CAAC;AAC3BC,EAAAA,kBAAkB,GAAGF,MAAM,CAACG,qCAAqC,EAAE;AAClFC,IAAAA,QAAQ,EAAE;AACX,GAAA,CAAC;EACMC,OAAO;EAMfC,WACUA,CAAAd,GAAa,EACbC,QAA0B,EAC1BC,IAAY,EACZC,aAAoC,EACpCC,UAGN,EAAA;IAPM,IAAG,CAAAJ,GAAA,GAAHA,GAAG;IACH,IAAQ,CAAAC,QAAA,GAARA,QAAQ;IACR,IAAI,CAAAC,IAAA,GAAJA,IAAI;IACJ,IAAa,CAAAC,aAAA,GAAbA,aAAa;IACb,IAAU,CAAAC,UAAA,GAAVA,UAAU;AAIjB;AAGHW,EAAAA,WAAWA,GAAA;AAOT,IAAA,IAAI,CAACF,OAAO,EAAEG,KAAK,EAAE;AACvB;AAKQC,EAAAA,QAAQA,GAAA;AAId,IAAA,MAAMC,MAAM,GAAGA,MAAM,IAAI,CAACd,UAAU,IAAI,OAAO,6BAA6B,CAAC,CAACe,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAAC;AAE5F,IAAA,IAAIC,iBAAyC;IAC7C,IAAI,IAAI,CAACX,kBAAkB,EAAE;AAC3BW,MAAAA,iBAAiB,GAAG,IAAI,CAACX,kBAAkB,CAACQ,MAAM,CAAC;AACrD,KAAC,MAAM;MACLG,iBAAiB,GAAGH,MAAM,EAAE;AAC9B;AAEA,IAAA,OAAOG,iBAAiB,CACrBC,KAAK,CAAEC,CAAC,IAAI;AACX,MAAA,MAAM,IAAIC,aAAY,CAAA,IAAA,EAEpB,CAAC,OAAOC,SAAS,KAAK,WAAW,IAAIA,SAAS,KAC5C,2CAA2C,GACzC,8EAA8E,GAC9E,oEAAoE,CACzE;AACH,KAAC,CAAC,CACDN,IAAI,CAAC,CAAC;MAACO,aAAa;AAAEC,MAAAA;AAAyB,KAAC,KAAI;AAGnD,MAAA,IAAI,CAACd,OAAO,GAAGa,aAAa,CAAC,IAAI,CAACvB,aAAa,EAAE,IAAI,CAACH,GAAG,CAAC;AAC1D,MAAA,MAAM4B,eAAe,GAAG,IAAID,yBAAyB,CACnD,IAAI,CAAC1B,QAAQ,EACb,IAAI,CAACY,OAAO,EACZ,IAAI,CAACX,IAAI,CACV;MACD,IAAI,CAACD,QAAQ,GAAG2B,eAAe;AAC/B,MAAA,OAAOA,eAAe;AACxB,KAAC,CAAC;AACN;AAUAC,EAAAA,cAAcA,CAACC,WAAgB,EAAEC,YAA2B,EAAA;IAC1D,MAAMC,QAAQ,GAAG,IAAI,CAAC/B,QAAQ,CAAC4B,cAAc,CAACC,WAAW,EAAEC,YAAY,CAAC;AAExE,IAAA,IAAKC,QAA8B,CAACC,KAAK,KAAA,CAAA,EAAoC;AAE3E,MAAA,OAAOD,QAAQ;AACjB;AAGA,IAAA,IAAI,OAAQA,QAAgB,CAACE,qBAAqB,KAAK,SAAS,EAAE;MAC/DF,QAAgB,CAACE,qBAAqB,GAAG,KAAK;AACjD;AAGA,IAAA,MAAMC,eAAe,GAAG,IAAIC,yBAAyB,CAACJ,QAAQ,CAAC;IAI/D,IAAID,YAAY,EAAEM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAChC,uBAAuB,EAAE;AACtE,MAAA,IAAI,CAACA,uBAAuB,GAAG,IAAI,CAACY,QAAQ,EAAE;AAChD;AAEA,IAAA,IAAI,CAACZ,uBAAuB,EACxBc,IAAI,CAAEmB,wBAAwB,IAAI;MAClC,MAAMC,iBAAiB,GAAGD,wBAAwB,CAACT,cAAc,CAC/DC,WAAW,EACXC,YAAY,CACb;AACDI,MAAAA,eAAe,CAACK,GAAG,CAACD,iBAAiB,CAAC;AACtC,MAAA,IAAI,CAACjC,SAAS,KAAK,IAAI,CAACC,QAAQ,CAACkC,GAAG,CAACC,yBAAwB,EAAE,IAAI,EAAE;AAAC9B,QAAAA,QAAQ,EAAE;AAAI,OAAC,CAAC;AACtF,MAAA,IAAI,CAACN,SAAS,EAAEqC,MAAM,IAA0C;AAClE,KAAC,CAAC,CACDrB,KAAK,CAAEC,CAAC,IAAI;AAEXY,MAAAA,eAAe,CAACK,GAAG,CAACR,QAAQ,CAAC;AAC/B,KAAC,CAAC;AAEJ,IAAA,OAAOG,eAAe;AACxB;AAEAS,EAAAA,KAAKA,GAAA;AACH,IAAA,IAAI,CAAC3C,QAAQ,CAAC2C,KAAK,IAAI;AACzB;AAEAC,EAAAA,GAAGA,GAAA;AACD,IAAA,IAAI,CAAC5C,QAAQ,CAAC4C,GAAG,IAAI;AACvB;AAEAC,EAAAA,iBAAiBA,GAAA;AACf,IAAA,OAAO,IAAI,CAAC7C,QAAQ,CAAC6C,iBAAiB,IAAI,IAAIC,OAAO,CAACC,OAAO,EAAE;AACjE;EAMUC,iBAAiBA,CAACC,WAAmB,EAAA;AAE7C,IAAA,IAAI,CAACrC,OAAO,EAAEG,KAAK,EAAE;AACpB,IAAA,IAAI,CAACf,QAAuD,CAACgD,iBAAiB,GAAGC,WAAW,CAAC;AAChG;;;;;UA/IWnD,6BAA6B;AAAAoD,IAAAA,IAAA,EAAA,SAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;;UAA7BxD;AAA6B,GAAA,CAAA;;;;;;QAA7BA,6BAA6B;AAAAyD,EAAAA,UAAA,EAAA,CAAA;UADzCD;;;;;;;;;;;;;;MAuJYnB,yBAAyB,CAAA;EAKhBnC,QAAA;AAHZwD,EAAAA,MAAM,GAA6C,EAAE;AACpDxB,EAAAA,KAAK,GAAmC,CAAA;EAEjDnB,WAAAA,CAAoBb,QAAmB,EAAA;IAAnB,IAAQ,CAAAA,QAAA,GAARA,QAAQ;AAAc;EAE1CuC,GAAGA,CAACkB,IAAe,EAAA;IACjB,IAAI,CAACzD,QAAQ,GAAGyD,IAAI;AAEpB,IAAA,IAAI,IAAI,CAACD,MAAM,KAAK,IAAI,EAAE;AAGxB,MAAA,KAAK,MAAME,EAAE,IAAI,IAAI,CAACF,MAAM,EAAE;QAC5BE,EAAE,CAACD,IAAI,CAAC;AACV;MAGA,IAAI,CAACD,MAAM,GAAG,IAAI;AACpB;AACF;EAEA,IAAIpB,IAAIA,GAAA;AACN,IAAA,OAAO,IAAI,CAACpC,QAAQ,CAACoC,IAAI;AAC3B;AAEAuB,EAAAA,OAAOA,GAAA;IACL,IAAI,CAACH,MAAM,GAAG,IAAI;AAClB,IAAA,IAAI,CAACxD,QAAQ,CAAC2D,OAAO,EAAE;AACzB;AAEAC,EAAAA,aAAaA,CAACC,IAAY,EAAEC,SAAyB,EAAA;IACnD,OAAO,IAAI,CAAC9D,QAAQ,CAAC4D,aAAa,CAACC,IAAI,EAAEC,SAAS,CAAC;AACrD;EAEAC,aAAaA,CAACC,KAAa,EAAA;AACzB,IAAA,OAAO,IAAI,CAAChE,QAAQ,CAAC+D,aAAa,CAACC,KAAK,CAAC;AAC3C;EAEAC,UAAUA,CAACD,KAAa,EAAA;AACtB,IAAA,OAAO,IAAI,CAAChE,QAAQ,CAACiE,UAAU,CAACD,KAAK,CAAC;AACxC;EAEA,IAAIE,WAAWA,GAAA;AACb,IAAA,OAAO,IAAI,CAAClE,QAAQ,CAACkE,WAAW;AAClC;AAEAC,EAAAA,WAAWA,CAACC,MAAW,EAAEC,QAAa,EAAA;IACpC,IAAI,CAACrE,QAAQ,CAACmE,WAAW,CAACC,MAAM,EAAEC,QAAQ,CAAC;AAC7C;EAEAC,YAAYA,CAACF,MAAW,EAAEC,QAAa,EAAEE,QAAa,EAAEC,MAA4B,EAAA;AAClF,IAAA,IAAI,CAACxE,QAAQ,CAACsE,YAAY,CAACF,MAAM,EAAEC,QAAQ,EAAEE,QAAQ,EAAEC,MAAM,CAAC;AAChE;EAEAC,WAAWA,CACTL,MAAW,EACXM,QAAa,EACbC,aAAmC,EACnCC,gCAA0C,EAAA;AAE1C,IAAA,IAAI,CAAC5E,QAAQ,CAACyE,WAAW,CAACL,MAAM,EAAEM,QAAQ,EAAEC,aAAa,EAAEC,gCAAgC,CAAC;AAC9F;AAEAC,EAAAA,iBAAiBA,CAACC,cAAmB,EAAEC,eAAqC,EAAA;IAC1E,OAAO,IAAI,CAAC/E,QAAQ,CAAC6E,iBAAiB,CAACC,cAAc,EAAEC,eAAe,CAAC;AACzE;EAEAC,UAAUA,CAACC,IAAS,EAAA;AAClB,IAAA,OAAO,IAAI,CAACjF,QAAQ,CAACgF,UAAU,CAACC,IAAI,CAAC;AACvC;EAEAC,WAAWA,CAACD,IAAS,EAAA;AACnB,IAAA,OAAO,IAAI,CAACjF,QAAQ,CAACkF,WAAW,CAACD,IAAI,CAAC;AACxC;EAEAE,YAAYA,CAACC,EAAO,EAAEvB,IAAY,EAAEG,KAAa,EAAEF,SAAqC,EAAA;AACtF,IAAA,IAAI,CAAC9D,QAAQ,CAACmF,YAAY,CAACC,EAAE,EAAEvB,IAAI,EAAEG,KAAK,EAAEF,SAAS,CAAC;AACxD;AAEAuB,EAAAA,eAAeA,CAACD,EAAO,EAAEvB,IAAY,EAAEC,SAAqC,EAAA;IAC1E,IAAI,CAAC9D,QAAQ,CAACqF,eAAe,CAACD,EAAE,EAAEvB,IAAI,EAAEC,SAAS,CAAC;AACpD;AAEAwB,EAAAA,QAAQA,CAACF,EAAO,EAAEvB,IAAY,EAAA;IAC5B,IAAI,CAAC7D,QAAQ,CAACsF,QAAQ,CAACF,EAAE,EAAEvB,IAAI,CAAC;AAClC;AAEA0B,EAAAA,WAAWA,CAACH,EAAO,EAAEvB,IAAY,EAAA;IAC/B,IAAI,CAAC7D,QAAQ,CAACuF,WAAW,CAACH,EAAE,EAAEvB,IAAI,CAAC;AACrC;EAEA2B,QAAQA,CAACJ,EAAO,EAAEK,KAAa,EAAEzB,KAAU,EAAE0B,KAAuC,EAAA;AAClF,IAAA,IAAI,CAAC1F,QAAQ,CAACwF,QAAQ,CAACJ,EAAE,EAAEK,KAAK,EAAEzB,KAAK,EAAE0B,KAAK,CAAC;AACjD;AAEAC,EAAAA,WAAWA,CAACP,EAAO,EAAEK,KAAa,EAAEC,KAAuC,EAAA;IACzE,IAAI,CAAC1F,QAAQ,CAAC2F,WAAW,CAACP,EAAE,EAAEK,KAAK,EAAEC,KAAK,CAAC;AAC7C;AAEAE,EAAAA,WAAWA,CAACR,EAAO,EAAEvB,IAAY,EAAEG,KAAU,EAAA;AAG3C,IAAA,IAAI,IAAI,CAAC6B,YAAY,CAAChC,IAAI,CAAC,EAAE;AAC3B,MAAA,IAAI,CAACL,MAAO,CAACsC,IAAI,CAAE/D,QAAmB,IAAKA,QAAQ,CAAC6D,WAAW,CAACR,EAAE,EAAEvB,IAAI,EAAEG,KAAK,CAAC,CAAC;AACnF;IACA,IAAI,CAAChE,QAAQ,CAAC4F,WAAW,CAACR,EAAE,EAAEvB,IAAI,EAAEG,KAAK,CAAC;AAC5C;AAEA+B,EAAAA,QAAQA,CAACd,IAAS,EAAEjB,KAAa,EAAA;IAC/B,IAAI,CAAChE,QAAQ,CAAC+F,QAAQ,CAACd,IAAI,EAAEjB,KAAK,CAAC;AACrC;EAEAgC,MAAMA,CACJ7C,MAAW,EACX8C,SAAiB,EACjBC,QAAwC,EACxCC,OAAyB,EAAA;AAIzB,IAAA,IAAI,IAAI,CAACN,YAAY,CAACI,SAAS,CAAC,EAAE;AAChC,MAAA,IAAI,CAACzC,MAAO,CAACsC,IAAI,CAAE/D,QAAmB,IACpCA,QAAQ,CAACiE,MAAM,CAAC7C,MAAM,EAAE8C,SAAS,EAAEC,QAAQ,EAAEC,OAAO,CAAC,CACtD;AACH;AACA,IAAA,OAAO,IAAI,CAACnG,QAAQ,CAACgG,MAAM,CAAC7C,MAAM,EAAE8C,SAAS,EAAEC,QAAQ,EAAEC,OAAO,CAAC;AACnE;EAEQN,YAAYA,CAACO,eAAuB,EAAA;IAE1C,OAAO,IAAI,CAAC5C,MAAM,KAAK,IAAI,IAAI4C,eAAe,CAACC,UAAU,CAACxG,gBAAgB,CAAC;AAC7E;AACD;MAOYa,qCAAqC,GAAG,IAAI4F,cAAc,CACrE,OAAO9E,SAAS,KAAK+E,SAAS,IAAI/E,SAAS,GAAG,sCAAsC,GAAG,EAAE;;ACnR3E,SAAAgF,sBAAsBA,CACpCC,IAAA,GAA8B,YAAY,EAAA;EAE1CC,uBAAsB,CAAC,mBAAmB,CAAC;AAG3C,EAAA,IAAI,OAAOC,YAAY,KAAK,WAAW,IAAIA,YAAY,EAAE;AACvDF,IAAAA,IAAI,GAAG,MAAM;AACf;EAEA,OAAOG,wBAAwB,CAAC,CAC9B;AACEC,IAAAA,OAAO,EAAEC,gBAAgB;IACzBC,UAAU,EAAEA,MAAK;AACf,MAAA,OAAO,IAAIjH,6BAA6B,CACtCS,MAAM,CAACyG,QAAQ,CAAC,EAChBzG,MAAM,CAAC0G,mBAAmB,CAAC,EAC3B1G,MAAM,CAAC2G,MAAM,CAAC,EACdT,IAAI,CACL;AACH;AACD,GAAA,EACD;AACEI,IAAAA,OAAO,EAAEM,qBAAqB;AAC9BC,IAAAA,QAAQ,EAAEX,IAAI,KAAK,MAAM,GAAG,gBAAgB,GAAG;AAChD,GAAA,CACF,CAAC;AACJ;;;;"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v21.0.0-rc.0
2
+ * @license Angular v21.0.0-rc.1
3
3
  * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
@@ -22,7 +22,7 @@ class InjectableAnimationEngine extends _AnimationEngine {
22
22
  }
23
23
  static ɵfac = i0.ɵɵngDeclareFactory({
24
24
  minVersion: "12.0.0",
25
- version: "21.0.0-rc.0",
25
+ version: "21.0.0-rc.1",
26
26
  ngImport: i0,
27
27
  type: InjectableAnimationEngine,
28
28
  deps: [{
@@ -36,14 +36,14 @@ class InjectableAnimationEngine extends _AnimationEngine {
36
36
  });
37
37
  static ɵprov = i0.ɵɵngDeclareInjectable({
38
38
  minVersion: "12.0.0",
39
- version: "21.0.0-rc.0",
39
+ version: "21.0.0-rc.1",
40
40
  ngImport: i0,
41
41
  type: InjectableAnimationEngine
42
42
  });
43
43
  }
44
44
  i0.ɵɵngDeclareClassMetadata({
45
45
  minVersion: "12.0.0",
46
- version: "21.0.0-rc.0",
46
+ version: "21.0.0-rc.1",
47
47
  ngImport: i0,
48
48
  type: InjectableAnimationEngine,
49
49
  decorators: [{
@@ -101,7 +101,7 @@ class BrowserAnimationsModule {
101
101
  }
102
102
  static ɵfac = i0.ɵɵngDeclareFactory({
103
103
  minVersion: "12.0.0",
104
- version: "21.0.0-rc.0",
104
+ version: "21.0.0-rc.1",
105
105
  ngImport: i0,
106
106
  type: BrowserAnimationsModule,
107
107
  deps: [],
@@ -109,14 +109,14 @@ class BrowserAnimationsModule {
109
109
  });
110
110
  static ɵmod = i0.ɵɵngDeclareNgModule({
111
111
  minVersion: "14.0.0",
112
- version: "21.0.0-rc.0",
112
+ version: "21.0.0-rc.1",
113
113
  ngImport: i0,
114
114
  type: BrowserAnimationsModule,
115
115
  exports: [BrowserModule]
116
116
  });
117
117
  static ɵinj = i0.ɵɵngDeclareInjector({
118
118
  minVersion: "12.0.0",
119
- version: "21.0.0-rc.0",
119
+ version: "21.0.0-rc.1",
120
120
  ngImport: i0,
121
121
  type: BrowserAnimationsModule,
122
122
  providers: BROWSER_ANIMATIONS_PROVIDERS,
@@ -125,7 +125,7 @@ class BrowserAnimationsModule {
125
125
  }
126
126
  i0.ɵɵngDeclareClassMetadata({
127
127
  minVersion: "12.0.0",
128
- version: "21.0.0-rc.0",
128
+ version: "21.0.0-rc.1",
129
129
  ngImport: i0,
130
130
  type: BrowserAnimationsModule,
131
131
  decorators: [{
@@ -143,7 +143,7 @@ function provideAnimations() {
143
143
  class NoopAnimationsModule {
144
144
  static ɵfac = i0.ɵɵngDeclareFactory({
145
145
  minVersion: "12.0.0",
146
- version: "21.0.0-rc.0",
146
+ version: "21.0.0-rc.1",
147
147
  ngImport: i0,
148
148
  type: NoopAnimationsModule,
149
149
  deps: [],
@@ -151,14 +151,14 @@ class NoopAnimationsModule {
151
151
  });
152
152
  static ɵmod = i0.ɵɵngDeclareNgModule({
153
153
  minVersion: "14.0.0",
154
- version: "21.0.0-rc.0",
154
+ version: "21.0.0-rc.1",
155
155
  ngImport: i0,
156
156
  type: NoopAnimationsModule,
157
157
  exports: [BrowserModule]
158
158
  });
159
159
  static ɵinj = i0.ɵɵngDeclareInjector({
160
160
  minVersion: "12.0.0",
161
- version: "21.0.0-rc.0",
161
+ version: "21.0.0-rc.1",
162
162
  ngImport: i0,
163
163
  type: NoopAnimationsModule,
164
164
  providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS,
@@ -167,7 +167,7 @@ class NoopAnimationsModule {
167
167
  }
168
168
  i0.ɵɵngDeclareClassMetadata({
169
169
  minVersion: "12.0.0",
170
- version: "21.0.0-rc.0",
170
+ version: "21.0.0-rc.1",
171
171
  ngImport: i0,
172
172
  type: NoopAnimationsModule,
173
173
  decorators: [{
@@ -1 +1 @@
1
- {"version":3,"file":"animations.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-browser/animations/src/providers.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 {\n AnimationDriver,\n NoopAnimationDriver,\n ɵAnimationEngine as AnimationEngine,\n ɵAnimationRendererFactory as AnimationRendererFactory,\n ɵAnimationStyleNormalizer as AnimationStyleNormalizer,\n ɵWebAnimationsDriver as WebAnimationsDriver,\n ɵWebAnimationsStyleNormalizer as WebAnimationsStyleNormalizer,\n} from '@angular/animations/browser';\nimport {DOCUMENT} from '@angular/common';\nimport {\n ANIMATION_MODULE_TYPE,\n inject,\n Inject,\n Injectable,\n NgZone,\n OnDestroy,\n Provider,\n RendererFactory2,\n} from '@angular/core';\nimport {ɵDomRendererFactory2 as DomRendererFactory2} from '../../index';\n\n@Injectable()\nexport class InjectableAnimationEngine extends AnimationEngine implements OnDestroy {\n // The `ApplicationRef` is injected here explicitly to force the dependency ordering.\n // Since the `ApplicationRef` should be created earlier before the `AnimationEngine`, they\n // both have `ngOnDestroy` hooks and `flush()` must be called after all views are destroyed.\n constructor(\n @Inject(DOCUMENT) doc: Document,\n driver: AnimationDriver,\n normalizer: AnimationStyleNormalizer,\n ) {\n super(doc, driver, normalizer);\n }\n\n ngOnDestroy(): void {\n this.flush();\n }\n}\n\nexport function instantiateDefaultStyleNormalizer() {\n return new WebAnimationsStyleNormalizer();\n}\n\nexport function instantiateRendererFactory() {\n return new AnimationRendererFactory(\n inject(DomRendererFactory2),\n inject(AnimationEngine),\n inject(NgZone),\n );\n}\n\nconst SHARED_ANIMATION_PROVIDERS: Provider[] = [\n {provide: AnimationStyleNormalizer, useFactory: instantiateDefaultStyleNormalizer},\n {provide: AnimationEngine, useClass: InjectableAnimationEngine},\n {\n provide: RendererFactory2,\n useFactory: instantiateRendererFactory,\n },\n];\n\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserTestingModule.\n */\nexport const BROWSER_NOOP_ANIMATIONS_PROVIDERS: Provider[] = [\n {provide: AnimationDriver, useClass: NoopAnimationDriver},\n {provide: ANIMATION_MODULE_TYPE, useValue: 'NoopAnimations'},\n ...SHARED_ANIMATION_PROVIDERS,\n];\n\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserModule.\n */\nexport const BROWSER_ANIMATIONS_PROVIDERS: Provider[] = [\n // Note: the `ngServerMode` happen inside factories to give the variable time to initialize.\n {\n provide: AnimationDriver,\n useFactory: () =>\n typeof ngServerMode !== 'undefined' && ngServerMode\n ? new NoopAnimationDriver()\n : new WebAnimationsDriver(),\n },\n {\n provide: ANIMATION_MODULE_TYPE,\n useFactory: () =>\n typeof ngServerMode !== 'undefined' && ngServerMode ? 'NoopAnimations' : 'BrowserAnimations',\n },\n ...SHARED_ANIMATION_PROVIDERS,\n];\n"],"names":["InjectableAnimationEngine","AnimationEngine","constructor","normalizer","ngOnDestroy","flush","ɵfac","i0","ɵɵngDeclareFactory","minVersion","version","ngImport","type","deps","token","DOCUMENT","i1","AnimationDriver","ɵAnimationStyleNormalizer","target","ɵɵFactoryTarget","Injectable","ɵprov","ɵɵngDeclareInjectable","ctorParameters","Document","decorators","Inject","inject","DomRendererFactory2","NgZone","provide","AnimationStyleNormalizer","useFactory","instantiateDefaultStyleNormalizer","RendererFactory2","instantiateRendererFactory","BROWSER_NOOP_ANIMATIONS_PROVIDERS"],"mappings":";;;;;;;;;;;;;;;AA+BM,MAAAA,yBAAA,SAAAC,gBAAA,CAAA;AAqBNC,EAAAA,yBAA0CC,UAAA,EAAA;;;AAQ1CC,EAAAA;AACE,IAAA,IAAA,CAAAC,KAAA,EAAA;AACA;AACA,EAAA,OAAAC,IAAA,GAAAC,EAAA,CAAAC,kBAAA,CAAA;IAAAC,UAAA,EAAA,QAAA;IAAAC,OAAA,EAAA,mBAAA;AAAAC,IAAAA,QAAA,EAAAJ,EAAA;AAAAK,IAAAA,IAAA,EAAAZ,yBAAA;IAAAa,IAAA,EAAA,CAAA;AAAAC,MAAAA,KAAA,EAAAC;AAAA,KAAA,EAAA;MAAAD,KAAA,EAAAE,EAAA,CAAAC;AAAA,KAAA,EAAA;MAAAH,KAAA,EAAAE,EAAA,CAAAE;AAAA,KAAA,CAAA;AAAAC,IAAAA,MAAA,EAAAZ,EAAA,CAAAa,eAAA,CAAAC;AAAA,GAAA,CAAA;AACE,EAAA,OAAAC,KACsC,GAAAf,EACvC,CAAAgB,qBACF,CAAA;IAAAd,UAAA,EAAA,QAAA;IAAAC,OAAA,EAAA,mBAAA;AAAAC,IAAAA,QAAA,EAAAJ,EAAA;AAAAK,IAAAA,IAAA,EAAAZ;AAAA,GAAA,CAAA;;;;;;;;AAMKY,IAAAA,IAAO,EAAAS;AACX,GAAA,CAAA;gBAAU,EAAAG,MAAA,CAAA;AAAAZ,IAAAA,IAAA,EAAAa,QAAA;IAAAC,UAAA,EAAA,CAAA;AACVd,MAAAA,IAAA,EAAAe,MAAA;;;;;;;;;;;;;sCAVE,CAAAC,MAAA,CAAAC,mBAAA,CAAAD,EAAAA,MAAA,CAAA3B,gBAAA,CAAA,EAAA2B,MAAA,CAAAE,MAAA,CAAA,CAAA;;AAcJ,MAAA,0BAAA,GAAA,CAAA;AAAAC,EAAAA,OAAA,EAAAC,yBAAA;AAAAC,EAAAA,UAAA,EAAAC;AAAA;;;;AAIMH,EAAAA,OAAA,EAAOI,gBAAA;YACiF,EAAAC;CAQ5F,CAAA;AAMDC,MAAAA,iCAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"animations.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-browser/animations/src/providers.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/packages/platform-browser/animations/src/module.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 {\n AnimationDriver,\n NoopAnimationDriver,\n ɵAnimationEngine as AnimationEngine,\n ɵAnimationRendererFactory as AnimationRendererFactory,\n ɵAnimationStyleNormalizer as AnimationStyleNormalizer,\n ɵWebAnimationsDriver as WebAnimationsDriver,\n ɵWebAnimationsStyleNormalizer as WebAnimationsStyleNormalizer,\n} from '@angular/animations/browser';\nimport {DOCUMENT} from '@angular/common';\nimport {\n ANIMATION_MODULE_TYPE,\n inject,\n Inject,\n Injectable,\n NgZone,\n OnDestroy,\n Provider,\n RendererFactory2,\n} from '@angular/core';\nimport {ɵDomRendererFactory2 as DomRendererFactory2} from '../../index';\n\n@Injectable()\nexport class InjectableAnimationEngine extends AnimationEngine implements OnDestroy {\n // The `ApplicationRef` is injected here explicitly to force the dependency ordering.\n // Since the `ApplicationRef` should be created earlier before the `AnimationEngine`, they\n // both have `ngOnDestroy` hooks and `flush()` must be called after all views are destroyed.\n constructor(\n @Inject(DOCUMENT) doc: Document,\n driver: AnimationDriver,\n normalizer: AnimationStyleNormalizer,\n ) {\n super(doc, driver, normalizer);\n }\n\n ngOnDestroy(): void {\n this.flush();\n }\n}\n\nexport function instantiateDefaultStyleNormalizer() {\n return new WebAnimationsStyleNormalizer();\n}\n\nexport function instantiateRendererFactory() {\n return new AnimationRendererFactory(\n inject(DomRendererFactory2),\n inject(AnimationEngine),\n inject(NgZone),\n );\n}\n\nconst SHARED_ANIMATION_PROVIDERS: Provider[] = [\n {provide: AnimationStyleNormalizer, useFactory: instantiateDefaultStyleNormalizer},\n {provide: AnimationEngine, useClass: InjectableAnimationEngine},\n {\n provide: RendererFactory2,\n useFactory: instantiateRendererFactory,\n },\n];\n\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserTestingModule.\n */\nexport const BROWSER_NOOP_ANIMATIONS_PROVIDERS: Provider[] = [\n {provide: AnimationDriver, useClass: NoopAnimationDriver},\n {provide: ANIMATION_MODULE_TYPE, useValue: 'NoopAnimations'},\n ...SHARED_ANIMATION_PROVIDERS,\n];\n\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserModule.\n */\nexport const BROWSER_ANIMATIONS_PROVIDERS: Provider[] = [\n // Note: the `ngServerMode` happen inside factories to give the variable time to initialize.\n {\n provide: AnimationDriver,\n useFactory: () =>\n typeof ngServerMode !== 'undefined' && ngServerMode\n ? new NoopAnimationDriver()\n : new WebAnimationsDriver(),\n },\n {\n provide: ANIMATION_MODULE_TYPE,\n useFactory: () =>\n typeof ngServerMode !== 'undefined' && ngServerMode ? 'NoopAnimations' : 'BrowserAnimations',\n },\n ...SHARED_ANIMATION_PROVIDERS,\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 {\n ModuleWithProviders,\n NgModule,\n Provider,\n ɵperformanceMarkFeature as performanceMarkFeature,\n} from '@angular/core';\nimport {BrowserModule} from '../../index';\n\nimport {BROWSER_ANIMATIONS_PROVIDERS, BROWSER_NOOP_ANIMATIONS_PROVIDERS} from './providers';\n\n/**\n * Object used to configure the behavior of {@link BrowserAnimationsModule}\n * @publicApi\n *\n * @deprecated 20.2 Use `animate.enter` or `animate.leave` instead. Intent to remove in v23\n */\nexport interface BrowserAnimationsModuleConfig {\n /**\n * Whether animations should be disabled. Passing this is identical to providing the\n * `NoopAnimationsModule`, but it can be controlled based on a runtime value.\n */\n disableAnimations?: boolean;\n}\n\n/**\n * Exports `BrowserModule` with additional dependency-injection providers\n * for use with animations. See [Animations](guide/animations).\n * @publicApi\n *\n * @deprecated 20.2 Use `animate.enter` or `animate.leave` instead. Intent to remove in v23\n */\n@NgModule({\n exports: [BrowserModule],\n providers: BROWSER_ANIMATIONS_PROVIDERS,\n})\nexport class BrowserAnimationsModule {\n /**\n * Configures the module based on the specified object.\n *\n * @param config Object used to configure the behavior of the `BrowserAnimationsModule`.\n * @see {@link BrowserAnimationsModuleConfig}\n *\n * @usageNotes\n * When registering the `BrowserAnimationsModule`, you can use the `withConfig`\n * function as follows:\n * ```ts\n * @NgModule({\n * imports: [BrowserAnimationsModule.withConfig(config)]\n * })\n * class MyNgModule {}\n * ```\n */\n static withConfig(\n config: BrowserAnimationsModuleConfig,\n ): ModuleWithProviders<BrowserAnimationsModule> {\n return {\n ngModule: BrowserAnimationsModule,\n providers: config.disableAnimations\n ? BROWSER_NOOP_ANIMATIONS_PROVIDERS\n : BROWSER_ANIMATIONS_PROVIDERS,\n };\n }\n}\n\n/**\n * Returns the set of dependency-injection providers\n * to enable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to enable animations in an application\n * bootstrapped using the `bootstrapApplication` function. In this scenario there\n * is no need to import the `BrowserAnimationsModule` NgModule at all, just add\n * providers returned by this function to the `providers` list as show below.\n *\n * ```ts\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n *\n * @deprecated 20.2 Use `animate.enter` or `animate.leave` instead. Intent to remove in v23\n *\n */\nexport function provideAnimations(): Provider[] {\n performanceMarkFeature('NgEagerAnimations');\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideAnimations` call results in app code.\n return [...BROWSER_ANIMATIONS_PROVIDERS];\n}\n\n/**\n * A null player that must be imported to allow disabling of animations.\n * @publicApi\n *\n * @deprecated 20.2 Use `animate.enter` or `animate.leave` instead. Intent to remove in v23\n */\n@NgModule({\n exports: [BrowserModule],\n providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS,\n})\nexport class NoopAnimationsModule {}\n\n/**\n * Returns the set of dependency-injection providers\n * to disable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to bootstrap an application using\n * the `bootstrapApplication` function, but you need to disable animations\n * (for example, when running tests).\n *\n * ```ts\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideNoopAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n *\n * @deprecated 20.2 Use `animate.enter` or `animate.leave` instead. Intent to remove in v23\n */\nexport function provideNoopAnimations(): Provider[] {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideNoopAnimations` call results in app code.\n return [...BROWSER_NOOP_ANIMATIONS_PROVIDERS];\n}\n"],"names":["InjectableAnimationEngine","AnimationEngine","constructor","doc","driver","normalizer","ngOnDestroy","flush","ɵfac","i0","ɵɵngDeclareFactory","minVersion","version","ngImport","type","DOCUMENT","token","i1","AnimationDriver","ɵAnimationStyleNormalizer","target","ɵɵFactoryTarget","Injectable","decorators","Inject","instantiateDefaultStyleNormalizer","WebAnimationsStyleNormalizer","instantiateRendererFactory","AnimationRendererFactory","inject","DomRendererFactory2","NgZone","SHARED_ANIMATION_PROVIDERS","provide","AnimationStyleNormalizer","useFactory","useClass","RendererFactory2","BROWSER_NOOP_ANIMATIONS_PROVIDERS","NoopAnimationDriver","ANIMATION_MODULE_TYPE","useValue","BROWSER_ANIMATIONS_PROVIDERS","ngServerMode","WebAnimationsDriver","BrowserAnimationsModule","withConfig","config","ngModule","providers","disableAnimations","deps","NgModule","ɵmod","ɵɵngDeclareNgModule","BrowserModule","imports","args","exports","provideAnimations","performanceMarkFeature","NoopAnimationsModule","provideNoopAnimations"],"mappings":"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"}