Index: trip-planner-front/node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/animations.js
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/animations.js	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/animations.js	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,4 +1,4 @@
 /**
- * @license Angular v12.2.13
+ * @license Angular v12.2.9
  * (c) 2010-2021 Google LLC. https://angular.io/
  * License: MIT
Index: trip-planner-front/node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/platform-browser.js
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/platform-browser.js	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/platform-browser.js	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,4 +1,4 @@
 /**
- * @license Angular v12.2.13
+ * @license Angular v12.2.9
  * (c) 2010-2021 Google LLC. https://angular.io/
  * License: MIT
@@ -2145,5 +2145,5 @@
  * @publicApi
  */
-const VERSION = new Version('12.2.13');
+const VERSION = new Version('12.2.9');
 
 /**
Index: trip-planner-front/node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/platform-browser.js.map
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/platform-browser.js.map	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/platform-browser.js.map	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,1 +1,1 @@
-{"version":3,"file":"platform-browser.js","sources":["../../../../../../packages/platform-browser/src/browser/generic_browser_adapter.ts","../../../../../../packages/platform-browser/src/browser/browser_adapter.ts","../../../../../../packages/platform-browser/src/browser/server-transition.ts","../../../../../../packages/platform-browser/src/browser/testability.ts","../../../../../../packages/platform-browser/src/browser/xhr.ts","../../../../../../packages/platform-browser/src/dom/util.ts","../../../../../../packages/platform-browser/src/dom/debug/ng_probe.ts","../../../../../../packages/platform-browser/src/dom/events/event_manager.ts","../../../../../../packages/platform-browser/src/dom/shared_styles_host.ts","../../../../../../packages/platform-browser/src/dom/dom_renderer.ts","../../../../../../packages/platform-browser/src/dom/events/dom_events.ts","../../../../../../packages/platform-browser/src/dom/events/hammer_gestures.ts","../../../../../../packages/platform-browser/src/dom/events/key_events.ts","../../../../../../packages/platform-browser/src/security/dom_sanitization_service.ts","../../../../../../packages/platform-browser/src/browser.ts","../../../../../../packages/platform-browser/src/browser/meta.ts","../../../../../../packages/platform-browser/src/browser/title.ts","../../../../../../packages/platform-browser/src/browser/tools/browser.ts","../../../../../../packages/platform-browser/src/browser/tools/common_tools.ts","../../../../../../packages/platform-browser/src/browser/tools/tools.ts","../../../../../../packages/platform-browser/src/browser/transfer_state.ts","../../../../../../packages/platform-browser/src/dom/debug/by.ts","../../../../../../packages/platform-browser/src/private_export.ts","../../../../../../packages/platform-browser/src/version.ts","../../../../../../packages/platform-browser/src/platform-browser.ts","../../../../../../packages/platform-browser/public_api.ts","../../../../../../packages/platform-browser/index.ts","../../../../../../packages/platform-browser/platform-browser.ts"],"names":["DomAdapter","setRootDomAdapter","parseCookieValue","getDOM","global","Console","allowSanitizationBypassOrThrow","unwrapSafeValue","_sanitizeHtml","getSanitizationBypassType","_sanitizeUrl","bypassSanitizationTrustHtml","bypassSanitizationTrustStyle","bypassSanitizationTrustScript","bypassSanitizationTrustUrl","bypassSanitizationTrustResourceUrl","PLATFORM_BROWSER_ID","INJECTOR_SCOPE","window"],"mappings":"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","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.io/license\n */\n\nimport {ɵDomAdapter as DomAdapter} from '@angular/common';\n\n\n\n/**\n * Provides DOM operations in any browser environment.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class GenericBrowserDomAdapter extends DomAdapter {\n  readonly supportsDOMEvents: boolean = true;\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.io/license\n */\n\nimport {ɵparseCookieValue as parseCookieValue, ɵsetRootDomAdapter as setRootDomAdapter} from '@angular/common';\n\nimport {GenericBrowserDomAdapter} from './generic_browser_adapter';\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 */\n/* tslint:disable:requireParameterType no-console */\nexport class BrowserDomAdapter extends GenericBrowserDomAdapter {\n  static makeCurrent() {\n    setRootDomAdapter(new BrowserDomAdapter());\n  }\n\n  onAndCancel(el: Node, evt: any, listener: any): Function {\n    el.addEventListener(evt, listener, false);\n    // Needed to follow Dart's subscription semantic, until fix of\n    // https://code.google.com/p/dart/issues/detail?id=17406\n    return () => {\n      el.removeEventListener(evt, listener, false);\n    };\n  }\n  dispatchEvent(el: Node, evt: any) {\n    el.dispatchEvent(evt);\n  }\n  remove(node: Node): void {\n    if (node.parentNode) {\n      node.parentNode.removeChild(node);\n    }\n  }\n  createElement(tagName: string, doc?: Document): HTMLElement {\n    doc = doc || this.getDefaultDocument();\n    return doc.createElement(tagName);\n  }\n  createHtmlDocument(): HTMLDocument {\n    return document.implementation.createHTMLDocument('fakeTitle');\n  }\n  getDefaultDocument(): Document {\n    return document;\n  }\n\n  isElementNode(node: Node): boolean {\n    return node.nodeType === Node.ELEMENT_NODE;\n  }\n\n  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  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  getBaseHref(doc: Document): string|null {\n    const href = getBaseElementHref();\n    return href == null ? null : relativePath(href);\n  }\n  resetBaseElement(): void {\n    baseElement = null;\n  }\n  getUserAgent(): string {\n    return window.navigator.userAgent;\n  }\n  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.querySelector('base');\n  return baseElement ? baseElement.getAttribute('href') : null;\n}\n\n// based on urlUtils.js in AngularJS 1\nlet urlParsingNode: HTMLAnchorElement|undefined;\nfunction relativePath(url: any): string {\n  urlParsingNode = urlParsingNode || document.createElement('a');\n  urlParsingNode.setAttribute('href', url);\n  const pathName = urlParsingNode.pathname;\n  return pathName.charAt(0) === '/' ? pathName : `/${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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {APP_INITIALIZER, ApplicationInitStatus, InjectionToken, Injector, StaticProvider} from '@angular/core';\n\n/**\n * An id that identifies a particular application being bootstrapped, that should\n * match across the client/server boundary.\n */\nexport const TRANSITION_ID = new InjectionToken('TRANSITION_ID');\n\nexport function appInitializerFactory(transitionId: string, document: any, injector: Injector) {\n  return () => {\n    // Wait for all application initializers to be completed before removing the styles set by\n    // the server.\n    injector.get(ApplicationInitStatus).donePromise.then(() => {\n      const dom = getDOM();\n      const styles: HTMLCollectionOf<HTMLStyleElement> =\n          document.querySelectorAll(`style[ng-transition=\"${transitionId}\"]`);\n      for (let i = 0; i < styles.length; i++) {\n        dom.remove(styles[i]);\n      }\n    });\n  };\n}\n\nexport const SERVER_TRANSITION_PROVIDERS: StaticProvider[] = [\n  {\n    provide: APP_INITIALIZER,\n    useFactory: appInitializerFactory,\n    deps: [TRANSITION_ID, DOCUMENT, Injector],\n    multi: 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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {GetTestability, setTestabilityGetter, Testability, TestabilityRegistry, ɵglobal as global} from '@angular/core';\n\nexport class BrowserGetTestability implements GetTestability {\n  static init() {\n    setTestabilityGetter(new BrowserGetTestability());\n  }\n\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 Error('Could not find testability for element.');\n      }\n      return testability;\n    };\n\n    global['getAllAngularTestabilities'] = () => registry.getAllTestabilities();\n\n    global['getAllAngularRootElements'] = () => registry.getAllRootElements();\n\n    const whenAllStable = (callback: any /** TODO #9100 */) => {\n      const testabilities = global['getAllAngularTestabilities']();\n      let count = testabilities.length;\n      let didWork = false;\n      const decrement = function(didWork_: any /** TODO #9100 */) {\n        didWork = didWork || didWork_;\n        count--;\n        if (count == 0) {\n          callback(didWork);\n        }\n      };\n      testabilities.forEach(function(testability: any /** TODO #9100 */) {\n        testability.whenStable(decrement);\n      });\n    };\n\n    if (!global['frameworkStabilizers']) {\n      global['frameworkStabilizers'] = [];\n    }\n    global['frameworkStabilizers'].push(whenAllStable);\n  }\n\n  findTestabilityInTree(registry: TestabilityRegistry, elem: any, 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.io/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.io/license\n */\n\nimport {ɵglobal as global} from '@angular/core';\n\nconst CAMEL_CASE_REGEXP = /([A-Z])/g;\nconst DASH_CASE_REGEXP = /-([a-z])/g;\n\n\nexport function camelCaseToDashCase(input: string): string {\n  return input.replace(CAMEL_CASE_REGEXP, (...m: string[]) => '-' + m[1].toLowerCase());\n}\n\nexport function dashCaseToCamelCase(input: string): string {\n  return input.replace(DASH_CASE_REGEXP, (...m: string[]) => m[1].toUpperCase());\n}\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.io/license\n */\n\nimport {APP_INITIALIZER, ApplicationRef, DebugNode, NgProbeToken, NgZone, Optional, Provider, ɵgetDebugNodeR2} from '@angular/core';\n\nimport {exportNgVar} from '../util';\n\nconst CORE_TOKENS = (() => ({\n                       'ApplicationRef': ApplicationRef,\n                       'NgZone': NgZone,\n                     }))();\n\nconst INSPECT_GLOBAL_NAME = 'probe';\nconst CORE_TOKENS_GLOBAL_NAME = 'coreTokens';\n\n/**\n * Returns a {@link DebugElement} for the given native DOM element, or\n * null if the given native element does not have an Angular view associated\n * with it.\n */\nexport function inspectNativeElementR2(element: any): DebugNode|null {\n  return ɵgetDebugNodeR2(element);\n}\n\nexport function _createNgProbeR2(coreTokens: NgProbeToken[]): any {\n  exportNgVar(INSPECT_GLOBAL_NAME, inspectNativeElementR2);\n  exportNgVar(CORE_TOKENS_GLOBAL_NAME, {...CORE_TOKENS, ..._ngProbeTokensToMap(coreTokens || [])});\n  return () => inspectNativeElementR2;\n}\n\nfunction _ngProbeTokensToMap(tokens: NgProbeToken[]): {[name: string]: any} {\n  return tokens.reduce((prev: any, t: any) => (prev[t.name] = t.token, prev), {});\n}\n\n/**\n * In Ivy, we don't support NgProbe because we have our own set of testing utilities\n * with more robust functionality.\n *\n * We shouldn't bring in NgProbe because it prevents DebugNode and friends from\n * tree-shaking properly.\n */\nexport const ELEMENT_PROBE_PROVIDERS__POST_R3__ = [];\n\n/**\n * Providers which support debugging Angular applications (e.g. via `ng.probe`).\n */\nexport const ELEMENT_PROBE_PROVIDERS__PRE_R3__: Provider[] = [\n  {\n    provide: APP_INITIALIZER,\n    useFactory: _createNgProbeR2,\n    deps: [\n      [NgProbeToken, new Optional()],\n    ],\n    multi: true,\n  },\n];\n\nexport const ELEMENT_PROBE_PROVIDERS = ELEMENT_PROBE_PROVIDERS__PRE_R3__;\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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, InjectionToken, NgZone} from '@angular/core';\n\n/**\n * The injection token for the event-manager plug-in service.\n *\n * @publicApi\n */\nexport const EVENT_MANAGER_PLUGINS =\n    new InjectionToken<EventManagerPlugin[]>('EventManagerPlugins');\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(@Inject(EVENT_MANAGER_PLUGINS) plugins: EventManagerPlugin[], private _zone: NgZone) {\n    plugins.forEach(p => p.manager = this);\n    this._plugins = plugins.slice().reverse();\n  }\n\n  /**\n   * Registers a handler for a specific element and event.\n   *\n   * @param element The HTML element to receive event notifications.\n   * @param eventName The name of the event to listen for.\n   * @param handler A function to call when the notification occurs. Receives the\n   * event object as an argument.\n   * @returns  A callback function that can be used to remove the handler.\n   */\n  addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n    const plugin = this._findPluginFor(eventName);\n    return plugin.addEventListener(element, eventName, handler);\n  }\n\n  /**\n   * Registers a global handler for an event in a target view.\n   *\n   * @param target A target for global event notifications. One of \"window\", \"document\", or \"body\".\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   * @returns A callback function that can be used to remove the handler.\n   * @deprecated No longer being used in Ivy code. To be removed in version 14.\n   */\n  addGlobalEventListener(target: string, eventName: string, handler: Function): Function {\n    const plugin = this._findPluginFor(eventName);\n    return plugin.addGlobalEventListener(target, eventName, handler);\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    const plugin = this._eventNameToPlugin.get(eventName);\n    if (plugin) {\n      return plugin;\n    }\n\n    const plugins = this._plugins;\n    for (let i = 0; i < plugins.length; i++) {\n      const plugin = plugins[i];\n      if (plugin.supports(eventName)) {\n        this._eventNameToPlugin.set(eventName, plugin);\n        return plugin;\n      }\n    }\n    throw new Error(`No event manager plugin found for event ${eventName}`);\n  }\n}\n\nexport abstract class EventManagerPlugin {\n  constructor(private _doc: any) {}\n\n  // TODO(issue/24571): remove '!'.\n  manager!: EventManager;\n\n  abstract supports(eventName: string): boolean;\n\n  abstract addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\n\n  addGlobalEventListener(element: string, eventName: string, handler: Function): Function {\n    const target: HTMLElement = getDOM().getGlobalEventTarget(this._doc, element);\n    if (!target) {\n      throw new Error(`Unsupported event target ${target} for event ${eventName}`);\n    }\n    return this.addEventListener(target, eventName, handler);\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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, OnDestroy} from '@angular/core';\n\n@Injectable()\nexport class SharedStylesHost {\n  /** @internal */\n  protected _stylesSet = new Set<string>();\n\n  addStyles(styles: string[]): void {\n    const additions = new Set<string>();\n    styles.forEach(style => {\n      if (!this._stylesSet.has(style)) {\n        this._stylesSet.add(style);\n        additions.add(style);\n      }\n    });\n    this.onStylesAdded(additions);\n  }\n\n  onStylesAdded(additions: Set<string>): void {}\n\n  getAllStyles(): string[] {\n    return Array.from(this._stylesSet);\n  }\n}\n\n@Injectable()\nexport class DomSharedStylesHost extends SharedStylesHost implements OnDestroy {\n  // Maps all registered host nodes to a list of style nodes that have been added to the host node.\n  private _hostNodes = new Map<Node, Node[]>();\n\n  constructor(@Inject(DOCUMENT) private _doc: any) {\n    super();\n    this._hostNodes.set(_doc.head, []);\n  }\n\n  private _addStylesToHost(styles: Set<string>, host: Node, styleNodes: Node[]): void {\n    styles.forEach((style: string) => {\n      const styleEl = this._doc.createElement('style');\n      styleEl.textContent = style;\n      styleNodes.push(host.appendChild(styleEl));\n    });\n  }\n\n  addHost(hostNode: Node): void {\n    const styleNodes: Node[] = [];\n    this._addStylesToHost(this._stylesSet, hostNode, styleNodes);\n    this._hostNodes.set(hostNode, styleNodes);\n  }\n\n  removeHost(hostNode: Node): void {\n    const styleNodes = this._hostNodes.get(hostNode);\n    if (styleNodes) {\n      styleNodes.forEach(removeStyle);\n    }\n    this._hostNodes.delete(hostNode);\n  }\n\n  override onStylesAdded(additions: Set<string>): void {\n    this._hostNodes.forEach((styleNodes, hostNode) => {\n      this._addStylesToHost(additions, hostNode, styleNodes);\n    });\n  }\n\n  ngOnDestroy(): void {\n    this._hostNodes.forEach(styleNodes => styleNodes.forEach(removeStyle));\n  }\n}\n\nfunction removeStyle(styleNode: Node): void {\n  getDOM().remove(styleNode);\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.io/license\n */\n\nimport {APP_ID, Inject, Injectable, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2, ViewEncapsulation} from '@angular/core';\n\nimport {EventManager} from './events/event_manager';\nimport {DomSharedStylesHost} 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};\n\nconst COMPONENT_REGEX = /%COMP%/g;\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\n\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\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 flattenStyles(\n    compId: string, styles: Array<any|any[]>, target: string[]): string[] {\n  for (let i = 0; i < styles.length; i++) {\n    let style = styles[i];\n\n    if (Array.isArray(style)) {\n      flattenStyles(compId, style, target);\n    } else {\n      style = style.replace(COMPONENT_REGEX, compId);\n      target.push(style);\n    }\n  }\n  return target;\n}\n\nfunction 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 the\n  // two differently. In the first case, the special '__ngUnwrap__' token is passed to the unwrap\n  // 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 debug_node\n    // can inspect the listener toString contents for the existence of this special token. Because\n    // the token is a string literal, it is ensured to not be modified by compiled code.\n    if (event === '__ngUnwrap__') {\n      return eventHandler;\n    }\n\n    const allowDefaultBehavior = eventHandler(event);\n    if (allowDefaultBehavior === false) {\n      // TODO(tbosch): move preventDefault into event plugins...\n      event.preventDefault();\n      event.returnValue = false;\n    }\n\n    return undefined;\n  };\n}\n\nlet hasLoggedNativeEncapsulationWarning = false;\n\n@Injectable()\nexport class DomRendererFactory2 implements RendererFactory2 {\n  private rendererByCompId = new Map<string, Renderer2>();\n  private defaultRenderer: Renderer2;\n\n  constructor(\n      private eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n      @Inject(APP_ID) private appId: string) {\n    this.defaultRenderer = new DefaultDomRenderer2(eventManager);\n  }\n\n  createRenderer(element: any, type: RendererType2|null): Renderer2 {\n    if (!element || !type) {\n      return this.defaultRenderer;\n    }\n    switch (type.encapsulation) {\n      case ViewEncapsulation.Emulated: {\n        let renderer = this.rendererByCompId.get(type.id);\n        if (!renderer) {\n          renderer = new EmulatedEncapsulationDomRenderer2(\n              this.eventManager, this.sharedStylesHost, type, this.appId);\n          this.rendererByCompId.set(type.id, renderer);\n        }\n        (<EmulatedEncapsulationDomRenderer2>renderer).applyToHost(element);\n        return renderer;\n      }\n      // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an enum\n      // value that is not known (but previously was the value for ViewEncapsulation.Native)\n      case 1:\n      case ViewEncapsulation.ShadowDom:\n        // TODO(FW-2290): remove the `case 1:` fallback logic and the warning in v12.\n        if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n            // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an\n            // enum value that is not known (but previously was the value for\n            // ViewEncapsulation.Native)\n            !hasLoggedNativeEncapsulationWarning && type.encapsulation === 1) {\n          hasLoggedNativeEncapsulationWarning = true;\n          console.warn(\n              'ViewEncapsulation.Native is no longer supported. Falling back to ViewEncapsulation.ShadowDom. The fallback will be removed in v12.');\n        }\n\n        return new ShadowDomRenderer(this.eventManager, this.sharedStylesHost, element, type);\n      default: {\n        if (!this.rendererByCompId.has(type.id)) {\n          const styles = flattenStyles(type.id, type.styles, []);\n          this.sharedStylesHost.addStyles(styles);\n          this.rendererByCompId.set(type.id, this.defaultRenderer);\n        }\n        return this.defaultRenderer;\n      }\n    }\n  }\n\n  begin() {}\n  end() {}\n}\n\nclass DefaultDomRenderer2 implements Renderer2 {\n  data: {[key: string]: any} = Object.create(null);\n\n  constructor(private eventManager: EventManager) {}\n\n  destroy(): void {}\n\n  destroyNode: null;\n\n  createElement(name: string, namespace?: string): any {\n    if (namespace) {\n      // In cases where Ivy (not ViewEngine) is giving us the actual namespace, the look up by key\n      // will result in undefined, so we just return the namespace here.\n      return document.createElementNS(NAMESPACE_URIS[namespace] || namespace, name);\n    }\n\n    return document.createElement(name);\n  }\n\n  createComment(value: string): any {\n    return document.createComment(value);\n  }\n\n  createText(value: string): any {\n    return document.createTextNode(value);\n  }\n\n  appendChild(parent: any, newChild: any): void {\n    parent.appendChild(newChild);\n  }\n\n  insertBefore(parent: any, newChild: any, refChild: any): void {\n    if (parent) {\n      parent.insertBefore(newChild, refChild);\n    }\n  }\n\n  removeChild(parent: any, oldChild: any): void {\n    if (parent) {\n      parent.removeChild(oldChild);\n    }\n  }\n\n  selectRootElement(selectorOrNode: string|any, preserveContent?: boolean): any {\n    let el: any = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) :\n                                                       selectorOrNode;\n    if (!el) {\n      throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\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      // TODO(FW-811): Ivy may cause issues here because it's passing around\n      // full URIs for namespaces, therefore this lookup will fail.\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      // TODO(FW-811): Ivy may cause issues here because it's passing around\n      // full URIs for namespaces, therefore this lookup will fail.\n      const namespaceUri = NAMESPACE_URIS[namespace];\n      if (namespaceUri) {\n        el.removeAttributeNS(namespaceUri, name);\n      } else {\n        // TODO(FW-811): Since ivy is passing around full URIs for namespaces\n        // this could result in properties like `http://www.w3.org/2000/svg:cx=\"123\"`,\n        // which is wrong.\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      el.style.removeProperty(style);\n    } else {\n      // IE requires '' instead of null\n      // see https://github.com/angular/angular/issues/7916\n      el.style[style] = '';\n    }\n  }\n\n  setProperty(el: any, name: string, value: any): void {\n    NG_DEV_MODE && checkNoSyntheticProp(name, 'property');\n    el[name] = value;\n  }\n\n  setValue(node: any, value: string): void {\n    node.nodeValue = value;\n  }\n\n  listen(target: 'window'|'document'|'body'|any, event: string, callback: (event: any) => boolean):\n      () => void {\n    NG_DEV_MODE && checkNoSyntheticProp(event, 'listener');\n    if (typeof target === 'string') {\n      return <() => void>this.eventManager.addGlobalEventListener(\n          target, event, decoratePreventDefault(callback));\n    }\n    return <() => void>this.eventManager.addEventListener(\n               target, event, decoratePreventDefault(callback)) as () => void;\n  }\n}\n\nconst AT_CHARCODE = (() => '@'.charCodeAt(0))();\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n  if (name.charCodeAt(0) === AT_CHARCODE) {\n    throw new Error(`Unexpected synthetic ${nameKind} ${name} found. Please make sure that:\n  - Either \\`BrowserAnimationsModule\\` or \\`NoopAnimationsModule\\` are imported in your application.\n  - There is corresponding configuration for the animation named \\`${\n        name}\\` defined in the \\`animations\\` field of the \\`@Component\\` decorator (see https://angular.io/api/core/Component#animations).`);\n  }\n}\n\nclass EmulatedEncapsulationDomRenderer2 extends DefaultDomRenderer2 {\n  private contentAttr: string;\n  private hostAttr: string;\n\n  constructor(\n      eventManager: EventManager, sharedStylesHost: DomSharedStylesHost,\n      private component: RendererType2, appId: string) {\n    super(eventManager);\n    const styles = flattenStyles(appId + '-' + component.id, component.styles, []);\n    sharedStylesHost.addStyles(styles);\n\n    this.contentAttr = shimContentAttribute(appId + '-' + component.id);\n    this.hostAttr = shimHostAttribute(appId + '-' + component.id);\n  }\n\n  applyToHost(element: any) {\n    super.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\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n  private shadowRoot: any;\n\n  constructor(\n      eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n      private hostEl: any, component: RendererType2) {\n    super(eventManager);\n    this.shadowRoot = (hostEl as any).attachShadow({mode: 'open'});\n    this.sharedStylesHost.addHost(this.shadowRoot);\n    const styles = flattenStyles(component.id, component.styles, []);\n    for (let i = 0; i < styles.length; i++) {\n      const styleEl = document.createElement('style');\n      styleEl.textContent = styles[i];\n      this.shadowRoot.appendChild(styleEl);\n    }\n  }\n\n  private nodeOrShadowRoot(node: any): any {\n    return node === this.hostEl ? this.shadowRoot : node;\n  }\n\n  override destroy() {\n    this.sharedStylesHost.removeHost(this.shadowRoot);\n  }\n\n  override appendChild(parent: any, newChild: any): void {\n    return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n  }\n  override insertBefore(parent: any, newChild: any, refChild: any): void {\n    return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n  }\n  override removeChild(parent: any, oldChild: any): void {\n    return super.removeChild(this.nodeOrShadowRoot(parent), oldChild);\n  }\n  override parentNode(node: any): any {\n    return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\nimport {EventManagerPlugin} from './event_manager';\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(element: HTMLElement, eventName: string, handler: Function): Function {\n    element.addEventListener(eventName, handler as EventListener, false);\n    return () => this.removeEventListener(element, eventName, handler as EventListener);\n  }\n\n  removeEventListener(target: any, eventName: string, callback: Function): void {\n    return target.removeEventListener(eventName, callback as EventListener);\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, InjectionToken, NgModule, Optional, Provider, ɵConsole as Console} from '@angular/core';\n\nimport {EVENT_MANAGER_PLUGINS, EventManagerPlugin} from './event_manager';\n\n\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 `HammerGestureConfig`\n *\n * @ngModule HammerModule\n * @publicApi\n */\nexport const HAMMER_GESTURE_CONFIG = new InjectionToken<HammerGestureConfig>('HammerGestureConfig');\n\n\n/**\n * Function that loads HammerJS, returning a promise that is resolved once HammerJs is loaded.\n *\n * @publicApi\n */\nexport type HammerLoader = () => Promise<void>;\n\n/**\n * Injection token used to provide a {@link HammerLoader} to Angular.\n *\n * @publicApi\n */\nexport const HAMMER_LOADER = new InjectionToken<HammerLoader>('HammerLoader');\n\nexport interface HammerInstance {\n  on(eventName: string, callback?: Function): void;\n  off(eventName: string, callback?: Function): void;\n  destroy?(): void;\n}\n\n/**\n * An injectable [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n * for gesture recognition. Configures specific event recognition.\n * @publicApi\n */\n@Injectable()\nexport class HammerGestureConfig {\n  /**\n   * A set of supported event names for gestures to be used in Angular.\n   * Angular supports all built-in recognizers, as listed in\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   */\n  events: string[] = [];\n\n  /**\n   * Maps gesture event names to a set of configuration options\n   * that specify overrides to the default values for specific properties.\n   *\n   * The key is a supported event name to be configured,\n   * and the options object contains a set of properties, with override values\n   * to be applied to the named recognizer event.\n   * For example, to disable recognition of the rotate event, specify\n   *  `{\"rotate\": {\"enable\": false}}`.\n   *\n   * Properties that are not present take the HammerJS default values.\n   * For information about which properties are supported for which events,\n   * and their allowed and default values, see\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   *\n   */\n  overrides: {[key: string]: Object} = {};\n\n  /**\n   * Properties whose default values can be overridden for a given event.\n   * Different sets of properties apply to different events.\n   * For information about which properties are supported for which events,\n   * and their allowed and default values, see\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   */\n  options?: {\n    cssProps?: any;\n    domEvents?: boolean;\n    enable?: boolean | ((manager: any) => boolean);\n    preset?: any[];\n    touchAction?: string;\n    recognizers?: any[];\n    inputClass?: any;\n    inputTarget?: EventTarget;\n  };\n\n  /**\n   * Creates a [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n   * and attaches it to a given HTML element.\n   * @param element The element that will recognize gestures.\n   * @returns A HammerJS event-manager object.\n   */\n  buildHammer(element: HTMLElement): HammerInstance {\n    const mc = new Hammer!(element, this.options);\n\n    mc.get('pinch').set({enable: true});\n    mc.get('rotate').set({enable: true});\n\n    for (const eventName in this.overrides) {\n      mc.get(eventName).set(this.overrides[eventName]);\n    }\n\n    return mc;\n  }\n}\n\n/**\n * Event plugin that adds Hammer support to an application.\n *\n * @ngModule HammerModule\n */\n@Injectable()\nexport class HammerGesturesPlugin extends EventManagerPlugin {\n  private _loaderPromise: Promise<void>|null = null;\n\n  constructor(\n      @Inject(DOCUMENT) doc: any,\n      @Inject(HAMMER_GESTURE_CONFIG) private _config: HammerGestureConfig, private console: Console,\n      @Optional() @Inject(HAMMER_LOADER) private loader?: HammerLoader|null) {\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        this.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      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 || 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      this._loaderPromise\n          .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                this.console.warn(\n                    `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 removal.\n              deregister = this.addEventListener(element, eventName, handler);\n            }\n          })\n          .catch(() => {\n            if (typeof ngDevMode === 'undefined' || ngDevMode) {\n              this.console.warn(\n                  `The \"${eventName}\" event cannot be bound because the custom ` +\n                  `Hammer.JS loader failed.`);\n            }\n            deregister = () => {};\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 * In Ivy, support for Hammer gestures is optional, so applications must\n * import the `HammerModule` at root to turn on support. This means that\n * Hammer-specific code can be tree-shaken away if not needed.\n */\nexport const HAMMER_PROVIDERS__POST_R3__ = [];\n\n/**\n * In View Engine, support for Hammer gestures is built-in by default.\n */\nexport const HAMMER_PROVIDERS__PRE_R3__: Provider[] = [\n  {\n    provide: EVENT_MANAGER_PLUGINS,\n    useClass: HammerGesturesPlugin,\n    multi: true,\n    deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, Console, [new Optional(), HAMMER_LOADER]]\n  },\n  {provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: []},\n];\n\nexport const HAMMER_PROVIDERS = HAMMER_PROVIDERS__PRE_R3__;\n\n/**\n * Adds support for HammerJS.\n *\n * Import this module at the root of your application so that Angular can work with\n * HammerJS to detect gesture events.\n *\n * Note that applications still need to include the HammerJS script itself. This module\n * simply sets up the coordination layer between HammerJS and Angular's EventManager.\n *\n * @publicApi\n */\n@NgModule({providers: HAMMER_PROVIDERS__PRE_R3__})\nexport class HammerModule {\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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Defines supported modifiers for key events.\n */\nconst MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\n\nconst DOM_KEY_LOCATION_NUMPAD = 3;\n\n// Map to convert some key or keyIdentifier values to what will be returned by getEventKey\nconst _keyMap: {[k: string]: string} = {\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/\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// There is a bug in Chrome for numeric keypad keys:\n// https://code.google.com/p/chromium/issues/detail?id=155654\n// 1, 2, 3 ... are reported as A, B, C ...\nconst _chromeNumKeyPadMap = {\n  'A': '1',\n  'B': '2',\n  'C': '3',\n  'D': '4',\n  'E': '5',\n  'F': '6',\n  'G': '7',\n  'H': '8',\n  'I': '9',\n  'J': '*',\n  'K': '+',\n  'M': '-',\n  'N': '.',\n  'O': '/',\n  '\\x60': '0',\n  '\\x90': 'NumLock'\n};\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 * @publicApi\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(element: HTMLElement, eventName: string, handler: Function): Function {\n    const parsedEvent = KeyEventsPlugin.parseEventName(eventName)!;\n\n    const outsideHandler =\n        KeyEventsPlugin.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());\n\n    return this.manager.getZone().runOutsideAngular(() => {\n      return getDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);\n    });\n  }\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    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  static getEventFullKey(event: KeyboardEvent): string {\n    let fullKey = '';\n    let key = getEventKey(event);\n    key = key.toLowerCase();\n    if (key === ' ') {\n      key = 'space';  // for readability\n    } else if (key === '.') {\n      key = 'dot';  // because '.' is used as a separator in event names\n    }\n    MODIFIER_KEYS.forEach(modifierName => {\n      if (modifierName != key) {\n        const modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n        if (modifierGetter(event)) {\n          fullKey += modifierName + '.';\n        }\n      }\n    });\n    fullKey += key;\n    return fullKey;\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: any, handler: Function, zone: NgZone): Function {\n    return (event: any /** TODO #9100 */) => {\n      if (KeyEventsPlugin.getEventFullKey(event) === fullKey) {\n        zone.runGuarded(() => handler(event));\n      }\n    };\n  }\n\n  /** @internal */\n  static _normalizeKey(keyName: string): string {\n    // TODO: switch to a Map if the mapping grows too much\n    switch (keyName) {\n      case 'esc':\n        return 'escape';\n      default:\n        return keyName;\n    }\n  }\n}\n\nfunction getEventKey(event: any): string {\n  let key = event.key;\n  if (key == null) {\n    key = event.keyIdentifier;\n    // keyIdentifier is defined in the old draft of DOM Level 3 Events implemented by Chrome and\n    // Safari cf\n    // https://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/events.html#Events-KeyboardEvents-Interfaces\n    if (key == null) {\n      return 'Unidentified';\n    }\n    if (key.startsWith('U+')) {\n      key = String.fromCharCode(parseInt(key.substring(2), 16));\n      if (event.location === DOM_KEY_LOCATION_NUMPAD && _chromeNumKeyPadMap.hasOwnProperty(key)) {\n        // There is a bug in Chrome for numeric keypad keys:\n        // https://code.google.com/p/chromium/issues/detail?id=155654\n        // 1, 2, 3 ... are reported as A, B, C ...\n        key = (_chromeNumKeyPadMap as any)[key];\n      }\n    }\n  }\n\n  return _keyMap[key] || key;\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {forwardRef, Inject, Injectable, Injector, Sanitizer, SecurityContext, ɵ_sanitizeHtml as _sanitizeHtml, ɵ_sanitizeUrl as _sanitizeUrl, ɵallowSanitizationBypassAndThrow as allowSanitizationBypassOrThrow, ɵbypassSanitizationTrustHtml as bypassSanitizationTrustHtml, ɵbypassSanitizationTrustResourceUrl as bypassSanitizationTrustResourceUrl, ɵbypassSanitizationTrustScript as bypassSanitizationTrustScript, ɵbypassSanitizationTrustStyle as bypassSanitizationTrustStyle, ɵbypassSanitizationTrustUrl as bypassSanitizationTrustUrl, ɵBypassType as BypassType, ɵgetSanitizationBypassType as getSanitizationBypassType, ɵunwrapSafeValue as unwrapSafeValue} from '@angular/core';\n\nexport {SecurityContext};\n\n\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   * Sanitizes a value for use in the given SecurityContext.\n   *\n   * If value is trusted for the context, this method will unwrap the contained safe value and use\n   * it directly. Otherwise, value will be sanitized to be safe in the given context, for example\n   * by replacing URLs that have an unsafe protocol part (such as `javascript:`). The implementation\n   * is responsible to make sure that the value can definitely be safely used in the given context.\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\nexport function domSanitizerImplFactory(injector: Injector) {\n  return new DomSanitizerImpl(injector.get(DOCUMENT));\n}\n\n@Injectable({providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [Injector]})\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 Error('unsafe value used in a script context');\n      case SecurityContext.URL:\n        const type = getSanitizationBypassType(value);\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 Error(\n            'unsafe value used in a resource URL context (see https://g.co/ng/security#xss)');\n      default:\n        throw new Error(`Unexpected SecurityContext ${ctx} (see https://g.co/ng/security#xss)`);\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.io/license\n */\n\nimport {CommonModule, DOCUMENT, XhrFactory, ɵPLATFORM_BROWSER_ID as PLATFORM_BROWSER_ID} from '@angular/common';\nimport {APP_ID, ApplicationModule, createPlatformFactory, ErrorHandler, Inject, ModuleWithProviders, NgModule, NgZone, Optional, PLATFORM_ID, PLATFORM_INITIALIZER, platformCore, PlatformRef, RendererFactory2, Sanitizer, SkipSelf, StaticProvider, Testability, ɵINJECTOR_SCOPE as INJECTOR_SCOPE, ɵsetDocument} from '@angular/core';\n\nimport {BrowserDomAdapter} from './browser/browser_adapter';\nimport {SERVER_TRANSITION_PROVIDERS, TRANSITION_ID} from './browser/server-transition';\nimport {BrowserGetTestability} from './browser/testability';\nimport {BrowserXhr} from './browser/xhr';\nimport {ELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nimport {DomRendererFactory2} from './dom/dom_renderer';\nimport {DomEventsPlugin} from './dom/events/dom_events';\nimport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nimport {HAMMER_PROVIDERS} from './dom/events/hammer_gestures';\nimport {KeyEventsPlugin} from './dom/events/key_events';\nimport {DomSharedStylesHost, SharedStylesHost} from './dom/shared_styles_host';\nimport {DomSanitizer, DomSanitizerImpl} from './security/dom_sanitization_service';\n\nexport function initDomAdapter() {\n  BrowserDomAdapter.makeCurrent();\n  BrowserGetTestability.init();\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\nexport const 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, deps: []},\n];\n\nconst BROWSER_SANITIZATION_PROVIDERS__PRE_R3__: StaticProvider[] = [\n  {provide: Sanitizer, useExisting: DomSanitizer},\n  {provide: DomSanitizer, useClass: DomSanitizerImpl, deps: [DOCUMENT]},\n];\n\nexport const BROWSER_SANITIZATION_PROVIDERS__POST_R3__ = [];\n\n/**\n * @security Replacing built-in sanitization providers exposes the application to XSS risks.\n * Attacker-controlled data introduced by an unsanitized provider could expose your\n * application to XSS risks. For more detail, see the [Security Guide](https://g.co/ng/security).\n * @publicApi\n */\nexport const BROWSER_SANITIZATION_PROVIDERS = BROWSER_SANITIZATION_PROVIDERS__PRE_R3__;\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\nexport const BROWSER_MODULE_PROVIDERS: StaticProvider[] = [\n  BROWSER_SANITIZATION_PROVIDERS,\n  {provide: INJECTOR_SCOPE, useValue: 'root'},\n  {provide: ErrorHandler, useFactory: errorHandler, deps: []},\n  {\n    provide: EVENT_MANAGER_PLUGINS,\n    useClass: DomEventsPlugin,\n    multi: true,\n    deps: [DOCUMENT, NgZone, PLATFORM_ID]\n  },\n  {provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true, deps: [DOCUMENT]},\n  HAMMER_PROVIDERS,\n  {\n    provide: DomRendererFactory2,\n    useClass: DomRendererFactory2,\n    deps: [EventManager, DomSharedStylesHost, APP_ID]\n  },\n  {provide: RendererFactory2, useExisting: DomRendererFactory2},\n  {provide: SharedStylesHost, useExisting: DomSharedStylesHost},\n  {provide: DomSharedStylesHost, useClass: DomSharedStylesHost, deps: [DOCUMENT]},\n  {provide: Testability, useClass: Testability, deps: [NgZone]},\n  {provide: EventManager, useClass: EventManager, deps: [EVENT_MANAGER_PLUGINS, NgZone]},\n  {provide: XhrFactory, useClass: BrowserXhr, deps: []},\n  ELEMENT_PROBE_PROVIDERS,\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({providers: BROWSER_MODULE_PROVIDERS, exports: [CommonModule, ApplicationModule]})\nexport class BrowserModule {\n  constructor(@Optional() @SkipSelf() @Inject(BrowserModule) parentModule: BrowserModule|null) {\n    if (parentModule) {\n      throw new Error(\n          `BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.`);\n    }\n  }\n\n  /**\n   * Configures a browser-based app to transition from a server-rendered app, if\n   * one is present on the page.\n   *\n   * @param params An object containing an identifier for the app to transition.\n   * The ID must match between the client and server versions of the app.\n   * @returns The reconfigured `BrowserModule` to import into the app's root `AppModule`.\n   */\n  static withServerTransition(params: {appId: string}): ModuleWithProviders<BrowserModule> {\n    return {\n      ngModule: BrowserModule,\n      providers: [\n        {provide: APP_ID, useValue: params.appId},\n        {provide: TRANSITION_ID, useExisting: APP_ID},\n        SERVER_TRANSITION_PROVIDERS,\n      ],\n    };\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.io/license\n */\n\nimport {DOCUMENT, ɵDomAdapter as DomAdapter, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, ɵɵinject} 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 `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 * Factory to create a `Meta` service instance for the current DOM document.\n */\nexport function createMeta() {\n  return new Meta(ɵɵinject(DOCUMENT));\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', useFactory: createMeta, deps: []})\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(meta: MetaDefinition, 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(\n        (prop: string) => el.setAttribute(this._getMetaKeyMap(prop), tag[prop]));\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  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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, ɵɵinject} from '@angular/core';\n\n\n/**\n * Factory to create Title service.\n */\nexport function createTitle() {\n  return new Title(ɵɵinject(DOCUMENT));\n}\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', useFactory: createTitle, deps: []})\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.io/license\n */\n\nconst win = typeof window !== 'undefined' && window || <any>{};\nexport {win as window};\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.io/license\n */\n\nimport {ApplicationRef, ComponentRef} from '@angular/core';\nimport {window} from './browser';\n\nexport class ChangeDetectionPerfRecord {\n  constructor(public msPerTick: number, public numTicks: number) {}\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   * ```\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    const isProfilerAvailable = window.console.profile != null;\n    if (record && isProfilerAvailable) {\n      window.console.profile(profileName);\n    }\n    const start = performanceNow();\n    let numTicks = 0;\n    while (numTicks < 5 || (performanceNow() - start) < 500) {\n      this.appRef.tick();\n      numTicks++;\n    }\n    const end = performanceNow();\n    if (record && isProfilerAvailable) {\n      window.console.profileEnd(profileName);\n    }\n    const msPerTick = (end - start) / numTicks;\n    window.console.log(`ran ${numTicks} change detection cycles`);\n    window.console.log(`${msPerTick.toFixed(2)} ms per check`);\n\n    return new ChangeDetectionPerfRecord(msPerTick, numTicks);\n  }\n}\n\nfunction performanceNow() {\n  return window.performance && window.performance.now ? window.performance.now() :\n                                                        new Date().getTime();\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.io/license\n */\n\nimport {ComponentRef} from '@angular/core';\nimport {exportNgVar} from '../../dom/util';\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {APP_ID, Injectable, NgModule} from '@angular/core';\n\nexport function escapeHtml(text: string): string {\n  const escapedText: {[k: string]: string} = {\n    '&': '&a;',\n    '\"': '&q;',\n    '\\'': '&s;',\n    '<': '&l;',\n    '>': '&g;',\n  };\n  return text.replace(/[&\"'<>]/g, s => escapedText[s]);\n}\n\nexport function unescapeHtml(text: string): string {\n  const unescapedText: {[k: string]: string} = {\n    '&a;': '&',\n    '&q;': '\"',\n    '&s;': '\\'',\n    '&l;': '<',\n    '&g;': '>',\n  };\n  return text.replace(/&[^;]+;/g, s => unescapedText[s]);\n}\n\n/**\n * A type-safe key to use with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport type StateKey<T> = string&{__not_a_string: never};\n\n/**\n * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport function makeStateKey<T = void>(key: string): StateKey<T> {\n  return key as StateKey<T>;\n}\n\n/**\n * A key value store that is transferred from the application on the server side to the application\n * on the client side.\n *\n * `TransferState` will be available as an injectable token. To use it import\n * `ServerTransferStateModule` on the server and `BrowserTransferStateModule` on the client.\n *\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\n * boolean, number, string, null and non-class objects will be serialized and deserialized in a\n * non-lossy manner.\n *\n * @publicApi\n */\n@Injectable()\nexport class TransferState {\n  private store: {[k: string]: {}|undefined} = {};\n  private onSerializeCallbacks: {[k: string]: () => {} | undefined} = {};\n\n  /** @internal */\n  static init(initState: {}) {\n    const transferState = new TransferState();\n    transferState.store = initState;\n    return transferState;\n  }\n\n  /**\n   * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n   */\n  get<T>(key: StateKey<T>, defaultValue: T): T {\n    return this.store[key] !== undefined ? this.store[key] as T : defaultValue;\n  }\n\n  /**\n   * Set the value corresponding to a key.\n   */\n  set<T>(key: StateKey<T>, value: T): void {\n    this.store[key] = value;\n  }\n\n  /**\n   * Remove a key from the store.\n   */\n  remove<T>(key: StateKey<T>): void {\n    delete this.store[key];\n  }\n\n  /**\n   * Test whether a key exists in the store.\n   */\n  hasKey<T>(key: StateKey<T>) {\n    return this.store.hasOwnProperty(key);\n  }\n\n  /**\n   * Register a callback to provide the value for a key when `toJson` is called.\n   */\n  onSerialize<T>(key: StateKey<T>, callback: () => T): void {\n    this.onSerializeCallbacks[key] = callback;\n  }\n\n  /**\n   * Serialize the current state of the store to JSON.\n   */\n  toJson(): string {\n    // Call the onSerialize callbacks and put those values into the store.\n    for (const key in this.onSerializeCallbacks) {\n      if (this.onSerializeCallbacks.hasOwnProperty(key)) {\n        try {\n          this.store[key] = this.onSerializeCallbacks[key]();\n        } catch (e) {\n          console.warn('Exception in onSerialize callback: ', e);\n        }\n      }\n    }\n    return JSON.stringify(this.store);\n  }\n}\n\nexport function initTransferState(doc: Document, appId: string) {\n  // Locate the script tag with the JSON data transferred from the server.\n  // The id of the script tag is set to the Angular appId + 'state'.\n  const script = doc.getElementById(appId + '-state');\n  let initialState = {};\n  if (script && script.textContent) {\n    try {\n      // Avoid using any here as it triggers lint errors in google3 (any is not allowed).\n      initialState = JSON.parse(unescapeHtml(script.textContent)) as {};\n    } catch (e) {\n      console.warn('Exception while restoring TransferState for app ' + appId, e);\n    }\n  }\n  return TransferState.init(initialState);\n}\n\n/**\n * NgModule to install on the client side while using the `TransferState` to transfer state from\n * server to client.\n *\n * @publicApi\n */\n@NgModule({\n  providers: [{provide: TransferState, useFactory: initTransferState, deps: [DOCUMENT, APP_ID]}],\n})\nexport class BrowserTransferStateModule {\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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {DebugElement, DebugNode, Predicate, Type} from '@angular/core';\n\n\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.matches && n.matches(selector) ||\n        n.msMatchesSelector && n.msMatchesSelector(selector) ||\n        n.webkitMatchesSelector && n.webkitMatchesSelector(selector);\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.io/license\n */\n\nexport {ɵgetDOM} from '@angular/common';\nexport {BROWSER_SANITIZATION_PROVIDERS as ɵBROWSER_SANITIZATION_PROVIDERS, BROWSER_SANITIZATION_PROVIDERS__POST_R3__ as ɵBROWSER_SANITIZATION_PROVIDERS__POST_R3__, initDomAdapter as ɵinitDomAdapter, INTERNAL_BROWSER_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS} from './browser';\nexport {BrowserDomAdapter as ɵBrowserDomAdapter} from './browser/browser_adapter';\nexport {TRANSITION_ID as ɵTRANSITION_ID} from './browser/server-transition';\nexport {BrowserGetTestability as ɵBrowserGetTestability} from './browser/testability';\nexport {escapeHtml as ɵescapeHtml} from './browser/transfer_state';\nexport {ELEMENT_PROBE_PROVIDERS as ɵELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nexport {DomRendererFactory2 as ɵDomRendererFactory2, flattenStyles as ɵflattenStyles, NAMESPACE_URIS as ɵNAMESPACE_URIS, shimContentAttribute as ɵshimContentAttribute, shimHostAttribute as ɵshimHostAttribute} from './dom/dom_renderer';\nexport {DomEventsPlugin as ɵDomEventsPlugin} from './dom/events/dom_events';\nexport {HammerGesturesPlugin as ɵHammerGesturesPlugin} from './dom/events/hammer_gestures';\nexport {KeyEventsPlugin as ɵKeyEventsPlugin} from './dom/events/key_events';\nexport {DomSharedStylesHost as ɵDomSharedStylesHost, SharedStylesHost as ɵSharedStylesHost} from './dom/shared_styles_host';\nexport {DomSanitizerImpl as ɵDomSanitizerImpl} from './security/dom_sanitization_service';\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.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the platform-browser package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('12.2.13');\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.io/license\n */\n\nexport {BrowserModule, platformBrowser} from './browser';\nexport {Meta, MetaDefinition} from './browser/meta';\nexport {Title} from './browser/title';\nexport {disableDebugTools, enableDebugTools} from './browser/tools/tools';\nexport {BrowserTransferStateModule, makeStateKey, StateKey, TransferState} from './browser/transfer_state';\nexport {By} from './dom/debug/by';\nexport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nexport {HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HAMMER_PROVIDERS__POST_R3__ as ɵHAMMER_PROVIDERS__POST_R3__, HammerGestureConfig, HammerLoader, HammerModule} from './dom/events/hammer_gestures';\nexport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl, SafeValue} from './security/dom_sanitization_service';\n\nexport * from './private_export';\nexport {VERSION} from './version';\n// This must be exported so it doesn't get tree-shaken away prematurely\nexport {ELEMENT_PROBE_PROVIDERS__POST_R3__ as ɵELEMENT_PROBE_PROVIDERS__POST_R3__} from './dom/debug/ng_probe';\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.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport * from './src/platform-browser';\n// This file only reexports content of the `src` folder. Keep it that way.\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.io/license\n */\n\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {BROWSER_MODULE_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_c,_document as ɵangular_packages_platform_browser_platform_browser_b,errorHandler as ɵangular_packages_platform_browser_platform_browser_a} from './src/browser';\nexport {GenericBrowserDomAdapter as ɵangular_packages_platform_browser_platform_browser_p} from './src/browser/generic_browser_adapter';\nexport {createMeta as ɵangular_packages_platform_browser_platform_browser_d} from './src/browser/meta';\nexport {SERVER_TRANSITION_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_l,appInitializerFactory as ɵangular_packages_platform_browser_platform_browser_k} from './src/browser/server-transition';\nexport {createTitle as ɵangular_packages_platform_browser_platform_browser_e} from './src/browser/title';\nexport {initTransferState as ɵangular_packages_platform_browser_platform_browser_f} from './src/browser/transfer_state';\nexport {BrowserXhr as ɵangular_packages_platform_browser_platform_browser_o} from './src/browser/xhr';\nexport {ELEMENT_PROBE_PROVIDERS__PRE_R3__ as ɵangular_packages_platform_browser_platform_browser_n,_createNgProbeR2 as ɵangular_packages_platform_browser_platform_browser_m} from './src/dom/debug/ng_probe';\nexport {EventManagerPlugin as ɵangular_packages_platform_browser_platform_browser_g} from './src/dom/events/event_manager';\nexport {HAMMER_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_i,HAMMER_PROVIDERS__PRE_R3__ as ɵangular_packages_platform_browser_platform_browser_h} from './src/dom/events/hammer_gestures';\nexport {domSanitizerImplFactory as ɵangular_packages_platform_browser_platform_browser_j} from './src/security/dom_sanitization_service';"]}
+{"version":3,"file":"platform-browser.js","sources":["../../../../../../packages/platform-browser/src/browser/generic_browser_adapter.ts","../../../../../../packages/platform-browser/src/browser/browser_adapter.ts","../../../../../../packages/platform-browser/src/browser/server-transition.ts","../../../../../../packages/platform-browser/src/browser/testability.ts","../../../../../../packages/platform-browser/src/browser/xhr.ts","../../../../../../packages/platform-browser/src/dom/util.ts","../../../../../../packages/platform-browser/src/dom/debug/ng_probe.ts","../../../../../../packages/platform-browser/src/dom/events/event_manager.ts","../../../../../../packages/platform-browser/src/dom/shared_styles_host.ts","../../../../../../packages/platform-browser/src/dom/dom_renderer.ts","../../../../../../packages/platform-browser/src/dom/events/dom_events.ts","../../../../../../packages/platform-browser/src/dom/events/hammer_gestures.ts","../../../../../../packages/platform-browser/src/dom/events/key_events.ts","../../../../../../packages/platform-browser/src/security/dom_sanitization_service.ts","../../../../../../packages/platform-browser/src/browser.ts","../../../../../../packages/platform-browser/src/browser/meta.ts","../../../../../../packages/platform-browser/src/browser/title.ts","../../../../../../packages/platform-browser/src/browser/tools/browser.ts","../../../../../../packages/platform-browser/src/browser/tools/common_tools.ts","../../../../../../packages/platform-browser/src/browser/tools/tools.ts","../../../../../../packages/platform-browser/src/browser/transfer_state.ts","../../../../../../packages/platform-browser/src/dom/debug/by.ts","../../../../../../packages/platform-browser/src/private_export.ts","../../../../../../packages/platform-browser/src/version.ts","../../../../../../packages/platform-browser/src/platform-browser.ts","../../../../../../packages/platform-browser/public_api.ts","../../../../../../packages/platform-browser/index.ts","../../../../../../packages/platform-browser/platform-browser.ts"],"names":["DomAdapter","setRootDomAdapter","parseCookieValue","getDOM","global","Console","allowSanitizationBypassOrThrow","unwrapSafeValue","_sanitizeHtml","getSanitizationBypassType","_sanitizeUrl","bypassSanitizationTrustHtml","bypassSanitizationTrustStyle","bypassSanitizationTrustScript","bypassSanitizationTrustUrl","bypassSanitizationTrustResourceUrl","PLATFORM_BROWSER_ID","INJECTOR_SCOPE","window"],"mappings":"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","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.io/license\n */\n\nimport {ɵDomAdapter as DomAdapter} from '@angular/common';\n\n\n\n/**\n * Provides DOM operations in any browser environment.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class GenericBrowserDomAdapter extends DomAdapter {\n  readonly supportsDOMEvents: boolean = true;\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.io/license\n */\n\nimport {ɵparseCookieValue as parseCookieValue, ɵsetRootDomAdapter as setRootDomAdapter} from '@angular/common';\n\nimport {GenericBrowserDomAdapter} from './generic_browser_adapter';\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 */\n/* tslint:disable:requireParameterType no-console */\nexport class BrowserDomAdapter extends GenericBrowserDomAdapter {\n  static makeCurrent() {\n    setRootDomAdapter(new BrowserDomAdapter());\n  }\n\n  onAndCancel(el: Node, evt: any, listener: any): Function {\n    el.addEventListener(evt, listener, false);\n    // Needed to follow Dart's subscription semantic, until fix of\n    // https://code.google.com/p/dart/issues/detail?id=17406\n    return () => {\n      el.removeEventListener(evt, listener, false);\n    };\n  }\n  dispatchEvent(el: Node, evt: any) {\n    el.dispatchEvent(evt);\n  }\n  remove(node: Node): void {\n    if (node.parentNode) {\n      node.parentNode.removeChild(node);\n    }\n  }\n  createElement(tagName: string, doc?: Document): HTMLElement {\n    doc = doc || this.getDefaultDocument();\n    return doc.createElement(tagName);\n  }\n  createHtmlDocument(): HTMLDocument {\n    return document.implementation.createHTMLDocument('fakeTitle');\n  }\n  getDefaultDocument(): Document {\n    return document;\n  }\n\n  isElementNode(node: Node): boolean {\n    return node.nodeType === Node.ELEMENT_NODE;\n  }\n\n  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  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  getBaseHref(doc: Document): string|null {\n    const href = getBaseElementHref();\n    return href == null ? null : relativePath(href);\n  }\n  resetBaseElement(): void {\n    baseElement = null;\n  }\n  getUserAgent(): string {\n    return window.navigator.userAgent;\n  }\n  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.querySelector('base');\n  return baseElement ? baseElement.getAttribute('href') : null;\n}\n\n// based on urlUtils.js in AngularJS 1\nlet urlParsingNode: HTMLAnchorElement|undefined;\nfunction relativePath(url: any): string {\n  urlParsingNode = urlParsingNode || document.createElement('a');\n  urlParsingNode.setAttribute('href', url);\n  const pathName = urlParsingNode.pathname;\n  return pathName.charAt(0) === '/' ? pathName : `/${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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {APP_INITIALIZER, ApplicationInitStatus, InjectionToken, Injector, StaticProvider} from '@angular/core';\n\n/**\n * An id that identifies a particular application being bootstrapped, that should\n * match across the client/server boundary.\n */\nexport const TRANSITION_ID = new InjectionToken('TRANSITION_ID');\n\nexport function appInitializerFactory(transitionId: string, document: any, injector: Injector) {\n  return () => {\n    // Wait for all application initializers to be completed before removing the styles set by\n    // the server.\n    injector.get(ApplicationInitStatus).donePromise.then(() => {\n      const dom = getDOM();\n      const styles: HTMLCollectionOf<HTMLStyleElement> =\n          document.querySelectorAll(`style[ng-transition=\"${transitionId}\"]`);\n      for (let i = 0; i < styles.length; i++) {\n        dom.remove(styles[i]);\n      }\n    });\n  };\n}\n\nexport const SERVER_TRANSITION_PROVIDERS: StaticProvider[] = [\n  {\n    provide: APP_INITIALIZER,\n    useFactory: appInitializerFactory,\n    deps: [TRANSITION_ID, DOCUMENT, Injector],\n    multi: 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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {GetTestability, setTestabilityGetter, Testability, TestabilityRegistry, ɵglobal as global} from '@angular/core';\n\nexport class BrowserGetTestability implements GetTestability {\n  static init() {\n    setTestabilityGetter(new BrowserGetTestability());\n  }\n\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 Error('Could not find testability for element.');\n      }\n      return testability;\n    };\n\n    global['getAllAngularTestabilities'] = () => registry.getAllTestabilities();\n\n    global['getAllAngularRootElements'] = () => registry.getAllRootElements();\n\n    const whenAllStable = (callback: any /** TODO #9100 */) => {\n      const testabilities = global['getAllAngularTestabilities']();\n      let count = testabilities.length;\n      let didWork = false;\n      const decrement = function(didWork_: any /** TODO #9100 */) {\n        didWork = didWork || didWork_;\n        count--;\n        if (count == 0) {\n          callback(didWork);\n        }\n      };\n      testabilities.forEach(function(testability: any /** TODO #9100 */) {\n        testability.whenStable(decrement);\n      });\n    };\n\n    if (!global['frameworkStabilizers']) {\n      global['frameworkStabilizers'] = [];\n    }\n    global['frameworkStabilizers'].push(whenAllStable);\n  }\n\n  findTestabilityInTree(registry: TestabilityRegistry, elem: any, 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.io/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.io/license\n */\n\nimport {ɵglobal as global} from '@angular/core';\n\nconst CAMEL_CASE_REGEXP = /([A-Z])/g;\nconst DASH_CASE_REGEXP = /-([a-z])/g;\n\n\nexport function camelCaseToDashCase(input: string): string {\n  return input.replace(CAMEL_CASE_REGEXP, (...m: string[]) => '-' + m[1].toLowerCase());\n}\n\nexport function dashCaseToCamelCase(input: string): string {\n  return input.replace(DASH_CASE_REGEXP, (...m: string[]) => m[1].toUpperCase());\n}\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.io/license\n */\n\nimport {APP_INITIALIZER, ApplicationRef, DebugNode, NgProbeToken, NgZone, Optional, Provider, ɵgetDebugNodeR2} from '@angular/core';\n\nimport {exportNgVar} from '../util';\n\nconst CORE_TOKENS = (() => ({\n                       'ApplicationRef': ApplicationRef,\n                       'NgZone': NgZone,\n                     }))();\n\nconst INSPECT_GLOBAL_NAME = 'probe';\nconst CORE_TOKENS_GLOBAL_NAME = 'coreTokens';\n\n/**\n * Returns a {@link DebugElement} for the given native DOM element, or\n * null if the given native element does not have an Angular view associated\n * with it.\n */\nexport function inspectNativeElementR2(element: any): DebugNode|null {\n  return ɵgetDebugNodeR2(element);\n}\n\nexport function _createNgProbeR2(coreTokens: NgProbeToken[]): any {\n  exportNgVar(INSPECT_GLOBAL_NAME, inspectNativeElementR2);\n  exportNgVar(CORE_TOKENS_GLOBAL_NAME, {...CORE_TOKENS, ..._ngProbeTokensToMap(coreTokens || [])});\n  return () => inspectNativeElementR2;\n}\n\nfunction _ngProbeTokensToMap(tokens: NgProbeToken[]): {[name: string]: any} {\n  return tokens.reduce((prev: any, t: any) => (prev[t.name] = t.token, prev), {});\n}\n\n/**\n * In Ivy, we don't support NgProbe because we have our own set of testing utilities\n * with more robust functionality.\n *\n * We shouldn't bring in NgProbe because it prevents DebugNode and friends from\n * tree-shaking properly.\n */\nexport const ELEMENT_PROBE_PROVIDERS__POST_R3__ = [];\n\n/**\n * Providers which support debugging Angular applications (e.g. via `ng.probe`).\n */\nexport const ELEMENT_PROBE_PROVIDERS__PRE_R3__: Provider[] = [\n  {\n    provide: APP_INITIALIZER,\n    useFactory: _createNgProbeR2,\n    deps: [\n      [NgProbeToken, new Optional()],\n    ],\n    multi: true,\n  },\n];\n\nexport const ELEMENT_PROBE_PROVIDERS = ELEMENT_PROBE_PROVIDERS__PRE_R3__;\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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, InjectionToken, NgZone} from '@angular/core';\n\n/**\n * The injection token for the event-manager plug-in service.\n *\n * @publicApi\n */\nexport const EVENT_MANAGER_PLUGINS =\n    new InjectionToken<EventManagerPlugin[]>('EventManagerPlugins');\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(@Inject(EVENT_MANAGER_PLUGINS) plugins: EventManagerPlugin[], private _zone: NgZone) {\n    plugins.forEach(p => p.manager = this);\n    this._plugins = plugins.slice().reverse();\n  }\n\n  /**\n   * Registers a handler for a specific element and event.\n   *\n   * @param element The HTML element to receive event notifications.\n   * @param eventName The name of the event to listen for.\n   * @param handler A function to call when the notification occurs. Receives the\n   * event object as an argument.\n   * @returns  A callback function that can be used to remove the handler.\n   */\n  addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n    const plugin = this._findPluginFor(eventName);\n    return plugin.addEventListener(element, eventName, handler);\n  }\n\n  /**\n   * Registers a global handler for an event in a target view.\n   *\n   * @param target A target for global event notifications. One of \"window\", \"document\", or \"body\".\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   * @returns A callback function that can be used to remove the handler.\n   * @deprecated No longer being used in Ivy code. To be removed in version 14.\n   */\n  addGlobalEventListener(target: string, eventName: string, handler: Function): Function {\n    const plugin = this._findPluginFor(eventName);\n    return plugin.addGlobalEventListener(target, eventName, handler);\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    const plugin = this._eventNameToPlugin.get(eventName);\n    if (plugin) {\n      return plugin;\n    }\n\n    const plugins = this._plugins;\n    for (let i = 0; i < plugins.length; i++) {\n      const plugin = plugins[i];\n      if (plugin.supports(eventName)) {\n        this._eventNameToPlugin.set(eventName, plugin);\n        return plugin;\n      }\n    }\n    throw new Error(`No event manager plugin found for event ${eventName}`);\n  }\n}\n\nexport abstract class EventManagerPlugin {\n  constructor(private _doc: any) {}\n\n  // TODO(issue/24571): remove '!'.\n  manager!: EventManager;\n\n  abstract supports(eventName: string): boolean;\n\n  abstract addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\n\n  addGlobalEventListener(element: string, eventName: string, handler: Function): Function {\n    const target: HTMLElement = getDOM().getGlobalEventTarget(this._doc, element);\n    if (!target) {\n      throw new Error(`Unsupported event target ${target} for event ${eventName}`);\n    }\n    return this.addEventListener(target, eventName, handler);\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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, OnDestroy} from '@angular/core';\n\n@Injectable()\nexport class SharedStylesHost {\n  /** @internal */\n  protected _stylesSet = new Set<string>();\n\n  addStyles(styles: string[]): void {\n    const additions = new Set<string>();\n    styles.forEach(style => {\n      if (!this._stylesSet.has(style)) {\n        this._stylesSet.add(style);\n        additions.add(style);\n      }\n    });\n    this.onStylesAdded(additions);\n  }\n\n  onStylesAdded(additions: Set<string>): void {}\n\n  getAllStyles(): string[] {\n    return Array.from(this._stylesSet);\n  }\n}\n\n@Injectable()\nexport class DomSharedStylesHost extends SharedStylesHost implements OnDestroy {\n  // Maps all registered host nodes to a list of style nodes that have been added to the host node.\n  private _hostNodes = new Map<Node, Node[]>();\n\n  constructor(@Inject(DOCUMENT) private _doc: any) {\n    super();\n    this._hostNodes.set(_doc.head, []);\n  }\n\n  private _addStylesToHost(styles: Set<string>, host: Node, styleNodes: Node[]): void {\n    styles.forEach((style: string) => {\n      const styleEl = this._doc.createElement('style');\n      styleEl.textContent = style;\n      styleNodes.push(host.appendChild(styleEl));\n    });\n  }\n\n  addHost(hostNode: Node): void {\n    const styleNodes: Node[] = [];\n    this._addStylesToHost(this._stylesSet, hostNode, styleNodes);\n    this._hostNodes.set(hostNode, styleNodes);\n  }\n\n  removeHost(hostNode: Node): void {\n    const styleNodes = this._hostNodes.get(hostNode);\n    if (styleNodes) {\n      styleNodes.forEach(removeStyle);\n    }\n    this._hostNodes.delete(hostNode);\n  }\n\n  override onStylesAdded(additions: Set<string>): void {\n    this._hostNodes.forEach((styleNodes, hostNode) => {\n      this._addStylesToHost(additions, hostNode, styleNodes);\n    });\n  }\n\n  ngOnDestroy(): void {\n    this._hostNodes.forEach(styleNodes => styleNodes.forEach(removeStyle));\n  }\n}\n\nfunction removeStyle(styleNode: Node): void {\n  getDOM().remove(styleNode);\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.io/license\n */\n\nimport {APP_ID, Inject, Injectable, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2, ViewEncapsulation} from '@angular/core';\n\nimport {EventManager} from './events/event_manager';\nimport {DomSharedStylesHost} 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};\n\nconst COMPONENT_REGEX = /%COMP%/g;\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\n\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\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 flattenStyles(\n    compId: string, styles: Array<any|any[]>, target: string[]): string[] {\n  for (let i = 0; i < styles.length; i++) {\n    let style = styles[i];\n\n    if (Array.isArray(style)) {\n      flattenStyles(compId, style, target);\n    } else {\n      style = style.replace(COMPONENT_REGEX, compId);\n      target.push(style);\n    }\n  }\n  return target;\n}\n\nfunction 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 the\n  // two differently. In the first case, the special '__ngUnwrap__' token is passed to the unwrap\n  // 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 debug_node\n    // can inspect the listener toString contents for the existence of this special token. Because\n    // the token is a string literal, it is ensured to not be modified by compiled code.\n    if (event === '__ngUnwrap__') {\n      return eventHandler;\n    }\n\n    const allowDefaultBehavior = eventHandler(event);\n    if (allowDefaultBehavior === false) {\n      // TODO(tbosch): move preventDefault into event plugins...\n      event.preventDefault();\n      event.returnValue = false;\n    }\n\n    return undefined;\n  };\n}\n\nlet hasLoggedNativeEncapsulationWarning = false;\n\n@Injectable()\nexport class DomRendererFactory2 implements RendererFactory2 {\n  private rendererByCompId = new Map<string, Renderer2>();\n  private defaultRenderer: Renderer2;\n\n  constructor(\n      private eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n      @Inject(APP_ID) private appId: string) {\n    this.defaultRenderer = new DefaultDomRenderer2(eventManager);\n  }\n\n  createRenderer(element: any, type: RendererType2|null): Renderer2 {\n    if (!element || !type) {\n      return this.defaultRenderer;\n    }\n    switch (type.encapsulation) {\n      case ViewEncapsulation.Emulated: {\n        let renderer = this.rendererByCompId.get(type.id);\n        if (!renderer) {\n          renderer = new EmulatedEncapsulationDomRenderer2(\n              this.eventManager, this.sharedStylesHost, type, this.appId);\n          this.rendererByCompId.set(type.id, renderer);\n        }\n        (<EmulatedEncapsulationDomRenderer2>renderer).applyToHost(element);\n        return renderer;\n      }\n      // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an enum\n      // value that is not known (but previously was the value for ViewEncapsulation.Native)\n      case 1:\n      case ViewEncapsulation.ShadowDom:\n        // TODO(FW-2290): remove the `case 1:` fallback logic and the warning in v12.\n        if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n            // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an\n            // enum value that is not known (but previously was the value for\n            // ViewEncapsulation.Native)\n            !hasLoggedNativeEncapsulationWarning && type.encapsulation === 1) {\n          hasLoggedNativeEncapsulationWarning = true;\n          console.warn(\n              'ViewEncapsulation.Native is no longer supported. Falling back to ViewEncapsulation.ShadowDom. The fallback will be removed in v12.');\n        }\n\n        return new ShadowDomRenderer(this.eventManager, this.sharedStylesHost, element, type);\n      default: {\n        if (!this.rendererByCompId.has(type.id)) {\n          const styles = flattenStyles(type.id, type.styles, []);\n          this.sharedStylesHost.addStyles(styles);\n          this.rendererByCompId.set(type.id, this.defaultRenderer);\n        }\n        return this.defaultRenderer;\n      }\n    }\n  }\n\n  begin() {}\n  end() {}\n}\n\nclass DefaultDomRenderer2 implements Renderer2 {\n  data: {[key: string]: any} = Object.create(null);\n\n  constructor(private eventManager: EventManager) {}\n\n  destroy(): void {}\n\n  destroyNode: null;\n\n  createElement(name: string, namespace?: string): any {\n    if (namespace) {\n      // In cases where Ivy (not ViewEngine) is giving us the actual namespace, the look up by key\n      // will result in undefined, so we just return the namespace here.\n      return document.createElementNS(NAMESPACE_URIS[namespace] || namespace, name);\n    }\n\n    return document.createElement(name);\n  }\n\n  createComment(value: string): any {\n    return document.createComment(value);\n  }\n\n  createText(value: string): any {\n    return document.createTextNode(value);\n  }\n\n  appendChild(parent: any, newChild: any): void {\n    parent.appendChild(newChild);\n  }\n\n  insertBefore(parent: any, newChild: any, refChild: any): void {\n    if (parent) {\n      parent.insertBefore(newChild, refChild);\n    }\n  }\n\n  removeChild(parent: any, oldChild: any): void {\n    if (parent) {\n      parent.removeChild(oldChild);\n    }\n  }\n\n  selectRootElement(selectorOrNode: string|any, preserveContent?: boolean): any {\n    let el: any = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) :\n                                                       selectorOrNode;\n    if (!el) {\n      throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\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      // TODO(FW-811): Ivy may cause issues here because it's passing around\n      // full URIs for namespaces, therefore this lookup will fail.\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      // TODO(FW-811): Ivy may cause issues here because it's passing around\n      // full URIs for namespaces, therefore this lookup will fail.\n      const namespaceUri = NAMESPACE_URIS[namespace];\n      if (namespaceUri) {\n        el.removeAttributeNS(namespaceUri, name);\n      } else {\n        // TODO(FW-811): Since ivy is passing around full URIs for namespaces\n        // this could result in properties like `http://www.w3.org/2000/svg:cx=\"123\"`,\n        // which is wrong.\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      el.style.removeProperty(style);\n    } else {\n      // IE requires '' instead of null\n      // see https://github.com/angular/angular/issues/7916\n      el.style[style] = '';\n    }\n  }\n\n  setProperty(el: any, name: string, value: any): void {\n    NG_DEV_MODE && checkNoSyntheticProp(name, 'property');\n    el[name] = value;\n  }\n\n  setValue(node: any, value: string): void {\n    node.nodeValue = value;\n  }\n\n  listen(target: 'window'|'document'|'body'|any, event: string, callback: (event: any) => boolean):\n      () => void {\n    NG_DEV_MODE && checkNoSyntheticProp(event, 'listener');\n    if (typeof target === 'string') {\n      return <() => void>this.eventManager.addGlobalEventListener(\n          target, event, decoratePreventDefault(callback));\n    }\n    return <() => void>this.eventManager.addEventListener(\n               target, event, decoratePreventDefault(callback)) as () => void;\n  }\n}\n\nconst AT_CHARCODE = (() => '@'.charCodeAt(0))();\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n  if (name.charCodeAt(0) === AT_CHARCODE) {\n    throw new Error(`Unexpected synthetic ${nameKind} ${name} found. Please make sure that:\n  - Either \\`BrowserAnimationsModule\\` or \\`NoopAnimationsModule\\` are imported in your application.\n  - There is corresponding configuration for the animation named \\`${\n        name}\\` defined in the \\`animations\\` field of the \\`@Component\\` decorator (see https://angular.io/api/core/Component#animations).`);\n  }\n}\n\nclass EmulatedEncapsulationDomRenderer2 extends DefaultDomRenderer2 {\n  private contentAttr: string;\n  private hostAttr: string;\n\n  constructor(\n      eventManager: EventManager, sharedStylesHost: DomSharedStylesHost,\n      private component: RendererType2, appId: string) {\n    super(eventManager);\n    const styles = flattenStyles(appId + '-' + component.id, component.styles, []);\n    sharedStylesHost.addStyles(styles);\n\n    this.contentAttr = shimContentAttribute(appId + '-' + component.id);\n    this.hostAttr = shimHostAttribute(appId + '-' + component.id);\n  }\n\n  applyToHost(element: any) {\n    super.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\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n  private shadowRoot: any;\n\n  constructor(\n      eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n      private hostEl: any, component: RendererType2) {\n    super(eventManager);\n    this.shadowRoot = (hostEl as any).attachShadow({mode: 'open'});\n    this.sharedStylesHost.addHost(this.shadowRoot);\n    const styles = flattenStyles(component.id, component.styles, []);\n    for (let i = 0; i < styles.length; i++) {\n      const styleEl = document.createElement('style');\n      styleEl.textContent = styles[i];\n      this.shadowRoot.appendChild(styleEl);\n    }\n  }\n\n  private nodeOrShadowRoot(node: any): any {\n    return node === this.hostEl ? this.shadowRoot : node;\n  }\n\n  override destroy() {\n    this.sharedStylesHost.removeHost(this.shadowRoot);\n  }\n\n  override appendChild(parent: any, newChild: any): void {\n    return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n  }\n  override insertBefore(parent: any, newChild: any, refChild: any): void {\n    return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n  }\n  override removeChild(parent: any, oldChild: any): void {\n    return super.removeChild(this.nodeOrShadowRoot(parent), oldChild);\n  }\n  override parentNode(node: any): any {\n    return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\nimport {EventManagerPlugin} from './event_manager';\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(element: HTMLElement, eventName: string, handler: Function): Function {\n    element.addEventListener(eventName, handler as EventListener, false);\n    return () => this.removeEventListener(element, eventName, handler as EventListener);\n  }\n\n  removeEventListener(target: any, eventName: string, callback: Function): void {\n    return target.removeEventListener(eventName, callback as EventListener);\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, InjectionToken, NgModule, Optional, Provider, ɵConsole as Console} from '@angular/core';\n\nimport {EVENT_MANAGER_PLUGINS, EventManagerPlugin} from './event_manager';\n\n\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 `HammerGestureConfig`\n *\n * @ngModule HammerModule\n * @publicApi\n */\nexport const HAMMER_GESTURE_CONFIG = new InjectionToken<HammerGestureConfig>('HammerGestureConfig');\n\n\n/**\n * Function that loads HammerJS, returning a promise that is resolved once HammerJs is loaded.\n *\n * @publicApi\n */\nexport type HammerLoader = () => Promise<void>;\n\n/**\n * Injection token used to provide a {@link HammerLoader} to Angular.\n *\n * @publicApi\n */\nexport const HAMMER_LOADER = new InjectionToken<HammerLoader>('HammerLoader');\n\nexport interface HammerInstance {\n  on(eventName: string, callback?: Function): void;\n  off(eventName: string, callback?: Function): void;\n  destroy?(): void;\n}\n\n/**\n * An injectable [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n * for gesture recognition. Configures specific event recognition.\n * @publicApi\n */\n@Injectable()\nexport class HammerGestureConfig {\n  /**\n   * A set of supported event names for gestures to be used in Angular.\n   * Angular supports all built-in recognizers, as listed in\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   */\n  events: string[] = [];\n\n  /**\n   * Maps gesture event names to a set of configuration options\n   * that specify overrides to the default values for specific properties.\n   *\n   * The key is a supported event name to be configured,\n   * and the options object contains a set of properties, with override values\n   * to be applied to the named recognizer event.\n   * For example, to disable recognition of the rotate event, specify\n   *  `{\"rotate\": {\"enable\": false}}`.\n   *\n   * Properties that are not present take the HammerJS default values.\n   * For information about which properties are supported for which events,\n   * and their allowed and default values, see\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   *\n   */\n  overrides: {[key: string]: Object} = {};\n\n  /**\n   * Properties whose default values can be overridden for a given event.\n   * Different sets of properties apply to different events.\n   * For information about which properties are supported for which events,\n   * and their allowed and default values, see\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   */\n  options?: {\n    cssProps?: any;\n    domEvents?: boolean;\n    enable?: boolean | ((manager: any) => boolean);\n    preset?: any[];\n    touchAction?: string;\n    recognizers?: any[];\n    inputClass?: any;\n    inputTarget?: EventTarget;\n  };\n\n  /**\n   * Creates a [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n   * and attaches it to a given HTML element.\n   * @param element The element that will recognize gestures.\n   * @returns A HammerJS event-manager object.\n   */\n  buildHammer(element: HTMLElement): HammerInstance {\n    const mc = new Hammer!(element, this.options);\n\n    mc.get('pinch').set({enable: true});\n    mc.get('rotate').set({enable: true});\n\n    for (const eventName in this.overrides) {\n      mc.get(eventName).set(this.overrides[eventName]);\n    }\n\n    return mc;\n  }\n}\n\n/**\n * Event plugin that adds Hammer support to an application.\n *\n * @ngModule HammerModule\n */\n@Injectable()\nexport class HammerGesturesPlugin extends EventManagerPlugin {\n  private _loaderPromise: Promise<void>|null = null;\n\n  constructor(\n      @Inject(DOCUMENT) doc: any,\n      @Inject(HAMMER_GESTURE_CONFIG) private _config: HammerGestureConfig, private console: Console,\n      @Optional() @Inject(HAMMER_LOADER) private loader?: HammerLoader|null) {\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        this.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      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 || 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      this._loaderPromise\n          .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                this.console.warn(\n                    `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 removal.\n              deregister = this.addEventListener(element, eventName, handler);\n            }\n          })\n          .catch(() => {\n            if (typeof ngDevMode === 'undefined' || ngDevMode) {\n              this.console.warn(\n                  `The \"${eventName}\" event cannot be bound because the custom ` +\n                  `Hammer.JS loader failed.`);\n            }\n            deregister = () => {};\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 * In Ivy, support for Hammer gestures is optional, so applications must\n * import the `HammerModule` at root to turn on support. This means that\n * Hammer-specific code can be tree-shaken away if not needed.\n */\nexport const HAMMER_PROVIDERS__POST_R3__ = [];\n\n/**\n * In View Engine, support for Hammer gestures is built-in by default.\n */\nexport const HAMMER_PROVIDERS__PRE_R3__: Provider[] = [\n  {\n    provide: EVENT_MANAGER_PLUGINS,\n    useClass: HammerGesturesPlugin,\n    multi: true,\n    deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, Console, [new Optional(), HAMMER_LOADER]]\n  },\n  {provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: []},\n];\n\nexport const HAMMER_PROVIDERS = HAMMER_PROVIDERS__PRE_R3__;\n\n/**\n * Adds support for HammerJS.\n *\n * Import this module at the root of your application so that Angular can work with\n * HammerJS to detect gesture events.\n *\n * Note that applications still need to include the HammerJS script itself. This module\n * simply sets up the coordination layer between HammerJS and Angular's EventManager.\n *\n * @publicApi\n */\n@NgModule({providers: HAMMER_PROVIDERS__PRE_R3__})\nexport class HammerModule {\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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Defines supported modifiers for key events.\n */\nconst MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\n\nconst DOM_KEY_LOCATION_NUMPAD = 3;\n\n// Map to convert some key or keyIdentifier values to what will be returned by getEventKey\nconst _keyMap: {[k: string]: string} = {\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/\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// There is a bug in Chrome for numeric keypad keys:\n// https://code.google.com/p/chromium/issues/detail?id=155654\n// 1, 2, 3 ... are reported as A, B, C ...\nconst _chromeNumKeyPadMap = {\n  'A': '1',\n  'B': '2',\n  'C': '3',\n  'D': '4',\n  'E': '5',\n  'F': '6',\n  'G': '7',\n  'H': '8',\n  'I': '9',\n  'J': '*',\n  'K': '+',\n  'M': '-',\n  'N': '.',\n  'O': '/',\n  '\\x60': '0',\n  '\\x90': 'NumLock'\n};\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 * @publicApi\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(element: HTMLElement, eventName: string, handler: Function): Function {\n    const parsedEvent = KeyEventsPlugin.parseEventName(eventName)!;\n\n    const outsideHandler =\n        KeyEventsPlugin.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());\n\n    return this.manager.getZone().runOutsideAngular(() => {\n      return getDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);\n    });\n  }\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    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  static getEventFullKey(event: KeyboardEvent): string {\n    let fullKey = '';\n    let key = getEventKey(event);\n    key = key.toLowerCase();\n    if (key === ' ') {\n      key = 'space';  // for readability\n    } else if (key === '.') {\n      key = 'dot';  // because '.' is used as a separator in event names\n    }\n    MODIFIER_KEYS.forEach(modifierName => {\n      if (modifierName != key) {\n        const modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n        if (modifierGetter(event)) {\n          fullKey += modifierName + '.';\n        }\n      }\n    });\n    fullKey += key;\n    return fullKey;\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: any, handler: Function, zone: NgZone): Function {\n    return (event: any /** TODO #9100 */) => {\n      if (KeyEventsPlugin.getEventFullKey(event) === fullKey) {\n        zone.runGuarded(() => handler(event));\n      }\n    };\n  }\n\n  /** @internal */\n  static _normalizeKey(keyName: string): string {\n    // TODO: switch to a Map if the mapping grows too much\n    switch (keyName) {\n      case 'esc':\n        return 'escape';\n      default:\n        return keyName;\n    }\n  }\n}\n\nfunction getEventKey(event: any): string {\n  let key = event.key;\n  if (key == null) {\n    key = event.keyIdentifier;\n    // keyIdentifier is defined in the old draft of DOM Level 3 Events implemented by Chrome and\n    // Safari cf\n    // https://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/events.html#Events-KeyboardEvents-Interfaces\n    if (key == null) {\n      return 'Unidentified';\n    }\n    if (key.startsWith('U+')) {\n      key = String.fromCharCode(parseInt(key.substring(2), 16));\n      if (event.location === DOM_KEY_LOCATION_NUMPAD && _chromeNumKeyPadMap.hasOwnProperty(key)) {\n        // There is a bug in Chrome for numeric keypad keys:\n        // https://code.google.com/p/chromium/issues/detail?id=155654\n        // 1, 2, 3 ... are reported as A, B, C ...\n        key = (_chromeNumKeyPadMap as any)[key];\n      }\n    }\n  }\n\n  return _keyMap[key] || key;\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {forwardRef, Inject, Injectable, Injector, Sanitizer, SecurityContext, ɵ_sanitizeHtml as _sanitizeHtml, ɵ_sanitizeUrl as _sanitizeUrl, ɵallowSanitizationBypassAndThrow as allowSanitizationBypassOrThrow, ɵbypassSanitizationTrustHtml as bypassSanitizationTrustHtml, ɵbypassSanitizationTrustResourceUrl as bypassSanitizationTrustResourceUrl, ɵbypassSanitizationTrustScript as bypassSanitizationTrustScript, ɵbypassSanitizationTrustStyle as bypassSanitizationTrustStyle, ɵbypassSanitizationTrustUrl as bypassSanitizationTrustUrl, ɵBypassType as BypassType, ɵgetSanitizationBypassType as getSanitizationBypassType, ɵunwrapSafeValue as unwrapSafeValue} from '@angular/core';\n\nexport {SecurityContext};\n\n\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   * Sanitizes a value for use in the given SecurityContext.\n   *\n   * If value is trusted for the context, this method will unwrap the contained safe value and use\n   * it directly. Otherwise, value will be sanitized to be safe in the given context, for example\n   * by replacing URLs that have an unsafe protocol part (such as `javascript:`). The implementation\n   * is responsible to make sure that the value can definitely be safely used in the given context.\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\nexport function domSanitizerImplFactory(injector: Injector) {\n  return new DomSanitizerImpl(injector.get(DOCUMENT));\n}\n\n@Injectable({providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [Injector]})\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 Error('unsafe value used in a script context');\n      case SecurityContext.URL:\n        const type = getSanitizationBypassType(value);\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 Error(\n            'unsafe value used in a resource URL context (see https://g.co/ng/security#xss)');\n      default:\n        throw new Error(`Unexpected SecurityContext ${ctx} (see https://g.co/ng/security#xss)`);\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.io/license\n */\n\nimport {CommonModule, DOCUMENT, XhrFactory, ɵPLATFORM_BROWSER_ID as PLATFORM_BROWSER_ID} from '@angular/common';\nimport {APP_ID, ApplicationModule, createPlatformFactory, ErrorHandler, Inject, ModuleWithProviders, NgModule, NgZone, Optional, PLATFORM_ID, PLATFORM_INITIALIZER, platformCore, PlatformRef, RendererFactory2, Sanitizer, SkipSelf, StaticProvider, Testability, ɵINJECTOR_SCOPE as INJECTOR_SCOPE, ɵsetDocument} from '@angular/core';\n\nimport {BrowserDomAdapter} from './browser/browser_adapter';\nimport {SERVER_TRANSITION_PROVIDERS, TRANSITION_ID} from './browser/server-transition';\nimport {BrowserGetTestability} from './browser/testability';\nimport {BrowserXhr} from './browser/xhr';\nimport {ELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nimport {DomRendererFactory2} from './dom/dom_renderer';\nimport {DomEventsPlugin} from './dom/events/dom_events';\nimport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nimport {HAMMER_PROVIDERS} from './dom/events/hammer_gestures';\nimport {KeyEventsPlugin} from './dom/events/key_events';\nimport {DomSharedStylesHost, SharedStylesHost} from './dom/shared_styles_host';\nimport {DomSanitizer, DomSanitizerImpl} from './security/dom_sanitization_service';\n\nexport function initDomAdapter() {\n  BrowserDomAdapter.makeCurrent();\n  BrowserGetTestability.init();\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\nexport const 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, deps: []},\n];\n\nconst BROWSER_SANITIZATION_PROVIDERS__PRE_R3__: StaticProvider[] = [\n  {provide: Sanitizer, useExisting: DomSanitizer},\n  {provide: DomSanitizer, useClass: DomSanitizerImpl, deps: [DOCUMENT]},\n];\n\nexport const BROWSER_SANITIZATION_PROVIDERS__POST_R3__ = [];\n\n/**\n * @security Replacing built-in sanitization providers exposes the application to XSS risks.\n * Attacker-controlled data introduced by an unsanitized provider could expose your\n * application to XSS risks. For more detail, see the [Security Guide](https://g.co/ng/security).\n * @publicApi\n */\nexport const BROWSER_SANITIZATION_PROVIDERS = BROWSER_SANITIZATION_PROVIDERS__PRE_R3__;\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\nexport const BROWSER_MODULE_PROVIDERS: StaticProvider[] = [\n  BROWSER_SANITIZATION_PROVIDERS,\n  {provide: INJECTOR_SCOPE, useValue: 'root'},\n  {provide: ErrorHandler, useFactory: errorHandler, deps: []},\n  {\n    provide: EVENT_MANAGER_PLUGINS,\n    useClass: DomEventsPlugin,\n    multi: true,\n    deps: [DOCUMENT, NgZone, PLATFORM_ID]\n  },\n  {provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true, deps: [DOCUMENT]},\n  HAMMER_PROVIDERS,\n  {\n    provide: DomRendererFactory2,\n    useClass: DomRendererFactory2,\n    deps: [EventManager, DomSharedStylesHost, APP_ID]\n  },\n  {provide: RendererFactory2, useExisting: DomRendererFactory2},\n  {provide: SharedStylesHost, useExisting: DomSharedStylesHost},\n  {provide: DomSharedStylesHost, useClass: DomSharedStylesHost, deps: [DOCUMENT]},\n  {provide: Testability, useClass: Testability, deps: [NgZone]},\n  {provide: EventManager, useClass: EventManager, deps: [EVENT_MANAGER_PLUGINS, NgZone]},\n  {provide: XhrFactory, useClass: BrowserXhr, deps: []},\n  ELEMENT_PROBE_PROVIDERS,\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({providers: BROWSER_MODULE_PROVIDERS, exports: [CommonModule, ApplicationModule]})\nexport class BrowserModule {\n  constructor(@Optional() @SkipSelf() @Inject(BrowserModule) parentModule: BrowserModule|null) {\n    if (parentModule) {\n      throw new Error(\n          `BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.`);\n    }\n  }\n\n  /**\n   * Configures a browser-based app to transition from a server-rendered app, if\n   * one is present on the page.\n   *\n   * @param params An object containing an identifier for the app to transition.\n   * The ID must match between the client and server versions of the app.\n   * @returns The reconfigured `BrowserModule` to import into the app's root `AppModule`.\n   */\n  static withServerTransition(params: {appId: string}): ModuleWithProviders<BrowserModule> {\n    return {\n      ngModule: BrowserModule,\n      providers: [\n        {provide: APP_ID, useValue: params.appId},\n        {provide: TRANSITION_ID, useExisting: APP_ID},\n        SERVER_TRANSITION_PROVIDERS,\n      ],\n    };\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.io/license\n */\n\nimport {DOCUMENT, ɵDomAdapter as DomAdapter, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, ɵɵinject} 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 `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 * Factory to create a `Meta` service instance for the current DOM document.\n */\nexport function createMeta() {\n  return new Meta(ɵɵinject(DOCUMENT));\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', useFactory: createMeta, deps: []})\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(meta: MetaDefinition, 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(\n        (prop: string) => el.setAttribute(this._getMetaKeyMap(prop), tag[prop]));\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  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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, ɵɵinject} from '@angular/core';\n\n\n/**\n * Factory to create Title service.\n */\nexport function createTitle() {\n  return new Title(ɵɵinject(DOCUMENT));\n}\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', useFactory: createTitle, deps: []})\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.io/license\n */\n\nconst win = typeof window !== 'undefined' && window || <any>{};\nexport {win as window};\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.io/license\n */\n\nimport {ApplicationRef, ComponentRef} from '@angular/core';\nimport {window} from './browser';\n\nexport class ChangeDetectionPerfRecord {\n  constructor(public msPerTick: number, public numTicks: number) {}\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   * ```\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    const isProfilerAvailable = window.console.profile != null;\n    if (record && isProfilerAvailable) {\n      window.console.profile(profileName);\n    }\n    const start = performanceNow();\n    let numTicks = 0;\n    while (numTicks < 5 || (performanceNow() - start) < 500) {\n      this.appRef.tick();\n      numTicks++;\n    }\n    const end = performanceNow();\n    if (record && isProfilerAvailable) {\n      window.console.profileEnd(profileName);\n    }\n    const msPerTick = (end - start) / numTicks;\n    window.console.log(`ran ${numTicks} change detection cycles`);\n    window.console.log(`${msPerTick.toFixed(2)} ms per check`);\n\n    return new ChangeDetectionPerfRecord(msPerTick, numTicks);\n  }\n}\n\nfunction performanceNow() {\n  return window.performance && window.performance.now ? window.performance.now() :\n                                                        new Date().getTime();\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.io/license\n */\n\nimport {ComponentRef} from '@angular/core';\nimport {exportNgVar} from '../../dom/util';\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {APP_ID, Injectable, NgModule} from '@angular/core';\n\nexport function escapeHtml(text: string): string {\n  const escapedText: {[k: string]: string} = {\n    '&': '&a;',\n    '\"': '&q;',\n    '\\'': '&s;',\n    '<': '&l;',\n    '>': '&g;',\n  };\n  return text.replace(/[&\"'<>]/g, s => escapedText[s]);\n}\n\nexport function unescapeHtml(text: string): string {\n  const unescapedText: {[k: string]: string} = {\n    '&a;': '&',\n    '&q;': '\"',\n    '&s;': '\\'',\n    '&l;': '<',\n    '&g;': '>',\n  };\n  return text.replace(/&[^;]+;/g, s => unescapedText[s]);\n}\n\n/**\n * A type-safe key to use with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport type StateKey<T> = string&{__not_a_string: never};\n\n/**\n * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport function makeStateKey<T = void>(key: string): StateKey<T> {\n  return key as StateKey<T>;\n}\n\n/**\n * A key value store that is transferred from the application on the server side to the application\n * on the client side.\n *\n * `TransferState` will be available as an injectable token. To use it import\n * `ServerTransferStateModule` on the server and `BrowserTransferStateModule` on the client.\n *\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\n * boolean, number, string, null and non-class objects will be serialized and deserialized in a\n * non-lossy manner.\n *\n * @publicApi\n */\n@Injectable()\nexport class TransferState {\n  private store: {[k: string]: {}|undefined} = {};\n  private onSerializeCallbacks: {[k: string]: () => {} | undefined} = {};\n\n  /** @internal */\n  static init(initState: {}) {\n    const transferState = new TransferState();\n    transferState.store = initState;\n    return transferState;\n  }\n\n  /**\n   * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n   */\n  get<T>(key: StateKey<T>, defaultValue: T): T {\n    return this.store[key] !== undefined ? this.store[key] as T : defaultValue;\n  }\n\n  /**\n   * Set the value corresponding to a key.\n   */\n  set<T>(key: StateKey<T>, value: T): void {\n    this.store[key] = value;\n  }\n\n  /**\n   * Remove a key from the store.\n   */\n  remove<T>(key: StateKey<T>): void {\n    delete this.store[key];\n  }\n\n  /**\n   * Test whether a key exists in the store.\n   */\n  hasKey<T>(key: StateKey<T>) {\n    return this.store.hasOwnProperty(key);\n  }\n\n  /**\n   * Register a callback to provide the value for a key when `toJson` is called.\n   */\n  onSerialize<T>(key: StateKey<T>, callback: () => T): void {\n    this.onSerializeCallbacks[key] = callback;\n  }\n\n  /**\n   * Serialize the current state of the store to JSON.\n   */\n  toJson(): string {\n    // Call the onSerialize callbacks and put those values into the store.\n    for (const key in this.onSerializeCallbacks) {\n      if (this.onSerializeCallbacks.hasOwnProperty(key)) {\n        try {\n          this.store[key] = this.onSerializeCallbacks[key]();\n        } catch (e) {\n          console.warn('Exception in onSerialize callback: ', e);\n        }\n      }\n    }\n    return JSON.stringify(this.store);\n  }\n}\n\nexport function initTransferState(doc: Document, appId: string) {\n  // Locate the script tag with the JSON data transferred from the server.\n  // The id of the script tag is set to the Angular appId + 'state'.\n  const script = doc.getElementById(appId + '-state');\n  let initialState = {};\n  if (script && script.textContent) {\n    try {\n      // Avoid using any here as it triggers lint errors in google3 (any is not allowed).\n      initialState = JSON.parse(unescapeHtml(script.textContent)) as {};\n    } catch (e) {\n      console.warn('Exception while restoring TransferState for app ' + appId, e);\n    }\n  }\n  return TransferState.init(initialState);\n}\n\n/**\n * NgModule to install on the client side while using the `TransferState` to transfer state from\n * server to client.\n *\n * @publicApi\n */\n@NgModule({\n  providers: [{provide: TransferState, useFactory: initTransferState, deps: [DOCUMENT, APP_ID]}],\n})\nexport class BrowserTransferStateModule {\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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {DebugElement, DebugNode, Predicate, Type} from '@angular/core';\n\n\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.matches && n.matches(selector) ||\n        n.msMatchesSelector && n.msMatchesSelector(selector) ||\n        n.webkitMatchesSelector && n.webkitMatchesSelector(selector);\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.io/license\n */\n\nexport {ɵgetDOM} from '@angular/common';\nexport {BROWSER_SANITIZATION_PROVIDERS as ɵBROWSER_SANITIZATION_PROVIDERS, BROWSER_SANITIZATION_PROVIDERS__POST_R3__ as ɵBROWSER_SANITIZATION_PROVIDERS__POST_R3__, initDomAdapter as ɵinitDomAdapter, INTERNAL_BROWSER_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS} from './browser';\nexport {BrowserDomAdapter as ɵBrowserDomAdapter} from './browser/browser_adapter';\nexport {TRANSITION_ID as ɵTRANSITION_ID} from './browser/server-transition';\nexport {BrowserGetTestability as ɵBrowserGetTestability} from './browser/testability';\nexport {escapeHtml as ɵescapeHtml} from './browser/transfer_state';\nexport {ELEMENT_PROBE_PROVIDERS as ɵELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nexport {DomRendererFactory2 as ɵDomRendererFactory2, flattenStyles as ɵflattenStyles, NAMESPACE_URIS as ɵNAMESPACE_URIS, shimContentAttribute as ɵshimContentAttribute, shimHostAttribute as ɵshimHostAttribute} from './dom/dom_renderer';\nexport {DomEventsPlugin as ɵDomEventsPlugin} from './dom/events/dom_events';\nexport {HammerGesturesPlugin as ɵHammerGesturesPlugin} from './dom/events/hammer_gestures';\nexport {KeyEventsPlugin as ɵKeyEventsPlugin} from './dom/events/key_events';\nexport {DomSharedStylesHost as ɵDomSharedStylesHost, SharedStylesHost as ɵSharedStylesHost} from './dom/shared_styles_host';\nexport {DomSanitizerImpl as ɵDomSanitizerImpl} from './security/dom_sanitization_service';\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.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the platform-browser package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('12.2.9');\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.io/license\n */\n\nexport {BrowserModule, platformBrowser} from './browser';\nexport {Meta, MetaDefinition} from './browser/meta';\nexport {Title} from './browser/title';\nexport {disableDebugTools, enableDebugTools} from './browser/tools/tools';\nexport {BrowserTransferStateModule, makeStateKey, StateKey, TransferState} from './browser/transfer_state';\nexport {By} from './dom/debug/by';\nexport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nexport {HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HAMMER_PROVIDERS__POST_R3__ as ɵHAMMER_PROVIDERS__POST_R3__, HammerGestureConfig, HammerLoader, HammerModule} from './dom/events/hammer_gestures';\nexport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl, SafeValue} from './security/dom_sanitization_service';\n\nexport * from './private_export';\nexport {VERSION} from './version';\n// This must be exported so it doesn't get tree-shaken away prematurely\nexport {ELEMENT_PROBE_PROVIDERS__POST_R3__ as ɵELEMENT_PROBE_PROVIDERS__POST_R3__} from './dom/debug/ng_probe';\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.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport * from './src/platform-browser';\n// This file only reexports content of the `src` folder. Keep it that way.\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.io/license\n */\n\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {BROWSER_MODULE_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_c,_document as ɵangular_packages_platform_browser_platform_browser_b,errorHandler as ɵangular_packages_platform_browser_platform_browser_a} from './src/browser';\nexport {GenericBrowserDomAdapter as ɵangular_packages_platform_browser_platform_browser_p} from './src/browser/generic_browser_adapter';\nexport {createMeta as ɵangular_packages_platform_browser_platform_browser_d} from './src/browser/meta';\nexport {SERVER_TRANSITION_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_l,appInitializerFactory as ɵangular_packages_platform_browser_platform_browser_k} from './src/browser/server-transition';\nexport {createTitle as ɵangular_packages_platform_browser_platform_browser_e} from './src/browser/title';\nexport {initTransferState as ɵangular_packages_platform_browser_platform_browser_f} from './src/browser/transfer_state';\nexport {BrowserXhr as ɵangular_packages_platform_browser_platform_browser_o} from './src/browser/xhr';\nexport {ELEMENT_PROBE_PROVIDERS__PRE_R3__ as ɵangular_packages_platform_browser_platform_browser_n,_createNgProbeR2 as ɵangular_packages_platform_browser_platform_browser_m} from './src/dom/debug/ng_probe';\nexport {EventManagerPlugin as ɵangular_packages_platform_browser_platform_browser_g} from './src/dom/events/event_manager';\nexport {HAMMER_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_i,HAMMER_PROVIDERS__PRE_R3__ as ɵangular_packages_platform_browser_platform_browser_h} from './src/dom/events/hammer_gestures';\nexport {domSanitizerImplFactory as ɵangular_packages_platform_browser_platform_browser_j} from './src/security/dom_sanitization_service';"]}
Index: trip-planner-front/node_modules/@angular/platform-browser/animations.d.ts
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/animations.d.ts	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/animations.d.ts	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,4 +1,4 @@
 /**
- * @license Angular v12.2.13
+ * @license Angular v12.2.9
  * (c) 2010-2021 Google LLC. https://angular.io/
  * License: MIT
Index: trip-planner-front/node_modules/@angular/platform-browser/animations/animations.d.ts
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/animations/animations.d.ts	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/animations/animations.d.ts	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,4 +1,4 @@
 /**
- * @license Angular v12.2.13
+ * @license Angular v12.2.9
  * (c) 2010-2021 Google LLC. https://angular.io/
  * License: MIT
Index: trip-planner-front/node_modules/@angular/platform-browser/animations/animations.d.ts.__ivy_ngcc_bak
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/animations/animations.d.ts.__ivy_ngcc_bak	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/animations/animations.d.ts.__ivy_ngcc_bak	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,4 +1,4 @@
 /**
- * @license Angular v12.2.13
+ * @license Angular v12.2.9
  * (c) 2010-2021 Google LLC. https://angular.io/
  * License: MIT
Index: trip-planner-front/node_modules/@angular/platform-browser/animations/animations.d.ts.map
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/animations/animations.d.ts.map	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/animations/animations.d.ts.map	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,1 +1,1 @@
-{"version":3,"file":"animations.d.ts","sources":["animations.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA","sourcesContent":["/**\n * @license Angular v12.2.13\n * (c) 2010-2021 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { AnimationBuilder } from '@angular/animations';\r\nimport { AnimationDriver } from '@angular/animations/browser';\r\nimport { AnimationFactory } from '@angular/animations';\r\nimport { AnimationMetadata } from '@angular/animations';\r\nimport { AnimationOptions } from '@angular/animations';\r\nimport { AnimationPlayer } from '@angular/animations';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { ModuleWithProviders } from '@angular/core';\r\nimport { NgZone } from '@angular/core';\r\nimport { OnDestroy } from '@angular/core';\r\nimport { Provider } from '@angular/core';\r\nimport { Renderer2 } from '@angular/core';\r\nimport { RendererFactory2 } from '@angular/core';\r\nimport { RendererStyleFlags2 } from '@angular/core';\r\nimport { RendererType2 } from '@angular/core';\r\nimport { ɵAnimationEngine } from '@angular/animations/browser';\r\nimport { ɵAnimationStyleNormalizer } from '@angular/animations/browser';\r\nimport { ɵCssKeyframesDriver } from '@angular/animations/browser';\r\nimport { ɵDomRendererFactory2 } from '@angular/platform-browser';\r\nimport { ɵWebAnimationsDriver } from '@angular/animations/browser';\r\nimport { ɵWebAnimationsStyleNormalizer } from '@angular/animations/browser';\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const ANIMATION_MODULE_TYPE: InjectionToken<\"NoopAnimations\" | \"BrowserAnimations\">;\r\n\r\n/**\r\n * Exports `BrowserModule` with additional [dependency-injection providers](guide/glossary#provider)\r\n * for use with animations. See [Animations](guide/animations).\r\n * @publicApi\r\n */\r\nexport declare class BrowserAnimationsModule {\r\n    /**\r\n     * Configures the module based on the specified object.\r\n     *\r\n     * @param config Object used to configure the behavior of the `BrowserAnimationsModule`.\r\n     * @see `BrowserAnimationsModuleConfig`\r\n     *\r\n     * @usageNotes\r\n     * When registering the `BrowserAnimationsModule`, you can use the `withConfig`\r\n     * function as follows:\r\n     * ```\r\n     * @NgModule({\r\n     *   imports: [BrowserAnimationsModule.withConfig(config)]\r\n     * })\r\n     * class MyNgModule {}\r\n     * ```\r\n     */\r\n    static withConfig(config: BrowserAnimationsModuleConfig): ModuleWithProviders<BrowserAnimationsModule>;\r\n}\r\n\r\n/**\r\n * Object used to configure the behavior of {@link BrowserAnimationsModule}\r\n * @publicApi\r\n */\r\nexport declare interface BrowserAnimationsModuleConfig {\r\n    /**\r\n     *  Whether animations should be disabled. Passing this is identical to providing the\r\n     * `NoopAnimationsModule`, but it can be controlled based on a runtime value.\r\n     */\r\n    disableAnimations?: boolean;\r\n}\r\n\r\n/**\r\n * A null player that must be imported to allow disabling of animations.\r\n * @publicApi\r\n */\r\nexport declare class NoopAnimationsModule {\r\n}\r\n\r\nexport declare function ɵangular_packages_platform_browser_animations_animations_a(): ɵWebAnimationsDriver | ɵCssKeyframesDriver;\r\n\r\nexport declare function ɵangular_packages_platform_browser_animations_animations_b(): ɵWebAnimationsStyleNormalizer;\r\n\r\nexport declare function ɵangular_packages_platform_browser_animations_animations_c(renderer: ɵDomRendererFactory2, engine: ɵAnimationEngine, zone: NgZone): ɵAnimationRendererFactory;\r\n\r\n/**\r\n * Separate providers from the actual module so that we can do a local modification in Google3 to\r\n * include them in the BrowserModule.\r\n */\r\nexport declare const ɵangular_packages_platform_browser_animations_animations_d: Provider[];\r\n\r\n/**\r\n * Separate providers from the actual module so that we can do a local modification in Google3 to\r\n * include them in the BrowserTestingModule.\r\n */\r\nexport declare const ɵangular_packages_platform_browser_animations_animations_e: Provider[];\r\n\r\nexport declare class ɵangular_packages_platform_browser_animations_animations_f implements Renderer2 {\r\n    protected namespaceId: string;\r\n    delegate: Renderer2;\r\n    engine: ɵAnimationEngine;\r\n    constructor(namespaceId: string, delegate: Renderer2, engine: ɵAnimationEngine);\r\n    get data(): {\r\n        [key: string]: any;\r\n    };\r\n    destroyNode: ((n: any) => void) | null;\r\n    destroy(): void;\r\n    createElement(name: string, namespace?: string | null | undefined): any;\r\n    createComment(value: string): any;\r\n    createText(value: string): any;\r\n    appendChild(parent: any, newChild: any): void;\r\n    insertBefore(parent: any, newChild: any, refChild: any, isMove?: boolean): void;\r\n    removeChild(parent: any, oldChild: any, isHostElement: boolean): void;\r\n    selectRootElement(selectorOrNode: any, preserveContent?: boolean): any;\r\n    parentNode(node: any): any;\r\n    nextSibling(node: any): any;\r\n    setAttribute(el: any, name: string, value: string, namespace?: string | null | undefined): void;\r\n    removeAttribute(el: any, name: string, namespace?: string | null | undefined): void;\r\n    addClass(el: any, name: string): void;\r\n    removeClass(el: any, name: string): void;\r\n    setStyle(el: any, style: string, value: any, flags?: RendererStyleFlags2 | undefined): void;\r\n    removeStyle(el: any, style: string, flags?: RendererStyleFlags2 | undefined): void;\r\n    setProperty(el: any, name: string, value: any): void;\r\n    setValue(node: any, value: string): void;\r\n    listen(target: any, eventName: string, callback: (event: any) => boolean | void): () => void;\r\n    protected disableAnimations(element: any, value: boolean): void;\r\n}\r\n\r\nexport declare class ɵAnimationRenderer extends ɵangular_packages_platform_browser_animations_animations_f implements Renderer2 {\r\n    factory: ɵAnimationRendererFactory;\r\n    constructor(factory: ɵAnimationRendererFactory, namespaceId: string, delegate: Renderer2, engine: ɵAnimationEngine);\r\n    setProperty(el: any, name: string, value: any): void;\r\n    listen(target: 'window' | 'document' | 'body' | any, eventName: string, callback: (event: any) => any): () => void;\r\n}\r\n\r\nexport declare class ɵAnimationRendererFactory implements RendererFactory2 {\r\n    private delegate;\r\n    private engine;\r\n    private _zone;\r\n    private _currentId;\r\n    private _microtaskId;\r\n    private _animationCallbacksBuffer;\r\n    private _rendererCache;\r\n    private _cdRecurDepth;\r\n    private promise;\r\n    constructor(delegate: RendererFactory2, engine: ɵAnimationEngine, _zone: NgZone);\r\n    createRenderer(hostElement: any, type: RendererType2): Renderer2;\r\n    begin(): void;\r\n    private _scheduleCountTask;\r\n    end(): void;\r\n    whenRenderingDone(): Promise<any>;\r\n}\r\n\r\nexport declare class ɵBrowserAnimationBuilder extends AnimationBuilder {\r\n    private _nextAnimationId;\r\n    private _renderer;\r\n    constructor(rootRenderer: RendererFactory2, doc: any);\r\n    build(animation: AnimationMetadata | AnimationMetadata[]): AnimationFactory;\r\n}\r\n\r\nexport declare class ɵBrowserAnimationFactory extends AnimationFactory {\r\n    private _id;\r\n    private _renderer;\r\n    constructor(_id: string, _renderer: ɵAnimationRenderer);\r\n    create(element: any, options?: AnimationOptions): AnimationPlayer;\r\n}\r\n\r\nexport declare class ɵInjectableAnimationEngine extends ɵAnimationEngine implements OnDestroy {\r\n    constructor(doc: any, driver: AnimationDriver, normalizer: ɵAnimationStyleNormalizer);\r\n    ngOnDestroy(): void;\r\n}\r\n\r\nexport { }\r\n"]}
+{"version":3,"file":"animations.d.ts","sources":["animations.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA","sourcesContent":["/**\n * @license Angular v12.2.9\n * (c) 2010-2021 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { AnimationBuilder } from '@angular/animations';\r\nimport { AnimationDriver } from '@angular/animations/browser';\r\nimport { AnimationFactory } from '@angular/animations';\r\nimport { AnimationMetadata } from '@angular/animations';\r\nimport { AnimationOptions } from '@angular/animations';\r\nimport { AnimationPlayer } from '@angular/animations';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { ModuleWithProviders } from '@angular/core';\r\nimport { NgZone } from '@angular/core';\r\nimport { OnDestroy } from '@angular/core';\r\nimport { Provider } from '@angular/core';\r\nimport { Renderer2 } from '@angular/core';\r\nimport { RendererFactory2 } from '@angular/core';\r\nimport { RendererStyleFlags2 } from '@angular/core';\r\nimport { RendererType2 } from '@angular/core';\r\nimport { ɵAnimationEngine } from '@angular/animations/browser';\r\nimport { ɵAnimationStyleNormalizer } from '@angular/animations/browser';\r\nimport { ɵCssKeyframesDriver } from '@angular/animations/browser';\r\nimport { ɵDomRendererFactory2 } from '@angular/platform-browser';\r\nimport { ɵWebAnimationsDriver } from '@angular/animations/browser';\r\nimport { ɵWebAnimationsStyleNormalizer } from '@angular/animations/browser';\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const ANIMATION_MODULE_TYPE: InjectionToken<\"NoopAnimations\" | \"BrowserAnimations\">;\r\n\r\n/**\r\n * Exports `BrowserModule` with additional [dependency-injection providers](guide/glossary#provider)\r\n * for use with animations. See [Animations](guide/animations).\r\n * @publicApi\r\n */\r\nexport declare class BrowserAnimationsModule {\r\n    /**\r\n     * Configures the module based on the specified object.\r\n     *\r\n     * @param config Object used to configure the behavior of the `BrowserAnimationsModule`.\r\n     * @see `BrowserAnimationsModuleConfig`\r\n     *\r\n     * @usageNotes\r\n     * When registering the `BrowserAnimationsModule`, you can use the `withConfig`\r\n     * function as follows:\r\n     * ```\r\n     * @NgModule({\r\n     *   imports: [BrowserAnimationsModule.withConfig(config)]\r\n     * })\r\n     * class MyNgModule {}\r\n     * ```\r\n     */\r\n    static withConfig(config: BrowserAnimationsModuleConfig): ModuleWithProviders<BrowserAnimationsModule>;\r\n}\r\n\r\n/**\r\n * Object used to configure the behavior of {@link BrowserAnimationsModule}\r\n * @publicApi\r\n */\r\nexport declare interface BrowserAnimationsModuleConfig {\r\n    /**\r\n     *  Whether animations should be disabled. Passing this is identical to providing the\r\n     * `NoopAnimationsModule`, but it can be controlled based on a runtime value.\r\n     */\r\n    disableAnimations?: boolean;\r\n}\r\n\r\n/**\r\n * A null player that must be imported to allow disabling of animations.\r\n * @publicApi\r\n */\r\nexport declare class NoopAnimationsModule {\r\n}\r\n\r\nexport declare function ɵangular_packages_platform_browser_animations_animations_a(): ɵWebAnimationsDriver | ɵCssKeyframesDriver;\r\n\r\nexport declare function ɵangular_packages_platform_browser_animations_animations_b(): ɵWebAnimationsStyleNormalizer;\r\n\r\nexport declare function ɵangular_packages_platform_browser_animations_animations_c(renderer: ɵDomRendererFactory2, engine: ɵAnimationEngine, zone: NgZone): ɵAnimationRendererFactory;\r\n\r\n/**\r\n * Separate providers from the actual module so that we can do a local modification in Google3 to\r\n * include them in the BrowserModule.\r\n */\r\nexport declare const ɵangular_packages_platform_browser_animations_animations_d: Provider[];\r\n\r\n/**\r\n * Separate providers from the actual module so that we can do a local modification in Google3 to\r\n * include them in the BrowserTestingModule.\r\n */\r\nexport declare const ɵangular_packages_platform_browser_animations_animations_e: Provider[];\r\n\r\nexport declare class ɵangular_packages_platform_browser_animations_animations_f implements Renderer2 {\r\n    protected namespaceId: string;\r\n    delegate: Renderer2;\r\n    engine: ɵAnimationEngine;\r\n    constructor(namespaceId: string, delegate: Renderer2, engine: ɵAnimationEngine);\r\n    get data(): {\r\n        [key: string]: any;\r\n    };\r\n    destroyNode: ((n: any) => void) | null;\r\n    destroy(): void;\r\n    createElement(name: string, namespace?: string | null | undefined): any;\r\n    createComment(value: string): any;\r\n    createText(value: string): any;\r\n    appendChild(parent: any, newChild: any): void;\r\n    insertBefore(parent: any, newChild: any, refChild: any, isMove?: boolean): void;\r\n    removeChild(parent: any, oldChild: any, isHostElement: boolean): void;\r\n    selectRootElement(selectorOrNode: any, preserveContent?: boolean): any;\r\n    parentNode(node: any): any;\r\n    nextSibling(node: any): any;\r\n    setAttribute(el: any, name: string, value: string, namespace?: string | null | undefined): void;\r\n    removeAttribute(el: any, name: string, namespace?: string | null | undefined): void;\r\n    addClass(el: any, name: string): void;\r\n    removeClass(el: any, name: string): void;\r\n    setStyle(el: any, style: string, value: any, flags?: RendererStyleFlags2 | undefined): void;\r\n    removeStyle(el: any, style: string, flags?: RendererStyleFlags2 | undefined): void;\r\n    setProperty(el: any, name: string, value: any): void;\r\n    setValue(node: any, value: string): void;\r\n    listen(target: any, eventName: string, callback: (event: any) => boolean | void): () => void;\r\n    protected disableAnimations(element: any, value: boolean): void;\r\n}\r\n\r\nexport declare class ɵAnimationRenderer extends ɵangular_packages_platform_browser_animations_animations_f implements Renderer2 {\r\n    factory: ɵAnimationRendererFactory;\r\n    constructor(factory: ɵAnimationRendererFactory, namespaceId: string, delegate: Renderer2, engine: ɵAnimationEngine);\r\n    setProperty(el: any, name: string, value: any): void;\r\n    listen(target: 'window' | 'document' | 'body' | any, eventName: string, callback: (event: any) => any): () => void;\r\n}\r\n\r\nexport declare class ɵAnimationRendererFactory implements RendererFactory2 {\r\n    private delegate;\r\n    private engine;\r\n    private _zone;\r\n    private _currentId;\r\n    private _microtaskId;\r\n    private _animationCallbacksBuffer;\r\n    private _rendererCache;\r\n    private _cdRecurDepth;\r\n    private promise;\r\n    constructor(delegate: RendererFactory2, engine: ɵAnimationEngine, _zone: NgZone);\r\n    createRenderer(hostElement: any, type: RendererType2): Renderer2;\r\n    begin(): void;\r\n    private _scheduleCountTask;\r\n    end(): void;\r\n    whenRenderingDone(): Promise<any>;\r\n}\r\n\r\nexport declare class ɵBrowserAnimationBuilder extends AnimationBuilder {\r\n    private _nextAnimationId;\r\n    private _renderer;\r\n    constructor(rootRenderer: RendererFactory2, doc: any);\r\n    build(animation: AnimationMetadata | AnimationMetadata[]): AnimationFactory;\r\n}\r\n\r\nexport declare class ɵBrowserAnimationFactory extends AnimationFactory {\r\n    private _id;\r\n    private _renderer;\r\n    constructor(_id: string, _renderer: ɵAnimationRenderer);\r\n    create(element: any, options?: AnimationOptions): AnimationPlayer;\r\n}\r\n\r\nexport declare class ɵInjectableAnimationEngine extends ɵAnimationEngine implements OnDestroy {\r\n    constructor(doc: any, driver: AnimationDriver, normalizer: ɵAnimationStyleNormalizer);\r\n    ngOnDestroy(): void;\r\n}\r\n\r\nexport { }\r\n"]}
Index: trip-planner-front/node_modules/@angular/platform-browser/animations/package.json
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/animations/package.json	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/animations/package.json	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -12,8 +12,8 @@
   "es2015": "../fesm2015/animations.js",
   "__processed_by_ivy_ngcc__": {
-    "es2015": "12.2.13",
-    "fesm2015": "12.2.13",
-    "module": "12.2.13",
-    "typings": "12.2.13"
+    "es2015": "12.2.9",
+    "fesm2015": "12.2.9",
+    "module": "12.2.9",
+    "typings": "12.2.9"
   },
   "scripts": {
Index: trip-planner-front/node_modules/@angular/platform-browser/bundles/platform-browser-animations.umd.js
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/bundles/platform-browser-animations.umd.js	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/bundles/platform-browser-animations.umd.js	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,4 +1,4 @@
 /**
- * @license Angular v12.2.13
+ * @license Angular v12.2.9
  * (c) 2010-2021 Google LLC. https://angular.io/
  * License: MIT
Index: trip-planner-front/node_modules/@angular/platform-browser/bundles/platform-browser-testing.umd.js
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/bundles/platform-browser-testing.umd.js	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/bundles/platform-browser-testing.umd.js	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,4 +1,4 @@
 /**
- * @license Angular v12.2.13
+ * @license Angular v12.2.9
  * (c) 2010-2021 Google LLC. https://angular.io/
  * License: MIT
Index: trip-planner-front/node_modules/@angular/platform-browser/bundles/platform-browser.umd.js
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/bundles/platform-browser.umd.js	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/bundles/platform-browser.umd.js	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,4 +1,4 @@
 /**
- * @license Angular v12.2.13
+ * @license Angular v12.2.9
  * (c) 2010-2021 Google LLC. https://angular.io/
  * License: MIT
@@ -2406,5 +2406,5 @@
      * @publicApi
      */
-    var VERSION = new i0.Version('12.2.13');
+    var VERSION = new i0.Version('12.2.9');
 
     /**
Index: trip-planner-front/node_modules/@angular/platform-browser/bundles/platform-browser.umd.js.map
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/bundles/platform-browser.umd.js.map	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/bundles/platform-browser.umd.js.map	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,1 +1,1 @@
-{"version":3,"file":"platform-browser.umd.js","sources":["../../../../../external/npm/node_modules/tslib/tslib.es6.js","../../../../../packages/platform-browser/src/browser/generic_browser_adapter.ts","../../../../../packages/platform-browser/src/browser/browser_adapter.ts","../../../../../packages/platform-browser/src/browser/server-transition.ts","../../../../../packages/platform-browser/src/browser/testability.ts","../../../../../packages/platform-browser/src/browser/xhr.ts","../../../../../packages/platform-browser/src/dom/util.ts","../../../../../packages/platform-browser/src/dom/debug/ng_probe.ts","../../../../../packages/platform-browser/src/dom/events/event_manager.ts","../../../../../packages/platform-browser/src/dom/shared_styles_host.ts","../../../../../packages/platform-browser/src/dom/dom_renderer.ts","../../../../../packages/platform-browser/src/dom/events/dom_events.ts","../../../../../packages/platform-browser/src/dom/events/hammer_gestures.ts","../../../../../packages/platform-browser/src/dom/events/key_events.ts","../../../../../packages/platform-browser/src/security/dom_sanitization_service.ts","../../../../../packages/platform-browser/src/browser.ts","../../../../../packages/platform-browser/src/browser/meta.ts","../../../../../packages/platform-browser/src/browser/title.ts","../../../../../packages/platform-browser/src/browser/tools/browser.ts","../../../../../packages/platform-browser/src/browser/tools/common_tools.ts","../../../../../packages/platform-browser/src/browser/tools/tools.ts","../../../../../packages/platform-browser/src/browser/transfer_state.ts","../../../../../packages/platform-browser/src/dom/debug/by.ts","../../../../../packages/platform-browser/src/private_export.ts","../../../../../packages/platform-browser/src/version.ts","../../../../../packages/platform-browser/src/platform-browser.ts","../../../../../packages/platform-browser/public_api.ts","../../../../../packages/platform-browser/index.ts","../../../../../packages/platform-browser/platform-browser.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\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.io/license\n */\n\nimport {ɵDomAdapter as DomAdapter} from '@angular/common';\n\n\n\n/**\n * Provides DOM operations in any browser environment.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class GenericBrowserDomAdapter extends DomAdapter {\n  readonly supportsDOMEvents: boolean = true;\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.io/license\n */\n\nimport {ɵparseCookieValue as parseCookieValue, ɵsetRootDomAdapter as setRootDomAdapter} from '@angular/common';\n\nimport {GenericBrowserDomAdapter} from './generic_browser_adapter';\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 */\n/* tslint:disable:requireParameterType no-console */\nexport class BrowserDomAdapter extends GenericBrowserDomAdapter {\n  static makeCurrent() {\n    setRootDomAdapter(new BrowserDomAdapter());\n  }\n\n  onAndCancel(el: Node, evt: any, listener: any): Function {\n    el.addEventListener(evt, listener, false);\n    // Needed to follow Dart's subscription semantic, until fix of\n    // https://code.google.com/p/dart/issues/detail?id=17406\n    return () => {\n      el.removeEventListener(evt, listener, false);\n    };\n  }\n  dispatchEvent(el: Node, evt: any) {\n    el.dispatchEvent(evt);\n  }\n  remove(node: Node): void {\n    if (node.parentNode) {\n      node.parentNode.removeChild(node);\n    }\n  }\n  createElement(tagName: string, doc?: Document): HTMLElement {\n    doc = doc || this.getDefaultDocument();\n    return doc.createElement(tagName);\n  }\n  createHtmlDocument(): HTMLDocument {\n    return document.implementation.createHTMLDocument('fakeTitle');\n  }\n  getDefaultDocument(): Document {\n    return document;\n  }\n\n  isElementNode(node: Node): boolean {\n    return node.nodeType === Node.ELEMENT_NODE;\n  }\n\n  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  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  getBaseHref(doc: Document): string|null {\n    const href = getBaseElementHref();\n    return href == null ? null : relativePath(href);\n  }\n  resetBaseElement(): void {\n    baseElement = null;\n  }\n  getUserAgent(): string {\n    return window.navigator.userAgent;\n  }\n  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.querySelector('base');\n  return baseElement ? baseElement.getAttribute('href') : null;\n}\n\n// based on urlUtils.js in AngularJS 1\nlet urlParsingNode: HTMLAnchorElement|undefined;\nfunction relativePath(url: any): string {\n  urlParsingNode = urlParsingNode || document.createElement('a');\n  urlParsingNode.setAttribute('href', url);\n  const pathName = urlParsingNode.pathname;\n  return pathName.charAt(0) === '/' ? pathName : `/${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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {APP_INITIALIZER, ApplicationInitStatus, InjectionToken, Injector, StaticProvider} from '@angular/core';\n\n/**\n * An id that identifies a particular application being bootstrapped, that should\n * match across the client/server boundary.\n */\nexport const TRANSITION_ID = new InjectionToken('TRANSITION_ID');\n\nexport function appInitializerFactory(transitionId: string, document: any, injector: Injector) {\n  return () => {\n    // Wait for all application initializers to be completed before removing the styles set by\n    // the server.\n    injector.get(ApplicationInitStatus).donePromise.then(() => {\n      const dom = getDOM();\n      const styles: HTMLCollectionOf<HTMLStyleElement> =\n          document.querySelectorAll(`style[ng-transition=\"${transitionId}\"]`);\n      for (let i = 0; i < styles.length; i++) {\n        dom.remove(styles[i]);\n      }\n    });\n  };\n}\n\nexport const SERVER_TRANSITION_PROVIDERS: StaticProvider[] = [\n  {\n    provide: APP_INITIALIZER,\n    useFactory: appInitializerFactory,\n    deps: [TRANSITION_ID, DOCUMENT, Injector],\n    multi: 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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {GetTestability, setTestabilityGetter, Testability, TestabilityRegistry, ɵglobal as global} from '@angular/core';\n\nexport class BrowserGetTestability implements GetTestability {\n  static init() {\n    setTestabilityGetter(new BrowserGetTestability());\n  }\n\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 Error('Could not find testability for element.');\n      }\n      return testability;\n    };\n\n    global['getAllAngularTestabilities'] = () => registry.getAllTestabilities();\n\n    global['getAllAngularRootElements'] = () => registry.getAllRootElements();\n\n    const whenAllStable = (callback: any /** TODO #9100 */) => {\n      const testabilities = global['getAllAngularTestabilities']();\n      let count = testabilities.length;\n      let didWork = false;\n      const decrement = function(didWork_: any /** TODO #9100 */) {\n        didWork = didWork || didWork_;\n        count--;\n        if (count == 0) {\n          callback(didWork);\n        }\n      };\n      testabilities.forEach(function(testability: any /** TODO #9100 */) {\n        testability.whenStable(decrement);\n      });\n    };\n\n    if (!global['frameworkStabilizers']) {\n      global['frameworkStabilizers'] = [];\n    }\n    global['frameworkStabilizers'].push(whenAllStable);\n  }\n\n  findTestabilityInTree(registry: TestabilityRegistry, elem: any, 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.io/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.io/license\n */\n\nimport {ɵglobal as global} from '@angular/core';\n\nconst CAMEL_CASE_REGEXP = /([A-Z])/g;\nconst DASH_CASE_REGEXP = /-([a-z])/g;\n\n\nexport function camelCaseToDashCase(input: string): string {\n  return input.replace(CAMEL_CASE_REGEXP, (...m: string[]) => '-' + m[1].toLowerCase());\n}\n\nexport function dashCaseToCamelCase(input: string): string {\n  return input.replace(DASH_CASE_REGEXP, (...m: string[]) => m[1].toUpperCase());\n}\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.io/license\n */\n\nimport {APP_INITIALIZER, ApplicationRef, DebugNode, NgProbeToken, NgZone, Optional, Provider, ɵgetDebugNodeR2} from '@angular/core';\n\nimport {exportNgVar} from '../util';\n\nconst CORE_TOKENS = (() => ({\n                       'ApplicationRef': ApplicationRef,\n                       'NgZone': NgZone,\n                     }))();\n\nconst INSPECT_GLOBAL_NAME = 'probe';\nconst CORE_TOKENS_GLOBAL_NAME = 'coreTokens';\n\n/**\n * Returns a {@link DebugElement} for the given native DOM element, or\n * null if the given native element does not have an Angular view associated\n * with it.\n */\nexport function inspectNativeElementR2(element: any): DebugNode|null {\n  return ɵgetDebugNodeR2(element);\n}\n\nexport function _createNgProbeR2(coreTokens: NgProbeToken[]): any {\n  exportNgVar(INSPECT_GLOBAL_NAME, inspectNativeElementR2);\n  exportNgVar(CORE_TOKENS_GLOBAL_NAME, {...CORE_TOKENS, ..._ngProbeTokensToMap(coreTokens || [])});\n  return () => inspectNativeElementR2;\n}\n\nfunction _ngProbeTokensToMap(tokens: NgProbeToken[]): {[name: string]: any} {\n  return tokens.reduce((prev: any, t: any) => (prev[t.name] = t.token, prev), {});\n}\n\n/**\n * In Ivy, we don't support NgProbe because we have our own set of testing utilities\n * with more robust functionality.\n *\n * We shouldn't bring in NgProbe because it prevents DebugNode and friends from\n * tree-shaking properly.\n */\nexport const ELEMENT_PROBE_PROVIDERS__POST_R3__ = [];\n\n/**\n * Providers which support debugging Angular applications (e.g. via `ng.probe`).\n */\nexport const ELEMENT_PROBE_PROVIDERS__PRE_R3__: Provider[] = [\n  {\n    provide: APP_INITIALIZER,\n    useFactory: _createNgProbeR2,\n    deps: [\n      [NgProbeToken, new Optional()],\n    ],\n    multi: true,\n  },\n];\n\nexport const ELEMENT_PROBE_PROVIDERS = ELEMENT_PROBE_PROVIDERS__PRE_R3__;\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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, InjectionToken, NgZone} from '@angular/core';\n\n/**\n * The injection token for the event-manager plug-in service.\n *\n * @publicApi\n */\nexport const EVENT_MANAGER_PLUGINS =\n    new InjectionToken<EventManagerPlugin[]>('EventManagerPlugins');\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(@Inject(EVENT_MANAGER_PLUGINS) plugins: EventManagerPlugin[], private _zone: NgZone) {\n    plugins.forEach(p => p.manager = this);\n    this._plugins = plugins.slice().reverse();\n  }\n\n  /**\n   * Registers a handler for a specific element and event.\n   *\n   * @param element The HTML element to receive event notifications.\n   * @param eventName The name of the event to listen for.\n   * @param handler A function to call when the notification occurs. Receives the\n   * event object as an argument.\n   * @returns  A callback function that can be used to remove the handler.\n   */\n  addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n    const plugin = this._findPluginFor(eventName);\n    return plugin.addEventListener(element, eventName, handler);\n  }\n\n  /**\n   * Registers a global handler for an event in a target view.\n   *\n   * @param target A target for global event notifications. One of \"window\", \"document\", or \"body\".\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   * @returns A callback function that can be used to remove the handler.\n   * @deprecated No longer being used in Ivy code. To be removed in version 14.\n   */\n  addGlobalEventListener(target: string, eventName: string, handler: Function): Function {\n    const plugin = this._findPluginFor(eventName);\n    return plugin.addGlobalEventListener(target, eventName, handler);\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    const plugin = this._eventNameToPlugin.get(eventName);\n    if (plugin) {\n      return plugin;\n    }\n\n    const plugins = this._plugins;\n    for (let i = 0; i < plugins.length; i++) {\n      const plugin = plugins[i];\n      if (plugin.supports(eventName)) {\n        this._eventNameToPlugin.set(eventName, plugin);\n        return plugin;\n      }\n    }\n    throw new Error(`No event manager plugin found for event ${eventName}`);\n  }\n}\n\nexport abstract class EventManagerPlugin {\n  constructor(private _doc: any) {}\n\n  // TODO(issue/24571): remove '!'.\n  manager!: EventManager;\n\n  abstract supports(eventName: string): boolean;\n\n  abstract addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\n\n  addGlobalEventListener(element: string, eventName: string, handler: Function): Function {\n    const target: HTMLElement = getDOM().getGlobalEventTarget(this._doc, element);\n    if (!target) {\n      throw new Error(`Unsupported event target ${target} for event ${eventName}`);\n    }\n    return this.addEventListener(target, eventName, handler);\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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, OnDestroy} from '@angular/core';\n\n@Injectable()\nexport class SharedStylesHost {\n  /** @internal */\n  protected _stylesSet = new Set<string>();\n\n  addStyles(styles: string[]): void {\n    const additions = new Set<string>();\n    styles.forEach(style => {\n      if (!this._stylesSet.has(style)) {\n        this._stylesSet.add(style);\n        additions.add(style);\n      }\n    });\n    this.onStylesAdded(additions);\n  }\n\n  onStylesAdded(additions: Set<string>): void {}\n\n  getAllStyles(): string[] {\n    return Array.from(this._stylesSet);\n  }\n}\n\n@Injectable()\nexport class DomSharedStylesHost extends SharedStylesHost implements OnDestroy {\n  // Maps all registered host nodes to a list of style nodes that have been added to the host node.\n  private _hostNodes = new Map<Node, Node[]>();\n\n  constructor(@Inject(DOCUMENT) private _doc: any) {\n    super();\n    this._hostNodes.set(_doc.head, []);\n  }\n\n  private _addStylesToHost(styles: Set<string>, host: Node, styleNodes: Node[]): void {\n    styles.forEach((style: string) => {\n      const styleEl = this._doc.createElement('style');\n      styleEl.textContent = style;\n      styleNodes.push(host.appendChild(styleEl));\n    });\n  }\n\n  addHost(hostNode: Node): void {\n    const styleNodes: Node[] = [];\n    this._addStylesToHost(this._stylesSet, hostNode, styleNodes);\n    this._hostNodes.set(hostNode, styleNodes);\n  }\n\n  removeHost(hostNode: Node): void {\n    const styleNodes = this._hostNodes.get(hostNode);\n    if (styleNodes) {\n      styleNodes.forEach(removeStyle);\n    }\n    this._hostNodes.delete(hostNode);\n  }\n\n  override onStylesAdded(additions: Set<string>): void {\n    this._hostNodes.forEach((styleNodes, hostNode) => {\n      this._addStylesToHost(additions, hostNode, styleNodes);\n    });\n  }\n\n  ngOnDestroy(): void {\n    this._hostNodes.forEach(styleNodes => styleNodes.forEach(removeStyle));\n  }\n}\n\nfunction removeStyle(styleNode: Node): void {\n  getDOM().remove(styleNode);\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.io/license\n */\n\nimport {APP_ID, Inject, Injectable, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2, ViewEncapsulation} from '@angular/core';\n\nimport {EventManager} from './events/event_manager';\nimport {DomSharedStylesHost} 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};\n\nconst COMPONENT_REGEX = /%COMP%/g;\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\n\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\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 flattenStyles(\n    compId: string, styles: Array<any|any[]>, target: string[]): string[] {\n  for (let i = 0; i < styles.length; i++) {\n    let style = styles[i];\n\n    if (Array.isArray(style)) {\n      flattenStyles(compId, style, target);\n    } else {\n      style = style.replace(COMPONENT_REGEX, compId);\n      target.push(style);\n    }\n  }\n  return target;\n}\n\nfunction 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 the\n  // two differently. In the first case, the special '__ngUnwrap__' token is passed to the unwrap\n  // 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 debug_node\n    // can inspect the listener toString contents for the existence of this special token. Because\n    // the token is a string literal, it is ensured to not be modified by compiled code.\n    if (event === '__ngUnwrap__') {\n      return eventHandler;\n    }\n\n    const allowDefaultBehavior = eventHandler(event);\n    if (allowDefaultBehavior === false) {\n      // TODO(tbosch): move preventDefault into event plugins...\n      event.preventDefault();\n      event.returnValue = false;\n    }\n\n    return undefined;\n  };\n}\n\nlet hasLoggedNativeEncapsulationWarning = false;\n\n@Injectable()\nexport class DomRendererFactory2 implements RendererFactory2 {\n  private rendererByCompId = new Map<string, Renderer2>();\n  private defaultRenderer: Renderer2;\n\n  constructor(\n      private eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n      @Inject(APP_ID) private appId: string) {\n    this.defaultRenderer = new DefaultDomRenderer2(eventManager);\n  }\n\n  createRenderer(element: any, type: RendererType2|null): Renderer2 {\n    if (!element || !type) {\n      return this.defaultRenderer;\n    }\n    switch (type.encapsulation) {\n      case ViewEncapsulation.Emulated: {\n        let renderer = this.rendererByCompId.get(type.id);\n        if (!renderer) {\n          renderer = new EmulatedEncapsulationDomRenderer2(\n              this.eventManager, this.sharedStylesHost, type, this.appId);\n          this.rendererByCompId.set(type.id, renderer);\n        }\n        (<EmulatedEncapsulationDomRenderer2>renderer).applyToHost(element);\n        return renderer;\n      }\n      // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an enum\n      // value that is not known (but previously was the value for ViewEncapsulation.Native)\n      case 1:\n      case ViewEncapsulation.ShadowDom:\n        // TODO(FW-2290): remove the `case 1:` fallback logic and the warning in v12.\n        if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n            // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an\n            // enum value that is not known (but previously was the value for\n            // ViewEncapsulation.Native)\n            !hasLoggedNativeEncapsulationWarning && type.encapsulation === 1) {\n          hasLoggedNativeEncapsulationWarning = true;\n          console.warn(\n              'ViewEncapsulation.Native is no longer supported. Falling back to ViewEncapsulation.ShadowDom. The fallback will be removed in v12.');\n        }\n\n        return new ShadowDomRenderer(this.eventManager, this.sharedStylesHost, element, type);\n      default: {\n        if (!this.rendererByCompId.has(type.id)) {\n          const styles = flattenStyles(type.id, type.styles, []);\n          this.sharedStylesHost.addStyles(styles);\n          this.rendererByCompId.set(type.id, this.defaultRenderer);\n        }\n        return this.defaultRenderer;\n      }\n    }\n  }\n\n  begin() {}\n  end() {}\n}\n\nclass DefaultDomRenderer2 implements Renderer2 {\n  data: {[key: string]: any} = Object.create(null);\n\n  constructor(private eventManager: EventManager) {}\n\n  destroy(): void {}\n\n  destroyNode: null;\n\n  createElement(name: string, namespace?: string): any {\n    if (namespace) {\n      // In cases where Ivy (not ViewEngine) is giving us the actual namespace, the look up by key\n      // will result in undefined, so we just return the namespace here.\n      return document.createElementNS(NAMESPACE_URIS[namespace] || namespace, name);\n    }\n\n    return document.createElement(name);\n  }\n\n  createComment(value: string): any {\n    return document.createComment(value);\n  }\n\n  createText(value: string): any {\n    return document.createTextNode(value);\n  }\n\n  appendChild(parent: any, newChild: any): void {\n    parent.appendChild(newChild);\n  }\n\n  insertBefore(parent: any, newChild: any, refChild: any): void {\n    if (parent) {\n      parent.insertBefore(newChild, refChild);\n    }\n  }\n\n  removeChild(parent: any, oldChild: any): void {\n    if (parent) {\n      parent.removeChild(oldChild);\n    }\n  }\n\n  selectRootElement(selectorOrNode: string|any, preserveContent?: boolean): any {\n    let el: any = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) :\n                                                       selectorOrNode;\n    if (!el) {\n      throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\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      // TODO(FW-811): Ivy may cause issues here because it's passing around\n      // full URIs for namespaces, therefore this lookup will fail.\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      // TODO(FW-811): Ivy may cause issues here because it's passing around\n      // full URIs for namespaces, therefore this lookup will fail.\n      const namespaceUri = NAMESPACE_URIS[namespace];\n      if (namespaceUri) {\n        el.removeAttributeNS(namespaceUri, name);\n      } else {\n        // TODO(FW-811): Since ivy is passing around full URIs for namespaces\n        // this could result in properties like `http://www.w3.org/2000/svg:cx=\"123\"`,\n        // which is wrong.\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      el.style.removeProperty(style);\n    } else {\n      // IE requires '' instead of null\n      // see https://github.com/angular/angular/issues/7916\n      el.style[style] = '';\n    }\n  }\n\n  setProperty(el: any, name: string, value: any): void {\n    NG_DEV_MODE && checkNoSyntheticProp(name, 'property');\n    el[name] = value;\n  }\n\n  setValue(node: any, value: string): void {\n    node.nodeValue = value;\n  }\n\n  listen(target: 'window'|'document'|'body'|any, event: string, callback: (event: any) => boolean):\n      () => void {\n    NG_DEV_MODE && checkNoSyntheticProp(event, 'listener');\n    if (typeof target === 'string') {\n      return <() => void>this.eventManager.addGlobalEventListener(\n          target, event, decoratePreventDefault(callback));\n    }\n    return <() => void>this.eventManager.addEventListener(\n               target, event, decoratePreventDefault(callback)) as () => void;\n  }\n}\n\nconst AT_CHARCODE = (() => '@'.charCodeAt(0))();\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n  if (name.charCodeAt(0) === AT_CHARCODE) {\n    throw new Error(`Unexpected synthetic ${nameKind} ${name} found. Please make sure that:\n  - Either \\`BrowserAnimationsModule\\` or \\`NoopAnimationsModule\\` are imported in your application.\n  - There is corresponding configuration for the animation named \\`${\n        name}\\` defined in the \\`animations\\` field of the \\`@Component\\` decorator (see https://angular.io/api/core/Component#animations).`);\n  }\n}\n\nclass EmulatedEncapsulationDomRenderer2 extends DefaultDomRenderer2 {\n  private contentAttr: string;\n  private hostAttr: string;\n\n  constructor(\n      eventManager: EventManager, sharedStylesHost: DomSharedStylesHost,\n      private component: RendererType2, appId: string) {\n    super(eventManager);\n    const styles = flattenStyles(appId + '-' + component.id, component.styles, []);\n    sharedStylesHost.addStyles(styles);\n\n    this.contentAttr = shimContentAttribute(appId + '-' + component.id);\n    this.hostAttr = shimHostAttribute(appId + '-' + component.id);\n  }\n\n  applyToHost(element: any) {\n    super.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\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n  private shadowRoot: any;\n\n  constructor(\n      eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n      private hostEl: any, component: RendererType2) {\n    super(eventManager);\n    this.shadowRoot = (hostEl as any).attachShadow({mode: 'open'});\n    this.sharedStylesHost.addHost(this.shadowRoot);\n    const styles = flattenStyles(component.id, component.styles, []);\n    for (let i = 0; i < styles.length; i++) {\n      const styleEl = document.createElement('style');\n      styleEl.textContent = styles[i];\n      this.shadowRoot.appendChild(styleEl);\n    }\n  }\n\n  private nodeOrShadowRoot(node: any): any {\n    return node === this.hostEl ? this.shadowRoot : node;\n  }\n\n  override destroy() {\n    this.sharedStylesHost.removeHost(this.shadowRoot);\n  }\n\n  override appendChild(parent: any, newChild: any): void {\n    return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n  }\n  override insertBefore(parent: any, newChild: any, refChild: any): void {\n    return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n  }\n  override removeChild(parent: any, oldChild: any): void {\n    return super.removeChild(this.nodeOrShadowRoot(parent), oldChild);\n  }\n  override parentNode(node: any): any {\n    return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\nimport {EventManagerPlugin} from './event_manager';\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(element: HTMLElement, eventName: string, handler: Function): Function {\n    element.addEventListener(eventName, handler as EventListener, false);\n    return () => this.removeEventListener(element, eventName, handler as EventListener);\n  }\n\n  removeEventListener(target: any, eventName: string, callback: Function): void {\n    return target.removeEventListener(eventName, callback as EventListener);\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, InjectionToken, NgModule, Optional, Provider, ɵConsole as Console} from '@angular/core';\n\nimport {EVENT_MANAGER_PLUGINS, EventManagerPlugin} from './event_manager';\n\n\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 `HammerGestureConfig`\n *\n * @ngModule HammerModule\n * @publicApi\n */\nexport const HAMMER_GESTURE_CONFIG = new InjectionToken<HammerGestureConfig>('HammerGestureConfig');\n\n\n/**\n * Function that loads HammerJS, returning a promise that is resolved once HammerJs is loaded.\n *\n * @publicApi\n */\nexport type HammerLoader = () => Promise<void>;\n\n/**\n * Injection token used to provide a {@link HammerLoader} to Angular.\n *\n * @publicApi\n */\nexport const HAMMER_LOADER = new InjectionToken<HammerLoader>('HammerLoader');\n\nexport interface HammerInstance {\n  on(eventName: string, callback?: Function): void;\n  off(eventName: string, callback?: Function): void;\n  destroy?(): void;\n}\n\n/**\n * An injectable [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n * for gesture recognition. Configures specific event recognition.\n * @publicApi\n */\n@Injectable()\nexport class HammerGestureConfig {\n  /**\n   * A set of supported event names for gestures to be used in Angular.\n   * Angular supports all built-in recognizers, as listed in\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   */\n  events: string[] = [];\n\n  /**\n   * Maps gesture event names to a set of configuration options\n   * that specify overrides to the default values for specific properties.\n   *\n   * The key is a supported event name to be configured,\n   * and the options object contains a set of properties, with override values\n   * to be applied to the named recognizer event.\n   * For example, to disable recognition of the rotate event, specify\n   *  `{\"rotate\": {\"enable\": false}}`.\n   *\n   * Properties that are not present take the HammerJS default values.\n   * For information about which properties are supported for which events,\n   * and their allowed and default values, see\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   *\n   */\n  overrides: {[key: string]: Object} = {};\n\n  /**\n   * Properties whose default values can be overridden for a given event.\n   * Different sets of properties apply to different events.\n   * For information about which properties are supported for which events,\n   * and their allowed and default values, see\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   */\n  options?: {\n    cssProps?: any;\n    domEvents?: boolean;\n    enable?: boolean | ((manager: any) => boolean);\n    preset?: any[];\n    touchAction?: string;\n    recognizers?: any[];\n    inputClass?: any;\n    inputTarget?: EventTarget;\n  };\n\n  /**\n   * Creates a [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n   * and attaches it to a given HTML element.\n   * @param element The element that will recognize gestures.\n   * @returns A HammerJS event-manager object.\n   */\n  buildHammer(element: HTMLElement): HammerInstance {\n    const mc = new Hammer!(element, this.options);\n\n    mc.get('pinch').set({enable: true});\n    mc.get('rotate').set({enable: true});\n\n    for (const eventName in this.overrides) {\n      mc.get(eventName).set(this.overrides[eventName]);\n    }\n\n    return mc;\n  }\n}\n\n/**\n * Event plugin that adds Hammer support to an application.\n *\n * @ngModule HammerModule\n */\n@Injectable()\nexport class HammerGesturesPlugin extends EventManagerPlugin {\n  private _loaderPromise: Promise<void>|null = null;\n\n  constructor(\n      @Inject(DOCUMENT) doc: any,\n      @Inject(HAMMER_GESTURE_CONFIG) private _config: HammerGestureConfig, private console: Console,\n      @Optional() @Inject(HAMMER_LOADER) private loader?: HammerLoader|null) {\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        this.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      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 || 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      this._loaderPromise\n          .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                this.console.warn(\n                    `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 removal.\n              deregister = this.addEventListener(element, eventName, handler);\n            }\n          })\n          .catch(() => {\n            if (typeof ngDevMode === 'undefined' || ngDevMode) {\n              this.console.warn(\n                  `The \"${eventName}\" event cannot be bound because the custom ` +\n                  `Hammer.JS loader failed.`);\n            }\n            deregister = () => {};\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 * In Ivy, support for Hammer gestures is optional, so applications must\n * import the `HammerModule` at root to turn on support. This means that\n * Hammer-specific code can be tree-shaken away if not needed.\n */\nexport const HAMMER_PROVIDERS__POST_R3__ = [];\n\n/**\n * In View Engine, support for Hammer gestures is built-in by default.\n */\nexport const HAMMER_PROVIDERS__PRE_R3__: Provider[] = [\n  {\n    provide: EVENT_MANAGER_PLUGINS,\n    useClass: HammerGesturesPlugin,\n    multi: true,\n    deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, Console, [new Optional(), HAMMER_LOADER]]\n  },\n  {provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: []},\n];\n\nexport const HAMMER_PROVIDERS = HAMMER_PROVIDERS__PRE_R3__;\n\n/**\n * Adds support for HammerJS.\n *\n * Import this module at the root of your application so that Angular can work with\n * HammerJS to detect gesture events.\n *\n * Note that applications still need to include the HammerJS script itself. This module\n * simply sets up the coordination layer between HammerJS and Angular's EventManager.\n *\n * @publicApi\n */\n@NgModule({providers: HAMMER_PROVIDERS__PRE_R3__})\nexport class HammerModule {\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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Defines supported modifiers for key events.\n */\nconst MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\n\nconst DOM_KEY_LOCATION_NUMPAD = 3;\n\n// Map to convert some key or keyIdentifier values to what will be returned by getEventKey\nconst _keyMap: {[k: string]: string} = {\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/\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// There is a bug in Chrome for numeric keypad keys:\n// https://code.google.com/p/chromium/issues/detail?id=155654\n// 1, 2, 3 ... are reported as A, B, C ...\nconst _chromeNumKeyPadMap = {\n  'A': '1',\n  'B': '2',\n  'C': '3',\n  'D': '4',\n  'E': '5',\n  'F': '6',\n  'G': '7',\n  'H': '8',\n  'I': '9',\n  'J': '*',\n  'K': '+',\n  'M': '-',\n  'N': '.',\n  'O': '/',\n  '\\x60': '0',\n  '\\x90': 'NumLock'\n};\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 * @publicApi\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(element: HTMLElement, eventName: string, handler: Function): Function {\n    const parsedEvent = KeyEventsPlugin.parseEventName(eventName)!;\n\n    const outsideHandler =\n        KeyEventsPlugin.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());\n\n    return this.manager.getZone().runOutsideAngular(() => {\n      return getDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);\n    });\n  }\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    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  static getEventFullKey(event: KeyboardEvent): string {\n    let fullKey = '';\n    let key = getEventKey(event);\n    key = key.toLowerCase();\n    if (key === ' ') {\n      key = 'space';  // for readability\n    } else if (key === '.') {\n      key = 'dot';  // because '.' is used as a separator in event names\n    }\n    MODIFIER_KEYS.forEach(modifierName => {\n      if (modifierName != key) {\n        const modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n        if (modifierGetter(event)) {\n          fullKey += modifierName + '.';\n        }\n      }\n    });\n    fullKey += key;\n    return fullKey;\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: any, handler: Function, zone: NgZone): Function {\n    return (event: any /** TODO #9100 */) => {\n      if (KeyEventsPlugin.getEventFullKey(event) === fullKey) {\n        zone.runGuarded(() => handler(event));\n      }\n    };\n  }\n\n  /** @internal */\n  static _normalizeKey(keyName: string): string {\n    // TODO: switch to a Map if the mapping grows too much\n    switch (keyName) {\n      case 'esc':\n        return 'escape';\n      default:\n        return keyName;\n    }\n  }\n}\n\nfunction getEventKey(event: any): string {\n  let key = event.key;\n  if (key == null) {\n    key = event.keyIdentifier;\n    // keyIdentifier is defined in the old draft of DOM Level 3 Events implemented by Chrome and\n    // Safari cf\n    // https://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/events.html#Events-KeyboardEvents-Interfaces\n    if (key == null) {\n      return 'Unidentified';\n    }\n    if (key.startsWith('U+')) {\n      key = String.fromCharCode(parseInt(key.substring(2), 16));\n      if (event.location === DOM_KEY_LOCATION_NUMPAD && _chromeNumKeyPadMap.hasOwnProperty(key)) {\n        // There is a bug in Chrome for numeric keypad keys:\n        // https://code.google.com/p/chromium/issues/detail?id=155654\n        // 1, 2, 3 ... are reported as A, B, C ...\n        key = (_chromeNumKeyPadMap as any)[key];\n      }\n    }\n  }\n\n  return _keyMap[key] || key;\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {forwardRef, Inject, Injectable, Injector, Sanitizer, SecurityContext, ɵ_sanitizeHtml as _sanitizeHtml, ɵ_sanitizeUrl as _sanitizeUrl, ɵallowSanitizationBypassAndThrow as allowSanitizationBypassOrThrow, ɵbypassSanitizationTrustHtml as bypassSanitizationTrustHtml, ɵbypassSanitizationTrustResourceUrl as bypassSanitizationTrustResourceUrl, ɵbypassSanitizationTrustScript as bypassSanitizationTrustScript, ɵbypassSanitizationTrustStyle as bypassSanitizationTrustStyle, ɵbypassSanitizationTrustUrl as bypassSanitizationTrustUrl, ɵBypassType as BypassType, ɵgetSanitizationBypassType as getSanitizationBypassType, ɵunwrapSafeValue as unwrapSafeValue} from '@angular/core';\n\nexport {SecurityContext};\n\n\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   * Sanitizes a value for use in the given SecurityContext.\n   *\n   * If value is trusted for the context, this method will unwrap the contained safe value and use\n   * it directly. Otherwise, value will be sanitized to be safe in the given context, for example\n   * by replacing URLs that have an unsafe protocol part (such as `javascript:`). The implementation\n   * is responsible to make sure that the value can definitely be safely used in the given context.\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\nexport function domSanitizerImplFactory(injector: Injector) {\n  return new DomSanitizerImpl(injector.get(DOCUMENT));\n}\n\n@Injectable({providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [Injector]})\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 Error('unsafe value used in a script context');\n      case SecurityContext.URL:\n        const type = getSanitizationBypassType(value);\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 Error(\n            'unsafe value used in a resource URL context (see https://g.co/ng/security#xss)');\n      default:\n        throw new Error(`Unexpected SecurityContext ${ctx} (see https://g.co/ng/security#xss)`);\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.io/license\n */\n\nimport {CommonModule, DOCUMENT, XhrFactory, ɵPLATFORM_BROWSER_ID as PLATFORM_BROWSER_ID} from '@angular/common';\nimport {APP_ID, ApplicationModule, createPlatformFactory, ErrorHandler, Inject, ModuleWithProviders, NgModule, NgZone, Optional, PLATFORM_ID, PLATFORM_INITIALIZER, platformCore, PlatformRef, RendererFactory2, Sanitizer, SkipSelf, StaticProvider, Testability, ɵINJECTOR_SCOPE as INJECTOR_SCOPE, ɵsetDocument} from '@angular/core';\n\nimport {BrowserDomAdapter} from './browser/browser_adapter';\nimport {SERVER_TRANSITION_PROVIDERS, TRANSITION_ID} from './browser/server-transition';\nimport {BrowserGetTestability} from './browser/testability';\nimport {BrowserXhr} from './browser/xhr';\nimport {ELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nimport {DomRendererFactory2} from './dom/dom_renderer';\nimport {DomEventsPlugin} from './dom/events/dom_events';\nimport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nimport {HAMMER_PROVIDERS} from './dom/events/hammer_gestures';\nimport {KeyEventsPlugin} from './dom/events/key_events';\nimport {DomSharedStylesHost, SharedStylesHost} from './dom/shared_styles_host';\nimport {DomSanitizer, DomSanitizerImpl} from './security/dom_sanitization_service';\n\nexport function initDomAdapter() {\n  BrowserDomAdapter.makeCurrent();\n  BrowserGetTestability.init();\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\nexport const 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, deps: []},\n];\n\nconst BROWSER_SANITIZATION_PROVIDERS__PRE_R3__: StaticProvider[] = [\n  {provide: Sanitizer, useExisting: DomSanitizer},\n  {provide: DomSanitizer, useClass: DomSanitizerImpl, deps: [DOCUMENT]},\n];\n\nexport const BROWSER_SANITIZATION_PROVIDERS__POST_R3__ = [];\n\n/**\n * @security Replacing built-in sanitization providers exposes the application to XSS risks.\n * Attacker-controlled data introduced by an unsanitized provider could expose your\n * application to XSS risks. For more detail, see the [Security Guide](https://g.co/ng/security).\n * @publicApi\n */\nexport const BROWSER_SANITIZATION_PROVIDERS = BROWSER_SANITIZATION_PROVIDERS__PRE_R3__;\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\nexport const BROWSER_MODULE_PROVIDERS: StaticProvider[] = [\n  BROWSER_SANITIZATION_PROVIDERS,\n  {provide: INJECTOR_SCOPE, useValue: 'root'},\n  {provide: ErrorHandler, useFactory: errorHandler, deps: []},\n  {\n    provide: EVENT_MANAGER_PLUGINS,\n    useClass: DomEventsPlugin,\n    multi: true,\n    deps: [DOCUMENT, NgZone, PLATFORM_ID]\n  },\n  {provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true, deps: [DOCUMENT]},\n  HAMMER_PROVIDERS,\n  {\n    provide: DomRendererFactory2,\n    useClass: DomRendererFactory2,\n    deps: [EventManager, DomSharedStylesHost, APP_ID]\n  },\n  {provide: RendererFactory2, useExisting: DomRendererFactory2},\n  {provide: SharedStylesHost, useExisting: DomSharedStylesHost},\n  {provide: DomSharedStylesHost, useClass: DomSharedStylesHost, deps: [DOCUMENT]},\n  {provide: Testability, useClass: Testability, deps: [NgZone]},\n  {provide: EventManager, useClass: EventManager, deps: [EVENT_MANAGER_PLUGINS, NgZone]},\n  {provide: XhrFactory, useClass: BrowserXhr, deps: []},\n  ELEMENT_PROBE_PROVIDERS,\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({providers: BROWSER_MODULE_PROVIDERS, exports: [CommonModule, ApplicationModule]})\nexport class BrowserModule {\n  constructor(@Optional() @SkipSelf() @Inject(BrowserModule) parentModule: BrowserModule|null) {\n    if (parentModule) {\n      throw new Error(\n          `BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.`);\n    }\n  }\n\n  /**\n   * Configures a browser-based app to transition from a server-rendered app, if\n   * one is present on the page.\n   *\n   * @param params An object containing an identifier for the app to transition.\n   * The ID must match between the client and server versions of the app.\n   * @returns The reconfigured `BrowserModule` to import into the app's root `AppModule`.\n   */\n  static withServerTransition(params: {appId: string}): ModuleWithProviders<BrowserModule> {\n    return {\n      ngModule: BrowserModule,\n      providers: [\n        {provide: APP_ID, useValue: params.appId},\n        {provide: TRANSITION_ID, useExisting: APP_ID},\n        SERVER_TRANSITION_PROVIDERS,\n      ],\n    };\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.io/license\n */\n\nimport {DOCUMENT, ɵDomAdapter as DomAdapter, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, ɵɵinject} 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 `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 * Factory to create a `Meta` service instance for the current DOM document.\n */\nexport function createMeta() {\n  return new Meta(ɵɵinject(DOCUMENT));\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', useFactory: createMeta, deps: []})\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(meta: MetaDefinition, 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(\n        (prop: string) => el.setAttribute(this._getMetaKeyMap(prop), tag[prop]));\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  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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, ɵɵinject} from '@angular/core';\n\n\n/**\n * Factory to create Title service.\n */\nexport function createTitle() {\n  return new Title(ɵɵinject(DOCUMENT));\n}\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', useFactory: createTitle, deps: []})\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.io/license\n */\n\nconst win = typeof window !== 'undefined' && window || <any>{};\nexport {win as window};\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.io/license\n */\n\nimport {ApplicationRef, ComponentRef} from '@angular/core';\nimport {window} from './browser';\n\nexport class ChangeDetectionPerfRecord {\n  constructor(public msPerTick: number, public numTicks: number) {}\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   * ```\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    const isProfilerAvailable = window.console.profile != null;\n    if (record && isProfilerAvailable) {\n      window.console.profile(profileName);\n    }\n    const start = performanceNow();\n    let numTicks = 0;\n    while (numTicks < 5 || (performanceNow() - start) < 500) {\n      this.appRef.tick();\n      numTicks++;\n    }\n    const end = performanceNow();\n    if (record && isProfilerAvailable) {\n      window.console.profileEnd(profileName);\n    }\n    const msPerTick = (end - start) / numTicks;\n    window.console.log(`ran ${numTicks} change detection cycles`);\n    window.console.log(`${msPerTick.toFixed(2)} ms per check`);\n\n    return new ChangeDetectionPerfRecord(msPerTick, numTicks);\n  }\n}\n\nfunction performanceNow() {\n  return window.performance && window.performance.now ? window.performance.now() :\n                                                        new Date().getTime();\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.io/license\n */\n\nimport {ComponentRef} from '@angular/core';\nimport {exportNgVar} from '../../dom/util';\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {APP_ID, Injectable, NgModule} from '@angular/core';\n\nexport function escapeHtml(text: string): string {\n  const escapedText: {[k: string]: string} = {\n    '&': '&a;',\n    '\"': '&q;',\n    '\\'': '&s;',\n    '<': '&l;',\n    '>': '&g;',\n  };\n  return text.replace(/[&\"'<>]/g, s => escapedText[s]);\n}\n\nexport function unescapeHtml(text: string): string {\n  const unescapedText: {[k: string]: string} = {\n    '&a;': '&',\n    '&q;': '\"',\n    '&s;': '\\'',\n    '&l;': '<',\n    '&g;': '>',\n  };\n  return text.replace(/&[^;]+;/g, s => unescapedText[s]);\n}\n\n/**\n * A type-safe key to use with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport type StateKey<T> = string&{__not_a_string: never};\n\n/**\n * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport function makeStateKey<T = void>(key: string): StateKey<T> {\n  return key as StateKey<T>;\n}\n\n/**\n * A key value store that is transferred from the application on the server side to the application\n * on the client side.\n *\n * `TransferState` will be available as an injectable token. To use it import\n * `ServerTransferStateModule` on the server and `BrowserTransferStateModule` on the client.\n *\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\n * boolean, number, string, null and non-class objects will be serialized and deserialized in a\n * non-lossy manner.\n *\n * @publicApi\n */\n@Injectable()\nexport class TransferState {\n  private store: {[k: string]: {}|undefined} = {};\n  private onSerializeCallbacks: {[k: string]: () => {} | undefined} = {};\n\n  /** @internal */\n  static init(initState: {}) {\n    const transferState = new TransferState();\n    transferState.store = initState;\n    return transferState;\n  }\n\n  /**\n   * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n   */\n  get<T>(key: StateKey<T>, defaultValue: T): T {\n    return this.store[key] !== undefined ? this.store[key] as T : defaultValue;\n  }\n\n  /**\n   * Set the value corresponding to a key.\n   */\n  set<T>(key: StateKey<T>, value: T): void {\n    this.store[key] = value;\n  }\n\n  /**\n   * Remove a key from the store.\n   */\n  remove<T>(key: StateKey<T>): void {\n    delete this.store[key];\n  }\n\n  /**\n   * Test whether a key exists in the store.\n   */\n  hasKey<T>(key: StateKey<T>) {\n    return this.store.hasOwnProperty(key);\n  }\n\n  /**\n   * Register a callback to provide the value for a key when `toJson` is called.\n   */\n  onSerialize<T>(key: StateKey<T>, callback: () => T): void {\n    this.onSerializeCallbacks[key] = callback;\n  }\n\n  /**\n   * Serialize the current state of the store to JSON.\n   */\n  toJson(): string {\n    // Call the onSerialize callbacks and put those values into the store.\n    for (const key in this.onSerializeCallbacks) {\n      if (this.onSerializeCallbacks.hasOwnProperty(key)) {\n        try {\n          this.store[key] = this.onSerializeCallbacks[key]();\n        } catch (e) {\n          console.warn('Exception in onSerialize callback: ', e);\n        }\n      }\n    }\n    return JSON.stringify(this.store);\n  }\n}\n\nexport function initTransferState(doc: Document, appId: string) {\n  // Locate the script tag with the JSON data transferred from the server.\n  // The id of the script tag is set to the Angular appId + 'state'.\n  const script = doc.getElementById(appId + '-state');\n  let initialState = {};\n  if (script && script.textContent) {\n    try {\n      // Avoid using any here as it triggers lint errors in google3 (any is not allowed).\n      initialState = JSON.parse(unescapeHtml(script.textContent)) as {};\n    } catch (e) {\n      console.warn('Exception while restoring TransferState for app ' + appId, e);\n    }\n  }\n  return TransferState.init(initialState);\n}\n\n/**\n * NgModule to install on the client side while using the `TransferState` to transfer state from\n * server to client.\n *\n * @publicApi\n */\n@NgModule({\n  providers: [{provide: TransferState, useFactory: initTransferState, deps: [DOCUMENT, APP_ID]}],\n})\nexport class BrowserTransferStateModule {\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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {DebugElement, DebugNode, Predicate, Type} from '@angular/core';\n\n\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.matches && n.matches(selector) ||\n        n.msMatchesSelector && n.msMatchesSelector(selector) ||\n        n.webkitMatchesSelector && n.webkitMatchesSelector(selector);\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.io/license\n */\n\nexport {ɵgetDOM} from '@angular/common';\nexport {BROWSER_SANITIZATION_PROVIDERS as ɵBROWSER_SANITIZATION_PROVIDERS, BROWSER_SANITIZATION_PROVIDERS__POST_R3__ as ɵBROWSER_SANITIZATION_PROVIDERS__POST_R3__, initDomAdapter as ɵinitDomAdapter, INTERNAL_BROWSER_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS} from './browser';\nexport {BrowserDomAdapter as ɵBrowserDomAdapter} from './browser/browser_adapter';\nexport {TRANSITION_ID as ɵTRANSITION_ID} from './browser/server-transition';\nexport {BrowserGetTestability as ɵBrowserGetTestability} from './browser/testability';\nexport {escapeHtml as ɵescapeHtml} from './browser/transfer_state';\nexport {ELEMENT_PROBE_PROVIDERS as ɵELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nexport {DomRendererFactory2 as ɵDomRendererFactory2, flattenStyles as ɵflattenStyles, NAMESPACE_URIS as ɵNAMESPACE_URIS, shimContentAttribute as ɵshimContentAttribute, shimHostAttribute as ɵshimHostAttribute} from './dom/dom_renderer';\nexport {DomEventsPlugin as ɵDomEventsPlugin} from './dom/events/dom_events';\nexport {HammerGesturesPlugin as ɵHammerGesturesPlugin} from './dom/events/hammer_gestures';\nexport {KeyEventsPlugin as ɵKeyEventsPlugin} from './dom/events/key_events';\nexport {DomSharedStylesHost as ɵDomSharedStylesHost, SharedStylesHost as ɵSharedStylesHost} from './dom/shared_styles_host';\nexport {DomSanitizerImpl as ɵDomSanitizerImpl} from './security/dom_sanitization_service';\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.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the platform-browser package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('12.2.13');\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.io/license\n */\n\nexport {BrowserModule, platformBrowser} from './browser';\nexport {Meta, MetaDefinition} from './browser/meta';\nexport {Title} from './browser/title';\nexport {disableDebugTools, enableDebugTools} from './browser/tools/tools';\nexport {BrowserTransferStateModule, makeStateKey, StateKey, TransferState} from './browser/transfer_state';\nexport {By} from './dom/debug/by';\nexport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nexport {HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HAMMER_PROVIDERS__POST_R3__ as ɵHAMMER_PROVIDERS__POST_R3__, HammerGestureConfig, HammerLoader, HammerModule} from './dom/events/hammer_gestures';\nexport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl, SafeValue} from './security/dom_sanitization_service';\n\nexport * from './private_export';\nexport {VERSION} from './version';\n// This must be exported so it doesn't get tree-shaken away prematurely\nexport {ELEMENT_PROBE_PROVIDERS__POST_R3__ as ɵELEMENT_PROBE_PROVIDERS__POST_R3__} from './dom/debug/ng_probe';\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.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport * from './src/platform-browser';\n// This file only reexports content of the `src` folder. Keep it that way.\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.io/license\n */\n\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {BROWSER_MODULE_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_c,_document as ɵangular_packages_platform_browser_platform_browser_b,errorHandler as ɵangular_packages_platform_browser_platform_browser_a} from './src/browser';\nexport {GenericBrowserDomAdapter as ɵangular_packages_platform_browser_platform_browser_p} from './src/browser/generic_browser_adapter';\nexport {createMeta as ɵangular_packages_platform_browser_platform_browser_d} from './src/browser/meta';\nexport {SERVER_TRANSITION_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_l,appInitializerFactory as ɵangular_packages_platform_browser_platform_browser_k} from './src/browser/server-transition';\nexport {createTitle as ɵangular_packages_platform_browser_platform_browser_e} from './src/browser/title';\nexport {initTransferState as ɵangular_packages_platform_browser_platform_browser_f} from './src/browser/transfer_state';\nexport {BrowserXhr as ɵangular_packages_platform_browser_platform_browser_o} from './src/browser/xhr';\nexport {ELEMENT_PROBE_PROVIDERS__PRE_R3__ as ɵangular_packages_platform_browser_platform_browser_n,_createNgProbeR2 as ɵangular_packages_platform_browser_platform_browser_m} from './src/dom/debug/ng_probe';\nexport {EventManagerPlugin as ɵangular_packages_platform_browser_platform_browser_g} from './src/dom/events/event_manager';\nexport {HAMMER_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_i,HAMMER_PROVIDERS__PRE_R3__ as ɵangular_packages_platform_browser_platform_browser_h} from './src/dom/events/hammer_gestures';\nexport {domSanitizerImplFactory as ɵangular_packages_platform_browser_platform_browser_j} from './src/security/dom_sanitization_service';"],"names":["DomAdapter","setRootDomAdapter","parseCookieValue","InjectionToken","ApplicationInitStatus","getDOM","APP_INITIALIZER","DOCUMENT","Injector","setTestabilityGetter","global","Injectable","ApplicationRef","NgZone","ɵgetDebugNodeR2","NgProbeToken","Optional","Inject","ViewEncapsulation","APP_ID","RendererStyleFlags2","Console","NgModule","forwardRef","SecurityContext","allowSanitizationBypassOrThrow","unwrapSafeValue","_sanitizeHtml","getSanitizationBypassType","_sanitizeUrl","bypassSanitizationTrustHtml","bypassSanitizationTrustStyle","bypassSanitizationTrustScript","bypassSanitizationTrustUrl","bypassSanitizationTrustResourceUrl","ErrorHandler","ɵsetDocument","PLATFORM_BROWSER_ID","PLATFORM_ID","PLATFORM_INITIALIZER","Sanitizer","createPlatformFactory","platformCore","INJECTOR_SCOPE","RendererFactory2","Testability","XhrFactory","CommonModule","ApplicationModule","SkipSelf","ɵɵinject","window","Version"],"mappings":"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"}
+{"version":3,"file":"platform-browser.umd.js","sources":["../../../../../external/npm/node_modules/tslib/tslib.es6.js","../../../../../packages/platform-browser/src/browser/generic_browser_adapter.ts","../../../../../packages/platform-browser/src/browser/browser_adapter.ts","../../../../../packages/platform-browser/src/browser/server-transition.ts","../../../../../packages/platform-browser/src/browser/testability.ts","../../../../../packages/platform-browser/src/browser/xhr.ts","../../../../../packages/platform-browser/src/dom/util.ts","../../../../../packages/platform-browser/src/dom/debug/ng_probe.ts","../../../../../packages/platform-browser/src/dom/events/event_manager.ts","../../../../../packages/platform-browser/src/dom/shared_styles_host.ts","../../../../../packages/platform-browser/src/dom/dom_renderer.ts","../../../../../packages/platform-browser/src/dom/events/dom_events.ts","../../../../../packages/platform-browser/src/dom/events/hammer_gestures.ts","../../../../../packages/platform-browser/src/dom/events/key_events.ts","../../../../../packages/platform-browser/src/security/dom_sanitization_service.ts","../../../../../packages/platform-browser/src/browser.ts","../../../../../packages/platform-browser/src/browser/meta.ts","../../../../../packages/platform-browser/src/browser/title.ts","../../../../../packages/platform-browser/src/browser/tools/browser.ts","../../../../../packages/platform-browser/src/browser/tools/common_tools.ts","../../../../../packages/platform-browser/src/browser/tools/tools.ts","../../../../../packages/platform-browser/src/browser/transfer_state.ts","../../../../../packages/platform-browser/src/dom/debug/by.ts","../../../../../packages/platform-browser/src/private_export.ts","../../../../../packages/platform-browser/src/version.ts","../../../../../packages/platform-browser/src/platform-browser.ts","../../../../../packages/platform-browser/public_api.ts","../../../../../packages/platform-browser/index.ts","../../../../../packages/platform-browser/platform-browser.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\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.io/license\n */\n\nimport {ɵDomAdapter as DomAdapter} from '@angular/common';\n\n\n\n/**\n * Provides DOM operations in any browser environment.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class GenericBrowserDomAdapter extends DomAdapter {\n  readonly supportsDOMEvents: boolean = true;\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.io/license\n */\n\nimport {ɵparseCookieValue as parseCookieValue, ɵsetRootDomAdapter as setRootDomAdapter} from '@angular/common';\n\nimport {GenericBrowserDomAdapter} from './generic_browser_adapter';\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 */\n/* tslint:disable:requireParameterType no-console */\nexport class BrowserDomAdapter extends GenericBrowserDomAdapter {\n  static makeCurrent() {\n    setRootDomAdapter(new BrowserDomAdapter());\n  }\n\n  onAndCancel(el: Node, evt: any, listener: any): Function {\n    el.addEventListener(evt, listener, false);\n    // Needed to follow Dart's subscription semantic, until fix of\n    // https://code.google.com/p/dart/issues/detail?id=17406\n    return () => {\n      el.removeEventListener(evt, listener, false);\n    };\n  }\n  dispatchEvent(el: Node, evt: any) {\n    el.dispatchEvent(evt);\n  }\n  remove(node: Node): void {\n    if (node.parentNode) {\n      node.parentNode.removeChild(node);\n    }\n  }\n  createElement(tagName: string, doc?: Document): HTMLElement {\n    doc = doc || this.getDefaultDocument();\n    return doc.createElement(tagName);\n  }\n  createHtmlDocument(): HTMLDocument {\n    return document.implementation.createHTMLDocument('fakeTitle');\n  }\n  getDefaultDocument(): Document {\n    return document;\n  }\n\n  isElementNode(node: Node): boolean {\n    return node.nodeType === Node.ELEMENT_NODE;\n  }\n\n  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  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  getBaseHref(doc: Document): string|null {\n    const href = getBaseElementHref();\n    return href == null ? null : relativePath(href);\n  }\n  resetBaseElement(): void {\n    baseElement = null;\n  }\n  getUserAgent(): string {\n    return window.navigator.userAgent;\n  }\n  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.querySelector('base');\n  return baseElement ? baseElement.getAttribute('href') : null;\n}\n\n// based on urlUtils.js in AngularJS 1\nlet urlParsingNode: HTMLAnchorElement|undefined;\nfunction relativePath(url: any): string {\n  urlParsingNode = urlParsingNode || document.createElement('a');\n  urlParsingNode.setAttribute('href', url);\n  const pathName = urlParsingNode.pathname;\n  return pathName.charAt(0) === '/' ? pathName : `/${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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {APP_INITIALIZER, ApplicationInitStatus, InjectionToken, Injector, StaticProvider} from '@angular/core';\n\n/**\n * An id that identifies a particular application being bootstrapped, that should\n * match across the client/server boundary.\n */\nexport const TRANSITION_ID = new InjectionToken('TRANSITION_ID');\n\nexport function appInitializerFactory(transitionId: string, document: any, injector: Injector) {\n  return () => {\n    // Wait for all application initializers to be completed before removing the styles set by\n    // the server.\n    injector.get(ApplicationInitStatus).donePromise.then(() => {\n      const dom = getDOM();\n      const styles: HTMLCollectionOf<HTMLStyleElement> =\n          document.querySelectorAll(`style[ng-transition=\"${transitionId}\"]`);\n      for (let i = 0; i < styles.length; i++) {\n        dom.remove(styles[i]);\n      }\n    });\n  };\n}\n\nexport const SERVER_TRANSITION_PROVIDERS: StaticProvider[] = [\n  {\n    provide: APP_INITIALIZER,\n    useFactory: appInitializerFactory,\n    deps: [TRANSITION_ID, DOCUMENT, Injector],\n    multi: 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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {GetTestability, setTestabilityGetter, Testability, TestabilityRegistry, ɵglobal as global} from '@angular/core';\n\nexport class BrowserGetTestability implements GetTestability {\n  static init() {\n    setTestabilityGetter(new BrowserGetTestability());\n  }\n\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 Error('Could not find testability for element.');\n      }\n      return testability;\n    };\n\n    global['getAllAngularTestabilities'] = () => registry.getAllTestabilities();\n\n    global['getAllAngularRootElements'] = () => registry.getAllRootElements();\n\n    const whenAllStable = (callback: any /** TODO #9100 */) => {\n      const testabilities = global['getAllAngularTestabilities']();\n      let count = testabilities.length;\n      let didWork = false;\n      const decrement = function(didWork_: any /** TODO #9100 */) {\n        didWork = didWork || didWork_;\n        count--;\n        if (count == 0) {\n          callback(didWork);\n        }\n      };\n      testabilities.forEach(function(testability: any /** TODO #9100 */) {\n        testability.whenStable(decrement);\n      });\n    };\n\n    if (!global['frameworkStabilizers']) {\n      global['frameworkStabilizers'] = [];\n    }\n    global['frameworkStabilizers'].push(whenAllStable);\n  }\n\n  findTestabilityInTree(registry: TestabilityRegistry, elem: any, 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.io/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.io/license\n */\n\nimport {ɵglobal as global} from '@angular/core';\n\nconst CAMEL_CASE_REGEXP = /([A-Z])/g;\nconst DASH_CASE_REGEXP = /-([a-z])/g;\n\n\nexport function camelCaseToDashCase(input: string): string {\n  return input.replace(CAMEL_CASE_REGEXP, (...m: string[]) => '-' + m[1].toLowerCase());\n}\n\nexport function dashCaseToCamelCase(input: string): string {\n  return input.replace(DASH_CASE_REGEXP, (...m: string[]) => m[1].toUpperCase());\n}\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.io/license\n */\n\nimport {APP_INITIALIZER, ApplicationRef, DebugNode, NgProbeToken, NgZone, Optional, Provider, ɵgetDebugNodeR2} from '@angular/core';\n\nimport {exportNgVar} from '../util';\n\nconst CORE_TOKENS = (() => ({\n                       'ApplicationRef': ApplicationRef,\n                       'NgZone': NgZone,\n                     }))();\n\nconst INSPECT_GLOBAL_NAME = 'probe';\nconst CORE_TOKENS_GLOBAL_NAME = 'coreTokens';\n\n/**\n * Returns a {@link DebugElement} for the given native DOM element, or\n * null if the given native element does not have an Angular view associated\n * with it.\n */\nexport function inspectNativeElementR2(element: any): DebugNode|null {\n  return ɵgetDebugNodeR2(element);\n}\n\nexport function _createNgProbeR2(coreTokens: NgProbeToken[]): any {\n  exportNgVar(INSPECT_GLOBAL_NAME, inspectNativeElementR2);\n  exportNgVar(CORE_TOKENS_GLOBAL_NAME, {...CORE_TOKENS, ..._ngProbeTokensToMap(coreTokens || [])});\n  return () => inspectNativeElementR2;\n}\n\nfunction _ngProbeTokensToMap(tokens: NgProbeToken[]): {[name: string]: any} {\n  return tokens.reduce((prev: any, t: any) => (prev[t.name] = t.token, prev), {});\n}\n\n/**\n * In Ivy, we don't support NgProbe because we have our own set of testing utilities\n * with more robust functionality.\n *\n * We shouldn't bring in NgProbe because it prevents DebugNode and friends from\n * tree-shaking properly.\n */\nexport const ELEMENT_PROBE_PROVIDERS__POST_R3__ = [];\n\n/**\n * Providers which support debugging Angular applications (e.g. via `ng.probe`).\n */\nexport const ELEMENT_PROBE_PROVIDERS__PRE_R3__: Provider[] = [\n  {\n    provide: APP_INITIALIZER,\n    useFactory: _createNgProbeR2,\n    deps: [\n      [NgProbeToken, new Optional()],\n    ],\n    multi: true,\n  },\n];\n\nexport const ELEMENT_PROBE_PROVIDERS = ELEMENT_PROBE_PROVIDERS__PRE_R3__;\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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, InjectionToken, NgZone} from '@angular/core';\n\n/**\n * The injection token for the event-manager plug-in service.\n *\n * @publicApi\n */\nexport const EVENT_MANAGER_PLUGINS =\n    new InjectionToken<EventManagerPlugin[]>('EventManagerPlugins');\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(@Inject(EVENT_MANAGER_PLUGINS) plugins: EventManagerPlugin[], private _zone: NgZone) {\n    plugins.forEach(p => p.manager = this);\n    this._plugins = plugins.slice().reverse();\n  }\n\n  /**\n   * Registers a handler for a specific element and event.\n   *\n   * @param element The HTML element to receive event notifications.\n   * @param eventName The name of the event to listen for.\n   * @param handler A function to call when the notification occurs. Receives the\n   * event object as an argument.\n   * @returns  A callback function that can be used to remove the handler.\n   */\n  addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n    const plugin = this._findPluginFor(eventName);\n    return plugin.addEventListener(element, eventName, handler);\n  }\n\n  /**\n   * Registers a global handler for an event in a target view.\n   *\n   * @param target A target for global event notifications. One of \"window\", \"document\", or \"body\".\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   * @returns A callback function that can be used to remove the handler.\n   * @deprecated No longer being used in Ivy code. To be removed in version 14.\n   */\n  addGlobalEventListener(target: string, eventName: string, handler: Function): Function {\n    const plugin = this._findPluginFor(eventName);\n    return plugin.addGlobalEventListener(target, eventName, handler);\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    const plugin = this._eventNameToPlugin.get(eventName);\n    if (plugin) {\n      return plugin;\n    }\n\n    const plugins = this._plugins;\n    for (let i = 0; i < plugins.length; i++) {\n      const plugin = plugins[i];\n      if (plugin.supports(eventName)) {\n        this._eventNameToPlugin.set(eventName, plugin);\n        return plugin;\n      }\n    }\n    throw new Error(`No event manager plugin found for event ${eventName}`);\n  }\n}\n\nexport abstract class EventManagerPlugin {\n  constructor(private _doc: any) {}\n\n  // TODO(issue/24571): remove '!'.\n  manager!: EventManager;\n\n  abstract supports(eventName: string): boolean;\n\n  abstract addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\n\n  addGlobalEventListener(element: string, eventName: string, handler: Function): Function {\n    const target: HTMLElement = getDOM().getGlobalEventTarget(this._doc, element);\n    if (!target) {\n      throw new Error(`Unsupported event target ${target} for event ${eventName}`);\n    }\n    return this.addEventListener(target, eventName, handler);\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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, OnDestroy} from '@angular/core';\n\n@Injectable()\nexport class SharedStylesHost {\n  /** @internal */\n  protected _stylesSet = new Set<string>();\n\n  addStyles(styles: string[]): void {\n    const additions = new Set<string>();\n    styles.forEach(style => {\n      if (!this._stylesSet.has(style)) {\n        this._stylesSet.add(style);\n        additions.add(style);\n      }\n    });\n    this.onStylesAdded(additions);\n  }\n\n  onStylesAdded(additions: Set<string>): void {}\n\n  getAllStyles(): string[] {\n    return Array.from(this._stylesSet);\n  }\n}\n\n@Injectable()\nexport class DomSharedStylesHost extends SharedStylesHost implements OnDestroy {\n  // Maps all registered host nodes to a list of style nodes that have been added to the host node.\n  private _hostNodes = new Map<Node, Node[]>();\n\n  constructor(@Inject(DOCUMENT) private _doc: any) {\n    super();\n    this._hostNodes.set(_doc.head, []);\n  }\n\n  private _addStylesToHost(styles: Set<string>, host: Node, styleNodes: Node[]): void {\n    styles.forEach((style: string) => {\n      const styleEl = this._doc.createElement('style');\n      styleEl.textContent = style;\n      styleNodes.push(host.appendChild(styleEl));\n    });\n  }\n\n  addHost(hostNode: Node): void {\n    const styleNodes: Node[] = [];\n    this._addStylesToHost(this._stylesSet, hostNode, styleNodes);\n    this._hostNodes.set(hostNode, styleNodes);\n  }\n\n  removeHost(hostNode: Node): void {\n    const styleNodes = this._hostNodes.get(hostNode);\n    if (styleNodes) {\n      styleNodes.forEach(removeStyle);\n    }\n    this._hostNodes.delete(hostNode);\n  }\n\n  override onStylesAdded(additions: Set<string>): void {\n    this._hostNodes.forEach((styleNodes, hostNode) => {\n      this._addStylesToHost(additions, hostNode, styleNodes);\n    });\n  }\n\n  ngOnDestroy(): void {\n    this._hostNodes.forEach(styleNodes => styleNodes.forEach(removeStyle));\n  }\n}\n\nfunction removeStyle(styleNode: Node): void {\n  getDOM().remove(styleNode);\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.io/license\n */\n\nimport {APP_ID, Inject, Injectable, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2, ViewEncapsulation} from '@angular/core';\n\nimport {EventManager} from './events/event_manager';\nimport {DomSharedStylesHost} 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};\n\nconst COMPONENT_REGEX = /%COMP%/g;\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\n\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\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 flattenStyles(\n    compId: string, styles: Array<any|any[]>, target: string[]): string[] {\n  for (let i = 0; i < styles.length; i++) {\n    let style = styles[i];\n\n    if (Array.isArray(style)) {\n      flattenStyles(compId, style, target);\n    } else {\n      style = style.replace(COMPONENT_REGEX, compId);\n      target.push(style);\n    }\n  }\n  return target;\n}\n\nfunction 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 the\n  // two differently. In the first case, the special '__ngUnwrap__' token is passed to the unwrap\n  // 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 debug_node\n    // can inspect the listener toString contents for the existence of this special token. Because\n    // the token is a string literal, it is ensured to not be modified by compiled code.\n    if (event === '__ngUnwrap__') {\n      return eventHandler;\n    }\n\n    const allowDefaultBehavior = eventHandler(event);\n    if (allowDefaultBehavior === false) {\n      // TODO(tbosch): move preventDefault into event plugins...\n      event.preventDefault();\n      event.returnValue = false;\n    }\n\n    return undefined;\n  };\n}\n\nlet hasLoggedNativeEncapsulationWarning = false;\n\n@Injectable()\nexport class DomRendererFactory2 implements RendererFactory2 {\n  private rendererByCompId = new Map<string, Renderer2>();\n  private defaultRenderer: Renderer2;\n\n  constructor(\n      private eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n      @Inject(APP_ID) private appId: string) {\n    this.defaultRenderer = new DefaultDomRenderer2(eventManager);\n  }\n\n  createRenderer(element: any, type: RendererType2|null): Renderer2 {\n    if (!element || !type) {\n      return this.defaultRenderer;\n    }\n    switch (type.encapsulation) {\n      case ViewEncapsulation.Emulated: {\n        let renderer = this.rendererByCompId.get(type.id);\n        if (!renderer) {\n          renderer = new EmulatedEncapsulationDomRenderer2(\n              this.eventManager, this.sharedStylesHost, type, this.appId);\n          this.rendererByCompId.set(type.id, renderer);\n        }\n        (<EmulatedEncapsulationDomRenderer2>renderer).applyToHost(element);\n        return renderer;\n      }\n      // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an enum\n      // value that is not known (but previously was the value for ViewEncapsulation.Native)\n      case 1:\n      case ViewEncapsulation.ShadowDom:\n        // TODO(FW-2290): remove the `case 1:` fallback logic and the warning in v12.\n        if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n            // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an\n            // enum value that is not known (but previously was the value for\n            // ViewEncapsulation.Native)\n            !hasLoggedNativeEncapsulationWarning && type.encapsulation === 1) {\n          hasLoggedNativeEncapsulationWarning = true;\n          console.warn(\n              'ViewEncapsulation.Native is no longer supported. Falling back to ViewEncapsulation.ShadowDom. The fallback will be removed in v12.');\n        }\n\n        return new ShadowDomRenderer(this.eventManager, this.sharedStylesHost, element, type);\n      default: {\n        if (!this.rendererByCompId.has(type.id)) {\n          const styles = flattenStyles(type.id, type.styles, []);\n          this.sharedStylesHost.addStyles(styles);\n          this.rendererByCompId.set(type.id, this.defaultRenderer);\n        }\n        return this.defaultRenderer;\n      }\n    }\n  }\n\n  begin() {}\n  end() {}\n}\n\nclass DefaultDomRenderer2 implements Renderer2 {\n  data: {[key: string]: any} = Object.create(null);\n\n  constructor(private eventManager: EventManager) {}\n\n  destroy(): void {}\n\n  destroyNode: null;\n\n  createElement(name: string, namespace?: string): any {\n    if (namespace) {\n      // In cases where Ivy (not ViewEngine) is giving us the actual namespace, the look up by key\n      // will result in undefined, so we just return the namespace here.\n      return document.createElementNS(NAMESPACE_URIS[namespace] || namespace, name);\n    }\n\n    return document.createElement(name);\n  }\n\n  createComment(value: string): any {\n    return document.createComment(value);\n  }\n\n  createText(value: string): any {\n    return document.createTextNode(value);\n  }\n\n  appendChild(parent: any, newChild: any): void {\n    parent.appendChild(newChild);\n  }\n\n  insertBefore(parent: any, newChild: any, refChild: any): void {\n    if (parent) {\n      parent.insertBefore(newChild, refChild);\n    }\n  }\n\n  removeChild(parent: any, oldChild: any): void {\n    if (parent) {\n      parent.removeChild(oldChild);\n    }\n  }\n\n  selectRootElement(selectorOrNode: string|any, preserveContent?: boolean): any {\n    let el: any = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) :\n                                                       selectorOrNode;\n    if (!el) {\n      throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\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      // TODO(FW-811): Ivy may cause issues here because it's passing around\n      // full URIs for namespaces, therefore this lookup will fail.\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      // TODO(FW-811): Ivy may cause issues here because it's passing around\n      // full URIs for namespaces, therefore this lookup will fail.\n      const namespaceUri = NAMESPACE_URIS[namespace];\n      if (namespaceUri) {\n        el.removeAttributeNS(namespaceUri, name);\n      } else {\n        // TODO(FW-811): Since ivy is passing around full URIs for namespaces\n        // this could result in properties like `http://www.w3.org/2000/svg:cx=\"123\"`,\n        // which is wrong.\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      el.style.removeProperty(style);\n    } else {\n      // IE requires '' instead of null\n      // see https://github.com/angular/angular/issues/7916\n      el.style[style] = '';\n    }\n  }\n\n  setProperty(el: any, name: string, value: any): void {\n    NG_DEV_MODE && checkNoSyntheticProp(name, 'property');\n    el[name] = value;\n  }\n\n  setValue(node: any, value: string): void {\n    node.nodeValue = value;\n  }\n\n  listen(target: 'window'|'document'|'body'|any, event: string, callback: (event: any) => boolean):\n      () => void {\n    NG_DEV_MODE && checkNoSyntheticProp(event, 'listener');\n    if (typeof target === 'string') {\n      return <() => void>this.eventManager.addGlobalEventListener(\n          target, event, decoratePreventDefault(callback));\n    }\n    return <() => void>this.eventManager.addEventListener(\n               target, event, decoratePreventDefault(callback)) as () => void;\n  }\n}\n\nconst AT_CHARCODE = (() => '@'.charCodeAt(0))();\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n  if (name.charCodeAt(0) === AT_CHARCODE) {\n    throw new Error(`Unexpected synthetic ${nameKind} ${name} found. Please make sure that:\n  - Either \\`BrowserAnimationsModule\\` or \\`NoopAnimationsModule\\` are imported in your application.\n  - There is corresponding configuration for the animation named \\`${\n        name}\\` defined in the \\`animations\\` field of the \\`@Component\\` decorator (see https://angular.io/api/core/Component#animations).`);\n  }\n}\n\nclass EmulatedEncapsulationDomRenderer2 extends DefaultDomRenderer2 {\n  private contentAttr: string;\n  private hostAttr: string;\n\n  constructor(\n      eventManager: EventManager, sharedStylesHost: DomSharedStylesHost,\n      private component: RendererType2, appId: string) {\n    super(eventManager);\n    const styles = flattenStyles(appId + '-' + component.id, component.styles, []);\n    sharedStylesHost.addStyles(styles);\n\n    this.contentAttr = shimContentAttribute(appId + '-' + component.id);\n    this.hostAttr = shimHostAttribute(appId + '-' + component.id);\n  }\n\n  applyToHost(element: any) {\n    super.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\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n  private shadowRoot: any;\n\n  constructor(\n      eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n      private hostEl: any, component: RendererType2) {\n    super(eventManager);\n    this.shadowRoot = (hostEl as any).attachShadow({mode: 'open'});\n    this.sharedStylesHost.addHost(this.shadowRoot);\n    const styles = flattenStyles(component.id, component.styles, []);\n    for (let i = 0; i < styles.length; i++) {\n      const styleEl = document.createElement('style');\n      styleEl.textContent = styles[i];\n      this.shadowRoot.appendChild(styleEl);\n    }\n  }\n\n  private nodeOrShadowRoot(node: any): any {\n    return node === this.hostEl ? this.shadowRoot : node;\n  }\n\n  override destroy() {\n    this.sharedStylesHost.removeHost(this.shadowRoot);\n  }\n\n  override appendChild(parent: any, newChild: any): void {\n    return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n  }\n  override insertBefore(parent: any, newChild: any, refChild: any): void {\n    return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n  }\n  override removeChild(parent: any, oldChild: any): void {\n    return super.removeChild(this.nodeOrShadowRoot(parent), oldChild);\n  }\n  override parentNode(node: any): any {\n    return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\nimport {EventManagerPlugin} from './event_manager';\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(element: HTMLElement, eventName: string, handler: Function): Function {\n    element.addEventListener(eventName, handler as EventListener, false);\n    return () => this.removeEventListener(element, eventName, handler as EventListener);\n  }\n\n  removeEventListener(target: any, eventName: string, callback: Function): void {\n    return target.removeEventListener(eventName, callback as EventListener);\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, InjectionToken, NgModule, Optional, Provider, ɵConsole as Console} from '@angular/core';\n\nimport {EVENT_MANAGER_PLUGINS, EventManagerPlugin} from './event_manager';\n\n\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 `HammerGestureConfig`\n *\n * @ngModule HammerModule\n * @publicApi\n */\nexport const HAMMER_GESTURE_CONFIG = new InjectionToken<HammerGestureConfig>('HammerGestureConfig');\n\n\n/**\n * Function that loads HammerJS, returning a promise that is resolved once HammerJs is loaded.\n *\n * @publicApi\n */\nexport type HammerLoader = () => Promise<void>;\n\n/**\n * Injection token used to provide a {@link HammerLoader} to Angular.\n *\n * @publicApi\n */\nexport const HAMMER_LOADER = new InjectionToken<HammerLoader>('HammerLoader');\n\nexport interface HammerInstance {\n  on(eventName: string, callback?: Function): void;\n  off(eventName: string, callback?: Function): void;\n  destroy?(): void;\n}\n\n/**\n * An injectable [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n * for gesture recognition. Configures specific event recognition.\n * @publicApi\n */\n@Injectable()\nexport class HammerGestureConfig {\n  /**\n   * A set of supported event names for gestures to be used in Angular.\n   * Angular supports all built-in recognizers, as listed in\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   */\n  events: string[] = [];\n\n  /**\n   * Maps gesture event names to a set of configuration options\n   * that specify overrides to the default values for specific properties.\n   *\n   * The key is a supported event name to be configured,\n   * and the options object contains a set of properties, with override values\n   * to be applied to the named recognizer event.\n   * For example, to disable recognition of the rotate event, specify\n   *  `{\"rotate\": {\"enable\": false}}`.\n   *\n   * Properties that are not present take the HammerJS default values.\n   * For information about which properties are supported for which events,\n   * and their allowed and default values, see\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   *\n   */\n  overrides: {[key: string]: Object} = {};\n\n  /**\n   * Properties whose default values can be overridden for a given event.\n   * Different sets of properties apply to different events.\n   * For information about which properties are supported for which events,\n   * and their allowed and default values, see\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   */\n  options?: {\n    cssProps?: any;\n    domEvents?: boolean;\n    enable?: boolean | ((manager: any) => boolean);\n    preset?: any[];\n    touchAction?: string;\n    recognizers?: any[];\n    inputClass?: any;\n    inputTarget?: EventTarget;\n  };\n\n  /**\n   * Creates a [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n   * and attaches it to a given HTML element.\n   * @param element The element that will recognize gestures.\n   * @returns A HammerJS event-manager object.\n   */\n  buildHammer(element: HTMLElement): HammerInstance {\n    const mc = new Hammer!(element, this.options);\n\n    mc.get('pinch').set({enable: true});\n    mc.get('rotate').set({enable: true});\n\n    for (const eventName in this.overrides) {\n      mc.get(eventName).set(this.overrides[eventName]);\n    }\n\n    return mc;\n  }\n}\n\n/**\n * Event plugin that adds Hammer support to an application.\n *\n * @ngModule HammerModule\n */\n@Injectable()\nexport class HammerGesturesPlugin extends EventManagerPlugin {\n  private _loaderPromise: Promise<void>|null = null;\n\n  constructor(\n      @Inject(DOCUMENT) doc: any,\n      @Inject(HAMMER_GESTURE_CONFIG) private _config: HammerGestureConfig, private console: Console,\n      @Optional() @Inject(HAMMER_LOADER) private loader?: HammerLoader|null) {\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        this.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      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 || 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      this._loaderPromise\n          .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                this.console.warn(\n                    `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 removal.\n              deregister = this.addEventListener(element, eventName, handler);\n            }\n          })\n          .catch(() => {\n            if (typeof ngDevMode === 'undefined' || ngDevMode) {\n              this.console.warn(\n                  `The \"${eventName}\" event cannot be bound because the custom ` +\n                  `Hammer.JS loader failed.`);\n            }\n            deregister = () => {};\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 * In Ivy, support for Hammer gestures is optional, so applications must\n * import the `HammerModule` at root to turn on support. This means that\n * Hammer-specific code can be tree-shaken away if not needed.\n */\nexport const HAMMER_PROVIDERS__POST_R3__ = [];\n\n/**\n * In View Engine, support for Hammer gestures is built-in by default.\n */\nexport const HAMMER_PROVIDERS__PRE_R3__: Provider[] = [\n  {\n    provide: EVENT_MANAGER_PLUGINS,\n    useClass: HammerGesturesPlugin,\n    multi: true,\n    deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, Console, [new Optional(), HAMMER_LOADER]]\n  },\n  {provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: []},\n];\n\nexport const HAMMER_PROVIDERS = HAMMER_PROVIDERS__PRE_R3__;\n\n/**\n * Adds support for HammerJS.\n *\n * Import this module at the root of your application so that Angular can work with\n * HammerJS to detect gesture events.\n *\n * Note that applications still need to include the HammerJS script itself. This module\n * simply sets up the coordination layer between HammerJS and Angular's EventManager.\n *\n * @publicApi\n */\n@NgModule({providers: HAMMER_PROVIDERS__PRE_R3__})\nexport class HammerModule {\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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Defines supported modifiers for key events.\n */\nconst MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\n\nconst DOM_KEY_LOCATION_NUMPAD = 3;\n\n// Map to convert some key or keyIdentifier values to what will be returned by getEventKey\nconst _keyMap: {[k: string]: string} = {\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/\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// There is a bug in Chrome for numeric keypad keys:\n// https://code.google.com/p/chromium/issues/detail?id=155654\n// 1, 2, 3 ... are reported as A, B, C ...\nconst _chromeNumKeyPadMap = {\n  'A': '1',\n  'B': '2',\n  'C': '3',\n  'D': '4',\n  'E': '5',\n  'F': '6',\n  'G': '7',\n  'H': '8',\n  'I': '9',\n  'J': '*',\n  'K': '+',\n  'M': '-',\n  'N': '.',\n  'O': '/',\n  '\\x60': '0',\n  '\\x90': 'NumLock'\n};\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 * @publicApi\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(element: HTMLElement, eventName: string, handler: Function): Function {\n    const parsedEvent = KeyEventsPlugin.parseEventName(eventName)!;\n\n    const outsideHandler =\n        KeyEventsPlugin.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());\n\n    return this.manager.getZone().runOutsideAngular(() => {\n      return getDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);\n    });\n  }\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    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  static getEventFullKey(event: KeyboardEvent): string {\n    let fullKey = '';\n    let key = getEventKey(event);\n    key = key.toLowerCase();\n    if (key === ' ') {\n      key = 'space';  // for readability\n    } else if (key === '.') {\n      key = 'dot';  // because '.' is used as a separator in event names\n    }\n    MODIFIER_KEYS.forEach(modifierName => {\n      if (modifierName != key) {\n        const modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n        if (modifierGetter(event)) {\n          fullKey += modifierName + '.';\n        }\n      }\n    });\n    fullKey += key;\n    return fullKey;\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: any, handler: Function, zone: NgZone): Function {\n    return (event: any /** TODO #9100 */) => {\n      if (KeyEventsPlugin.getEventFullKey(event) === fullKey) {\n        zone.runGuarded(() => handler(event));\n      }\n    };\n  }\n\n  /** @internal */\n  static _normalizeKey(keyName: string): string {\n    // TODO: switch to a Map if the mapping grows too much\n    switch (keyName) {\n      case 'esc':\n        return 'escape';\n      default:\n        return keyName;\n    }\n  }\n}\n\nfunction getEventKey(event: any): string {\n  let key = event.key;\n  if (key == null) {\n    key = event.keyIdentifier;\n    // keyIdentifier is defined in the old draft of DOM Level 3 Events implemented by Chrome and\n    // Safari cf\n    // https://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/events.html#Events-KeyboardEvents-Interfaces\n    if (key == null) {\n      return 'Unidentified';\n    }\n    if (key.startsWith('U+')) {\n      key = String.fromCharCode(parseInt(key.substring(2), 16));\n      if (event.location === DOM_KEY_LOCATION_NUMPAD && _chromeNumKeyPadMap.hasOwnProperty(key)) {\n        // There is a bug in Chrome for numeric keypad keys:\n        // https://code.google.com/p/chromium/issues/detail?id=155654\n        // 1, 2, 3 ... are reported as A, B, C ...\n        key = (_chromeNumKeyPadMap as any)[key];\n      }\n    }\n  }\n\n  return _keyMap[key] || key;\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {forwardRef, Inject, Injectable, Injector, Sanitizer, SecurityContext, ɵ_sanitizeHtml as _sanitizeHtml, ɵ_sanitizeUrl as _sanitizeUrl, ɵallowSanitizationBypassAndThrow as allowSanitizationBypassOrThrow, ɵbypassSanitizationTrustHtml as bypassSanitizationTrustHtml, ɵbypassSanitizationTrustResourceUrl as bypassSanitizationTrustResourceUrl, ɵbypassSanitizationTrustScript as bypassSanitizationTrustScript, ɵbypassSanitizationTrustStyle as bypassSanitizationTrustStyle, ɵbypassSanitizationTrustUrl as bypassSanitizationTrustUrl, ɵBypassType as BypassType, ɵgetSanitizationBypassType as getSanitizationBypassType, ɵunwrapSafeValue as unwrapSafeValue} from '@angular/core';\n\nexport {SecurityContext};\n\n\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   * Sanitizes a value for use in the given SecurityContext.\n   *\n   * If value is trusted for the context, this method will unwrap the contained safe value and use\n   * it directly. Otherwise, value will be sanitized to be safe in the given context, for example\n   * by replacing URLs that have an unsafe protocol part (such as `javascript:`). The implementation\n   * is responsible to make sure that the value can definitely be safely used in the given context.\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\nexport function domSanitizerImplFactory(injector: Injector) {\n  return new DomSanitizerImpl(injector.get(DOCUMENT));\n}\n\n@Injectable({providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [Injector]})\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 Error('unsafe value used in a script context');\n      case SecurityContext.URL:\n        const type = getSanitizationBypassType(value);\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 Error(\n            'unsafe value used in a resource URL context (see https://g.co/ng/security#xss)');\n      default:\n        throw new Error(`Unexpected SecurityContext ${ctx} (see https://g.co/ng/security#xss)`);\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.io/license\n */\n\nimport {CommonModule, DOCUMENT, XhrFactory, ɵPLATFORM_BROWSER_ID as PLATFORM_BROWSER_ID} from '@angular/common';\nimport {APP_ID, ApplicationModule, createPlatformFactory, ErrorHandler, Inject, ModuleWithProviders, NgModule, NgZone, Optional, PLATFORM_ID, PLATFORM_INITIALIZER, platformCore, PlatformRef, RendererFactory2, Sanitizer, SkipSelf, StaticProvider, Testability, ɵINJECTOR_SCOPE as INJECTOR_SCOPE, ɵsetDocument} from '@angular/core';\n\nimport {BrowserDomAdapter} from './browser/browser_adapter';\nimport {SERVER_TRANSITION_PROVIDERS, TRANSITION_ID} from './browser/server-transition';\nimport {BrowserGetTestability} from './browser/testability';\nimport {BrowserXhr} from './browser/xhr';\nimport {ELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nimport {DomRendererFactory2} from './dom/dom_renderer';\nimport {DomEventsPlugin} from './dom/events/dom_events';\nimport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nimport {HAMMER_PROVIDERS} from './dom/events/hammer_gestures';\nimport {KeyEventsPlugin} from './dom/events/key_events';\nimport {DomSharedStylesHost, SharedStylesHost} from './dom/shared_styles_host';\nimport {DomSanitizer, DomSanitizerImpl} from './security/dom_sanitization_service';\n\nexport function initDomAdapter() {\n  BrowserDomAdapter.makeCurrent();\n  BrowserGetTestability.init();\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\nexport const 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, deps: []},\n];\n\nconst BROWSER_SANITIZATION_PROVIDERS__PRE_R3__: StaticProvider[] = [\n  {provide: Sanitizer, useExisting: DomSanitizer},\n  {provide: DomSanitizer, useClass: DomSanitizerImpl, deps: [DOCUMENT]},\n];\n\nexport const BROWSER_SANITIZATION_PROVIDERS__POST_R3__ = [];\n\n/**\n * @security Replacing built-in sanitization providers exposes the application to XSS risks.\n * Attacker-controlled data introduced by an unsanitized provider could expose your\n * application to XSS risks. For more detail, see the [Security Guide](https://g.co/ng/security).\n * @publicApi\n */\nexport const BROWSER_SANITIZATION_PROVIDERS = BROWSER_SANITIZATION_PROVIDERS__PRE_R3__;\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\nexport const BROWSER_MODULE_PROVIDERS: StaticProvider[] = [\n  BROWSER_SANITIZATION_PROVIDERS,\n  {provide: INJECTOR_SCOPE, useValue: 'root'},\n  {provide: ErrorHandler, useFactory: errorHandler, deps: []},\n  {\n    provide: EVENT_MANAGER_PLUGINS,\n    useClass: DomEventsPlugin,\n    multi: true,\n    deps: [DOCUMENT, NgZone, PLATFORM_ID]\n  },\n  {provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true, deps: [DOCUMENT]},\n  HAMMER_PROVIDERS,\n  {\n    provide: DomRendererFactory2,\n    useClass: DomRendererFactory2,\n    deps: [EventManager, DomSharedStylesHost, APP_ID]\n  },\n  {provide: RendererFactory2, useExisting: DomRendererFactory2},\n  {provide: SharedStylesHost, useExisting: DomSharedStylesHost},\n  {provide: DomSharedStylesHost, useClass: DomSharedStylesHost, deps: [DOCUMENT]},\n  {provide: Testability, useClass: Testability, deps: [NgZone]},\n  {provide: EventManager, useClass: EventManager, deps: [EVENT_MANAGER_PLUGINS, NgZone]},\n  {provide: XhrFactory, useClass: BrowserXhr, deps: []},\n  ELEMENT_PROBE_PROVIDERS,\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({providers: BROWSER_MODULE_PROVIDERS, exports: [CommonModule, ApplicationModule]})\nexport class BrowserModule {\n  constructor(@Optional() @SkipSelf() @Inject(BrowserModule) parentModule: BrowserModule|null) {\n    if (parentModule) {\n      throw new Error(\n          `BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.`);\n    }\n  }\n\n  /**\n   * Configures a browser-based app to transition from a server-rendered app, if\n   * one is present on the page.\n   *\n   * @param params An object containing an identifier for the app to transition.\n   * The ID must match between the client and server versions of the app.\n   * @returns The reconfigured `BrowserModule` to import into the app's root `AppModule`.\n   */\n  static withServerTransition(params: {appId: string}): ModuleWithProviders<BrowserModule> {\n    return {\n      ngModule: BrowserModule,\n      providers: [\n        {provide: APP_ID, useValue: params.appId},\n        {provide: TRANSITION_ID, useExisting: APP_ID},\n        SERVER_TRANSITION_PROVIDERS,\n      ],\n    };\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.io/license\n */\n\nimport {DOCUMENT, ɵDomAdapter as DomAdapter, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, ɵɵinject} 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 `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 * Factory to create a `Meta` service instance for the current DOM document.\n */\nexport function createMeta() {\n  return new Meta(ɵɵinject(DOCUMENT));\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', useFactory: createMeta, deps: []})\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(meta: MetaDefinition, 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(\n        (prop: string) => el.setAttribute(this._getMetaKeyMap(prop), tag[prop]));\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  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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, ɵɵinject} from '@angular/core';\n\n\n/**\n * Factory to create Title service.\n */\nexport function createTitle() {\n  return new Title(ɵɵinject(DOCUMENT));\n}\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', useFactory: createTitle, deps: []})\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.io/license\n */\n\nconst win = typeof window !== 'undefined' && window || <any>{};\nexport {win as window};\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.io/license\n */\n\nimport {ApplicationRef, ComponentRef} from '@angular/core';\nimport {window} from './browser';\n\nexport class ChangeDetectionPerfRecord {\n  constructor(public msPerTick: number, public numTicks: number) {}\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   * ```\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    const isProfilerAvailable = window.console.profile != null;\n    if (record && isProfilerAvailable) {\n      window.console.profile(profileName);\n    }\n    const start = performanceNow();\n    let numTicks = 0;\n    while (numTicks < 5 || (performanceNow() - start) < 500) {\n      this.appRef.tick();\n      numTicks++;\n    }\n    const end = performanceNow();\n    if (record && isProfilerAvailable) {\n      window.console.profileEnd(profileName);\n    }\n    const msPerTick = (end - start) / numTicks;\n    window.console.log(`ran ${numTicks} change detection cycles`);\n    window.console.log(`${msPerTick.toFixed(2)} ms per check`);\n\n    return new ChangeDetectionPerfRecord(msPerTick, numTicks);\n  }\n}\n\nfunction performanceNow() {\n  return window.performance && window.performance.now ? window.performance.now() :\n                                                        new Date().getTime();\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.io/license\n */\n\nimport {ComponentRef} from '@angular/core';\nimport {exportNgVar} from '../../dom/util';\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {APP_ID, Injectable, NgModule} from '@angular/core';\n\nexport function escapeHtml(text: string): string {\n  const escapedText: {[k: string]: string} = {\n    '&': '&a;',\n    '\"': '&q;',\n    '\\'': '&s;',\n    '<': '&l;',\n    '>': '&g;',\n  };\n  return text.replace(/[&\"'<>]/g, s => escapedText[s]);\n}\n\nexport function unescapeHtml(text: string): string {\n  const unescapedText: {[k: string]: string} = {\n    '&a;': '&',\n    '&q;': '\"',\n    '&s;': '\\'',\n    '&l;': '<',\n    '&g;': '>',\n  };\n  return text.replace(/&[^;]+;/g, s => unescapedText[s]);\n}\n\n/**\n * A type-safe key to use with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport type StateKey<T> = string&{__not_a_string: never};\n\n/**\n * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport function makeStateKey<T = void>(key: string): StateKey<T> {\n  return key as StateKey<T>;\n}\n\n/**\n * A key value store that is transferred from the application on the server side to the application\n * on the client side.\n *\n * `TransferState` will be available as an injectable token. To use it import\n * `ServerTransferStateModule` on the server and `BrowserTransferStateModule` on the client.\n *\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\n * boolean, number, string, null and non-class objects will be serialized and deserialized in a\n * non-lossy manner.\n *\n * @publicApi\n */\n@Injectable()\nexport class TransferState {\n  private store: {[k: string]: {}|undefined} = {};\n  private onSerializeCallbacks: {[k: string]: () => {} | undefined} = {};\n\n  /** @internal */\n  static init(initState: {}) {\n    const transferState = new TransferState();\n    transferState.store = initState;\n    return transferState;\n  }\n\n  /**\n   * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n   */\n  get<T>(key: StateKey<T>, defaultValue: T): T {\n    return this.store[key] !== undefined ? this.store[key] as T : defaultValue;\n  }\n\n  /**\n   * Set the value corresponding to a key.\n   */\n  set<T>(key: StateKey<T>, value: T): void {\n    this.store[key] = value;\n  }\n\n  /**\n   * Remove a key from the store.\n   */\n  remove<T>(key: StateKey<T>): void {\n    delete this.store[key];\n  }\n\n  /**\n   * Test whether a key exists in the store.\n   */\n  hasKey<T>(key: StateKey<T>) {\n    return this.store.hasOwnProperty(key);\n  }\n\n  /**\n   * Register a callback to provide the value for a key when `toJson` is called.\n   */\n  onSerialize<T>(key: StateKey<T>, callback: () => T): void {\n    this.onSerializeCallbacks[key] = callback;\n  }\n\n  /**\n   * Serialize the current state of the store to JSON.\n   */\n  toJson(): string {\n    // Call the onSerialize callbacks and put those values into the store.\n    for (const key in this.onSerializeCallbacks) {\n      if (this.onSerializeCallbacks.hasOwnProperty(key)) {\n        try {\n          this.store[key] = this.onSerializeCallbacks[key]();\n        } catch (e) {\n          console.warn('Exception in onSerialize callback: ', e);\n        }\n      }\n    }\n    return JSON.stringify(this.store);\n  }\n}\n\nexport function initTransferState(doc: Document, appId: string) {\n  // Locate the script tag with the JSON data transferred from the server.\n  // The id of the script tag is set to the Angular appId + 'state'.\n  const script = doc.getElementById(appId + '-state');\n  let initialState = {};\n  if (script && script.textContent) {\n    try {\n      // Avoid using any here as it triggers lint errors in google3 (any is not allowed).\n      initialState = JSON.parse(unescapeHtml(script.textContent)) as {};\n    } catch (e) {\n      console.warn('Exception while restoring TransferState for app ' + appId, e);\n    }\n  }\n  return TransferState.init(initialState);\n}\n\n/**\n * NgModule to install on the client side while using the `TransferState` to transfer state from\n * server to client.\n *\n * @publicApi\n */\n@NgModule({\n  providers: [{provide: TransferState, useFactory: initTransferState, deps: [DOCUMENT, APP_ID]}],\n})\nexport class BrowserTransferStateModule {\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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {DebugElement, DebugNode, Predicate, Type} from '@angular/core';\n\n\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.matches && n.matches(selector) ||\n        n.msMatchesSelector && n.msMatchesSelector(selector) ||\n        n.webkitMatchesSelector && n.webkitMatchesSelector(selector);\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.io/license\n */\n\nexport {ɵgetDOM} from '@angular/common';\nexport {BROWSER_SANITIZATION_PROVIDERS as ɵBROWSER_SANITIZATION_PROVIDERS, BROWSER_SANITIZATION_PROVIDERS__POST_R3__ as ɵBROWSER_SANITIZATION_PROVIDERS__POST_R3__, initDomAdapter as ɵinitDomAdapter, INTERNAL_BROWSER_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS} from './browser';\nexport {BrowserDomAdapter as ɵBrowserDomAdapter} from './browser/browser_adapter';\nexport {TRANSITION_ID as ɵTRANSITION_ID} from './browser/server-transition';\nexport {BrowserGetTestability as ɵBrowserGetTestability} from './browser/testability';\nexport {escapeHtml as ɵescapeHtml} from './browser/transfer_state';\nexport {ELEMENT_PROBE_PROVIDERS as ɵELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nexport {DomRendererFactory2 as ɵDomRendererFactory2, flattenStyles as ɵflattenStyles, NAMESPACE_URIS as ɵNAMESPACE_URIS, shimContentAttribute as ɵshimContentAttribute, shimHostAttribute as ɵshimHostAttribute} from './dom/dom_renderer';\nexport {DomEventsPlugin as ɵDomEventsPlugin} from './dom/events/dom_events';\nexport {HammerGesturesPlugin as ɵHammerGesturesPlugin} from './dom/events/hammer_gestures';\nexport {KeyEventsPlugin as ɵKeyEventsPlugin} from './dom/events/key_events';\nexport {DomSharedStylesHost as ɵDomSharedStylesHost, SharedStylesHost as ɵSharedStylesHost} from './dom/shared_styles_host';\nexport {DomSanitizerImpl as ɵDomSanitizerImpl} from './security/dom_sanitization_service';\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.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the platform-browser package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('12.2.9');\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.io/license\n */\n\nexport {BrowserModule, platformBrowser} from './browser';\nexport {Meta, MetaDefinition} from './browser/meta';\nexport {Title} from './browser/title';\nexport {disableDebugTools, enableDebugTools} from './browser/tools/tools';\nexport {BrowserTransferStateModule, makeStateKey, StateKey, TransferState} from './browser/transfer_state';\nexport {By} from './dom/debug/by';\nexport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nexport {HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HAMMER_PROVIDERS__POST_R3__ as ɵHAMMER_PROVIDERS__POST_R3__, HammerGestureConfig, HammerLoader, HammerModule} from './dom/events/hammer_gestures';\nexport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl, SafeValue} from './security/dom_sanitization_service';\n\nexport * from './private_export';\nexport {VERSION} from './version';\n// This must be exported so it doesn't get tree-shaken away prematurely\nexport {ELEMENT_PROBE_PROVIDERS__POST_R3__ as ɵELEMENT_PROBE_PROVIDERS__POST_R3__} from './dom/debug/ng_probe';\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.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport * from './src/platform-browser';\n// This file only reexports content of the `src` folder. Keep it that way.\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.io/license\n */\n\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {BROWSER_MODULE_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_c,_document as ɵangular_packages_platform_browser_platform_browser_b,errorHandler as ɵangular_packages_platform_browser_platform_browser_a} from './src/browser';\nexport {GenericBrowserDomAdapter as ɵangular_packages_platform_browser_platform_browser_p} from './src/browser/generic_browser_adapter';\nexport {createMeta as ɵangular_packages_platform_browser_platform_browser_d} from './src/browser/meta';\nexport {SERVER_TRANSITION_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_l,appInitializerFactory as ɵangular_packages_platform_browser_platform_browser_k} from './src/browser/server-transition';\nexport {createTitle as ɵangular_packages_platform_browser_platform_browser_e} from './src/browser/title';\nexport {initTransferState as ɵangular_packages_platform_browser_platform_browser_f} from './src/browser/transfer_state';\nexport {BrowserXhr as ɵangular_packages_platform_browser_platform_browser_o} from './src/browser/xhr';\nexport {ELEMENT_PROBE_PROVIDERS__PRE_R3__ as ɵangular_packages_platform_browser_platform_browser_n,_createNgProbeR2 as ɵangular_packages_platform_browser_platform_browser_m} from './src/dom/debug/ng_probe';\nexport {EventManagerPlugin as ɵangular_packages_platform_browser_platform_browser_g} from './src/dom/events/event_manager';\nexport {HAMMER_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_i,HAMMER_PROVIDERS__PRE_R3__ as ɵangular_packages_platform_browser_platform_browser_h} from './src/dom/events/hammer_gestures';\nexport {domSanitizerImplFactory as ɵangular_packages_platform_browser_platform_browser_j} from './src/security/dom_sanitization_service';"],"names":["DomAdapter","setRootDomAdapter","parseCookieValue","InjectionToken","ApplicationInitStatus","getDOM","APP_INITIALIZER","DOCUMENT","Injector","setTestabilityGetter","global","Injectable","ApplicationRef","NgZone","ɵgetDebugNodeR2","NgProbeToken","Optional","Inject","ViewEncapsulation","APP_ID","RendererStyleFlags2","Console","NgModule","forwardRef","SecurityContext","allowSanitizationBypassOrThrow","unwrapSafeValue","_sanitizeHtml","getSanitizationBypassType","_sanitizeUrl","bypassSanitizationTrustHtml","bypassSanitizationTrustStyle","bypassSanitizationTrustScript","bypassSanitizationTrustUrl","bypassSanitizationTrustResourceUrl","ErrorHandler","ɵsetDocument","PLATFORM_BROWSER_ID","PLATFORM_ID","PLATFORM_INITIALIZER","Sanitizer","createPlatformFactory","platformCore","INJECTOR_SCOPE","RendererFactory2","Testability","XhrFactory","CommonModule","ApplicationModule","SkipSelf","ɵɵinject","window","Version"],"mappings":"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"}
Index: trip-planner-front/node_modules/@angular/platform-browser/esm2015/src/version.js
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/esm2015/src/version.js	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/esm2015/src/version.js	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -15,4 +15,4 @@
  * @publicApi
  */
-export const VERSION = new Version('12.2.13');
+export const VERSION = new Version('12.2.9');
 //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtLWJyb3dzZXIvc3JjL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUg7Ozs7R0FJRztBQUVILE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEBtb2R1bGVcbiAqIEBkZXNjcmlwdGlvblxuICogRW50cnkgcG9pbnQgZm9yIGFsbCBwdWJsaWMgQVBJcyBvZiB0aGUgcGxhdGZvcm0tYnJvd3NlciBwYWNrYWdlLlxuICovXG5cbmltcG9ydCB7VmVyc2lvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcwLjAuMC1QTEFDRUhPTERFUicpO1xuIl19
Index: trip-planner-front/node_modules/@angular/platform-browser/fesm2015/animations.js
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/fesm2015/animations.js	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/fesm2015/animations.js	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,4 +1,4 @@
 /**
- * @license Angular v12.2.13
+ * @license Angular v12.2.9
  * (c) 2010-2021 Google LLC. https://angular.io/
  * License: MIT
Index: trip-planner-front/node_modules/@angular/platform-browser/fesm2015/platform-browser.js
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/fesm2015/platform-browser.js	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/fesm2015/platform-browser.js	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,4 +1,4 @@
 /**
- * @license Angular v12.2.13
+ * @license Angular v12.2.9
  * (c) 2010-2021 Google LLC. https://angular.io/
  * License: MIT
@@ -2061,5 +2061,5 @@
  * @publicApi
  */
-const VERSION = new Version('12.2.13');
+const VERSION = new Version('12.2.9');
 
 /**
Index: trip-planner-front/node_modules/@angular/platform-browser/fesm2015/platform-browser.js.map
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/fesm2015/platform-browser.js.map	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/fesm2015/platform-browser.js.map	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,1 +1,1 @@
-{"version":3,"file":"platform-browser.js","sources":["../../../../../../packages/platform-browser/src/browser/generic_browser_adapter.ts","../../../../../../packages/platform-browser/src/browser/browser_adapter.ts","../../../../../../packages/platform-browser/src/browser/server-transition.ts","../../../../../../packages/platform-browser/src/browser/testability.ts","../../../../../../packages/platform-browser/src/browser/xhr.ts","../../../../../../packages/platform-browser/src/dom/util.ts","../../../../../../packages/platform-browser/src/dom/debug/ng_probe.ts","../../../../../../packages/platform-browser/src/dom/events/event_manager.ts","../../../../../../packages/platform-browser/src/dom/shared_styles_host.ts","../../../../../../packages/platform-browser/src/dom/dom_renderer.ts","../../../../../../packages/platform-browser/src/dom/events/dom_events.ts","../../../../../../packages/platform-browser/src/dom/events/hammer_gestures.ts","../../../../../../packages/platform-browser/src/dom/events/key_events.ts","../../../../../../packages/platform-browser/src/security/dom_sanitization_service.ts","../../../../../../packages/platform-browser/src/browser.ts","../../../../../../packages/platform-browser/src/browser/meta.ts","../../../../../../packages/platform-browser/src/browser/title.ts","../../../../../../packages/platform-browser/src/browser/tools/browser.ts","../../../../../../packages/platform-browser/src/browser/tools/common_tools.ts","../../../../../../packages/platform-browser/src/browser/tools/tools.ts","../../../../../../packages/platform-browser/src/browser/transfer_state.ts","../../../../../../packages/platform-browser/src/dom/debug/by.ts","../../../../../../packages/platform-browser/src/private_export.ts","../../../../../../packages/platform-browser/src/version.ts","../../../../../../packages/platform-browser/src/platform-browser.ts","../../../../../../packages/platform-browser/public_api.ts","../../../../../../packages/platform-browser/index.ts","../../../../../../packages/platform-browser/platform-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.io/license\n */\n\nimport {ɵDomAdapter as DomAdapter} from '@angular/common';\n\n\n\n/**\n * Provides DOM operations in any browser environment.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class GenericBrowserDomAdapter extends DomAdapter {\n  readonly supportsDOMEvents: boolean = true;\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.io/license\n */\n\nimport {ɵparseCookieValue as parseCookieValue, ɵsetRootDomAdapter as setRootDomAdapter} from '@angular/common';\n\nimport {GenericBrowserDomAdapter} from './generic_browser_adapter';\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 */\n/* tslint:disable:requireParameterType no-console */\nexport class BrowserDomAdapter extends GenericBrowserDomAdapter {\n  static makeCurrent() {\n    setRootDomAdapter(new BrowserDomAdapter());\n  }\n\n  onAndCancel(el: Node, evt: any, listener: any): Function {\n    el.addEventListener(evt, listener, false);\n    // Needed to follow Dart's subscription semantic, until fix of\n    // https://code.google.com/p/dart/issues/detail?id=17406\n    return () => {\n      el.removeEventListener(evt, listener, false);\n    };\n  }\n  dispatchEvent(el: Node, evt: any) {\n    el.dispatchEvent(evt);\n  }\n  remove(node: Node): void {\n    if (node.parentNode) {\n      node.parentNode.removeChild(node);\n    }\n  }\n  createElement(tagName: string, doc?: Document): HTMLElement {\n    doc = doc || this.getDefaultDocument();\n    return doc.createElement(tagName);\n  }\n  createHtmlDocument(): HTMLDocument {\n    return document.implementation.createHTMLDocument('fakeTitle');\n  }\n  getDefaultDocument(): Document {\n    return document;\n  }\n\n  isElementNode(node: Node): boolean {\n    return node.nodeType === Node.ELEMENT_NODE;\n  }\n\n  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  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  getBaseHref(doc: Document): string|null {\n    const href = getBaseElementHref();\n    return href == null ? null : relativePath(href);\n  }\n  resetBaseElement(): void {\n    baseElement = null;\n  }\n  getUserAgent(): string {\n    return window.navigator.userAgent;\n  }\n  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.querySelector('base');\n  return baseElement ? baseElement.getAttribute('href') : null;\n}\n\n// based on urlUtils.js in AngularJS 1\nlet urlParsingNode: HTMLAnchorElement|undefined;\nfunction relativePath(url: any): string {\n  urlParsingNode = urlParsingNode || document.createElement('a');\n  urlParsingNode.setAttribute('href', url);\n  const pathName = urlParsingNode.pathname;\n  return pathName.charAt(0) === '/' ? pathName : `/${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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {APP_INITIALIZER, ApplicationInitStatus, InjectionToken, Injector, StaticProvider} from '@angular/core';\n\n/**\n * An id that identifies a particular application being bootstrapped, that should\n * match across the client/server boundary.\n */\nexport const TRANSITION_ID = new InjectionToken('TRANSITION_ID');\n\nexport function appInitializerFactory(transitionId: string, document: any, injector: Injector) {\n  return () => {\n    // Wait for all application initializers to be completed before removing the styles set by\n    // the server.\n    injector.get(ApplicationInitStatus).donePromise.then(() => {\n      const dom = getDOM();\n      const styles: HTMLCollectionOf<HTMLStyleElement> =\n          document.querySelectorAll(`style[ng-transition=\"${transitionId}\"]`);\n      for (let i = 0; i < styles.length; i++) {\n        dom.remove(styles[i]);\n      }\n    });\n  };\n}\n\nexport const SERVER_TRANSITION_PROVIDERS: StaticProvider[] = [\n  {\n    provide: APP_INITIALIZER,\n    useFactory: appInitializerFactory,\n    deps: [TRANSITION_ID, DOCUMENT, Injector],\n    multi: 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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {GetTestability, setTestabilityGetter, Testability, TestabilityRegistry, ɵglobal as global} from '@angular/core';\n\nexport class BrowserGetTestability implements GetTestability {\n  static init() {\n    setTestabilityGetter(new BrowserGetTestability());\n  }\n\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 Error('Could not find testability for element.');\n      }\n      return testability;\n    };\n\n    global['getAllAngularTestabilities'] = () => registry.getAllTestabilities();\n\n    global['getAllAngularRootElements'] = () => registry.getAllRootElements();\n\n    const whenAllStable = (callback: any /** TODO #9100 */) => {\n      const testabilities = global['getAllAngularTestabilities']();\n      let count = testabilities.length;\n      let didWork = false;\n      const decrement = function(didWork_: any /** TODO #9100 */) {\n        didWork = didWork || didWork_;\n        count--;\n        if (count == 0) {\n          callback(didWork);\n        }\n      };\n      testabilities.forEach(function(testability: any /** TODO #9100 */) {\n        testability.whenStable(decrement);\n      });\n    };\n\n    if (!global['frameworkStabilizers']) {\n      global['frameworkStabilizers'] = [];\n    }\n    global['frameworkStabilizers'].push(whenAllStable);\n  }\n\n  findTestabilityInTree(registry: TestabilityRegistry, elem: any, 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.io/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.io/license\n */\n\nimport {ɵglobal as global} from '@angular/core';\n\nconst CAMEL_CASE_REGEXP = /([A-Z])/g;\nconst DASH_CASE_REGEXP = /-([a-z])/g;\n\n\nexport function camelCaseToDashCase(input: string): string {\n  return input.replace(CAMEL_CASE_REGEXP, (...m: string[]) => '-' + m[1].toLowerCase());\n}\n\nexport function dashCaseToCamelCase(input: string): string {\n  return input.replace(DASH_CASE_REGEXP, (...m: string[]) => m[1].toUpperCase());\n}\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.io/license\n */\n\nimport {APP_INITIALIZER, ApplicationRef, DebugNode, NgProbeToken, NgZone, Optional, Provider, ɵgetDebugNodeR2} from '@angular/core';\n\nimport {exportNgVar} from '../util';\n\nconst CORE_TOKENS = (() => ({\n                       'ApplicationRef': ApplicationRef,\n                       'NgZone': NgZone,\n                     }))();\n\nconst INSPECT_GLOBAL_NAME = 'probe';\nconst CORE_TOKENS_GLOBAL_NAME = 'coreTokens';\n\n/**\n * Returns a {@link DebugElement} for the given native DOM element, or\n * null if the given native element does not have an Angular view associated\n * with it.\n */\nexport function inspectNativeElementR2(element: any): DebugNode|null {\n  return ɵgetDebugNodeR2(element);\n}\n\nexport function _createNgProbeR2(coreTokens: NgProbeToken[]): any {\n  exportNgVar(INSPECT_GLOBAL_NAME, inspectNativeElementR2);\n  exportNgVar(CORE_TOKENS_GLOBAL_NAME, {...CORE_TOKENS, ..._ngProbeTokensToMap(coreTokens || [])});\n  return () => inspectNativeElementR2;\n}\n\nfunction _ngProbeTokensToMap(tokens: NgProbeToken[]): {[name: string]: any} {\n  return tokens.reduce((prev: any, t: any) => (prev[t.name] = t.token, prev), {});\n}\n\n/**\n * In Ivy, we don't support NgProbe because we have our own set of testing utilities\n * with more robust functionality.\n *\n * We shouldn't bring in NgProbe because it prevents DebugNode and friends from\n * tree-shaking properly.\n */\nexport const ELEMENT_PROBE_PROVIDERS__POST_R3__ = [];\n\n/**\n * Providers which support debugging Angular applications (e.g. via `ng.probe`).\n */\nexport const ELEMENT_PROBE_PROVIDERS__PRE_R3__: Provider[] = [\n  {\n    provide: APP_INITIALIZER,\n    useFactory: _createNgProbeR2,\n    deps: [\n      [NgProbeToken, new Optional()],\n    ],\n    multi: true,\n  },\n];\n\nexport const ELEMENT_PROBE_PROVIDERS = ELEMENT_PROBE_PROVIDERS__PRE_R3__;\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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, InjectionToken, NgZone} from '@angular/core';\n\n/**\n * The injection token for the event-manager plug-in service.\n *\n * @publicApi\n */\nexport const EVENT_MANAGER_PLUGINS =\n    new InjectionToken<EventManagerPlugin[]>('EventManagerPlugins');\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(@Inject(EVENT_MANAGER_PLUGINS) plugins: EventManagerPlugin[], private _zone: NgZone) {\n    plugins.forEach(p => p.manager = this);\n    this._plugins = plugins.slice().reverse();\n  }\n\n  /**\n   * Registers a handler for a specific element and event.\n   *\n   * @param element The HTML element to receive event notifications.\n   * @param eventName The name of the event to listen for.\n   * @param handler A function to call when the notification occurs. Receives the\n   * event object as an argument.\n   * @returns  A callback function that can be used to remove the handler.\n   */\n  addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n    const plugin = this._findPluginFor(eventName);\n    return plugin.addEventListener(element, eventName, handler);\n  }\n\n  /**\n   * Registers a global handler for an event in a target view.\n   *\n   * @param target A target for global event notifications. One of \"window\", \"document\", or \"body\".\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   * @returns A callback function that can be used to remove the handler.\n   * @deprecated No longer being used in Ivy code. To be removed in version 14.\n   */\n  addGlobalEventListener(target: string, eventName: string, handler: Function): Function {\n    const plugin = this._findPluginFor(eventName);\n    return plugin.addGlobalEventListener(target, eventName, handler);\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    const plugin = this._eventNameToPlugin.get(eventName);\n    if (plugin) {\n      return plugin;\n    }\n\n    const plugins = this._plugins;\n    for (let i = 0; i < plugins.length; i++) {\n      const plugin = plugins[i];\n      if (plugin.supports(eventName)) {\n        this._eventNameToPlugin.set(eventName, plugin);\n        return plugin;\n      }\n    }\n    throw new Error(`No event manager plugin found for event ${eventName}`);\n  }\n}\n\nexport abstract class EventManagerPlugin {\n  constructor(private _doc: any) {}\n\n  // TODO(issue/24571): remove '!'.\n  manager!: EventManager;\n\n  abstract supports(eventName: string): boolean;\n\n  abstract addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\n\n  addGlobalEventListener(element: string, eventName: string, handler: Function): Function {\n    const target: HTMLElement = getDOM().getGlobalEventTarget(this._doc, element);\n    if (!target) {\n      throw new Error(`Unsupported event target ${target} for event ${eventName}`);\n    }\n    return this.addEventListener(target, eventName, handler);\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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, OnDestroy} from '@angular/core';\n\n@Injectable()\nexport class SharedStylesHost {\n  /** @internal */\n  protected _stylesSet = new Set<string>();\n\n  addStyles(styles: string[]): void {\n    const additions = new Set<string>();\n    styles.forEach(style => {\n      if (!this._stylesSet.has(style)) {\n        this._stylesSet.add(style);\n        additions.add(style);\n      }\n    });\n    this.onStylesAdded(additions);\n  }\n\n  onStylesAdded(additions: Set<string>): void {}\n\n  getAllStyles(): string[] {\n    return Array.from(this._stylesSet);\n  }\n}\n\n@Injectable()\nexport class DomSharedStylesHost extends SharedStylesHost implements OnDestroy {\n  // Maps all registered host nodes to a list of style nodes that have been added to the host node.\n  private _hostNodes = new Map<Node, Node[]>();\n\n  constructor(@Inject(DOCUMENT) private _doc: any) {\n    super();\n    this._hostNodes.set(_doc.head, []);\n  }\n\n  private _addStylesToHost(styles: Set<string>, host: Node, styleNodes: Node[]): void {\n    styles.forEach((style: string) => {\n      const styleEl = this._doc.createElement('style');\n      styleEl.textContent = style;\n      styleNodes.push(host.appendChild(styleEl));\n    });\n  }\n\n  addHost(hostNode: Node): void {\n    const styleNodes: Node[] = [];\n    this._addStylesToHost(this._stylesSet, hostNode, styleNodes);\n    this._hostNodes.set(hostNode, styleNodes);\n  }\n\n  removeHost(hostNode: Node): void {\n    const styleNodes = this._hostNodes.get(hostNode);\n    if (styleNodes) {\n      styleNodes.forEach(removeStyle);\n    }\n    this._hostNodes.delete(hostNode);\n  }\n\n  override onStylesAdded(additions: Set<string>): void {\n    this._hostNodes.forEach((styleNodes, hostNode) => {\n      this._addStylesToHost(additions, hostNode, styleNodes);\n    });\n  }\n\n  ngOnDestroy(): void {\n    this._hostNodes.forEach(styleNodes => styleNodes.forEach(removeStyle));\n  }\n}\n\nfunction removeStyle(styleNode: Node): void {\n  getDOM().remove(styleNode);\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.io/license\n */\n\nimport {APP_ID, Inject, Injectable, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2, ViewEncapsulation} from '@angular/core';\n\nimport {EventManager} from './events/event_manager';\nimport {DomSharedStylesHost} 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};\n\nconst COMPONENT_REGEX = /%COMP%/g;\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\n\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\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 flattenStyles(\n    compId: string, styles: Array<any|any[]>, target: string[]): string[] {\n  for (let i = 0; i < styles.length; i++) {\n    let style = styles[i];\n\n    if (Array.isArray(style)) {\n      flattenStyles(compId, style, target);\n    } else {\n      style = style.replace(COMPONENT_REGEX, compId);\n      target.push(style);\n    }\n  }\n  return target;\n}\n\nfunction 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 the\n  // two differently. In the first case, the special '__ngUnwrap__' token is passed to the unwrap\n  // 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 debug_node\n    // can inspect the listener toString contents for the existence of this special token. Because\n    // the token is a string literal, it is ensured to not be modified by compiled code.\n    if (event === '__ngUnwrap__') {\n      return eventHandler;\n    }\n\n    const allowDefaultBehavior = eventHandler(event);\n    if (allowDefaultBehavior === false) {\n      // TODO(tbosch): move preventDefault into event plugins...\n      event.preventDefault();\n      event.returnValue = false;\n    }\n\n    return undefined;\n  };\n}\n\nlet hasLoggedNativeEncapsulationWarning = false;\n\n@Injectable()\nexport class DomRendererFactory2 implements RendererFactory2 {\n  private rendererByCompId = new Map<string, Renderer2>();\n  private defaultRenderer: Renderer2;\n\n  constructor(\n      private eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n      @Inject(APP_ID) private appId: string) {\n    this.defaultRenderer = new DefaultDomRenderer2(eventManager);\n  }\n\n  createRenderer(element: any, type: RendererType2|null): Renderer2 {\n    if (!element || !type) {\n      return this.defaultRenderer;\n    }\n    switch (type.encapsulation) {\n      case ViewEncapsulation.Emulated: {\n        let renderer = this.rendererByCompId.get(type.id);\n        if (!renderer) {\n          renderer = new EmulatedEncapsulationDomRenderer2(\n              this.eventManager, this.sharedStylesHost, type, this.appId);\n          this.rendererByCompId.set(type.id, renderer);\n        }\n        (<EmulatedEncapsulationDomRenderer2>renderer).applyToHost(element);\n        return renderer;\n      }\n      // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an enum\n      // value that is not known (but previously was the value for ViewEncapsulation.Native)\n      case 1:\n      case ViewEncapsulation.ShadowDom:\n        // TODO(FW-2290): remove the `case 1:` fallback logic and the warning in v12.\n        if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n            // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an\n            // enum value that is not known (but previously was the value for\n            // ViewEncapsulation.Native)\n            !hasLoggedNativeEncapsulationWarning && type.encapsulation === 1) {\n          hasLoggedNativeEncapsulationWarning = true;\n          console.warn(\n              'ViewEncapsulation.Native is no longer supported. Falling back to ViewEncapsulation.ShadowDom. The fallback will be removed in v12.');\n        }\n\n        return new ShadowDomRenderer(this.eventManager, this.sharedStylesHost, element, type);\n      default: {\n        if (!this.rendererByCompId.has(type.id)) {\n          const styles = flattenStyles(type.id, type.styles, []);\n          this.sharedStylesHost.addStyles(styles);\n          this.rendererByCompId.set(type.id, this.defaultRenderer);\n        }\n        return this.defaultRenderer;\n      }\n    }\n  }\n\n  begin() {}\n  end() {}\n}\n\nclass DefaultDomRenderer2 implements Renderer2 {\n  data: {[key: string]: any} = Object.create(null);\n\n  constructor(private eventManager: EventManager) {}\n\n  destroy(): void {}\n\n  destroyNode: null;\n\n  createElement(name: string, namespace?: string): any {\n    if (namespace) {\n      // In cases where Ivy (not ViewEngine) is giving us the actual namespace, the look up by key\n      // will result in undefined, so we just return the namespace here.\n      return document.createElementNS(NAMESPACE_URIS[namespace] || namespace, name);\n    }\n\n    return document.createElement(name);\n  }\n\n  createComment(value: string): any {\n    return document.createComment(value);\n  }\n\n  createText(value: string): any {\n    return document.createTextNode(value);\n  }\n\n  appendChild(parent: any, newChild: any): void {\n    parent.appendChild(newChild);\n  }\n\n  insertBefore(parent: any, newChild: any, refChild: any): void {\n    if (parent) {\n      parent.insertBefore(newChild, refChild);\n    }\n  }\n\n  removeChild(parent: any, oldChild: any): void {\n    if (parent) {\n      parent.removeChild(oldChild);\n    }\n  }\n\n  selectRootElement(selectorOrNode: string|any, preserveContent?: boolean): any {\n    let el: any = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) :\n                                                       selectorOrNode;\n    if (!el) {\n      throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\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      // TODO(FW-811): Ivy may cause issues here because it's passing around\n      // full URIs for namespaces, therefore this lookup will fail.\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      // TODO(FW-811): Ivy may cause issues here because it's passing around\n      // full URIs for namespaces, therefore this lookup will fail.\n      const namespaceUri = NAMESPACE_URIS[namespace];\n      if (namespaceUri) {\n        el.removeAttributeNS(namespaceUri, name);\n      } else {\n        // TODO(FW-811): Since ivy is passing around full URIs for namespaces\n        // this could result in properties like `http://www.w3.org/2000/svg:cx=\"123\"`,\n        // which is wrong.\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      el.style.removeProperty(style);\n    } else {\n      // IE requires '' instead of null\n      // see https://github.com/angular/angular/issues/7916\n      el.style[style] = '';\n    }\n  }\n\n  setProperty(el: any, name: string, value: any): void {\n    NG_DEV_MODE && checkNoSyntheticProp(name, 'property');\n    el[name] = value;\n  }\n\n  setValue(node: any, value: string): void {\n    node.nodeValue = value;\n  }\n\n  listen(target: 'window'|'document'|'body'|any, event: string, callback: (event: any) => boolean):\n      () => void {\n    NG_DEV_MODE && checkNoSyntheticProp(event, 'listener');\n    if (typeof target === 'string') {\n      return <() => void>this.eventManager.addGlobalEventListener(\n          target, event, decoratePreventDefault(callback));\n    }\n    return <() => void>this.eventManager.addEventListener(\n               target, event, decoratePreventDefault(callback)) as () => void;\n  }\n}\n\nconst AT_CHARCODE = (() => '@'.charCodeAt(0))();\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n  if (name.charCodeAt(0) === AT_CHARCODE) {\n    throw new Error(`Unexpected synthetic ${nameKind} ${name} found. Please make sure that:\n  - Either \\`BrowserAnimationsModule\\` or \\`NoopAnimationsModule\\` are imported in your application.\n  - There is corresponding configuration for the animation named \\`${\n        name}\\` defined in the \\`animations\\` field of the \\`@Component\\` decorator (see https://angular.io/api/core/Component#animations).`);\n  }\n}\n\nclass EmulatedEncapsulationDomRenderer2 extends DefaultDomRenderer2 {\n  private contentAttr: string;\n  private hostAttr: string;\n\n  constructor(\n      eventManager: EventManager, sharedStylesHost: DomSharedStylesHost,\n      private component: RendererType2, appId: string) {\n    super(eventManager);\n    const styles = flattenStyles(appId + '-' + component.id, component.styles, []);\n    sharedStylesHost.addStyles(styles);\n\n    this.contentAttr = shimContentAttribute(appId + '-' + component.id);\n    this.hostAttr = shimHostAttribute(appId + '-' + component.id);\n  }\n\n  applyToHost(element: any) {\n    super.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\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n  private shadowRoot: any;\n\n  constructor(\n      eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n      private hostEl: any, component: RendererType2) {\n    super(eventManager);\n    this.shadowRoot = (hostEl as any).attachShadow({mode: 'open'});\n    this.sharedStylesHost.addHost(this.shadowRoot);\n    const styles = flattenStyles(component.id, component.styles, []);\n    for (let i = 0; i < styles.length; i++) {\n      const styleEl = document.createElement('style');\n      styleEl.textContent = styles[i];\n      this.shadowRoot.appendChild(styleEl);\n    }\n  }\n\n  private nodeOrShadowRoot(node: any): any {\n    return node === this.hostEl ? this.shadowRoot : node;\n  }\n\n  override destroy() {\n    this.sharedStylesHost.removeHost(this.shadowRoot);\n  }\n\n  override appendChild(parent: any, newChild: any): void {\n    return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n  }\n  override insertBefore(parent: any, newChild: any, refChild: any): void {\n    return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n  }\n  override removeChild(parent: any, oldChild: any): void {\n    return super.removeChild(this.nodeOrShadowRoot(parent), oldChild);\n  }\n  override parentNode(node: any): any {\n    return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\nimport {EventManagerPlugin} from './event_manager';\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(element: HTMLElement, eventName: string, handler: Function): Function {\n    element.addEventListener(eventName, handler as EventListener, false);\n    return () => this.removeEventListener(element, eventName, handler as EventListener);\n  }\n\n  removeEventListener(target: any, eventName: string, callback: Function): void {\n    return target.removeEventListener(eventName, callback as EventListener);\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, InjectionToken, NgModule, Optional, Provider, ɵConsole as Console} from '@angular/core';\n\nimport {EVENT_MANAGER_PLUGINS, EventManagerPlugin} from './event_manager';\n\n\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 `HammerGestureConfig`\n *\n * @ngModule HammerModule\n * @publicApi\n */\nexport const HAMMER_GESTURE_CONFIG = new InjectionToken<HammerGestureConfig>('HammerGestureConfig');\n\n\n/**\n * Function that loads HammerJS, returning a promise that is resolved once HammerJs is loaded.\n *\n * @publicApi\n */\nexport type HammerLoader = () => Promise<void>;\n\n/**\n * Injection token used to provide a {@link HammerLoader} to Angular.\n *\n * @publicApi\n */\nexport const HAMMER_LOADER = new InjectionToken<HammerLoader>('HammerLoader');\n\nexport interface HammerInstance {\n  on(eventName: string, callback?: Function): void;\n  off(eventName: string, callback?: Function): void;\n  destroy?(): void;\n}\n\n/**\n * An injectable [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n * for gesture recognition. Configures specific event recognition.\n * @publicApi\n */\n@Injectable()\nexport class HammerGestureConfig {\n  /**\n   * A set of supported event names for gestures to be used in Angular.\n   * Angular supports all built-in recognizers, as listed in\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   */\n  events: string[] = [];\n\n  /**\n   * Maps gesture event names to a set of configuration options\n   * that specify overrides to the default values for specific properties.\n   *\n   * The key is a supported event name to be configured,\n   * and the options object contains a set of properties, with override values\n   * to be applied to the named recognizer event.\n   * For example, to disable recognition of the rotate event, specify\n   *  `{\"rotate\": {\"enable\": false}}`.\n   *\n   * Properties that are not present take the HammerJS default values.\n   * For information about which properties are supported for which events,\n   * and their allowed and default values, see\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   *\n   */\n  overrides: {[key: string]: Object} = {};\n\n  /**\n   * Properties whose default values can be overridden for a given event.\n   * Different sets of properties apply to different events.\n   * For information about which properties are supported for which events,\n   * and their allowed and default values, see\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   */\n  options?: {\n    cssProps?: any;\n    domEvents?: boolean;\n    enable?: boolean | ((manager: any) => boolean);\n    preset?: any[];\n    touchAction?: string;\n    recognizers?: any[];\n    inputClass?: any;\n    inputTarget?: EventTarget;\n  };\n\n  /**\n   * Creates a [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n   * and attaches it to a given HTML element.\n   * @param element The element that will recognize gestures.\n   * @returns A HammerJS event-manager object.\n   */\n  buildHammer(element: HTMLElement): HammerInstance {\n    const mc = new Hammer!(element, this.options);\n\n    mc.get('pinch').set({enable: true});\n    mc.get('rotate').set({enable: true});\n\n    for (const eventName in this.overrides) {\n      mc.get(eventName).set(this.overrides[eventName]);\n    }\n\n    return mc;\n  }\n}\n\n/**\n * Event plugin that adds Hammer support to an application.\n *\n * @ngModule HammerModule\n */\n@Injectable()\nexport class HammerGesturesPlugin extends EventManagerPlugin {\n  private _loaderPromise: Promise<void>|null = null;\n\n  constructor(\n      @Inject(DOCUMENT) doc: any,\n      @Inject(HAMMER_GESTURE_CONFIG) private _config: HammerGestureConfig, private console: Console,\n      @Optional() @Inject(HAMMER_LOADER) private loader?: HammerLoader|null) {\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        this.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      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 || 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      this._loaderPromise\n          .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                this.console.warn(\n                    `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 removal.\n              deregister = this.addEventListener(element, eventName, handler);\n            }\n          })\n          .catch(() => {\n            if (typeof ngDevMode === 'undefined' || ngDevMode) {\n              this.console.warn(\n                  `The \"${eventName}\" event cannot be bound because the custom ` +\n                  `Hammer.JS loader failed.`);\n            }\n            deregister = () => {};\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 * In Ivy, support for Hammer gestures is optional, so applications must\n * import the `HammerModule` at root to turn on support. This means that\n * Hammer-specific code can be tree-shaken away if not needed.\n */\nexport const HAMMER_PROVIDERS__POST_R3__ = [];\n\n/**\n * In View Engine, support for Hammer gestures is built-in by default.\n */\nexport const HAMMER_PROVIDERS__PRE_R3__: Provider[] = [\n  {\n    provide: EVENT_MANAGER_PLUGINS,\n    useClass: HammerGesturesPlugin,\n    multi: true,\n    deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, Console, [new Optional(), HAMMER_LOADER]]\n  },\n  {provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: []},\n];\n\nexport const HAMMER_PROVIDERS = HAMMER_PROVIDERS__PRE_R3__;\n\n/**\n * Adds support for HammerJS.\n *\n * Import this module at the root of your application so that Angular can work with\n * HammerJS to detect gesture events.\n *\n * Note that applications still need to include the HammerJS script itself. This module\n * simply sets up the coordination layer between HammerJS and Angular's EventManager.\n *\n * @publicApi\n */\n@NgModule({providers: HAMMER_PROVIDERS__PRE_R3__})\nexport class HammerModule {\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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Defines supported modifiers for key events.\n */\nconst MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\n\nconst DOM_KEY_LOCATION_NUMPAD = 3;\n\n// Map to convert some key or keyIdentifier values to what will be returned by getEventKey\nconst _keyMap: {[k: string]: string} = {\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/\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// There is a bug in Chrome for numeric keypad keys:\n// https://code.google.com/p/chromium/issues/detail?id=155654\n// 1, 2, 3 ... are reported as A, B, C ...\nconst _chromeNumKeyPadMap = {\n  'A': '1',\n  'B': '2',\n  'C': '3',\n  'D': '4',\n  'E': '5',\n  'F': '6',\n  'G': '7',\n  'H': '8',\n  'I': '9',\n  'J': '*',\n  'K': '+',\n  'M': '-',\n  'N': '.',\n  'O': '/',\n  '\\x60': '0',\n  '\\x90': 'NumLock'\n};\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 * @publicApi\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(element: HTMLElement, eventName: string, handler: Function): Function {\n    const parsedEvent = KeyEventsPlugin.parseEventName(eventName)!;\n\n    const outsideHandler =\n        KeyEventsPlugin.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());\n\n    return this.manager.getZone().runOutsideAngular(() => {\n      return getDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);\n    });\n  }\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    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  static getEventFullKey(event: KeyboardEvent): string {\n    let fullKey = '';\n    let key = getEventKey(event);\n    key = key.toLowerCase();\n    if (key === ' ') {\n      key = 'space';  // for readability\n    } else if (key === '.') {\n      key = 'dot';  // because '.' is used as a separator in event names\n    }\n    MODIFIER_KEYS.forEach(modifierName => {\n      if (modifierName != key) {\n        const modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n        if (modifierGetter(event)) {\n          fullKey += modifierName + '.';\n        }\n      }\n    });\n    fullKey += key;\n    return fullKey;\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: any, handler: Function, zone: NgZone): Function {\n    return (event: any /** TODO #9100 */) => {\n      if (KeyEventsPlugin.getEventFullKey(event) === fullKey) {\n        zone.runGuarded(() => handler(event));\n      }\n    };\n  }\n\n  /** @internal */\n  static _normalizeKey(keyName: string): string {\n    // TODO: switch to a Map if the mapping grows too much\n    switch (keyName) {\n      case 'esc':\n        return 'escape';\n      default:\n        return keyName;\n    }\n  }\n}\n\nfunction getEventKey(event: any): string {\n  let key = event.key;\n  if (key == null) {\n    key = event.keyIdentifier;\n    // keyIdentifier is defined in the old draft of DOM Level 3 Events implemented by Chrome and\n    // Safari cf\n    // https://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/events.html#Events-KeyboardEvents-Interfaces\n    if (key == null) {\n      return 'Unidentified';\n    }\n    if (key.startsWith('U+')) {\n      key = String.fromCharCode(parseInt(key.substring(2), 16));\n      if (event.location === DOM_KEY_LOCATION_NUMPAD && _chromeNumKeyPadMap.hasOwnProperty(key)) {\n        // There is a bug in Chrome for numeric keypad keys:\n        // https://code.google.com/p/chromium/issues/detail?id=155654\n        // 1, 2, 3 ... are reported as A, B, C ...\n        key = (_chromeNumKeyPadMap as any)[key];\n      }\n    }\n  }\n\n  return _keyMap[key] || key;\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {forwardRef, Inject, Injectable, Injector, Sanitizer, SecurityContext, ɵ_sanitizeHtml as _sanitizeHtml, ɵ_sanitizeUrl as _sanitizeUrl, ɵallowSanitizationBypassAndThrow as allowSanitizationBypassOrThrow, ɵbypassSanitizationTrustHtml as bypassSanitizationTrustHtml, ɵbypassSanitizationTrustResourceUrl as bypassSanitizationTrustResourceUrl, ɵbypassSanitizationTrustScript as bypassSanitizationTrustScript, ɵbypassSanitizationTrustStyle as bypassSanitizationTrustStyle, ɵbypassSanitizationTrustUrl as bypassSanitizationTrustUrl, ɵBypassType as BypassType, ɵgetSanitizationBypassType as getSanitizationBypassType, ɵunwrapSafeValue as unwrapSafeValue} from '@angular/core';\n\nexport {SecurityContext};\n\n\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   * Sanitizes a value for use in the given SecurityContext.\n   *\n   * If value is trusted for the context, this method will unwrap the contained safe value and use\n   * it directly. Otherwise, value will be sanitized to be safe in the given context, for example\n   * by replacing URLs that have an unsafe protocol part (such as `javascript:`). The implementation\n   * is responsible to make sure that the value can definitely be safely used in the given context.\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\nexport function domSanitizerImplFactory(injector: Injector) {\n  return new DomSanitizerImpl(injector.get(DOCUMENT));\n}\n\n@Injectable({providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [Injector]})\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 Error('unsafe value used in a script context');\n      case SecurityContext.URL:\n        const type = getSanitizationBypassType(value);\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 Error(\n            'unsafe value used in a resource URL context (see https://g.co/ng/security#xss)');\n      default:\n        throw new Error(`Unexpected SecurityContext ${ctx} (see https://g.co/ng/security#xss)`);\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.io/license\n */\n\nimport {CommonModule, DOCUMENT, XhrFactory, ɵPLATFORM_BROWSER_ID as PLATFORM_BROWSER_ID} from '@angular/common';\nimport {APP_ID, ApplicationModule, createPlatformFactory, ErrorHandler, Inject, ModuleWithProviders, NgModule, NgZone, Optional, PLATFORM_ID, PLATFORM_INITIALIZER, platformCore, PlatformRef, RendererFactory2, Sanitizer, SkipSelf, StaticProvider, Testability, ɵINJECTOR_SCOPE as INJECTOR_SCOPE, ɵsetDocument} from '@angular/core';\n\nimport {BrowserDomAdapter} from './browser/browser_adapter';\nimport {SERVER_TRANSITION_PROVIDERS, TRANSITION_ID} from './browser/server-transition';\nimport {BrowserGetTestability} from './browser/testability';\nimport {BrowserXhr} from './browser/xhr';\nimport {ELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nimport {DomRendererFactory2} from './dom/dom_renderer';\nimport {DomEventsPlugin} from './dom/events/dom_events';\nimport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nimport {HAMMER_PROVIDERS} from './dom/events/hammer_gestures';\nimport {KeyEventsPlugin} from './dom/events/key_events';\nimport {DomSharedStylesHost, SharedStylesHost} from './dom/shared_styles_host';\nimport {DomSanitizer, DomSanitizerImpl} from './security/dom_sanitization_service';\n\nexport function initDomAdapter() {\n  BrowserDomAdapter.makeCurrent();\n  BrowserGetTestability.init();\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\nexport const 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, deps: []},\n];\n\nconst BROWSER_SANITIZATION_PROVIDERS__PRE_R3__: StaticProvider[] = [\n  {provide: Sanitizer, useExisting: DomSanitizer},\n  {provide: DomSanitizer, useClass: DomSanitizerImpl, deps: [DOCUMENT]},\n];\n\nexport const BROWSER_SANITIZATION_PROVIDERS__POST_R3__ = [];\n\n/**\n * @security Replacing built-in sanitization providers exposes the application to XSS risks.\n * Attacker-controlled data introduced by an unsanitized provider could expose your\n * application to XSS risks. For more detail, see the [Security Guide](https://g.co/ng/security).\n * @publicApi\n */\nexport const BROWSER_SANITIZATION_PROVIDERS = BROWSER_SANITIZATION_PROVIDERS__PRE_R3__;\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\nexport const BROWSER_MODULE_PROVIDERS: StaticProvider[] = [\n  BROWSER_SANITIZATION_PROVIDERS,\n  {provide: INJECTOR_SCOPE, useValue: 'root'},\n  {provide: ErrorHandler, useFactory: errorHandler, deps: []},\n  {\n    provide: EVENT_MANAGER_PLUGINS,\n    useClass: DomEventsPlugin,\n    multi: true,\n    deps: [DOCUMENT, NgZone, PLATFORM_ID]\n  },\n  {provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true, deps: [DOCUMENT]},\n  HAMMER_PROVIDERS,\n  {\n    provide: DomRendererFactory2,\n    useClass: DomRendererFactory2,\n    deps: [EventManager, DomSharedStylesHost, APP_ID]\n  },\n  {provide: RendererFactory2, useExisting: DomRendererFactory2},\n  {provide: SharedStylesHost, useExisting: DomSharedStylesHost},\n  {provide: DomSharedStylesHost, useClass: DomSharedStylesHost, deps: [DOCUMENT]},\n  {provide: Testability, useClass: Testability, deps: [NgZone]},\n  {provide: EventManager, useClass: EventManager, deps: [EVENT_MANAGER_PLUGINS, NgZone]},\n  {provide: XhrFactory, useClass: BrowserXhr, deps: []},\n  ELEMENT_PROBE_PROVIDERS,\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({providers: BROWSER_MODULE_PROVIDERS, exports: [CommonModule, ApplicationModule]})\nexport class BrowserModule {\n  constructor(@Optional() @SkipSelf() @Inject(BrowserModule) parentModule: BrowserModule|null) {\n    if (parentModule) {\n      throw new Error(\n          `BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.`);\n    }\n  }\n\n  /**\n   * Configures a browser-based app to transition from a server-rendered app, if\n   * one is present on the page.\n   *\n   * @param params An object containing an identifier for the app to transition.\n   * The ID must match between the client and server versions of the app.\n   * @returns The reconfigured `BrowserModule` to import into the app's root `AppModule`.\n   */\n  static withServerTransition(params: {appId: string}): ModuleWithProviders<BrowserModule> {\n    return {\n      ngModule: BrowserModule,\n      providers: [\n        {provide: APP_ID, useValue: params.appId},\n        {provide: TRANSITION_ID, useExisting: APP_ID},\n        SERVER_TRANSITION_PROVIDERS,\n      ],\n    };\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.io/license\n */\n\nimport {DOCUMENT, ɵDomAdapter as DomAdapter, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, ɵɵinject} 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 `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 * Factory to create a `Meta` service instance for the current DOM document.\n */\nexport function createMeta() {\n  return new Meta(ɵɵinject(DOCUMENT));\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', useFactory: createMeta, deps: []})\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(meta: MetaDefinition, 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(\n        (prop: string) => el.setAttribute(this._getMetaKeyMap(prop), tag[prop]));\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  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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, ɵɵinject} from '@angular/core';\n\n\n/**\n * Factory to create Title service.\n */\nexport function createTitle() {\n  return new Title(ɵɵinject(DOCUMENT));\n}\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', useFactory: createTitle, deps: []})\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.io/license\n */\n\nconst win = typeof window !== 'undefined' && window || <any>{};\nexport {win as window};\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.io/license\n */\n\nimport {ApplicationRef, ComponentRef} from '@angular/core';\nimport {window} from './browser';\n\nexport class ChangeDetectionPerfRecord {\n  constructor(public msPerTick: number, public numTicks: number) {}\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   * ```\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    const isProfilerAvailable = window.console.profile != null;\n    if (record && isProfilerAvailable) {\n      window.console.profile(profileName);\n    }\n    const start = performanceNow();\n    let numTicks = 0;\n    while (numTicks < 5 || (performanceNow() - start) < 500) {\n      this.appRef.tick();\n      numTicks++;\n    }\n    const end = performanceNow();\n    if (record && isProfilerAvailable) {\n      window.console.profileEnd(profileName);\n    }\n    const msPerTick = (end - start) / numTicks;\n    window.console.log(`ran ${numTicks} change detection cycles`);\n    window.console.log(`${msPerTick.toFixed(2)} ms per check`);\n\n    return new ChangeDetectionPerfRecord(msPerTick, numTicks);\n  }\n}\n\nfunction performanceNow() {\n  return window.performance && window.performance.now ? window.performance.now() :\n                                                        new Date().getTime();\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.io/license\n */\n\nimport {ComponentRef} from '@angular/core';\nimport {exportNgVar} from '../../dom/util';\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {APP_ID, Injectable, NgModule} from '@angular/core';\n\nexport function escapeHtml(text: string): string {\n  const escapedText: {[k: string]: string} = {\n    '&': '&a;',\n    '\"': '&q;',\n    '\\'': '&s;',\n    '<': '&l;',\n    '>': '&g;',\n  };\n  return text.replace(/[&\"'<>]/g, s => escapedText[s]);\n}\n\nexport function unescapeHtml(text: string): string {\n  const unescapedText: {[k: string]: string} = {\n    '&a;': '&',\n    '&q;': '\"',\n    '&s;': '\\'',\n    '&l;': '<',\n    '&g;': '>',\n  };\n  return text.replace(/&[^;]+;/g, s => unescapedText[s]);\n}\n\n/**\n * A type-safe key to use with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport type StateKey<T> = string&{__not_a_string: never};\n\n/**\n * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport function makeStateKey<T = void>(key: string): StateKey<T> {\n  return key as StateKey<T>;\n}\n\n/**\n * A key value store that is transferred from the application on the server side to the application\n * on the client side.\n *\n * `TransferState` will be available as an injectable token. To use it import\n * `ServerTransferStateModule` on the server and `BrowserTransferStateModule` on the client.\n *\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\n * boolean, number, string, null and non-class objects will be serialized and deserialized in a\n * non-lossy manner.\n *\n * @publicApi\n */\n@Injectable()\nexport class TransferState {\n  private store: {[k: string]: {}|undefined} = {};\n  private onSerializeCallbacks: {[k: string]: () => {} | undefined} = {};\n\n  /** @internal */\n  static init(initState: {}) {\n    const transferState = new TransferState();\n    transferState.store = initState;\n    return transferState;\n  }\n\n  /**\n   * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n   */\n  get<T>(key: StateKey<T>, defaultValue: T): T {\n    return this.store[key] !== undefined ? this.store[key] as T : defaultValue;\n  }\n\n  /**\n   * Set the value corresponding to a key.\n   */\n  set<T>(key: StateKey<T>, value: T): void {\n    this.store[key] = value;\n  }\n\n  /**\n   * Remove a key from the store.\n   */\n  remove<T>(key: StateKey<T>): void {\n    delete this.store[key];\n  }\n\n  /**\n   * Test whether a key exists in the store.\n   */\n  hasKey<T>(key: StateKey<T>) {\n    return this.store.hasOwnProperty(key);\n  }\n\n  /**\n   * Register a callback to provide the value for a key when `toJson` is called.\n   */\n  onSerialize<T>(key: StateKey<T>, callback: () => T): void {\n    this.onSerializeCallbacks[key] = callback;\n  }\n\n  /**\n   * Serialize the current state of the store to JSON.\n   */\n  toJson(): string {\n    // Call the onSerialize callbacks and put those values into the store.\n    for (const key in this.onSerializeCallbacks) {\n      if (this.onSerializeCallbacks.hasOwnProperty(key)) {\n        try {\n          this.store[key] = this.onSerializeCallbacks[key]();\n        } catch (e) {\n          console.warn('Exception in onSerialize callback: ', e);\n        }\n      }\n    }\n    return JSON.stringify(this.store);\n  }\n}\n\nexport function initTransferState(doc: Document, appId: string) {\n  // Locate the script tag with the JSON data transferred from the server.\n  // The id of the script tag is set to the Angular appId + 'state'.\n  const script = doc.getElementById(appId + '-state');\n  let initialState = {};\n  if (script && script.textContent) {\n    try {\n      // Avoid using any here as it triggers lint errors in google3 (any is not allowed).\n      initialState = JSON.parse(unescapeHtml(script.textContent)) as {};\n    } catch (e) {\n      console.warn('Exception while restoring TransferState for app ' + appId, e);\n    }\n  }\n  return TransferState.init(initialState);\n}\n\n/**\n * NgModule to install on the client side while using the `TransferState` to transfer state from\n * server to client.\n *\n * @publicApi\n */\n@NgModule({\n  providers: [{provide: TransferState, useFactory: initTransferState, deps: [DOCUMENT, APP_ID]}],\n})\nexport class BrowserTransferStateModule {\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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {DebugElement, DebugNode, Predicate, Type} from '@angular/core';\n\n\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.matches && n.matches(selector) ||\n        n.msMatchesSelector && n.msMatchesSelector(selector) ||\n        n.webkitMatchesSelector && n.webkitMatchesSelector(selector);\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.io/license\n */\n\nexport {ɵgetDOM} from '@angular/common';\nexport {BROWSER_SANITIZATION_PROVIDERS as ɵBROWSER_SANITIZATION_PROVIDERS, BROWSER_SANITIZATION_PROVIDERS__POST_R3__ as ɵBROWSER_SANITIZATION_PROVIDERS__POST_R3__, initDomAdapter as ɵinitDomAdapter, INTERNAL_BROWSER_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS} from './browser';\nexport {BrowserDomAdapter as ɵBrowserDomAdapter} from './browser/browser_adapter';\nexport {TRANSITION_ID as ɵTRANSITION_ID} from './browser/server-transition';\nexport {BrowserGetTestability as ɵBrowserGetTestability} from './browser/testability';\nexport {escapeHtml as ɵescapeHtml} from './browser/transfer_state';\nexport {ELEMENT_PROBE_PROVIDERS as ɵELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nexport {DomRendererFactory2 as ɵDomRendererFactory2, flattenStyles as ɵflattenStyles, NAMESPACE_URIS as ɵNAMESPACE_URIS, shimContentAttribute as ɵshimContentAttribute, shimHostAttribute as ɵshimHostAttribute} from './dom/dom_renderer';\nexport {DomEventsPlugin as ɵDomEventsPlugin} from './dom/events/dom_events';\nexport {HammerGesturesPlugin as ɵHammerGesturesPlugin} from './dom/events/hammer_gestures';\nexport {KeyEventsPlugin as ɵKeyEventsPlugin} from './dom/events/key_events';\nexport {DomSharedStylesHost as ɵDomSharedStylesHost, SharedStylesHost as ɵSharedStylesHost} from './dom/shared_styles_host';\nexport {DomSanitizerImpl as ɵDomSanitizerImpl} from './security/dom_sanitization_service';\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.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the platform-browser package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('12.2.13');\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.io/license\n */\n\nexport {BrowserModule, platformBrowser} from './browser';\nexport {Meta, MetaDefinition} from './browser/meta';\nexport {Title} from './browser/title';\nexport {disableDebugTools, enableDebugTools} from './browser/tools/tools';\nexport {BrowserTransferStateModule, makeStateKey, StateKey, TransferState} from './browser/transfer_state';\nexport {By} from './dom/debug/by';\nexport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nexport {HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HAMMER_PROVIDERS__POST_R3__ as ɵHAMMER_PROVIDERS__POST_R3__, HammerGestureConfig, HammerLoader, HammerModule} from './dom/events/hammer_gestures';\nexport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl, SafeValue} from './security/dom_sanitization_service';\n\nexport * from './private_export';\nexport {VERSION} from './version';\n// This must be exported so it doesn't get tree-shaken away prematurely\nexport {ELEMENT_PROBE_PROVIDERS__POST_R3__ as ɵELEMENT_PROBE_PROVIDERS__POST_R3__} from './dom/debug/ng_probe';\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.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport * from './src/platform-browser';\n// This file only reexports content of the `src` folder. Keep it that way.\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.io/license\n */\n\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {BROWSER_MODULE_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_c,_document as ɵangular_packages_platform_browser_platform_browser_b,errorHandler as ɵangular_packages_platform_browser_platform_browser_a} from './src/browser';\nexport {GenericBrowserDomAdapter as ɵangular_packages_platform_browser_platform_browser_p} from './src/browser/generic_browser_adapter';\nexport {createMeta as ɵangular_packages_platform_browser_platform_browser_d} from './src/browser/meta';\nexport {SERVER_TRANSITION_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_l,appInitializerFactory as ɵangular_packages_platform_browser_platform_browser_k} from './src/browser/server-transition';\nexport {createTitle as ɵangular_packages_platform_browser_platform_browser_e} from './src/browser/title';\nexport {initTransferState as ɵangular_packages_platform_browser_platform_browser_f} from './src/browser/transfer_state';\nexport {BrowserXhr as ɵangular_packages_platform_browser_platform_browser_o} from './src/browser/xhr';\nexport {ELEMENT_PROBE_PROVIDERS__PRE_R3__ as ɵangular_packages_platform_browser_platform_browser_n,_createNgProbeR2 as ɵangular_packages_platform_browser_platform_browser_m} from './src/dom/debug/ng_probe';\nexport {EventManagerPlugin as ɵangular_packages_platform_browser_platform_browser_g} from './src/dom/events/event_manager';\nexport {HAMMER_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_i,HAMMER_PROVIDERS__PRE_R3__ as ɵangular_packages_platform_browser_platform_browser_h} from './src/dom/events/hammer_gestures';\nexport {domSanitizerImplFactory as ɵangular_packages_platform_browser_platform_browser_j} from './src/security/dom_sanitization_service';"],"names":["DomAdapter","setRootDomAdapter","parseCookieValue","getDOM","global","Console","allowSanitizationBypassOrThrow","unwrapSafeValue","_sanitizeHtml","getSanitizationBypassType","_sanitizeUrl","bypassSanitizationTrustHtml","bypassSanitizationTrustStyle","bypassSanitizationTrustScript","bypassSanitizationTrustUrl","bypassSanitizationTrustResourceUrl","PLATFORM_BROWSER_ID","INJECTOR_SCOPE","window"],"mappings":"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"}
+{"version":3,"file":"platform-browser.js","sources":["../../../../../../packages/platform-browser/src/browser/generic_browser_adapter.ts","../../../../../../packages/platform-browser/src/browser/browser_adapter.ts","../../../../../../packages/platform-browser/src/browser/server-transition.ts","../../../../../../packages/platform-browser/src/browser/testability.ts","../../../../../../packages/platform-browser/src/browser/xhr.ts","../../../../../../packages/platform-browser/src/dom/util.ts","../../../../../../packages/platform-browser/src/dom/debug/ng_probe.ts","../../../../../../packages/platform-browser/src/dom/events/event_manager.ts","../../../../../../packages/platform-browser/src/dom/shared_styles_host.ts","../../../../../../packages/platform-browser/src/dom/dom_renderer.ts","../../../../../../packages/platform-browser/src/dom/events/dom_events.ts","../../../../../../packages/platform-browser/src/dom/events/hammer_gestures.ts","../../../../../../packages/platform-browser/src/dom/events/key_events.ts","../../../../../../packages/platform-browser/src/security/dom_sanitization_service.ts","../../../../../../packages/platform-browser/src/browser.ts","../../../../../../packages/platform-browser/src/browser/meta.ts","../../../../../../packages/platform-browser/src/browser/title.ts","../../../../../../packages/platform-browser/src/browser/tools/browser.ts","../../../../../../packages/platform-browser/src/browser/tools/common_tools.ts","../../../../../../packages/platform-browser/src/browser/tools/tools.ts","../../../../../../packages/platform-browser/src/browser/transfer_state.ts","../../../../../../packages/platform-browser/src/dom/debug/by.ts","../../../../../../packages/platform-browser/src/private_export.ts","../../../../../../packages/platform-browser/src/version.ts","../../../../../../packages/platform-browser/src/platform-browser.ts","../../../../../../packages/platform-browser/public_api.ts","../../../../../../packages/platform-browser/index.ts","../../../../../../packages/platform-browser/platform-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.io/license\n */\n\nimport {ɵDomAdapter as DomAdapter} from '@angular/common';\n\n\n\n/**\n * Provides DOM operations in any browser environment.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class GenericBrowserDomAdapter extends DomAdapter {\n  readonly supportsDOMEvents: boolean = true;\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.io/license\n */\n\nimport {ɵparseCookieValue as parseCookieValue, ɵsetRootDomAdapter as setRootDomAdapter} from '@angular/common';\n\nimport {GenericBrowserDomAdapter} from './generic_browser_adapter';\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 */\n/* tslint:disable:requireParameterType no-console */\nexport class BrowserDomAdapter extends GenericBrowserDomAdapter {\n  static makeCurrent() {\n    setRootDomAdapter(new BrowserDomAdapter());\n  }\n\n  onAndCancel(el: Node, evt: any, listener: any): Function {\n    el.addEventListener(evt, listener, false);\n    // Needed to follow Dart's subscription semantic, until fix of\n    // https://code.google.com/p/dart/issues/detail?id=17406\n    return () => {\n      el.removeEventListener(evt, listener, false);\n    };\n  }\n  dispatchEvent(el: Node, evt: any) {\n    el.dispatchEvent(evt);\n  }\n  remove(node: Node): void {\n    if (node.parentNode) {\n      node.parentNode.removeChild(node);\n    }\n  }\n  createElement(tagName: string, doc?: Document): HTMLElement {\n    doc = doc || this.getDefaultDocument();\n    return doc.createElement(tagName);\n  }\n  createHtmlDocument(): HTMLDocument {\n    return document.implementation.createHTMLDocument('fakeTitle');\n  }\n  getDefaultDocument(): Document {\n    return document;\n  }\n\n  isElementNode(node: Node): boolean {\n    return node.nodeType === Node.ELEMENT_NODE;\n  }\n\n  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  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  getBaseHref(doc: Document): string|null {\n    const href = getBaseElementHref();\n    return href == null ? null : relativePath(href);\n  }\n  resetBaseElement(): void {\n    baseElement = null;\n  }\n  getUserAgent(): string {\n    return window.navigator.userAgent;\n  }\n  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.querySelector('base');\n  return baseElement ? baseElement.getAttribute('href') : null;\n}\n\n// based on urlUtils.js in AngularJS 1\nlet urlParsingNode: HTMLAnchorElement|undefined;\nfunction relativePath(url: any): string {\n  urlParsingNode = urlParsingNode || document.createElement('a');\n  urlParsingNode.setAttribute('href', url);\n  const pathName = urlParsingNode.pathname;\n  return pathName.charAt(0) === '/' ? pathName : `/${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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {APP_INITIALIZER, ApplicationInitStatus, InjectionToken, Injector, StaticProvider} from '@angular/core';\n\n/**\n * An id that identifies a particular application being bootstrapped, that should\n * match across the client/server boundary.\n */\nexport const TRANSITION_ID = new InjectionToken('TRANSITION_ID');\n\nexport function appInitializerFactory(transitionId: string, document: any, injector: Injector) {\n  return () => {\n    // Wait for all application initializers to be completed before removing the styles set by\n    // the server.\n    injector.get(ApplicationInitStatus).donePromise.then(() => {\n      const dom = getDOM();\n      const styles: HTMLCollectionOf<HTMLStyleElement> =\n          document.querySelectorAll(`style[ng-transition=\"${transitionId}\"]`);\n      for (let i = 0; i < styles.length; i++) {\n        dom.remove(styles[i]);\n      }\n    });\n  };\n}\n\nexport const SERVER_TRANSITION_PROVIDERS: StaticProvider[] = [\n  {\n    provide: APP_INITIALIZER,\n    useFactory: appInitializerFactory,\n    deps: [TRANSITION_ID, DOCUMENT, Injector],\n    multi: 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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {GetTestability, setTestabilityGetter, Testability, TestabilityRegistry, ɵglobal as global} from '@angular/core';\n\nexport class BrowserGetTestability implements GetTestability {\n  static init() {\n    setTestabilityGetter(new BrowserGetTestability());\n  }\n\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 Error('Could not find testability for element.');\n      }\n      return testability;\n    };\n\n    global['getAllAngularTestabilities'] = () => registry.getAllTestabilities();\n\n    global['getAllAngularRootElements'] = () => registry.getAllRootElements();\n\n    const whenAllStable = (callback: any /** TODO #9100 */) => {\n      const testabilities = global['getAllAngularTestabilities']();\n      let count = testabilities.length;\n      let didWork = false;\n      const decrement = function(didWork_: any /** TODO #9100 */) {\n        didWork = didWork || didWork_;\n        count--;\n        if (count == 0) {\n          callback(didWork);\n        }\n      };\n      testabilities.forEach(function(testability: any /** TODO #9100 */) {\n        testability.whenStable(decrement);\n      });\n    };\n\n    if (!global['frameworkStabilizers']) {\n      global['frameworkStabilizers'] = [];\n    }\n    global['frameworkStabilizers'].push(whenAllStable);\n  }\n\n  findTestabilityInTree(registry: TestabilityRegistry, elem: any, 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.io/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.io/license\n */\n\nimport {ɵglobal as global} from '@angular/core';\n\nconst CAMEL_CASE_REGEXP = /([A-Z])/g;\nconst DASH_CASE_REGEXP = /-([a-z])/g;\n\n\nexport function camelCaseToDashCase(input: string): string {\n  return input.replace(CAMEL_CASE_REGEXP, (...m: string[]) => '-' + m[1].toLowerCase());\n}\n\nexport function dashCaseToCamelCase(input: string): string {\n  return input.replace(DASH_CASE_REGEXP, (...m: string[]) => m[1].toUpperCase());\n}\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.io/license\n */\n\nimport {APP_INITIALIZER, ApplicationRef, DebugNode, NgProbeToken, NgZone, Optional, Provider, ɵgetDebugNodeR2} from '@angular/core';\n\nimport {exportNgVar} from '../util';\n\nconst CORE_TOKENS = (() => ({\n                       'ApplicationRef': ApplicationRef,\n                       'NgZone': NgZone,\n                     }))();\n\nconst INSPECT_GLOBAL_NAME = 'probe';\nconst CORE_TOKENS_GLOBAL_NAME = 'coreTokens';\n\n/**\n * Returns a {@link DebugElement} for the given native DOM element, or\n * null if the given native element does not have an Angular view associated\n * with it.\n */\nexport function inspectNativeElementR2(element: any): DebugNode|null {\n  return ɵgetDebugNodeR2(element);\n}\n\nexport function _createNgProbeR2(coreTokens: NgProbeToken[]): any {\n  exportNgVar(INSPECT_GLOBAL_NAME, inspectNativeElementR2);\n  exportNgVar(CORE_TOKENS_GLOBAL_NAME, {...CORE_TOKENS, ..._ngProbeTokensToMap(coreTokens || [])});\n  return () => inspectNativeElementR2;\n}\n\nfunction _ngProbeTokensToMap(tokens: NgProbeToken[]): {[name: string]: any} {\n  return tokens.reduce((prev: any, t: any) => (prev[t.name] = t.token, prev), {});\n}\n\n/**\n * In Ivy, we don't support NgProbe because we have our own set of testing utilities\n * with more robust functionality.\n *\n * We shouldn't bring in NgProbe because it prevents DebugNode and friends from\n * tree-shaking properly.\n */\nexport const ELEMENT_PROBE_PROVIDERS__POST_R3__ = [];\n\n/**\n * Providers which support debugging Angular applications (e.g. via `ng.probe`).\n */\nexport const ELEMENT_PROBE_PROVIDERS__PRE_R3__: Provider[] = [\n  {\n    provide: APP_INITIALIZER,\n    useFactory: _createNgProbeR2,\n    deps: [\n      [NgProbeToken, new Optional()],\n    ],\n    multi: true,\n  },\n];\n\nexport const ELEMENT_PROBE_PROVIDERS = ELEMENT_PROBE_PROVIDERS__PRE_R3__;\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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, InjectionToken, NgZone} from '@angular/core';\n\n/**\n * The injection token for the event-manager plug-in service.\n *\n * @publicApi\n */\nexport const EVENT_MANAGER_PLUGINS =\n    new InjectionToken<EventManagerPlugin[]>('EventManagerPlugins');\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(@Inject(EVENT_MANAGER_PLUGINS) plugins: EventManagerPlugin[], private _zone: NgZone) {\n    plugins.forEach(p => p.manager = this);\n    this._plugins = plugins.slice().reverse();\n  }\n\n  /**\n   * Registers a handler for a specific element and event.\n   *\n   * @param element The HTML element to receive event notifications.\n   * @param eventName The name of the event to listen for.\n   * @param handler A function to call when the notification occurs. Receives the\n   * event object as an argument.\n   * @returns  A callback function that can be used to remove the handler.\n   */\n  addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n    const plugin = this._findPluginFor(eventName);\n    return plugin.addEventListener(element, eventName, handler);\n  }\n\n  /**\n   * Registers a global handler for an event in a target view.\n   *\n   * @param target A target for global event notifications. One of \"window\", \"document\", or \"body\".\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   * @returns A callback function that can be used to remove the handler.\n   * @deprecated No longer being used in Ivy code. To be removed in version 14.\n   */\n  addGlobalEventListener(target: string, eventName: string, handler: Function): Function {\n    const plugin = this._findPluginFor(eventName);\n    return plugin.addGlobalEventListener(target, eventName, handler);\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    const plugin = this._eventNameToPlugin.get(eventName);\n    if (plugin) {\n      return plugin;\n    }\n\n    const plugins = this._plugins;\n    for (let i = 0; i < plugins.length; i++) {\n      const plugin = plugins[i];\n      if (plugin.supports(eventName)) {\n        this._eventNameToPlugin.set(eventName, plugin);\n        return plugin;\n      }\n    }\n    throw new Error(`No event manager plugin found for event ${eventName}`);\n  }\n}\n\nexport abstract class EventManagerPlugin {\n  constructor(private _doc: any) {}\n\n  // TODO(issue/24571): remove '!'.\n  manager!: EventManager;\n\n  abstract supports(eventName: string): boolean;\n\n  abstract addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\n\n  addGlobalEventListener(element: string, eventName: string, handler: Function): Function {\n    const target: HTMLElement = getDOM().getGlobalEventTarget(this._doc, element);\n    if (!target) {\n      throw new Error(`Unsupported event target ${target} for event ${eventName}`);\n    }\n    return this.addEventListener(target, eventName, handler);\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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, OnDestroy} from '@angular/core';\n\n@Injectable()\nexport class SharedStylesHost {\n  /** @internal */\n  protected _stylesSet = new Set<string>();\n\n  addStyles(styles: string[]): void {\n    const additions = new Set<string>();\n    styles.forEach(style => {\n      if (!this._stylesSet.has(style)) {\n        this._stylesSet.add(style);\n        additions.add(style);\n      }\n    });\n    this.onStylesAdded(additions);\n  }\n\n  onStylesAdded(additions: Set<string>): void {}\n\n  getAllStyles(): string[] {\n    return Array.from(this._stylesSet);\n  }\n}\n\n@Injectable()\nexport class DomSharedStylesHost extends SharedStylesHost implements OnDestroy {\n  // Maps all registered host nodes to a list of style nodes that have been added to the host node.\n  private _hostNodes = new Map<Node, Node[]>();\n\n  constructor(@Inject(DOCUMENT) private _doc: any) {\n    super();\n    this._hostNodes.set(_doc.head, []);\n  }\n\n  private _addStylesToHost(styles: Set<string>, host: Node, styleNodes: Node[]): void {\n    styles.forEach((style: string) => {\n      const styleEl = this._doc.createElement('style');\n      styleEl.textContent = style;\n      styleNodes.push(host.appendChild(styleEl));\n    });\n  }\n\n  addHost(hostNode: Node): void {\n    const styleNodes: Node[] = [];\n    this._addStylesToHost(this._stylesSet, hostNode, styleNodes);\n    this._hostNodes.set(hostNode, styleNodes);\n  }\n\n  removeHost(hostNode: Node): void {\n    const styleNodes = this._hostNodes.get(hostNode);\n    if (styleNodes) {\n      styleNodes.forEach(removeStyle);\n    }\n    this._hostNodes.delete(hostNode);\n  }\n\n  override onStylesAdded(additions: Set<string>): void {\n    this._hostNodes.forEach((styleNodes, hostNode) => {\n      this._addStylesToHost(additions, hostNode, styleNodes);\n    });\n  }\n\n  ngOnDestroy(): void {\n    this._hostNodes.forEach(styleNodes => styleNodes.forEach(removeStyle));\n  }\n}\n\nfunction removeStyle(styleNode: Node): void {\n  getDOM().remove(styleNode);\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.io/license\n */\n\nimport {APP_ID, Inject, Injectable, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2, ViewEncapsulation} from '@angular/core';\n\nimport {EventManager} from './events/event_manager';\nimport {DomSharedStylesHost} 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};\n\nconst COMPONENT_REGEX = /%COMP%/g;\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\n\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\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 flattenStyles(\n    compId: string, styles: Array<any|any[]>, target: string[]): string[] {\n  for (let i = 0; i < styles.length; i++) {\n    let style = styles[i];\n\n    if (Array.isArray(style)) {\n      flattenStyles(compId, style, target);\n    } else {\n      style = style.replace(COMPONENT_REGEX, compId);\n      target.push(style);\n    }\n  }\n  return target;\n}\n\nfunction 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 the\n  // two differently. In the first case, the special '__ngUnwrap__' token is passed to the unwrap\n  // 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 debug_node\n    // can inspect the listener toString contents for the existence of this special token. Because\n    // the token is a string literal, it is ensured to not be modified by compiled code.\n    if (event === '__ngUnwrap__') {\n      return eventHandler;\n    }\n\n    const allowDefaultBehavior = eventHandler(event);\n    if (allowDefaultBehavior === false) {\n      // TODO(tbosch): move preventDefault into event plugins...\n      event.preventDefault();\n      event.returnValue = false;\n    }\n\n    return undefined;\n  };\n}\n\nlet hasLoggedNativeEncapsulationWarning = false;\n\n@Injectable()\nexport class DomRendererFactory2 implements RendererFactory2 {\n  private rendererByCompId = new Map<string, Renderer2>();\n  private defaultRenderer: Renderer2;\n\n  constructor(\n      private eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n      @Inject(APP_ID) private appId: string) {\n    this.defaultRenderer = new DefaultDomRenderer2(eventManager);\n  }\n\n  createRenderer(element: any, type: RendererType2|null): Renderer2 {\n    if (!element || !type) {\n      return this.defaultRenderer;\n    }\n    switch (type.encapsulation) {\n      case ViewEncapsulation.Emulated: {\n        let renderer = this.rendererByCompId.get(type.id);\n        if (!renderer) {\n          renderer = new EmulatedEncapsulationDomRenderer2(\n              this.eventManager, this.sharedStylesHost, type, this.appId);\n          this.rendererByCompId.set(type.id, renderer);\n        }\n        (<EmulatedEncapsulationDomRenderer2>renderer).applyToHost(element);\n        return renderer;\n      }\n      // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an enum\n      // value that is not known (but previously was the value for ViewEncapsulation.Native)\n      case 1:\n      case ViewEncapsulation.ShadowDom:\n        // TODO(FW-2290): remove the `case 1:` fallback logic and the warning in v12.\n        if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n            // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an\n            // enum value that is not known (but previously was the value for\n            // ViewEncapsulation.Native)\n            !hasLoggedNativeEncapsulationWarning && type.encapsulation === 1) {\n          hasLoggedNativeEncapsulationWarning = true;\n          console.warn(\n              'ViewEncapsulation.Native is no longer supported. Falling back to ViewEncapsulation.ShadowDom. The fallback will be removed in v12.');\n        }\n\n        return new ShadowDomRenderer(this.eventManager, this.sharedStylesHost, element, type);\n      default: {\n        if (!this.rendererByCompId.has(type.id)) {\n          const styles = flattenStyles(type.id, type.styles, []);\n          this.sharedStylesHost.addStyles(styles);\n          this.rendererByCompId.set(type.id, this.defaultRenderer);\n        }\n        return this.defaultRenderer;\n      }\n    }\n  }\n\n  begin() {}\n  end() {}\n}\n\nclass DefaultDomRenderer2 implements Renderer2 {\n  data: {[key: string]: any} = Object.create(null);\n\n  constructor(private eventManager: EventManager) {}\n\n  destroy(): void {}\n\n  destroyNode: null;\n\n  createElement(name: string, namespace?: string): any {\n    if (namespace) {\n      // In cases where Ivy (not ViewEngine) is giving us the actual namespace, the look up by key\n      // will result in undefined, so we just return the namespace here.\n      return document.createElementNS(NAMESPACE_URIS[namespace] || namespace, name);\n    }\n\n    return document.createElement(name);\n  }\n\n  createComment(value: string): any {\n    return document.createComment(value);\n  }\n\n  createText(value: string): any {\n    return document.createTextNode(value);\n  }\n\n  appendChild(parent: any, newChild: any): void {\n    parent.appendChild(newChild);\n  }\n\n  insertBefore(parent: any, newChild: any, refChild: any): void {\n    if (parent) {\n      parent.insertBefore(newChild, refChild);\n    }\n  }\n\n  removeChild(parent: any, oldChild: any): void {\n    if (parent) {\n      parent.removeChild(oldChild);\n    }\n  }\n\n  selectRootElement(selectorOrNode: string|any, preserveContent?: boolean): any {\n    let el: any = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) :\n                                                       selectorOrNode;\n    if (!el) {\n      throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\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      // TODO(FW-811): Ivy may cause issues here because it's passing around\n      // full URIs for namespaces, therefore this lookup will fail.\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      // TODO(FW-811): Ivy may cause issues here because it's passing around\n      // full URIs for namespaces, therefore this lookup will fail.\n      const namespaceUri = NAMESPACE_URIS[namespace];\n      if (namespaceUri) {\n        el.removeAttributeNS(namespaceUri, name);\n      } else {\n        // TODO(FW-811): Since ivy is passing around full URIs for namespaces\n        // this could result in properties like `http://www.w3.org/2000/svg:cx=\"123\"`,\n        // which is wrong.\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      el.style.removeProperty(style);\n    } else {\n      // IE requires '' instead of null\n      // see https://github.com/angular/angular/issues/7916\n      el.style[style] = '';\n    }\n  }\n\n  setProperty(el: any, name: string, value: any): void {\n    NG_DEV_MODE && checkNoSyntheticProp(name, 'property');\n    el[name] = value;\n  }\n\n  setValue(node: any, value: string): void {\n    node.nodeValue = value;\n  }\n\n  listen(target: 'window'|'document'|'body'|any, event: string, callback: (event: any) => boolean):\n      () => void {\n    NG_DEV_MODE && checkNoSyntheticProp(event, 'listener');\n    if (typeof target === 'string') {\n      return <() => void>this.eventManager.addGlobalEventListener(\n          target, event, decoratePreventDefault(callback));\n    }\n    return <() => void>this.eventManager.addEventListener(\n               target, event, decoratePreventDefault(callback)) as () => void;\n  }\n}\n\nconst AT_CHARCODE = (() => '@'.charCodeAt(0))();\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n  if (name.charCodeAt(0) === AT_CHARCODE) {\n    throw new Error(`Unexpected synthetic ${nameKind} ${name} found. Please make sure that:\n  - Either \\`BrowserAnimationsModule\\` or \\`NoopAnimationsModule\\` are imported in your application.\n  - There is corresponding configuration for the animation named \\`${\n        name}\\` defined in the \\`animations\\` field of the \\`@Component\\` decorator (see https://angular.io/api/core/Component#animations).`);\n  }\n}\n\nclass EmulatedEncapsulationDomRenderer2 extends DefaultDomRenderer2 {\n  private contentAttr: string;\n  private hostAttr: string;\n\n  constructor(\n      eventManager: EventManager, sharedStylesHost: DomSharedStylesHost,\n      private component: RendererType2, appId: string) {\n    super(eventManager);\n    const styles = flattenStyles(appId + '-' + component.id, component.styles, []);\n    sharedStylesHost.addStyles(styles);\n\n    this.contentAttr = shimContentAttribute(appId + '-' + component.id);\n    this.hostAttr = shimHostAttribute(appId + '-' + component.id);\n  }\n\n  applyToHost(element: any) {\n    super.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\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n  private shadowRoot: any;\n\n  constructor(\n      eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n      private hostEl: any, component: RendererType2) {\n    super(eventManager);\n    this.shadowRoot = (hostEl as any).attachShadow({mode: 'open'});\n    this.sharedStylesHost.addHost(this.shadowRoot);\n    const styles = flattenStyles(component.id, component.styles, []);\n    for (let i = 0; i < styles.length; i++) {\n      const styleEl = document.createElement('style');\n      styleEl.textContent = styles[i];\n      this.shadowRoot.appendChild(styleEl);\n    }\n  }\n\n  private nodeOrShadowRoot(node: any): any {\n    return node === this.hostEl ? this.shadowRoot : node;\n  }\n\n  override destroy() {\n    this.sharedStylesHost.removeHost(this.shadowRoot);\n  }\n\n  override appendChild(parent: any, newChild: any): void {\n    return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n  }\n  override insertBefore(parent: any, newChild: any, refChild: any): void {\n    return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n  }\n  override removeChild(parent: any, oldChild: any): void {\n    return super.removeChild(this.nodeOrShadowRoot(parent), oldChild);\n  }\n  override parentNode(node: any): any {\n    return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\nimport {EventManagerPlugin} from './event_manager';\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(element: HTMLElement, eventName: string, handler: Function): Function {\n    element.addEventListener(eventName, handler as EventListener, false);\n    return () => this.removeEventListener(element, eventName, handler as EventListener);\n  }\n\n  removeEventListener(target: any, eventName: string, callback: Function): void {\n    return target.removeEventListener(eventName, callback as EventListener);\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, InjectionToken, NgModule, Optional, Provider, ɵConsole as Console} from '@angular/core';\n\nimport {EVENT_MANAGER_PLUGINS, EventManagerPlugin} from './event_manager';\n\n\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 `HammerGestureConfig`\n *\n * @ngModule HammerModule\n * @publicApi\n */\nexport const HAMMER_GESTURE_CONFIG = new InjectionToken<HammerGestureConfig>('HammerGestureConfig');\n\n\n/**\n * Function that loads HammerJS, returning a promise that is resolved once HammerJs is loaded.\n *\n * @publicApi\n */\nexport type HammerLoader = () => Promise<void>;\n\n/**\n * Injection token used to provide a {@link HammerLoader} to Angular.\n *\n * @publicApi\n */\nexport const HAMMER_LOADER = new InjectionToken<HammerLoader>('HammerLoader');\n\nexport interface HammerInstance {\n  on(eventName: string, callback?: Function): void;\n  off(eventName: string, callback?: Function): void;\n  destroy?(): void;\n}\n\n/**\n * An injectable [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n * for gesture recognition. Configures specific event recognition.\n * @publicApi\n */\n@Injectable()\nexport class HammerGestureConfig {\n  /**\n   * A set of supported event names for gestures to be used in Angular.\n   * Angular supports all built-in recognizers, as listed in\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   */\n  events: string[] = [];\n\n  /**\n   * Maps gesture event names to a set of configuration options\n   * that specify overrides to the default values for specific properties.\n   *\n   * The key is a supported event name to be configured,\n   * and the options object contains a set of properties, with override values\n   * to be applied to the named recognizer event.\n   * For example, to disable recognition of the rotate event, specify\n   *  `{\"rotate\": {\"enable\": false}}`.\n   *\n   * Properties that are not present take the HammerJS default values.\n   * For information about which properties are supported for which events,\n   * and their allowed and default values, see\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   *\n   */\n  overrides: {[key: string]: Object} = {};\n\n  /**\n   * Properties whose default values can be overridden for a given event.\n   * Different sets of properties apply to different events.\n   * For information about which properties are supported for which events,\n   * and their allowed and default values, see\n   * [HammerJS documentation](https://hammerjs.github.io/).\n   */\n  options?: {\n    cssProps?: any;\n    domEvents?: boolean;\n    enable?: boolean | ((manager: any) => boolean);\n    preset?: any[];\n    touchAction?: string;\n    recognizers?: any[];\n    inputClass?: any;\n    inputTarget?: EventTarget;\n  };\n\n  /**\n   * Creates a [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n   * and attaches it to a given HTML element.\n   * @param element The element that will recognize gestures.\n   * @returns A HammerJS event-manager object.\n   */\n  buildHammer(element: HTMLElement): HammerInstance {\n    const mc = new Hammer!(element, this.options);\n\n    mc.get('pinch').set({enable: true});\n    mc.get('rotate').set({enable: true});\n\n    for (const eventName in this.overrides) {\n      mc.get(eventName).set(this.overrides[eventName]);\n    }\n\n    return mc;\n  }\n}\n\n/**\n * Event plugin that adds Hammer support to an application.\n *\n * @ngModule HammerModule\n */\n@Injectable()\nexport class HammerGesturesPlugin extends EventManagerPlugin {\n  private _loaderPromise: Promise<void>|null = null;\n\n  constructor(\n      @Inject(DOCUMENT) doc: any,\n      @Inject(HAMMER_GESTURE_CONFIG) private _config: HammerGestureConfig, private console: Console,\n      @Optional() @Inject(HAMMER_LOADER) private loader?: HammerLoader|null) {\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        this.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      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 || 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      this._loaderPromise\n          .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                this.console.warn(\n                    `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 removal.\n              deregister = this.addEventListener(element, eventName, handler);\n            }\n          })\n          .catch(() => {\n            if (typeof ngDevMode === 'undefined' || ngDevMode) {\n              this.console.warn(\n                  `The \"${eventName}\" event cannot be bound because the custom ` +\n                  `Hammer.JS loader failed.`);\n            }\n            deregister = () => {};\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 * In Ivy, support for Hammer gestures is optional, so applications must\n * import the `HammerModule` at root to turn on support. This means that\n * Hammer-specific code can be tree-shaken away if not needed.\n */\nexport const HAMMER_PROVIDERS__POST_R3__ = [];\n\n/**\n * In View Engine, support for Hammer gestures is built-in by default.\n */\nexport const HAMMER_PROVIDERS__PRE_R3__: Provider[] = [\n  {\n    provide: EVENT_MANAGER_PLUGINS,\n    useClass: HammerGesturesPlugin,\n    multi: true,\n    deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, Console, [new Optional(), HAMMER_LOADER]]\n  },\n  {provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: []},\n];\n\nexport const HAMMER_PROVIDERS = HAMMER_PROVIDERS__PRE_R3__;\n\n/**\n * Adds support for HammerJS.\n *\n * Import this module at the root of your application so that Angular can work with\n * HammerJS to detect gesture events.\n *\n * Note that applications still need to include the HammerJS script itself. This module\n * simply sets up the coordination layer between HammerJS and Angular's EventManager.\n *\n * @publicApi\n */\n@NgModule({providers: HAMMER_PROVIDERS__PRE_R3__})\nexport class HammerModule {\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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Defines supported modifiers for key events.\n */\nconst MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\n\nconst DOM_KEY_LOCATION_NUMPAD = 3;\n\n// Map to convert some key or keyIdentifier values to what will be returned by getEventKey\nconst _keyMap: {[k: string]: string} = {\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/\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// There is a bug in Chrome for numeric keypad keys:\n// https://code.google.com/p/chromium/issues/detail?id=155654\n// 1, 2, 3 ... are reported as A, B, C ...\nconst _chromeNumKeyPadMap = {\n  'A': '1',\n  'B': '2',\n  'C': '3',\n  'D': '4',\n  'E': '5',\n  'F': '6',\n  'G': '7',\n  'H': '8',\n  'I': '9',\n  'J': '*',\n  'K': '+',\n  'M': '-',\n  'N': '.',\n  'O': '/',\n  '\\x60': '0',\n  '\\x90': 'NumLock'\n};\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 * @publicApi\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(element: HTMLElement, eventName: string, handler: Function): Function {\n    const parsedEvent = KeyEventsPlugin.parseEventName(eventName)!;\n\n    const outsideHandler =\n        KeyEventsPlugin.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());\n\n    return this.manager.getZone().runOutsideAngular(() => {\n      return getDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);\n    });\n  }\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    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  static getEventFullKey(event: KeyboardEvent): string {\n    let fullKey = '';\n    let key = getEventKey(event);\n    key = key.toLowerCase();\n    if (key === ' ') {\n      key = 'space';  // for readability\n    } else if (key === '.') {\n      key = 'dot';  // because '.' is used as a separator in event names\n    }\n    MODIFIER_KEYS.forEach(modifierName => {\n      if (modifierName != key) {\n        const modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n        if (modifierGetter(event)) {\n          fullKey += modifierName + '.';\n        }\n      }\n    });\n    fullKey += key;\n    return fullKey;\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: any, handler: Function, zone: NgZone): Function {\n    return (event: any /** TODO #9100 */) => {\n      if (KeyEventsPlugin.getEventFullKey(event) === fullKey) {\n        zone.runGuarded(() => handler(event));\n      }\n    };\n  }\n\n  /** @internal */\n  static _normalizeKey(keyName: string): string {\n    // TODO: switch to a Map if the mapping grows too much\n    switch (keyName) {\n      case 'esc':\n        return 'escape';\n      default:\n        return keyName;\n    }\n  }\n}\n\nfunction getEventKey(event: any): string {\n  let key = event.key;\n  if (key == null) {\n    key = event.keyIdentifier;\n    // keyIdentifier is defined in the old draft of DOM Level 3 Events implemented by Chrome and\n    // Safari cf\n    // https://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/events.html#Events-KeyboardEvents-Interfaces\n    if (key == null) {\n      return 'Unidentified';\n    }\n    if (key.startsWith('U+')) {\n      key = String.fromCharCode(parseInt(key.substring(2), 16));\n      if (event.location === DOM_KEY_LOCATION_NUMPAD && _chromeNumKeyPadMap.hasOwnProperty(key)) {\n        // There is a bug in Chrome for numeric keypad keys:\n        // https://code.google.com/p/chromium/issues/detail?id=155654\n        // 1, 2, 3 ... are reported as A, B, C ...\n        key = (_chromeNumKeyPadMap as any)[key];\n      }\n    }\n  }\n\n  return _keyMap[key] || key;\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {forwardRef, Inject, Injectable, Injector, Sanitizer, SecurityContext, ɵ_sanitizeHtml as _sanitizeHtml, ɵ_sanitizeUrl as _sanitizeUrl, ɵallowSanitizationBypassAndThrow as allowSanitizationBypassOrThrow, ɵbypassSanitizationTrustHtml as bypassSanitizationTrustHtml, ɵbypassSanitizationTrustResourceUrl as bypassSanitizationTrustResourceUrl, ɵbypassSanitizationTrustScript as bypassSanitizationTrustScript, ɵbypassSanitizationTrustStyle as bypassSanitizationTrustStyle, ɵbypassSanitizationTrustUrl as bypassSanitizationTrustUrl, ɵBypassType as BypassType, ɵgetSanitizationBypassType as getSanitizationBypassType, ɵunwrapSafeValue as unwrapSafeValue} from '@angular/core';\n\nexport {SecurityContext};\n\n\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   * Sanitizes a value for use in the given SecurityContext.\n   *\n   * If value is trusted for the context, this method will unwrap the contained safe value and use\n   * it directly. Otherwise, value will be sanitized to be safe in the given context, for example\n   * by replacing URLs that have an unsafe protocol part (such as `javascript:`). The implementation\n   * is responsible to make sure that the value can definitely be safely used in the given context.\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\nexport function domSanitizerImplFactory(injector: Injector) {\n  return new DomSanitizerImpl(injector.get(DOCUMENT));\n}\n\n@Injectable({providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [Injector]})\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 Error('unsafe value used in a script context');\n      case SecurityContext.URL:\n        const type = getSanitizationBypassType(value);\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 Error(\n            'unsafe value used in a resource URL context (see https://g.co/ng/security#xss)');\n      default:\n        throw new Error(`Unexpected SecurityContext ${ctx} (see https://g.co/ng/security#xss)`);\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.io/license\n */\n\nimport {CommonModule, DOCUMENT, XhrFactory, ɵPLATFORM_BROWSER_ID as PLATFORM_BROWSER_ID} from '@angular/common';\nimport {APP_ID, ApplicationModule, createPlatformFactory, ErrorHandler, Inject, ModuleWithProviders, NgModule, NgZone, Optional, PLATFORM_ID, PLATFORM_INITIALIZER, platformCore, PlatformRef, RendererFactory2, Sanitizer, SkipSelf, StaticProvider, Testability, ɵINJECTOR_SCOPE as INJECTOR_SCOPE, ɵsetDocument} from '@angular/core';\n\nimport {BrowserDomAdapter} from './browser/browser_adapter';\nimport {SERVER_TRANSITION_PROVIDERS, TRANSITION_ID} from './browser/server-transition';\nimport {BrowserGetTestability} from './browser/testability';\nimport {BrowserXhr} from './browser/xhr';\nimport {ELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nimport {DomRendererFactory2} from './dom/dom_renderer';\nimport {DomEventsPlugin} from './dom/events/dom_events';\nimport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nimport {HAMMER_PROVIDERS} from './dom/events/hammer_gestures';\nimport {KeyEventsPlugin} from './dom/events/key_events';\nimport {DomSharedStylesHost, SharedStylesHost} from './dom/shared_styles_host';\nimport {DomSanitizer, DomSanitizerImpl} from './security/dom_sanitization_service';\n\nexport function initDomAdapter() {\n  BrowserDomAdapter.makeCurrent();\n  BrowserGetTestability.init();\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\nexport const 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, deps: []},\n];\n\nconst BROWSER_SANITIZATION_PROVIDERS__PRE_R3__: StaticProvider[] = [\n  {provide: Sanitizer, useExisting: DomSanitizer},\n  {provide: DomSanitizer, useClass: DomSanitizerImpl, deps: [DOCUMENT]},\n];\n\nexport const BROWSER_SANITIZATION_PROVIDERS__POST_R3__ = [];\n\n/**\n * @security Replacing built-in sanitization providers exposes the application to XSS risks.\n * Attacker-controlled data introduced by an unsanitized provider could expose your\n * application to XSS risks. For more detail, see the [Security Guide](https://g.co/ng/security).\n * @publicApi\n */\nexport const BROWSER_SANITIZATION_PROVIDERS = BROWSER_SANITIZATION_PROVIDERS__PRE_R3__;\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\nexport const BROWSER_MODULE_PROVIDERS: StaticProvider[] = [\n  BROWSER_SANITIZATION_PROVIDERS,\n  {provide: INJECTOR_SCOPE, useValue: 'root'},\n  {provide: ErrorHandler, useFactory: errorHandler, deps: []},\n  {\n    provide: EVENT_MANAGER_PLUGINS,\n    useClass: DomEventsPlugin,\n    multi: true,\n    deps: [DOCUMENT, NgZone, PLATFORM_ID]\n  },\n  {provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true, deps: [DOCUMENT]},\n  HAMMER_PROVIDERS,\n  {\n    provide: DomRendererFactory2,\n    useClass: DomRendererFactory2,\n    deps: [EventManager, DomSharedStylesHost, APP_ID]\n  },\n  {provide: RendererFactory2, useExisting: DomRendererFactory2},\n  {provide: SharedStylesHost, useExisting: DomSharedStylesHost},\n  {provide: DomSharedStylesHost, useClass: DomSharedStylesHost, deps: [DOCUMENT]},\n  {provide: Testability, useClass: Testability, deps: [NgZone]},\n  {provide: EventManager, useClass: EventManager, deps: [EVENT_MANAGER_PLUGINS, NgZone]},\n  {provide: XhrFactory, useClass: BrowserXhr, deps: []},\n  ELEMENT_PROBE_PROVIDERS,\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({providers: BROWSER_MODULE_PROVIDERS, exports: [CommonModule, ApplicationModule]})\nexport class BrowserModule {\n  constructor(@Optional() @SkipSelf() @Inject(BrowserModule) parentModule: BrowserModule|null) {\n    if (parentModule) {\n      throw new Error(\n          `BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.`);\n    }\n  }\n\n  /**\n   * Configures a browser-based app to transition from a server-rendered app, if\n   * one is present on the page.\n   *\n   * @param params An object containing an identifier for the app to transition.\n   * The ID must match between the client and server versions of the app.\n   * @returns The reconfigured `BrowserModule` to import into the app's root `AppModule`.\n   */\n  static withServerTransition(params: {appId: string}): ModuleWithProviders<BrowserModule> {\n    return {\n      ngModule: BrowserModule,\n      providers: [\n        {provide: APP_ID, useValue: params.appId},\n        {provide: TRANSITION_ID, useExisting: APP_ID},\n        SERVER_TRANSITION_PROVIDERS,\n      ],\n    };\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.io/license\n */\n\nimport {DOCUMENT, ɵDomAdapter as DomAdapter, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, ɵɵinject} 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 `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 * Factory to create a `Meta` service instance for the current DOM document.\n */\nexport function createMeta() {\n  return new Meta(ɵɵinject(DOCUMENT));\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', useFactory: createMeta, deps: []})\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(meta: MetaDefinition, 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(\n        (prop: string) => el.setAttribute(this._getMetaKeyMap(prop), tag[prop]));\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  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.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, ɵɵinject} from '@angular/core';\n\n\n/**\n * Factory to create Title service.\n */\nexport function createTitle() {\n  return new Title(ɵɵinject(DOCUMENT));\n}\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', useFactory: createTitle, deps: []})\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.io/license\n */\n\nconst win = typeof window !== 'undefined' && window || <any>{};\nexport {win as window};\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.io/license\n */\n\nimport {ApplicationRef, ComponentRef} from '@angular/core';\nimport {window} from './browser';\n\nexport class ChangeDetectionPerfRecord {\n  constructor(public msPerTick: number, public numTicks: number) {}\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   * ```\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    const isProfilerAvailable = window.console.profile != null;\n    if (record && isProfilerAvailable) {\n      window.console.profile(profileName);\n    }\n    const start = performanceNow();\n    let numTicks = 0;\n    while (numTicks < 5 || (performanceNow() - start) < 500) {\n      this.appRef.tick();\n      numTicks++;\n    }\n    const end = performanceNow();\n    if (record && isProfilerAvailable) {\n      window.console.profileEnd(profileName);\n    }\n    const msPerTick = (end - start) / numTicks;\n    window.console.log(`ran ${numTicks} change detection cycles`);\n    window.console.log(`${msPerTick.toFixed(2)} ms per check`);\n\n    return new ChangeDetectionPerfRecord(msPerTick, numTicks);\n  }\n}\n\nfunction performanceNow() {\n  return window.performance && window.performance.now ? window.performance.now() :\n                                                        new Date().getTime();\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.io/license\n */\n\nimport {ComponentRef} from '@angular/core';\nimport {exportNgVar} from '../../dom/util';\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.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {APP_ID, Injectable, NgModule} from '@angular/core';\n\nexport function escapeHtml(text: string): string {\n  const escapedText: {[k: string]: string} = {\n    '&': '&a;',\n    '\"': '&q;',\n    '\\'': '&s;',\n    '<': '&l;',\n    '>': '&g;',\n  };\n  return text.replace(/[&\"'<>]/g, s => escapedText[s]);\n}\n\nexport function unescapeHtml(text: string): string {\n  const unescapedText: {[k: string]: string} = {\n    '&a;': '&',\n    '&q;': '\"',\n    '&s;': '\\'',\n    '&l;': '<',\n    '&g;': '>',\n  };\n  return text.replace(/&[^;]+;/g, s => unescapedText[s]);\n}\n\n/**\n * A type-safe key to use with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport type StateKey<T> = string&{__not_a_string: never};\n\n/**\n * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport function makeStateKey<T = void>(key: string): StateKey<T> {\n  return key as StateKey<T>;\n}\n\n/**\n * A key value store that is transferred from the application on the server side to the application\n * on the client side.\n *\n * `TransferState` will be available as an injectable token. To use it import\n * `ServerTransferStateModule` on the server and `BrowserTransferStateModule` on the client.\n *\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\n * boolean, number, string, null and non-class objects will be serialized and deserialized in a\n * non-lossy manner.\n *\n * @publicApi\n */\n@Injectable()\nexport class TransferState {\n  private store: {[k: string]: {}|undefined} = {};\n  private onSerializeCallbacks: {[k: string]: () => {} | undefined} = {};\n\n  /** @internal */\n  static init(initState: {}) {\n    const transferState = new TransferState();\n    transferState.store = initState;\n    return transferState;\n  }\n\n  /**\n   * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n   */\n  get<T>(key: StateKey<T>, defaultValue: T): T {\n    return this.store[key] !== undefined ? this.store[key] as T : defaultValue;\n  }\n\n  /**\n   * Set the value corresponding to a key.\n   */\n  set<T>(key: StateKey<T>, value: T): void {\n    this.store[key] = value;\n  }\n\n  /**\n   * Remove a key from the store.\n   */\n  remove<T>(key: StateKey<T>): void {\n    delete this.store[key];\n  }\n\n  /**\n   * Test whether a key exists in the store.\n   */\n  hasKey<T>(key: StateKey<T>) {\n    return this.store.hasOwnProperty(key);\n  }\n\n  /**\n   * Register a callback to provide the value for a key when `toJson` is called.\n   */\n  onSerialize<T>(key: StateKey<T>, callback: () => T): void {\n    this.onSerializeCallbacks[key] = callback;\n  }\n\n  /**\n   * Serialize the current state of the store to JSON.\n   */\n  toJson(): string {\n    // Call the onSerialize callbacks and put those values into the store.\n    for (const key in this.onSerializeCallbacks) {\n      if (this.onSerializeCallbacks.hasOwnProperty(key)) {\n        try {\n          this.store[key] = this.onSerializeCallbacks[key]();\n        } catch (e) {\n          console.warn('Exception in onSerialize callback: ', e);\n        }\n      }\n    }\n    return JSON.stringify(this.store);\n  }\n}\n\nexport function initTransferState(doc: Document, appId: string) {\n  // Locate the script tag with the JSON data transferred from the server.\n  // The id of the script tag is set to the Angular appId + 'state'.\n  const script = doc.getElementById(appId + '-state');\n  let initialState = {};\n  if (script && script.textContent) {\n    try {\n      // Avoid using any here as it triggers lint errors in google3 (any is not allowed).\n      initialState = JSON.parse(unescapeHtml(script.textContent)) as {};\n    } catch (e) {\n      console.warn('Exception while restoring TransferState for app ' + appId, e);\n    }\n  }\n  return TransferState.init(initialState);\n}\n\n/**\n * NgModule to install on the client side while using the `TransferState` to transfer state from\n * server to client.\n *\n * @publicApi\n */\n@NgModule({\n  providers: [{provide: TransferState, useFactory: initTransferState, deps: [DOCUMENT, APP_ID]}],\n})\nexport class BrowserTransferStateModule {\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.io/license\n */\n\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {DebugElement, DebugNode, Predicate, Type} from '@angular/core';\n\n\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.matches && n.matches(selector) ||\n        n.msMatchesSelector && n.msMatchesSelector(selector) ||\n        n.webkitMatchesSelector && n.webkitMatchesSelector(selector);\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.io/license\n */\n\nexport {ɵgetDOM} from '@angular/common';\nexport {BROWSER_SANITIZATION_PROVIDERS as ɵBROWSER_SANITIZATION_PROVIDERS, BROWSER_SANITIZATION_PROVIDERS__POST_R3__ as ɵBROWSER_SANITIZATION_PROVIDERS__POST_R3__, initDomAdapter as ɵinitDomAdapter, INTERNAL_BROWSER_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS} from './browser';\nexport {BrowserDomAdapter as ɵBrowserDomAdapter} from './browser/browser_adapter';\nexport {TRANSITION_ID as ɵTRANSITION_ID} from './browser/server-transition';\nexport {BrowserGetTestability as ɵBrowserGetTestability} from './browser/testability';\nexport {escapeHtml as ɵescapeHtml} from './browser/transfer_state';\nexport {ELEMENT_PROBE_PROVIDERS as ɵELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nexport {DomRendererFactory2 as ɵDomRendererFactory2, flattenStyles as ɵflattenStyles, NAMESPACE_URIS as ɵNAMESPACE_URIS, shimContentAttribute as ɵshimContentAttribute, shimHostAttribute as ɵshimHostAttribute} from './dom/dom_renderer';\nexport {DomEventsPlugin as ɵDomEventsPlugin} from './dom/events/dom_events';\nexport {HammerGesturesPlugin as ɵHammerGesturesPlugin} from './dom/events/hammer_gestures';\nexport {KeyEventsPlugin as ɵKeyEventsPlugin} from './dom/events/key_events';\nexport {DomSharedStylesHost as ɵDomSharedStylesHost, SharedStylesHost as ɵSharedStylesHost} from './dom/shared_styles_host';\nexport {DomSanitizerImpl as ɵDomSanitizerImpl} from './security/dom_sanitization_service';\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.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the platform-browser package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('12.2.9');\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.io/license\n */\n\nexport {BrowserModule, platformBrowser} from './browser';\nexport {Meta, MetaDefinition} from './browser/meta';\nexport {Title} from './browser/title';\nexport {disableDebugTools, enableDebugTools} from './browser/tools/tools';\nexport {BrowserTransferStateModule, makeStateKey, StateKey, TransferState} from './browser/transfer_state';\nexport {By} from './dom/debug/by';\nexport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nexport {HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HAMMER_PROVIDERS__POST_R3__ as ɵHAMMER_PROVIDERS__POST_R3__, HammerGestureConfig, HammerLoader, HammerModule} from './dom/events/hammer_gestures';\nexport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl, SafeValue} from './security/dom_sanitization_service';\n\nexport * from './private_export';\nexport {VERSION} from './version';\n// This must be exported so it doesn't get tree-shaken away prematurely\nexport {ELEMENT_PROBE_PROVIDERS__POST_R3__ as ɵELEMENT_PROBE_PROVIDERS__POST_R3__} from './dom/debug/ng_probe';\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.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport * from './src/platform-browser';\n// This file only reexports content of the `src` folder. Keep it that way.\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.io/license\n */\n\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {BROWSER_MODULE_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_c,_document as ɵangular_packages_platform_browser_platform_browser_b,errorHandler as ɵangular_packages_platform_browser_platform_browser_a} from './src/browser';\nexport {GenericBrowserDomAdapter as ɵangular_packages_platform_browser_platform_browser_p} from './src/browser/generic_browser_adapter';\nexport {createMeta as ɵangular_packages_platform_browser_platform_browser_d} from './src/browser/meta';\nexport {SERVER_TRANSITION_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_l,appInitializerFactory as ɵangular_packages_platform_browser_platform_browser_k} from './src/browser/server-transition';\nexport {createTitle as ɵangular_packages_platform_browser_platform_browser_e} from './src/browser/title';\nexport {initTransferState as ɵangular_packages_platform_browser_platform_browser_f} from './src/browser/transfer_state';\nexport {BrowserXhr as ɵangular_packages_platform_browser_platform_browser_o} from './src/browser/xhr';\nexport {ELEMENT_PROBE_PROVIDERS__PRE_R3__ as ɵangular_packages_platform_browser_platform_browser_n,_createNgProbeR2 as ɵangular_packages_platform_browser_platform_browser_m} from './src/dom/debug/ng_probe';\nexport {EventManagerPlugin as ɵangular_packages_platform_browser_platform_browser_g} from './src/dom/events/event_manager';\nexport {HAMMER_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_i,HAMMER_PROVIDERS__PRE_R3__ as ɵangular_packages_platform_browser_platform_browser_h} from './src/dom/events/hammer_gestures';\nexport {domSanitizerImplFactory as ɵangular_packages_platform_browser_platform_browser_j} from './src/security/dom_sanitization_service';"],"names":["DomAdapter","setRootDomAdapter","parseCookieValue","getDOM","global","Console","allowSanitizationBypassOrThrow","unwrapSafeValue","_sanitizeHtml","getSanitizationBypassType","_sanitizeUrl","bypassSanitizationTrustHtml","bypassSanitizationTrustStyle","bypassSanitizationTrustScript","bypassSanitizationTrustUrl","bypassSanitizationTrustResourceUrl","PLATFORM_BROWSER_ID","INJECTOR_SCOPE","window"],"mappings":"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"}
Index: trip-planner-front/node_modules/@angular/platform-browser/fesm2015/testing.js
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/fesm2015/testing.js	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/fesm2015/testing.js	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,4 +1,4 @@
 /**
- * @license Angular v12.2.13
+ * @license Angular v12.2.9
  * (c) 2010-2021 Google LLC. https://angular.io/
  * License: MIT
Index: trip-planner-front/node_modules/@angular/platform-browser/package.json
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/package.json	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/package.json	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,54 +1,29 @@
 {
-  "_from": "@angular/platform-browser@12.2.13",
-  "_id": "@angular/platform-browser@12.2.13",
-  "_inBundle": false,
-  "_integrity": "sha512-Ua8m2GtG2msqz/Mr/MK7s8RXud554x8cup2THVAwetyTaY5th/1LOZX0hhDIhfsxBCLHnC53LRhMbSsI0cikOg==",
-  "_location": "/@angular/platform-browser",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "version",
-    "registry": true,
-    "raw": "@angular/platform-browser@12.2.13",
-    "name": "@angular/platform-browser",
-    "escapedName": "@angular%2fplatform-browser",
-    "scope": "@angular",
-    "rawSpec": "12.2.13",
-    "saveSpec": null,
-    "fetchSpec": "12.2.13"
+  "name": "@angular/platform-browser",
+  "version": "12.2.9",
+  "description": "Angular - library for using Angular in a web browser",
+  "author": "angular",
+  "license": "MIT",
+  "engines": {
+    "node": "^12.14.1 || >=14.0.0"
   },
-  "_requiredBy": [
-    "#USER",
-    "/"
-  ],
-  "_resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-12.2.13.tgz",
-  "_shasum": "769fb148b2128663d6b405d2a41023f2cdaa1c95",
-  "_spec": "@angular/platform-browser@12.2.13",
-  "_where": "C:\\Users\\DELL\\Desktop\\bachelor-thesis\\trip-planner-front",
-  "author": {
-    "name": "angular"
-  },
-  "bugs": {
-    "url": "https://github.com/angular/angular/issues"
-  },
-  "bundleDependencies": false,
   "dependencies": {
     "tslib": "^2.2.0"
   },
-  "deprecated": false,
-  "description": "Angular - library for using Angular in a web browser",
-  "engines": {
-    "node": "^12.14.1 || >=14.0.0"
+  "peerDependencies": {
+    "@angular/animations": "12.2.9",
+    "@angular/core": "12.2.9",
+    "@angular/common": "12.2.9"
   },
-  "es2015_ivy_ngcc": "__ivy_ngcc__/fesm2015/platform-browser.js",
-  "es2015": "./fesm2015/platform-browser.js",
-  "esm2015": "./esm2015/platform-browser.js",
-  "fesm2015_ivy_ngcc": "__ivy_ngcc__/fesm2015/platform-browser.js",
-  "fesm2015": "./fesm2015/platform-browser.js",
-  "homepage": "https://github.com/angular/angular#readme",
-  "license": "MIT",
-  "main": "./bundles/platform-browser.umd.js",
-  "module_ivy_ngcc": "__ivy_ngcc__/fesm2015/platform-browser.js",
-  "module": "./fesm2015/platform-browser.js",
-  "name": "@angular/platform-browser",
+  "peerDependenciesMeta": {
+    "@angular/animations": {
+      "optional": true
+    }
+  },
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/angular/angular.git",
+    "directory": "packages/platform-browser"
+  },
   "ng-update": {
     "packageGroup": [
@@ -71,27 +46,19 @@
     ]
   },
-  "peerDependencies": {
-    "@angular/animations": "12.2.13",
-    "@angular/core": "12.2.13",
-    "@angular/common": "12.2.13"
-  },
-  "peerDependenciesMeta": {
-    "@angular/animations": {
-      "optional": true
-    }
-  },
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/angular/angular.git",
-    "directory": "packages/platform-browser"
-  },
   "sideEffects": false,
+  "main": "./bundles/platform-browser.umd.js",
+  "fesm2015_ivy_ngcc": "__ivy_ngcc__/fesm2015/platform-browser.js",
+  "fesm2015": "./fesm2015/platform-browser.js",
+  "esm2015": "./esm2015/platform-browser.js",
   "typings": "./platform-browser.d.ts",
-  "version": "12.2.13",
+  "module_ivy_ngcc": "__ivy_ngcc__/fesm2015/platform-browser.js",
+  "module": "./fesm2015/platform-browser.js",
+  "es2015_ivy_ngcc": "__ivy_ngcc__/fesm2015/platform-browser.js",
+  "es2015": "./fesm2015/platform-browser.js",
   "__processed_by_ivy_ngcc__": {
-    "es2015": "12.2.13",
-    "fesm2015": "12.2.13",
-    "module": "12.2.13",
-    "typings": "12.2.13"
+    "es2015": "12.2.9",
+    "fesm2015": "12.2.9",
+    "module": "12.2.9",
+    "typings": "12.2.9"
   },
   "scripts": {
Index: trip-planner-front/node_modules/@angular/platform-browser/platform-browser.d.ts
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/platform-browser.d.ts	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/platform-browser.d.ts	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,4 +1,4 @@
 /**
- * @license Angular v12.2.13
+ * @license Angular v12.2.9
  * (c) 2010-2021 Google LLC. https://angular.io/
  * License: MIT
Index: trip-planner-front/node_modules/@angular/platform-browser/platform-browser.d.ts.__ivy_ngcc_bak
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/platform-browser.d.ts.__ivy_ngcc_bak	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/platform-browser.d.ts.__ivy_ngcc_bak	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,4 +1,4 @@
 /**
- * @license Angular v12.2.13
+ * @license Angular v12.2.9
  * (c) 2010-2021 Google LLC. https://angular.io/
  * License: MIT
Index: trip-planner-front/node_modules/@angular/platform-browser/platform-browser.d.ts.map
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/platform-browser.d.ts.map	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/platform-browser.d.ts.map	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,1 +1,1 @@
-{"version":3,"file":"platform-browser.d.ts","sources":["platform-browser.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourcesContent":["/**\n * @license Angular v12.2.13\n * (c) 2010-2021 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ComponentRef } from '@angular/core';\r\nimport { DebugElement } from '@angular/core';\r\nimport { DebugNode } from '@angular/core';\r\nimport { ErrorHandler } from '@angular/core';\r\nimport { GetTestability } from '@angular/core';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { Injector } from '@angular/core';\r\nimport { ModuleWithProviders } from '@angular/core';\r\nimport { NgProbeToken } from '@angular/core';\r\nimport { NgZone } from '@angular/core';\r\nimport { OnDestroy } from '@angular/core';\r\nimport { PlatformRef } from '@angular/core';\r\nimport { Predicate } from '@angular/core';\r\nimport { Provider } from '@angular/core';\r\nimport { Renderer2 } from '@angular/core';\r\nimport { RendererFactory2 } from '@angular/core';\r\nimport { RendererType2 } from '@angular/core';\r\nimport { Sanitizer } from '@angular/core';\r\nimport { SecurityContext } from '@angular/core';\r\nimport { StaticProvider } from '@angular/core';\r\nimport { Testability } from '@angular/core';\r\nimport { TestabilityRegistry } from '@angular/core';\r\nimport { Type } from '@angular/core';\r\nimport { Version } from '@angular/core';\r\nimport { XhrFactory } from '@angular/common';\r\nimport { ɵConsole } from '@angular/core';\r\nimport { ɵDomAdapter } from '@angular/common';\r\nimport { ɵgetDOM } from '@angular/common';\r\n\r\n/**\r\n * Exports required infrastructure for all Angular apps.\r\n * Included by default in all Angular apps created with the CLI\r\n * `new` command.\r\n * Re-exports `CommonModule` and `ApplicationModule`, making their\r\n * exports and providers available to all apps.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class BrowserModule {\r\n    constructor(parentModule: BrowserModule | null);\r\n    /**\r\n     * Configures a browser-based app to transition from a server-rendered app, if\r\n     * one is present on the page.\r\n     *\r\n     * @param params An object containing an identifier for the app to transition.\r\n     * The ID must match between the client and server versions of the app.\r\n     * @returns The reconfigured `BrowserModule` to import into the app's root `AppModule`.\r\n     */\r\n    static withServerTransition(params: {\r\n        appId: string;\r\n    }): ModuleWithProviders<BrowserModule>;\r\n}\r\n\r\n/**\r\n * NgModule to install on the client side while using the `TransferState` to transfer state from\r\n * server to client.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class BrowserTransferStateModule {\r\n}\r\n\r\n/**\r\n * Predicates for use with {@link DebugElement}'s query functions.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class By {\r\n    /**\r\n     * Match all nodes.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * {@example platform-browser/dom/debug/ts/by/by.ts region='by_all'}\r\n     */\r\n    static all(): Predicate<DebugNode>;\r\n    /**\r\n     * Match elements by the given CSS selector.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * {@example platform-browser/dom/debug/ts/by/by.ts region='by_css'}\r\n     */\r\n    static css(selector: string): Predicate<DebugElement>;\r\n    /**\r\n     * Match nodes that have the given directive present.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'}\r\n     */\r\n    static directive(type: Type<any>): Predicate<DebugNode>;\r\n}\r\n\r\n/**\r\n * Disables Angular tools.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function disableDebugTools(): void;\r\n\r\n/**\r\n * DomSanitizer helps preventing Cross Site Scripting Security bugs (XSS) by sanitizing\r\n * values to be safe to use in the different DOM contexts.\r\n *\r\n * For example, when binding a URL in an `<a [href]=\"someValue\">` hyperlink, `someValue` will be\r\n * sanitized so that an attacker cannot inject e.g. a `javascript:` URL that would execute code on\r\n * the website.\r\n *\r\n * In specific situations, it might be necessary to disable sanitization, for example if the\r\n * application genuinely needs to produce a `javascript:` style link with a dynamic value in it.\r\n * Users can bypass security by constructing a value with one of the `bypassSecurityTrust...`\r\n * methods, and then binding to that value from the template.\r\n *\r\n * These situations should be very rare, and extraordinary care must be taken to avoid creating a\r\n * Cross Site Scripting (XSS) security bug!\r\n *\r\n * When using `bypassSecurityTrust...`, make sure to call the method as early as possible and as\r\n * close as possible to the source of the value, to make it easy to verify no security bug is\r\n * created by its use.\r\n *\r\n * It is not required (and not recommended) to bypass security if the value is safe, e.g. a URL that\r\n * does not start with a suspicious protocol, or an HTML snippet that does not contain dangerous\r\n * code. The sanitizer leaves safe values intact.\r\n *\r\n * @security Calling any of the `bypassSecurityTrust...` APIs disables Angular's built-in\r\n * sanitization for the value passed in. Carefully check and audit all values and code paths going\r\n * into this call. Make sure any user data is appropriately escaped for this security context.\r\n * For more detail, see the [Security Guide](https://g.co/ng/security).\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class DomSanitizer implements Sanitizer {\r\n    /**\r\n     * Sanitizes a value for use in the given SecurityContext.\r\n     *\r\n     * If value is trusted for the context, this method will unwrap the contained safe value and use\r\n     * it directly. Otherwise, value will be sanitized to be safe in the given context, for example\r\n     * by replacing URLs that have an unsafe protocol part (such as `javascript:`). The implementation\r\n     * is responsible to make sure that the value can definitely be safely used in the given context.\r\n     */\r\n    abstract sanitize(context: SecurityContext, value: SafeValue | string | null): string | null;\r\n    /**\r\n     * Bypass security and trust the given value to be safe HTML. Only use this when the bound HTML\r\n     * is unsafe (e.g. contains `<script>` tags) and the code should be executed. The sanitizer will\r\n     * leave safe HTML intact, so in most situations this method should not be used.\r\n     *\r\n     * **WARNING:** calling this method with untrusted user data exposes your application to XSS\r\n     * security risks!\r\n     */\r\n    abstract bypassSecurityTrustHtml(value: string): SafeHtml;\r\n    /**\r\n     * Bypass security and trust the given value to be safe style value (CSS).\r\n     *\r\n     * **WARNING:** calling this method with untrusted user data exposes your application to XSS\r\n     * security risks!\r\n     */\r\n    abstract bypassSecurityTrustStyle(value: string): SafeStyle;\r\n    /**\r\n     * Bypass security and trust the given value to be safe JavaScript.\r\n     *\r\n     * **WARNING:** calling this method with untrusted user data exposes your application to XSS\r\n     * security risks!\r\n     */\r\n    abstract bypassSecurityTrustScript(value: string): SafeScript;\r\n    /**\r\n     * Bypass security and trust the given value to be a safe style URL, i.e. a value that can be used\r\n     * in hyperlinks or `<img src>`.\r\n     *\r\n     * **WARNING:** calling this method with untrusted user data exposes your application to XSS\r\n     * security risks!\r\n     */\r\n    abstract bypassSecurityTrustUrl(value: string): SafeUrl;\r\n    /**\r\n     * Bypass security and trust the given value to be a safe resource URL, i.e. a location that may\r\n     * be used to load executable code from, like `<script src>`, or `<iframe src>`.\r\n     *\r\n     * **WARNING:** calling this method with untrusted user data exposes your application to XSS\r\n     * security risks!\r\n     */\r\n    abstract bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl;\r\n}\r\n\r\n/**\r\n * Enabled Angular debug tools that are accessible via your browser's\r\n * developer console.\r\n *\r\n * Usage:\r\n *\r\n * 1. Open developer console (e.g. in Chrome Ctrl + Shift + j)\r\n * 1. Type `ng.` (usually the console will show auto-complete suggestion)\r\n * 1. Try the change detection profiler `ng.profiler.timeChangeDetection()`\r\n *    then hit Enter.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function enableDebugTools<T>(ref: ComponentRef<T>): ComponentRef<T>;\r\n\r\n/**\r\n * The injection token for the event-manager plug-in service.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const EVENT_MANAGER_PLUGINS: InjectionToken<ɵangular_packages_platform_browser_platform_browser_g[]>;\r\n\r\n/**\r\n * An injectable service that provides event management for Angular\r\n * through a browser plug-in.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class EventManager {\r\n    private _zone;\r\n    private _plugins;\r\n    private _eventNameToPlugin;\r\n    /**\r\n     * Initializes an instance of the event-manager service.\r\n     */\r\n    constructor(plugins: ɵangular_packages_platform_browser_platform_browser_g[], _zone: NgZone);\r\n    /**\r\n     * Registers a handler for a specific element and event.\r\n     *\r\n     * @param element The HTML element to receive event notifications.\r\n     * @param eventName The name of the event to listen for.\r\n     * @param handler A function to call when the notification occurs. Receives the\r\n     * event object as an argument.\r\n     * @returns  A callback function that can be used to remove the handler.\r\n     */\r\n    addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\r\n    /**\r\n     * Registers a global handler for an event in a target view.\r\n     *\r\n     * @param target A target for global event notifications. One of \"window\", \"document\", or \"body\".\r\n     * @param eventName The name of the event to listen for.\r\n     * @param handler A function to call when the notification occurs. Receives the\r\n     * event object as an argument.\r\n     * @returns A callback function that can be used to remove the handler.\r\n     * @deprecated No longer being used in Ivy code. To be removed in version 14.\r\n     */\r\n    addGlobalEventListener(target: string, eventName: string, handler: Function): Function;\r\n    /**\r\n     * Retrieves the compilation zone in which event listeners are registered.\r\n     */\r\n    getZone(): NgZone;\r\n}\r\n\r\n/**\r\n * DI token for providing [HammerJS](https://hammerjs.github.io/) support to Angular.\r\n * @see `HammerGestureConfig`\r\n *\r\n * @ngModule HammerModule\r\n * @publicApi\r\n */\r\nexport declare const HAMMER_GESTURE_CONFIG: InjectionToken<HammerGestureConfig>;\r\n\r\n/**\r\n * Injection token used to provide a {@link HammerLoader} to Angular.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const HAMMER_LOADER: InjectionToken<HammerLoader>;\r\n\r\n/**\r\n * An injectable [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\r\n * for gesture recognition. Configures specific event recognition.\r\n * @publicApi\r\n */\r\nexport declare class HammerGestureConfig {\r\n    /**\r\n     * A set of supported event names for gestures to be used in Angular.\r\n     * Angular supports all built-in recognizers, as listed in\r\n     * [HammerJS documentation](https://hammerjs.github.io/).\r\n     */\r\n    events: string[];\r\n    /**\r\n     * Maps gesture event names to a set of configuration options\r\n     * that specify overrides to the default values for specific properties.\r\n     *\r\n     * The key is a supported event name to be configured,\r\n     * and the options object contains a set of properties, with override values\r\n     * to be applied to the named recognizer event.\r\n     * For example, to disable recognition of the rotate event, specify\r\n     *  `{\"rotate\": {\"enable\": false}}`.\r\n     *\r\n     * Properties that are not present take the HammerJS default values.\r\n     * For information about which properties are supported for which events,\r\n     * and their allowed and default values, see\r\n     * [HammerJS documentation](https://hammerjs.github.io/).\r\n     *\r\n     */\r\n    overrides: {\r\n        [key: string]: Object;\r\n    };\r\n    /**\r\n     * Properties whose default values can be overridden for a given event.\r\n     * Different sets of properties apply to different events.\r\n     * For information about which properties are supported for which events,\r\n     * and their allowed and default values, see\r\n     * [HammerJS documentation](https://hammerjs.github.io/).\r\n     */\r\n    options?: {\r\n        cssProps?: any;\r\n        domEvents?: boolean;\r\n        enable?: boolean | ((manager: any) => boolean);\r\n        preset?: any[];\r\n        touchAction?: string;\r\n        recognizers?: any[];\r\n        inputClass?: any;\r\n        inputTarget?: EventTarget;\r\n    };\r\n    /**\r\n     * Creates a [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\r\n     * and attaches it to a given HTML element.\r\n     * @param element The element that will recognize gestures.\r\n     * @returns A HammerJS event-manager object.\r\n     */\r\n    buildHammer(element: HTMLElement): HammerInstance;\r\n}\r\n\r\ndeclare interface HammerInstance {\r\n    on(eventName: string, callback?: Function): void;\r\n    off(eventName: string, callback?: Function): void;\r\n    destroy?(): void;\r\n}\r\n\r\n/**\r\n * Function that loads HammerJS, returning a promise that is resolved once HammerJs is loaded.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type HammerLoader = () => Promise<void>;\r\n\r\n/**\r\n * Adds support for HammerJS.\r\n *\r\n * Import this module at the root of your application so that Angular can work with\r\n * HammerJS to detect gesture events.\r\n *\r\n * Note that applications still need to include the HammerJS script itself. This module\r\n * simply sets up the coordination layer between HammerJS and Angular's EventManager.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class HammerModule {\r\n}\r\n\r\n/**\r\n * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.\r\n *\r\n * Example:\r\n *\r\n * ```\r\n * const COUNTER_KEY = makeStateKey<number>('counter');\r\n * let value = 10;\r\n *\r\n * transferState.set(COUNTER_KEY, value);\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare function makeStateKey<T = void>(key: string): StateKey<T>;\r\n\r\n/**\r\n * A service for managing HTML `<meta>` tags.\r\n *\r\n * Properties of the `MetaDefinition` object match the attributes of the\r\n * HTML `<meta>` tag. These tags define document metadata that is important for\r\n * things like configuring a Content Security Policy, defining browser compatibility\r\n * and security settings, setting HTTP Headers, defining rich content for social sharing,\r\n * and Search Engine Optimization (SEO).\r\n *\r\n * To identify specific `<meta>` tags in a document, use an attribute selection\r\n * string in the format `\"tag_attribute='value string'\"`.\r\n * For example, an `attrSelector` value of `\"name='description'\"` matches a tag\r\n * whose `name` attribute has the value `\"description\"`.\r\n * Selectors are used with the `querySelector()` Document method,\r\n * in the format `meta[{attrSelector}]`.\r\n *\r\n * @see [HTML meta tag](https://developer.mozilla.org/docs/Web/HTML/Element/meta)\r\n * @see [Document.querySelector()](https://developer.mozilla.org/docs/Web/API/Document/querySelector)\r\n *\r\n *\r\n * @publicApi\r\n */\r\nexport declare class Meta {\r\n    private _doc;\r\n    private _dom;\r\n    constructor(_doc: any);\r\n    /**\r\n     * Retrieves or creates a specific `<meta>` tag element in the current HTML document.\r\n     * In searching for an existing tag, Angular attempts to match the `name` or `property` attribute\r\n     * values in the provided tag definition, and verifies that all other attribute values are equal.\r\n     * If an existing element is found, it is returned and is not modified in any way.\r\n     * @param tag The definition of a `<meta>` element to match or create.\r\n     * @param forceCreation True to create a new element without checking whether one already exists.\r\n     * @returns The existing element with the same attributes and values if found,\r\n     * the new element if no match is found, or `null` if the tag parameter is not defined.\r\n     */\r\n    addTag(tag: MetaDefinition, forceCreation?: boolean): HTMLMetaElement | null;\r\n    /**\r\n     * Retrieves or creates a set of `<meta>` tag elements in the current HTML document.\r\n     * In searching for an existing tag, Angular attempts to match the `name` or `property` attribute\r\n     * values in the provided tag definition, and verifies that all other attribute values are equal.\r\n     * @param tags An array of tag definitions to match or create.\r\n     * @param forceCreation True to create new elements without checking whether they already exist.\r\n     * @returns The matching elements if found, or the new elements.\r\n     */\r\n    addTags(tags: MetaDefinition[], forceCreation?: boolean): HTMLMetaElement[];\r\n    /**\r\n     * Retrieves a `<meta>` tag element in the current HTML document.\r\n     * @param attrSelector The tag attribute and value to match against, in the format\r\n     * `\"tag_attribute='value string'\"`.\r\n     * @returns The matching element, if any.\r\n     */\r\n    getTag(attrSelector: string): HTMLMetaElement | null;\r\n    /**\r\n     * Retrieves a set of `<meta>` tag elements in the current HTML document.\r\n     * @param attrSelector The tag attribute and value to match against, in the format\r\n     * `\"tag_attribute='value string'\"`.\r\n     * @returns The matching elements, if any.\r\n     */\r\n    getTags(attrSelector: string): HTMLMetaElement[];\r\n    /**\r\n     * Modifies an existing `<meta>` tag element in the current HTML document.\r\n     * @param tag The tag description with which to replace the existing tag content.\r\n     * @param selector A tag attribute and value to match against, to identify\r\n     * an existing tag. A string in the format `\"tag_attribute=`value string`\"`.\r\n     * If not supplied, matches a tag with the same `name` or `property` attribute value as the\r\n     * replacement tag.\r\n     * @return The modified element.\r\n     */\r\n    updateTag(tag: MetaDefinition, selector?: string): HTMLMetaElement | null;\r\n    /**\r\n     * Removes an existing `<meta>` tag element from the current HTML document.\r\n     * @param attrSelector A tag attribute and value to match against, to identify\r\n     * an existing tag. A string in the format `\"tag_attribute=`value string`\"`.\r\n     */\r\n    removeTag(attrSelector: string): void;\r\n    /**\r\n     * Removes an existing `<meta>` tag element from the current HTML document.\r\n     * @param meta The tag definition to match against to identify an existing tag.\r\n     */\r\n    removeTagElement(meta: HTMLMetaElement): void;\r\n    private _getOrCreateElement;\r\n    private _setMetaElementAttributes;\r\n    private _parseSelector;\r\n    private _containsAttributes;\r\n    private _getMetaKeyMap;\r\n}\r\n\r\n\r\n/**\r\n * Represents the attributes of an HTML `<meta>` element. The element itself is\r\n * represented by the internal `HTMLMetaElement`.\r\n *\r\n * @see [HTML meta tag](https://developer.mozilla.org/docs/Web/HTML/Element/meta)\r\n * @see `Meta`\r\n *\r\n * @publicApi\r\n */\r\nexport declare type MetaDefinition = {\r\n    charset?: string;\r\n    content?: string;\r\n    httpEquiv?: string;\r\n    id?: string;\r\n    itemprop?: string;\r\n    name?: string;\r\n    property?: string;\r\n    scheme?: string;\r\n    url?: string;\r\n} & {\r\n    [prop: string]: string;\r\n};\r\n\r\n/**\r\n * A factory function that returns a `PlatformRef` instance associated with browser service\r\n * providers.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const platformBrowser: (extraProviders?: StaticProvider[]) => PlatformRef;\r\n\r\n/**\r\n * Marker interface for a value that's safe to use as HTML.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SafeHtml extends SafeValue {\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use as a URL to load executable code from.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SafeResourceUrl extends SafeValue {\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use as JavaScript.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SafeScript extends SafeValue {\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use as style (CSS).\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SafeStyle extends SafeValue {\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use as a URL linking to a document.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SafeUrl extends SafeValue {\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use in a particular context.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SafeValue {\r\n}\r\n\r\n/**\r\n * A type-safe key to use with `TransferState`.\r\n *\r\n * Example:\r\n *\r\n * ```\r\n * const COUNTER_KEY = makeStateKey<number>('counter');\r\n * let value = 10;\r\n *\r\n * transferState.set(COUNTER_KEY, value);\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare type StateKey<T> = string & {\r\n    __not_a_string: never;\r\n};\r\n\r\n/**\r\n * A service that can be used to get and set the title of a current HTML document.\r\n *\r\n * Since an Angular application can't be bootstrapped on the entire HTML document (`<html>` tag)\r\n * it is not possible to bind to the `text` property of the `HTMLTitleElement` elements\r\n * (representing the `<title>` tag). Instead, this service can be used to set and get the current\r\n * title value.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class Title {\r\n    private _doc;\r\n    constructor(_doc: any);\r\n    /**\r\n     * Get the title of the current HTML document.\r\n     */\r\n    getTitle(): string;\r\n    /**\r\n     * Set the title of the current HTML document.\r\n     * @param newTitle\r\n     */\r\n    setTitle(newTitle: string): void;\r\n}\r\n\r\n/**\r\n * A key value store that is transferred from the application on the server side to the application\r\n * on the client side.\r\n *\r\n * `TransferState` will be available as an injectable token. To use it import\r\n * `ServerTransferStateModule` on the server and `BrowserTransferStateModule` on the client.\r\n *\r\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\r\n * boolean, number, string, null and non-class objects will be serialized and deserialized in a\r\n * non-lossy manner.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class TransferState {\r\n    private store;\r\n    private onSerializeCallbacks;\r\n    /**\r\n     * Get the value corresponding to a key. Return `defaultValue` if key is not found.\r\n     */\r\n    get<T>(key: StateKey<T>, defaultValue: T): T;\r\n    /**\r\n     * Set the value corresponding to a key.\r\n     */\r\n    set<T>(key: StateKey<T>, value: T): void;\r\n    /**\r\n     * Remove a key from the store.\r\n     */\r\n    remove<T>(key: StateKey<T>): void;\r\n    /**\r\n     * Test whether a key exists in the store.\r\n     */\r\n    hasKey<T>(key: StateKey<T>): boolean;\r\n    /**\r\n     * Register a callback to provide the value for a key when `toJson` is called.\r\n     */\r\n    onSerialize<T>(key: StateKey<T>, callback: () => T): void;\r\n    /**\r\n     * Serialize the current state of the store to JSON.\r\n     */\r\n    toJson(): string;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const VERSION: Version;\r\n\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_a(): ErrorHandler;\r\n\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_b(): any;\r\n\r\nexport declare const ɵangular_packages_platform_browser_platform_browser_c: StaticProvider[];\r\n\r\n/**\r\n * Factory to create a `Meta` service instance for the current DOM document.\r\n */\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_d(): Meta;\r\n\r\n\r\n/**\r\n * Factory to create Title service.\r\n */\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_e(): Title;\r\n\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_f(doc: Document, appId: string): TransferState;\r\n\r\nexport declare abstract class ɵangular_packages_platform_browser_platform_browser_g {\r\n    private _doc;\r\n    constructor(_doc: any);\r\n    manager: EventManager;\r\n    abstract supports(eventName: string): boolean;\r\n    abstract addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\r\n    addGlobalEventListener(element: string, eventName: string, handler: Function): Function;\r\n}\r\n\r\n/**\r\n * In View Engine, support for Hammer gestures is built-in by default.\r\n */\r\nexport declare const ɵangular_packages_platform_browser_platform_browser_h: Provider[];\r\n\r\nexport declare const ɵangular_packages_platform_browser_platform_browser_i: Provider[];\r\n\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_j(injector: Injector): ɵDomSanitizerImpl;\r\n\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_k(transitionId: string, document: any, injector: Injector): () => void;\r\n\r\nexport declare const ɵangular_packages_platform_browser_platform_browser_l: StaticProvider[];\r\n\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_m(coreTokens: NgProbeToken[]): any;\r\n\r\n/**\r\n * Providers which support debugging Angular applications (e.g. via `ng.probe`).\r\n */\r\nexport declare const ɵangular_packages_platform_browser_platform_browser_n: Provider[];\r\n\r\n/**\r\n * A factory for `HttpXhrBackend` that uses the `XMLHttpRequest` browser API.\r\n */\r\nexport declare class ɵangular_packages_platform_browser_platform_browser_o implements XhrFactory {\r\n    build(): XMLHttpRequest;\r\n}\r\n\r\n/**\r\n * Provides DOM operations in any browser environment.\r\n *\r\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\r\n * can introduce XSS risks.\r\n */\r\nexport declare abstract class ɵangular_packages_platform_browser_platform_browser_p extends ɵDomAdapter {\r\n    readonly supportsDOMEvents: boolean;\r\n}\r\n\r\n/**\r\n * @security Replacing built-in sanitization providers exposes the application to XSS risks.\r\n * Attacker-controlled data introduced by an unsanitized provider could expose your\r\n * application to XSS risks. For more detail, see the [Security Guide](https://g.co/ng/security).\r\n * @publicApi\r\n */\r\nexport declare const ɵBROWSER_SANITIZATION_PROVIDERS: StaticProvider[];\r\n\r\nexport declare const ɵBROWSER_SANITIZATION_PROVIDERS__POST_R3__: never[];\r\n\r\n/**\r\n * A `DomAdapter` powered by full browser DOM APIs.\r\n *\r\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\r\n * can introduce XSS risks.\r\n */\r\nexport declare class ɵBrowserDomAdapter extends ɵangular_packages_platform_browser_platform_browser_p {\r\n    static makeCurrent(): void;\r\n    onAndCancel(el: Node, evt: any, listener: any): Function;\r\n    dispatchEvent(el: Node, evt: any): void;\r\n    remove(node: Node): void;\r\n    createElement(tagName: string, doc?: Document): HTMLElement;\r\n    createHtmlDocument(): HTMLDocument;\r\n    getDefaultDocument(): Document;\r\n    isElementNode(node: Node): boolean;\r\n    isShadowRoot(node: any): boolean;\r\n    /** @deprecated No longer being used in Ivy code. To be removed in version 14. */\r\n    getGlobalEventTarget(doc: Document, target: string): EventTarget | null;\r\n    getBaseHref(doc: Document): string | null;\r\n    resetBaseElement(): void;\r\n    getUserAgent(): string;\r\n    getCookie(name: string): string | null;\r\n}\r\n\r\nexport declare class ɵBrowserGetTestability implements GetTestability {\r\n    static init(): void;\r\n    addToWindow(registry: TestabilityRegistry): void;\r\n    findTestabilityInTree(registry: TestabilityRegistry, elem: any, findInAncestors: boolean): Testability | null;\r\n}\r\n\r\nexport declare class ɵDomEventsPlugin extends ɵangular_packages_platform_browser_platform_browser_g {\r\n    constructor(doc: any);\r\n    supports(eventName: string): boolean;\r\n    addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\r\n    removeEventListener(target: any, eventName: string, callback: Function): void;\r\n}\r\n\r\nexport declare class ɵDomRendererFactory2 implements RendererFactory2 {\r\n    private eventManager;\r\n    private sharedStylesHost;\r\n    private appId;\r\n    private rendererByCompId;\r\n    private defaultRenderer;\r\n    constructor(eventManager: EventManager, sharedStylesHost: ɵDomSharedStylesHost, appId: string);\r\n    createRenderer(element: any, type: RendererType2 | null): Renderer2;\r\n    begin(): void;\r\n    end(): void;\r\n}\r\n\r\nexport declare class ɵDomSanitizerImpl extends DomSanitizer {\r\n    private _doc;\r\n    constructor(_doc: any);\r\n    sanitize(ctx: SecurityContext, value: SafeValue | string | null): string | null;\r\n    bypassSecurityTrustHtml(value: string): SafeHtml;\r\n    bypassSecurityTrustStyle(value: string): SafeStyle;\r\n    bypassSecurityTrustScript(value: string): SafeScript;\r\n    bypassSecurityTrustUrl(value: string): SafeUrl;\r\n    bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl;\r\n}\r\n\r\nexport declare class ɵDomSharedStylesHost extends ɵSharedStylesHost implements OnDestroy {\r\n    private _doc;\r\n    private _hostNodes;\r\n    constructor(_doc: any);\r\n    private _addStylesToHost;\r\n    addHost(hostNode: Node): void;\r\n    removeHost(hostNode: Node): void;\r\n    onStylesAdded(additions: Set<string>): void;\r\n    ngOnDestroy(): void;\r\n}\r\n\r\nexport declare const ɵELEMENT_PROBE_PROVIDERS: Provider[];\r\n\r\n/**\r\n * In Ivy, we don't support NgProbe because we have our own set of testing utilities\r\n * with more robust functionality.\r\n *\r\n * We shouldn't bring in NgProbe because it prevents DebugNode and friends from\r\n * tree-shaking properly.\r\n */\r\nexport declare const ɵELEMENT_PROBE_PROVIDERS__POST_R3__: never[];\r\n\r\n\r\nexport declare function ɵescapeHtml(text: string): string;\r\n\r\nexport declare function ɵflattenStyles(compId: string, styles: Array<any | any[]>, target: string[]): string[];\r\n\r\nexport { ɵgetDOM }\r\n\r\n/**\r\n * In Ivy, support for Hammer gestures is optional, so applications must\r\n * import the `HammerModule` at root to turn on support. This means that\r\n * Hammer-specific code can be tree-shaken away if not needed.\r\n */\r\nexport declare const ɵHAMMER_PROVIDERS__POST_R3__: never[];\r\n\r\n/**\r\n * Event plugin that adds Hammer support to an application.\r\n *\r\n * @ngModule HammerModule\r\n */\r\nexport declare class ɵHammerGesturesPlugin extends ɵangular_packages_platform_browser_platform_browser_g {\r\n    private _config;\r\n    private console;\r\n    private loader?;\r\n    private _loaderPromise;\r\n    constructor(doc: any, _config: HammerGestureConfig, console: ɵConsole, loader?: HammerLoader | null | undefined);\r\n    supports(eventName: string): boolean;\r\n    addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\r\n    isCustomEvent(eventName: string): boolean;\r\n}\r\n\r\nexport declare function ɵinitDomAdapter(): void;\r\n\r\nexport declare const ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS: StaticProvider[];\r\n\r\n/**\r\n * @publicApi\r\n * A browser plug-in that provides support for handling of key events in Angular.\r\n */\r\nexport declare class ɵKeyEventsPlugin extends ɵangular_packages_platform_browser_platform_browser_g {\r\n    /**\r\n     * Initializes an instance of the browser plug-in.\r\n     * @param doc The document in which key events will be detected.\r\n     */\r\n    constructor(doc: any);\r\n    /**\r\n     * Reports whether a named key event is supported.\r\n     * @param eventName The event name to query.\r\n     * @return True if the named key event is supported.\r\n     */\r\n    supports(eventName: string): boolean;\r\n    /**\r\n     * Registers a handler for a specific element and key event.\r\n     * @param element The HTML element to receive event notifications.\r\n     * @param eventName The name of the key event to listen for.\r\n     * @param handler A function to call when the notification occurs. Receives the\r\n     * event object as an argument.\r\n     * @returns The key event that was registered.\r\n     */\r\n    addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\r\n    static parseEventName(eventName: string): {\r\n        fullKey: string;\r\n        domEventName: string;\r\n    } | null;\r\n    static getEventFullKey(event: KeyboardEvent): string;\r\n    /**\r\n     * Configures a handler callback for a key event.\r\n     * @param fullKey The event name that combines all simultaneous keystrokes.\r\n     * @param handler The function that responds to the key event.\r\n     * @param zone The zone in which the event occurred.\r\n     * @returns A callback function.\r\n     */\r\n    static eventCallback(fullKey: any, handler: Function, zone: NgZone): Function;\r\n}\r\n\r\nexport declare const ɵNAMESPACE_URIS: {\r\n    [ns: string]: string;\r\n};\r\n\r\nexport declare class ɵSharedStylesHost {\r\n    addStyles(styles: string[]): void;\r\n    onStylesAdded(additions: Set<string>): void;\r\n    getAllStyles(): string[];\r\n}\r\n\r\nexport declare function ɵshimContentAttribute(componentShortId: string): string;\r\n\r\nexport declare function ɵshimHostAttribute(componentShortId: string): string;\r\n\r\n/**\r\n * An id that identifies a particular application being bootstrapped, that should\r\n * match across the client/server boundary.\r\n */\r\nexport declare const ɵTRANSITION_ID: InjectionToken<unknown>;\r\n\r\nexport { }\r\n"]}
+{"version":3,"file":"platform-browser.d.ts","sources":["platform-browser.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourcesContent":["/**\n * @license Angular v12.2.9\n * (c) 2010-2021 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ComponentRef } from '@angular/core';\r\nimport { DebugElement } from '@angular/core';\r\nimport { DebugNode } from '@angular/core';\r\nimport { ErrorHandler } from '@angular/core';\r\nimport { GetTestability } from '@angular/core';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { Injector } from '@angular/core';\r\nimport { ModuleWithProviders } from '@angular/core';\r\nimport { NgProbeToken } from '@angular/core';\r\nimport { NgZone } from '@angular/core';\r\nimport { OnDestroy } from '@angular/core';\r\nimport { PlatformRef } from '@angular/core';\r\nimport { Predicate } from '@angular/core';\r\nimport { Provider } from '@angular/core';\r\nimport { Renderer2 } from '@angular/core';\r\nimport { RendererFactory2 } from '@angular/core';\r\nimport { RendererType2 } from '@angular/core';\r\nimport { Sanitizer } from '@angular/core';\r\nimport { SecurityContext } from '@angular/core';\r\nimport { StaticProvider } from '@angular/core';\r\nimport { Testability } from '@angular/core';\r\nimport { TestabilityRegistry } from '@angular/core';\r\nimport { Type } from '@angular/core';\r\nimport { Version } from '@angular/core';\r\nimport { XhrFactory } from '@angular/common';\r\nimport { ɵConsole } from '@angular/core';\r\nimport { ɵDomAdapter } from '@angular/common';\r\nimport { ɵgetDOM } from '@angular/common';\r\n\r\n/**\r\n * Exports required infrastructure for all Angular apps.\r\n * Included by default in all Angular apps created with the CLI\r\n * `new` command.\r\n * Re-exports `CommonModule` and `ApplicationModule`, making their\r\n * exports and providers available to all apps.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class BrowserModule {\r\n    constructor(parentModule: BrowserModule | null);\r\n    /**\r\n     * Configures a browser-based app to transition from a server-rendered app, if\r\n     * one is present on the page.\r\n     *\r\n     * @param params An object containing an identifier for the app to transition.\r\n     * The ID must match between the client and server versions of the app.\r\n     * @returns The reconfigured `BrowserModule` to import into the app's root `AppModule`.\r\n     */\r\n    static withServerTransition(params: {\r\n        appId: string;\r\n    }): ModuleWithProviders<BrowserModule>;\r\n}\r\n\r\n/**\r\n * NgModule to install on the client side while using the `TransferState` to transfer state from\r\n * server to client.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class BrowserTransferStateModule {\r\n}\r\n\r\n/**\r\n * Predicates for use with {@link DebugElement}'s query functions.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class By {\r\n    /**\r\n     * Match all nodes.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * {@example platform-browser/dom/debug/ts/by/by.ts region='by_all'}\r\n     */\r\n    static all(): Predicate<DebugNode>;\r\n    /**\r\n     * Match elements by the given CSS selector.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * {@example platform-browser/dom/debug/ts/by/by.ts region='by_css'}\r\n     */\r\n    static css(selector: string): Predicate<DebugElement>;\r\n    /**\r\n     * Match nodes that have the given directive present.\r\n     *\r\n     * @usageNotes\r\n     * ### Example\r\n     *\r\n     * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'}\r\n     */\r\n    static directive(type: Type<any>): Predicate<DebugNode>;\r\n}\r\n\r\n/**\r\n * Disables Angular tools.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function disableDebugTools(): void;\r\n\r\n/**\r\n * DomSanitizer helps preventing Cross Site Scripting Security bugs (XSS) by sanitizing\r\n * values to be safe to use in the different DOM contexts.\r\n *\r\n * For example, when binding a URL in an `<a [href]=\"someValue\">` hyperlink, `someValue` will be\r\n * sanitized so that an attacker cannot inject e.g. a `javascript:` URL that would execute code on\r\n * the website.\r\n *\r\n * In specific situations, it might be necessary to disable sanitization, for example if the\r\n * application genuinely needs to produce a `javascript:` style link with a dynamic value in it.\r\n * Users can bypass security by constructing a value with one of the `bypassSecurityTrust...`\r\n * methods, and then binding to that value from the template.\r\n *\r\n * These situations should be very rare, and extraordinary care must be taken to avoid creating a\r\n * Cross Site Scripting (XSS) security bug!\r\n *\r\n * When using `bypassSecurityTrust...`, make sure to call the method as early as possible and as\r\n * close as possible to the source of the value, to make it easy to verify no security bug is\r\n * created by its use.\r\n *\r\n * It is not required (and not recommended) to bypass security if the value is safe, e.g. a URL that\r\n * does not start with a suspicious protocol, or an HTML snippet that does not contain dangerous\r\n * code. The sanitizer leaves safe values intact.\r\n *\r\n * @security Calling any of the `bypassSecurityTrust...` APIs disables Angular's built-in\r\n * sanitization for the value passed in. Carefully check and audit all values and code paths going\r\n * into this call. Make sure any user data is appropriately escaped for this security context.\r\n * For more detail, see the [Security Guide](https://g.co/ng/security).\r\n *\r\n * @publicApi\r\n */\r\nexport declare abstract class DomSanitizer implements Sanitizer {\r\n    /**\r\n     * Sanitizes a value for use in the given SecurityContext.\r\n     *\r\n     * If value is trusted for the context, this method will unwrap the contained safe value and use\r\n     * it directly. Otherwise, value will be sanitized to be safe in the given context, for example\r\n     * by replacing URLs that have an unsafe protocol part (such as `javascript:`). The implementation\r\n     * is responsible to make sure that the value can definitely be safely used in the given context.\r\n     */\r\n    abstract sanitize(context: SecurityContext, value: SafeValue | string | null): string | null;\r\n    /**\r\n     * Bypass security and trust the given value to be safe HTML. Only use this when the bound HTML\r\n     * is unsafe (e.g. contains `<script>` tags) and the code should be executed. The sanitizer will\r\n     * leave safe HTML intact, so in most situations this method should not be used.\r\n     *\r\n     * **WARNING:** calling this method with untrusted user data exposes your application to XSS\r\n     * security risks!\r\n     */\r\n    abstract bypassSecurityTrustHtml(value: string): SafeHtml;\r\n    /**\r\n     * Bypass security and trust the given value to be safe style value (CSS).\r\n     *\r\n     * **WARNING:** calling this method with untrusted user data exposes your application to XSS\r\n     * security risks!\r\n     */\r\n    abstract bypassSecurityTrustStyle(value: string): SafeStyle;\r\n    /**\r\n     * Bypass security and trust the given value to be safe JavaScript.\r\n     *\r\n     * **WARNING:** calling this method with untrusted user data exposes your application to XSS\r\n     * security risks!\r\n     */\r\n    abstract bypassSecurityTrustScript(value: string): SafeScript;\r\n    /**\r\n     * Bypass security and trust the given value to be a safe style URL, i.e. a value that can be used\r\n     * in hyperlinks or `<img src>`.\r\n     *\r\n     * **WARNING:** calling this method with untrusted user data exposes your application to XSS\r\n     * security risks!\r\n     */\r\n    abstract bypassSecurityTrustUrl(value: string): SafeUrl;\r\n    /**\r\n     * Bypass security and trust the given value to be a safe resource URL, i.e. a location that may\r\n     * be used to load executable code from, like `<script src>`, or `<iframe src>`.\r\n     *\r\n     * **WARNING:** calling this method with untrusted user data exposes your application to XSS\r\n     * security risks!\r\n     */\r\n    abstract bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl;\r\n}\r\n\r\n/**\r\n * Enabled Angular debug tools that are accessible via your browser's\r\n * developer console.\r\n *\r\n * Usage:\r\n *\r\n * 1. Open developer console (e.g. in Chrome Ctrl + Shift + j)\r\n * 1. Type `ng.` (usually the console will show auto-complete suggestion)\r\n * 1. Try the change detection profiler `ng.profiler.timeChangeDetection()`\r\n *    then hit Enter.\r\n *\r\n * @publicApi\r\n */\r\nexport declare function enableDebugTools<T>(ref: ComponentRef<T>): ComponentRef<T>;\r\n\r\n/**\r\n * The injection token for the event-manager plug-in service.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const EVENT_MANAGER_PLUGINS: InjectionToken<ɵangular_packages_platform_browser_platform_browser_g[]>;\r\n\r\n/**\r\n * An injectable service that provides event management for Angular\r\n * through a browser plug-in.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class EventManager {\r\n    private _zone;\r\n    private _plugins;\r\n    private _eventNameToPlugin;\r\n    /**\r\n     * Initializes an instance of the event-manager service.\r\n     */\r\n    constructor(plugins: ɵangular_packages_platform_browser_platform_browser_g[], _zone: NgZone);\r\n    /**\r\n     * Registers a handler for a specific element and event.\r\n     *\r\n     * @param element The HTML element to receive event notifications.\r\n     * @param eventName The name of the event to listen for.\r\n     * @param handler A function to call when the notification occurs. Receives the\r\n     * event object as an argument.\r\n     * @returns  A callback function that can be used to remove the handler.\r\n     */\r\n    addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\r\n    /**\r\n     * Registers a global handler for an event in a target view.\r\n     *\r\n     * @param target A target for global event notifications. One of \"window\", \"document\", or \"body\".\r\n     * @param eventName The name of the event to listen for.\r\n     * @param handler A function to call when the notification occurs. Receives the\r\n     * event object as an argument.\r\n     * @returns A callback function that can be used to remove the handler.\r\n     * @deprecated No longer being used in Ivy code. To be removed in version 14.\r\n     */\r\n    addGlobalEventListener(target: string, eventName: string, handler: Function): Function;\r\n    /**\r\n     * Retrieves the compilation zone in which event listeners are registered.\r\n     */\r\n    getZone(): NgZone;\r\n}\r\n\r\n/**\r\n * DI token for providing [HammerJS](https://hammerjs.github.io/) support to Angular.\r\n * @see `HammerGestureConfig`\r\n *\r\n * @ngModule HammerModule\r\n * @publicApi\r\n */\r\nexport declare const HAMMER_GESTURE_CONFIG: InjectionToken<HammerGestureConfig>;\r\n\r\n/**\r\n * Injection token used to provide a {@link HammerLoader} to Angular.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const HAMMER_LOADER: InjectionToken<HammerLoader>;\r\n\r\n/**\r\n * An injectable [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\r\n * for gesture recognition. Configures specific event recognition.\r\n * @publicApi\r\n */\r\nexport declare class HammerGestureConfig {\r\n    /**\r\n     * A set of supported event names for gestures to be used in Angular.\r\n     * Angular supports all built-in recognizers, as listed in\r\n     * [HammerJS documentation](https://hammerjs.github.io/).\r\n     */\r\n    events: string[];\r\n    /**\r\n     * Maps gesture event names to a set of configuration options\r\n     * that specify overrides to the default values for specific properties.\r\n     *\r\n     * The key is a supported event name to be configured,\r\n     * and the options object contains a set of properties, with override values\r\n     * to be applied to the named recognizer event.\r\n     * For example, to disable recognition of the rotate event, specify\r\n     *  `{\"rotate\": {\"enable\": false}}`.\r\n     *\r\n     * Properties that are not present take the HammerJS default values.\r\n     * For information about which properties are supported for which events,\r\n     * and their allowed and default values, see\r\n     * [HammerJS documentation](https://hammerjs.github.io/).\r\n     *\r\n     */\r\n    overrides: {\r\n        [key: string]: Object;\r\n    };\r\n    /**\r\n     * Properties whose default values can be overridden for a given event.\r\n     * Different sets of properties apply to different events.\r\n     * For information about which properties are supported for which events,\r\n     * and their allowed and default values, see\r\n     * [HammerJS documentation](https://hammerjs.github.io/).\r\n     */\r\n    options?: {\r\n        cssProps?: any;\r\n        domEvents?: boolean;\r\n        enable?: boolean | ((manager: any) => boolean);\r\n        preset?: any[];\r\n        touchAction?: string;\r\n        recognizers?: any[];\r\n        inputClass?: any;\r\n        inputTarget?: EventTarget;\r\n    };\r\n    /**\r\n     * Creates a [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\r\n     * and attaches it to a given HTML element.\r\n     * @param element The element that will recognize gestures.\r\n     * @returns A HammerJS event-manager object.\r\n     */\r\n    buildHammer(element: HTMLElement): HammerInstance;\r\n}\r\n\r\ndeclare interface HammerInstance {\r\n    on(eventName: string, callback?: Function): void;\r\n    off(eventName: string, callback?: Function): void;\r\n    destroy?(): void;\r\n}\r\n\r\n/**\r\n * Function that loads HammerJS, returning a promise that is resolved once HammerJs is loaded.\r\n *\r\n * @publicApi\r\n */\r\nexport declare type HammerLoader = () => Promise<void>;\r\n\r\n/**\r\n * Adds support for HammerJS.\r\n *\r\n * Import this module at the root of your application so that Angular can work with\r\n * HammerJS to detect gesture events.\r\n *\r\n * Note that applications still need to include the HammerJS script itself. This module\r\n * simply sets up the coordination layer between HammerJS and Angular's EventManager.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class HammerModule {\r\n}\r\n\r\n/**\r\n * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.\r\n *\r\n * Example:\r\n *\r\n * ```\r\n * const COUNTER_KEY = makeStateKey<number>('counter');\r\n * let value = 10;\r\n *\r\n * transferState.set(COUNTER_KEY, value);\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare function makeStateKey<T = void>(key: string): StateKey<T>;\r\n\r\n/**\r\n * A service for managing HTML `<meta>` tags.\r\n *\r\n * Properties of the `MetaDefinition` object match the attributes of the\r\n * HTML `<meta>` tag. These tags define document metadata that is important for\r\n * things like configuring a Content Security Policy, defining browser compatibility\r\n * and security settings, setting HTTP Headers, defining rich content for social sharing,\r\n * and Search Engine Optimization (SEO).\r\n *\r\n * To identify specific `<meta>` tags in a document, use an attribute selection\r\n * string in the format `\"tag_attribute='value string'\"`.\r\n * For example, an `attrSelector` value of `\"name='description'\"` matches a tag\r\n * whose `name` attribute has the value `\"description\"`.\r\n * Selectors are used with the `querySelector()` Document method,\r\n * in the format `meta[{attrSelector}]`.\r\n *\r\n * @see [HTML meta tag](https://developer.mozilla.org/docs/Web/HTML/Element/meta)\r\n * @see [Document.querySelector()](https://developer.mozilla.org/docs/Web/API/Document/querySelector)\r\n *\r\n *\r\n * @publicApi\r\n */\r\nexport declare class Meta {\r\n    private _doc;\r\n    private _dom;\r\n    constructor(_doc: any);\r\n    /**\r\n     * Retrieves or creates a specific `<meta>` tag element in the current HTML document.\r\n     * In searching for an existing tag, Angular attempts to match the `name` or `property` attribute\r\n     * values in the provided tag definition, and verifies that all other attribute values are equal.\r\n     * If an existing element is found, it is returned and is not modified in any way.\r\n     * @param tag The definition of a `<meta>` element to match or create.\r\n     * @param forceCreation True to create a new element without checking whether one already exists.\r\n     * @returns The existing element with the same attributes and values if found,\r\n     * the new element if no match is found, or `null` if the tag parameter is not defined.\r\n     */\r\n    addTag(tag: MetaDefinition, forceCreation?: boolean): HTMLMetaElement | null;\r\n    /**\r\n     * Retrieves or creates a set of `<meta>` tag elements in the current HTML document.\r\n     * In searching for an existing tag, Angular attempts to match the `name` or `property` attribute\r\n     * values in the provided tag definition, and verifies that all other attribute values are equal.\r\n     * @param tags An array of tag definitions to match or create.\r\n     * @param forceCreation True to create new elements without checking whether they already exist.\r\n     * @returns The matching elements if found, or the new elements.\r\n     */\r\n    addTags(tags: MetaDefinition[], forceCreation?: boolean): HTMLMetaElement[];\r\n    /**\r\n     * Retrieves a `<meta>` tag element in the current HTML document.\r\n     * @param attrSelector The tag attribute and value to match against, in the format\r\n     * `\"tag_attribute='value string'\"`.\r\n     * @returns The matching element, if any.\r\n     */\r\n    getTag(attrSelector: string): HTMLMetaElement | null;\r\n    /**\r\n     * Retrieves a set of `<meta>` tag elements in the current HTML document.\r\n     * @param attrSelector The tag attribute and value to match against, in the format\r\n     * `\"tag_attribute='value string'\"`.\r\n     * @returns The matching elements, if any.\r\n     */\r\n    getTags(attrSelector: string): HTMLMetaElement[];\r\n    /**\r\n     * Modifies an existing `<meta>` tag element in the current HTML document.\r\n     * @param tag The tag description with which to replace the existing tag content.\r\n     * @param selector A tag attribute and value to match against, to identify\r\n     * an existing tag. A string in the format `\"tag_attribute=`value string`\"`.\r\n     * If not supplied, matches a tag with the same `name` or `property` attribute value as the\r\n     * replacement tag.\r\n     * @return The modified element.\r\n     */\r\n    updateTag(tag: MetaDefinition, selector?: string): HTMLMetaElement | null;\r\n    /**\r\n     * Removes an existing `<meta>` tag element from the current HTML document.\r\n     * @param attrSelector A tag attribute and value to match against, to identify\r\n     * an existing tag. A string in the format `\"tag_attribute=`value string`\"`.\r\n     */\r\n    removeTag(attrSelector: string): void;\r\n    /**\r\n     * Removes an existing `<meta>` tag element from the current HTML document.\r\n     * @param meta The tag definition to match against to identify an existing tag.\r\n     */\r\n    removeTagElement(meta: HTMLMetaElement): void;\r\n    private _getOrCreateElement;\r\n    private _setMetaElementAttributes;\r\n    private _parseSelector;\r\n    private _containsAttributes;\r\n    private _getMetaKeyMap;\r\n}\r\n\r\n\r\n/**\r\n * Represents the attributes of an HTML `<meta>` element. The element itself is\r\n * represented by the internal `HTMLMetaElement`.\r\n *\r\n * @see [HTML meta tag](https://developer.mozilla.org/docs/Web/HTML/Element/meta)\r\n * @see `Meta`\r\n *\r\n * @publicApi\r\n */\r\nexport declare type MetaDefinition = {\r\n    charset?: string;\r\n    content?: string;\r\n    httpEquiv?: string;\r\n    id?: string;\r\n    itemprop?: string;\r\n    name?: string;\r\n    property?: string;\r\n    scheme?: string;\r\n    url?: string;\r\n} & {\r\n    [prop: string]: string;\r\n};\r\n\r\n/**\r\n * A factory function that returns a `PlatformRef` instance associated with browser service\r\n * providers.\r\n *\r\n * @publicApi\r\n */\r\nexport declare const platformBrowser: (extraProviders?: StaticProvider[]) => PlatformRef;\r\n\r\n/**\r\n * Marker interface for a value that's safe to use as HTML.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SafeHtml extends SafeValue {\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use as a URL to load executable code from.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SafeResourceUrl extends SafeValue {\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use as JavaScript.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SafeScript extends SafeValue {\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use as style (CSS).\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SafeStyle extends SafeValue {\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use as a URL linking to a document.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SafeUrl extends SafeValue {\r\n}\r\n\r\n/**\r\n * Marker interface for a value that's safe to use in a particular context.\r\n *\r\n * @publicApi\r\n */\r\nexport declare interface SafeValue {\r\n}\r\n\r\n/**\r\n * A type-safe key to use with `TransferState`.\r\n *\r\n * Example:\r\n *\r\n * ```\r\n * const COUNTER_KEY = makeStateKey<number>('counter');\r\n * let value = 10;\r\n *\r\n * transferState.set(COUNTER_KEY, value);\r\n * ```\r\n *\r\n * @publicApi\r\n */\r\nexport declare type StateKey<T> = string & {\r\n    __not_a_string: never;\r\n};\r\n\r\n/**\r\n * A service that can be used to get and set the title of a current HTML document.\r\n *\r\n * Since an Angular application can't be bootstrapped on the entire HTML document (`<html>` tag)\r\n * it is not possible to bind to the `text` property of the `HTMLTitleElement` elements\r\n * (representing the `<title>` tag). Instead, this service can be used to set and get the current\r\n * title value.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class Title {\r\n    private _doc;\r\n    constructor(_doc: any);\r\n    /**\r\n     * Get the title of the current HTML document.\r\n     */\r\n    getTitle(): string;\r\n    /**\r\n     * Set the title of the current HTML document.\r\n     * @param newTitle\r\n     */\r\n    setTitle(newTitle: string): void;\r\n}\r\n\r\n/**\r\n * A key value store that is transferred from the application on the server side to the application\r\n * on the client side.\r\n *\r\n * `TransferState` will be available as an injectable token. To use it import\r\n * `ServerTransferStateModule` on the server and `BrowserTransferStateModule` on the client.\r\n *\r\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\r\n * boolean, number, string, null and non-class objects will be serialized and deserialized in a\r\n * non-lossy manner.\r\n *\r\n * @publicApi\r\n */\r\nexport declare class TransferState {\r\n    private store;\r\n    private onSerializeCallbacks;\r\n    /**\r\n     * Get the value corresponding to a key. Return `defaultValue` if key is not found.\r\n     */\r\n    get<T>(key: StateKey<T>, defaultValue: T): T;\r\n    /**\r\n     * Set the value corresponding to a key.\r\n     */\r\n    set<T>(key: StateKey<T>, value: T): void;\r\n    /**\r\n     * Remove a key from the store.\r\n     */\r\n    remove<T>(key: StateKey<T>): void;\r\n    /**\r\n     * Test whether a key exists in the store.\r\n     */\r\n    hasKey<T>(key: StateKey<T>): boolean;\r\n    /**\r\n     * Register a callback to provide the value for a key when `toJson` is called.\r\n     */\r\n    onSerialize<T>(key: StateKey<T>, callback: () => T): void;\r\n    /**\r\n     * Serialize the current state of the store to JSON.\r\n     */\r\n    toJson(): string;\r\n}\r\n\r\n/**\r\n * @publicApi\r\n */\r\nexport declare const VERSION: Version;\r\n\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_a(): ErrorHandler;\r\n\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_b(): any;\r\n\r\nexport declare const ɵangular_packages_platform_browser_platform_browser_c: StaticProvider[];\r\n\r\n/**\r\n * Factory to create a `Meta` service instance for the current DOM document.\r\n */\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_d(): Meta;\r\n\r\n\r\n/**\r\n * Factory to create Title service.\r\n */\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_e(): Title;\r\n\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_f(doc: Document, appId: string): TransferState;\r\n\r\nexport declare abstract class ɵangular_packages_platform_browser_platform_browser_g {\r\n    private _doc;\r\n    constructor(_doc: any);\r\n    manager: EventManager;\r\n    abstract supports(eventName: string): boolean;\r\n    abstract addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\r\n    addGlobalEventListener(element: string, eventName: string, handler: Function): Function;\r\n}\r\n\r\n/**\r\n * In View Engine, support for Hammer gestures is built-in by default.\r\n */\r\nexport declare const ɵangular_packages_platform_browser_platform_browser_h: Provider[];\r\n\r\nexport declare const ɵangular_packages_platform_browser_platform_browser_i: Provider[];\r\n\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_j(injector: Injector): ɵDomSanitizerImpl;\r\n\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_k(transitionId: string, document: any, injector: Injector): () => void;\r\n\r\nexport declare const ɵangular_packages_platform_browser_platform_browser_l: StaticProvider[];\r\n\r\nexport declare function ɵangular_packages_platform_browser_platform_browser_m(coreTokens: NgProbeToken[]): any;\r\n\r\n/**\r\n * Providers which support debugging Angular applications (e.g. via `ng.probe`).\r\n */\r\nexport declare const ɵangular_packages_platform_browser_platform_browser_n: Provider[];\r\n\r\n/**\r\n * A factory for `HttpXhrBackend` that uses the `XMLHttpRequest` browser API.\r\n */\r\nexport declare class ɵangular_packages_platform_browser_platform_browser_o implements XhrFactory {\r\n    build(): XMLHttpRequest;\r\n}\r\n\r\n/**\r\n * Provides DOM operations in any browser environment.\r\n *\r\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\r\n * can introduce XSS risks.\r\n */\r\nexport declare abstract class ɵangular_packages_platform_browser_platform_browser_p extends ɵDomAdapter {\r\n    readonly supportsDOMEvents: boolean;\r\n}\r\n\r\n/**\r\n * @security Replacing built-in sanitization providers exposes the application to XSS risks.\r\n * Attacker-controlled data introduced by an unsanitized provider could expose your\r\n * application to XSS risks. For more detail, see the [Security Guide](https://g.co/ng/security).\r\n * @publicApi\r\n */\r\nexport declare const ɵBROWSER_SANITIZATION_PROVIDERS: StaticProvider[];\r\n\r\nexport declare const ɵBROWSER_SANITIZATION_PROVIDERS__POST_R3__: never[];\r\n\r\n/**\r\n * A `DomAdapter` powered by full browser DOM APIs.\r\n *\r\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\r\n * can introduce XSS risks.\r\n */\r\nexport declare class ɵBrowserDomAdapter extends ɵangular_packages_platform_browser_platform_browser_p {\r\n    static makeCurrent(): void;\r\n    onAndCancel(el: Node, evt: any, listener: any): Function;\r\n    dispatchEvent(el: Node, evt: any): void;\r\n    remove(node: Node): void;\r\n    createElement(tagName: string, doc?: Document): HTMLElement;\r\n    createHtmlDocument(): HTMLDocument;\r\n    getDefaultDocument(): Document;\r\n    isElementNode(node: Node): boolean;\r\n    isShadowRoot(node: any): boolean;\r\n    /** @deprecated No longer being used in Ivy code. To be removed in version 14. */\r\n    getGlobalEventTarget(doc: Document, target: string): EventTarget | null;\r\n    getBaseHref(doc: Document): string | null;\r\n    resetBaseElement(): void;\r\n    getUserAgent(): string;\r\n    getCookie(name: string): string | null;\r\n}\r\n\r\nexport declare class ɵBrowserGetTestability implements GetTestability {\r\n    static init(): void;\r\n    addToWindow(registry: TestabilityRegistry): void;\r\n    findTestabilityInTree(registry: TestabilityRegistry, elem: any, findInAncestors: boolean): Testability | null;\r\n}\r\n\r\nexport declare class ɵDomEventsPlugin extends ɵangular_packages_platform_browser_platform_browser_g {\r\n    constructor(doc: any);\r\n    supports(eventName: string): boolean;\r\n    addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\r\n    removeEventListener(target: any, eventName: string, callback: Function): void;\r\n}\r\n\r\nexport declare class ɵDomRendererFactory2 implements RendererFactory2 {\r\n    private eventManager;\r\n    private sharedStylesHost;\r\n    private appId;\r\n    private rendererByCompId;\r\n    private defaultRenderer;\r\n    constructor(eventManager: EventManager, sharedStylesHost: ɵDomSharedStylesHost, appId: string);\r\n    createRenderer(element: any, type: RendererType2 | null): Renderer2;\r\n    begin(): void;\r\n    end(): void;\r\n}\r\n\r\nexport declare class ɵDomSanitizerImpl extends DomSanitizer {\r\n    private _doc;\r\n    constructor(_doc: any);\r\n    sanitize(ctx: SecurityContext, value: SafeValue | string | null): string | null;\r\n    bypassSecurityTrustHtml(value: string): SafeHtml;\r\n    bypassSecurityTrustStyle(value: string): SafeStyle;\r\n    bypassSecurityTrustScript(value: string): SafeScript;\r\n    bypassSecurityTrustUrl(value: string): SafeUrl;\r\n    bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl;\r\n}\r\n\r\nexport declare class ɵDomSharedStylesHost extends ɵSharedStylesHost implements OnDestroy {\r\n    private _doc;\r\n    private _hostNodes;\r\n    constructor(_doc: any);\r\n    private _addStylesToHost;\r\n    addHost(hostNode: Node): void;\r\n    removeHost(hostNode: Node): void;\r\n    onStylesAdded(additions: Set<string>): void;\r\n    ngOnDestroy(): void;\r\n}\r\n\r\nexport declare const ɵELEMENT_PROBE_PROVIDERS: Provider[];\r\n\r\n/**\r\n * In Ivy, we don't support NgProbe because we have our own set of testing utilities\r\n * with more robust functionality.\r\n *\r\n * We shouldn't bring in NgProbe because it prevents DebugNode and friends from\r\n * tree-shaking properly.\r\n */\r\nexport declare const ɵELEMENT_PROBE_PROVIDERS__POST_R3__: never[];\r\n\r\n\r\nexport declare function ɵescapeHtml(text: string): string;\r\n\r\nexport declare function ɵflattenStyles(compId: string, styles: Array<any | any[]>, target: string[]): string[];\r\n\r\nexport { ɵgetDOM }\r\n\r\n/**\r\n * In Ivy, support for Hammer gestures is optional, so applications must\r\n * import the `HammerModule` at root to turn on support. This means that\r\n * Hammer-specific code can be tree-shaken away if not needed.\r\n */\r\nexport declare const ɵHAMMER_PROVIDERS__POST_R3__: never[];\r\n\r\n/**\r\n * Event plugin that adds Hammer support to an application.\r\n *\r\n * @ngModule HammerModule\r\n */\r\nexport declare class ɵHammerGesturesPlugin extends ɵangular_packages_platform_browser_platform_browser_g {\r\n    private _config;\r\n    private console;\r\n    private loader?;\r\n    private _loaderPromise;\r\n    constructor(doc: any, _config: HammerGestureConfig, console: ɵConsole, loader?: HammerLoader | null | undefined);\r\n    supports(eventName: string): boolean;\r\n    addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\r\n    isCustomEvent(eventName: string): boolean;\r\n}\r\n\r\nexport declare function ɵinitDomAdapter(): void;\r\n\r\nexport declare const ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS: StaticProvider[];\r\n\r\n/**\r\n * @publicApi\r\n * A browser plug-in that provides support for handling of key events in Angular.\r\n */\r\nexport declare class ɵKeyEventsPlugin extends ɵangular_packages_platform_browser_platform_browser_g {\r\n    /**\r\n     * Initializes an instance of the browser plug-in.\r\n     * @param doc The document in which key events will be detected.\r\n     */\r\n    constructor(doc: any);\r\n    /**\r\n     * Reports whether a named key event is supported.\r\n     * @param eventName The event name to query.\r\n     * @return True if the named key event is supported.\r\n     */\r\n    supports(eventName: string): boolean;\r\n    /**\r\n     * Registers a handler for a specific element and key event.\r\n     * @param element The HTML element to receive event notifications.\r\n     * @param eventName The name of the key event to listen for.\r\n     * @param handler A function to call when the notification occurs. Receives the\r\n     * event object as an argument.\r\n     * @returns The key event that was registered.\r\n     */\r\n    addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\r\n    static parseEventName(eventName: string): {\r\n        fullKey: string;\r\n        domEventName: string;\r\n    } | null;\r\n    static getEventFullKey(event: KeyboardEvent): string;\r\n    /**\r\n     * Configures a handler callback for a key event.\r\n     * @param fullKey The event name that combines all simultaneous keystrokes.\r\n     * @param handler The function that responds to the key event.\r\n     * @param zone The zone in which the event occurred.\r\n     * @returns A callback function.\r\n     */\r\n    static eventCallback(fullKey: any, handler: Function, zone: NgZone): Function;\r\n}\r\n\r\nexport declare const ɵNAMESPACE_URIS: {\r\n    [ns: string]: string;\r\n};\r\n\r\nexport declare class ɵSharedStylesHost {\r\n    addStyles(styles: string[]): void;\r\n    onStylesAdded(additions: Set<string>): void;\r\n    getAllStyles(): string[];\r\n}\r\n\r\nexport declare function ɵshimContentAttribute(componentShortId: string): string;\r\n\r\nexport declare function ɵshimHostAttribute(componentShortId: string): string;\r\n\r\n/**\r\n * An id that identifies a particular application being bootstrapped, that should\r\n * match across the client/server boundary.\r\n */\r\nexport declare const ɵTRANSITION_ID: InjectionToken<unknown>;\r\n\r\nexport { }\r\n"]}
Index: trip-planner-front/node_modules/@angular/platform-browser/platform-browser.metadata.json
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/platform-browser.metadata.json	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/platform-browser.metadata.json	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,1 +1,1 @@
-{"__symbolic":"module","version":4,"exports":[{"export":[{"name":"ɵgetDOM","as":"ɵgetDOM"}],"from":"@angular/common"}],"metadata":{"ɵangular_packages_platform_browser_platform_browser_a":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"ErrorHandler","line":30,"character":13}}},"ɵangular_packages_platform_browser_platform_browser_b":{"__symbolic":"function"},"ɵangular_packages_platform_browser_platform_browser_c":[{"__symbolic":"reference","name":"ɵBROWSER_SANITIZATION_PROVIDERS"},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"ɵINJECTOR_SCOPE","line":71,"character":12},"useValue":"root"},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"ErrorHandler","line":72,"character":12},"useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_a"},"deps":[]},{"provide":{"__symbolic":"reference","name":"EVENT_MANAGER_PLUGINS"},"useClass":{"__symbolic":"reference","name":"ɵDomEventsPlugin"},"multi":true,"deps":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":77,"character":11},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":77,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":77,"character":29}]},{"provide":{"__symbolic":"reference","name":"EVENT_MANAGER_PLUGINS"},"useClass":{"__symbolic":"reference","name":"ɵKeyEventsPlugin"},"multi":true,"deps":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":79,"character":82}]},{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_i"},{"provide":{"__symbolic":"reference","name":"ɵDomRendererFactory2"},"useClass":{"__symbolic":"reference","name":"ɵDomRendererFactory2"},"deps":[{"__symbolic":"reference","name":"EventManager"},{"__symbolic":"reference","name":"ɵDomSharedStylesHost"},{"__symbolic":"reference","module":"@angular/core","name":"APP_ID","line":84,"character":46}]},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"RendererFactory2","line":86,"character":12},"useExisting":{"__symbolic":"reference","name":"ɵDomRendererFactory2"}},{"provide":{"__symbolic":"reference","name":"ɵSharedStylesHost"},"useExisting":{"__symbolic":"reference","name":"ɵDomSharedStylesHost"}},{"provide":{"__symbolic":"reference","name":"ɵDomSharedStylesHost"},"useClass":{"__symbolic":"reference","name":"ɵDomSharedStylesHost"},"deps":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":88,"character":71}]},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"Testability","line":89,"character":12},"useClass":{"__symbolic":"reference","module":"@angular/core","name":"Testability","line":89,"character":35},"deps":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":89,"character":55}]},{"provide":{"__symbolic":"reference","name":"EventManager"},"useClass":{"__symbolic":"reference","name":"EventManager"},"deps":[{"__symbolic":"reference","name":"EVENT_MANAGER_PLUGINS"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":90,"character":80}]},{"provide":{"__symbolic":"reference","module":"@angular/common","name":"XhrFactory","line":91,"character":12},"useClass":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_o"},"deps":[]},{"__symbolic":"reference","name":"ɵELEMENT_PROBE_PROVIDERS"}],"ɵangular_packages_platform_browser_platform_browser_d":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Meta"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ɵɵinject","line":39,"character":18},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":39,"character":27}]}]}},"ɵangular_packages_platform_browser_platform_browser_e":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Title"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ɵɵinject","line":16,"character":19},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":16,"character":28}]}]}},"ɵangular_packages_platform_browser_platform_browser_f":{"__symbolic":"function"},"ɵangular_packages_platform_browser_platform_browser_g":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"supports":[{"__symbolic":"method"}],"addEventListener":[{"__symbolic":"method"}],"addGlobalEventListener":[{"__symbolic":"method"}]}},"ɵangular_packages_platform_browser_platform_browser_h":[{"provide":{"__symbolic":"reference","name":"EVENT_MANAGER_PLUGINS"},"useClass":{"__symbolic":"reference","name":"ɵHammerGesturesPlugin"},"multi":true,"deps":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":280,"character":11},{"__symbolic":"reference","name":"HAMMER_GESTURE_CONFIG"},{"__symbolic":"reference","module":"@angular/core","name":"ɵConsole","line":168,"character":92},[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":280,"character":58}},{"__symbolic":"reference","name":"HAMMER_LOADER"}]]},{"provide":{"__symbolic":"reference","name":"HAMMER_GESTURE_CONFIG"},"useClass":{"__symbolic":"reference","name":"HammerGestureConfig"},"deps":[]}],"ɵangular_packages_platform_browser_platform_browser_i":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_h"},"ɵangular_packages_platform_browser_platform_browser_j":{"__symbolic":"function","parameters":["injector"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ɵDomSanitizerImpl"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"injector"},"member":"get"},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":146,"character":43}]}]}},"ɵangular_packages_platform_browser_platform_browser_k":{"__symbolic":"function","parameters":["transitionId","document","injector"],"value":{"__symbolic":"error","message":"Lambda not supported","line":18,"character":9,"module":"./platform-browser"}},"ɵangular_packages_platform_browser_platform_browser_l":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":34,"character":13},"useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_k"},"deps":[{"__symbolic":"reference","name":"ɵTRANSITION_ID"},{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":36,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":36,"character":36}],"multi":true}],"ɵangular_packages_platform_browser_platform_browser_m":{"__symbolic":"function"},"ɵangular_packages_platform_browser_platform_browser_n":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":53,"character":13},"useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_m"},"deps":[[{"__symbolic":"reference","module":"@angular/core","name":"NgProbeToken","line":56,"character":7},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":56,"character":25}}]],"multi":true}],"BrowserModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":104,"character":1},"arguments":[{"providers":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_c"},"exports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":104,"character":58},{"__symbolic":"reference","module":"@angular/core","name":"ApplicationModule","line":104,"character":72}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":106,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":106,"character":27}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":106,"character":39},"arguments":[{"__symbolic":"reference","name":"BrowserModule"}]}]],"parameters":[{"__symbolic":"reference","name":"BrowserModule"}]}]},"statics":{"withServerTransition":{"__symbolic":"function","parameters":["params"],"value":{"ngModule":{"__symbolic":"reference","name":"BrowserModule"},"providers":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_ID","line":125,"character":18},"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"params"},"member":"appId"}},{"provide":{"__symbolic":"reference","name":"ɵTRANSITION_ID"},"useExisting":{"__symbolic":"reference","module":"@angular/core","name":"APP_ID","line":126,"character":46}},{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_l"}]}}}},"platformBrowser":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"createPlatformFactory","line":67,"character":4},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"platformCore","line":67,"character":26},"browser",{"__symbolic":"reference","name":"ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS"}]},"Meta":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":64,"character":1},"arguments":[{"providedIn":"root","useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_d"},"deps":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":67,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":67,"character":22}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"addTag":[{"__symbolic":"method"}],"addTags":[{"__symbolic":"method"}],"getTag":[{"__symbolic":"method"}],"getTags":[{"__symbolic":"method"}],"updateTag":[{"__symbolic":"method"}],"removeTag":[{"__symbolic":"method"}],"removeTagElement":[{"__symbolic":"method"}],"_getOrCreateElement":[{"__symbolic":"method"}],"_setMetaElementAttributes":[{"__symbolic":"method"}],"_parseSelector":[{"__symbolic":"method"}],"_containsAttributes":[{"__symbolic":"method"}],"_getMetaKeyMap":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"MetaDefinition":{"__symbolic":"interface"},"Title":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":29,"character":1},"arguments":[{"providedIn":"root","useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_e"},"deps":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":31,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":31,"character":22}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"getTitle":[{"__symbolic":"method"}],"setTitle":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"disableDebugTools":{"__symbolic":"function"},"enableDebugTools":{"__symbolic":"function"},"BrowserTransferStateModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":167,"character":1},"arguments":[{"providers":[{"provide":{"__symbolic":"reference","name":"TransferState"},"useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_f"},"deps":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":168,"character":77},{"__symbolic":"reference","module":"@angular/core","name":"APP_ID","line":168,"character":87}]}]}]}],"members":{}},"makeStateKey":{"__symbolic":"function","parameters":["key"],"value":{"__symbolic":"reference","name":"key"}},"StateKey":{"__symbolic":"interface"},"TransferState":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":80,"character":1}}],"members":{"get":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"hasKey":[{"__symbolic":"method"}],"onSerialize":[{"__symbolic":"method"}],"toJson":[{"__symbolic":"method"}]}},"By":{"__symbolic":"class","members":{},"statics":{"all":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Lambda not supported","line":28,"character":11,"module":"./platform-browser"}},"css":{"__symbolic":"function","parameters":["selector"],"value":{"__symbolic":"error","message":"Lambda not supported","line":40,"character":11,"module":"./platform-browser"}},"directive":{"__symbolic":"function","parameters":["type"],"value":{"__symbolic":"error","message":"Lambda not supported","line":56,"character":11,"module":"./platform-browser"}}}},"EVENT_MANAGER_PLUGINS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":17,"character":8},"arguments":["EventManagerPlugins"]},"EventManager":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":25,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":33,"character":15},"arguments":[{"__symbolic":"reference","name":"EVENT_MANAGER_PLUGINS"}]}],null],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_g"}]},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":33,"character":91}]}],"addEventListener":[{"__symbolic":"method"}],"addGlobalEventListener":[{"__symbolic":"method"}],"getZone":[{"__symbolic":"method"}],"_findPluginFor":[{"__symbolic":"method"}]}},"HAMMER_GESTURE_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":64,"character":41},"arguments":["HammerGestureConfig"]},"HAMMER_LOADER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":79,"character":33},"arguments":["HammerLoader"]},"ɵHAMMER_PROVIDERS__POST_R3__":[],"HammerGestureConfig":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":92,"character":1}}],"members":{"buildHammer":[{"__symbolic":"method"}]}},"HammerLoader":{"__symbolic":"interface"},"HammerModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":298,"character":1},"arguments":[{"providers":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_h"}}]}],"members":{}},"DomSanitizer":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":88,"character":1},"arguments":[{"providedIn":"root","useExisting":{"__symbolic":"reference","name":"ɵDomSanitizerImpl"}}]}],"members":{"sanitize":[{"__symbolic":"method"}],"bypassSecurityTrustHtml":[{"__symbolic":"method"}],"bypassSecurityTrustStyle":[{"__symbolic":"method"}],"bypassSecurityTrustScript":[{"__symbolic":"method"}],"bypassSecurityTrustUrl":[{"__symbolic":"method"}],"bypassSecurityTrustResourceUrl":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"SafeHtml":{"__symbolic":"interface"},"SafeResourceUrl":{"__symbolic":"interface"},"SafeScript":{"__symbolic":"interface"},"SafeStyle":{"__symbolic":"interface"},"SafeUrl":{"__symbolic":"interface"},"SafeValue":{"__symbolic":"interface"},"ɵBROWSER_SANITIZATION_PROVIDERS":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"Sanitizer","line":46,"character":12},"useExisting":{"__symbolic":"reference","name":"DomSanitizer"}},{"provide":{"__symbolic":"reference","name":"DomSanitizer"},"useClass":{"__symbolic":"reference","name":"ɵDomSanitizerImpl"},"deps":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":47,"character":61}]}],"ɵBROWSER_SANITIZATION_PROVIDERS__POST_R3__":[],"ɵinitDomAdapter":{"__symbolic":"function"},"ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":40,"character":12},"useValue":{"__symbolic":"reference","module":"@angular/common","name":"ɵPLATFORM_BROWSER_ID","line":40,"character":35}},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_INITIALIZER","line":41,"character":12},"useValue":{"__symbolic":"reference","name":"ɵinitDomAdapter"},"multi":true},{"provide":{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":42,"character":12},"useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_b"},"deps":[]}],"ɵBrowserDomAdapter":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_p"},"members":{"onAndCancel":[{"__symbolic":"method"}],"dispatchEvent":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"createElement":[{"__symbolic":"method"}],"createHtmlDocument":[{"__symbolic":"method"}],"getDefaultDocument":[{"__symbolic":"method"}],"isElementNode":[{"__symbolic":"method"}],"isShadowRoot":[{"__symbolic":"method"}],"getGlobalEventTarget":[{"__symbolic":"method"}],"getBaseHref":[{"__symbolic":"method"}],"resetBaseElement":[{"__symbolic":"method"}],"getUserAgent":[{"__symbolic":"method"}],"getCookie":[{"__symbolic":"method"}]}},"ɵTRANSITION_ID":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":15,"character":33},"arguments":["TRANSITION_ID"]},"ɵBrowserGetTestability":{"__symbolic":"class","members":{"addToWindow":[{"__symbolic":"method"}],"findTestabilityInTree":[{"__symbolic":"method"}]}},"ɵescapeHtml":{"__symbolic":"function"},"ɵELEMENT_PROBE_PROVIDERS":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_n"},"ɵDomRendererFactory2":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":78,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":85,"character":7},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"APP_ID","line":85,"character":14}]}]],"parameters":[{"__symbolic":"reference","name":"EventManager"},{"__symbolic":"reference","name":"ɵDomSharedStylesHost"},{"__symbolic":"reference","name":"string"}]}],"createRenderer":[{"__symbolic":"method"}],"begin":[{"__symbolic":"method"}],"end":[{"__symbolic":"method"}]}},"ɵflattenStyles":{"__symbolic":"function"},"ɵNAMESPACE_URIS":{"svg":"http://www.w3.org/2000/svg","xhtml":"http://www.w3.org/1999/xhtml","xlink":"http://www.w3.org/1999/xlink","xml":"http://www.w3.org/XML/1998/namespace","xmlns":"http://www.w3.org/2000/xmlns/","$quoted$":["svg","xhtml","xlink","xml","xmlns"]},"ɵshimContentAttribute":{"__symbolic":"function","parameters":["componentShortId"],"value":{"__symbolic":"call","expression":{},"arguments":[{"__symbolic":"error","message":"Reference to a local symbol","line":21,"character":6,"context":{"name":"COMPONENT_REGEX"},"module":"./platform-browser"},{"__symbolic":"reference","name":"componentShortId"}]}},"ɵshimHostAttribute":{"__symbolic":"function","parameters":["componentShortId"],"value":{"__symbolic":"call","expression":{},"arguments":[{"__symbolic":"error","message":"Reference to a local symbol","line":21,"character":6,"context":{"name":"COMPONENT_REGEX"},"module":"./platform-browser"},{"__symbolic":"reference","name":"componentShortId"}]}},"ɵDomEventsPlugin":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_g"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":13,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":15,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":15,"character":22}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"supports":[{"__symbolic":"method"}],"addEventListener":[{"__symbolic":"method"}],"removeEventListener":[{"__symbolic":"method"}]}},"ɵHammerGesturesPlugin":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_g"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":162,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":167,"character":7},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":167,"character":14}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":168,"character":7},"arguments":[{"__symbolic":"reference","name":"HAMMER_GESTURE_CONFIG"}]}],null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":169,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":169,"character":19},"arguments":[{"__symbolic":"reference","name":"HAMMER_LOADER"}]}]],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"HammerGestureConfig"},{"__symbolic":"reference","module":"@angular/core","name":"ɵConsole","line":168,"character":92},{"__symbolic":"error","message":"Could not resolve type","line":169,"character":58,"context":{"typeName":"HammerLoader"},"module":"./platform-browser"}]}],"supports":[{"__symbolic":"method"}],"addEventListener":[{"__symbolic":"method"}],"isCustomEvent":[{"__symbolic":"method"}]}},"ɵKeyEventsPlugin":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_g"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":75,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":81,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":81,"character":22}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"supports":[{"__symbolic":"method"}],"addEventListener":[{"__symbolic":"method"}]},"statics":{"eventCallback":{"__symbolic":"function","parameters":["fullKey","handler","zone"],"value":{"__symbolic":"error","message":"Lambda not supported","line":176,"character":11,"module":"./platform-browser"}}}},"ɵDomSharedStylesHost":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵSharedStylesHost"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":34,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":39,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":39,"character":22}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"_addStylesToHost":[{"__symbolic":"method"}],"addHost":[{"__symbolic":"method"}],"removeHost":[{"__symbolic":"method"}],"onStylesAdded":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵSharedStylesHost":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1}}],"members":{"addStyles":[{"__symbolic":"method"}],"onStylesAdded":[{"__symbolic":"method"}],"getAllStyles":[{"__symbolic":"method"}]}},"ɵDomSanitizerImpl":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"DomSanitizer"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":149,"character":1},"arguments":[{"providedIn":"root","useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_j"},"deps":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":149,"character":77}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":151,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":151,"character":22}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"sanitize":[{"__symbolic":"method"}],"bypassSecurityTrustHtml":[{"__symbolic":"method"}],"bypassSecurityTrustStyle":[{"__symbolic":"method"}],"bypassSecurityTrustScript":[{"__symbolic":"method"}],"bypassSecurityTrustUrl":[{"__symbolic":"method"}],"bypassSecurityTrustResourceUrl":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"VERSION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Version","line":19,"character":27},"arguments":["12.2.13"]},"ɵELEMENT_PROBE_PROVIDERS__POST_R3__":[],"ɵangular_packages_platform_browser_platform_browser_o":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":14,"character":1}}],"members":{"build":[{"__symbolic":"method"}]}},"ɵangular_packages_platform_browser_platform_browser_p":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/common","name":"ɵDomAdapter","line":18,"character":55},"members":{}}},"origins":{"ɵangular_packages_platform_browser_platform_browser_a":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_b":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_c":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_d":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_e":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_f":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_g":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_h":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_i":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_j":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_k":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_l":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_m":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_n":"./platform-browser","BrowserModule":"./platform-browser","platformBrowser":"./platform-browser","Meta":"./platform-browser","MetaDefinition":"./platform-browser","Title":"./platform-browser","disableDebugTools":"./platform-browser","enableDebugTools":"./platform-browser","BrowserTransferStateModule":"./platform-browser","makeStateKey":"./platform-browser","StateKey":"./platform-browser","TransferState":"./platform-browser","By":"./platform-browser","EVENT_MANAGER_PLUGINS":"./platform-browser","EventManager":"./platform-browser","HAMMER_GESTURE_CONFIG":"./platform-browser","HAMMER_LOADER":"./platform-browser","ɵHAMMER_PROVIDERS__POST_R3__":"./platform-browser","HammerGestureConfig":"./platform-browser","HammerLoader":"./platform-browser","HammerModule":"./platform-browser","DomSanitizer":"./platform-browser","SafeHtml":"./platform-browser","SafeResourceUrl":"./platform-browser","SafeScript":"./platform-browser","SafeStyle":"./platform-browser","SafeUrl":"./platform-browser","SafeValue":"./platform-browser","ɵBROWSER_SANITIZATION_PROVIDERS":"./platform-browser","ɵBROWSER_SANITIZATION_PROVIDERS__POST_R3__":"./platform-browser","ɵinitDomAdapter":"./platform-browser","ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS":"./platform-browser","ɵBrowserDomAdapter":"./platform-browser","ɵTRANSITION_ID":"./platform-browser","ɵBrowserGetTestability":"./platform-browser","ɵescapeHtml":"./platform-browser","ɵELEMENT_PROBE_PROVIDERS":"./platform-browser","ɵDomRendererFactory2":"./platform-browser","ɵflattenStyles":"./platform-browser","ɵNAMESPACE_URIS":"./platform-browser","ɵshimContentAttribute":"./platform-browser","ɵshimHostAttribute":"./platform-browser","ɵDomEventsPlugin":"./platform-browser","ɵHammerGesturesPlugin":"./platform-browser","ɵKeyEventsPlugin":"./platform-browser","ɵDomSharedStylesHost":"./platform-browser","ɵSharedStylesHost":"./platform-browser","ɵDomSanitizerImpl":"./platform-browser","VERSION":"./platform-browser","ɵELEMENT_PROBE_PROVIDERS__POST_R3__":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_o":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_p":"./platform-browser"},"importAs":"@angular/platform-browser"}
+{"__symbolic":"module","version":4,"exports":[{"export":[{"name":"ɵgetDOM","as":"ɵgetDOM"}],"from":"@angular/common"}],"metadata":{"ɵangular_packages_platform_browser_platform_browser_a":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"ErrorHandler","line":30,"character":13}}},"ɵangular_packages_platform_browser_platform_browser_b":{"__symbolic":"function"},"ɵangular_packages_platform_browser_platform_browser_c":[{"__symbolic":"reference","name":"ɵBROWSER_SANITIZATION_PROVIDERS"},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"ɵINJECTOR_SCOPE","line":71,"character":12},"useValue":"root"},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"ErrorHandler","line":72,"character":12},"useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_a"},"deps":[]},{"provide":{"__symbolic":"reference","name":"EVENT_MANAGER_PLUGINS"},"useClass":{"__symbolic":"reference","name":"ɵDomEventsPlugin"},"multi":true,"deps":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":77,"character":11},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":77,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":77,"character":29}]},{"provide":{"__symbolic":"reference","name":"EVENT_MANAGER_PLUGINS"},"useClass":{"__symbolic":"reference","name":"ɵKeyEventsPlugin"},"multi":true,"deps":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":79,"character":82}]},{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_i"},{"provide":{"__symbolic":"reference","name":"ɵDomRendererFactory2"},"useClass":{"__symbolic":"reference","name":"ɵDomRendererFactory2"},"deps":[{"__symbolic":"reference","name":"EventManager"},{"__symbolic":"reference","name":"ɵDomSharedStylesHost"},{"__symbolic":"reference","module":"@angular/core","name":"APP_ID","line":84,"character":46}]},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"RendererFactory2","line":86,"character":12},"useExisting":{"__symbolic":"reference","name":"ɵDomRendererFactory2"}},{"provide":{"__symbolic":"reference","name":"ɵSharedStylesHost"},"useExisting":{"__symbolic":"reference","name":"ɵDomSharedStylesHost"}},{"provide":{"__symbolic":"reference","name":"ɵDomSharedStylesHost"},"useClass":{"__symbolic":"reference","name":"ɵDomSharedStylesHost"},"deps":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":88,"character":71}]},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"Testability","line":89,"character":12},"useClass":{"__symbolic":"reference","module":"@angular/core","name":"Testability","line":89,"character":35},"deps":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":89,"character":55}]},{"provide":{"__symbolic":"reference","name":"EventManager"},"useClass":{"__symbolic":"reference","name":"EventManager"},"deps":[{"__symbolic":"reference","name":"EVENT_MANAGER_PLUGINS"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":90,"character":80}]},{"provide":{"__symbolic":"reference","module":"@angular/common","name":"XhrFactory","line":91,"character":12},"useClass":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_o"},"deps":[]},{"__symbolic":"reference","name":"ɵELEMENT_PROBE_PROVIDERS"}],"ɵangular_packages_platform_browser_platform_browser_d":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Meta"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ɵɵinject","line":39,"character":18},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":39,"character":27}]}]}},"ɵangular_packages_platform_browser_platform_browser_e":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Title"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ɵɵinject","line":16,"character":19},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":16,"character":28}]}]}},"ɵangular_packages_platform_browser_platform_browser_f":{"__symbolic":"function"},"ɵangular_packages_platform_browser_platform_browser_g":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"supports":[{"__symbolic":"method"}],"addEventListener":[{"__symbolic":"method"}],"addGlobalEventListener":[{"__symbolic":"method"}]}},"ɵangular_packages_platform_browser_platform_browser_h":[{"provide":{"__symbolic":"reference","name":"EVENT_MANAGER_PLUGINS"},"useClass":{"__symbolic":"reference","name":"ɵHammerGesturesPlugin"},"multi":true,"deps":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":280,"character":11},{"__symbolic":"reference","name":"HAMMER_GESTURE_CONFIG"},{"__symbolic":"reference","module":"@angular/core","name":"ɵConsole","line":168,"character":92},[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":280,"character":58}},{"__symbolic":"reference","name":"HAMMER_LOADER"}]]},{"provide":{"__symbolic":"reference","name":"HAMMER_GESTURE_CONFIG"},"useClass":{"__symbolic":"reference","name":"HammerGestureConfig"},"deps":[]}],"ɵangular_packages_platform_browser_platform_browser_i":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_h"},"ɵangular_packages_platform_browser_platform_browser_j":{"__symbolic":"function","parameters":["injector"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ɵDomSanitizerImpl"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"injector"},"member":"get"},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":146,"character":43}]}]}},"ɵangular_packages_platform_browser_platform_browser_k":{"__symbolic":"function","parameters":["transitionId","document","injector"],"value":{"__symbolic":"error","message":"Lambda not supported","line":18,"character":9,"module":"./platform-browser"}},"ɵangular_packages_platform_browser_platform_browser_l":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":34,"character":13},"useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_k"},"deps":[{"__symbolic":"reference","name":"ɵTRANSITION_ID"},{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":36,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":36,"character":36}],"multi":true}],"ɵangular_packages_platform_browser_platform_browser_m":{"__symbolic":"function"},"ɵangular_packages_platform_browser_platform_browser_n":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":53,"character":13},"useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_m"},"deps":[[{"__symbolic":"reference","module":"@angular/core","name":"NgProbeToken","line":56,"character":7},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":56,"character":25}}]],"multi":true}],"BrowserModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":104,"character":1},"arguments":[{"providers":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_c"},"exports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":104,"character":58},{"__symbolic":"reference","module":"@angular/core","name":"ApplicationModule","line":104,"character":72}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":106,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":106,"character":27}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":106,"character":39},"arguments":[{"__symbolic":"reference","name":"BrowserModule"}]}]],"parameters":[{"__symbolic":"reference","name":"BrowserModule"}]}]},"statics":{"withServerTransition":{"__symbolic":"function","parameters":["params"],"value":{"ngModule":{"__symbolic":"reference","name":"BrowserModule"},"providers":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_ID","line":125,"character":18},"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"params"},"member":"appId"}},{"provide":{"__symbolic":"reference","name":"ɵTRANSITION_ID"},"useExisting":{"__symbolic":"reference","module":"@angular/core","name":"APP_ID","line":126,"character":46}},{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_l"}]}}}},"platformBrowser":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"createPlatformFactory","line":67,"character":4},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"platformCore","line":67,"character":26},"browser",{"__symbolic":"reference","name":"ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS"}]},"Meta":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":64,"character":1},"arguments":[{"providedIn":"root","useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_d"},"deps":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":67,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":67,"character":22}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"addTag":[{"__symbolic":"method"}],"addTags":[{"__symbolic":"method"}],"getTag":[{"__symbolic":"method"}],"getTags":[{"__symbolic":"method"}],"updateTag":[{"__symbolic":"method"}],"removeTag":[{"__symbolic":"method"}],"removeTagElement":[{"__symbolic":"method"}],"_getOrCreateElement":[{"__symbolic":"method"}],"_setMetaElementAttributes":[{"__symbolic":"method"}],"_parseSelector":[{"__symbolic":"method"}],"_containsAttributes":[{"__symbolic":"method"}],"_getMetaKeyMap":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"MetaDefinition":{"__symbolic":"interface"},"Title":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":29,"character":1},"arguments":[{"providedIn":"root","useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_e"},"deps":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":31,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":31,"character":22}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"getTitle":[{"__symbolic":"method"}],"setTitle":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"disableDebugTools":{"__symbolic":"function"},"enableDebugTools":{"__symbolic":"function"},"BrowserTransferStateModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":167,"character":1},"arguments":[{"providers":[{"provide":{"__symbolic":"reference","name":"TransferState"},"useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_f"},"deps":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":168,"character":77},{"__symbolic":"reference","module":"@angular/core","name":"APP_ID","line":168,"character":87}]}]}]}],"members":{}},"makeStateKey":{"__symbolic":"function","parameters":["key"],"value":{"__symbolic":"reference","name":"key"}},"StateKey":{"__symbolic":"interface"},"TransferState":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":80,"character":1}}],"members":{"get":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"hasKey":[{"__symbolic":"method"}],"onSerialize":[{"__symbolic":"method"}],"toJson":[{"__symbolic":"method"}]}},"By":{"__symbolic":"class","members":{},"statics":{"all":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Lambda not supported","line":28,"character":11,"module":"./platform-browser"}},"css":{"__symbolic":"function","parameters":["selector"],"value":{"__symbolic":"error","message":"Lambda not supported","line":40,"character":11,"module":"./platform-browser"}},"directive":{"__symbolic":"function","parameters":["type"],"value":{"__symbolic":"error","message":"Lambda not supported","line":56,"character":11,"module":"./platform-browser"}}}},"EVENT_MANAGER_PLUGINS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":17,"character":8},"arguments":["EventManagerPlugins"]},"EventManager":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":25,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":33,"character":15},"arguments":[{"__symbolic":"reference","name":"EVENT_MANAGER_PLUGINS"}]}],null],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_g"}]},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":33,"character":91}]}],"addEventListener":[{"__symbolic":"method"}],"addGlobalEventListener":[{"__symbolic":"method"}],"getZone":[{"__symbolic":"method"}],"_findPluginFor":[{"__symbolic":"method"}]}},"HAMMER_GESTURE_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":64,"character":41},"arguments":["HammerGestureConfig"]},"HAMMER_LOADER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":79,"character":33},"arguments":["HammerLoader"]},"ɵHAMMER_PROVIDERS__POST_R3__":[],"HammerGestureConfig":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":92,"character":1}}],"members":{"buildHammer":[{"__symbolic":"method"}]}},"HammerLoader":{"__symbolic":"interface"},"HammerModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":298,"character":1},"arguments":[{"providers":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_h"}}]}],"members":{}},"DomSanitizer":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":88,"character":1},"arguments":[{"providedIn":"root","useExisting":{"__symbolic":"reference","name":"ɵDomSanitizerImpl"}}]}],"members":{"sanitize":[{"__symbolic":"method"}],"bypassSecurityTrustHtml":[{"__symbolic":"method"}],"bypassSecurityTrustStyle":[{"__symbolic":"method"}],"bypassSecurityTrustScript":[{"__symbolic":"method"}],"bypassSecurityTrustUrl":[{"__symbolic":"method"}],"bypassSecurityTrustResourceUrl":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"SafeHtml":{"__symbolic":"interface"},"SafeResourceUrl":{"__symbolic":"interface"},"SafeScript":{"__symbolic":"interface"},"SafeStyle":{"__symbolic":"interface"},"SafeUrl":{"__symbolic":"interface"},"SafeValue":{"__symbolic":"interface"},"ɵBROWSER_SANITIZATION_PROVIDERS":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"Sanitizer","line":46,"character":12},"useExisting":{"__symbolic":"reference","name":"DomSanitizer"}},{"provide":{"__symbolic":"reference","name":"DomSanitizer"},"useClass":{"__symbolic":"reference","name":"ɵDomSanitizerImpl"},"deps":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":47,"character":61}]}],"ɵBROWSER_SANITIZATION_PROVIDERS__POST_R3__":[],"ɵinitDomAdapter":{"__symbolic":"function"},"ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":40,"character":12},"useValue":{"__symbolic":"reference","module":"@angular/common","name":"ɵPLATFORM_BROWSER_ID","line":40,"character":35}},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_INITIALIZER","line":41,"character":12},"useValue":{"__symbolic":"reference","name":"ɵinitDomAdapter"},"multi":true},{"provide":{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":42,"character":12},"useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_b"},"deps":[]}],"ɵBrowserDomAdapter":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_p"},"members":{"onAndCancel":[{"__symbolic":"method"}],"dispatchEvent":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"createElement":[{"__symbolic":"method"}],"createHtmlDocument":[{"__symbolic":"method"}],"getDefaultDocument":[{"__symbolic":"method"}],"isElementNode":[{"__symbolic":"method"}],"isShadowRoot":[{"__symbolic":"method"}],"getGlobalEventTarget":[{"__symbolic":"method"}],"getBaseHref":[{"__symbolic":"method"}],"resetBaseElement":[{"__symbolic":"method"}],"getUserAgent":[{"__symbolic":"method"}],"getCookie":[{"__symbolic":"method"}]}},"ɵTRANSITION_ID":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":15,"character":33},"arguments":["TRANSITION_ID"]},"ɵBrowserGetTestability":{"__symbolic":"class","members":{"addToWindow":[{"__symbolic":"method"}],"findTestabilityInTree":[{"__symbolic":"method"}]}},"ɵescapeHtml":{"__symbolic":"function"},"ɵELEMENT_PROBE_PROVIDERS":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_n"},"ɵDomRendererFactory2":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":78,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":85,"character":7},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"APP_ID","line":85,"character":14}]}]],"parameters":[{"__symbolic":"reference","name":"EventManager"},{"__symbolic":"reference","name":"ɵDomSharedStylesHost"},{"__symbolic":"reference","name":"string"}]}],"createRenderer":[{"__symbolic":"method"}],"begin":[{"__symbolic":"method"}],"end":[{"__symbolic":"method"}]}},"ɵflattenStyles":{"__symbolic":"function"},"ɵNAMESPACE_URIS":{"svg":"http://www.w3.org/2000/svg","xhtml":"http://www.w3.org/1999/xhtml","xlink":"http://www.w3.org/1999/xlink","xml":"http://www.w3.org/XML/1998/namespace","xmlns":"http://www.w3.org/2000/xmlns/","$quoted$":["svg","xhtml","xlink","xml","xmlns"]},"ɵshimContentAttribute":{"__symbolic":"function","parameters":["componentShortId"],"value":{"__symbolic":"call","expression":{},"arguments":[{"__symbolic":"error","message":"Reference to a local symbol","line":21,"character":6,"context":{"name":"COMPONENT_REGEX"},"module":"./platform-browser"},{"__symbolic":"reference","name":"componentShortId"}]}},"ɵshimHostAttribute":{"__symbolic":"function","parameters":["componentShortId"],"value":{"__symbolic":"call","expression":{},"arguments":[{"__symbolic":"error","message":"Reference to a local symbol","line":21,"character":6,"context":{"name":"COMPONENT_REGEX"},"module":"./platform-browser"},{"__symbolic":"reference","name":"componentShortId"}]}},"ɵDomEventsPlugin":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_g"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":13,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":15,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":15,"character":22}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"supports":[{"__symbolic":"method"}],"addEventListener":[{"__symbolic":"method"}],"removeEventListener":[{"__symbolic":"method"}]}},"ɵHammerGesturesPlugin":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_g"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":162,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":167,"character":7},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":167,"character":14}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":168,"character":7},"arguments":[{"__symbolic":"reference","name":"HAMMER_GESTURE_CONFIG"}]}],null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":169,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":169,"character":19},"arguments":[{"__symbolic":"reference","name":"HAMMER_LOADER"}]}]],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"HammerGestureConfig"},{"__symbolic":"reference","module":"@angular/core","name":"ɵConsole","line":168,"character":92},{"__symbolic":"error","message":"Could not resolve type","line":169,"character":58,"context":{"typeName":"HammerLoader"},"module":"./platform-browser"}]}],"supports":[{"__symbolic":"method"}],"addEventListener":[{"__symbolic":"method"}],"isCustomEvent":[{"__symbolic":"method"}]}},"ɵKeyEventsPlugin":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_g"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":75,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":81,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":81,"character":22}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"supports":[{"__symbolic":"method"}],"addEventListener":[{"__symbolic":"method"}]},"statics":{"eventCallback":{"__symbolic":"function","parameters":["fullKey","handler","zone"],"value":{"__symbolic":"error","message":"Lambda not supported","line":176,"character":11,"module":"./platform-browser"}}}},"ɵDomSharedStylesHost":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵSharedStylesHost"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":34,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":39,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":39,"character":22}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"_addStylesToHost":[{"__symbolic":"method"}],"addHost":[{"__symbolic":"method"}],"removeHost":[{"__symbolic":"method"}],"onStylesAdded":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵSharedStylesHost":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1}}],"members":{"addStyles":[{"__symbolic":"method"}],"onStylesAdded":[{"__symbolic":"method"}],"getAllStyles":[{"__symbolic":"method"}]}},"ɵDomSanitizerImpl":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"DomSanitizer"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":149,"character":1},"arguments":[{"providedIn":"root","useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_j"},"deps":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":149,"character":77}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":151,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":151,"character":22}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"sanitize":[{"__symbolic":"method"}],"bypassSecurityTrustHtml":[{"__symbolic":"method"}],"bypassSecurityTrustStyle":[{"__symbolic":"method"}],"bypassSecurityTrustScript":[{"__symbolic":"method"}],"bypassSecurityTrustUrl":[{"__symbolic":"method"}],"bypassSecurityTrustResourceUrl":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"VERSION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Version","line":19,"character":27},"arguments":["12.2.9"]},"ɵELEMENT_PROBE_PROVIDERS__POST_R3__":[],"ɵangular_packages_platform_browser_platform_browser_o":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":14,"character":1}}],"members":{"build":[{"__symbolic":"method"}]}},"ɵangular_packages_platform_browser_platform_browser_p":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/common","name":"ɵDomAdapter","line":18,"character":55},"members":{}}},"origins":{"ɵangular_packages_platform_browser_platform_browser_a":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_b":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_c":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_d":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_e":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_f":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_g":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_h":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_i":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_j":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_k":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_l":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_m":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_n":"./platform-browser","BrowserModule":"./platform-browser","platformBrowser":"./platform-browser","Meta":"./platform-browser","MetaDefinition":"./platform-browser","Title":"./platform-browser","disableDebugTools":"./platform-browser","enableDebugTools":"./platform-browser","BrowserTransferStateModule":"./platform-browser","makeStateKey":"./platform-browser","StateKey":"./platform-browser","TransferState":"./platform-browser","By":"./platform-browser","EVENT_MANAGER_PLUGINS":"./platform-browser","EventManager":"./platform-browser","HAMMER_GESTURE_CONFIG":"./platform-browser","HAMMER_LOADER":"./platform-browser","ɵHAMMER_PROVIDERS__POST_R3__":"./platform-browser","HammerGestureConfig":"./platform-browser","HammerLoader":"./platform-browser","HammerModule":"./platform-browser","DomSanitizer":"./platform-browser","SafeHtml":"./platform-browser","SafeResourceUrl":"./platform-browser","SafeScript":"./platform-browser","SafeStyle":"./platform-browser","SafeUrl":"./platform-browser","SafeValue":"./platform-browser","ɵBROWSER_SANITIZATION_PROVIDERS":"./platform-browser","ɵBROWSER_SANITIZATION_PROVIDERS__POST_R3__":"./platform-browser","ɵinitDomAdapter":"./platform-browser","ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS":"./platform-browser","ɵBrowserDomAdapter":"./platform-browser","ɵTRANSITION_ID":"./platform-browser","ɵBrowserGetTestability":"./platform-browser","ɵescapeHtml":"./platform-browser","ɵELEMENT_PROBE_PROVIDERS":"./platform-browser","ɵDomRendererFactory2":"./platform-browser","ɵflattenStyles":"./platform-browser","ɵNAMESPACE_URIS":"./platform-browser","ɵshimContentAttribute":"./platform-browser","ɵshimHostAttribute":"./platform-browser","ɵDomEventsPlugin":"./platform-browser","ɵHammerGesturesPlugin":"./platform-browser","ɵKeyEventsPlugin":"./platform-browser","ɵDomSharedStylesHost":"./platform-browser","ɵSharedStylesHost":"./platform-browser","ɵDomSanitizerImpl":"./platform-browser","VERSION":"./platform-browser","ɵELEMENT_PROBE_PROVIDERS__POST_R3__":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_o":"./platform-browser","ɵangular_packages_platform_browser_platform_browser_p":"./platform-browser"},"importAs":"@angular/platform-browser"}
Index: trip-planner-front/node_modules/@angular/platform-browser/testing.d.ts
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/testing.d.ts	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/testing.d.ts	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,4 +1,4 @@
 /**
- * @license Angular v12.2.13
+ * @license Angular v12.2.9
  * (c) 2010-2021 Google LLC. https://angular.io/
  * License: MIT
Index: trip-planner-front/node_modules/@angular/platform-browser/testing/testing.d.ts
===================================================================
--- trip-planner-front/node_modules/@angular/platform-browser/testing/testing.d.ts	(revision 571e0df9a7a5e798c9941a85842f785177bedbbd)
+++ trip-planner-front/node_modules/@angular/platform-browser/testing/testing.d.ts	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
@@ -1,4 +1,4 @@
 /**
- * @license Angular v12.2.13
+ * @license Angular v12.2.9
  * (c) 2010-2021 Google LLC. https://angular.io/
  * License: MIT
