blob: 39bea02608b72fe65d8d0f3160789c9532667894 [file] [log] [blame]
{"version":3,"file":"platform-browser.umd.js","sources":["../../../../../external/npm/node_modules/tslib/tslib.es6.js","../../../../../packages/platform-browser/src/dom/dom_adapter.ts","../../../../../packages/platform-browser/src/browser/generic_browser_adapter.ts","../../../../../packages/platform-browser/src/browser/browser_adapter.ts","../../../../../packages/platform-browser/src/browser/location/history.ts","../../../../../packages/platform-browser/src/browser/location/browser_platform_location.ts","../../../../../packages/platform-browser/src/browser/server-transition.ts","../../../../../packages/platform-browser/src/browser/testability.ts","../../../../../packages/platform-browser/src/dom/util.ts","../../../../../packages/platform-browser/src/dom/debug/ng_probe.ts","../../../../../packages/platform-browser/src/dom/events/event_manager.ts","../../../../../packages/platform-browser/src/dom/shared_styles_host.ts","../../../../../packages/platform-browser/src/dom/dom_renderer.ts","../../../../../packages/platform-browser/src/dom/events/dom_events.ts","../../../../../packages/platform-browser/src/dom/events/hammer_gestures.ts","../../../../../packages/platform-browser/src/dom/events/key_events.ts","../../../../../packages/platform-browser/src/security/dom_sanitization_service.ts","../../../../../packages/platform-browser/src/browser.ts","../../../../../packages/platform-browser/src/browser/meta.ts","../../../../../packages/platform-browser/src/browser/title.ts","../../../../../packages/platform-browser/src/browser/tools/browser.ts","../../../../../packages/platform-browser/src/browser/tools/common_tools.ts","../../../../../packages/platform-browser/src/browser/tools/tools.ts","../../../../../packages/platform-browser/src/browser/transfer_state.ts","../../../../../packages/platform-browser/src/dom/debug/by.ts","../../../../../packages/platform-browser/src/private_export.ts","../../../../../packages/platform-browser/src/version.ts","../../../../../packages/platform-browser/src/platform-browser.ts","../../../../../packages/platform-browser/public_api.ts","../../../../../packages/platform-browser/index.ts","../../../../../packages/platform-browser/platform-browser.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","/**\n * @license\n * Copyright Google Inc. 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 {Type} from '@angular/core';\n\nlet _DOM: DomAdapter = null !;\n\nexport function getDOM() {\n return _DOM;\n}\n\nexport function setDOM(adapter: DomAdapter) {\n _DOM = adapter;\n}\n\nexport function setRootDomAdapter(adapter: DomAdapter) {\n if (!_DOM) {\n _DOM = adapter;\n }\n}\n\n/* tslint:disable:requireParameterType */\n/**\n * Provides DOM operations in an environment-agnostic way.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class DomAdapter {\n public resourceLoaderType: Type<any> = null !;\n abstract hasProperty(element: any, name: string): boolean;\n abstract setProperty(el: Element, name: string, value: any): any;\n abstract getProperty(el: Element, name: string): any;\n abstract invoke(el: Element, methodName: string, args: any[]): any;\n\n abstract logError(error: any): any;\n abstract log(error: any): any;\n abstract logGroup(error: any): any;\n abstract logGroupEnd(): any;\n\n /**\n * Maps attribute names to their corresponding property names for cases\n * where attribute name doesn't match property name.\n */\n get attrToPropMap(): {[key: string]: string} { return this._attrToPropMap; }\n set attrToPropMap(value: {[key: string]: string}) { this._attrToPropMap = value; }\n /** @internal */\n // TODO(issue/24571): remove '!'.\n _attrToPropMap !: {[key: string]: string};\n\n abstract contains(nodeA: any, nodeB: any): boolean;\n abstract parse(templateHtml: string): any;\n abstract querySelector(el: any, selector: string): any;\n abstract querySelectorAll(el: any, selector: string): any[];\n abstract on(el: any, evt: any, listener: any): any;\n abstract onAndCancel(el: any, evt: any, listener: any): Function;\n abstract dispatchEvent(el: any, evt: any): any;\n abstract createMouseEvent(eventType: any): any;\n abstract createEvent(eventType: string): any;\n abstract preventDefault(evt: any): any;\n abstract isPrevented(evt: any): boolean;\n abstract getInnerHTML(el: any): string;\n /** Returns content if el is a <template> element, null otherwise. */\n abstract getTemplateContent(el: any): any;\n abstract getOuterHTML(el: any): string;\n abstract nodeName(node: any): string;\n abstract nodeValue(node: any): string|null;\n abstract type(node: any): string;\n abstract content(node: any): any;\n abstract firstChild(el: any): Node|null;\n abstract nextSibling(el: any): Node|null;\n abstract parentElement(el: any): Node|null;\n abstract childNodes(el: any): Node[];\n abstract childNodesAsList(el: any): Node[];\n abstract clearNodes(el: any): any;\n abstract appendChild(el: any, node: any): any;\n abstract removeChild(el: any, node: any): any;\n abstract replaceChild(el: any, newNode: any, oldNode: any): any;\n abstract remove(el: any): Node;\n abstract insertBefore(parent: any, ref: any, node: any): any;\n abstract insertAllBefore(parent: any, ref: any, nodes: any): any;\n abstract insertAfter(parent: any, el: any, node: any): any;\n abstract setInnerHTML(el: any, value: any): any;\n abstract getText(el: any): string|null;\n abstract setText(el: any, value: string): any;\n abstract getValue(el: any): string;\n abstract setValue(el: any, value: string): any;\n abstract getChecked(el: any): boolean;\n abstract setChecked(el: any, value: boolean): any;\n abstract createComment(text: string): any;\n abstract createTemplate(html: any): HTMLElement;\n abstract createElement(tagName: any, doc?: any): HTMLElement;\n abstract createElementNS(ns: string, tagName: string, doc?: any): Element;\n abstract createTextNode(text: string, doc?: any): Text;\n abstract createScriptTag(attrName: string, attrValue: string, doc?: any): HTMLElement;\n abstract createStyleElement(css: string, doc?: any): HTMLStyleElement;\n abstract createShadowRoot(el: any): any;\n abstract getShadowRoot(el: any): any;\n abstract getHost(el: any): any;\n abstract getDistributedNodes(el: any): Node[];\n abstract clone /*<T extends Node>*/ (node: Node /*T*/): Node /*T*/;\n abstract getElementsByClassName(element: any, name: string): HTMLElement[];\n abstract getElementsByTagName(element: any, name: string): HTMLElement[];\n abstract classList(element: any): any[];\n abstract addClass(element: any, className: string): any;\n abstract removeClass(element: any, className: string): any;\n abstract hasClass(element: any, className: string): boolean;\n abstract setStyle(element: any, styleName: string, styleValue: string): any;\n abstract removeStyle(element: any, styleName: string): any;\n abstract getStyle(element: any, styleName: string): string;\n abstract hasStyle(element: any, styleName: string, styleValue?: string): boolean;\n abstract tagName(element: any): string;\n abstract attributeMap(element: any): Map<string, string>;\n abstract hasAttribute(element: any, attribute: string): boolean;\n abstract hasAttributeNS(element: any, ns: string, attribute: string): boolean;\n abstract getAttribute(element: any, attribute: string): string|null;\n abstract getAttributeNS(element: any, ns: string, attribute: string): string|null;\n abstract setAttribute(element: any, name: string, value: string): any;\n abstract setAttributeNS(element: any, ns: string, name: string, value: string): any;\n abstract removeAttribute(element: any, attribute: string): any;\n abstract removeAttributeNS(element: any, ns: string, attribute: string): any;\n abstract templateAwareRoot(el: any): any;\n abstract createHtmlDocument(): HTMLDocument;\n abstract getDefaultDocument(): Document;\n abstract getBoundingClientRect(el: any): any;\n abstract getTitle(doc: Document): string;\n abstract setTitle(doc: Document, newTitle: string): any;\n abstract elementMatches(n: any, selector: string): boolean;\n abstract isTemplateElement(el: any): boolean;\n abstract isTextNode(node: any): boolean;\n abstract isCommentNode(node: any): boolean;\n abstract isElementNode(node: any): boolean;\n abstract hasShadowRoot(node: any): boolean;\n abstract isShadowRoot(node: any): boolean;\n abstract importIntoDoc /*<T extends Node>*/ (node: Node /*T*/): Node /*T*/;\n abstract adoptNode /*<T extends Node>*/ (node: Node /*T*/): Node /*T*/;\n abstract getHref(element: any): string;\n abstract getEventKey(event: any): string;\n abstract resolveAndSetHref(element: any, baseUrl: string, href: string): any;\n abstract supportsDOMEvents(): boolean;\n abstract supportsNativeShadowDOM(): boolean;\n abstract getGlobalEventTarget(doc: Document, target: string): any;\n abstract getHistory(): History;\n abstract getLocation(): Location;\n abstract getBaseHref(doc: Document): string|null;\n abstract resetBaseElement(): void;\n abstract getUserAgent(): string;\n abstract setData(element: any, name: string, value: string): any;\n abstract getComputedStyle(element: any): any;\n abstract getData(element: any, name: string): string|null;\n abstract supportsWebAnimation(): boolean;\n abstract performanceNow(): number;\n abstract getAnimationPrefix(): string;\n abstract getTransitionEnd(): string;\n abstract supportsAnimation(): boolean;\n\n abstract supportsCookies(): boolean;\n abstract getCookie(name: string): string|null;\n abstract setCookie(name: string, value: string): any;\n}\n","/**\n * @license\n * Copyright Google Inc. 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} from '../dom/dom_adapter';\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 private _animationPrefix: string|null = null;\n private _transitionEnd: string|null = null;\n constructor() {\n super();\n try {\n const element = this.createElement('div', document);\n if (this.getStyle(element, 'animationName') != null) {\n this._animationPrefix = '';\n } else {\n const domPrefixes = ['Webkit', 'Moz', 'O', 'ms'];\n\n for (let i = 0; i < domPrefixes.length; i++) {\n if (this.getStyle(element, domPrefixes[i] + 'AnimationName') != null) {\n this._animationPrefix = '-' + domPrefixes[i].toLowerCase() + '-';\n break;\n }\n }\n }\n\n const transEndEventNames: {[key: string]: string} = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend'\n };\n\n Object.keys(transEndEventNames).forEach((key: string) => {\n if (this.getStyle(element, key) != null) {\n this._transitionEnd = transEndEventNames[key];\n }\n });\n } catch {\n this._animationPrefix = null;\n this._transitionEnd = null;\n }\n }\n\n getDistributedNodes(el: HTMLElement): Node[] { return (<any>el).getDistributedNodes(); }\n resolveAndSetHref(el: HTMLAnchorElement, baseUrl: string, href: string) {\n el.href = href == null ? baseUrl : baseUrl + '/../' + href;\n }\n supportsDOMEvents(): boolean { return true; }\n supportsNativeShadowDOM(): boolean {\n return typeof(<any>document.body).createShadowRoot === 'function';\n }\n getAnimationPrefix(): string { return this._animationPrefix ? this._animationPrefix : ''; }\n getTransitionEnd(): string { return this._transitionEnd ? this._transitionEnd : ''; }\n supportsAnimation(): boolean {\n return this._animationPrefix != null && this._transitionEnd != null;\n }\n}\n","/**\n * @license\n * Copyright Google Inc. 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} from '@angular/common';\nimport {ɵglobal as global} from '@angular/core';\n\nimport {setRootDomAdapter} from '../dom/dom_adapter';\n\nimport {GenericBrowserDomAdapter} from './generic_browser_adapter';\n\nconst _attrToPropMap = {\n 'class': 'className',\n 'innerHtml': 'innerHTML',\n 'readonly': 'readOnly',\n 'tabindex': 'tabIndex',\n};\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 http://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\nconst nodeContains: (a: any, b: any) => boolean = (() => {\n if (global['Node']) {\n return global['Node'].prototype.contains || function(node: any) {\n return !!(this.compareDocumentPosition(node) & 16);\n };\n }\n\n return undefined as any;\n})();\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 parse(templateHtml: string) { throw new Error('parse not implemented'); }\n static makeCurrent() { setRootDomAdapter(new BrowserDomAdapter()); }\n hasProperty(element: Node, name: string): boolean { return name in element; }\n setProperty(el: Node, name: string, value: any) { (<any>el)[name] = value; }\n getProperty(el: Node, name: string): any { return (<any>el)[name]; }\n invoke(el: Node, methodName: string, args: any[]): any { (<any>el)[methodName](...args); }\n\n // TODO(tbosch): move this into a separate environment class once we have it\n logError(error: string): void {\n if (window.console) {\n if (console.error) {\n console.error(error);\n } else {\n console.log(error);\n }\n }\n }\n\n log(error: string): void {\n if (window.console) {\n window.console.log && window.console.log(error);\n }\n }\n\n logGroup(error: string): void {\n if (window.console) {\n window.console.group && window.console.group(error);\n }\n }\n\n logGroupEnd(): void {\n if (window.console) {\n window.console.groupEnd && window.console.groupEnd();\n }\n }\n\n get attrToPropMap(): any { return _attrToPropMap; }\n\n contains(nodeA: any, nodeB: any): boolean { return nodeContains.call(nodeA, nodeB); }\n querySelector(el: HTMLElement, selector: string): any { return el.querySelector(selector); }\n querySelectorAll(el: any, selector: string): any[] { return el.querySelectorAll(selector); }\n on(el: Node, evt: any, listener: any) { el.addEventListener(evt, listener, false); }\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 () => { el.removeEventListener(evt, listener, false); };\n }\n dispatchEvent(el: Node, evt: any) { el.dispatchEvent(evt); }\n createMouseEvent(eventType: string): MouseEvent {\n const evt: MouseEvent = this.getDefaultDocument().createEvent('MouseEvent');\n evt.initEvent(eventType, true, true);\n return evt;\n }\n createEvent(eventType: any): Event {\n const evt: Event = this.getDefaultDocument().createEvent('Event');\n evt.initEvent(eventType, true, true);\n return evt;\n }\n preventDefault(evt: Event) {\n evt.preventDefault();\n evt.returnValue = false;\n }\n isPrevented(evt: Event): boolean {\n return evt.defaultPrevented || evt.returnValue != null && !evt.returnValue;\n }\n getInnerHTML(el: HTMLElement): string { return el.innerHTML; }\n getTemplateContent(el: Node): Node|null {\n return 'content' in el && this.isTemplateElement(el) ? (<any>el).content : null;\n }\n getOuterHTML(el: HTMLElement): string { return el.outerHTML; }\n nodeName(node: Node): string { return node.nodeName; }\n nodeValue(node: Node): string|null { return node.nodeValue; }\n type(node: HTMLInputElement): string { return node.type; }\n content(node: Node): Node {\n if (this.hasProperty(node, 'content')) {\n return (<any>node).content;\n } else {\n return node;\n }\n }\n firstChild(el: Node): Node|null { return el.firstChild; }\n nextSibling(el: Node): Node|null { return el.nextSibling; }\n parentElement(el: Node): Node|null { return el.parentNode; }\n childNodes(el: any): Node[] { return el.childNodes; }\n childNodesAsList(el: Node): any[] {\n const childNodes = el.childNodes;\n const res = new Array(childNodes.length);\n for (let i = 0; i < childNodes.length; i++) {\n res[i] = childNodes[i];\n }\n return res;\n }\n clearNodes(el: Node) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n }\n appendChild(el: Node, node: Node) { el.appendChild(node); }\n removeChild(el: Node, node: Node) { el.removeChild(node); }\n replaceChild(el: Node, newChild: Node, oldChild: Node) { el.replaceChild(newChild, oldChild); }\n remove(node: Node): Node {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n return node;\n }\n insertBefore(parent: Node, ref: Node, node: Node) { parent.insertBefore(node, ref); }\n insertAllBefore(parent: Node, ref: Node, nodes: Node[]) {\n nodes.forEach((n: any) => parent.insertBefore(n, ref));\n }\n insertAfter(parent: Node, ref: Node, node: any) { parent.insertBefore(node, ref.nextSibling); }\n setInnerHTML(el: Element, value: string) { el.innerHTML = value; }\n getText(el: Node): string|null { return el.textContent; }\n setText(el: Node, value: string) { el.textContent = value; }\n getValue(el: any): string { return el.value; }\n setValue(el: any, value: string) { el.value = value; }\n getChecked(el: any): boolean { return el.checked; }\n setChecked(el: any, value: boolean) { el.checked = value; }\n createComment(text: string): Comment { return this.getDefaultDocument().createComment(text); }\n createTemplate(html: any): HTMLElement {\n const t = this.getDefaultDocument().createElement('template');\n t.innerHTML = html;\n return t;\n }\n createElement(tagName: string, doc?: Document): HTMLElement {\n doc = doc || this.getDefaultDocument();\n return doc.createElement(tagName);\n }\n createElementNS(ns: string, tagName: string, doc?: Document): Element {\n doc = doc || this.getDefaultDocument();\n return doc.createElementNS(ns, tagName);\n }\n createTextNode(text: string, doc?: Document): Text {\n doc = doc || this.getDefaultDocument();\n return doc.createTextNode(text);\n }\n createScriptTag(attrName: string, attrValue: string, doc?: Document): HTMLScriptElement {\n doc = doc || this.getDefaultDocument();\n const el = <HTMLScriptElement>doc.createElement('SCRIPT');\n el.setAttribute(attrName, attrValue);\n return el;\n }\n createStyleElement(css: string, doc?: Document): HTMLStyleElement {\n doc = doc || this.getDefaultDocument();\n const style = <HTMLStyleElement>doc.createElement('style');\n this.appendChild(style, this.createTextNode(css, doc));\n return style;\n }\n createShadowRoot(el: HTMLElement): DocumentFragment { return (<any>el).createShadowRoot(); }\n getShadowRoot(el: HTMLElement): DocumentFragment { return (<any>el).shadowRoot; }\n getHost(el: HTMLElement): HTMLElement { return (<any>el).host; }\n clone(node: Node): Node { return node.cloneNode(true); }\n getElementsByClassName(element: any, name: string): HTMLElement[] {\n return element.getElementsByClassName(name);\n }\n getElementsByTagName(element: any, name: string): HTMLElement[] {\n return element.getElementsByTagName(name);\n }\n classList(element: any): any[] { return Array.prototype.slice.call(element.classList, 0); }\n addClass(element: any, className: string) { element.classList.add(className); }\n removeClass(element: any, className: string) { element.classList.remove(className); }\n hasClass(element: any, className: string): boolean {\n return element.classList.contains(className);\n }\n setStyle(element: any, styleName: string, styleValue: string) {\n element.style[styleName] = styleValue;\n }\n removeStyle(element: any, stylename: string) {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n element.style[stylename] = '';\n }\n getStyle(element: any, stylename: string): string { return element.style[stylename]; }\n hasStyle(element: any, styleName: string, styleValue?: string|null): boolean {\n const value = this.getStyle(element, styleName) || '';\n return styleValue ? value == styleValue : value.length > 0;\n }\n tagName(element: any): string { return element.tagName; }\n attributeMap(element: any): Map<string, string> {\n const res = new Map<string, string>();\n const elAttrs = element.attributes;\n for (let i = 0; i < elAttrs.length; i++) {\n const attrib = elAttrs.item(i);\n res.set(attrib.name, attrib.value);\n }\n return res;\n }\n hasAttribute(element: Element, attribute: string): boolean {\n return element.hasAttribute(attribute);\n }\n hasAttributeNS(element: Element, ns: string, attribute: string): boolean {\n return element.hasAttributeNS(ns, attribute);\n }\n getAttribute(element: Element, attribute: string): string|null {\n return element.getAttribute(attribute);\n }\n getAttributeNS(element: Element, ns: string, name: string): string|null {\n return element.getAttributeNS(ns, name);\n }\n setAttribute(element: Element, name: string, value: string) { element.setAttribute(name, value); }\n setAttributeNS(element: Element, ns: string, name: string, value: string) {\n element.setAttributeNS(ns, name, value);\n }\n removeAttribute(element: Element, attribute: string) { element.removeAttribute(attribute); }\n removeAttributeNS(element: Element, ns: string, name: string) {\n element.removeAttributeNS(ns, name);\n }\n templateAwareRoot(el: Node): any { return this.isTemplateElement(el) ? this.content(el) : el; }\n createHtmlDocument(): HTMLDocument {\n return document.implementation.createHTMLDocument('fakeTitle');\n }\n getDefaultDocument(): Document { return document; }\n getBoundingClientRect(el: Element): any {\n try {\n return el.getBoundingClientRect();\n } catch {\n return {top: 0, bottom: 0, left: 0, right: 0, width: 0, height: 0};\n }\n }\n getTitle(doc: Document): string { return doc.title; }\n setTitle(doc: Document, newTitle: string) { doc.title = newTitle || ''; }\n elementMatches(n: any, selector: string): boolean {\n if (this.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 isTemplateElement(el: Node): boolean {\n return this.isElementNode(el) && el.nodeName === 'TEMPLATE';\n }\n isTextNode(node: Node): boolean { return node.nodeType === Node.TEXT_NODE; }\n isCommentNode(node: Node): boolean { return node.nodeType === Node.COMMENT_NODE; }\n isElementNode(node: Node): boolean { return node.nodeType === Node.ELEMENT_NODE; }\n hasShadowRoot(node: any): boolean {\n return node.shadowRoot != null && node instanceof HTMLElement;\n }\n isShadowRoot(node: any): boolean { return node instanceof DocumentFragment; }\n importIntoDoc(node: Node): any { return document.importNode(this.templateAwareRoot(node), true); }\n adoptNode(node: Node): any { return document.adoptNode(node); }\n getHref(el: Element): string { return el.getAttribute('href') !; }\n\n 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 // http://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 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 getHistory(): History { return window.history; }\n getLocation(): Location { return window.location; }\n getBaseHref(doc: Document): string|null {\n const href = getBaseElementHref();\n return href == null ? null : relativePath(href);\n }\n resetBaseElement(): void { baseElement = null; }\n getUserAgent(): string { return window.navigator.userAgent; }\n setData(element: Element, name: string, value: string) {\n this.setAttribute(element, 'data-' + name, value);\n }\n getData(element: Element, name: string): string|null {\n return this.getAttribute(element, 'data-' + name);\n }\n getComputedStyle(element: any): any { return getComputedStyle(element); }\n // TODO(tbosch): move this into a separate environment class once we have it\n supportsWebAnimation(): boolean {\n return typeof(<any>Element).prototype['animate'] === 'function';\n }\n performanceNow(): number {\n // performance.now() is not available in all browsers, see\n // http://caniuse.com/#search=performance.now\n return window.performance && window.performance.now ? window.performance.now() :\n new Date().getTime();\n }\n\n supportsCookies(): boolean { return true; }\n\n getCookie(name: string): string|null { return parseCookieValue(document.cookie, name); }\n\n setCookie(name: string, value: string) {\n // document.cookie is magical, assigning into it assigns/overrides one cookie value, but does\n // not clear other cookies.\n document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value);\n }\n}\n\nlet baseElement: HTMLElement|null = null;\nfunction getBaseElementHref(): string|null {\n if (!baseElement) {\n baseElement = document.querySelector('base') !;\n if (!baseElement) {\n return null;\n }\n }\n return baseElement.getAttribute('href');\n}\n\n// based on urlUtils.js in AngularJS 1\nlet urlParsingNode: any;\nfunction relativePath(url: any): string {\n if (!urlParsingNode) {\n urlParsingNode = document.createElement('a');\n }\n urlParsingNode.setAttribute('href', url);\n return (urlParsingNode.pathname.charAt(0) === '/') ? urlParsingNode.pathname :\n '/' + urlParsingNode.pathname;\n}\n","/**\n * @license\n * Copyright Google Inc. 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 function supportsState(): boolean {\n return !!window.history.pushState;\n}","/**\n * @license\n * Copyright Google Inc. 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, LocationChangeListener, PlatformLocation} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\nimport {getDOM} from '../../dom/dom_adapter';\n\nimport {supportsState} from './history';\n\n\n\n/**\n * `PlatformLocation` encapsulates all of the direct calls to platform APIs.\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n */\n@Injectable()\nexport class BrowserPlatformLocation extends PlatformLocation {\n // TODO(issue/24571): remove '!'.\n public readonly location !: Location;\n // TODO(issue/24571): remove '!'.\n private _history !: History;\n\n constructor(@Inject(DOCUMENT) private _doc: any) {\n super();\n this._init();\n }\n\n // This is moved to its own method so that `MockPlatformLocationStrategy` can overwrite it\n /** @internal */\n _init() {\n (this as{location: Location}).location = getDOM().getLocation();\n this._history = getDOM().getHistory();\n }\n\n getBaseHrefFromDOM(): string { return getDOM().getBaseHref(this._doc) !; }\n\n onPopState(fn: LocationChangeListener): void {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('popstate', fn, false);\n }\n\n onHashChange(fn: LocationChangeListener): void {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('hashchange', fn, false);\n }\n\n get href(): string { return this.location.href; }\n get protocol(): string { return this.location.protocol; }\n get hostname(): string { return this.location.hostname; }\n get port(): string { return this.location.port; }\n get pathname(): string { return this.location.pathname; }\n get search(): string { return this.location.search; }\n get hash(): string { return this.location.hash; }\n set pathname(newPath: string) { this.location.pathname = newPath; }\n\n pushState(state: any, title: string, url: string): void {\n if (supportsState()) {\n this._history.pushState(state, title, url);\n } else {\n this.location.hash = url;\n }\n }\n\n replaceState(state: any, title: string, url: string): void {\n if (supportsState()) {\n this._history.replaceState(state, title, url);\n } else {\n this.location.hash = url;\n }\n }\n\n forward(): void { this._history.forward(); }\n\n back(): void { this._history.back(); }\n\n getState(): unknown { return this._history.state; }\n}\n","/**\n * @license\n * Copyright Google Inc. 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_INITIALIZER, ApplicationInitStatus, Inject, InjectionToken, Injector, StaticProvider} from '@angular/core';\n\nimport {getDOM} from '../dom/dom_adapter';\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: any[] =\n Array.prototype.slice.apply(dom.querySelectorAll(document, `style[ng-transition]`));\n styles.filter(el => dom.getAttribute(el, 'ng-transition') === transitionId)\n .forEach(el => dom.remove(el));\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 Inc. 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 {GetTestability, Testability, TestabilityRegistry, setTestabilityGetter, ɵglobal as global} from '@angular/core';\n\nimport {getDOM} from '../dom/dom_adapter';\n\nexport class BrowserGetTestability implements GetTestability {\n static init() { setTestabilityGetter(new BrowserGetTestability()); }\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, getDOM().getHost(elem), true);\n }\n return this.findTestabilityInTree(registry, getDOM().parentElement(elem), true);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. 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 Inc. 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, getDebugNode} 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 inspectNativeElement(element: any): DebugNode|null {\n return getDebugNode(element);\n}\n\nexport function _createNgProbe(coreTokens: NgProbeToken[]): any {\n exportNgVar(INSPECT_GLOBAL_NAME, inspectNativeElement);\n exportNgVar(CORE_TOKENS_GLOBAL_NAME, {...CORE_TOKENS, ..._ngProbeTokensToMap(coreTokens || [])});\n return () => inspectNativeElement;\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: _createNgProbe,\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 Inc. 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 {Inject, Injectable, InjectionToken, NgZone} from '@angular/core';\n\nimport {getDOM} from '../dom_adapter';\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 */\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 { return this._zone; }\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 Inc. 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, OnDestroy} from '@angular/core';\nimport {getDOM} from './dom_adapter';\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[] { return Array.from(this._stylesSet); }\n}\n\n@Injectable()\nexport class DomSharedStylesHost extends SharedStylesHost implements OnDestroy {\n private _hostNodes = new Set<Node>();\n private _styleNodes = new Set<Node>();\n constructor(@Inject(DOCUMENT) private _doc: any) {\n super();\n this._hostNodes.add(_doc.head);\n }\n\n private _addStylesToHost(styles: Set<string>, host: Node): void {\n styles.forEach((style: string) => {\n const styleEl = this._doc.createElement('style');\n styleEl.textContent = style;\n this._styleNodes.add(host.appendChild(styleEl));\n });\n }\n\n addHost(hostNode: Node): void {\n this._addStylesToHost(this._stylesSet, hostNode);\n this._hostNodes.add(hostNode);\n }\n\n removeHost(hostNode: Node): void { this._hostNodes.delete(hostNode); }\n\n onStylesAdded(additions: Set<string>): void {\n this._hostNodes.forEach(hostNode => this._addStylesToHost(additions, hostNode));\n }\n\n ngOnDestroy(): void { this._styleNodes.forEach(styleNode => getDOM().remove(styleNode)); }\n}\n","/**\n * @license\n * Copyright Google Inc. 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;\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 return (event: any) => {\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}\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 case ViewEncapsulation.Native:\n case ViewEncapsulation.ShadowDom:\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 { return document.createComment(value); }\n\n createText(value: string): any { return document.createTextNode(value); }\n\n appendChild(parent: any, newChild: any): void { parent.appendChild(newChild); }\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 { return node.parentNode; }\n\n nextSibling(node: any): any { return node.nextSibling; }\n\n setAttribute(el: any, name: string, value: string, namespace?: string): void {\n if (namespace) {\n name = namespace + ':' + name;\n // TODO(benlesh): 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(benlesh): 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(benlesh): 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 { el.classList.add(name); }\n\n removeClass(el: any, name: string): void { el.classList.remove(name); }\n\n setStyle(el: any, style: string, value: any, flags: RendererStyleFlags2): void {\n if (flags & RendererStyleFlags2.DashCase) {\n el.style.setProperty(\n 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 checkNoSyntheticProp(name, 'property');\n el[name] = value;\n }\n\n setValue(node: any, value: string): void { node.nodeValue = value; }\n\n listen(target: 'window'|'document'|'body'|any, event: string, callback: (event: any) => boolean):\n () => void {\n 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(\n `Found the synthetic ${nameKind} ${name}. Please include either \"BrowserAnimationsModule\" or \"NoopAnimationsModule\" in your application.`);\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) { super.setAttribute(element, this.hostAttr, ''); }\n\n 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, private component: RendererType2) {\n super(eventManager);\n if (component.encapsulation === ViewEncapsulation.ShadowDom) {\n this.shadowRoot = (hostEl as any).attachShadow({mode: 'open'});\n } else {\n this.shadowRoot = (hostEl as any).createShadowRoot();\n }\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 { return node === this.hostEl ? this.shadowRoot : node; }\n\n destroy() { this.sharedStylesHost.removeHost(this.shadowRoot); }\n\n appendChild(parent: any, newChild: any): void {\n return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n }\n insertBefore(parent: any, newChild: any, refChild: any): void {\n return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n }\n removeChild(parent: any, oldChild: any): void {\n return super.removeChild(this.nodeOrShadowRoot(parent), oldChild);\n }\n parentNode(node: any): any {\n return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\n }\n}\n","/**\n * @license\n * Copyright Google Inc. 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, isPlatformServer} from '@angular/common';\nimport {Inject, Injectable, NgZone, Optional, PLATFORM_ID} from '@angular/core';\n\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Detect if Zone is present. If it is then use simple zone aware 'addEventListener'\n * since Angular can do much more\n * efficient bookkeeping than Zone can, because we have additional information. This speeds up\n * addEventListener by 3x.\n */\nconst __symbol__ =\n (() => (typeof Zone !== 'undefined') && (Zone as any)['__symbol__'] ||\n function(v: string): string { return '__zone_symbol__' + v; })();\nconst ADD_EVENT_LISTENER: 'addEventListener' = __symbol__('addEventListener');\nconst REMOVE_EVENT_LISTENER: 'removeEventListener' = __symbol__('removeEventListener');\n\nconst symbolNames: {[key: string]: string} = {};\n\nconst FALSE = 'FALSE';\nconst ANGULAR = 'ANGULAR';\nconst NATIVE_ADD_LISTENER = 'addEventListener';\nconst NATIVE_REMOVE_LISTENER = 'removeEventListener';\n\n// use the same symbol string which is used in zone.js\nconst stopSymbol = '__zone_symbol__propagationStopped';\nconst stopMethodSymbol = '__zone_symbol__stopImmediatePropagation';\n\n\nconst blackListedMap = (() => {\n const blackListedEvents: string[] =\n (typeof Zone !== 'undefined') && (Zone as any)[__symbol__('BLACK_LISTED_EVENTS')];\n if (blackListedEvents) {\n const res: {[eventName: string]: string} = {};\n blackListedEvents.forEach(eventName => { res[eventName] = eventName; });\n return res;\n }\n return undefined;\n})();\n\n\nconst isBlackListedEvent = function(eventName: string) {\n if (!blackListedMap) {\n return false;\n }\n return blackListedMap.hasOwnProperty(eventName);\n};\n\ninterface TaskData {\n zone: any;\n handler: Function;\n}\n\n// a global listener to handle all dom event,\n// so we do not need to create a closure every time\nconst globalListener = function(event: Event) {\n const symbolName = symbolNames[event.type];\n if (!symbolName) {\n return;\n }\n const taskDatas: TaskData[] = this[symbolName];\n if (!taskDatas) {\n return;\n }\n const args: any = [event];\n if (taskDatas.length === 1) {\n // if taskDatas only have one element, just invoke it\n const taskData = taskDatas[0];\n if (taskData.zone !== Zone.current) {\n // only use Zone.run when Zone.current not equals to stored zone\n return taskData.zone.run(taskData.handler, this, args);\n } else {\n return taskData.handler.apply(this, args);\n }\n } else {\n // copy tasks as a snapshot to avoid event handlers remove\n // itself or others\n const copiedTasks = taskDatas.slice();\n for (let i = 0; i < copiedTasks.length; i++) {\n // if other listener call event.stopImmediatePropagation\n // just break\n if ((event as any)[stopSymbol] === true) {\n break;\n }\n const taskData = copiedTasks[i];\n if (taskData.zone !== Zone.current) {\n // only use Zone.run when Zone.current not equals to stored zone\n taskData.zone.run(taskData.handler, this, args);\n } else {\n taskData.handler.apply(this, args);\n }\n }\n }\n};\n\n@Injectable()\nexport class DomEventsPlugin extends EventManagerPlugin {\n constructor(\n @Inject(DOCUMENT) doc: any, private ngZone: NgZone,\n @Optional() @Inject(PLATFORM_ID) platformId: {}|null) {\n super(doc);\n\n if (!platformId || !isPlatformServer(platformId)) {\n this.patchEvent();\n }\n }\n\n private patchEvent() {\n if (typeof Event === 'undefined' || !Event || !Event.prototype) {\n return;\n }\n if ((Event.prototype as any)[stopMethodSymbol]) {\n // already patched by zone.js\n return;\n }\n const delegate = (Event.prototype as any)[stopMethodSymbol] =\n Event.prototype.stopImmediatePropagation;\n Event.prototype.stopImmediatePropagation = function() {\n if (this) {\n this[stopSymbol] = true;\n }\n\n // should call native delegate in case\n // in some environment part of the application\n // will not use the patched Event\n delegate && delegate.apply(this, arguments);\n };\n }\n\n // This plugin should come last in the list of plugins, because it accepts all\n // events.\n supports(eventName: string): boolean { return true; }\n\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n /**\n * This code is about to add a listener to the DOM. If Zone.js is present, than\n * `addEventListener` has been patched. The patched code adds overhead in both\n * memory and speed (3x slower) than native. For this reason if we detect that\n * Zone.js is present we use a simple version of zone aware addEventListener instead.\n * The result is faster registration and the zone will be restored.\n * But ZoneSpec.onScheduleTask, ZoneSpec.onInvokeTask, ZoneSpec.onCancelTask\n * will not be invoked\n * We also do manual zone restoration in element.ts renderEventHandlerClosure method.\n *\n * NOTE: it is possible that the element is from different iframe, and so we\n * have to check before we execute the method.\n */\n const self = this;\n const zoneJsLoaded = element[ADD_EVENT_LISTENER];\n let callback: EventListener = handler as EventListener;\n // if zonejs is loaded and current zone is not ngZone\n // we keep Zone.current on target for later restoration.\n if (zoneJsLoaded && (!NgZone.isInAngularZone() || isBlackListedEvent(eventName))) {\n let symbolName = symbolNames[eventName];\n if (!symbolName) {\n symbolName = symbolNames[eventName] = __symbol__(ANGULAR + eventName + FALSE);\n }\n let taskDatas: TaskData[] = (element as any)[symbolName];\n const globalListenerRegistered = taskDatas && taskDatas.length > 0;\n if (!taskDatas) {\n taskDatas = (element as any)[symbolName] = [];\n }\n\n const zone = isBlackListedEvent(eventName) ? Zone.root : Zone.current;\n if (taskDatas.length === 0) {\n taskDatas.push({zone: zone, handler: callback});\n } else {\n let callbackRegistered = false;\n for (let i = 0; i < taskDatas.length; i++) {\n if (taskDatas[i].handler === callback) {\n callbackRegistered = true;\n break;\n }\n }\n if (!callbackRegistered) {\n taskDatas.push({zone: zone, handler: callback});\n }\n }\n\n if (!globalListenerRegistered) {\n element[ADD_EVENT_LISTENER](eventName, globalListener, false);\n }\n } else {\n element[NATIVE_ADD_LISTENER](eventName, callback, false);\n }\n return () => this.removeEventListener(element, eventName, callback);\n }\n\n removeEventListener(target: any, eventName: string, callback: Function): void {\n let underlyingRemove = target[REMOVE_EVENT_LISTENER];\n // zone.js not loaded, use native removeEventListener\n if (!underlyingRemove) {\n return target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n let symbolName = symbolNames[eventName];\n let taskDatas: TaskData[] = symbolName && target[symbolName];\n if (!taskDatas) {\n // addEventListener not using patched version\n // just call native removeEventListener\n return target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n // fix issue 20532, should be able to remove\n // listener which was added inside of ngZone\n let found = false;\n for (let i = 0; i < taskDatas.length; i++) {\n // remove listener from taskDatas if the callback equals\n if (taskDatas[i].handler === callback) {\n found = true;\n taskDatas.splice(i, 1);\n break;\n }\n }\n if (found) {\n if (taskDatas.length === 0) {\n // all listeners are removed, we can remove the globalListener from target\n underlyingRemove.apply(target, [eventName, globalListener, false]);\n }\n } else {\n // not found in taskDatas, the callback may be added inside of ngZone\n // use native remove listener to remove the callback\n target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n }\n}\n","/**\n * @license\n * Copyright Google Inc. 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, Optional, ɵConsole as Console} from '@angular/core';\n\nimport {EventManagerPlugin} from './event_manager';\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};\n\n/**\n * DI token for providing [HammerJS](http://hammerjs.github.io/) support to Angular.\n * @see `HammerGestureConfig`\n *\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](http://hammerjs.github.io/api/#hammer.manager)\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](http://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](http://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](http://hammerjs.github.io/).\n */\n options?: {\n cssProps?: any; domEvents?: boolean; 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](http://hammerjs.github.io/api/#hammer.manager)\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@Injectable()\nexport class HammerGesturesPlugin extends EventManagerPlugin {\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 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 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 return false;\n }\n\n return true;\n }\n\n 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 `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 = () => { cancelRegistration = true; };\n\n this.loader()\n .then(() => {\n // If Hammer isn't actually loaded when the custom loader resolves, give up.\n if (!(window as any).Hammer) {\n this.console.warn(\n `The custom HAMMER_LOADER completed, but Hammer.JS is not present.`);\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 this.console.warn(\n `The \"${eventName}\" event cannot be bound because the custom ` +\n `Hammer.JS loader failed.`);\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 () => { deregister(); };\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() { handler(eventObj); });\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 { return this._config.events.indexOf(eventName) > -1; }\n}\n","/**\n * @license\n * Copyright Google Inc. 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, NgZone} from '@angular/core';\n\nimport {getDOM} from '../dom_adapter';\n\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Defines supported modifiers for key events.\n */\nconst MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\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) { super(doc); }\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 supports(eventName: string): boolean { return KeyEventsPlugin.parseEventName(eventName) != null; }\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 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): {[key: string]: 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 const result: {[k: string]: string} = {};\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 = getDOM().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","/**\n * @license\n * Copyright Google Inc. 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, Sanitizer, SecurityContext, ɵ_sanitizeHtml as _sanitizeHtml, ɵ_sanitizeStyle as _sanitizeStyle, ɵ_sanitizeUrl as _sanitizeUrl} from '@angular/core';\n\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](http://g.co/ng/security).\n *\n * @publicApi\n */\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\n\n@Injectable()\nexport class DomSanitizerImpl extends DomSanitizer {\n constructor(@Inject(DOCUMENT) private _doc: any) { super(); }\n\n 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 (value instanceof SafeHtmlImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'HTML');\n return _sanitizeHtml(this._doc, String(value));\n case SecurityContext.STYLE:\n if (value instanceof SafeStyleImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Style');\n return _sanitizeStyle(value as string);\n case SecurityContext.SCRIPT:\n if (value instanceof SafeScriptImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Script');\n throw new Error('unsafe value used in a script context');\n case SecurityContext.URL:\n if (value instanceof SafeResourceUrlImpl || value instanceof SafeUrlImpl) {\n // Allow resource URLs in URL contexts, they are strictly more trusted.\n return value.changingThisBreaksApplicationSecurity;\n }\n this.checkNotSafeValue(value, 'URL');\n return _sanitizeUrl(String(value));\n case SecurityContext.RESOURCE_URL:\n if (value instanceof SafeResourceUrlImpl) {\n return value.changingThisBreaksApplicationSecurity;\n }\n this.checkNotSafeValue(value, 'ResourceURL');\n throw new Error(\n 'unsafe value used in a resource URL context (see http://g.co/ng/security#xss)');\n default:\n throw new Error(`Unexpected SecurityContext ${ctx} (see http://g.co/ng/security#xss)`);\n }\n }\n\n private checkNotSafeValue(value: any, expectedType: string) {\n if (value instanceof SafeValueImpl) {\n throw new Error(\n `Required a safe ${expectedType}, got a ${value.getTypeName()} ` +\n `(see http://g.co/ng/security#xss)`);\n }\n }\n\n bypassSecurityTrustHtml(value: string): SafeHtml { return new SafeHtmlImpl(value); }\n bypassSecurityTrustStyle(value: string): SafeStyle { return new SafeStyleImpl(value); }\n bypassSecurityTrustScript(value: string): SafeScript { return new SafeScriptImpl(value); }\n bypassSecurityTrustUrl(value: string): SafeUrl { return new SafeUrlImpl(value); }\n bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl {\n return new SafeResourceUrlImpl(value);\n }\n}\n\nabstract class SafeValueImpl implements SafeValue {\n constructor(public changingThisBreaksApplicationSecurity: string) {\n // empty\n }\n\n abstract getTypeName(): string;\n\n toString() {\n return `SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity}` +\n ` (see http://g.co/ng/security#xss)`;\n }\n}\n\nclass SafeHtmlImpl extends SafeValueImpl implements SafeHtml {\n getTypeName() { return 'HTML'; }\n}\nclass SafeStyleImpl extends SafeValueImpl implements SafeStyle {\n getTypeName() { return 'Style'; }\n}\nclass SafeScriptImpl extends SafeValueImpl implements SafeScript {\n getTypeName() { return 'Script'; }\n}\nclass SafeUrlImpl extends SafeValueImpl implements SafeUrl {\n getTypeName() { return 'URL'; }\n}\nclass SafeResourceUrlImpl extends SafeValueImpl implements SafeResourceUrl {\n getTypeName() { return 'ResourceURL'; }\n}\n","/**\n * @license\n * Copyright Google Inc. 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, PlatformLocation, ɵPLATFORM_BROWSER_ID as PLATFORM_BROWSER_ID} from '@angular/common';\nimport {APP_ID, ApplicationModule, ErrorHandler, Inject, ModuleWithProviders, NgModule, NgZone, Optional, PLATFORM_ID, PLATFORM_INITIALIZER, PlatformRef, RendererFactory2, Sanitizer, SkipSelf, StaticProvider, Testability, createPlatformFactory, platformCore, ɵAPP_ROOT as APP_ROOT, ɵConsole as Console} from '@angular/core';\n\nimport {BrowserDomAdapter} from './browser/browser_adapter';\nimport {BrowserPlatformLocation} from './browser/location/browser_platform_location';\nimport {SERVER_TRANSITION_PROVIDERS, TRANSITION_ID} from './browser/server-transition';\nimport {BrowserGetTestability} from './browser/testability';\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_GESTURE_CONFIG, HAMMER_LOADER, HammerGestureConfig, HammerGesturesPlugin} 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 const INTERNAL_BROWSER_PLATFORM_PROVIDERS: StaticProvider[] = [\n {provide: PLATFORM_ID, useValue: PLATFORM_BROWSER_ID},\n {provide: PLATFORM_INITIALIZER, useValue: initDomAdapter, multi: true},\n {provide: PlatformLocation, useClass: BrowserPlatformLocation, deps: [DOCUMENT]},\n {provide: DOCUMENT, useFactory: _document, deps: []},\n];\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](http://g.co/ng/security).\n * @publicApi\n */\nexport const BROWSER_SANITIZATION_PROVIDERS: StaticProvider[] = [\n {provide: Sanitizer, useExisting: DomSanitizer},\n {provide: DomSanitizer, useClass: DomSanitizerImpl, deps: [DOCUMENT]},\n];\n\n/**\n * @publicApi\n */\nexport const platformBrowser: (extraProviders?: StaticProvider[]) => PlatformRef =\n createPlatformFactory(platformCore, 'browser', INTERNAL_BROWSER_PLATFORM_PROVIDERS);\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 return document;\n}\n\nexport const BROWSER_MODULE_PROVIDERS: StaticProvider[] = [\n BROWSER_SANITIZATION_PROVIDERS,\n {provide: APP_ROOT, useValue: true},\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 {\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 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 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 Inc. 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, ɵɵinject} from '@angular/core';\n\nimport {DomAdapter, getDOM} from '../dom/dom_adapter';\n\n\n\n/**\n * Represents a meta element.\n *\n * @publicApi\n */\nexport type MetaDefinition = {\n charset?: string; content?: string; httpEquiv?: string; id?: string; itemprop?: string;\n name?: string;\n property?: string;\n scheme?: string;\n url?: string;\n} &\n{\n // TODO(IgorMinar): this type looks wrong\n [prop: string]: string;\n};\n\n/**\n * Factory to create Meta service.\n */\nexport function createMeta() {\n return new Meta(ɵɵinject(DOCUMENT));\n}\n\n/**\n * A service that can be used to get and add meta tags.\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) { this._dom = getDOM(); }\n\n addTag(tag: MetaDefinition, forceCreation: boolean = false): HTMLMetaElement|null {\n if (!tag) return null;\n return this._getOrCreateElement(tag, forceCreation);\n }\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 getTag(attrSelector: string): HTMLMetaElement|null {\n if (!attrSelector) return null;\n return this._dom.querySelector(this._doc, `meta[${attrSelector}]`) || null;\n }\n\n getTags(attrSelector: string): HTMLMetaElement[] {\n if (!attrSelector) return [];\n const list /*NodeList*/ = this._dom.querySelectorAll(this._doc, `meta[${attrSelector}]`);\n return list ? [].slice.call(list) : [];\n }\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 removeTag(attrSelector: string): void { this.removeTagElement(this.getTag(attrSelector) !); }\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 const elem: HTMLMetaElement = this.getTag(selector) !;\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 if (elem && this._containsAttributes(meta, elem)) return elem;\n }\n const element: HTMLMetaElement = this._dom.createElement('meta') as HTMLMetaElement;\n this._setMetaElementAttributes(meta, element);\n const head = this._dom.getElementsByTagName(this._doc, 'head')[0];\n this._dom.appendChild(head, element);\n return element;\n }\n\n private _setMetaElementAttributes(tag: MetaDefinition, el: HTMLMetaElement): HTMLMetaElement {\n Object.keys(tag).forEach((prop: string) => this._dom.setAttribute(el, 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((key: string) => this._dom.getAttribute(elem, key) === tag[key]);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. 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, ɵɵinject} from '@angular/core';\n\nimport {getDOM} from '../dom/dom_adapter';\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 { return getDOM().getTitle(this._doc); }\n\n /**\n * Set the title of the current HTML document.\n * @param newTitle\n */\n setTitle(newTitle: string) { getDOM().setTitle(this._doc, newTitle); }\n}\n","/**\n * @license\n * Copyright Google Inc. 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 Inc. 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 {getDOM} from '../../dom/dom_adapter';\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>) { this.appRef = ref.injector.get(ApplicationRef); }\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, nor in IE 9 without dev tools opened\n const isProfilerAvailable = window.console.profile != null;\n if (record && isProfilerAvailable) {\n window.console.profile(profileName);\n }\n const start = getDOM().performanceNow();\n let numTicks = 0;\n while (numTicks < 5 || (getDOM().performanceNow() - start) < 500) {\n this.appRef.tick();\n numTicks++;\n }\n const end = getDOM().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","/**\n * @license\n * Copyright Google Inc. 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 Inc. 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 deserialzied 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 { this.store[key] = value; }\n\n /**\n * Remove a key from the store.\n */\n remove<T>(key: StateKey<T>): void { delete this.store[key]; }\n\n /**\n * Test whether a key exists in the store.\n */\n hasKey<T>(key: StateKey<T>) { return this.store.hasOwnProperty(key); }\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 initialState = JSON.parse(unescapeHtml(script.textContent));\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 Inc. 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 {DebugElement, Predicate, Type} from '@angular/core';\nimport {getDOM} from '../../dom/dom_adapter';\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 elements.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_all'}\n */\n static all(): Predicate<DebugElement> { return (debugElement) => true; }\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 getDOM().elementMatches(debugElement.nativeElement, selector) :\n false;\n };\n }\n\n /**\n * Match elements 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<DebugElement> {\n return (debugElement) => debugElement.providerTokens !.indexOf(type) !== -1;\n }\n}\n","/**\n * @license\n * Copyright Google Inc. 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 {BROWSER_SANITIZATION_PROVIDERS as ɵBROWSER_SANITIZATION_PROVIDERS, INTERNAL_BROWSER_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS, initDomAdapter as ɵinitDomAdapter} from './browser';\nexport {BrowserDomAdapter as ɵBrowserDomAdapter} from './browser/browser_adapter';\nexport {BrowserPlatformLocation as ɵBrowserPlatformLocation} from './browser/location/browser_platform_location';\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 {DomAdapter as ɵDomAdapter, getDOM as ɵgetDOM, setRootDomAdapter as ɵsetRootDomAdapter} from './dom/dom_adapter';\nexport {DomRendererFactory2 as ɵDomRendererFactory2, NAMESPACE_URIS as ɵNAMESPACE_URIS, flattenStyles as ɵflattenStyles, 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 Inc. 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 common package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('8.1.1');\n","/**\n * @license\n * Copyright Google Inc. 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, StateKey, TransferState, makeStateKey} 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, HammerGestureConfig, HammerLoader} 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 Inc. 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 Inc. 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_l} 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_i,appInitializerFactory as ɵangular_packages_platform_browser_platform_browser_h} 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 {ELEMENT_PROBE_PROVIDERS__PRE_R3__ as ɵangular_packages_platform_browser_platform_browser_k,_createNgProbe as ɵangular_packages_platform_browser_platform_browser_j} from './src/dom/debug/ng_probe';\nexport {EventManagerPlugin as ɵangular_packages_platform_browser_platform_browser_g} from './src/dom/events/event_manager';"],"names":["tslib_1.__extends","global","parseCookieValue","Injectable","tslib_1.__param","Inject","DOCUMENT","PlatformLocation","InjectionToken","ApplicationInitStatus","APP_INITIALIZER","Injector","setTestabilityGetter","ApplicationRef","NgZone","getDebugNode","NgProbeToken","Optional","ViewEncapsulation","APP_ID","RendererStyleFlags2","isPlatformServer","PLATFORM_ID","Console","SecurityContext","_sanitizeHtml","_sanitizeStyle","_sanitizeUrl","PLATFORM_BROWSER_ID","PLATFORM_INITIALIZER","Sanitizer","createPlatformFactory","platformCore","ErrorHandler","APP_ROOT","RendererFactory2","Testability","NgModule","CommonModule","ApplicationModule","SkipSelf","ɵɵinject","window","Version"],"mappings":"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"}