- Timestamp:
- 11/25/21 22:08:24 (3 years ago)
- Branches:
- master
- Children:
- 8d391a1
- Parents:
- 59329aa
- Location:
- trip-planner-front/node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trip-planner-front/node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/animations.js
r59329aa re29cc2e 1 1 /** 2 * @license Angular v12.2. 92 * @license Angular v12.2.13 3 3 * (c) 2010-2021 Google LLC. https://angular.io/ 4 4 * License: MIT -
trip-planner-front/node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/platform-browser.js
r59329aa re29cc2e 1 1 /** 2 * @license Angular v12.2. 92 * @license Angular v12.2.13 3 3 * (c) 2010-2021 Google LLC. https://angular.io/ 4 4 * License: MIT … … 2145 2145 * @publicApi 2146 2146 */ 2147 const VERSION = new Version('12.2. 9');2147 const VERSION = new Version('12.2.13'); 2148 2148 2149 2149 /** -
trip-planner-front/node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/platform-browser.js.map
r59329aa re29cc2e 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.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';"]}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';"]}
Note:
See TracChangeset
for help on using the changeset viewer.