@angular/platform-browser 8.2.7 → 8.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/animations/animations.d.ts +1 -1
- package/animations.d.ts +1 -1
- package/bundles/platform-browser-animations.umd.js +1 -1
- package/bundles/platform-browser-animations.umd.min.js +1 -1
- package/bundles/platform-browser-animations.umd.min.js.map +1 -1
- package/bundles/platform-browser-testing.umd.js +1 -1
- package/bundles/platform-browser-testing.umd.min.js +1 -1
- package/bundles/platform-browser-testing.umd.min.js.map +1 -1
- package/bundles/platform-browser.umd.js +2 -2
- package/bundles/platform-browser.umd.js.map +1 -1
- package/bundles/platform-browser.umd.min.js +2 -2
- package/bundles/platform-browser.umd.min.js.map +1 -1
- package/esm2015/src/version.js +1 -1
- package/esm5/src/version.js +1 -1
- package/fesm2015/animations.js +1 -1
- package/fesm2015/platform-browser.js +2 -2
- package/fesm2015/platform-browser.js.map +1 -1
- package/fesm2015/testing.js +1 -1
- package/fesm5/animations.js +1 -1
- package/fesm5/platform-browser.js +2 -2
- package/fesm5/platform-browser.js.map +1 -1
- package/fesm5/testing.js +1 -1
- package/package.json +3 -3
- package/platform-browser.d.ts +1 -1
- package/platform-browser.metadata.json +1 -1
- package/testing/testing.d.ts +1 -1
- package/testing.d.ts +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"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","debugNode","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.2.7\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 __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n }\r\n\r\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 __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n }\r\n\r\n function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n }\r\n\r\n function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n }\r\n\r\n function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n }\r\n\r\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 }\r\n\r\n function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n }\r\n\r\n function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n }\r\n\r\n function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n }\r\n\r\n function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n }\r\n\r\n function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n }\r\n\r\n function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\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 setDOM(adapter) {\n _DOM = adapter;\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 var CAMEL_CASE_REGEXP = /([A-Z])/g;\n var DASH_CASE_REGEXP = /-([a-z])/g;\n function camelCaseToDashCase(input) {\n return input.replace(CAMEL_CASE_REGEXP, function () {\n var m = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n m[_i] = arguments[_i];\n }\n return '-' + m[1].toLowerCase();\n });\n }\n function dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, function () {\n var m = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n m[_i] = arguments[_i];\n }\n return m[1].toUpperCase();\n });\n }\n /**\n * Exports the value under a given `name` in the global property `ng`. For example `ng.probe` if\n * `name` is `'probe'`.\n * @param name Name under which it will be exported. Keep in mind this will be a property of the\n * global `ng` object.\n * @param value The value to export.\n */\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 var ɵ2 = isBlackListedEvent;\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 ɵ3 = globalListener;\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 // We should call native delegate in case in some environment part of\n // the application will not use the patched Event. Also we cast the\n // \"arguments\" to any since \"stopImmediatePropagation\" technically does not\n // accept any arguments, but we don't know what developers pass through the\n // function and we want to not break these calls.\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 /**\n * This code is about to add a listener to the DOM. If Zone.js is present, than\n * `addEventListener` has been patched. The patched code adds overhead in both\n * memory and speed (3x slower) than native. For this reason if we detect that\n * Zone.js is present we use a simple version of zone aware addEventListener instead.\n * The result is faster registration and the zone will be restored.\n * But ZoneSpec.onScheduleTask, ZoneSpec.onInvokeTask, ZoneSpec.onCancelTask\n * will not be invoked\n * We also do manual zone restoration in element.ts renderEventHandlerClosure method.\n *\n * NOTE: it is possible that the element is from different iframe, and so we\n * have to check before we execute the method.\n */\n var self = 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$1 = function (event) { return event.metaKey; }, ɵ3$1 = 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$1,\n 'shift': ɵ3$1\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 nodes.\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 () { 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 nodes that have the given directive present.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'}\n */\n By.directive = function (type) {\n return function (debugNode) { return debugNode.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.2.7');\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"]}
|
1
|
+
{"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","debugNode","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.2.8\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 __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n }\r\n\r\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 __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n }\r\n\r\n function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n }\r\n\r\n function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n }\r\n\r\n function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n }\r\n\r\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 }\r\n\r\n function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n }\r\n\r\n function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n }\r\n\r\n function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n }\r\n\r\n function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n }\r\n\r\n function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n }\r\n\r\n function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\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 setDOM(adapter) {\n _DOM = adapter;\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 var CAMEL_CASE_REGEXP = /([A-Z])/g;\n var DASH_CASE_REGEXP = /-([a-z])/g;\n function camelCaseToDashCase(input) {\n return input.replace(CAMEL_CASE_REGEXP, function () {\n var m = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n m[_i] = arguments[_i];\n }\n return '-' + m[1].toLowerCase();\n });\n }\n function dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, function () {\n var m = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n m[_i] = arguments[_i];\n }\n return m[1].toUpperCase();\n });\n }\n /**\n * Exports the value under a given `name` in the global property `ng`. For example `ng.probe` if\n * `name` is `'probe'`.\n * @param name Name under which it will be exported. Keep in mind this will be a property of the\n * global `ng` object.\n * @param value The value to export.\n */\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 var ɵ2 = isBlackListedEvent;\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 ɵ3 = globalListener;\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 // We should call native delegate in case in some environment part of\n // the application will not use the patched Event. Also we cast the\n // \"arguments\" to any since \"stopImmediatePropagation\" technically does not\n // accept any arguments, but we don't know what developers pass through the\n // function and we want to not break these calls.\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 /**\n * This code is about to add a listener to the DOM. If Zone.js is present, than\n * `addEventListener` has been patched. The patched code adds overhead in both\n * memory and speed (3x slower) than native. For this reason if we detect that\n * Zone.js is present we use a simple version of zone aware addEventListener instead.\n * The result is faster registration and the zone will be restored.\n * But ZoneSpec.onScheduleTask, ZoneSpec.onInvokeTask, ZoneSpec.onCancelTask\n * will not be invoked\n * We also do manual zone restoration in element.ts renderEventHandlerClosure method.\n *\n * NOTE: it is possible that the element is from different iframe, and so we\n * have to check before we execute the method.\n */\n var self = 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$1 = function (event) { return event.metaKey; }, ɵ3$1 = 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$1,\n 'shift': ɵ3$1\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 nodes.\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 () { 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 nodes that have the given directive present.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'}\n */\n By.directive = function (type) {\n return function (debugNode) { return debugNode.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.2.8');\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"]}
|