{"version":3,"file":"_dom_renderer-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/packages/platform-browser/src/dom/events/event_manager_plugin.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/packages/platform-browser/src/dom/events/dom_events.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/packages/platform-browser/src/dom/events/event_manager.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/packages/platform-browser/src/dom/shared_styles_host.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/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  ɵSharedStylesHost,\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 * @returns Whether or not styles were added.\n */\nfunction addServerStyles(\n  doc: Document,\n  appId: string,\n  inline: Map<string, UsageRecord<HTMLStyleElement>>,\n  external: Map<string, UsageRecord<HTMLLinkElement>>,\n): boolean {\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 || elements.length === 0) return false;\n\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  return true;\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 ɵSharedStylesHost, 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    const added = addServerStyles(doc, appId, this.inline, this.external);\n    if (added) this.hosts.add(doc.head);\n  }\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  addHost(hostNode: Node): void {\n    if (this.hosts.has(hostNode)) return;\n\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    for (const record of [...this.inline.values(), ...this.external.values()]) {\n      const remaining: Array<HTMLStyleElement | HTMLLinkElement> = [];\n      for (const element of record.elements) {\n        if (element.parentNode === hostNode) {\n          element.remove();\n        } else {\n          remaining.push(element);\n        }\n      }\n      record.elements = remaining;\n    }\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  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  ɵSHARED_STYLES_HOST as SHARED_STYLES_HOST,\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\n  constructor(\n    private readonly eventManager: EventManager,\n    @Inject(SHARED_STYLES_HOST) 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    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.defaultRenderer = new DefaultDomRenderer2(eventManager, doc, ngZone, this.tracingService);\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.ExperimentalIsolatedShadowDom)\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 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            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            tracingService,\n            sharedStylesHost,\n          );\n        case ViewEncapsulation.ExperimentalIsolatedShadowDom:\n          return new ShadowDomRenderer(\n            eventManager,\n            element,\n            type,\n            doc,\n            ngZone,\n            this.nonce,\n            tracingService,\n          );\n\n        default:\n          renderer = new NoneEncapsulationDomRenderer(\n            eventManager,\n            sharedStylesHost,\n            type,\n            removeStylesOnCompDestroy,\n            doc,\n            ngZone,\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 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    tracingService: TracingService<TracingSnapshot> | null,\n    private sharedStylesHost?: SharedStylesHost,\n  ) {\n    super(eventManager, doc, ngZone, 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 ExperimentalIsolatedShadowDom.\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    tracingService: TracingService<TracingSnapshot> | null,\n    compId?: string,\n  ) {\n    super(eventManager, doc, ngZone, 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    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      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","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","length","removeAttribute","HTMLLinkElement","href","lastIndexOf","usage","createLinkElement","url","linkElement","setAttribute","SharedStylesHost","nonce","hosts","Set","platformId","added","add","addStyles","styles","urls","value","addUsage","removeStyles","removeUsage","usages","creator","record","map","host","addElement","delete","ngOnDestroy","clear","addHost","hostNode","has","removeHost","values","remaining","parentNode","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","DefaultDomRenderer2","createRenderer","encapsulation","ViewEncapsulation","ShadowDom","ExperimentalIsolatedShadowDom","Emulated","renderer","getOrCreateRenderer","EmulatedEncapsulationDomRenderer2","applyToHost","NoneEncapsulationDomRenderer","applyStyles","id","ShadowDomRenderer","componentReplaced","componentId","deps","i1","SHARED_STYLES_HOST","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","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","undefined","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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"}