{"version":3,"file":"_browser-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/packages/platform-browser/src/browser/browser_adapter.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/packages/platform-browser/src/browser/testability.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/packages/platform-browser/src/browser/xhr.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/packages/platform-browser/src/dom/events/key_events.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/packages/platform-browser/src/browser.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n  ɵparseCookieValue as parseCookieValue,\n  ɵsetRootDomAdapter as setRootDomAdapter,\n  ɵDomAdapter as DomAdapter,\n} from '@angular/common';\n\n/**\n * A `DomAdapter` powered by full browser DOM APIs.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport class BrowserDomAdapter extends DomAdapter {\n  override readonly supportsDOMEvents: boolean = true;\n\n  static makeCurrent() {\n    setRootDomAdapter(new BrowserDomAdapter());\n  }\n\n  override onAndCancel(el: Node, evt: any, listener: any, options: any): Function {\n    el.addEventListener(evt, listener, options);\n    return () => {\n      el.removeEventListener(evt, listener, options);\n    };\n  }\n  override dispatchEvent(el: Node, evt: any) {\n    el.dispatchEvent(evt);\n  }\n  override remove(node: Node): void {\n    (node as Element | Text | Comment).remove();\n  }\n  override createElement(tagName: string, doc?: Document): HTMLElement {\n    doc = doc || this.getDefaultDocument();\n    return doc.createElement(tagName);\n  }\n  override createHtmlDocument(): Document {\n    return document.implementation.createHTMLDocument('fakeTitle');\n  }\n  override getDefaultDocument(): Document {\n    return document;\n  }\n\n  override isElementNode(node: Node): boolean {\n    return node.nodeType === Node.ELEMENT_NODE;\n  }\n\n  override isShadowRoot(node: any): boolean {\n    return node instanceof DocumentFragment;\n  }\n\n  /** @deprecated No longer being used in Ivy code. To be removed in version 14. */\n  override getGlobalEventTarget(doc: Document, target: string): EventTarget | null {\n    if (target === 'window') {\n      return window;\n    }\n    if (target === 'document') {\n      return doc;\n    }\n    if (target === 'body') {\n      return doc.body;\n    }\n    return null;\n  }\n  override getBaseHref(doc: Document): string | null {\n    const href = getBaseElementHref();\n    return href == null ? null : relativePath(href);\n  }\n  override resetBaseElement(): void {\n    baseElement = null;\n  }\n  override getUserAgent(): string {\n    return window.navigator.userAgent;\n  }\n  override getCookie(name: string): string | null {\n    return parseCookieValue(document.cookie, name);\n  }\n}\n\nlet baseElement: HTMLElement | null = null;\nfunction getBaseElementHref(): string | null {\n  baseElement = baseElement || document.head.querySelector('base');\n  return baseElement ? baseElement.getAttribute('href') : null;\n}\n\nfunction relativePath(url: string): string {\n  // The base URL doesn't really matter, we just need it so relative paths have something\n  // to resolve against. In the browser `HTMLBaseElement.href` is always absolute.\n  return new URL(url, document.baseURI).pathname;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {\n  GetTestability,\n  Testability,\n  TestabilityRegistry,\n  ɵglobal as global,\n  ɵRuntimeError as RuntimeError,\n} from '@angular/core';\n\nimport {RuntimeErrorCode} from '../errors';\n\nexport class BrowserGetTestability implements GetTestability {\n  addToWindow(registry: TestabilityRegistry): void {\n    global['getAngularTestability'] = (elem: any, findInAncestors: boolean = true) => {\n      const testability = registry.findTestabilityInTree(elem, findInAncestors);\n      if (testability == null) {\n        throw new RuntimeError(\n          RuntimeErrorCode.TESTABILITY_NOT_FOUND,\n          (typeof ngDevMode === 'undefined' || ngDevMode) &&\n            'Could not find testability for element.',\n        );\n      }\n      return testability;\n    };\n\n    global['getAllAngularTestabilities'] = () => registry.getAllTestabilities();\n\n    global['getAllAngularRootElements'] = () => registry.getAllRootElements();\n\n    const whenAllStable = (callback: () => void) => {\n      const testabilities = global['getAllAngularTestabilities']() as Testability[];\n      let count = testabilities.length;\n      const decrement = function () {\n        count--;\n        if (count == 0) {\n          callback();\n        }\n      };\n      testabilities.forEach((testability) => {\n        testability.whenStable(decrement);\n      });\n    };\n\n    if (!global['frameworkStabilizers']) {\n      global['frameworkStabilizers'] = [];\n    }\n    global['frameworkStabilizers'].push(whenAllStable);\n  }\n\n  findTestabilityInTree(\n    registry: TestabilityRegistry,\n    elem: any,\n    findInAncestors: boolean,\n  ): Testability | null {\n    if (elem == null) {\n      return null;\n    }\n    const t = registry.getTestability(elem);\n    if (t != null) {\n      return t;\n    } else if (!findInAncestors) {\n      return null;\n    }\n    if (getDOM().isShadowRoot(elem)) {\n      return this.findTestabilityInTree(registry, (<any>elem).host, true);\n    }\n    return this.findTestabilityInTree(registry, elem.parentElement, true);\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {XhrFactory} from '@angular/common';\nimport {Injectable} from '@angular/core';\n\n/**\n * A factory for `HttpXhrBackend` that uses the `XMLHttpRequest` browser API.\n */\n@Injectable()\nexport class BrowserXhr implements XhrFactory {\n  build(): XMLHttpRequest {\n    return new XMLHttpRequest();\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, type ListenerOptions, NgZone} from '@angular/core';\n\nimport {EventManagerPlugin} from './event_manager_plugin';\n\n/**\n * Defines supported modifiers for key events.\n */\nconst MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\n\n// The following values are here for cross-browser compatibility and to match the W3C standard\n// cf https://www.w3.org/TR/DOM-Level-3-Events-key/\nconst _keyMap: {[k: string]: string} = {\n  '\\b': 'Backspace',\n  '\\t': 'Tab',\n  '\\x7F': 'Delete',\n  '\\x1B': 'Escape',\n  'Del': 'Delete',\n  'Esc': 'Escape',\n  'Left': 'ArrowLeft',\n  'Right': 'ArrowRight',\n  'Up': 'ArrowUp',\n  'Down': 'ArrowDown',\n  'Menu': 'ContextMenu',\n  'Scroll': 'ScrollLock',\n  'Win': 'OS',\n};\n\n/**\n * Retrieves modifiers from key-event objects.\n */\nconst MODIFIER_KEY_GETTERS: {[key: string]: (event: KeyboardEvent) => boolean} = {\n  'alt': (event: KeyboardEvent) => event.altKey,\n  'control': (event: KeyboardEvent) => event.ctrlKey,\n  'meta': (event: KeyboardEvent) => event.metaKey,\n  'shift': (event: KeyboardEvent) => event.shiftKey,\n};\n\n/**\n * A browser plug-in that provides support for handling of key events in Angular.\n */\n@Injectable()\nexport class KeyEventsPlugin extends EventManagerPlugin {\n  /**\n   * Initializes an instance of the browser plug-in.\n   * @param doc The document in which key events will be detected.\n   */\n  constructor(@Inject(DOCUMENT) doc: any) {\n    super(doc);\n  }\n\n  /**\n   * Reports whether a named key event is supported.\n   * @param eventName The event name to query.\n   * @return True if the named key event is supported.\n   */\n  override supports(eventName: string): boolean {\n    return KeyEventsPlugin.parseEventName(eventName) != null;\n  }\n\n  /**\n   * Registers a handler for a specific element and key event.\n   * @param element The HTML element to receive event notifications.\n   * @param eventName The name of the key event to listen for.\n   * @param handler A function to call when the notification occurs. Receives the\n   * event object as an argument.\n   * @returns The key event that was registered.\n   */\n  override addEventListener(\n    element: HTMLElement,\n    eventName: string,\n    handler: Function,\n    options?: ListenerOptions,\n  ): Function {\n    const parsedEvent = KeyEventsPlugin.parseEventName(eventName)!;\n\n    const outsideHandler = KeyEventsPlugin.eventCallback(\n      parsedEvent['fullKey'],\n      handler,\n      this.manager.getZone(),\n    );\n\n    return this.manager.getZone().runOutsideAngular(() => {\n      return getDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler, options);\n    });\n  }\n\n  /**\n   * Parses the user provided full keyboard event definition and normalizes it for\n   * later internal use. It ensures the string is all lowercase, converts special\n   * characters to a standard spelling, and orders all the values consistently.\n   *\n   * @param eventName The name of the key event to listen for.\n   * @returns an object with the full, normalized string, and the dom event name\n   * or null in the case when the event doesn't match a keyboard event.\n   */\n  static parseEventName(eventName: string): {fullKey: string; domEventName: string} | null {\n    const parts: string[] = eventName.toLowerCase().split('.');\n\n    const domEventName = parts.shift();\n    if (parts.length === 0 || !(domEventName === 'keydown' || domEventName === 'keyup')) {\n      return null;\n    }\n\n    const key = KeyEventsPlugin._normalizeKey(parts.pop()!);\n\n    let fullKey = '';\n    let codeIX = parts.indexOf('code');\n    if (codeIX > -1) {\n      parts.splice(codeIX, 1);\n      fullKey = 'code.';\n    }\n    MODIFIER_KEYS.forEach((modifierName) => {\n      const index: number = parts.indexOf(modifierName);\n      if (index > -1) {\n        parts.splice(index, 1);\n        fullKey += modifierName + '.';\n      }\n    });\n    fullKey += key;\n\n    if (parts.length != 0 || key.length === 0) {\n      // returning null instead of throwing to let another plugin process the event\n      return null;\n    }\n\n    // NOTE: Please don't rewrite this as so, as it will break JSCompiler property renaming.\n    //       The code must remain in the `result['domEventName']` form.\n    // return {domEventName, fullKey};\n    const result: {fullKey: string; domEventName: string} = {} as any;\n    result['domEventName'] = domEventName;\n    result['fullKey'] = fullKey;\n    return result;\n  }\n\n  /**\n   * Determines whether the actual keys pressed match the configured key code string.\n   * The `fullKeyCode` event is normalized in the `parseEventName` method when the\n   * event is attached to the DOM during the `addEventListener` call. This is unseen\n   * by the end user and is normalized for internal consistency and parsing.\n   *\n   * @param event The keyboard event.\n   * @param fullKeyCode The normalized user defined expected key event string\n   * @returns boolean.\n   */\n  static matchEventFullKeyCode(event: KeyboardEvent, fullKeyCode: string): boolean {\n    let keycode = _keyMap[event.key] || event.key;\n    let key = '';\n    if (fullKeyCode.indexOf('code.') > -1) {\n      keycode = event.code;\n      key = 'code.';\n    }\n    // the keycode could be unidentified so we have to check here\n    if (keycode == null || !keycode) return false;\n    keycode = keycode.toLowerCase();\n    if (keycode === ' ') {\n      keycode = 'space'; // for readability\n    } else if (keycode === '.') {\n      keycode = 'dot'; // because '.' is used as a separator in event names\n    }\n    MODIFIER_KEYS.forEach((modifierName) => {\n      if (modifierName !== keycode) {\n        const modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n        if (modifierGetter(event)) {\n          key += modifierName + '.';\n        }\n      }\n    });\n    key += keycode;\n    return key === fullKeyCode;\n  }\n\n  /**\n   * Configures a handler callback for a key event.\n   * @param fullKey The event name that combines all simultaneous keystrokes.\n   * @param handler The function that responds to the key event.\n   * @param zone The zone in which the event occurred.\n   * @returns A callback function.\n   */\n  static eventCallback(fullKey: string, handler: Function, zone: NgZone): Function {\n    return (event: KeyboardEvent) => {\n      if (KeyEventsPlugin.matchEventFullKeyCode(event, fullKey)) {\n        zone.runGuarded(() => handler(event));\n      }\n    };\n  }\n\n  /** @internal */\n  static _normalizeKey(keyName: string): string {\n    return keyName === 'esc' ? 'escape' : keyName;\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  CommonModule,\n  DOCUMENT,\n  XhrFactory,\n  ɵPLATFORM_BROWSER_ID as PLATFORM_BROWSER_ID,\n} from '@angular/common';\nimport {\n  ApplicationConfig,\n  ApplicationModule,\n  ApplicationRef,\n  createPlatformFactory,\n  ErrorHandler,\n  InjectionToken,\n  NgModule,\n  PLATFORM_ID,\n  PLATFORM_INITIALIZER,\n  platformCore,\n  PlatformRef,\n  Provider,\n  RendererFactory2,\n  StaticProvider,\n  Testability,\n  Type,\n  ɵINJECTOR_SCOPE as INJECTOR_SCOPE,\n  ɵinternalCreateApplication as internalCreateApplication,\n  ɵRuntimeError as RuntimeError,\n  ɵsetDocument,\n  ɵTESTABILITY as TESTABILITY,\n  ɵTESTABILITY_GETTER as TESTABILITY_GETTER,\n  inject,\n  ɵresolveComponentResources as resolveComponentResources,\n} from '@angular/core';\n\nimport {BrowserDomAdapter} from './browser/browser_adapter';\nimport {BrowserGetTestability} from './browser/testability';\nimport {BrowserXhr} from './browser/xhr';\nimport {DomRendererFactory2} from './dom/dom_renderer';\nimport {DomEventsPlugin} from './dom/events/dom_events';\nimport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nimport {KeyEventsPlugin} from './dom/events/key_events';\nimport {SharedStylesHost} from './dom/shared_styles_host';\nimport {RuntimeErrorCode} from './errors';\n\n/**\n * A context object that can be passed to `bootstrapApplication` to provide a pre-existing platform\n * injector.\n *\n * @publicApi\n */\nexport interface BootstrapContext {\n  /**\n   * A reference to a platform.\n   */\n  platformRef: PlatformRef;\n}\n\n/**\n * Bootstraps an instance of an Angular application and renders a standalone component as the\n * application's root component. More information about standalone components can be found in [this\n * guide](guide/components/importing).\n *\n * @usageNotes\n * The root component passed into this function **must** be a standalone one\n *\n * ```angular-ts\n * @Component({\n *   template: 'Hello world!'\n * })\n * class Root {}\n *\n * const appRef: ApplicationRef = await bootstrapApplication(Root);\n * ```\n *\n * You can add the list of providers that should be available in the application injector by\n * specifying the `providers` field in an object passed as the second argument:\n *\n * ```ts\n * await bootstrapApplication(Root, {\n *   providers: [\n *     {provide: BACKEND_URL, useValue: 'https://yourdomain.com/api'}\n *   ]\n * });\n * ```\n *\n * The `importProvidersFrom` helper method can be used to collect all providers from any\n * existing NgModule (and transitively from all NgModules that it imports):\n *\n * ```ts\n * await bootstrapApplication(Root, {\n *   providers: [\n *     importProvidersFrom(SomeNgModule)\n *   ]\n * });\n * ```\n *\n * Note: the `bootstrapApplication` method doesn't include [Testability](api/core/Testability) by\n * default. You can add [Testability](api/core/Testability) by getting the list of necessary\n * providers using `provideProtractorTestingSupport()` function and adding them into the `providers`\n * array, for example:\n *\n * ```ts\n * import {provideProtractorTestingSupport} from '@angular/platform-browser';\n *\n * await bootstrapApplication(Root, {providers: [provideProtractorTestingSupport()]});\n * ```\n *\n * @param rootComponent A reference to a standalone component that should be rendered.\n * @param options Extra configuration for the bootstrap operation, see `ApplicationConfig` for\n *     additional info.\n * @param context Optional context object that can be used to provide a pre-existing\n *     platform injector. This is useful for advanced use-cases, for example, server-side\n *     rendering, where the platform is created for each request.\n * @returns A promise that returns an `ApplicationRef` instance once resolved.\n *\n * @publicApi\n */\nexport async function bootstrapApplication(\n  rootComponent: Type<unknown>,\n  options?: ApplicationConfig,\n  context?: BootstrapContext,\n): Promise<ApplicationRef> {\n  const config = {\n    rootComponent,\n    ...createProvidersConfig(options, context),\n  };\n\n  if ((typeof ngJitMode === 'undefined' || ngJitMode) && typeof fetch === 'function') {\n    await resolveJitResources();\n  }\n\n  return internalCreateApplication(config);\n}\n\n/**\n * Create an instance of an Angular application without bootstrapping any components. This is useful\n * for the situation where one wants to decouple application environment creation (a platform and\n * associated injectors) from rendering components on a screen. Components can be subsequently\n * bootstrapped on the returned `ApplicationRef`.\n *\n * @param options Extra configuration for the application environment, see `ApplicationConfig` for\n *     additional info.\n * @param context Optional context object that can be used to provide a pre-existing\n *     platform injector. This is useful for advanced use-cases, for example, server-side\n *     rendering, where the platform is created for each request.\n * @returns A promise that returns an `ApplicationRef` instance once resolved.\n *\n * @publicApi\n */\nexport async function createApplication(\n  options?: ApplicationConfig,\n  context?: BootstrapContext,\n): Promise<ApplicationRef> {\n  if ((typeof ngJitMode === 'undefined' || ngJitMode) && typeof fetch === 'function') {\n    await resolveJitResources();\n  }\n\n  return internalCreateApplication(createProvidersConfig(options, context));\n}\n\nfunction createProvidersConfig(options?: ApplicationConfig, context?: BootstrapContext) {\n  return {\n    platformRef: context?.platformRef,\n    appProviders: [...BROWSER_MODULE_PROVIDERS, ...(options?.providers ?? [])],\n    platformProviders: INTERNAL_BROWSER_PLATFORM_PROVIDERS,\n  };\n}\n\n/** Attempt to resolve component resources before bootstrapping in JIT mode. */\nasync function resolveJitResources(): Promise<void> {\n  try {\n    return await resolveComponentResources(fetch);\n  } catch (error) {\n    // Log, but don't block bootstrapping on error.\n    // tslint:disable-next-line:no-console\n    console.error(error);\n  }\n}\n\n/**\n * Returns a set of providers required to setup [Testability](api/core/Testability) for an\n * application bootstrapped using the `bootstrapApplication` function. The set of providers is\n * needed to support testing an application with Protractor (which relies on the Testability APIs\n * to be present).\n *\n * @returns An array of providers required to setup Testability for an application and make it\n *     available for testing using Protractor.\n *\n * @publicApi\n */\nexport function provideProtractorTestingSupport(): Provider[] {\n  // Return a copy to prevent changes to the original array in case any in-place\n  // alterations are performed to the `provideProtractorTestingSupport` call results in app\n  // code.\n  return [...TESTABILITY_PROVIDERS];\n}\n\nexport function initDomAdapter() {\n  BrowserDomAdapter.makeCurrent();\n}\n\nexport function errorHandler(): ErrorHandler {\n  return new ErrorHandler();\n}\n\nexport function _document(): any {\n  // Tell ivy about the global document\n  ɵsetDocument(document);\n  return document;\n}\n\nconst INTERNAL_BROWSER_PLATFORM_PROVIDERS: StaticProvider[] = [\n  {provide: PLATFORM_ID, useValue: PLATFORM_BROWSER_ID},\n  {provide: PLATFORM_INITIALIZER, useValue: initDomAdapter, multi: true},\n  {provide: DOCUMENT, useFactory: _document},\n];\n\n/**\n * A factory function that returns a `PlatformRef` instance associated with browser service\n * providers.\n *\n * @publicApi\n */\nexport const platformBrowser: (extraProviders?: StaticProvider[]) => PlatformRef =\n  createPlatformFactory(platformCore, 'browser', INTERNAL_BROWSER_PLATFORM_PROVIDERS);\n\n/**\n * Internal marker to signal whether providers from the `BrowserModule` are already present in DI.\n * This is needed to avoid loading `BrowserModule` providers twice. We can't rely on the\n * `BrowserModule` presence itself, since the standalone-based bootstrap just imports\n * `BrowserModule` providers without referencing the module itself.\n */\nconst BROWSER_MODULE_PROVIDERS_MARKER = new InjectionToken(\n  typeof ngDevMode === 'undefined' || ngDevMode ? 'BrowserModule Providers Marker' : '',\n);\n\nconst TESTABILITY_PROVIDERS = [\n  {\n    provide: TESTABILITY_GETTER,\n    useClass: BrowserGetTestability,\n  },\n  {\n    provide: TESTABILITY,\n    useClass: Testability,\n  },\n  {\n    provide: Testability, // Also provide as `Testability` for backwards-compatibility.\n    useClass: Testability,\n  },\n];\n\nconst BROWSER_MODULE_PROVIDERS: Provider[] = [\n  {provide: INJECTOR_SCOPE, useValue: 'root'},\n  {provide: ErrorHandler, useFactory: errorHandler},\n  {\n    provide: EVENT_MANAGER_PLUGINS,\n    useClass: DomEventsPlugin,\n    multi: true,\n  },\n  {provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true},\n  DomRendererFactory2,\n  SharedStylesHost,\n  EventManager,\n  {provide: RendererFactory2, useExisting: DomRendererFactory2},\n  {provide: XhrFactory, useClass: BrowserXhr},\n  typeof ngDevMode === 'undefined' || ngDevMode\n    ? {provide: BROWSER_MODULE_PROVIDERS_MARKER, useValue: true}\n    : [],\n];\n\n/**\n * Exports required infrastructure for all Angular apps.\n * Included by default in all Angular apps created with the CLI\n * `new` command.\n * Re-exports `CommonModule` and `ApplicationModule`, making their\n * exports and providers available to all apps.\n *\n * @publicApi\n */\n@NgModule({\n  providers: [...BROWSER_MODULE_PROVIDERS, ...TESTABILITY_PROVIDERS],\n  exports: [CommonModule, ApplicationModule],\n})\nexport class BrowserModule {\n  constructor() {\n    if (typeof ngDevMode === 'undefined' || ngDevMode) {\n      const providersAlreadyPresent = inject(BROWSER_MODULE_PROVIDERS_MARKER, {\n        optional: true,\n        skipSelf: true,\n      });\n\n      if (providersAlreadyPresent) {\n        throw new RuntimeError(\n          RuntimeErrorCode.BROWSER_MODULE_ALREADY_LOADED,\n          `Providers from the \\`BrowserModule\\` have already been loaded. If you need access ` +\n            `to common directives such as NgIf and NgFor, import the \\`CommonModule\\` instead.`,\n        );\n      }\n    }\n  }\n}\n"],"names":["BrowserDomAdapter","DomAdapter","supportsDOMEvents","makeCurrent","setRootDomAdapter","onAndCancel","el","evt","listener","options","addEventListener","removeEventListener","dispatchEvent","remove","node","createElement","tagName","doc","getDefaultDocument","createHtmlDocument","document","implementation","createHTMLDocument","isElementNode","nodeType","Node","ELEMENT_NODE","isShadowRoot","DocumentFragment","getGlobalEventTarget","target","window","body","getBaseHref","href","getBaseElementHref","relativePath","resetBaseElement","baseElement","getUserAgent","navigator","userAgent","getCookie","name","parseCookieValue","cookie","head","querySelector","getAttribute","url","URL","baseURI","pathname","BrowserGetTestability","addToWindow","registry","global","elem","findInAncestors","testability","findTestabilityInTree","RuntimeError","ngDevMode","getAllTestabilities","getAllRootElements","whenAllStable","callback","testabilities","count","length","decrement","forEach","whenStable","push","t","getTestability","getDOM","host","parentElement","BrowserXhr","build","XMLHttpRequest","deps","i0","ɵɵFactoryTarget","Injectable","decorators","MODIFIER_KEYS","_keyMap","MODIFIER_KEY_GETTERS","event","altKey","ctrlKey","metaKey","shiftKey","KeyEventsPlugin","EventManagerPlugin","constructor","supports","eventName","parseEventName","element","handler","parsedEvent","outsideHandler","eventCallback","manager","getZone","runOutsideAngular","parts","toLowerCase","split","domEventName","shift","key","_normalizeKey","pop","fullKey","codeIX","indexOf","splice","modifierName","index","result","matchEventFullKeyCode","fullKeyCode","keycode","code","modifierGetter","zone","runGuarded","keyName","ɵfac","ɵɵngDeclareFactory","minVersion","version","ngImport","type","DOCUMENT","Inject","bootstrapApplication","rootComponent","context","config","createProvidersConfig","ngJitMode","fetch","resolveJitResources","internalCreateApplication","createApplication","platformRef","appProviders","BROWSER_MODULE_PROVIDERS","providers","platformProviders","INTERNAL_BROWSER_PLATFORM_PROVIDERS","resolveComponentResources","error","console","provideProtractorTestingSupport","TESTABILITY_PROVIDERS","initDomAdapter","errorHandler","ErrorHandler","_document","ɵsetDocument","provide","PLATFORM_ID","useValue","PLATFORM_BROWSER_ID","PLATFORM_INITIALIZER","multi","useFactory","platformBrowser","createPlatformFactory","platformCore","BROWSER_MODULE_PROVIDERS_MARKER","InjectionToken","TESTABILITY_GETTER","useClass","TESTABILITY","Testability","INJECTOR_SCOPE","EVENT_MANAGER_PLUGINS","DomEventsPlugin","DomRendererFactory2","SharedStylesHost","EventManager","RendererFactory2","useExisting","XhrFactory","BrowserModule","providersAlreadyPresent","inject","optional","skipSelf","NgModule","exports","CommonModule","ApplicationModule","imports","args"],"mappings":"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"}