blob: 0a866d1523aefbb64d4b6e59e7a0c02ce9bc528b [file] [log] [blame]
{"version":3,"sources":["packages/platform-browser/platform-browser.umd.js"],"names":["global","factory","exports","module","require","define","amd","self","ng","platformBrowser","common","core","this","i0","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__read","o","m","Symbol","iterator","e","ar","next","done","push","value","error","_DOM","getDOM","setRootDomAdapter","adapter","urlParsingNode","DomAdapter","resourceLoaderType","get","_attrToPropMap","set","enumerable","configurable","GenericBrowserDomAdapter","_super","_this","_animationPrefix","_transitionEnd","element_1","createElement","document","getStyle","domPrefixes","toLowerCase","transEndEventNames_1","WebkitTransition","MozTransition","OTransition","transition","keys","forEach","_a","getDistributedNodes","el","resolveAndSetHref","baseUrl","href","supportsDOMEvents","supportsNativeShadowDOM","body","createShadowRoot","getAnimationPrefix","getTransitionEnd","supportsAnimation","class","innerHtml","readonly","tabindex","_keyMap","\b","\t","","\u001b","Del","Esc","Left","Right","Up","Down","Menu","Scroll","Win","_chromeNumKeyPadMap","A","B","C","D","E","F","G","H","I","J","K","M","N","O","`","","nodeContains","ɵglobal","contains","node","compareDocumentPosition","BrowserDomAdapter","parse","templateHtml","Error","makeCurrent","hasProperty","element","name","setProperty","getProperty","invoke","methodName","args","__spread","concat","logError","window","console","log","logGroup","group","logGroupEnd","groupEnd","nodeA","nodeB","querySelector","selector","querySelectorAll","on","evt","listener","addEventListener","onAndCancel","removeEventListener","dispatchEvent","createMouseEvent","eventType","getDefaultDocument","createEvent","initEvent","preventDefault","returnValue","isPrevented","defaultPrevented","getInnerHTML","innerHTML","getTemplateContent","isTemplateElement","content","getOuterHTML","outerHTML","nodeName","nodeValue","type","firstChild","nextSibling","parentElement","parentNode","childNodes","childNodesAsList","res","clearNodes","removeChild","appendChild","replaceChild","newChild","oldChild","remove","insertBefore","parent","ref","insertAllBefore","nodes","insertAfter","setInnerHTML","getText","textContent","setText","getValue","setValue","getChecked","checked","setChecked","createComment","text","createTemplate","html","tagName","doc","createElementNS","ns","createTextNode","createScriptTag","attrName","attrValue","setAttribute","createStyleElement","css","style","getShadowRoot","shadowRoot","getHost","host","clone","cloneNode","getElementsByClassName","getElementsByTagName","classList","slice","addClass","className","add","removeClass","hasClass","setStyle","styleName","styleValue","removeStyle","stylename","hasStyle","attributeMap","Map","elAttrs","attributes","attrib","item","hasAttribute","attribute","hasAttributeNS","getAttribute","getAttributeNS","setAttributeNS","removeAttribute","removeAttributeNS","templateAwareRoot","createHtmlDocument","implementation","createHTMLDocument","getBoundingClientRect","top","bottom","left","right","width","height","getTitle","title","setTitle","newTitle","elementMatches","isElementNode","matches","msMatchesSelector","webkitMatchesSelector","isTextNode","nodeType","Node","TEXT_NODE","isCommentNode","COMMENT_NODE","ELEMENT_NODE","hasShadowRoot","HTMLElement","isShadowRoot","DocumentFragment","importIntoDoc","importNode","adoptNode","getHref","getEventKey","event","keyIdentifier","startsWith","String","fromCharCode","parseInt","substring","location","getGlobalEventTarget","getHistory","history","getLocation","getBaseHref","getBaseElementHref","baseElement","relativePath","url","pathname","charAt","resetBaseElement","getUserAgent","navigator","userAgent","setData","getData","getComputedStyle","supportsWebAnimation","Element","performanceNow","performance","now","Date","getTime","supportsCookies","getCookie","ɵparseCookieValue","cookie","setCookie","encodeURIComponent","supportsState","pushState","BrowserPlatformLocation","_doc","_init","_history","getBaseHrefFromDOM","onPopState","fn","onHashChange","protocol","hostname","port","newPath","search","hash","state","replaceState","forward","back","getState","Injectable","Inject","DOCUMENT","PlatformLocation","TRANSITION_ID","InjectionToken","appInitializerFactory","transitionId","injector","ApplicationInitStatus","donePromise","then","dom","filter","SERVER_TRANSITION_PROVIDERS","provide","APP_INITIALIZER","useFactory","deps","Injector","multi","BrowserGetTestability","init","setTestabilityGetter","addToWindow","registry","elem","findInAncestors","testability","findTestabilityInTree","getAllTestabilities","getAllRootElements","callback","testabilities","count","didWork","decrement","didWork_","whenStable","getTestability","exportNgVar","COMPILED","CORE_TOKENS","ApplicationRef","NgZone","INSPECT_GLOBAL_NAME","CORE_TOKENS_GLOBAL_NAME","inspectNativeElement","getDebugNode","_createNgProbe","coreTokens","_ngProbeTokensToMap","tokens","reduce","prev","token","ELEMENT_PROBE_PROVIDERS__PRE_R3__","NgProbeToken","Optional","ELEMENT_PROBE_PROVIDERS","EVENT_MANAGER_PLUGINS","EventManager","plugins","_zone","_eventNameToPlugin","manager","_plugins","reverse","eventName","handler","_findPluginFor","addGlobalEventListener","getZone","plugin","plugin_1","supports","EventManagerPlugin","SharedStylesHost","_stylesSet","Set","addStyles","styles","additions","has","onStylesAdded","getAllStyles","from","DomSharedStylesHost","_hostNodes","_styleNodes","head","_addStylesToHost","styleEl","addHost","hostNode","removeHost","delete","ngOnDestroy","styleNode","NAMESPACE_URIS","svg","xhtml","xlink","xml","xmlns","COMPONENT_REGEX","HOST_ATTR","CONTENT_ATTR","shimContentAttribute","componentShortId","replace","shimHostAttribute","flattenStyles","compId","isArray","decoratePreventDefault","eventHandler","DomRendererFactory2","eventManager","sharedStylesHost","appId","rendererByCompId","defaultRenderer","DefaultDomRenderer2","createRenderer","encapsulation","ViewEncapsulation","Emulated","renderer","id","EmulatedEncapsulationDomRenderer2","applyToHost","Native","ShadowDom","ShadowDomRenderer","begin","end","APP_ID","data","destroy","namespace","createText","refChild","selectRootElement","selectorOrNode","preserveContent","namespaceUri","flags","RendererStyleFlags2","DashCase","Important","removeProperty","checkNoSyntheticProp","listen","AT_CHARCODE","charCodeAt","nameKind","DomSanitizer","component","contentAttr","hostAttr","hostEl","attachShadow","mode","nodeOrShadowRoot","__symbol__","Zone","v","ADD_EVENT_LISTENER","REMOVE_EVENT_LISTENER","symbolNames","stopSymbol","blackListedMap","blackListedEvents","res_1","isBlackListedEvent","globalListener","symbolName","taskDatas","taskData","zone","current","run","copiedTasks","DomEventsPlugin","ngZone","platformId","isPlatformServer","patchEvent","Event","delegate","stopImmediatePropagation","isInAngularZone","globalListenerRegistered","root","callbackRegistered","underlyingRemove","found","splice","PLATFORM_ID","EVENT_NAMES","pan","panstart","panmove","panend","pancancel","panleft","panright","panup","pandown","pinch","pinchstart","pinchmove","pinchend","pinchcancel","pinchin","pinchout","press","pressup","rotate","rotatestart","rotatemove","rotateend","rotatecancel","swipe","swipeleft","swiperight","swipeup","swipedown","tap","HAMMER_GESTURE_CONFIG","HAMMER_LOADER","HammerGestureConfig","events","overrides","buildHammer","mc","Hammer","options","enable","HammerGesturesPlugin","_config","loader","isCustomEvent","warn","cancelRegistration_1","deregister_1","catch","runOutsideAngular","eventObj","runGuarded","off","indexOf","ɵConsole","MODIFIER_KEYS","MODIFIER_KEY_GETTERS","alt","altKey","control","ctrlKey","meta","metaKey","shift","shiftKey","KeyEventsPlugin","KeyEventsPlugin_1","parseEventName","parsedEvent","outsideHandler","eventCallback","parts","split","domEventName","_normalizeKey","pop","fullKey","modifierName","index","result","getEventFullKey","modifierGetter","keyName","DomSanitizerImpl","sanitize","ctx","SecurityContext","NONE","HTML","SafeHtmlImpl","changingThisBreaksApplicationSecurity","checkNotSafeValue","ɵ_sanitizeHtml","STYLE","SafeStyleImpl","ɵ_sanitizeStyle","SCRIPT","SafeScriptImpl","URL","SafeResourceUrlImpl","SafeUrlImpl","ɵ_sanitizeUrl","RESOURCE_URL","expectedType","SafeValueImpl","getTypeName","bypassSecurityTrustHtml","bypassSecurityTrustStyle","bypassSecurityTrustScript","bypassSecurityTrustUrl","bypassSecurityTrustResourceUrl","toString","INTERNAL_BROWSER_PLATFORM_PROVIDERS","useValue","ɵPLATFORM_BROWSER_ID","PLATFORM_INITIALIZER","initDomAdapter","useClass","_document","BROWSER_SANITIZATION_PROVIDERS","Sanitizer","useExisting","createPlatformFactory","platformCore","errorHandler","ErrorHandler","BROWSER_MODULE_PROVIDERS","ɵAPP_ROOT","RendererFactory2","Testability","BrowserModule","parentModule","BrowserModule_1","withServerTransition","params","ngModule","providers","NgModule","CommonModule","ApplicationModule","SkipSelf","createMeta","Meta","ɵɵinject","_dom","addTag","tag","forceCreation","_getOrCreateElement","addTags","tags","getTag","attrSelector","getTags","list","updateTag","_parseSelector","_setMetaElementAttributes","removeTag","removeTagElement","_containsAttributes","prop","attr","every","ngInjectableDef","ɵɵdefineInjectable","providedIn","createTitle","Title","win","ChangeDetectionPerfRecord","msPerTick","numTicks","AngularProfiler","appRef","timeChangeDetection","config","record","isProfilerAvailable","profile","start","tick","profileEnd","toFixed","TransferState","store","onSerializeCallbacks","TransferState_1","initState","transferState","defaultValue","undefined","hasKey","onSerialize","toJson","JSON","stringify","initTransferState","script","getElementById","initialState","unescapeHtml","unescapedText","&a;","&q;","&s;","&l;","&g;","BrowserTransferStateModule","By","all","debugElement","nativeElement","directive","providerTokens","VERSION","Version","ɵangular_packages_platform_browser_platform_browser_c","ɵangular_packages_platform_browser_platform_browser_b","ɵangular_packages_platform_browser_platform_browser_a","ɵangular_packages_platform_browser_platform_browser_l","ɵangular_packages_platform_browser_platform_browser_d","ɵangular_packages_platform_browser_platform_browser_i","ɵangular_packages_platform_browser_platform_browser_h","ɵangular_packages_platform_browser_platform_browser_e","ɵangular_packages_platform_browser_platform_browser_f","ɵangular_packages_platform_browser_platform_browser_k","ɵangular_packages_platform_browser_platform_browser_j","ɵangular_packages_platform_browser_platform_browser_g","disableDebugTools","enableDebugTools","makeStateKey","ɵELEMENT_PROBE_PROVIDERS__POST_R3__","ɵBROWSER_SANITIZATION_PROVIDERS","ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS","ɵinitDomAdapter","ɵBrowserDomAdapter","ɵBrowserPlatformLocation","ɵTRANSITION_ID","ɵBrowserGetTestability","ɵescapeHtml","escapeHtml","escapedText","&","\"","'","<",">","ɵELEMENT_PROBE_PROVIDERS","ɵDomAdapter","ɵgetDOM","ɵsetRootDomAdapter","ɵDomRendererFactory2","ɵNAMESPACE_URIS","ɵflattenStyles","ɵshimContentAttribute","ɵshimHostAttribute","ɵDomEventsPlugin","ɵHammerGesturesPlugin","ɵKeyEventsPlugin","ɵDomSharedStylesHost","ɵSharedStylesHost","ɵDomSanitizerImpl"],"mappings":"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","sourcesContent":["/**\n * @license Angular v8.1.1\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core')) :\n typeof define === 'function' && define.amd ? define('@angular/platform-browser', ['exports', '@angular/common', '@angular/core'], factory) :\n (global = global || self, factory((global.ng = global.ng || {}, global.ng.platformBrowser = {}), global.ng.common, global.ng.core));\n}(this, function (exports, common, i0) { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var 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\n 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\n 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\n 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\n function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n }\r\n\r\n function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n }\r\n\r\n function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n }\r\n\r\n 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 }\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 var _DOM = null;\n function getDOM() {\n return _DOM;\n }\n function setRootDomAdapter(adapter) {\n if (!_DOM) {\n _DOM = adapter;\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 */\n var DomAdapter = /** @class */ (function () {\n function DomAdapter() {\n this.resourceLoaderType = null;\n }\n Object.defineProperty(DomAdapter.prototype, \"attrToPropMap\", {\n /**\n * Maps attribute names to their corresponding property names for cases\n * where attribute name doesn't match property name.\n */\n get: function () { return this._attrToPropMap; },\n set: function (value) { this._attrToPropMap = value; },\n enumerable: true,\n configurable: true\n });\n return DomAdapter;\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 /**\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 */\n var GenericBrowserDomAdapter = /** @class */ (function (_super) {\n __extends(GenericBrowserDomAdapter, _super);\n function GenericBrowserDomAdapter() {\n var _this = _super.call(this) || this;\n _this._animationPrefix = null;\n _this._transitionEnd = null;\n try {\n var element_1 = _this.createElement('div', document);\n if (_this.getStyle(element_1, 'animationName') != null) {\n _this._animationPrefix = '';\n }\n else {\n var domPrefixes = ['Webkit', 'Moz', 'O', 'ms'];\n for (var i = 0; i < domPrefixes.length; i++) {\n if (_this.getStyle(element_1, domPrefixes[i] + 'AnimationName') != null) {\n _this._animationPrefix = '-' + domPrefixes[i].toLowerCase() + '-';\n break;\n }\n }\n }\n var transEndEventNames_1 = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend'\n };\n Object.keys(transEndEventNames_1).forEach(function (key) {\n if (_this.getStyle(element_1, key) != null) {\n _this._transitionEnd = transEndEventNames_1[key];\n }\n });\n }\n catch (_a) {\n _this._animationPrefix = null;\n _this._transitionEnd = null;\n }\n return _this;\n }\n GenericBrowserDomAdapter.prototype.getDistributedNodes = function (el) { return el.getDistributedNodes(); };\n GenericBrowserDomAdapter.prototype.resolveAndSetHref = function (el, baseUrl, href) {\n el.href = href == null ? baseUrl : baseUrl + '/../' + href;\n };\n GenericBrowserDomAdapter.prototype.supportsDOMEvents = function () { return true; };\n GenericBrowserDomAdapter.prototype.supportsNativeShadowDOM = function () {\n return typeof document.body.createShadowRoot === 'function';\n };\n GenericBrowserDomAdapter.prototype.getAnimationPrefix = function () { return this._animationPrefix ? this._animationPrefix : ''; };\n GenericBrowserDomAdapter.prototype.getTransitionEnd = function () { return this._transitionEnd ? this._transitionEnd : ''; };\n GenericBrowserDomAdapter.prototype.supportsAnimation = function () {\n return this._animationPrefix != null && this._transitionEnd != null;\n };\n return GenericBrowserDomAdapter;\n }(DomAdapter));\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 var _attrToPropMap = {\n 'class': 'className',\n 'innerHtml': 'innerHTML',\n 'readonly': 'readOnly',\n 'tabindex': 'tabIndex',\n };\n var DOM_KEY_LOCATION_NUMPAD = 3;\n // Map to convert some key or keyIdentifier values to what will be returned by getEventKey\n var _keyMap = {\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 // 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 var _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 var ɵ0 = function () {\n if (i0.ɵglobal['Node']) {\n return i0.ɵglobal['Node'].prototype.contains || function (node) {\n return !!(this.compareDocumentPosition(node) & 16);\n };\n }\n return undefined;\n };\n var nodeContains = (ɵ0)();\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 */\n var BrowserDomAdapter = /** @class */ (function (_super) {\n __extends(BrowserDomAdapter, _super);\n function BrowserDomAdapter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BrowserDomAdapter.prototype.parse = function (templateHtml) { throw new Error('parse not implemented'); };\n BrowserDomAdapter.makeCurrent = function () { setRootDomAdapter(new BrowserDomAdapter()); };\n BrowserDomAdapter.prototype.hasProperty = function (element, name) { return name in element; };\n BrowserDomAdapter.prototype.setProperty = function (el, name, value) { el[name] = value; };\n BrowserDomAdapter.prototype.getProperty = function (el, name) { return el[name]; };\n BrowserDomAdapter.prototype.invoke = function (el, methodName, args) {\n var _a;\n (_a = el)[methodName].apply(_a, __spread(args));\n };\n // TODO(tbosch): move this into a separate environment class once we have it\n BrowserDomAdapter.prototype.logError = function (error) {\n if (window.console) {\n if (console.error) {\n console.error(error);\n }\n else {\n console.log(error);\n }\n }\n };\n BrowserDomAdapter.prototype.log = function (error) {\n if (window.console) {\n window.console.log && window.console.log(error);\n }\n };\n BrowserDomAdapter.prototype.logGroup = function (error) {\n if (window.console) {\n window.console.group && window.console.group(error);\n }\n };\n BrowserDomAdapter.prototype.logGroupEnd = function () {\n if (window.console) {\n window.console.groupEnd && window.console.groupEnd();\n }\n };\n Object.defineProperty(BrowserDomAdapter.prototype, \"attrToPropMap\", {\n get: function () { return _attrToPropMap; },\n enumerable: true,\n configurable: true\n });\n BrowserDomAdapter.prototype.contains = function (nodeA, nodeB) { return nodeContains.call(nodeA, nodeB); };\n BrowserDomAdapter.prototype.querySelector = function (el, selector) { return el.querySelector(selector); };\n BrowserDomAdapter.prototype.querySelectorAll = function (el, selector) { return el.querySelectorAll(selector); };\n BrowserDomAdapter.prototype.on = function (el, evt, listener) { el.addEventListener(evt, listener, false); };\n BrowserDomAdapter.prototype.onAndCancel = function (el, evt, listener) {\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 function () { el.removeEventListener(evt, listener, false); };\n };\n BrowserDomAdapter.prototype.dispatchEvent = function (el, evt) { el.dispatchEvent(evt); };\n BrowserDomAdapter.prototype.createMouseEvent = function (eventType) {\n var evt = this.getDefaultDocument().createEvent('MouseEvent');\n evt.initEvent(eventType, true, true);\n return evt;\n };\n BrowserDomAdapter.prototype.createEvent = function (eventType) {\n var evt = this.getDefaultDocument().createEvent('Event');\n evt.initEvent(eventType, true, true);\n return evt;\n };\n BrowserDomAdapter.prototype.preventDefault = function (evt) {\n evt.preventDefault();\n evt.returnValue = false;\n };\n BrowserDomAdapter.prototype.isPrevented = function (evt) {\n return evt.defaultPrevented || evt.returnValue != null && !evt.returnValue;\n };\n BrowserDomAdapter.prototype.getInnerHTML = function (el) { return el.innerHTML; };\n BrowserDomAdapter.prototype.getTemplateContent = function (el) {\n return 'content' in el && this.isTemplateElement(el) ? el.content : null;\n };\n BrowserDomAdapter.prototype.getOuterHTML = function (el) { return el.outerHTML; };\n BrowserDomAdapter.prototype.nodeName = function (node) { return node.nodeName; };\n BrowserDomAdapter.prototype.nodeValue = function (node) { return node.nodeValue; };\n BrowserDomAdapter.prototype.type = function (node) { return node.type; };\n BrowserDomAdapter.prototype.content = function (node) {\n if (this.hasProperty(node, 'content')) {\n return node.content;\n }\n else {\n return node;\n }\n };\n BrowserDomAdapter.prototype.firstChild = function (el) { return el.firstChild; };\n BrowserDomAdapter.prototype.nextSibling = function (el) { return el.nextSibling; };\n BrowserDomAdapter.prototype.parentElement = function (el) { return el.parentNode; };\n BrowserDomAdapter.prototype.childNodes = function (el) { return el.childNodes; };\n BrowserDomAdapter.prototype.childNodesAsList = function (el) {\n var childNodes = el.childNodes;\n var res = new Array(childNodes.length);\n for (var i = 0; i < childNodes.length; i++) {\n res[i] = childNodes[i];\n }\n return res;\n };\n BrowserDomAdapter.prototype.clearNodes = function (el) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n };\n BrowserDomAdapter.prototype.appendChild = function (el, node) { el.appendChild(node); };\n BrowserDomAdapter.prototype.removeChild = function (el, node) { el.removeChild(node); };\n BrowserDomAdapter.prototype.replaceChild = function (el, newChild, oldChild) { el.replaceChild(newChild, oldChild); };\n BrowserDomAdapter.prototype.remove = function (node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n return node;\n };\n BrowserDomAdapter.prototype.insertBefore = function (parent, ref, node) { parent.insertBefore(node, ref); };\n BrowserDomAdapter.prototype.insertAllBefore = function (parent, ref, nodes) {\n nodes.forEach(function (n) { return parent.insertBefore(n, ref); });\n };\n BrowserDomAdapter.prototype.insertAfter = function (parent, ref, node) { parent.insertBefore(node, ref.nextSibling); };\n BrowserDomAdapter.prototype.setInnerHTML = function (el, value) { el.innerHTML = value; };\n BrowserDomAdapter.prototype.getText = function (el) { return el.textContent; };\n BrowserDomAdapter.prototype.setText = function (el, value) { el.textContent = value; };\n BrowserDomAdapter.prototype.getValue = function (el) { return el.value; };\n BrowserDomAdapter.prototype.setValue = function (el, value) { el.value = value; };\n BrowserDomAdapter.prototype.getChecked = function (el) { return el.checked; };\n BrowserDomAdapter.prototype.setChecked = function (el, value) { el.checked = value; };\n BrowserDomAdapter.prototype.createComment = function (text) { return this.getDefaultDocument().createComment(text); };\n BrowserDomAdapter.prototype.createTemplate = function (html) {\n var t = this.getDefaultDocument().createElement('template');\n t.innerHTML = html;\n return t;\n };\n BrowserDomAdapter.prototype.createElement = function (tagName, doc) {\n doc = doc || this.getDefaultDocument();\n return doc.createElement(tagName);\n };\n BrowserDomAdapter.prototype.createElementNS = function (ns, tagName, doc) {\n doc = doc || this.getDefaultDocument();\n return doc.createElementNS(ns, tagName);\n };\n BrowserDomAdapter.prototype.createTextNode = function (text, doc) {\n doc = doc || this.getDefaultDocument();\n return doc.createTextNode(text);\n };\n BrowserDomAdapter.prototype.createScriptTag = function (attrName, attrValue, doc) {\n doc = doc || this.getDefaultDocument();\n var el = doc.createElement('SCRIPT');\n el.setAttribute(attrName, attrValue);\n return el;\n };\n BrowserDomAdapter.prototype.createStyleElement = function (css, doc) {\n doc = doc || this.getDefaultDocument();\n var style = doc.createElement('style');\n this.appendChild(style, this.createTextNode(css, doc));\n return style;\n };\n BrowserDomAdapter.prototype.createShadowRoot = function (el) { return el.createShadowRoot(); };\n BrowserDomAdapter.prototype.getShadowRoot = function (el) { return el.shadowRoot; };\n BrowserDomAdapter.prototype.getHost = function (el) { return el.host; };\n BrowserDomAdapter.prototype.clone = function (node) { return node.cloneNode(true); };\n BrowserDomAdapter.prototype.getElementsByClassName = function (element, name) {\n return element.getElementsByClassName(name);\n };\n BrowserDomAdapter.prototype.getElementsByTagName = function (element, name) {\n return element.getElementsByTagName(name);\n };\n BrowserDomAdapter.prototype.classList = function (element) { return Array.prototype.slice.call(element.classList, 0); };\n BrowserDomAdapter.prototype.addClass = function (element, className) { element.classList.add(className); };\n BrowserDomAdapter.prototype.removeClass = function (element, className) { element.classList.remove(className); };\n BrowserDomAdapter.prototype.hasClass = function (element, className) {\n return element.classList.contains(className);\n };\n BrowserDomAdapter.prototype.setStyle = function (element, styleName, styleValue) {\n element.style[styleName] = styleValue;\n };\n BrowserDomAdapter.prototype.removeStyle = function (element, stylename) {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n element.style[stylename] = '';\n };\n BrowserDomAdapter.prototype.getStyle = function (element, stylename) { return element.style[stylename]; };\n BrowserDomAdapter.prototype.hasStyle = function (element, styleName, styleValue) {\n var value = this.getStyle(element, styleName) || '';\n return styleValue ? value == styleValue : value.length > 0;\n };\n BrowserDomAdapter.prototype.tagName = function (element) { return element.tagName; };\n BrowserDomAdapter.prototype.attributeMap = function (element) {\n var res = new Map();\n var elAttrs = element.attributes;\n for (var i = 0; i < elAttrs.length; i++) {\n var attrib = elAttrs.item(i);\n res.set(attrib.name, attrib.value);\n }\n return res;\n };\n BrowserDomAdapter.prototype.hasAttribute = function (element, attribute) {\n return element.hasAttribute(attribute);\n };\n BrowserDomAdapter.prototype.hasAttributeNS = function (element, ns, attribute) {\n return element.hasAttributeNS(ns, attribute);\n };\n BrowserDomAdapter.prototype.getAttribute = function (element, attribute) {\n return element.getAttribute(attribute);\n };\n BrowserDomAdapter.prototype.getAttributeNS = function (element, ns, name) {\n return element.getAttributeNS(ns, name);\n };\n BrowserDomAdapter.prototype.setAttribute = function (element, name, value) { element.setAttribute(name, value); };\n BrowserDomAdapter.prototype.setAttributeNS = function (element, ns, name, value) {\n element.setAttributeNS(ns, name, value);\n };\n BrowserDomAdapter.prototype.removeAttribute = function (element, attribute) { element.removeAttribute(attribute); };\n BrowserDomAdapter.prototype.removeAttributeNS = function (element, ns, name) {\n element.removeAttributeNS(ns, name);\n };\n BrowserDomAdapter.prototype.templateAwareRoot = function (el) { return this.isTemplateElement(el) ? this.content(el) : el; };\n BrowserDomAdapter.prototype.createHtmlDocument = function () {\n return document.implementation.createHTMLDocument('fakeTitle');\n };\n BrowserDomAdapter.prototype.getDefaultDocument = function () { return document; };\n BrowserDomAdapter.prototype.getBoundingClientRect = function (el) {\n try {\n return el.getBoundingClientRect();\n }\n catch (_a) {\n return { top: 0, bottom: 0, left: 0, right: 0, width: 0, height: 0 };\n }\n };\n BrowserDomAdapter.prototype.getTitle = function (doc) { return doc.title; };\n BrowserDomAdapter.prototype.setTitle = function (doc, newTitle) { doc.title = newTitle || ''; };\n BrowserDomAdapter.prototype.elementMatches = function (n, selector) {\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 return false;\n };\n BrowserDomAdapter.prototype.isTemplateElement = function (el) {\n return this.isElementNode(el) && el.nodeName === 'TEMPLATE';\n };\n BrowserDomAdapter.prototype.isTextNode = function (node) { return node.nodeType === Node.TEXT_NODE; };\n BrowserDomAdapter.prototype.isCommentNode = function (node) { return node.nodeType === Node.COMMENT_NODE; };\n BrowserDomAdapter.prototype.isElementNode = function (node) { return node.nodeType === Node.ELEMENT_NODE; };\n BrowserDomAdapter.prototype.hasShadowRoot = function (node) {\n return node.shadowRoot != null && node instanceof HTMLElement;\n };\n BrowserDomAdapter.prototype.isShadowRoot = function (node) { return node instanceof DocumentFragment; };\n BrowserDomAdapter.prototype.importIntoDoc = function (node) { return document.importNode(this.templateAwareRoot(node), true); };\n BrowserDomAdapter.prototype.adoptNode = function (node) { return document.adoptNode(node); };\n BrowserDomAdapter.prototype.getHref = function (el) { return el.getAttribute('href'); };\n BrowserDomAdapter.prototype.getEventKey = function (event) {\n var 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[key];\n }\n }\n }\n return _keyMap[key] || key;\n };\n BrowserDomAdapter.prototype.getGlobalEventTarget = function (doc, target) {\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 BrowserDomAdapter.prototype.getHistory = function () { return window.history; };\n BrowserDomAdapter.prototype.getLocation = function () { return window.location; };\n BrowserDomAdapter.prototype.getBaseHref = function (doc) {\n var href = getBaseElementHref();\n return href == null ? null : relativePath(href);\n };\n BrowserDomAdapter.prototype.resetBaseElement = function () { baseElement = null; };\n BrowserDomAdapter.prototype.getUserAgent = function () { return window.navigator.userAgent; };\n BrowserDomAdapter.prototype.setData = function (element, name, value) {\n this.setAttribute(element, 'data-' + name, value);\n };\n BrowserDomAdapter.prototype.getData = function (element, name) {\n return this.getAttribute(element, 'data-' + name);\n };\n BrowserDomAdapter.prototype.getComputedStyle = function (element) { return getComputedStyle(element); };\n // TODO(tbosch): move this into a separate environment class once we have it\n BrowserDomAdapter.prototype.supportsWebAnimation = function () {\n return typeof Element.prototype['animate'] === 'function';\n };\n BrowserDomAdapter.prototype.performanceNow = function () {\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 BrowserDomAdapter.prototype.supportsCookies = function () { return true; };\n BrowserDomAdapter.prototype.getCookie = function (name) { return common.ɵparseCookieValue(document.cookie, name); };\n BrowserDomAdapter.prototype.setCookie = function (name, value) {\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 return BrowserDomAdapter;\n }(GenericBrowserDomAdapter));\n var baseElement = null;\n function getBaseElementHref() {\n if (!baseElement) {\n baseElement = document.querySelector('base');\n if (!baseElement) {\n return null;\n }\n }\n return baseElement.getAttribute('href');\n }\n // based on urlUtils.js in AngularJS 1\n var urlParsingNode;\n function relativePath(url) {\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 /**\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 function supportsState() {\n return !!window.history.pushState;\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 /**\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 var BrowserPlatformLocation = /** @class */ (function (_super) {\n __extends(BrowserPlatformLocation, _super);\n function BrowserPlatformLocation(_doc) {\n var _this = _super.call(this) || this;\n _this._doc = _doc;\n _this._init();\n return _this;\n }\n // This is moved to its own method so that `MockPlatformLocationStrategy` can overwrite it\n /** @internal */\n BrowserPlatformLocation.prototype._init = function () {\n this.location = getDOM().getLocation();\n this._history = getDOM().getHistory();\n };\n BrowserPlatformLocation.prototype.getBaseHrefFromDOM = function () { return getDOM().getBaseHref(this._doc); };\n BrowserPlatformLocation.prototype.onPopState = function (fn) {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('popstate', fn, false);\n };\n BrowserPlatformLocation.prototype.onHashChange = function (fn) {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('hashchange', fn, false);\n };\n Object.defineProperty(BrowserPlatformLocation.prototype, \"href\", {\n get: function () { return this.location.href; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserPlatformLocation.prototype, \"protocol\", {\n get: function () { return this.location.protocol; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserPlatformLocation.prototype, \"hostname\", {\n get: function () { return this.location.hostname; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserPlatformLocation.prototype, \"port\", {\n get: function () { return this.location.port; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserPlatformLocation.prototype, \"pathname\", {\n get: function () { return this.location.pathname; },\n set: function (newPath) { this.location.pathname = newPath; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserPlatformLocation.prototype, \"search\", {\n get: function () { return this.location.search; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserPlatformLocation.prototype, \"hash\", {\n get: function () { return this.location.hash; },\n enumerable: true,\n configurable: true\n });\n BrowserPlatformLocation.prototype.pushState = function (state, title, url) {\n if (supportsState()) {\n this._history.pushState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n };\n BrowserPlatformLocation.prototype.replaceState = function (state, title, url) {\n if (supportsState()) {\n this._history.replaceState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n };\n BrowserPlatformLocation.prototype.forward = function () { this._history.forward(); };\n BrowserPlatformLocation.prototype.back = function () { this._history.back(); };\n BrowserPlatformLocation.prototype.getState = function () { return this._history.state; };\n BrowserPlatformLocation = __decorate([\n i0.Injectable(),\n __param(0, i0.Inject(common.DOCUMENT)),\n __metadata(\"design:paramtypes\", [Object])\n ], BrowserPlatformLocation);\n return BrowserPlatformLocation;\n }(common.PlatformLocation));\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 /**\n * An id that identifies a particular application being bootstrapped, that should\n * match across the client/server boundary.\n */\n var TRANSITION_ID = new i0.InjectionToken('TRANSITION_ID');\n function appInitializerFactory(transitionId, document, injector) {\n return function () {\n // Wait for all application initializers to be completed before removing the styles set by\n // the server.\n injector.get(i0.ApplicationInitStatus).donePromise.then(function () {\n var dom = getDOM();\n var styles = Array.prototype.slice.apply(dom.querySelectorAll(document, \"style[ng-transition]\"));\n styles.filter(function (el) { return dom.getAttribute(el, 'ng-transition') === transitionId; })\n .forEach(function (el) { return dom.remove(el); });\n });\n };\n }\n var SERVER_TRANSITION_PROVIDERS = [\n {\n provide: i0.APP_INITIALIZER,\n useFactory: appInitializerFactory,\n deps: [TRANSITION_ID, common.DOCUMENT, i0.Injector],\n multi: true\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 var BrowserGetTestability = /** @class */ (function () {\n function BrowserGetTestability() {\n }\n BrowserGetTestability.init = function () { i0.setTestabilityGetter(new BrowserGetTestability()); };\n BrowserGetTestability.prototype.addToWindow = function (registry) {\n i0.ɵglobal['getAngularTestability'] = function (elem, findInAncestors) {\n if (findInAncestors === void 0) { findInAncestors = true; }\n var 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 i0.ɵglobal['getAllAngularTestabilities'] = function () { return registry.getAllTestabilities(); };\n i0.ɵglobal['getAllAngularRootElements'] = function () { return registry.getAllRootElements(); };\n var whenAllStable = function (callback /** TODO #9100 */) {\n var testabilities = i0.ɵglobal['getAllAngularTestabilities']();\n var count = testabilities.length;\n var didWork = false;\n var decrement = function (didWork_ /** TODO #9100 */) {\n didWork = didWork || didWork_;\n count--;\n if (count == 0) {\n callback(didWork);\n }\n };\n testabilities.forEach(function (testability /** TODO #9100 */) {\n testability.whenStable(decrement);\n });\n };\n if (!i0.ɵglobal['frameworkStabilizers']) {\n i0.ɵglobal['frameworkStabilizers'] = [];\n }\n i0.ɵglobal['frameworkStabilizers'].push(whenAllStable);\n };\n BrowserGetTestability.prototype.findTestabilityInTree = function (registry, elem, findInAncestors) {\n if (elem == null) {\n return null;\n }\n var t = registry.getTestability(elem);\n if (t != null) {\n return t;\n }\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 return BrowserGetTestability;\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 /**\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 */\n function exportNgVar(name, value) {\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 var ng = i0.ɵglobal['ng'] = i0.ɵglobal['ng'] || {};\n ng[name] = value;\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 var ɵ0$1 = function () { return ({\n 'ApplicationRef': i0.ApplicationRef,\n 'NgZone': i0.NgZone,\n }); };\n var CORE_TOKENS = (ɵ0$1)();\n var INSPECT_GLOBAL_NAME = 'probe';\n var CORE_TOKENS_GLOBAL_NAME = 'coreTokens';\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 */\n function inspectNativeElement(element) {\n return i0.getDebugNode(element);\n }\n function _createNgProbe(coreTokens) {\n exportNgVar(INSPECT_GLOBAL_NAME, inspectNativeElement);\n exportNgVar(CORE_TOKENS_GLOBAL_NAME, __assign({}, CORE_TOKENS, _ngProbeTokensToMap(coreTokens || [])));\n return function () { return inspectNativeElement; };\n }\n function _ngProbeTokensToMap(tokens) {\n return tokens.reduce(function (prev, t) { return (prev[t.name] = t.token, prev); }, {});\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 */\n var ELEMENT_PROBE_PROVIDERS__POST_R3__ = [];\n /**\n * Providers which support debugging Angular applications (e.g. via `ng.probe`).\n */\n var ELEMENT_PROBE_PROVIDERS__PRE_R3__ = [\n {\n provide: i0.APP_INITIALIZER,\n useFactory: _createNgProbe,\n deps: [\n [i0.NgProbeToken, new i0.Optional()],\n ],\n multi: true,\n },\n ];\n var ELEMENT_PROBE_PROVIDERS = ELEMENT_PROBE_PROVIDERS__PRE_R3__;\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 /**\n * The injection token for the event-manager plug-in service.\n *\n * @publicApi\n */\n var EVENT_MANAGER_PLUGINS = new i0.InjectionToken('EventManagerPlugins');\n /**\n * An injectable service that provides event management for Angular\n * through a browser plug-in.\n *\n * @publicApi\n */\n var EventManager = /** @class */ (function () {\n /**\n * Initializes an instance of the event-manager service.\n */\n function EventManager(plugins, _zone) {\n var _this = this;\n this._zone = _zone;\n this._eventNameToPlugin = new Map();\n plugins.forEach(function (p) { return p.manager = _this; });\n this._plugins = plugins.slice().reverse();\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 EventManager.prototype.addEventListener = function (element, eventName, handler) {\n var plugin = this._findPluginFor(eventName);\n return plugin.addEventListener(element, eventName, handler);\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 EventManager.prototype.addGlobalEventListener = function (target, eventName, handler) {\n var plugin = this._findPluginFor(eventName);\n return plugin.addGlobalEventListener(target, eventName, handler);\n };\n /**\n * Retrieves the compilation zone in which event listeners are registered.\n */\n EventManager.prototype.getZone = function () { return this._zone; };\n /** @internal */\n EventManager.prototype._findPluginFor = function (eventName) {\n var plugin = this._eventNameToPlugin.get(eventName);\n if (plugin) {\n return plugin;\n }\n var plugins = this._plugins;\n for (var i = 0; i < plugins.length; i++) {\n var plugin_1 = plugins[i];\n if (plugin_1.supports(eventName)) {\n this._eventNameToPlugin.set(eventName, plugin_1);\n return plugin_1;\n }\n }\n throw new Error(\"No event manager plugin found for event \" + eventName);\n };\n EventManager = __decorate([\n i0.Injectable(),\n __param(0, i0.Inject(EVENT_MANAGER_PLUGINS)),\n __metadata(\"design:paramtypes\", [Array, i0.NgZone])\n ], EventManager);\n return EventManager;\n }());\n var EventManagerPlugin = /** @class */ (function () {\n function EventManagerPlugin(_doc) {\n this._doc = _doc;\n }\n EventManagerPlugin.prototype.addGlobalEventListener = function (element, eventName, handler) {\n var target = 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 return EventManagerPlugin;\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 var SharedStylesHost = /** @class */ (function () {\n function SharedStylesHost() {\n /** @internal */\n this._stylesSet = new Set();\n }\n SharedStylesHost.prototype.addStyles = function (styles) {\n var _this = this;\n var additions = new Set();\n styles.forEach(function (style) {\n if (!_this._stylesSet.has(style)) {\n _this._stylesSet.add(style);\n additions.add(style);\n }\n });\n this.onStylesAdded(additions);\n };\n SharedStylesHost.prototype.onStylesAdded = function (additions) { };\n SharedStylesHost.prototype.getAllStyles = function () { return Array.from(this._stylesSet); };\n SharedStylesHost = __decorate([\n i0.Injectable()\n ], SharedStylesHost);\n return SharedStylesHost;\n }());\n var DomSharedStylesHost = /** @class */ (function (_super) {\n __extends(DomSharedStylesHost, _super);\n function DomSharedStylesHost(_doc) {\n var _this = _super.call(this) || this;\n _this._doc = _doc;\n _this._hostNodes = new Set();\n _this._styleNodes = new Set();\n _this._hostNodes.add(_doc.head);\n return _this;\n }\n DomSharedStylesHost.prototype._addStylesToHost = function (styles, host) {\n var _this = this;\n styles.forEach(function (style) {\n var styleEl = _this._doc.createElement('style');\n styleEl.textContent = style;\n _this._styleNodes.add(host.appendChild(styleEl));\n });\n };\n DomSharedStylesHost.prototype.addHost = function (hostNode) {\n this._addStylesToHost(this._stylesSet, hostNode);\n this._hostNodes.add(hostNode);\n };\n DomSharedStylesHost.prototype.removeHost = function (hostNode) { this._hostNodes.delete(hostNode); };\n DomSharedStylesHost.prototype.onStylesAdded = function (additions) {\n var _this = this;\n this._hostNodes.forEach(function (hostNode) { return _this._addStylesToHost(additions, hostNode); });\n };\n DomSharedStylesHost.prototype.ngOnDestroy = function () { this._styleNodes.forEach(function (styleNode) { return getDOM().remove(styleNode); }); };\n DomSharedStylesHost = __decorate([\n i0.Injectable(),\n __param(0, i0.Inject(common.DOCUMENT)),\n __metadata(\"design:paramtypes\", [Object])\n ], DomSharedStylesHost);\n return DomSharedStylesHost;\n }(SharedStylesHost));\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 var NAMESPACE_URIS = {\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 var COMPONENT_REGEX = /%COMP%/g;\n var COMPONENT_VARIABLE = '%COMP%';\n var HOST_ATTR = \"_nghost-\" + COMPONENT_VARIABLE;\n var CONTENT_ATTR = \"_ngcontent-\" + COMPONENT_VARIABLE;\n function shimContentAttribute(componentShortId) {\n return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n }\n function shimHostAttribute(componentShortId) {\n return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n }\n function flattenStyles(compId, styles, target) {\n for (var i = 0; i < styles.length; i++) {\n var style = styles[i];\n if (Array.isArray(style)) {\n flattenStyles(compId, style, target);\n }\n else {\n style = style.replace(COMPONENT_REGEX, compId);\n target.push(style);\n }\n }\n return target;\n }\n function decoratePreventDefault(eventHandler) {\n return function (event) {\n var 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 var DomRendererFactory2 = /** @class */ (function () {\n function DomRendererFactory2(eventManager, sharedStylesHost, appId) {\n this.eventManager = eventManager;\n this.sharedStylesHost = sharedStylesHost;\n this.appId = appId;\n this.rendererByCompId = new Map();\n this.defaultRenderer = new DefaultDomRenderer2(eventManager);\n }\n DomRendererFactory2.prototype.createRenderer = function (element, type) {\n if (!element || !type) {\n return this.defaultRenderer;\n }\n switch (type.encapsulation) {\n case i0.ViewEncapsulation.Emulated: {\n var renderer = this.rendererByCompId.get(type.id);\n if (!renderer) {\n renderer = new EmulatedEncapsulationDomRenderer2(this.eventManager, this.sharedStylesHost, type, this.appId);\n this.rendererByCompId.set(type.id, renderer);\n }\n renderer.applyToHost(element);\n return renderer;\n }\n case i0.ViewEncapsulation.Native:\n case i0.ViewEncapsulation.ShadowDom:\n return new ShadowDomRenderer(this.eventManager, this.sharedStylesHost, element, type);\n default: {\n if (!this.rendererByCompId.has(type.id)) {\n var 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 DomRendererFactory2.prototype.begin = function () { };\n DomRendererFactory2.prototype.end = function () { };\n DomRendererFactory2 = __decorate([\n i0.Injectable(),\n __param(2, i0.Inject(i0.APP_ID)),\n __metadata(\"design:paramtypes\", [EventManager, DomSharedStylesHost, String])\n ], DomRendererFactory2);\n return DomRendererFactory2;\n }());\n var DefaultDomRenderer2 = /** @class */ (function () {\n function DefaultDomRenderer2(eventManager) {\n this.eventManager = eventManager;\n this.data = Object.create(null);\n }\n DefaultDomRenderer2.prototype.destroy = function () { };\n DefaultDomRenderer2.prototype.createElement = function (name, namespace) {\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 return document.createElement(name);\n };\n DefaultDomRenderer2.prototype.createComment = function (value) { return document.createComment(value); };\n DefaultDomRenderer2.prototype.createText = function (value) { return document.createTextNode(value); };\n DefaultDomRenderer2.prototype.appendChild = function (parent, newChild) { parent.appendChild(newChild); };\n DefaultDomRenderer2.prototype.insertBefore = function (parent, newChild, refChild) {\n if (parent) {\n parent.insertBefore(newChild, refChild);\n }\n };\n DefaultDomRenderer2.prototype.removeChild = function (parent, oldChild) {\n if (parent) {\n parent.removeChild(oldChild);\n }\n };\n DefaultDomRenderer2.prototype.selectRootElement = function (selectorOrNode, preserveContent) {\n var el = 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 DefaultDomRenderer2.prototype.parentNode = function (node) { return node.parentNode; };\n DefaultDomRenderer2.prototype.nextSibling = function (node) { return node.nextSibling; };\n DefaultDomRenderer2.prototype.setAttribute = function (el, name, value, namespace) {\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 var namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.setAttributeNS(namespaceUri, name, value);\n }\n else {\n el.setAttribute(name, value);\n }\n }\n else {\n el.setAttribute(name, value);\n }\n };\n DefaultDomRenderer2.prototype.removeAttribute = function (el, name, namespace) {\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 var namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.removeAttributeNS(namespaceUri, name);\n }\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 }\n else {\n el.removeAttribute(name);\n }\n };\n DefaultDomRenderer2.prototype.addClass = function (el, name) { el.classList.add(name); };\n DefaultDomRenderer2.prototype.removeClass = function (el, name) { el.classList.remove(name); };\n DefaultDomRenderer2.prototype.setStyle = function (el, style, value, flags) {\n if (flags & i0.RendererStyleFlags2.DashCase) {\n el.style.setProperty(style, value, !!(flags & i0.RendererStyleFlags2.Important) ? 'important' : '');\n }\n else {\n el.style[style] = value;\n }\n };\n DefaultDomRenderer2.prototype.removeStyle = function (el, style, flags) {\n if (flags & i0.RendererStyleFlags2.DashCase) {\n el.style.removeProperty(style);\n }\n else {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n el.style[style] = '';\n }\n };\n DefaultDomRenderer2.prototype.setProperty = function (el, name, value) {\n checkNoSyntheticProp(name, 'property');\n el[name] = value;\n };\n DefaultDomRenderer2.prototype.setValue = function (node, value) { node.nodeValue = value; };\n DefaultDomRenderer2.prototype.listen = function (target, event, callback) {\n checkNoSyntheticProp(event, 'listener');\n if (typeof target === 'string') {\n return this.eventManager.addGlobalEventListener(target, event, decoratePreventDefault(callback));\n }\n return this.eventManager.addEventListener(target, event, decoratePreventDefault(callback));\n };\n return DefaultDomRenderer2;\n }());\n var ɵ0$2 = function () { return '@'.charCodeAt(0); };\n var AT_CHARCODE = (ɵ0$2)();\n function checkNoSyntheticProp(name, nameKind) {\n if (name.charCodeAt(0) === AT_CHARCODE) {\n throw new Error(\"Found the synthetic \" + nameKind + \" \" + name + \". Please include either \\\"BrowserAnimationsModule\\\" or \\\"NoopAnimationsModule\\\" in your application.\");\n }\n }\n var EmulatedEncapsulationDomRenderer2 = /** @class */ (function (_super) {\n __extends(EmulatedEncapsulationDomRenderer2, _super);\n function EmulatedEncapsulationDomRenderer2(eventManager, sharedStylesHost, component, appId) {\n var _this = _super.call(this, eventManager) || this;\n _this.component = component;\n var styles = flattenStyles(appId + '-' + component.id, component.styles, []);\n sharedStylesHost.addStyles(styles);\n _this.contentAttr = shimContentAttribute(appId + '-' + component.id);\n _this.hostAttr = shimHostAttribute(appId + '-' + component.id);\n return _this;\n }\n EmulatedEncapsulationDomRenderer2.prototype.applyToHost = function (element) { _super.prototype.setAttribute.call(this, element, this.hostAttr, ''); };\n EmulatedEncapsulationDomRenderer2.prototype.createElement = function (parent, name) {\n var el = _super.prototype.createElement.call(this, parent, name);\n _super.prototype.setAttribute.call(this, el, this.contentAttr, '');\n return el;\n };\n return EmulatedEncapsulationDomRenderer2;\n }(DefaultDomRenderer2));\n var ShadowDomRenderer = /** @class */ (function (_super) {\n __extends(ShadowDomRenderer, _super);\n function ShadowDomRenderer(eventManager, sharedStylesHost, hostEl, component) {\n var _this = _super.call(this, eventManager) || this;\n _this.sharedStylesHost = sharedStylesHost;\n _this.hostEl = hostEl;\n _this.component = component;\n if (component.encapsulation === i0.ViewEncapsulation.ShadowDom) {\n _this.shadowRoot = hostEl.attachShadow({ mode: 'open' });\n }\n else {\n _this.shadowRoot = hostEl.createShadowRoot();\n }\n _this.sharedStylesHost.addHost(_this.shadowRoot);\n var styles = flattenStyles(component.id, component.styles, []);\n for (var i = 0; i < styles.length; i++) {\n var styleEl = document.createElement('style');\n styleEl.textContent = styles[i];\n _this.shadowRoot.appendChild(styleEl);\n }\n return _this;\n }\n ShadowDomRenderer.prototype.nodeOrShadowRoot = function (node) { return node === this.hostEl ? this.shadowRoot : node; };\n ShadowDomRenderer.prototype.destroy = function () { this.sharedStylesHost.removeHost(this.shadowRoot); };\n ShadowDomRenderer.prototype.appendChild = function (parent, newChild) {\n return _super.prototype.appendChild.call(this, this.nodeOrShadowRoot(parent), newChild);\n };\n ShadowDomRenderer.prototype.insertBefore = function (parent, newChild, refChild) {\n return _super.prototype.insertBefore.call(this, this.nodeOrShadowRoot(parent), newChild, refChild);\n };\n ShadowDomRenderer.prototype.removeChild = function (parent, oldChild) {\n return _super.prototype.removeChild.call(this, this.nodeOrShadowRoot(parent), oldChild);\n };\n ShadowDomRenderer.prototype.parentNode = function (node) {\n return this.nodeOrShadowRoot(_super.prototype.parentNode.call(this, this.nodeOrShadowRoot(node)));\n };\n return ShadowDomRenderer;\n }(DefaultDomRenderer2));\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 var ɵ0$3 = function () { return (typeof Zone !== 'undefined') && Zone['__symbol__'] ||\n function (v) { return '__zone_symbol__' + v; }; };\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 */\n var __symbol__ = (ɵ0$3)();\n var ADD_EVENT_LISTENER = __symbol__('addEventListener');\n var REMOVE_EVENT_LISTENER = __symbol__('removeEventListener');\n var symbolNames = {};\n var FALSE = 'FALSE';\n var ANGULAR = 'ANGULAR';\n var NATIVE_ADD_LISTENER = 'addEventListener';\n var NATIVE_REMOVE_LISTENER = 'removeEventListener';\n // use the same symbol string which is used in zone.js\n var stopSymbol = '__zone_symbol__propagationStopped';\n var stopMethodSymbol = '__zone_symbol__stopImmediatePropagation';\n var ɵ1 = function () {\n var blackListedEvents = (typeof Zone !== 'undefined') && Zone[__symbol__('BLACK_LISTED_EVENTS')];\n if (blackListedEvents) {\n var res_1 = {};\n blackListedEvents.forEach(function (eventName) { res_1[eventName] = eventName; });\n return res_1;\n }\n return undefined;\n };\n var blackListedMap = (ɵ1)();\n var isBlackListedEvent = function (eventName) {\n if (!blackListedMap) {\n return false;\n }\n return blackListedMap.hasOwnProperty(eventName);\n };\n // a global listener to handle all dom event,\n // so we do not need to create a closure every time\n var globalListener = function (event) {\n var symbolName = symbolNames[event.type];\n if (!symbolName) {\n return;\n }\n var taskDatas = this[symbolName];\n if (!taskDatas) {\n return;\n }\n var args = [event];\n if (taskDatas.length === 1) {\n // if taskDatas only have one element, just invoke it\n var 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 }\n else {\n return taskData.handler.apply(this, args);\n }\n }\n else {\n // copy tasks as a snapshot to avoid event handlers remove\n // itself or others\n var copiedTasks = taskDatas.slice();\n for (var i = 0; i < copiedTasks.length; i++) {\n // if other listener call event.stopImmediatePropagation\n // just break\n if (event[stopSymbol] === true) {\n break;\n }\n var 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 }\n else {\n taskData.handler.apply(this, args);\n }\n }\n }\n };\n var DomEventsPlugin = /** @class */ (function (_super) {\n __extends(DomEventsPlugin, _super);\n function DomEventsPlugin(doc, ngZone, platformId) {\n var _this = _super.call(this, doc) || this;\n _this.ngZone = ngZone;\n if (!platformId || !common.isPlatformServer(platformId)) {\n _this.patchEvent();\n }\n return _this;\n }\n DomEventsPlugin.prototype.patchEvent = function () {\n if (typeof Event === 'undefined' || !Event || !Event.prototype) {\n return;\n }\n if (Event.prototype[stopMethodSymbol]) {\n // already patched by zone.js\n return;\n }\n var delegate = Event.prototype[stopMethodSymbol] =\n Event.prototype.stopImmediatePropagation;\n Event.prototype.stopImmediatePropagation = function () {\n if (this) {\n this[stopSymbol] = true;\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 // This plugin should come last in the list of plugins, because it accepts all\n // events.\n DomEventsPlugin.prototype.supports = function (eventName) { return true; };\n DomEventsPlugin.prototype.addEventListener = function (element, eventName, handler) {\n var _this = this;\n var zoneJsLoaded = element[ADD_EVENT_LISTENER];\n var callback = handler;\n // if zonejs is loaded and current zone is not ngZone\n // we keep Zone.current on target for later restoration.\n if (zoneJsLoaded && (!i0.NgZone.isInAngularZone() || isBlackListedEvent(eventName))) {\n var symbolName = symbolNames[eventName];\n if (!symbolName) {\n symbolName = symbolNames[eventName] = __symbol__(ANGULAR + eventName + FALSE);\n }\n var taskDatas = element[symbolName];\n var globalListenerRegistered = taskDatas && taskDatas.length > 0;\n if (!taskDatas) {\n taskDatas = element[symbolName] = [];\n }\n var zone = isBlackListedEvent(eventName) ? Zone.root : Zone.current;\n if (taskDatas.length === 0) {\n taskDatas.push({ zone: zone, handler: callback });\n }\n else {\n var callbackRegistered = false;\n for (var 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 if (!globalListenerRegistered) {\n element[ADD_EVENT_LISTENER](eventName, globalListener, false);\n }\n }\n else {\n element[NATIVE_ADD_LISTENER](eventName, callback, false);\n }\n return function () { return _this.removeEventListener(element, eventName, callback); };\n };\n DomEventsPlugin.prototype.removeEventListener = function (target, eventName, callback) {\n var 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 var symbolName = symbolNames[eventName];\n var taskDatas = 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 var found = false;\n for (var 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 }\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 DomEventsPlugin = __decorate([\n i0.Injectable(),\n __param(0, i0.Inject(common.DOCUMENT)),\n __param(2, i0.Optional()), __param(2, i0.Inject(i0.PLATFORM_ID)),\n __metadata(\"design:paramtypes\", [Object, i0.NgZone, Object])\n ], DomEventsPlugin);\n return DomEventsPlugin;\n }(EventManagerPlugin));\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 /**\n * Supported HammerJS recognizer event names.\n */\n var 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 * DI token for providing [HammerJS](http://hammerjs.github.io/) support to Angular.\n * @see `HammerGestureConfig`\n *\n * @publicApi\n */\n var HAMMER_GESTURE_CONFIG = new i0.InjectionToken('HammerGestureConfig');\n /**\n * Injection token used to provide a {@link HammerLoader} to Angular.\n *\n * @publicApi\n */\n var HAMMER_LOADER = new i0.InjectionToken('HammerLoader');\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 var HammerGestureConfig = /** @class */ (function () {\n function 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 this.events = [];\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 this.overrides = {};\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 HammerGestureConfig.prototype.buildHammer = function (element) {\n var mc = new Hammer(element, this.options);\n mc.get('pinch').set({ enable: true });\n mc.get('rotate').set({ enable: true });\n for (var eventName in this.overrides) {\n mc.get(eventName).set(this.overrides[eventName]);\n }\n return mc;\n };\n HammerGestureConfig = __decorate([\n i0.Injectable()\n ], HammerGestureConfig);\n return HammerGestureConfig;\n }());\n var HammerGesturesPlugin = /** @class */ (function (_super) {\n __extends(HammerGesturesPlugin, _super);\n function HammerGesturesPlugin(doc, _config, console, loader) {\n var _this = _super.call(this, doc) || this;\n _this._config = _config;\n _this.console = console;\n _this.loader = loader;\n return _this;\n }\n HammerGesturesPlugin.prototype.supports = function (eventName) {\n if (!EVENT_NAMES.hasOwnProperty(eventName.toLowerCase()) && !this.isCustomEvent(eventName)) {\n return false;\n }\n if (!window.Hammer && !this.loader) {\n this.console.warn(\"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 return true;\n };\n HammerGesturesPlugin.prototype.addEventListener = function (element, eventName, handler) {\n var _this = this;\n var zone = this.manager.getZone();\n eventName = eventName.toLowerCase();\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.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 var cancelRegistration_1 = false;\n var deregister_1 = function () { cancelRegistration_1 = true; };\n this.loader()\n .then(function () {\n // If Hammer isn't actually loaded when the custom loader resolves, give up.\n if (!window.Hammer) {\n _this.console.warn(\"The custom HAMMER_LOADER completed, but Hammer.JS is not present.\");\n deregister_1 = function () { };\n return;\n }\n if (!cancelRegistration_1) {\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_1 = _this.addEventListener(element, eventName, handler);\n }\n })\n .catch(function () {\n _this.console.warn(\"The \\\"\" + eventName + \"\\\" event cannot be bound because the custom \" +\n \"Hammer.JS loader failed.\");\n deregister_1 = function () { };\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 function () { deregister_1(); };\n }\n return zone.runOutsideAngular(function () {\n // Creating the manager bind events, must be done outside of angular\n var mc = _this._config.buildHammer(element);\n var callback = function (eventObj) {\n zone.runGuarded(function () { handler(eventObj); });\n };\n mc.on(eventName, callback);\n return function () {\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 HammerGesturesPlugin.prototype.isCustomEvent = function (eventName) { return this._config.events.indexOf(eventName) > -1; };\n HammerGesturesPlugin = __decorate([\n i0.Injectable(),\n __param(0, i0.Inject(common.DOCUMENT)),\n __param(1, i0.Inject(HAMMER_GESTURE_CONFIG)),\n __param(3, i0.Optional()), __param(3, i0.Inject(HAMMER_LOADER)),\n __metadata(\"design:paramtypes\", [Object, HammerGestureConfig, i0.ɵConsole, Object])\n ], HammerGesturesPlugin);\n return HammerGesturesPlugin;\n }(EventManagerPlugin));\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 /**\n * Defines supported modifiers for key events.\n */\n var MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\n var ɵ0$4 = function (event) { return event.altKey; }, ɵ1$1 = function (event) { return event.ctrlKey; }, ɵ2 = function (event) { return event.metaKey; }, ɵ3 = function (event) { return event.shiftKey; };\n /**\n * Retrieves modifiers from key-event objects.\n */\n var MODIFIER_KEY_GETTERS = {\n 'alt': ɵ0$4,\n 'control': ɵ1$1,\n 'meta': ɵ2,\n 'shift': ɵ3\n };\n /**\n * @publicApi\n * A browser plug-in that provides support for handling of key events in Angular.\n */\n var KeyEventsPlugin = /** @class */ (function (_super) {\n __extends(KeyEventsPlugin, _super);\n /**\n * Initializes an instance of the browser plug-in.\n * @param doc The document in which key events will be detected.\n */\n function KeyEventsPlugin(doc) {\n return _super.call(this, doc) || this;\n }\n KeyEventsPlugin_1 = KeyEventsPlugin;\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 KeyEventsPlugin.prototype.supports = function (eventName) { return KeyEventsPlugin_1.parseEventName(eventName) != null; };\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 KeyEventsPlugin.prototype.addEventListener = function (element, eventName, handler) {\n var parsedEvent = KeyEventsPlugin_1.parseEventName(eventName);\n var outsideHandler = KeyEventsPlugin_1.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());\n return this.manager.getZone().runOutsideAngular(function () {\n return getDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);\n });\n };\n KeyEventsPlugin.parseEventName = function (eventName) {\n var parts = eventName.toLowerCase().split('.');\n var domEventName = parts.shift();\n if ((parts.length === 0) || !(domEventName === 'keydown' || domEventName === 'keyup')) {\n return null;\n }\n var key = KeyEventsPlugin_1._normalizeKey(parts.pop());\n var fullKey = '';\n MODIFIER_KEYS.forEach(function (modifierName) {\n var index = parts.indexOf(modifierName);\n if (index > -1) {\n parts.splice(index, 1);\n fullKey += modifierName + '.';\n }\n });\n fullKey += key;\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 var result = {};\n result['domEventName'] = domEventName;\n result['fullKey'] = fullKey;\n return result;\n };\n KeyEventsPlugin.getEventFullKey = function (event) {\n var fullKey = '';\n var key = getDOM().getEventKey(event);\n key = key.toLowerCase();\n if (key === ' ') {\n key = 'space'; // for readability\n }\n else if (key === '.') {\n key = 'dot'; // because '.' is used as a separator in event names\n }\n MODIFIER_KEYS.forEach(function (modifierName) {\n if (modifierName != key) {\n var modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n if (modifierGetter(event)) {\n fullKey += modifierName + '.';\n }\n }\n });\n fullKey += key;\n return fullKey;\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 KeyEventsPlugin.eventCallback = function (fullKey, handler, zone) {\n return function (event /** TODO #9100 */) {\n if (KeyEventsPlugin_1.getEventFullKey(event) === fullKey) {\n zone.runGuarded(function () { return handler(event); });\n }\n };\n };\n /** @internal */\n KeyEventsPlugin._normalizeKey = function (keyName) {\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 var KeyEventsPlugin_1;\n KeyEventsPlugin = KeyEventsPlugin_1 = __decorate([\n i0.Injectable(),\n __param(0, i0.Inject(common.DOCUMENT)),\n __metadata(\"design:paramtypes\", [Object])\n ], KeyEventsPlugin);\n return KeyEventsPlugin;\n }(EventManagerPlugin));\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 /**\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 */\n var DomSanitizer = /** @class */ (function () {\n function DomSanitizer() {\n }\n return DomSanitizer;\n }());\n var DomSanitizerImpl = /** @class */ (function (_super) {\n __extends(DomSanitizerImpl, _super);\n function DomSanitizerImpl(_doc) {\n var _this = _super.call(this) || this;\n _this._doc = _doc;\n return _this;\n }\n DomSanitizerImpl.prototype.sanitize = function (ctx, value) {\n if (value == null)\n return null;\n switch (ctx) {\n case i0.SecurityContext.NONE:\n return value;\n case i0.SecurityContext.HTML:\n if (value instanceof SafeHtmlImpl)\n return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'HTML');\n return i0.ɵ_sanitizeHtml(this._doc, String(value));\n case i0.SecurityContext.STYLE:\n if (value instanceof SafeStyleImpl)\n return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Style');\n return i0.ɵ_sanitizeStyle(value);\n case i0.SecurityContext.SCRIPT:\n if (value instanceof SafeScriptImpl)\n return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Script');\n throw new Error('unsafe value used in a script context');\n case i0.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 i0.ɵ_sanitizeUrl(String(value));\n case i0.SecurityContext.RESOURCE_URL:\n if (value instanceof SafeResourceUrlImpl) {\n return value.changingThisBreaksApplicationSecurity;\n }\n this.checkNotSafeValue(value, 'ResourceURL');\n throw new Error('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 DomSanitizerImpl.prototype.checkNotSafeValue = function (value, expectedType) {\n if (value instanceof SafeValueImpl) {\n throw new Error(\"Required a safe \" + expectedType + \", got a \" + value.getTypeName() + \" \" +\n \"(see http://g.co/ng/security#xss)\");\n }\n };\n DomSanitizerImpl.prototype.bypassSecurityTrustHtml = function (value) { return new SafeHtmlImpl(value); };\n DomSanitizerImpl.prototype.bypassSecurityTrustStyle = function (value) { return new SafeStyleImpl(value); };\n DomSanitizerImpl.prototype.bypassSecurityTrustScript = function (value) { return new SafeScriptImpl(value); };\n DomSanitizerImpl.prototype.bypassSecurityTrustUrl = function (value) { return new SafeUrlImpl(value); };\n DomSanitizerImpl.prototype.bypassSecurityTrustResourceUrl = function (value) {\n return new SafeResourceUrlImpl(value);\n };\n DomSanitizerImpl = __decorate([\n i0.Injectable(),\n __param(0, i0.Inject(common.DOCUMENT)),\n __metadata(\"design:paramtypes\", [Object])\n ], DomSanitizerImpl);\n return DomSanitizerImpl;\n }(DomSanitizer));\n var SafeValueImpl = /** @class */ (function () {\n function SafeValueImpl(changingThisBreaksApplicationSecurity) {\n this.changingThisBreaksApplicationSecurity = changingThisBreaksApplicationSecurity;\n // empty\n }\n SafeValueImpl.prototype.toString = function () {\n return \"SafeValue must use [property]=binding: \" + this.changingThisBreaksApplicationSecurity +\n \" (see http://g.co/ng/security#xss)\";\n };\n return SafeValueImpl;\n }());\n var SafeHtmlImpl = /** @class */ (function (_super) {\n __extends(SafeHtmlImpl, _super);\n function SafeHtmlImpl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SafeHtmlImpl.prototype.getTypeName = function () { return 'HTML'; };\n return SafeHtmlImpl;\n }(SafeValueImpl));\n var SafeStyleImpl = /** @class */ (function (_super) {\n __extends(SafeStyleImpl, _super);\n function SafeStyleImpl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SafeStyleImpl.prototype.getTypeName = function () { return 'Style'; };\n return SafeStyleImpl;\n }(SafeValueImpl));\n var SafeScriptImpl = /** @class */ (function (_super) {\n __extends(SafeScriptImpl, _super);\n function SafeScriptImpl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SafeScriptImpl.prototype.getTypeName = function () { return 'Script'; };\n return SafeScriptImpl;\n }(SafeValueImpl));\n var SafeUrlImpl = /** @class */ (function (_super) {\n __extends(SafeUrlImpl, _super);\n function SafeUrlImpl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SafeUrlImpl.prototype.getTypeName = function () { return 'URL'; };\n return SafeUrlImpl;\n }(SafeValueImpl));\n var SafeResourceUrlImpl = /** @class */ (function (_super) {\n __extends(SafeResourceUrlImpl, _super);\n function SafeResourceUrlImpl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SafeResourceUrlImpl.prototype.getTypeName = function () { return 'ResourceURL'; };\n return SafeResourceUrlImpl;\n }(SafeValueImpl));\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 var ɵ0$5 = common.ɵPLATFORM_BROWSER_ID;\n var INTERNAL_BROWSER_PLATFORM_PROVIDERS = [\n { provide: i0.PLATFORM_ID, useValue: ɵ0$5 },\n { provide: i0.PLATFORM_INITIALIZER, useValue: initDomAdapter, multi: true },\n { provide: common.PlatformLocation, useClass: BrowserPlatformLocation, deps: [common.DOCUMENT] },\n { provide: common.DOCUMENT, useFactory: _document, deps: [] },\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 */\n var BROWSER_SANITIZATION_PROVIDERS = [\n { provide: i0.Sanitizer, useExisting: DomSanitizer },\n { provide: DomSanitizer, useClass: DomSanitizerImpl, deps: [common.DOCUMENT] },\n ];\n /**\n * @publicApi\n */\n var platformBrowser = i0.createPlatformFactory(i0.platformCore, 'browser', INTERNAL_BROWSER_PLATFORM_PROVIDERS);\n function initDomAdapter() {\n BrowserDomAdapter.makeCurrent();\n BrowserGetTestability.init();\n }\n function errorHandler() {\n return new i0.ErrorHandler();\n }\n function _document() {\n return document;\n }\n var BROWSER_MODULE_PROVIDERS = [\n BROWSER_SANITIZATION_PROVIDERS,\n { provide: i0.ɵAPP_ROOT, useValue: true },\n { provide: i0.ErrorHandler, useFactory: errorHandler, deps: [] },\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: DomEventsPlugin,\n multi: true,\n deps: [common.DOCUMENT, i0.NgZone, i0.PLATFORM_ID]\n },\n { provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true, deps: [common.DOCUMENT] },\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: HammerGesturesPlugin,\n multi: true,\n deps: [common.DOCUMENT, HAMMER_GESTURE_CONFIG, i0.ɵConsole, [new i0.Optional(), HAMMER_LOADER]]\n },\n { provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: [] },\n {\n provide: DomRendererFactory2,\n useClass: DomRendererFactory2,\n deps: [EventManager, DomSharedStylesHost, i0.APP_ID]\n },\n { provide: i0.RendererFactory2, useExisting: DomRendererFactory2 },\n { provide: SharedStylesHost, useExisting: DomSharedStylesHost },\n { provide: DomSharedStylesHost, useClass: DomSharedStylesHost, deps: [common.DOCUMENT] },\n { provide: i0.Testability, useClass: i0.Testability, deps: [i0.NgZone] },\n { provide: EventManager, useClass: EventManager, deps: [EVENT_MANAGER_PLUGINS, i0.NgZone] },\n ELEMENT_PROBE_PROVIDERS,\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 var BrowserModule = /** @class */ (function () {\n function BrowserModule(parentModule) {\n if (parentModule) {\n throw new Error(\"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 BrowserModule_1 = BrowserModule;\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 BrowserModule.withServerTransition = function (params) {\n return {\n ngModule: BrowserModule_1,\n providers: [\n { provide: i0.APP_ID, useValue: params.appId },\n { provide: TRANSITION_ID, useExisting: i0.APP_ID },\n SERVER_TRANSITION_PROVIDERS,\n ],\n };\n };\n var BrowserModule_1;\n BrowserModule = BrowserModule_1 = __decorate([\n i0.NgModule({ providers: BROWSER_MODULE_PROVIDERS, exports: [common.CommonModule, i0.ApplicationModule] }),\n __param(0, i0.Optional()), __param(0, i0.SkipSelf()), __param(0, i0.Inject(BrowserModule_1)),\n __metadata(\"design:paramtypes\", [Object])\n ], BrowserModule);\n return BrowserModule;\n }());\n\n /**\n * Factory to create Meta service.\n */\n function createMeta() {\n return new Meta(i0.ɵɵinject(common.DOCUMENT));\n }\n /**\n * A service that can be used to get and add meta tags.\n *\n * @publicApi\n */\n var Meta = /** @class */ (function () {\n function Meta(_doc) {\n this._doc = _doc;\n this._dom = getDOM();\n }\n Meta.prototype.addTag = function (tag, forceCreation) {\n if (forceCreation === void 0) { forceCreation = false; }\n if (!tag)\n return null;\n return this._getOrCreateElement(tag, forceCreation);\n };\n Meta.prototype.addTags = function (tags, forceCreation) {\n var _this = this;\n if (forceCreation === void 0) { forceCreation = false; }\n if (!tags)\n return [];\n return tags.reduce(function (result, tag) {\n if (tag) {\n result.push(_this._getOrCreateElement(tag, forceCreation));\n }\n return result;\n }, []);\n };\n Meta.prototype.getTag = function (attrSelector) {\n if (!attrSelector)\n return null;\n return this._dom.querySelector(this._doc, \"meta[\" + attrSelector + \"]\") || null;\n };\n Meta.prototype.getTags = function (attrSelector) {\n if (!attrSelector)\n return [];\n var list /*NodeList*/ = this._dom.querySelectorAll(this._doc, \"meta[\" + attrSelector + \"]\");\n return list ? [].slice.call(list) : [];\n };\n Meta.prototype.updateTag = function (tag, selector) {\n if (!tag)\n return null;\n selector = selector || this._parseSelector(tag);\n var meta = this.getTag(selector);\n if (meta) {\n return this._setMetaElementAttributes(tag, meta);\n }\n return this._getOrCreateElement(tag, true);\n };\n Meta.prototype.removeTag = function (attrSelector) { this.removeTagElement(this.getTag(attrSelector)); };\n Meta.prototype.removeTagElement = function (meta) {\n if (meta) {\n this._dom.remove(meta);\n }\n };\n Meta.prototype._getOrCreateElement = function (meta, forceCreation) {\n if (forceCreation === void 0) { forceCreation = false; }\n if (!forceCreation) {\n var selector = this._parseSelector(meta);\n var elem = 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))\n return elem;\n }\n var element = this._dom.createElement('meta');\n this._setMetaElementAttributes(meta, element);\n var head = this._dom.getElementsByTagName(this._doc, 'head')[0];\n this._dom.appendChild(head, element);\n return element;\n };\n Meta.prototype._setMetaElementAttributes = function (tag, el) {\n var _this = this;\n Object.keys(tag).forEach(function (prop) { return _this._dom.setAttribute(el, prop, tag[prop]); });\n return el;\n };\n Meta.prototype._parseSelector = function (tag) {\n var attr = tag.name ? 'name' : 'property';\n return attr + \"=\\\"\" + tag[attr] + \"\\\"\";\n };\n Meta.prototype._containsAttributes = function (tag, elem) {\n var _this = this;\n return Object.keys(tag).every(function (key) { return _this._dom.getAttribute(elem, key) === tag[key]; });\n };\n Meta.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: createMeta, token: Meta, providedIn: \"root\" });\n Meta = __decorate([\n i0.Injectable({ providedIn: 'root', useFactory: createMeta, deps: [] }),\n __param(0, i0.Inject(common.DOCUMENT)),\n __metadata(\"design:paramtypes\", [Object])\n ], Meta);\n return Meta;\n }());\n\n /**\n * Factory to create Title service.\n */\n function createTitle() {\n return new Title(i0.ɵɵinject(common.DOCUMENT));\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 var Title = /** @class */ (function () {\n function Title(_doc) {\n this._doc = _doc;\n }\n /**\n * Get the title of the current HTML document.\n */\n Title.prototype.getTitle = function () { return getDOM().getTitle(this._doc); };\n /**\n * Set the title of the current HTML document.\n * @param newTitle\n */\n Title.prototype.setTitle = function (newTitle) { getDOM().setTitle(this._doc, newTitle); };\n Title.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: createTitle, token: Title, providedIn: \"root\" });\n Title = __decorate([\n i0.Injectable({ providedIn: 'root', useFactory: createTitle, deps: [] }),\n __param(0, i0.Inject(common.DOCUMENT)),\n __metadata(\"design:paramtypes\", [Object])\n ], Title);\n return Title;\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 var win = typeof window !== 'undefined' && window || {};\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 var ChangeDetectionPerfRecord = /** @class */ (function () {\n function ChangeDetectionPerfRecord(msPerTick, numTicks) {\n this.msPerTick = msPerTick;\n this.numTicks = numTicks;\n }\n return ChangeDetectionPerfRecord;\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 */\n var AngularProfiler = /** @class */ (function () {\n function AngularProfiler(ref) {\n this.appRef = ref.injector.get(i0.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 AngularProfiler.prototype.timeChangeDetection = function (config) {\n var record = config && config['record'];\n var profileName = 'Change Detection';\n // Profiler is not available in Android browsers, nor in IE 9 without dev tools opened\n var isProfilerAvailable = win.console.profile != null;\n if (record && isProfilerAvailable) {\n win.console.profile(profileName);\n }\n var start = getDOM().performanceNow();\n var numTicks = 0;\n while (numTicks < 5 || (getDOM().performanceNow() - start) < 500) {\n this.appRef.tick();\n numTicks++;\n }\n var end = getDOM().performanceNow();\n if (record && isProfilerAvailable) {\n win.console.profileEnd(profileName);\n }\n var msPerTick = (end - start) / numTicks;\n win.console.log(\"ran \" + numTicks + \" change detection cycles\");\n win.console.log(msPerTick.toFixed(2) + \" ms per check\");\n return new ChangeDetectionPerfRecord(msPerTick, numTicks);\n };\n return AngularProfiler;\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 var PROFILER_GLOBAL_NAME = 'profiler';\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 */\n function enableDebugTools(ref) {\n exportNgVar(PROFILER_GLOBAL_NAME, new AngularProfiler(ref));\n return ref;\n }\n /**\n * Disables Angular tools.\n *\n * @publicApi\n */\n function disableDebugTools() {\n exportNgVar(PROFILER_GLOBAL_NAME, 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 function escapeHtml(text) {\n var escapedText = {\n '&': '&a;',\n '\"': '&q;',\n '\\'': '&s;',\n '<': '&l;',\n '>': '&g;',\n };\n return text.replace(/[&\"'<>]/g, function (s) { return escapedText[s]; });\n }\n function unescapeHtml(text) {\n var unescapedText = {\n '&a;': '&',\n '&q;': '\"',\n '&s;': '\\'',\n '&l;': '<',\n '&g;': '>',\n };\n return text.replace(/&[^;]+;/g, function (s) { return unescapedText[s]; });\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 */\n function makeStateKey(key) {\n return key;\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 var TransferState = /** @class */ (function () {\n function TransferState() {\n this.store = {};\n this.onSerializeCallbacks = {};\n }\n TransferState_1 = TransferState;\n /** @internal */\n TransferState.init = function (initState) {\n var transferState = new TransferState_1();\n transferState.store = initState;\n return transferState;\n };\n /**\n * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n */\n TransferState.prototype.get = function (key, defaultValue) {\n return this.store[key] !== undefined ? this.store[key] : defaultValue;\n };\n /**\n * Set the value corresponding to a key.\n */\n TransferState.prototype.set = function (key, value) { this.store[key] = value; };\n /**\n * Remove a key from the store.\n */\n TransferState.prototype.remove = function (key) { delete this.store[key]; };\n /**\n * Test whether a key exists in the store.\n */\n TransferState.prototype.hasKey = function (key) { return this.store.hasOwnProperty(key); };\n /**\n * Register a callback to provide the value for a key when `toJson` is called.\n */\n TransferState.prototype.onSerialize = function (key, callback) {\n this.onSerializeCallbacks[key] = callback;\n };\n /**\n * Serialize the current state of the store to JSON.\n */\n TransferState.prototype.toJson = function () {\n // Call the onSerialize callbacks and put those values into the store.\n for (var key in this.onSerializeCallbacks) {\n if (this.onSerializeCallbacks.hasOwnProperty(key)) {\n try {\n this.store[key] = this.onSerializeCallbacks[key]();\n }\n catch (e) {\n console.warn('Exception in onSerialize callback: ', e);\n }\n }\n }\n return JSON.stringify(this.store);\n };\n var TransferState_1;\n TransferState = TransferState_1 = __decorate([\n i0.Injectable()\n ], TransferState);\n return TransferState;\n }());\n function initTransferState(doc, appId) {\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 var script = doc.getElementById(appId + '-state');\n var initialState = {};\n if (script && script.textContent) {\n try {\n initialState = JSON.parse(unescapeHtml(script.textContent));\n }\n catch (e) {\n console.warn('Exception while restoring TransferState for app ' + appId, e);\n }\n }\n return TransferState.init(initialState);\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 var BrowserTransferStateModule = /** @class */ (function () {\n function BrowserTransferStateModule() {\n }\n BrowserTransferStateModule = __decorate([\n i0.NgModule({\n providers: [{ provide: TransferState, useFactory: initTransferState, deps: [common.DOCUMENT, i0.APP_ID] }],\n })\n ], BrowserTransferStateModule);\n return BrowserTransferStateModule;\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 /**\n * Predicates for use with {@link DebugElement}'s query functions.\n *\n * @publicApi\n */\n var By = /** @class */ (function () {\n function By() {\n }\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 By.all = function () { return function (debugElement) { return true; }; };\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 By.css = function (selector) {\n return function (debugElement) {\n return debugElement.nativeElement != null ?\n getDOM().elementMatches(debugElement.nativeElement, selector) :\n false;\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 By.directive = function (type) {\n return function (debugElement) { return debugElement.providerTokens.indexOf(type) !== -1; };\n };\n return By;\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\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 * @publicApi\n */\n var VERSION = new i0.Version('8.1.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\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 // This file only reexports content of the `src` folder. Keep it that way.\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\n /**\n * Generated bundle index. Do not edit.\n */\n\n exports.ɵangular_packages_platform_browser_platform_browser_c = BROWSER_MODULE_PROVIDERS;\n exports.ɵangular_packages_platform_browser_platform_browser_b = _document;\n exports.ɵangular_packages_platform_browser_platform_browser_a = errorHandler;\n exports.ɵangular_packages_platform_browser_platform_browser_l = GenericBrowserDomAdapter;\n exports.ɵangular_packages_platform_browser_platform_browser_d = createMeta;\n exports.ɵangular_packages_platform_browser_platform_browser_i = SERVER_TRANSITION_PROVIDERS;\n exports.ɵangular_packages_platform_browser_platform_browser_h = appInitializerFactory;\n exports.ɵangular_packages_platform_browser_platform_browser_e = createTitle;\n exports.ɵangular_packages_platform_browser_platform_browser_f = initTransferState;\n exports.ɵangular_packages_platform_browser_platform_browser_k = ELEMENT_PROBE_PROVIDERS__PRE_R3__;\n exports.ɵangular_packages_platform_browser_platform_browser_j = _createNgProbe;\n exports.ɵangular_packages_platform_browser_platform_browser_g = EventManagerPlugin;\n exports.BrowserModule = BrowserModule;\n exports.platformBrowser = platformBrowser;\n exports.Meta = Meta;\n exports.Title = Title;\n exports.disableDebugTools = disableDebugTools;\n exports.enableDebugTools = enableDebugTools;\n exports.BrowserTransferStateModule = BrowserTransferStateModule;\n exports.TransferState = TransferState;\n exports.makeStateKey = makeStateKey;\n exports.By = By;\n exports.EVENT_MANAGER_PLUGINS = EVENT_MANAGER_PLUGINS;\n exports.EventManager = EventManager;\n exports.HAMMER_GESTURE_CONFIG = HAMMER_GESTURE_CONFIG;\n exports.HAMMER_LOADER = HAMMER_LOADER;\n exports.HammerGestureConfig = HammerGestureConfig;\n exports.DomSanitizer = DomSanitizer;\n exports.VERSION = VERSION;\n exports.ɵELEMENT_PROBE_PROVIDERS__POST_R3__ = ELEMENT_PROBE_PROVIDERS__POST_R3__;\n exports.ɵBROWSER_SANITIZATION_PROVIDERS = BROWSER_SANITIZATION_PROVIDERS;\n exports.ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS = INTERNAL_BROWSER_PLATFORM_PROVIDERS;\n exports.ɵinitDomAdapter = initDomAdapter;\n exports.ɵBrowserDomAdapter = BrowserDomAdapter;\n exports.ɵBrowserPlatformLocation = BrowserPlatformLocation;\n exports.ɵTRANSITION_ID = TRANSITION_ID;\n exports.ɵBrowserGetTestability = BrowserGetTestability;\n exports.ɵescapeHtml = escapeHtml;\n exports.ɵELEMENT_PROBE_PROVIDERS = ELEMENT_PROBE_PROVIDERS;\n exports.ɵDomAdapter = DomAdapter;\n exports.ɵgetDOM = getDOM;\n exports.ɵsetRootDomAdapter = setRootDomAdapter;\n exports.ɵDomRendererFactory2 = DomRendererFactory2;\n exports.ɵNAMESPACE_URIS = NAMESPACE_URIS;\n exports.ɵflattenStyles = flattenStyles;\n exports.ɵshimContentAttribute = shimContentAttribute;\n exports.ɵshimHostAttribute = shimHostAttribute;\n exports.ɵDomEventsPlugin = DomEventsPlugin;\n exports.ɵHammerGesturesPlugin = HammerGesturesPlugin;\n exports.ɵKeyEventsPlugin = KeyEventsPlugin;\n exports.ɵDomSharedStylesHost = DomSharedStylesHost;\n exports.ɵSharedStylesHost = SharedStylesHost;\n exports.ɵDomSanitizerImpl = DomSanitizerImpl;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n//# sourceMappingURL=platform-browser.umd.js.map\n"]}