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