UNPKG

141 kBSource Map (JSON)View Raw
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","urlParsingNode","GenericBrowserDomAdapter","_super","supportsDOMEvents","ɵDomAdapter","BrowserDomAdapter","makeCurrent","ɵsetRootDomAdapter","getProperty","el","name","log","error","window","console","logGroup","group","logGroupEnd","groupEnd","onAndCancel","evt","listener","addEventListener","removeEventListener","dispatchEvent","remove","node","parentNode","removeChild","getValue","value","createElement","tagName","doc","getDefaultDocument","createHtmlDocument","document","implementation","createHTMLDocument","isElementNode","nodeType","Node","ELEMENT_NODE","isShadowRoot","DocumentFragment","getGlobalEventTarget","body","getHistory","history","getLocation","location","getBaseHref","href","getBaseElementHref","baseElement","querySelector","getAttribute","relativePath","url","setAttribute","pathname","charAt","resetBaseElement","getUserAgent","navigator","userAgent","performanceNow","performance","now","Date","getTime","supportsCookies","getCookie","ɵparseCookieValue","cookie","TRANSITION_ID","InjectionToken","appInitializerFactory","transitionId","injector","get","ApplicationInitStatus","donePromise","then","dom","ɵgetDOM","slice","querySelectorAll","filter","forEach","SERVER_TRANSITION_PROVIDERS","provide","APP_INITIALIZER","useFactory","deps","DOCUMENT","Injector","multi","BrowserGetTestability","init","setTestabilityGetter","addToWindow","registry","ɵglobal","elem","findInAncestors","testability","findTestabilityInTree","Error","getAllTestabilities","getAllRootElements","push","callback","testabilities","count","didWork","decrement","didWork_","whenStable","getTestability","host","parentElement","exportNgVar","COMPILED","CORE_TOKENS","ApplicationRef","NgZone","inspectNativeElementR2","element","ɵgetDebugNodeR2","_createNgProbeR2","coreTokens","_ngProbeTokensToMap","tokens","reduce","prev","token","ELEMENT_PROBE_PROVIDERS__PRE_R3__","NgProbeToken","Optional","ELEMENT_PROBE_PROVIDERS","EVENT_MANAGER_PLUGINS","EventManager","plugins","_zone","_this","_eventNameToPlugin","Map","manager","_plugins","reverse","eventName","handler","_findPluginFor","addGlobalEventListener","getZone","plugin","plugin_1","supports","set","Injectable","Inject","EventManagerPlugin","_doc","SharedStylesHost","_stylesSet","Set","addStyles","styles","additions","style","has","add","onStylesAdded","getAllStyles","from","DomSharedStylesHost","_hostNodes","_styleNodes","head","_addStylesToHost","styleEl","textContent","appendChild","addHost","hostNode","removeHost","delete","ngOnDestroy","styleNode","NAMESPACE_URIS","svg","xhtml","xlink","xml","xmlns","COMPONENT_REGEX","shimContentAttribute","componentShortId","replace","shimHostAttribute","flattenStyles","compId","isArray","decoratePreventDefault","eventHandler","event","preventDefault","returnValue","DomRendererFactory2","eventManager","sharedStylesHost","appId","rendererByCompId","defaultRenderer","DefaultDomRenderer2","createRenderer","type","encapsulation","ViewEncapsulation","Emulated","renderer","id","EmulatedEncapsulationDomRenderer2","applyToHost","Native","ShadowDom","ShadowDomRenderer","begin","end","APP_ID","String","data","destroy","namespace","createElementNS","createComment","createText","createTextNode","parent","newChild","insertBefore","refChild","oldChild","selectRootElement","selectorOrNode","preserveContent","nextSibling","namespaceUri","setAttributeNS","removeAttribute","removeAttributeNS","addClass","classList","removeClass","setStyle","flags","RendererStyleFlags2","DashCase","setProperty","Important","removeStyle","removeProperty","setValue","nodeValue","listen","charCodeAt","component","contentAttr","hostAttr","hostEl","shadowRoot","attachShadow","mode","createShadowRoot","nodeOrShadowRoot","DomEventsPlugin","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","toLowerCase","isCustomEvent","warn","zone","cancelRegistration_1","deregister_1","catch","runOutsideAngular","eventObj","runGuarded","on","off","indexOf","ɵConsole","HAMMER_PROVIDERS__PRE_R3__","useClass","HAMMER_PROVIDERS","HammerModule","NgModule","providers","MODIFIER_KEYS","_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","`","","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","splice","result","getEventFullKey","getEventKey","keyIdentifier","startsWith","fromCharCode","parseInt","substring","modifierGetter","keyName","DomSanitizer","ɵprov","ɵɵdefineInjectable","DomSanitizer_Factory","ɵɵinject","DomSanitizerImpl","providedIn","useExisting","forwardRef","domSanitizerImplFactory","sanitize","ctx","SecurityContext","NONE","HTML","ɵallowSanitizationBypassAndThrow","ɵunwrapSafeValue","ɵ_sanitizeHtml","STYLE","ɵ_sanitizeStyle","SCRIPT","URL","ɵgetSanitizationBypassType","ɵ_sanitizeUrl","RESOURCE_URL","bypassSecurityTrustHtml","ɵbypassSanitizationTrustHtml","bypassSecurityTrustStyle","ɵbypassSanitizationTrustStyle","bypassSecurityTrustScript","ɵbypassSanitizationTrustScript","bypassSecurityTrustUrl","ɵbypassSanitizationTrustUrl","bypassSecurityTrustResourceUrl","ɵbypassSanitizationTrustResourceUrl","DomSanitizerImpl_Factory","INJECTOR","initDomAdapter","errorHandler","ErrorHandler","_document","ɵsetDocument","INTERNAL_BROWSER_PLATFORM_PROVIDERS","PLATFORM_ID","useValue","ɵPLATFORM_BROWSER_ID","PLATFORM_INITIALIZER","BROWSER_SANITIZATION_PROVIDERS","Sanitizer","createPlatformFactory","platformCore","BROWSER_MODULE_PROVIDERS","ɵINJECTOR_SCOPE","RendererFactory2","Testability","BrowserModule","parentModule","BrowserModule_1","withServerTransition","params","ngModule","CommonModule","ApplicationModule","SkipSelf","createMeta","Meta","_dom","addTag","tag","forceCreation","_getOrCreateElement","addTags","tags","getTag","attrSelector","getTags","list","updateTag","selector","_parseSelector","_setMetaElementAttributes","removeTag","removeTagElement","_containsAttributes","getElementsByTagName","keys","prop","attr","every","createTitle","Title","getTitle","title","setTitle","newTitle","win","ChangeDetectionPerfRecord","msPerTick","numTicks","AngularProfiler","ref","appRef","timeChangeDetection","config","record","isProfilerAvailable","profile","start","tick","profileEnd","toFixed","TransferState","store","onSerializeCallbacks","TransferState_1","initState","transferState","defaultValue","undefined","hasKey","onSerialize","toJson","e","JSON","stringify","initTransferState","script","getElementById","initialState","parse","unescapeHtml","text","unescapedText","&a;","&q;","&s;","&l;","&g;","BrowserTransferStateModule","By","all","css","debugElement","nativeElement","elementMatches","matches","msMatchesSelector","webkitMatchesSelector","directive","debugNode","providerTokens","VERSION","Version","enumerable","disableDebugTools","enableDebugTools","makeStateKey","ɵBROWSER_SANITIZATION_PROVIDERS","ɵBROWSER_SANITIZATION_PROVIDERS__POST_R3__","ɵBrowserDomAdapter","ɵBrowserGetTestability","ɵDomEventsPlugin","ɵDomRendererFactory2","ɵDomSanitizerImpl","ɵDomSharedStylesHost","ɵELEMENT_PROBE_PROVIDERS","ɵELEMENT_PROBE_PROVIDERS__POST_R3__","ɵHAMMER_PROVIDERS__POST_R3__","ɵHammerGesturesPlugin","ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS","ɵKeyEventsPlugin","ɵNAMESPACE_URIS","ɵSharedStylesHost","ɵTRANSITION_ID","ɵangular_packages_platform_browser_platform_browser_a","ɵangular_packages_platform_browser_platform_browser_b","ɵangular_packages_platform_browser_platform_browser_c","ɵangular_packages_platform_browser_platform_browser_d","ɵangular_packages_platform_browser_platform_browser_e","ɵangular_packages_platform_browser_platform_browser_f","ɵangular_packages_platform_browser_platform_browser_g","ɵangular_packages_platform_browser_platform_browser_h","ɵangular_packages_platform_browser_platform_browser_i","ɵangular_packages_platform_browser_platform_browser_j","ɵangular_packages_platform_browser_platform_browser_k","ɵangular_packages_platform_browser_platform_browser_l","ɵangular_packages_platform_browser_platform_browser_m","ɵangular_packages_platform_browser_platform_browser_n","ɵangular_packages_platform_browser_platform_browser_o","ɵescapeHtml","escapeHtml","escapedText","&","\"","'","<",">","ɵflattenStyles","ɵinitDomAdapter","ɵshimContentAttribute","ɵshimHostAttribute"],"mappings":"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","sourcesContent":["/**\n * @license Angular v9.1.3\n * (c) 2010-2020 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++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n }\r\n\r\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 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n }\r\n\r\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 s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n }\r\n\r\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 __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\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 }\r\n\r\n function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n }\r\n\r\n function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\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 /**\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 return _super.call(this) || this;\n }\n GenericBrowserDomAdapter.prototype.supportsDOMEvents = function () {\n return true;\n };\n return GenericBrowserDomAdapter;\n }(common.ɵ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 ɵ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.makeCurrent = function () {\n common.ɵsetRootDomAdapter(new BrowserDomAdapter());\n };\n BrowserDomAdapter.prototype.getProperty = function (el, name) {\n return el[name];\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 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 () {\n el.removeEventListener(evt, listener, false);\n };\n };\n BrowserDomAdapter.prototype.dispatchEvent = function (el, evt) {\n el.dispatchEvent(evt);\n };\n BrowserDomAdapter.prototype.remove = function (node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n return node;\n };\n BrowserDomAdapter.prototype.getValue = function (el) {\n return el.value;\n };\n BrowserDomAdapter.prototype.createElement = function (tagName, doc) {\n doc = doc || this.getDefaultDocument();\n return doc.createElement(tagName);\n };\n BrowserDomAdapter.prototype.createHtmlDocument = function () {\n return document.implementation.createHTMLDocument('fakeTitle');\n };\n BrowserDomAdapter.prototype.getDefaultDocument = function () {\n return document;\n };\n BrowserDomAdapter.prototype.isElementNode = function (node) {\n return node.nodeType === Node.ELEMENT_NODE;\n };\n BrowserDomAdapter.prototype.isShadowRoot = function (node) {\n return node instanceof DocumentFragment;\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 () {\n return window.history;\n };\n BrowserDomAdapter.prototype.getLocation = function () {\n return window.location;\n };\n BrowserDomAdapter.prototype.getBaseHref = function (doc) {\n var href = getBaseElementHref();\n return href == null ? null : relativePath(href);\n };\n BrowserDomAdapter.prototype.resetBaseElement = function () {\n baseElement = null;\n };\n BrowserDomAdapter.prototype.getUserAgent = function () {\n return window.navigator.userAgent;\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 () {\n return true;\n };\n BrowserDomAdapter.prototype.getCookie = function (name) {\n return common.ɵparseCookieValue(document.cookie, name);\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 /**\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 = common.ɵgetDOM();\n var styles = Array.prototype.slice.apply(document.querySelectorAll(\"style[ng-transition]\"));\n styles.filter(function (el) { return el.getAttribute('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 () {\n i0.setTestabilityGetter(new BrowserGetTestability());\n };\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 (common.ɵgetDOM().isShadowRoot(elem)) {\n return this.findTestabilityInTree(registry, elem.host, true);\n }\n return this.findTestabilityInTree(registry, elem.parentElement, 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 inspectNativeElementR2(element) {\n return i0.ɵgetDebugNodeR2(element);\n }\n function _createNgProbeR2(coreTokens) {\n exportNgVar(INSPECT_GLOBAL_NAME, inspectNativeElementR2);\n exportNgVar(CORE_TOKENS_GLOBAL_NAME, __assign(__assign({}, CORE_TOKENS), _ngProbeTokensToMap(coreTokens || [])));\n return function () { return inspectNativeElementR2; };\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: _createNgProbeR2,\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 () {\n return this._zone;\n };\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 = common.ɵ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 () {\n return Array.from(this._stylesSet);\n };\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) {\n this._hostNodes.delete(hostNode);\n };\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 () {\n this._styleNodes.forEach(function (styleNode) { return common.ɵgetDOM().remove(styleNode); });\n };\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 NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\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 // `DebugNode.triggerEventHandler` needs to know if the listener was created with\n // decoratePreventDefault or is a listener added outside the Angular context so it can handle the\n // two differently. In the first case, the special '__ngUnwrap__' token is passed to the unwrap\n // the listener (see below).\n return function (event) {\n // Ivy uses '__ngUnwrap__' as a special token that allows us to unwrap the function\n // so that it can be invoked programmatically by `DebugNode.triggerEventHandler`. The debug_node\n // can inspect the listener toString contents for the existence of this special token. Because\n // the token is a string literal, it is ensured to not be modified by compiled code.\n if (event === '__ngUnwrap__') {\n return eventHandler;\n }\n 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 return undefined;\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) {\n return document.createComment(value);\n };\n DefaultDomRenderer2.prototype.createText = function (value) {\n return document.createTextNode(value);\n };\n DefaultDomRenderer2.prototype.appendChild = function (parent, newChild) {\n parent.appendChild(newChild);\n };\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) {\n return node.parentNode;\n };\n DefaultDomRenderer2.prototype.nextSibling = function (node) {\n return node.nextSibling;\n };\n DefaultDomRenderer2.prototype.setAttribute = function (el, name, value, namespace) {\n if (namespace) {\n name = namespace + ':' + name;\n // TODO(FW-811): Ivy may cause issues here because it's passing around\n // full URIs for namespaces, therefore this lookup will fail.\n 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(FW-811): 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(FW-811): Since ivy is passing around full URIs for namespaces\n // this could result in properties like `http://www.w3.org/2000/svg:cx=\"123\"`,\n // which is wrong.\n el.removeAttribute(namespace + \":\" + name);\n }\n }\n else {\n el.removeAttribute(name);\n }\n };\n DefaultDomRenderer2.prototype.addClass = function (el, name) {\n el.classList.add(name);\n };\n DefaultDomRenderer2.prototype.removeClass = function (el, name) {\n el.classList.remove(name);\n };\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 NG_DEV_MODE && checkNoSyntheticProp(name, 'property');\n el[name] = value;\n };\n DefaultDomRenderer2.prototype.setValue = function (node, value) {\n node.nodeValue = value;\n };\n DefaultDomRenderer2.prototype.listen = function (target, event, callback) {\n NG_DEV_MODE && 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) {\n _super.prototype.setAttribute.call(this, element, this.hostAttr, '');\n };\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) {\n return node === this.hostEl ? this.shadowRoot : node;\n };\n ShadowDomRenderer.prototype.destroy = function () {\n this.sharedStylesHost.removeHost(this.shadowRoot);\n };\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 DomEventsPlugin = /** @class */ (function (_super) {\n __extends(DomEventsPlugin, _super);\n function DomEventsPlugin(doc) {\n return _super.call(this, doc) || this;\n }\n // This plugin should come last in the list of plugins, because it accepts all\n // events.\n DomEventsPlugin.prototype.supports = function (eventName) {\n return true;\n };\n DomEventsPlugin.prototype.addEventListener = function (element, eventName, handler) {\n var _this = this;\n element.addEventListener(eventName, handler, false);\n return function () { return _this.removeEventListener(element, eventName, handler); };\n };\n DomEventsPlugin.prototype.removeEventListener = function (target, eventName, callback) {\n return target.removeEventListener(eventName, callback);\n };\n DomEventsPlugin = __decorate([\n i0.Injectable(),\n __param(0, i0.Inject(common.DOCUMENT)),\n __metadata(\"design:paramtypes\", [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 * @ngModule HammerModule\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 /**\n * Event plugin that adds Hammer support to an application.\n *\n * @ngModule HammerModule\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 () {\n cancelRegistration_1 = true;\n };\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 () {\n deregister_1();\n };\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 () {\n handler(eventObj);\n });\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) {\n return this._config.events.indexOf(eventName) > -1;\n };\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 * In Ivy, support for Hammer gestures is optional, so applications must\n * import the `HammerModule` at root to turn on support. This means that\n * Hammer-specific code can be tree-shaken away if not needed.\n */\n var HAMMER_PROVIDERS__POST_R3__ = [];\n /**\n * In View Engine, support for Hammer gestures is built-in by default.\n */\n var HAMMER_PROVIDERS__PRE_R3__ = [\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 var HAMMER_PROVIDERS = HAMMER_PROVIDERS__PRE_R3__;\n /**\n * Adds support for HammerJS.\n *\n * Import this module at the root of your application so that Angular can work with\n * HammerJS to detect gesture events.\n *\n * Note that applications still need to include the HammerJS script itself. This module\n * simply sets up the coordination layer between HammerJS and Angular's EventManager.\n *\n * @publicApi\n */\n var HammerModule = /** @class */ (function () {\n function HammerModule() {\n }\n HammerModule = __decorate([\n i0.NgModule({ providers: HAMMER_PROVIDERS__PRE_R3__ })\n ], HammerModule);\n return HammerModule;\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 * Defines supported modifiers for key events.\n */\n var MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\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$3 = function (event) { return event.altKey; }, ɵ1 = function (event) { return event.ctrlKey; }, ɵ2 = function (event) { return event.metaKey; }, ɵ3 = function (event) { return event.shiftKey; };\n /**\n * Retrieves modifiers from key-event objects.\n */\n var MODIFIER_KEY_GETTERS = {\n 'alt': ɵ0$3,\n 'control': ɵ1,\n 'meta': ɵ2,\n 'shift': ɵ3\n };\n /**\n * @publicApi\n * A browser plug-in that provides support for handling of key events in Angular.\n */\n var KeyEventsPlugin = /** @class */ (function (_super) {\n __extends(KeyEventsPlugin, _super);\n /**\n * Initializes an instance of the browser plug-in.\n * @param doc The document in which key events will be detected.\n */\n function KeyEventsPlugin(doc) {\n return _super.call(this, doc) || this;\n }\n KeyEventsPlugin_1 = KeyEventsPlugin;\n /**\n * Reports whether a named key event is supported.\n * @param eventName The event name to query.\n * @return True if the named key event is supported.\n */\n KeyEventsPlugin.prototype.supports = function (eventName) {\n return KeyEventsPlugin_1.parseEventName(eventName) != null;\n };\n /**\n * Registers a handler for a specific element and key event.\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the key event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns The key event that was registered.\n */\n 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 common.ɵ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 = 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 function getEventKey(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\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 DomSanitizer.ɵprov = i0.ɵɵdefineInjectable({ factory: function DomSanitizer_Factory() { return i0.ɵɵinject(DomSanitizerImpl); }, token: DomSanitizer, providedIn: \"root\" });\n DomSanitizer = __decorate([\n i0.Injectable({ providedIn: 'root', useExisting: i0.forwardRef(function () { return DomSanitizerImpl; }) })\n ], DomSanitizer);\n return DomSanitizer;\n }());\n function domSanitizerImplFactory(injector) {\n return new DomSanitizerImpl(injector.get(common.DOCUMENT));\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 (i0.ɵallowSanitizationBypassAndThrow(value, \"HTML\" /* Html */)) {\n return i0.ɵunwrapSafeValue(value);\n }\n return i0.ɵ_sanitizeHtml(this._doc, String(value));\n case i0.SecurityContext.STYLE:\n if (i0.ɵallowSanitizationBypassAndThrow(value, \"Style\" /* Style */)) {\n return i0.ɵunwrapSafeValue(value);\n }\n return i0.ɵ_sanitizeStyle(value);\n case i0.SecurityContext.SCRIPT:\n if (i0.ɵallowSanitizationBypassAndThrow(value, \"Script\" /* Script */)) {\n return i0.ɵunwrapSafeValue(value);\n }\n throw new Error('unsafe value used in a script context');\n case i0.SecurityContext.URL:\n var type = i0.ɵgetSanitizationBypassType(value);\n if (i0.ɵallowSanitizationBypassAndThrow(value, \"URL\" /* Url */)) {\n return i0.ɵunwrapSafeValue(value);\n }\n return i0.ɵ_sanitizeUrl(String(value));\n case i0.SecurityContext.RESOURCE_URL:\n if (i0.ɵallowSanitizationBypassAndThrow(value, \"ResourceURL\" /* ResourceUrl */)) {\n return i0.ɵunwrapSafeValue(value);\n }\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.bypassSecurityTrustHtml = function (value) {\n return i0.ɵbypassSanitizationTrustHtml(value);\n };\n DomSanitizerImpl.prototype.bypassSecurityTrustStyle = function (value) {\n return i0.ɵbypassSanitizationTrustStyle(value);\n };\n DomSanitizerImpl.prototype.bypassSecurityTrustScript = function (value) {\n return i0.ɵbypassSanitizationTrustScript(value);\n };\n DomSanitizerImpl.prototype.bypassSecurityTrustUrl = function (value) {\n return i0.ɵbypassSanitizationTrustUrl(value);\n };\n DomSanitizerImpl.prototype.bypassSecurityTrustResourceUrl = function (value) {\n return i0.ɵbypassSanitizationTrustResourceUrl(value);\n };\n DomSanitizerImpl.ɵprov = i0.ɵɵdefineInjectable({ factory: function DomSanitizerImpl_Factory() { return domSanitizerImplFactory(i0.ɵɵinject(i0.INJECTOR)); }, token: DomSanitizerImpl, providedIn: \"root\" });\n DomSanitizerImpl = __decorate([\n i0.Injectable({ providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [i0.Injector] }),\n __param(0, i0.Inject(common.DOCUMENT)),\n __metadata(\"design:paramtypes\", [Object])\n ], DomSanitizerImpl);\n return DomSanitizerImpl;\n }(DomSanitizer));\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 initDomAdapter() {\n BrowserDomAdapter.makeCurrent();\n BrowserGetTestability.init();\n }\n function errorHandler() {\n return new i0.ErrorHandler();\n }\n function _document() {\n // Tell ivy about the global document\n i0.ɵsetDocument(document);\n return document;\n }\n var ɵ0$4 = common.ɵPLATFORM_BROWSER_ID;\n var INTERNAL_BROWSER_PLATFORM_PROVIDERS = [\n { provide: i0.PLATFORM_ID, useValue: ɵ0$4 },\n { provide: i0.PLATFORM_INITIALIZER, useValue: initDomAdapter, multi: true },\n { provide: common.DOCUMENT, useFactory: _document, deps: [] },\n ];\n var BROWSER_SANITIZATION_PROVIDERS__PRE_R3__ = [\n { provide: i0.Sanitizer, useExisting: DomSanitizer },\n { provide: DomSanitizer, useClass: DomSanitizerImpl, deps: [common.DOCUMENT] },\n ];\n var BROWSER_SANITIZATION_PROVIDERS__POST_R3__ = [];\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 = BROWSER_SANITIZATION_PROVIDERS__PRE_R3__;\n /**\n * @publicApi\n */\n var platformBrowser = i0.createPlatformFactory(i0.platformCore, 'browser', INTERNAL_BROWSER_PLATFORM_PROVIDERS);\n var BROWSER_MODULE_PROVIDERS = [\n BROWSER_SANITIZATION_PROVIDERS,\n { provide: i0.ɵINJECTOR_SCOPE, useValue: 'root' },\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 HAMMER_PROVIDERS,\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 = common.ɵ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._doc.querySelector(\"meta[\" + attrSelector + \"]\") || null;\n };\n Meta.prototype.getTags = function (attrSelector) {\n if (!attrSelector)\n return [];\n var list /*NodeList*/ = this._doc.querySelectorAll(\"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) {\n this.removeTagElement(this.getTag(attrSelector));\n };\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._doc.getElementsByTagName('head')[0];\n head.appendChild(element);\n return element;\n };\n Meta.prototype._setMetaElementAttributes = function (tag, el) {\n Object.keys(tag).forEach(function (prop) { return el.setAttribute(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 return Object.keys(tag).every(function (key) { return elem.getAttribute(key) === tag[key]; });\n };\n Meta.ɵprov = 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 () {\n return this._doc.title;\n };\n /**\n * Set the title of the current HTML document.\n * @param newTitle\n */\n Title.prototype.setTitle = function (newTitle) {\n this._doc.title = newTitle || '';\n };\n Title.ɵprov = 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 = common.ɵgetDOM().performanceNow();\n var numTicks = 0;\n while (numTicks < 5 || (common.ɵgetDOM().performanceNow() - start) < 500) {\n this.appRef.tick();\n numTicks++;\n }\n var end = common.ɵ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) {\n this.store[key] = value;\n };\n /**\n * Remove a key from the store.\n */\n TransferState.prototype.remove = function (key) {\n delete this.store[key];\n };\n /**\n * Test whether a key exists in the store.\n */\n TransferState.prototype.hasKey = function (key) {\n return this.store.hasOwnProperty(key);\n };\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 () {\n return function () { return true; };\n };\n /**\n * Match elements by the given CSS selector.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_css'}\n */\n By.css = function (selector) {\n return function (debugElement) {\n return debugElement.nativeElement != null ?\n 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 function elementMatches(n, selector) {\n if (common.ɵgetDOM().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\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('9.1.3');\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 Object.defineProperty(exports, 'ɵgetDOM', {\n enumerable: true,\n get: function () {\n return common.ɵgetDOM;\n }\n });\n exports.BrowserModule = BrowserModule;\n exports.BrowserTransferStateModule = BrowserTransferStateModule;\n exports.By = By;\n exports.DomSanitizer = DomSanitizer;\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.HammerModule = HammerModule;\n exports.Meta = Meta;\n exports.Title = Title;\n exports.TransferState = TransferState;\n exports.VERSION = VERSION;\n exports.disableDebugTools = disableDebugTools;\n exports.enableDebugTools = enableDebugTools;\n exports.makeStateKey = makeStateKey;\n exports.platformBrowser = platformBrowser;\n exports.ɵBROWSER_SANITIZATION_PROVIDERS = BROWSER_SANITIZATION_PROVIDERS;\n exports.ɵBROWSER_SANITIZATION_PROVIDERS__POST_R3__ = BROWSER_SANITIZATION_PROVIDERS__POST_R3__;\n exports.ɵBrowserDomAdapter = BrowserDomAdapter;\n exports.ɵBrowserGetTestability = BrowserGetTestability;\n exports.ɵDomEventsPlugin = DomEventsPlugin;\n exports.ɵDomRendererFactory2 = DomRendererFactory2;\n exports.ɵDomSanitizerImpl = DomSanitizerImpl;\n exports.ɵDomSharedStylesHost = DomSharedStylesHost;\n exports.ɵELEMENT_PROBE_PROVIDERS = ELEMENT_PROBE_PROVIDERS;\n exports.ɵELEMENT_PROBE_PROVIDERS__POST_R3__ = ELEMENT_PROBE_PROVIDERS__POST_R3__;\n exports.ɵHAMMER_PROVIDERS__POST_R3__ = HAMMER_PROVIDERS__POST_R3__;\n exports.ɵHammerGesturesPlugin = HammerGesturesPlugin;\n exports.ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS = INTERNAL_BROWSER_PLATFORM_PROVIDERS;\n exports.ɵKeyEventsPlugin = KeyEventsPlugin;\n exports.ɵNAMESPACE_URIS = NAMESPACE_URIS;\n exports.ɵSharedStylesHost = SharedStylesHost;\n exports.ɵTRANSITION_ID = TRANSITION_ID;\n exports.ɵangular_packages_platform_browser_platform_browser_a = errorHandler;\n exports.ɵangular_packages_platform_browser_platform_browser_b = _document;\n exports.ɵangular_packages_platform_browser_platform_browser_c = BROWSER_MODULE_PROVIDERS;\n exports.ɵangular_packages_platform_browser_platform_browser_d = createMeta;\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_g = EventManagerPlugin;\n exports.ɵangular_packages_platform_browser_platform_browser_h = HAMMER_PROVIDERS__PRE_R3__;\n exports.ɵangular_packages_platform_browser_platform_browser_i = HAMMER_PROVIDERS;\n exports.ɵangular_packages_platform_browser_platform_browser_j = domSanitizerImplFactory;\n exports.ɵangular_packages_platform_browser_platform_browser_k = appInitializerFactory;\n exports.ɵangular_packages_platform_browser_platform_browser_l = SERVER_TRANSITION_PROVIDERS;\n exports.ɵangular_packages_platform_browser_platform_browser_m = _createNgProbeR2;\n exports.ɵangular_packages_platform_browser_platform_browser_n = ELEMENT_PROBE_PROVIDERS__PRE_R3__;\n exports.ɵangular_packages_platform_browser_platform_browser_o = GenericBrowserDomAdapter;\n exports.ɵescapeHtml = escapeHtml;\n exports.ɵflattenStyles = flattenStyles;\n exports.ɵinitDomAdapter = initDomAdapter;\n exports.ɵshimContentAttribute = shimContentAttribute;\n exports.ɵshimHostAttribute = shimHostAttribute;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=platform-browser.umd.js.map\n"]}
\No newline at end of file